【BLE】更新蓝牙连接参数(LL_CONNECTION_PARAM)

BLE 5.0SPEC对这LL_CONNECTION_PARAM的相关参数说明如下图所示:

这部分内容在SPEC的BLUETOOTH SPECIFICATION Version 5.0 | Vol 6, Part B | 2.4.2.16章节。这里主要关注几个参数,Interval_Min, Interval_Max, Latency。SPEC对这三个参数的解释如下所示:

从上面的解释说明了Interval_Min, Interval_Max都是1.25ms的倍数,其中这两个参数统称为connInterval,另外SEPC对connInterval还做了如下说明:

这段话说明了最快的connInterval = 7.5ms,最慢的是4.0s,而最终采用哪个参数取决于主机发送的CONNECT_IND PDU。

SPEC关于Lantency的描述:

这段话大概的意思是说BLE连接后,主机会定时发送一个包来确认从机是否保持连接,通过修改Lantency可以让从机放弃监听主机若干个连接包,但同时SPEC也规定了Lantency的范围是0~( (connSupervision Timeout/(connInterval*2)) - 1 ),超出这个范围就会触发Timeout事件,断开连接。

SPEC对CONNECTION PARAMETERS REQUEST的通信流程在BLUETOOTH SPECIFICATION Version 5.0 | Vol 6, Part D | 6.12 CONNECTION PARAMETERS REQUEST章节有说明。

通过BLE抓包器观察连接参数更新的过程,Side = 1是Master,2是Slave。

LL_CONNECTION_PARAM_REQ PDU分析:

LL_CONNECTION_PARAM_RSP PDU分析:

这里可以看出这两个数据包的参数都是相似的,区别就是数据包的类型一个是REQ一个是RSP。

LL_CONNECTION_UPDATE_IND PDU分析:

这部分内容在SPEC BLUETOOTH SPECIFICATION Version 5.0 | Vol 6, Part B | 2.4.2.1章节

在updateLantency过程中主机可以回复两个包,一个是LL_CONNECTION_UPDATE_IND PDU,另一个是LL_REJECT_EXT_IND PDU,前者是更新连接参数成功,后者是失败,这个在SPEC中也有说明。

补充说明:

你可能感兴趣的:(【BLE】更新蓝牙连接参数(LL_CONNECTION_PARAM))