BLE蓝牙笔记----连接参数更新

本文是参考书籍 《BLE4.0 低功耗蓝牙 协议 总结 》整理的笔记,如有不适联系删除

 


1、主机连接参数更新


1.1、LL_CONNECTION_UPDATE_REQ

连接参数第一次是主机发送的 CONNECT_REQ 中传递的。 而这个命令的使用只限主机使用,也就是说主机根据需要随时都可以进行参数更新。从机接收到这个命令后要么使用参数,要么断开连接。 

LL_CONNECTION_UPDATE_REQ包格式

Instant :
在连接更新参数时,并不是请求发送过去,这些参数就立刻生效,是在约定的时刻进行更新。BLE 的同步是通过一个连接事件计数器控制的。而这个数据包中的 Instant 参数就是一个未来的连接事件计数器的次数。 当目前的连接事件的次数等于
Instant 的值的时候,连接参数开始投入使用,而对于 Instant 这次的连接事件就相当于一个新的连接建立的过程,只是这个过程都是在数据通道中完成



2、从机连接参数更新


L2CAP Channel ID:通道 ID。 0x0004、 0x0005、 0x0006 三个可选

0x0005 它是低功耗信令信道的固定信道, 这个信道上传输的是命令包, 那么它的上层是谁呢?数据给谁又由谁提供数据呢?答案是通用访问规范 Generic Access Profile(GAP), 只是有意思的是,GAP 并没有具体的数据包的格式,它只提供数据,真正的组包是在别的层。
 

Code:操作码,即 GAP 发送的命令或者接收的命令,对于 BLE 来说其实只有 3 个可用的命令

  • Command reject
  • Connection parameter update request,更新连接参数,比如最小连接间隔,最大连接间隔,slave latency等  一般是从机发给主机 
  • Connection parameter update response,接受或者拒绝上面的请求   一般是 主机回应从机

 

LL 层就可实现连接参数更新,那么从机也有更新连接参数的权利, 通过这个命令即可,而且这个命令只能由从机发送给主机,如果从机接收到这个命令后,会回复命令拒绝。它的命令包格式如图 3-5 所示

这里注意哦!里面的 4 个参数都是给的范围,也就是说从机不能最终决定具体连接参数值从机只能给主机提 出 自 己 的 想 法 , 如 果 主 机 同 意 更 新 , 那 么 需 要 主 机 发 送“ LL_CONNECTION_UPDATE_REQ”这个命令详细连接参数给从机,然后从机等到“瞬时”到后进行参数更新。

如果仅仅是从对等层来说, 当从机发送 Connection ParameterUpdate request 命令,主机需要发送 Connection Parameter Updateresponse 这个命令去回应。 如图 3-6 所示。 Result 为 2 个字节的结果代码。 当主机同意修改连接参数的时候, Result 为 0x0000, 也就是接受 参 数 更 新 的 建 议 。 当 主 机 不 同 意 修 改 连 接 参 数 的 时 候 ,Result=0x0001,拒绝参数更新


图解:

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值