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连接的初始参数 。 从机如何知道主机会在什么时候 , 在那个信道发送数据包?请看下面这个图:
文章图片
实际上 , 主机和丛机约定了一个未来的时间窗口 , 主机会在那个时间窗口内发送第一个数据包 , 从机需要保持监听 。 因为双方约定了一个时间窗口 , 无线电RX状态的时间就可以缩短了 , 就控制了功耗 。 主机发送数据包之后 , 转到接收状态 , 丛机接收到主机的数据包 , 也会很快回应一个数据包 , 这两次双向的数据交互时间是可以预计的 , 不存在无用的RX等待状态 。 然后 , 主机在一个连接间隔(connInterval)之后的时刻再次发出数据包 , 也就是新的connection事件开始 , 不过通信信道由自适应跳频算法重新选择 。 上图只画了最简单的状态 , 实际一个connection事件可以有多次的双向数据包交互 。
把从机和主机并排起来看:
文章图片
上图还展示了BLE连接状态的一个特性:slavelatency,即允许从机不响应一些(可能是没有收到的)数据包 , 而连接暂时能保持 , 不断掉 。 因为双方的时间间隔约定还在 , 后续只要成功交互就可以恢复通信 。
BLE连接状态下的数据包格式本文就不列出了 , 因为涉及到LinkLayer层的许多内容 , 要深入了解的朋友可以参阅蓝牙Corespecification4.0以后版本文档 。
本文的目的在于给大家一个BLE的底层是怎么工作的一个整体印象 , 以及认识到它是怎样实现低功耗的无线数据交互的 。
来源:电子工程世界
- ios16|未受到电商冲击,理发店为啥还是纷纷倒闭?过来人说出真相
- 有人觉得中暑就是热出来的,吃一些退烧药就好了,这种做法 蚂蚁庄园今日答案6月28日
- 浮甘瓜于清泉,沉朱李于寒水”描述的是什么场面 蚂蚁庄园今日答案6月28日
- 为验证人类和黑猩猩,是否会产生新的后代,科学家找来5位姑娘!
- 喜马拉雅山出现的“雪人”是何生物?目击者:智商高、攻击性强
- 显卡|这就是RTX 4090 Ti显卡?又厚又重,超过三槽要1200W电源
- 土耳其发现四肢爬行人群,这是咋回事?科学家警告:人类要留心了
- 图像传感器|到手1849元重量189g这才是高性价比的骁龙870直屏手机
- “大家好,我是渣渣辉!”,最近刷爆朋友圈的港普大家来了解一下
- 在南极3500米的深海,科学家发现新物种,这是个透明的肉球?
