在上幾篇博客中,形象的講解了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