蓝牙常见断开错误码解释

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

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dear_Wally

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值