藍牙模塊抓包工具實測對比:nRF52832 Sniffer VS CC2540 Dongle
在藍牙的開發過程中,使用抓包器對藍牙模塊收發數據進行抓包BLE分析,無疑會極大地提高我們的研發開發效率,同時能幫我們快速地定位問題。對于初學者或者開發者來說,BLE抓包分析能讓我們更快地理解藍牙的工作過程。
市面上有幾款常見的抓包工具,本文詳細對比了Wireshark和TI CC2540 Sniffer軟件Packet Sniffer對藍牙模塊抓包的測試體驗。
經過測試Wireshark對比Packet Sniffer的使用體驗,主要有三點:
1. Wireshark優化的軟件布局和簡化的抓包流程。
2. Wireshark解析徹底的抓包數據結構,便于分析。
3. Wireshark對抓包數據提前解析數據包類型,方便查找到對應的數據包。
在測試中,我們選用了信馳達科技基于nRF52832的RF-DG-32A硬件抓包工具,其價格、性能、穩定性上要好于TI的CC2540 USB Dongle硬件,各位電子工程師們可以嘗試一下這款RF-DG-32A,點擊下圖購買。
當然本文重點是軟件方面的實測對比,具體的測試分析過程請看下面。
測試前做好軟硬件準備
硬件部分我們需要準備信馳達科技的基于nRF52832的RF-DG-32A硬件抓包工具以及測試的模塊:RF-BM-ND04模塊和RSBRS02ABR模塊。
軟件部分我們需要準備Android手機端軟件:nRF-connect,這個軟件在應用商店可以很容易找到下載。在PC我們需要下載安裝Wireshark軟件,它的下載地址如下:https://www.wireshark.org/download.html
以上軟硬件準備完畢后,我們就可以開始進行RF-DG-32A的抓包測試。
一、首先我們使用RF-BM-ND04模塊進行測試。
具體步驟為:
1. RF-DG-32A插上電腦的USB接口,然后打開“我的電腦”—“管理”—“設備管理器”—“端口”,查看設備的 COM 端口號。
2.Wireshark軟件,選擇對應的COM號,雙擊COM號進入。
3.將RF-BM-ND04模塊上電,打開手機上對應的軟件 nrf connect,查看設備的MAC 地址,軟件里可以看到RF-BM-ND04設備地址是FA:8D:0D:27:50:C6。
4.在Wireshark軟件中點擊“Device”選擇框,在下拉選項框中選擇MAC地址為FA:8D:0D:27:50:C6的設備。
5.手機端軟件nRF connect點擊“CONNECT”連接到藍牙模塊。
6.在手機端軟件nRF connect中選擇“Nordic UART Service”,在“TX”中發送數據 “rf-star”到模塊。
7.Wireshark軟件在模塊沒有發送數據前,數據包顯示是廣播包LE LL 格式。Wireshark抓包正確的數據包格式為ATT,我們只需要找到ATT格式數據包,并雙擊ATT即可查看數據 。
8.數據包界面如下圖所示,解析出接收到的數據為rf-star,收發一致。說明已經成功抓到該數據
我們更換發送的數據,重復上述發送數據步驟進行測試:
1.重復上述操作,手機發送的數據修改為:http://www.icp163.cn/。Wireshark抓包結果為:
2.手機多次向模塊發送同一個數據包:“rf-star”,抓包顯示的數據如下:
提示:在使用Wireshark時,可以注意幾個使用技巧,需要查看數據時可以先點擊停止捕獲按鈕(紅色),再觀察數據。需要重新抓取則需要點擊重新開始當前捕獲按鈕(綠色) ,點擊后需要把設備斷開連接,Wireshark會自動重新開始抓包 ,再重新連接上設備即可正常工作。 如果連接后發現Wireshark數據停止 則重新斷開設備連接并重新連接即可正常工作
二、接下來我們使用RF-DG-32A對RSBRS02ABR模塊進行測試抓包。
具體步驟為:
1. RF-DG-32A插上電腦的USB接口,然后打開“我的電腦”—“管理”—“設備管理器”—“端口”,查看設備的 COM 端口號。
圖1
2.Wireshark軟件,選擇對應的COM號,雙擊COM號進入。
圖2
3.將RSBRS02ABR模塊上電,打開手機上對應的軟件 nRF connect,查看設備 的MAC 地址,在本例中可以看到RSBRS02ABR設備地址是BA:03:28:1A:74:90。
4.在Wireshark軟件中點擊“Device”選擇框,在下拉選項框中選擇MAC地址為BA:03:28:1A:74:90的設備。
5.手機端軟件nRF connect點擊“CONNECT”連接到藍牙模塊
6.在手機端軟件nRF connect中ffe5-ffe9下拉菜單中發送數據 “rf-star” 到模塊。Wireshark軟件在模塊沒有發送數據前,數據包顯示是廣播包LE LL 格式。Wireshark抓包正確的數據包格式為ATT,我們只需要找到ATT格式數據包,并雙擊ATT即可查看數據 。
7.數據包界面如下圖所示,解析出接收到的數據為rf-star,收發一致。說明已經成功抓到該數據
我們更換數據,重復上述發送數據進行測試:
1.重復上述操作,手機發送的數據修改為:http://www.icp163.cn/。Wireshark抓包結果為:
2.手機多次向模塊發送同一個數據包:“rf-star”,抓包顯示的數據如下:
三、使用RF-DG-32A硬件對Wireshark抓包測試后,我們再使用TI CC2540 Sniffer抓包工具Packet Sniffer進行測試。
硬件準備CC2540官方USB Dongle硬件以及RF-BM-ND04模塊。
軟件準備Android手機端:nRF-connect。
PC端:Packet Sniffer,下載地址為:http://www.ti.com.cn/tool/cn/PACKET-SNIFFER?keyMatch=PACKET%20SNIFFER&tisearch=Search-CN-everything
1. 安裝好所需軟件之后,打開Packet Sniffer,界面選擇Bluetooth Low Energy ,點擊下方start。
2.點擊star后界面如下所示,設備會自動識別官方USB Dongle設備
3.我們點擊下方 Radio Configuration 欄,選擇廣播信道(37、38、39),點擊上方的三角形開始按鈕搜索附近設備的廣播信息
4.打開手機APP nrf-connect,查看需要監聽設備的地址信息為:BA:03:28:1A:74:90。
5.點擊軟件下方Display filter欄,在 Field Name 中選擇 ADV_IND Adva。
6.在Filter conditon 中輸AA1=0x+ BA03281A7490 地址。點擊first ,AA1=會自動增加,后面直接加上MAC地址BA03281A7490,點擊 Add 添加該設備。再點擊 Apply filter,即可抓到指定MAC地址的包。
通過上面Wireshark和的對比測試,我們可以看出,Wireshark的抓包體驗好于TI公司的Packet Sniffer。
其一:Wireshark在進入抓包前,選擇相應的COM口再進入抓包,Packet Sniffer則是通過底部區域選擇對應的設備,底部區域占幅較大的設計使得抓包過程數據展示效果和Wireshark相比差很多。Packet Sniffer軟件風格和布局過于陳舊,相比Wireshark在軟件優化上做的更好。
其二:在Wireshark抓包展示的數據中,可以實時點擊數據查看數據結構,雙擊即可查看底層協議的具體解析。而Packet Sniffer僅僅只能展示拆分的數據結構,展示部分結構的具體數值。相比之下,Wireshark可以完整地展示接收到的數據包的每一個結構的具體數值,堪稱完美解析。
其三:Packet Sniffer需要逐條查看哪一條信息是接收到的數據,需要一定分析的方法才能找到正確的數據。而Wireshark提前解析好了每一條數據,可以清楚的知道哪一條是LE LL,哪一條是ATT,需要找到發送的數據包可以直接通過標記ATT的數據找到,非常方便高效,而且數據可以根據時間、協議排序,根據實際的數據查找要求,高效地、清楚地找到。畢竟Wireshark自被開源以來,經過至少數千名開發者的開發優化,使用體驗得到很好的優化,免費好用的特性會吸引更多人的去嘗試。
綜合以上測評體驗,如果選擇藍牙抓包軟件進行BLE模塊測試的話,推薦使用Wireshark。抓包硬件方面,信馳達推出的RF-DG-32A比TI 原廠的CC2540 USB Dongle使用體驗更好,大家有興趣可以嘗試一下。
信馳達科技專注藍牙領域十年,擁有豐富的方案設計經驗。信馳達科技的Nordic Sniffer方案表現出色。
信馳達科技是行業知名度和信譽度優秀的無線射頻解決方案提供商及低功耗射頻核心器件供應商,旗下產品包含豐富的Nordic系列產品,例如nRF52832。專業的技術支持團隊為您提供專業的定制化服務,更多Nordic方案,請關注信馳達科技。