标题似乎太笼统了(我想不出一个好的标题)。我将在问题描述中尽量具体。
我被要求制作一个定期收集数据的工业控制盒(可能每5秒收集10-20字节的数据)。运营商将使用笔记本电脑或手机收集数据(不打开盒子)通过蓝牙,每周或每月,或可能在更长的时间。
我将负责选择适当的模块/芯片,做PCB,并做嵌入式软件。因为盒子的产量不是很大,所以我可以自由使用(模块/芯片,价格,功能等等)。在设计不同的部件时。
整个应用程序需要一个USART端口在可用时读取数据(可能每5-10秒),一个用于数据存储的SPI端口(SD卡读取器/写入器),几个LED指示器的GPIO引脚,或者按钮(无论我们是否需要按钮,以及有多少符合我的设计)。
我对蓝牙很陌生。我读过维基和一些谷歌页面。了解配对,了解1级和2级的差异,了解2.1和4.0的差异。
但我仍然有相当多的地方不清楚,以决定使用什么蓝牙模块/芯片。
有点乱。如果你已经阅读了以上问题,我将不胜感激。以下是总结,
感谢您的阅读。
发布于 2015-03-26 05:58:08
我的两分钱(我做了相当数量的蓝牙工作,我已经设计了消费品目前在该领域).请注意,为了保持这个“简洁”,我将对许多设计决策进行润色。
2.1还是4.0?
看看你的估计,听起来好像你每周看大约2MB的数据,也许每月8MB。这里使用什么技术的问题取决于人们愿意等待多久才能收集数据。
对于BLE (BT 4.0) -假设您的数据传输在2-4kB/s范围内。对于2.1,假设它在15-30kB范围内。这取决于很多因素,但我在Android/iOS和BLE设备方面的经验通常是这样的。
在2MB时,其中任何一个都需要很长时间才能传输。是否有可能更频繁地获取数据?或者有一个无线连接的基站,可以经常收集数据?(我不确定申请)
哪个是更好的选择?意思是适用于应用,且易于开发。ARM/ as 32+ CC2540 (或类似的) CC2540或类似的(如果可能的话)ARM/as 32+某些BT模块(比如Bluegiga https://www.bluegiga.com/en-US/products/ )应该使用吗?
这是一个很难回答的问题,却不知道系统的复杂性、传感器、数据存储容量、BOM成本等等。
根据我的经验,对于一个简单的基于GPIO/UART/I2C的系统来说,Linux操作系统是非常过分的(除非您对Linux非常满意)。能够运行Linux并添加额外内存的芯片通常成本很高(例如,廉价的ARM Cortex M0的音量大约是50美分,听起来就像您需要使用的所有内存)。
问题通常归结为“外部MCU或非MCU”--就像在里面一样,您是否试图获得一个全合一的BT模块,其中有可编程的应用空间。这是一个规模和成本节省使用它,但它增加了风险和未知数与一个braindead模块+外部单片机。
我想澄清的一点是,您多次提到TI CC2540 (实际上,CC2541是较新的版本)。无论如何,那个芯片是一个IC级组件。除非你想做天线设计,并让它通过FCC有意的散热器认证(证书通常在1k到10k之间--我假设你在美国,我说的是FCC)。
我认为你要找的是一个现成的认证模块。例如,来自Bluegiga的BLE113是一个FCC认证模块,它在内部包含CC2541 (加上一些花哨)。它还专门使用了一种名为BGScript的解释语言来加速开发。这是伟大的非常简单的应用-并有很好的,烘焙在低功耗模式。
因此,BLE113是一个模块的例子,根据应用程序的复杂性,它可以与或不使用外部MCU一起使用。
如果您愿意通过FCC有意的散热器认证,那么TI CC2541和北欧NRF51822一样常见(该芯片有内置的ARM核,您也可以在其上编程,因此您不需要外部的微控制器)。
一个需要外部单片机的BLE模块的例子是来自AckMe的山猫(AckMe)。它们有一个BLE堆栈运行在芯片上,通过UART与外部MCU通信。
与上面的评论一样,如果您需要iOS兼容性,使用蓝牙2.1 (BT经典)是一个巨大的痛苦,因为MFI程序(我已经经历过-纯粹的痛苦)。所以,除非真的需要,我会坚持BT经典和Android/PC。
一些典型的BT芯片可能是粗纱网络RN42,AmpedRF BT 33 (或43或53)。如果您感兴趣,我在iOS设备上用蓝牙经典设备(https://stackoverflow.com/a/22441949/992509)进行了吞吐量测试
为了省电,配对和数据发送应该是怎样的?按钮对睡眠模式、主动配对模式和数据发送模式是否有用,以节省电力?
如果收音机只在每周或一个月,当运营商正在拉数据时,除了将BT模块置于复位模式之外,没有什么可做的,以确保没有使用电源。BT经典倾向于在传输过程中使用更多的能量,但是如果您经常使用流式数据,那么如果您选择正确的模块(例如在BLE上选择较长时间的较低吞吐量,而在BT-2.1上使用更高的吞吐量以减少时间-它会在清洗过程中自行解决),差异可能是最小的。
我在这里要做的一件事就是有一个按钮触发与BT模块配对的能力,因为这样他们就不会总是在做广告,只是睡着了或者在重置。
应该如何进行身份验证?只允许操作员,但他可以使用任何笔记本电脑/电话。
再说一遍,不了解环境,这可能是很棘手的。如果它是在一个安全的环境中,那就足够了(例如,在锁着的门后面,你需要在里面按一个按钮才能唤醒BT模块)。
否则,至少启用标准的BT配对代码,而不是允许任何人配对。此外,您还可以在其中进行额外的身份验证和安全性(例如,如果没有密码或其他东西,您就无法下载数据)。
如果您想变得非常疯狂,可以对数据进行加密(这可能需要使用Linux ),并确保只有可信的人有解密密钥。
发布于 2015-03-01 08:13:06
我们在不同的产品上使用这两种协议。
蓝牙4.0 BLE又名智能
蓝牙2.1
没有注意到在配对和连接这两种技术方面有很大的时间差。
这里有两个明显需要2.1或BLE的设备示例。也许您的用例更接近于其中的一个示例:
https://stackoverflow.com/questions/28760898
复制相似问题