2024-07-02
GR5526 GUI专题(4) - Lvgl字体的位图数组合并转换为bin文件的说明
写技术文章
精选推荐
Ping
1. 断链概念介绍
参考如下BLE Link Layer状态机示意图,建立连接是指master从发起态进入连接态,slave从广播态进入连接态,此后双方应维持连接心跳;断开连接是指双方不再维持周期性的连接心跳,返回standby状态,可分为主动断链及被动断链。
2. 常见断链原因
BLE断链原因定义可参考ble_error.h头文件定义,断连相关的error_code为spec error_code + 0x90,spec error_code可参考BLE Spec Core System Package [BR/EDR Controller volume] Part D章节介绍。
3. 断链问题分析及方法
Step0:梳理问题出现的背景及关键信息:如软硬件环境(确保RF性能满足Spec要求,例如接收灵敏度,发射功率等)、复现条件、复现概率、复现步骤等;
Step1:可参考< 如何开启BLE协议栈日志打印 >方法打开协议栈日志,确认断链原因错误码,定位问题大致方向;
Step2:使用Ellisys抓空口包,确认问题直接原因;
Step3:基于Step2的结果,case by case的分析问题根本原因,例如通过GPIO拉出BLE调度信号,打开协议栈日志等;
详细步骤总结如下:
4. 案例分析
(1) 0x98断链案例一:蓝牙无调度
问题描述:BLE概率性出现0x98断连
分析过程:抓空口包分析 :断连前对端有发包,本端不回复
拉出BLE调度信号:断连前rxen未拉起(每个周期的rxen 需要软件在瞄点前响应ble_isr,进行配置才能拉起)
可能原因:软件挂死,或者关全局中断超过4s,需要进一步通过日志或者拉信号确认是否是上述原因
(2) 0x98断链案例二:蓝牙有调度,但是收不到
问题描述:BLE概率性出现0x98断连
分析过程:抓空口包分析:断连前对端有发包,后来没发包
确认测试步骤:中途对端设备远离了测试环境,远距离达到灵敏度极限下,收不到包符合预期
备 注: 若中途对端设备未移动且距离较近,则需交由对端分析
(3) 0x98断链案例三:RX开窗较晚
问题描述:在高温焊接场景概率性出现断连
分析过程:抓空口包分析:断连前对端有发包,本端不回复
拉出BLE调度信号分析:rxen信号有调度但开窗时间晚于对端发包时间,无法收到
根因分析:32K时钟相关,PMU_CALIBRATION_ENABLE未使能,导致温度升高后未对32K时钟进行校准,频率偏差较大,LE rx开窗时机变晚
(4) 0xB8断链案例一:关中断
问题描述:BLE概率性出现0xB8断连
分析过程:抓空口包分析:对端正常发送,本端长时间未回复ACK导致过时
拉出BLE调度信号分析:不回包期间rxen概率性无调度
可能原因:长时间关中断,排查关全局中断情况 ,重点排查flash擦写/SPI读写等
(5) 0xCE断链案例
问题描述:手机连接GR5515概率性出现0xCE断连
分析过程:抓空口包分析:查看手机是否在连接链路瞄点发包,查看结果为否
原因描述:为手机端问题,原因是手机端发出conn ind包后,未在连接链路上发连接包,导致建连失败
(6) 0xA3断链案例
A:对端主动断连——人为操作
B:对端主动断连,本端超时未回应对端的SMP/GATT流程,比如:手机端发起配对请求,设备端没有回Resonse,30之后手机端会主动发起断连
(7) 0xCD断链案例
问题描述:OTA过程中存在低概率自动重启问题,初步分析原因是蓝牙产生了0xCD断连
分析过程:抓到有效的解密后的空口包分析,确认跟本端收到mic_err包有关,进一步确认是对端加密问题
原因描述:对端(手机)概率性地使用了错误的CCM packet counter进行加密,导致我们校验失败
参考资料:
1. Bluetooth Core Specification V5.2
打开微信,使用“扫一扫”即可关注