bluetooth-lowenergy - 用于 BLE 任务的 Adafruit 库会牺牲性能吗?
问题描述
Adafruit_BluefruitLE_nRF51库是否会为了功能和与 adafruit 其他设备的兼容性而牺牲 BLE 速度?在 adafruit 的BLE FAQ 页面中,他们有这个部分:
BLE的理论限速是多少?
这取决于多种因素,并且取决于中央设备(手机等)和外围设备的能力。考虑到 nR51822 的硬件限制(每个连接间隔最多 6 个数据包,最小连接间隔为 7.5 毫秒),您最终会在各种移动操作系统上得到以下理论限制:
iPhone 5/6 + IOS 8.0/8.1
6 packets * 20 bytes * 1/0.030 s = 4 kB/s = 32 kbps
iPhone 5/6 + IOS 8.2/8.3
3 packets * 20 bytes * 1/0.030 s = 2 kB/s = 16 kbps
iPhone 5/6 + IOS 8.x with nRF8001
1 packet * 20 bytes * 1/0.030 s = 0.67 kB/s = 5.3 kbps
Nexus 4
4 packets * 20 bytes * 1/0.0075 s = 10.6 kB/s = 84 kbps
Nordic Master Emulator Firmware (MEFW) with nRF51822 0.9.0
1 packet * 20 bytes * 1/0.0075 = 2.67 kB/s = 21.33 kbps
Nordic Master Emulator Firmware (MEFW) with nRF51822 0.11.0
6 packets * 20 bytes * 1/0.0075 = 16 kB/s = 128 kbps
Bluefruit LE 固件也有一些限制,但我们正在积极努力在即将发布的 0.7.0 版本中显着提高吞吐量,该版本将于 2016 年第二季度推出。上述数据可用作确定 BLE 是否可用的理论最大值是否适合您的项目。
我还注意到他们在图书馆中找到的示例中如何通过 BLE 发送数据的一些奇怪示例,而且它似乎效率低下。
我必须在 adafruit 的 BLE SPI Friend 上非常可靠地使用 BLE,并且我可以从它以及支持 STM32 SPI 的微控制器中获得最高带宽。由于性能不佳,我应该避免选择这个库吗?我应该使用 Nordic Semiconductors IDE 之类的东西来获得最佳性能吗?还有什么建议吗?
解决方案
nRF52832 自己很容易做到 700kbps,仅供参考。
推荐阅读
- excel - VBA 中的数字到单词。最后一个数字插入“和”
- haskell - Haskell 中的打印机用于 Data.Comp.Variables 中的 Subst
- javascript - 在 pwa 中带有推送通知的 sse
- spring-boot - 即使登录后子域 login.xyz.com 也不会改变
- android - requestFeature() 必须在添加内容之前调用,并且在 Android 中之前调用
- node.js - NodeJS 单元测试
- javascript - Is it possible to link progressive web app to toast
- php - 我如何通过 xml 获取计数自定义报告数据
- sql-server - 使用 Datediff 时转换 108 和格式的行为差异
- audiokit - AKsequencer 重复时释放(包络)被切断?