原文链接:https://www.cnblogs.com/someone-device/p/12213388.html
本文涉及如下BLE问题:
-
BLE设备是如何被发现的
-
如何快速的找到BLE设备或者如何降低广播阶段的功耗
-
BLE广播通道/频道(channle)上的PDU
1. 广播的目的
- 让别人能发现自己,对于一个不广播的设备,周围设备感觉不到其存在的,因此,要让别的设备能发现,则必须向外广播,在广播中可以带上丰富的数据,比如设备的能力,设备名字以及其他自定义的数据,这也就有了第二种可能。
- 给不需要建立连接的应用广播数据,比如一个BLE温度计,其本身可以不接收任何连接,而可以选择通过广播将温度发送出去。检测者只要监听广播就能获取当前的温度。
扫描者只有在收到广播数据后,才能去与广播者建立连接。广播是周期性的将广播数据从广播通道上发送出去,这里有如下几个问题:
1. 广播通道,广播数据是在37/38/39通道上将广播出去,当然也可以只配置在某一个广播通道上发送
2. 广播数据:即广播类型的PDU,广播所携带的信息。
3. 周期性:即广播间隔(advertising interval)
一个广播包在37,38,39分别广播出去为一个广播事件(Advertising event),
以一定的时间间隔广播数据,这个间隔称为称为advertising interval,为了改善设备的兼容性,在两个广播时间间隔之间,还有加上一个随机的0-10ms的delay时间。
时间关系如下:
Advertising event的周期= advertising interval + delay
其中:delay是一个0-10ms的随机数