BLE入门谈:从空中数据收发理解BLE(上)( 四 )
BLE要做到主机和从机的功耗都小 , 其要点 , 我概括为“在事先约定的时间地点碰头” 。上面所描述的从机advertising阶段 , 主机因为无法得知从机在哪个时刻在三个信道中的哪一个广播 , 不得不采取守株待兔的办法 , 所以主机耗电不能像从机那样低 。但是两者建立BLE连接之后就不一样了 , 现在回顾主机为了建立连接向从机发送的CONNECT_REQ包的Payload内容:
文章图片
文章图片
除了主机和从机的BLE地址之外 , LLData部分包含了许多字段:
AA: Access Address, 用于数据信道数据包中
CRCInit: 随机生成的CRC初始值
WinSize: Connection Event Transmit Window Size, 以1.25ms为单位
WinOffset: 同上 , Transmit Window的时间偏移量
Interval: Connection Event的间隔时间
Latency: Slave Latency参数
Timeout: connSupervisionTimeout参数 , 以10ms为单位
ChM: 标记要使用的数据信道
Hop: hopIncrement, 是跳频算法的参数
SCA: 主机的sleep时钟误差参数
由以上这些字段决定了BLE连接的初始参数 。从机如何知道主机会在什么时候 , 在那个信道发送数据包?请看下面这个图:
文章图片
文章图片
实际上 , 主机和丛机约定了一个未来的时间窗口 , 主机会在那个时间窗口内发送第一个数据包 , 从机需要保持监听 。因为双方约定了一个时间窗口 , 无线电RX状态的时间就可以缩短了 , 就控制了功耗 。主机发送数据包之后 , 转到接收状态 , 丛机接收到主机的数据包 , 也会很快回应一个数据包 , 这两次双向的数据交互时间是可以预计的 , 不存在无用的RX等待状态 。然后 , 主机在一个连接间隔(connInterval)之后的时刻再次发出数据包 , 也就是新的connection事件开始 , 不过通信信道由自适应跳频算法重新选择 。上图只画了最简单的状态 , 实际一个connection事件可以有多次的双向数据包交互 。
把从机和主机并排起来看:
文章图片
文章图片
上图还展示了BLE连接状态的一个特性: slave latency, 即允许从机不响应一些(可能是没有收到的)数据包 , 而连接暂时能保持 , 不断掉 。因为双方的时间间隔约定还在 , 后续只要成功交互就可以恢复通信 。
BLE连接状态下的数据包格式本文就不列出了 , 因为涉及到Link Layer层的许多内容 , 要深入了解的朋友可以参阅蓝牙Core specification 4.0以后版本文档 。
本文的目的在于给大家一个BLE的底层是怎么工作的一个整体印象 , 以及认识到它是怎样实现低功耗的无线数据交互的 。
来源:电子工程世界
- 浅谈信通院MIMO OTA建设背景以及应用
- intelnuc11essential入门款发布
- 纸上谈兵模拟器赵国第三关怎么过(纸上谈兵模拟器赵国第三关通关攻略一览)
- 纸上谈兵模拟器新版本角色怎么选(纸上谈兵模拟器新版本角色培养建议)
- 灵魂宝戒新手开局怎么打(灵魂宝戒新手入门指南)
- 零号任务新手怎么玩(零号任务新手入门注意事项一览)
- 代号ATLAS新手怎么快速入门(代号ATLAS新手玩法技巧一览)
- 超级精灵手表新手怎么玩(超级精灵手表新手入门攻略分享)
- amdrenoir-x曝光:砍掉gpu集显单元
- 市委人才工作会议专家访谈⑦|市科技局:深入开展科技体制改革 厚植科技创新人才优势
