蓝牙低功耗(BLE,Bluetooth Low Energy)版本4.0协议是蓝牙技术联盟(Bluetooth SIG)发布的一项重要更新,主要面向小型、低功耗的设备。该协议引入了新的数据发送机制,包括数据包确认和重发机制,以及多数据发送标志,以确保数据传输的可靠性与效率。 在BLE 4.0协议中,当两个设备建立连接后,数据包的发送机制通过报文头中的三个重要标志位进行管理:序列号(SN)、预期序列号(NESN)和更多数据(MD)标志位。这三个标志位都是1个位(bit)大小的信息,在报文头中仅用两个bit位即可实现数据包的确认和重发机制,展现了BLE协议在资源利用上的高效性。 序列号(SN)标志位用于确保数据包的顺序。在BLE 4.0中,每个数据包都会携带序列号,且序列号在每个包发送时都会改变,从而使得接收方能够通过序列号判断接收到的数据包是新的还是重复的。具体来说,序列号初始设置为0,每发送一个新的数据包,序列号就切换到与前一个不同的值,这样接收方就能够区分是新的数据包还是重发的数据包。 预期序列号(NESN)标志位是接收方用来指示其期待收到的下一个数据包序列号。当接收方成功接收了序列号为0的数据包后,它会在回传给发送方的数据包中将NESN设置为1,以此通知发送方继续发送新的数据包。反之,若未成功接收到序列号为0的数据包,NESN不更新,发送方将重发上一个序列号为0的数据包。这样,NESN标志位作为数据包确认机制,确保了数据的正确传递。 更多数据(MD)标志位用于通知对方设备还有更多数据需要发送。若MD标志位设置为1,则表示发送方还有数据要发送;若设置为0,则表示发送方没有更多的数据需要发送。这一标志位使得通信双方能够根据实际情况来决定是否延长当前的连接事件,从而在保证数据传输完整性的前提下,提高通信效率。 连接态的数据包发送过程中,这些标志位的实际应用如下: 1. 设备A(主设备)发送第一个数据包时,序列号为0,预期序列号也为0,并设置MD标志位为1,表示有更多数据要发送。设备B(从设备)正确接收后更新其预期序列号为1。 2. 由于设备B有更多数据需要发送,它也设置了MD标志位为1,并发送数据包。设备A未收到此包,因此预期序列号不更新,重发其数据包。 3. 设备B接收到了重发的数据包,由于序列号相同,认定为重传,不更新预期序列号,但继续发送其它数据包。 4. 设备A最终成功接收了设备B的数据包,更新预期序列号为1。设备B发送最后的数据包后,设置MD标志位为0,表示没有更多数据。连接事件随即关闭。 5. 一段时间后,主设备发起新的连接事件,并发送数据包,从设备接收并更新预期序列号后响应一个空包,因为此时没有数据要发送。 在上述整个过程中,SN、NESN和MD标志位协同工作,确保了数据包的可靠传输,并有效管理了设备间的通信事件。通过这种高效的协议机制,BLE技术能够为用户提供低功耗、高可靠性的无线连接体验。
- 粉丝: 7
- 资源: 10
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助