蓝牙常见断开错误码解释

发布时间:2023年12月31日

1、0x08连接超时断开

? ? ? ? 蓝牙协议,在建立连接时有个连接超时时间,建立连接时由主机决定,之后主从都可以申请更新连接超时时间。连接超时时间是指,主机或者从机连续3秒(假设当前连接超时是3秒)没有收到对方的信号时己方就会断开。比如建立连接之后,对方远离或者断电了,就会导致己方收不到对方的信号,达到超时时间之后己方就会断开。

2、0x13对方主动断开、0x16己方主动断开

? ? ? ? 当双方建立连接之后,如果己方需要断开连接,则可以发送命令通知对方断开。对方收到之后就会立即断开连接,己方也会断开。对方的错误码是0x13,己方的错误码是0x16

3、0x22响应超时断开

? ? ? ? 建立连接之后,有的命令发送之后对方需要有响应的,如果连续40秒都没有收到对方的响应,则连接会断开。比如下面这些命令,发送REQ之后,对方需要回复RSP

LL_ENC_REQ
LL_ENC_RSP
LL_START_ENC_REQ
LL_START_ENC_RSP
LL_FEATURE_REQ
LL_FEATURE_RSP
LL_PAUSE_ENC_REQ
LL_PAUSE_ENC_RSP
LL_CONN_PARM_REQ
LL_CONN_PARM_RSP
LL_PING_REQ
LL_PING_RSP
LL_LENGTH_REQ
LL_LENGTH_RSP
LL_PHY_REQ
LL_PHY_RSP

4、0x28参数过时断开

? ? ? ? 当需要更新参数时,并不是发送之后就马上更新,而是由主机确定一个时间点,双方达到这个时间点时才会更新这些参数。这个时间点就是连接事件数,建立连接之后每个连接间隔事件数会加1;

????????比如当前的连接事件数是100,更新参数时主机确认在事件数110(10个连接事件之后)时双方更新参数,主机会把这个值发给从机,双方都收到之后,当110事件数到达时双方就会使用最新的参数。如果信号不好从机一直没收到,那么主机会一直重发,如果在111之后才收到,那么这个时间已经过时了,就会触发0x28断开。

? 以下3个命令,速率更新、连接参数更新、通道更新,会触发这个断开

LL_PHY_UPDATE_IND
LL_CONNECTION_UPDATE_IND
LL_CHANNEL_MAP_IND

5、0x3d MIC校验失败断开

? ? ? ? 需要配对的设备才会出现这个错误,有3个原因会出现这个故障

????????1、在加密启动过程中,如果从机在接收到LL_ENC_REQ PDU后,或主机在接收到LL_ENC_RSP PDU后,主机或从机的链路层接收到来自对等链路层的意外数据物理通道PDU,则它应立即退出连接状态,并切换到待机状态。主机应被通知链接已断开,错误代码为由于MIC Failure导致的连接终止(0x3D)

????????2、在加密暂停过程中,如果从机在接收到LL_PAUSE_ENC_REQ PDU后,或主机在接收到LL_PAUSE_ENC_RSP PDU后,主机或从机的链路层接收到来自对等链路层的意外数据物理通道PDU,它应立即退出连接状态,并切换至待机状态。主机将被通知链接已断开,错误代码为由于MIC Failure导致的连接终止(0x3D)

????????3、在完成加密之后,加密数据包会附带一个4字节的MIC(Message Integrity Code)用于校验加密数据的完整性。这个MIC是在加密过程中生成的,它能够确保数据在传输过程中没有被篡改或损坏。当接收方在解密数据并检查MIC时,如果发现MIC和数据不匹配,那么就会认为数据已经被篡改,从而触发错误代码0x3D,错误代码为由于MIC Failure导致的连接终止(0x3D)

所谓“意外数据物理通道PDU”就是加密启动过程或者停止过程,只允许收到以下PDU
????????1、控制类命令
? ?????????????????LL_REJECT_IND
? ? ????????????????LL_REJECT_IND_EXT
? ? ????????????????LL_START_ENC_RSP
? ? ????????????????LL_START_ENC_REQ
? ? ????????????????LL_ENC_REQ
? ????????????????? LL_ENC_RSP
? ? ????????????????LL_PAUSE_ENC_REQ
? ? ????????????????LL_PAUSE_ENC_RSP
? ? ????????????????LL_TERMINATE_IND
? ?
????????2、数据帧,只允许空包


6、0x3E建立连接失败

? ? ? ? 主机:当主机扫描到从机的广播时,就会发送连接请求,并且主机进入连接状态。如果在6个连接事件内没有收到对方的信号,主机就会断开连接,返回0x3e

? ? ? ? 从机:当从机收到主机的连接请求之后,从机进入连接状态。如果在6个连接事件内没有收到对方的信号,从机就会断开连接,返回0x3e

文章来源:https://blog.csdn.net/dear_Wally/article/details/135315664
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。