1. 程式人生 > >cc2540 usb-dongle的 SmartRF Packet Sniffer 抓取資料方法

cc2540 usb-dongle的 SmartRF Packet Sniffer 抓取資料方法

 我們需要明白的是,ble的廣播是可以指定廣播通道的,廣播通道分別是37、38、39, 但TI的協議棧官方例程裡已經預設設定了在廣播階段 同時三個通道一起廣播,但是一旦跟主機連線上後,就只在其中的一個通道傳輸資料,所以我們是要指定其中的一個通道的, 可惡的是, 這個連線上的通道也是隨機的, 我們可以在抓取到連線包後, 填入發起者(即是主機)的地址和通道即可。

       下面我們用 TI官方例程  SimpleBLEPeripheral  結合 cc2540 usb-dongle  和  SmartRF Packet Sniffer  軟體來實現資料包的抓取和讀寫

       【1】首先要讓開發板跑 SimpleBLEPeripheral , 這裡不是重點, 先不說哈。

       【2】然後,把燒錄了“ sniffer_fw_cc2540_usb.hex” 韌體的 usb-dongle插入到pc, 如果沒有安裝驅動, 是要安裝的驅動的, 但是如果你已經安裝了 SmartRF Packet Sniffer 軟體, 那麼驅動就已經預設安裝了。

       【3】 執行 SmartRF Packet Sniffer 。如下圖:


上圖, 描述的是, 一旦主機和從機連線上後, 到

這一行, 抓包就不在顯示了, 這個時候, 如上填入地址, 並選好通道號, 然後再重新復位從機,主機重新連線,這個時候不一定  SmartRF Packet Sniffer 就能顯示到連線後的資料包, 如果不能連線上, 就試試  把  改成 38、 39等等, 多試試幾次, 就會出現下面圖了。(下圖表明抓取到了ble的資料包)


下面用lightblue進行一個char1的讀操作, lightblue讀取到了0x04.(lightblue是ios上很牛的一個軟體, 如果不知道, 可以先看看我先前的文章哈,



下面用lightblue進行一個char1的寫操作, lightblue寫入0x01.