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