在调试开发蓝牙Mesh产品时,除了打开设备端的Log外,有时还需要用到抓包工具分析空中的Mesh消息格式和交互流程是否正确。目前市面上的抓包仪器价格较贵,在缺少专业的抓包工具时,可通过泰凌自研的蓝牙Mesh包解密分析工具进行初步分析。
此工具只需用到1个TLSR8258 Dongle(以下简称Monitor)和1个串口模块,然后编译8258_mesh_monitor工程(SDK下载链接: http://wiki.telink-semi.cn/tools_and_sdk/BLE_Mesh/SIG_Mesh/sig_mesh_sdk.zip),烧录编译得到的8258_mesh_monitor.bin,入网后即可监听并解密当前Mesh网络内广播类型的Mesh消息,暂不支持GATT proxy pdu和解密用Device Key加密的Mesh消息。
操作步骤如下:
1配置Monitor串口
抓包工具使用8258_mesh_monitor编译选项,工程设置里已使能MESH_MONITOR_EN。与8258_mesh工程共用应用层代码,在头文件app_config_8258.h中通过宏UART_TX_PIN配置串口的IO。
Clean编译后得到8258_mesh_monitor.bin文件,烧录到Monitor中。
2连接串口硬件
把Monitor的uart tx和uart rx分别接到串口模块的rx和tx,打开串口调试助手(通用串口工具即可),选择对应的COM口,设置波特率115200,hex显示。
3把Monitor加入Mesh网络
Monitor在加入需要监听的Mesh网络前,相当于一个未配网节点,不开启监听功能。用App/网关把它加入Mesh网络后,会自动开启监听功能。
4Log解析
Monitor加入Mesh网络后,会通过串口解密输出监听到的Mesh网络内广播类型Mesh消息,格式为:
0xF5 + length + 0x2A(Mesh type) + Network PDU.
Network PDU对应下图结构体mesh_cmd_bear_t中红框内的成员变量,与Mesh spec中定义的PDU格式是一致的,根据格式解析上报的raw data就知道具体的Mesh消息。
如下图,网关把一个灯节点和Monitor加进来后,往Mesh网络分别发送了onoff set和自定义的vendor set消息,灯节点收到后回复了onoff status和vendor status。
5扩展功能
1、如果要监听默认网络的Mesh包(未执行组网操作之前的网络),可通过串口往Monitor下发命令开启监听功能。
a8 ff + 00 + monitor_en。
monitor_en为1开启,0关闭。
2、Monitor默认开启sno过滤(即relay protect list),如果需要关闭,可通过串口往Monitor下发命令设置。
a8 ff + 01 + sno_filter。
sno_filter为1开启sno过滤,0关闭sno过滤。
以上就是蓝牙Mesh包解密分析工具的操作步骤,通过抓取空中包,能够快速地定位和分析问题。
TLSR8258 Dongle 购买链接:
https://shop321349797.taobao.com/search.htm?spm=a1z10.1-c.w5002-24452846213.1.76af4a1c6oNHJz&search=y
关 于 泰 凌
泰凌微电子致力于为客户提供一站式的低功耗高性能无线连接SoC芯片解决方案,包括经典蓝牙,蓝牙低功耗,蓝牙Mesh,Zigbee,Thread,Matter,Apple HomeKit,Apple“查找(Find My)”,和私有协议等低功耗2.4GHz多协议无线连接系统级芯片和丰富的固件协议栈。公司产品广泛应用于智能照明,智能家居/楼宇,智能遥控,无线外设,智能零售,穿戴设备,无线音频,智能玩具,物流追踪,智慧城市等各类消费和商业应用场景中。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !