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