天天看點

CC2640R2F BLE5.0 PacketSniffer BLE 抓包PacketSniffer BLE 抓包

CC2640R2F BLE5.0 PacketSniffer BLE 抓包PacketSniffer BLE 抓包
CC2640R2F BLE5.0 PacketSniffer BLE 抓包PacketSniffer BLE 抓包
CC2640R2F BLE5.0 PacketSniffer BLE 抓包PacketSniffer BLE 抓包

PacketSniffer BLE 抓包

對于任何複雜協定的深入學習,我們都建議一個通用的學習方法,從規範->實作->抓包,規範是無關程式設計語言、文法文檔表達,實作是各家SDK、API、源碼,對于抓包則是對應實作了解規範。是以在BLE學習、研發過程抓包尤為重要。TI在這方面相比來說是做得相當好了,極大的簡化了BLE的學習,熟練使用抓包工具,會大大降低藍牙協定的技術入門檻,起到事半功倍的效果。

對于藍牙空中抓包,暫時地我們隻有使用CC2540 USB Dongle。成功下載下傳PacketSniffer直接輕按兩下安裝。

使用

安裝

成功安裝PacketSniffer,我們直接插入CC2540 USB Dongle到PC,會自動安裝驅動,成功安裝驅動後,再裝置管理器我們能夠發現以下裝置。

CC2640R2F BLE5.0 PacketSniffer BLE 抓包PacketSniffer BLE 抓包

選擇啟動PackeetSniffer,并且選擇Bluetooth Low Energy

CC2640R2F BLE5.0 PacketSniffer BLE 抓包PacketSniffer BLE 抓包

界面功能

我們将詳細講解界面功能,

  • 開始/停止抓包 自動滾輪
    CC2640R2F BLE5.0 PacketSniffer BLE 抓包PacketSniffer BLE 抓包
  • Capturing Device

    目前用以抓包的的硬體裝置,我們這裡的為CC2540 USB Dongle

  • Radio Configuration

    Advertising Channel 廣播信道,在藍牙概述 我們已經講到 藍牙40個信道保留了3個用以廣播,預設廣播信道會配置37、38、39全部進行廣播,這裡我們也可以指定某一個信道進行廣播抓包。

    CC2640R2F BLE5.0 PacketSniffer BLE 抓包PacketSniffer BLE 抓包
  • Select fields

    選擇抓包指定協定層,指定類型顯示,除非我們對協定分層和PDU有很好認識,否則這裡我們保持全部選擇。

  • Display filter
    CC2640R2F BLE5.0 PacketSniffer BLE 抓包PacketSniffer BLE 抓包
    顯示過濾,此功能就強大了,同樣建立在我們對協定分層很好認識,否則這裡的過濾将無從下手。

    Field Name

    表示支援的過濾選項,選擇後會在

    Template

    視窗進行配置的過濾規則模闆顯示,設定好直接Add進行添加規則。注意這裡模闆視窗,可以通過“;”進行分割,分割的關系是“與”,同可以通過Add多次添加過濾規則關系是“或”。

    作為一個負責任的公司就一定會講解這裡過濾規則的

    FiledName

    。對于這裡的過濾規則主要是通過PDU(協定資料單元)不同的域進行過濾,主要參考 藍牙核心标準->Vol 6: Core System Package [Low Energy Controller volume]->Part B: Link Layer Specification->2 Air Interface Packets
    FiledName Description example
    AccessAddress 接近位址,正如我們知道,BLE通過跳頻在37個信道切換,切換的規則就是這裡AccessAddress。
    ADV_PDU Type 廣播協定資料單元 類型,APT=x,x表示ADV_IND、ADV_CONNEREQ
    ADV_CONNREQ AdvA 廣播連接配接請求的廣播的位址,AA6=x x表示廣播的裝置的MAC位址,例如AA6=0x546C0E9B69D9
    ADV_CONNREQ InitA 廣播連接配接請求的發起者位址 IA2=x x 表示初始化廣播連接配接的裝置位址。
    ADV_DIR_IND AdvA
    ADV_DIR_IND InitA
    ADV_DISC AdvA
    ADV_IND AdvA 指定某個MAC位址裝置的廣播,過濾 AA1=x x表示
    ADV_NONCONN AdvA
    ADV_SCANREQ AdvA 掃描請求到某個廣播裝置位址過濾,AA4=x
    ADV_SCANREQ InitA 發起掃描請求的裝置位址過濾,SA1=x
    ADV_SCANRSP AdvA 廣播裝置對掃描請求進行的回複,AA5=x
    Chanel
    CRC
    Data Type
    Data Type
    FCS ERROR
    FCS OK
    Opcode
    PktNumber
    RSSI

過濾規則舉例

  • 過濾顯示某個裝置的廣播資料(ADV_IND AdvA)

    指定裝置MAC位址為x546C0E9B69D9,通過添加規則 

    AA1=0x546C0E9B69D9

     後點選Apply filter 使能規則。
    CC2640R2F BLE5.0 PacketSniffer BLE 抓包PacketSniffer BLE 抓包
  • 過濾某兩個裝置之間的掃描請求和回複

    對于抓包,我們需要監聽手機A(Scanner/Iniator/Master)和藍牙開發闆B(Advertiser/Slvae)之間的掃描過程。應用規則

    AA5=0x546C0E9B69D9;SA1=0xB0912269FE40

注意:注意規則的";"分号間隔表示兩條規則需要同時滿足;
CC2640R2F BLE5.0 PacketSniffer BLE 抓包PacketSniffer BLE 抓包
  • 連接配接請求
    CC2640R2F BLE5.0 PacketSniffer BLE 抓包PacketSniffer BLE 抓包
    我們需要顯示手機A(Scanner/Iniator/Master)和藍牙開發闆B(Advertiser/Slvae)之間的連接配接過程。應用規則

Troubleshooting

  • 設定位址警告
---------------------------
GenPacketSniffer
---------------------------
Invalid format of initiator address. Should be given as 12 hex digits.
Examples of correct format: 0x0123456789AB, 0x112233445566, 0xFFFFFFFFFFFF.
---------------------------
确定   
---------------------------
           

位址格式不對。

  • 抓不到藍牙建立連接配接

加入我們

文章所有代碼、工具、文檔開源。加入我們QQ群 591679055擷取更多支援,共同研究CC2640R2F&BLE5.0。

CC2640R2F BLE5.0 PacketSniffer BLE 抓包PacketSniffer BLE 抓包

© Copyright 2017, 成都樂控暢聯科技有限公司.

繼續閱讀