连接参数
前一部分已简要提到连接间隔和连接监督超时,这些参数连同“从设备延迟”都由中心在连接请求包中设定。外围设备延迟允许外围在无数据可发时跳过一部分连接事件的唤醒。
射频模式(1M、2M、Coded PHY)默认设为1M以保证兼容性,但连接后可以更改。数据长度和MTU(最大传输单元)也都有默认值,也可在后续操作中更改。]
连接间隔
蓝牙LE设备大部分时间都“休眠”(这正是低功耗的原因)。连接状态下,双方约定一个连接间隔,规定多久通信一次。每次数据交换完成,双方就关闭射频模块,进入空闲,定时器倒计时,定时唤醒再次通信。这全部由协议栈自动管理,应用只需设定期望的通信频率(即连接间隔)即可。
监督超时(Supervision Timeout)
两设备连接后,会约定一个参数用于判定失联的最长等待时间——这就是监督超时。如果某一方设备意外关机、掉电或超出通信距离,多久未收到对方数据包时被认为连接已丢失。超时时间是最后一个包成功接收之后开始计时的。
从设备延迟(Peripheral Latency)
外围设备允许在没有数据要发时,连续几个连接事件都不唤醒。该机制叫外围延迟(peripheral latency),能降低功耗但增加通信延迟。适用于如鼠标、键盘等大部分时间“静默”但偶尔要低延迟响应的场景。通过调高peripheral latency参数,可多次休眠减少唤醒次数,既省电又保证响应。
PHY射频模式
普通蓝牙LE(1M PHY)为1Mbps速率,蓝牙5.0后还引入了2M PHY(2Mbps高速度)和Coded PHY(低速率长距离),支持你按需切换。2M PHY数据更快、用时更短、功耗更低但距离稍短;Coded PHY牺牲速率大幅提升距离。
数据长度与MTU
默认MTU为23字节,数据长度为27字节。如果MTU大于数据长度,如MTU为140,数据长度为27,协议栈会自动将大数据分割为若干包发送。对于应用而言是一条消息,实际无线是分片的。

理想情况是全部数据能装进一个包,这样射频开机时间最短,所以蓝牙4.2引入了DLE(Data Length Extension),可将数据长度由27增大至251字节。大包传输能减少空中发送字节数,也节省每包3字节头部,加速/省电/吞吐更高。
空中单包最长251字节,实际可用最大载荷为244字节(251-4 L2CAP头-3 ATT头=244)。

参数更新
如数据长度,默认27字节,外围希望提升到200时可发起请求,中心若仅支持180会回复180,最终达成一致。
默认PHY是1M,默认MTU是23字节。
您的资助是我最大的动力!
金额随意,欢迎来赏!

浙公网安备 33010602011771号