百度网站安全检测平台,网页版登录入口,知乎营销平台,装修设计效果图免费软件1、Slave latency基本概念
当BLE从设备对耗电量要求较高时#xff0c;若需要节省耗电量#xff0c;则可以通过设置Slave Latency参数来减少BLE从设备的耗电。
Slave Latency#xff1a;允许Slave#xff08;从设备#xff09;在没有数据要发的情况下#xff0c;跳过一定…1、Slave latency基本概念
当BLE从设备对耗电量要求较高时若需要节省耗电量则可以通过设置Slave Latency参数来减少BLE从设备的耗电。
Slave Latency允许Slave从设备在没有数据要发的情况下跳过一定数目的连接事件在这些连接事件中不必回复Master主设备的包。
Slave在这些跳过的期间RX功能也不会开启实测NXP KW38芯片即不会收到Master的蓝牙数据帧。故Slave在这些跳过的期间既不接收也不发送就能更加省电。
举例
当Slave latency0时主设备每次发送数据从设备都会响应具体如下图 当Slave latency3时表示主设备发送4次数据从设备响应1次。具体如下图 蓝牙5.1协议栈中规定Slave latency参数的取值范围是0x0000 ~ 0x01F3即0 ~ 499具体如下表第三个参数 标准除了要求Slave latency的取值范围为0 ~ 499外另外还要求Slave latency的取值范围为
0 ~ ((connSupervisionTimeout / (connIntervalMax*2)) -1).
反之connSupervisionTimeout要大于2 * Interval_Max * (Latency 1)。
蓝牙5.1协议栈标准里有一句话如下
The connection slave latency used before the instant is known as connSlaveLatencyOLD.
The connection slave latency contained in the LL_CONNECTION_UPDATE_IND PDU and used at the instant and after, is known as connSlaveLatencyNEW.
从这句话可知 slave latency 生效的时刻是通过LL_CONNECTION_UPDATE_IND PDU的intstant参数来约定的。即在约定的InstantEventCount时刻及之后采用新的Slave latency。 2、通信过程中Slave latency切换流程
2.1 整体流程
根据蓝牙协议5.1.7章节Connection Parameters Request procedure流程可进行蓝牙相关连接参数的更新主要包含connInterval, connSlaveLatency and connSupervisionTimeout等几个参数的设置。通过LL_CONNECTION_PARAM_REQ、LL_CONNECTION_PARAM_RSP、LL_CONNECTION_UPDATE_IND等PDU进行参数设置。
大体流程为 2.2 实际数据解析
整体流程结合数据流解析如下图 2.2.1 步骤2
上图步骤2Master通过LL_CONNECTION_PARAM_REQ请求Slave更改Slave latency为3同时包含connInterval, connSupervisionTimeout等参数具体数据流截图如下 2.2.2 步骤3
上图步骤3Slave通过LL_CONNECTION_PARAM_RSP响应Master返回的参数与LL_CONNECTION_PARAM_REQ命令相同Slave latency为3同时包含connInterval, connSupervisionTimeout等参数。具体数据流截图如下 2.2.3 步骤4
上图步骤4Master通过LL_CONNECTION_UPDATE_IND请求Slave表示双方已完成Slave latency的设置协商并通过该PUD中的Instant参数约定在某个EventCount之后开始生效新的Slave latency。具体数据流截图如下 2.2.4 步骤5-10
等待新的slave latency生效在这期间按照旧的slave latency进行通信。 2.2.5 步骤11
在步骤4中通过Instant参数约定在该EventCount如上图示例的9612之后开始生效新的Slave latency。实际测试发现在此EventCount的通信交互中Slave一定会响应。 2.2.6 步骤12及之后
新的Slave latency3生效从设备4 次响应1次主设备的请求以达到节电的效果。 3、总结
1) Slave Latency允许Slave从设备在没有数据要发的情况下跳过一定数目的连接事件在这些连接事件中不必回复Master主设备的包。假设Slave latency为3则表示主设备发送4次请求从设备才响应1次。
2) 但若从设备本身有数据要立即发送则可以搭载在最近的连接事件中发送无需等到Slave latency到达才发送。
3) 通过LL_CONNECTION_PARAM_REQ、LL_CONNECTION_PARAM_RSP、LL_CONNECTION_UPDATE_IND等PDU来进行参数Slave latency设置。
4) 上面命令中同时进行connInterval, connSlaveLatency and connSupervisionTimeout等三个参数的设置。
5) 大体设置流程如下图