本帖最后由 flashtt 于 2018-5-23 10:16 编辑
最近在做一个项目需要用到低功耗蓝牙一对多,最多一对四,且对吞吐量有一定要求,但也不高,总共20kb/s左右,考虑到扩展能达到50kb/s当然更好,本人的学习能力是在捉急,学习了许久仍然搞不清楚原理所在,网上相关的资料也比较少,所以向大家求助,讨论思路。 通过《低功耗蓝牙开发权威指南》和一些博客基本了解了蓝牙低功耗协议原理,但仅限单主从机的情景,一主多从的情景上述资料基本没有谈及。在《低功耗蓝牙开发权威指南》中有一段话提到: 8.6.1与白名单设备发起连接 最常用的连接方式是主机先将对端设备添加到白名单中,然后再与白名单中的设备进行连接,控制器可以统一时间与多个设备设备发起连接。实际上,这能让主机请求控制器同时与A、B、C、D、E、F等设备发起连接。 这段话也好理解,但是且不谈实践,理论上也有很多疑问;首先通过一段时间的监听获取多个设备是可以的,然后就是发起连接,如果是对多个,即发送多个Connect Request,如下图所示: 连续发送多个Connect Request当然是可以的,毕竟只要发送了主机就认为已连接,也不需要从机回复,但是所有的连接参数应该怎么定,后面和多个从机通信时如何保证不会互相干扰,这里就超乎我的理解范围了。
在单Master/Slave的情况下,连接之后的过程很简单,每个连接事件互相通信而已,暂时不考虑大数据量的情形,如下图所示: 摘自《Inside Bluetooth Low Energy》 一对多到底是如何通信的,BLE是时分复用的,主机和多个从机之间的·通信是如何错开的,何时开始,连接间隔多少,主机是怎么控制的。考虑到还有跳频,难以理解。如果能有个框图就最好了。 买了三块CC2640r2f launchpad,感觉好难开发,网上买了NRF52832开发板,带教程的,想先把原理搞明白。
|