背景介绍
空口抓包仪是蓝牙开发过程中非常有帮助的工具,开发人员可以根据现场抓到的空中包/HCI 更快发现问题所在。
本文针对工作中用到的Ellisys抓包仪总结遇到的一些常用技巧以及注意事项。
Ellisys抓包仪如下图所示几个型号,都提供一系列功能,实现对蓝牙技术的协议、性能和射频行为进行各种分析和特征描述,用于捕获和分析Wi-Fi、WPAN(IEEE 802.15.4)、主机控制器接口(HCI)标准以及几种有线协议。
具体支持哪些协议需要根据实际需要购买,支持的功能不同设备的价格不同。
使用小技巧
过滤感兴趣的 BLE 设备
将需要抓包的设备添加到filter里边,如果需要抓取多设备的空中包,可以添加多个设备,并选择"Keep involving Selected Devices".
抓取HCI Log
在Ellisys软件配置 SPI HCI,Record--> Recording options
将Ellisys排线对应连接板子上IO即可,开发板一般会将HCI传输对应的IO拉出来用来调试
保存 Log
将抓取的空中包保存到本地时,可以选择 “Save filter copy”,这样只保存过滤设备相关的数据,文件会相对较小,方便共享。可以直接点击这个图标
查看数据吞吐
View-->Throughput,可以用来监控数据传输的吞吐情况,比如数据传输的基本速率,以及是否均匀等
信道干扰
View-->Channles,可以看到平均以及实时的信道数据传输情况,通过重传以及错误数据可以大致了解当时环境的干扰情况,一般情况重传在10%左右都是正常的,如果干扰严重可能达到20%-30%
添加 Marker/Note
为方便其他人查看Log, 可以在问题点附近的Log 打标签。右键或者单击左侧空白处,会添加Marker, 也可添加note,然后在右上角的Markers可以看到添加的marker并跳转到对应的位置。
过滤指定的 packet
在 Item 栏点击向下的小箭头,选择"Add or edit filter",
然后在 Item 中填写想要过滤的 packet,如下图所示:
过滤的效果:
显示时间戳
可以更清晰地查看空口包发生的具体时间,Time --> Display, local是当地时间,UTC是格林尼治时间
查看两个 packet 之间的时间差
选中一个 packet 后,按下Ctrl键,然后选择另一个packet
尤其是定位断开问题时,可能需要确认重新广播距离最后一次数据传输的间隔,还有比如查看ATT response 距离 request 有多少时间
解密空中包
View --> Security, 双击 Key 字段的下方空白,输入LTK值,LTK可以从手机的 HCI 获取,或者从设备侧log 打印获取。
PC 不识别 Sniffer 设备
如果遇到PC不识别 Sniffer 的情况,可以尝试重新对Sniffer 上电,或者插拔USB,尝试 PC 上其他的 USB 端口,如果使用的是USB hub,可以尝试将Sniffer 的 USB 直接连接PC.
软件升级
Help--> 选择离线或者在线升级
更多细节可参考 User Guide
参考文档
Ellisys Bluetooth Analyzer User Manual