2,367
个编辑
更改
BLE技术揭秘
,→广播
=== 广播 ===
广播是指从机每经过一个时间间隔发送一次<code>广播数据包</code>,这个时间间隔称为<code>广播间隔</code>,这个广播动作叫做<code>广播事件</code>,只有当从机处于广播状态时,主机才能发现该从机。
在每个广播事件中,广播包会分别在37,38和39三个信道上依次广播,如下图所示。[[文件:BLE技术-广播信道.png|居中|无框|735x735像素]]广播时间间隔的范围是从20ms到10.24s,广播间隔影响建立连接的时间。24s,广播间隔影响建立连接的时间。广播间隔越大,连接的时间越长。 另外BLE链路层会在两个广播事件之间添加一个0~10ms的随机延时,保证多个设备广播时,不会一直碰撞广播。也就是说,设置100ms的广播间隔,实际上两次广播事件的时间间隔可能是100~110ms之间的任意时间。[[文件:BLE技术-广播间隔偏差.png|居中|无框|750x750像素]]
广播数据包最多能携带31个字节的数据,一般包含可读的设备名称,设备是否可连接等信息。
扫描动作有两个比较重要的时间参数:<code>扫描窗口</code>和<code>扫描间隔</code>,如果扫描窗口等于扫描间隔,那么主机将一直处于扫描状态之中,持续监听从机广播包。
[[文件:BLE技术 扫描窗口和扫描间隔.jpg|居中|无框|520x520像素]]
* 被动扫描,主机监听广播信道的数据,当接收到广播包时,协议栈将上上层(也就是应用层,用户可编程)传递广播包。
* 主动扫描,主动扫描是在被动扫描的基础上,当接收到广播时,主机会发送一个扫描请求,从机收到该请求时,会再次发送一个称作<code>扫描回应</code>的广播包。
所以,主动扫描比被动扫描,可以多收到扫描回应数据包。
=== 连接 ===