在上几篇博客中,形象的讲解了BLE各个层的作用,各个层的数据结构。本篇博客将研究BLE协议抓包。
在实际开发中,有一个*设备(central)和一个外设(Peripheral)。所谓*设备就是指它可以识别出周边的蓝牙设备,可以发起连接。所谓外设就是手环等。*设备和外设之间传递数据,我们使用一个抓包工具sniffer,来抓取空中传递的数据,进而分析和调试。
在实际开发中,抓包涉及的硬件框图如下:
但是在学习的过程中,使用下面的结构。
使用手机来模拟外设,在安卓手机上可以运行一个软件:com-ble-peripheral-sim.apk,使用该软件可以非常方便的创建各种蓝牙外设,创建各种服务。在实际开发中,可能使用一个手机当做*设备。在学习中,使用一个usb蓝牙模块,将该蓝牙模块接到pc机上,使用pc机上的软件可以通过这个usb蓝牙模块去发现各种外设,连接各种外设,去修改、读写外设的值。无论是实际开发还是学习,都需要一个sniffer。
总结:
1. 使用手机来模拟蓝牙外设(Peripheral),可以很方便地新建外设的服务。
2. 使用USB蓝牙模块(CSR8510A10)作用蓝牙*设备(Central),在PC上运行Bluetooth LE Explorer,可以很方便地去连接、设置蓝牙外设。
3. 使用Sniffer来抓包,它是一个硬件。
抓包过程涉及三个软件:
a. Windows PC:Bluetooth LE Exploer
用于控制蓝牙*设备,发起连接外设、操作外设。
从Microsoft Store安装即可。
b. Windows PC:Wireshark
抓包软件,通过Sniffer硬件来抓包。
安装、使用方法参考文档《BLE_sniffer抓包工具使用手册》
c. Android手机:com-ble-peripheral-sim.apk
BLE外设模拟软件,可以很方便地新建BLE服务。
首先运行sniffer对应的抓包软件,即wireshark。
运行usb蓝牙模块对应的软件Bluetooth LE Exploer