BLE是Bluetooth Low Energy的缩写|BLE入门谈:从空中数据收发理解BLE(上)( 四 )


BLE是Bluetooth Low Energy的缩写|BLE入门谈:从空中数据收发理解BLE(上)
文章图片
除了主机和从机的BLE地址之外 , LLData部分包含了许多字段:
AA:AccessAddress,用于数据信道数据包中
CRCInit:随机生成的CRC初始值
WinSize:ConnectionEventTransmitWindowSize,以1.25ms为单位
WinOffset:同上 , TransmitWindow的时间偏移量
Interval:ConnectionEvent的间隔时间
Latency:SlaveLatency参数
Timeout:connSupervisionTimeout参数 , 以10ms为单位
ChM:标记要使用的数据信道
Hop:hopIncrement,是跳频算法的参数
SCA:主机的sleep时钟误差参数
由以上这些字段决定了BLE连接的初始参数 。 从机如何知道主机会在什么时候 , 在那个信道发送数据包?请看下面这个图:
BLE是Bluetooth Low Energy的缩写|BLE入门谈:从空中数据收发理解BLE(上)
文章图片
实际上 , 主机和丛机约定了一个未来的时间窗口 , 主机会在那个时间窗口内发送第一个数据包 , 从机需要保持监听 。 因为双方约定了一个时间窗口 , 无线电RX状态的时间就可以缩短了 , 就控制了功耗 。 主机发送数据包之后 , 转到接收状态 , 丛机接收到主机的数据包 , 也会很快回应一个数据包 , 这两次双向的数据交互时间是可以预计的 , 不存在无用的RX等待状态 。 然后 , 主机在一个连接间隔(connInterval)之后的时刻再次发出数据包 , 也就是新的connection事件开始 , 不过通信信道由自适应跳频算法重新选择 。 上图只画了最简单的状态 , 实际一个connection事件可以有多次的双向数据包交互 。
把从机和主机并排起来看:
BLE是Bluetooth Low Energy的缩写|BLE入门谈:从空中数据收发理解BLE(上)
文章图片
上图还展示了BLE连接状态的一个特性:slavelatency,即允许从机不响应一些(可能是没有收到的)数据包 , 而连接暂时能保持 , 不断掉 。 因为双方的时间间隔约定还在 , 后续只要成功交互就可以恢复通信 。
BLE连接状态下的数据包格式本文就不列出了 , 因为涉及到LinkLayer层的许多内容 , 要深入了解的朋友可以参阅蓝牙Corespecification4.0以后版本文档 。
本文的目的在于给大家一个BLE的底层是怎么工作的一个整体印象 , 以及认识到它是怎样实现低功耗的无线数据交互的 。
来源:电子工程世界