實測對比CC2540 BTool和nRF Connect 在nRF52840 Dongle的BTool測試
BTool是一個用于藍牙設備調(diào)試的PC軟件工具,工作在Central/Master 。它可以讓用戶通過PC軟件同Peripheral/Slave BLE設備之間建立連接。在測試藍牙模塊的直驅功能時,使用BTool可以快速開發(fā)模塊的功能,縮短研發(fā)周期。
市面上主流的BTool軟件有幾款,CC2540 BTool和nRF Connect for Desktop較為常用,兩者的BTool直驅測試體驗如何,本文具體對比了CC2540 BTool和nRF Connect for Desktop的使用體驗。
CC2540 BTool和nRF Connect for Desktop的體驗對比如下:
1.nRF Connect for Desktop可以同時連接多個從機,并進行直驅命令操作。而CC2540 BTool只能挨個切換設備進行直驅操作。
2. nRF Connect for Desktop的直驅操作更為精簡,CC2540 BTool的直驅操作非常繁復。
3. nRF Connect for Desktop優(yōu)化的界面設計,易于查看關鍵信息。
在測試中,我們選用了信馳達科技基于nRF52840的RF-DG-40A硬件BTool工具,其性能、穩(wěn)定性上要好于TI的CC2540 USB Dongle硬件,各位電子工程師們可以嘗試一下這款RF-DG-40A。
當然本文重點是軟件方面的實測對比,具體的測試分析過程請看下面。
首先我們需要在測試前做好軟硬件準備。
本文測試中需要準備的硬件有:CC2540 USB Dongle,RF-DG-40A,信馳達科技的RF-Module EB CC254x開發(fā)套件。
準備的軟件有CC2540 BTool和nRF Connect for Desktop。
一、CC2540 BTool直驅功能測試
硬件準備:CC2540 USB Dongle,RF-Module EB CC254x開發(fā)套件
軟件準備:CC2540 BTool
BTool的下載鏈接:http://www.jxyzhs.com/downloadnda/568-cn.html
在軟硬件準備好之后,我們開始CC2540 BTool軟件的直驅測試:
1.安裝好CC2540 BTool后,將RF-Module EB CC254x開發(fā)套件上電,打開軟件CC2540 BTool,確認COM號,點擊OK。
2、點擊Scan掃描設備,
3、在Slave BAD根據(jù)MAC地址選擇要連接的設備
4、點擊Establish連接,連接成功后在左側會顯示已連接的設備,點擊Read/Write。
對藍牙模塊進行直驅測試前,我們需要進行最基礎的通信測試,即透傳測試。
利用藍牙模塊RF-Module EB CC254x給BTool發(fā)送數(shù)據(jù)
1、在Sub-Procedure選擇 Discover Characteristic by UUID,在Characteristic UUID 輸入E4:FF點擊Read。Status 顯示Success。
2、在Characteristic Value Handle 輸入0x000F 在Value輸入 01 00 ,點擊 Write ,Status 顯示Success。
3、此時通過串口助手采用16進制發(fā)送的31 32 33 34 34 36 37,此時消息框中出現(xiàn)發(fā)送的數(shù)據(jù)。
串口發(fā)送數(shù)據(jù),BTool端接收成功后,我們測試BTOOL向藍牙模塊發(fā)送數(shù)據(jù)。
1.在Characteristic UUID 輸入E9:FF點擊Read。Status 顯示Success,在Characteristic Value Handle 輸入0x0013 在Value輸入 發(fā)送的數(shù)據(jù) 11 33 66 99 ,點擊 Write ,Status 顯示Success,串口助手顯示11 33 66 99。
基礎的通信測試成功后,正式開始直驅功能測試。
1.PWM功能測試:
1.1 Characteristic Read中在Sub-Procedure選擇 Read Using Characteristic by UUID,在Characteristic UUID 輸入B1:FF,點擊Read,在Characteristic Write中的Characteristic Value Handle 輸入 0x004D,在Value中輸入01 ,點擊Write,初始化全高脈寬輸出。
1.2 在Characteristic UUID 輸入B2:FF,點擊Read,在Characteristic Write中的Characteristic Value Handle 輸入 0x0050,在Value中輸入00 00 00 00 ,點擊Write,開發(fā)板的小燈亮了起來。
1.3 在Characteristic UUID 輸入B2:FF,點擊Read,在Characteristic Write中的Characteristic Value Handle 輸入 0x0050,在Value中輸入EE EE EE EE ,點擊Write,開發(fā)板的小燈暗了一些。
2.ADC功能測試
2.1 在Characteristic UUID 輸入D1:FF,點擊Read,在Characteristic Write中的Characteristic Value Handle 輸入 0x0036,在Value中輸入03,點擊Write,開啟兩路ADC。
2.2 在Characteristic UUID 輸入D2:FF,點擊Read,在Characteristic Write中的Characteristic Value Handle 輸入 0x0039,在Value中輸入01 F4(500ms),點擊Write,設置采樣周期。
2.3 在Characteristic UUID 輸入D4:FF,點擊Read,在Characteristic Write中的Characteristic Value Handle 輸入 0x0041,在Value中輸入01 00,采集一路ADC數(shù)據(jù)。
3.IO電平采集
3.1 在Characteristic UUID 輸入F1:FF,點擊Read,在Characteristic Write中的Characteristic Value Handle 輸入 0x0017,在Value 輸入00 設置所有普通I/O口為輸入口。
3.2 在Characteristic UUID 輸入F3:FF,點擊Read,在Characteristic Write中的Characteristic Value Handle 輸入 0x001E,在Value 輸入01 00,點擊Write,當有電平變化時,消息框就會輸出值,按下開發(fā)板上的按鍵,電平值從3F(00111111)變化為3E(00111110)。
4.定時翻轉
4.1 在Characteristic UUID 輸入F1:FF,點擊Read,在Characteristic Write中的Characteristic Value Handle 輸入 0x0017,在Value 輸入FF,點擊Write.將I/0口設置為輸入口。
4.2 在Characteristic UUID 輸入F5:FF,點擊Read,在Characteristic Write中的Characteristic Value Handle 輸入 0x0024,在Value 輸入05 DC(1.5S),點擊Write。
4.3 在Characteristic UUID 輸入F4:FF,點擊Read,在Characteristic Write中的Characteristic Value Handle 輸入 0x0021,在Value 輸入05 DC(1.5S),點擊Write.可以見到開發(fā)板上連接I06的小燈以1.5S的間隔亮滅。
4.4 在Characteristic UUID 輸入F7:FF,點擊Read,在Characteristic Write中的Characteristic Value Handle 輸入 0x002A,在Value 輸入05 DC(1.5S),點擊Write。
4.5 在Characteristic UUID 輸入F6:FF,點擊Read,在Characteristic Write中的Characteristic Value Handle 輸入 0x0027,在Value 輸入05 DC(1.5S),點擊Write.可以見到開發(fā)板上連接I07的小燈以1.5S的間隔亮滅。
5.自定義事件功能
5.1 Characteristic Read中在Sub-Procedure選Read Characteristic Value/Descriptor,在Characteristic Value Handle 輸入0x008C, ,點擊Read,在Characteristic Write中的Characteristic Value Handle 輸入 0x008C,在Value輸入 01 00 1E FF FF FF FF FF 04 FF 00 00,點擊Write。
5.2在Characteristic Value Handle 輸入0x0092, ,點擊Read,在Characteristic Write中的Characteristic Value Handle 輸入 0x0092,在Value輸入 08 02 00 00 00,點擊Write。
5.3在Characteristic Value Handle 輸入0x0095, ,點擊Read,在Characteristic Write中的Characteristic Value Handle 輸入 0x0095,在Value輸入 01 02,點擊Write。
5.4 在Characteristic Value Handle 輸入0x0086, ,點擊Read,在Characteristic Write中的Characteristic Value Handle 輸入 0x0086,在Value輸入 1F 1D 03 02 01 FF 07,點擊Write.
連接P07口的小燈將在32S后熄滅。
接下來我們進行nRF Connect for Desktop的測試
二、nRF Connect for Desktop直驅功能測試
硬件準備:RF-DG-40A,RF-Module EB CC254x開發(fā)套件
軟件準備:nRF Connect for Desktop
nRF Connect for Desktop下載地址:
1.首先打開 nRF Connect for Desktop,打開Bluetooth Low Energy的Open 按鈕,如果是第一次使用,需要點擊安裝一下。
2.將RF-DG-40A上電,選擇RF-DG-40A所對應的COM口,點擊Start scan。
3.隨后會出現(xiàn)附近正在廣播的藍牙設備列表。點擊其中的測試的藍牙開發(fā)板設備,會開始進入連接過程
4.開始測試基礎的通信,即透傳測試,在FFE4中打開notify。
5.使用串口助手發(fā)送數(shù)據(jù),nRF Connect for Desktop收到從串口助手發(fā)來的數(shù)據(jù)。
6.在nRF Connect for Desktop的FFE9中輸入 11 33 66 99 ,在串口助手中也可以收到同樣的數(shù)據(jù)。
現(xiàn)在開始進行直驅功能測試:
1.PWM功能
1.1 在FFB1,輸入00 ,全低脈寬初始化四路 PWM 通道,開發(fā)板上4個小燈全部亮起來了。
1.2 在FFB2輸入FF FF FF FF,設置為全高脈寬,4個燈全部熄滅。
1.3 在FFB2中輸入 EE EE EE EE,燈亮起來了,但亮度明顯偏暗。
1.4 在FFB2輸入00 00 00 00,亮度恢復到最初的最亮的情況。
2.ADC功能
2.1在FFD1輸入03,打開兩路ADC通道。
2.2在FFD3中打開notify,可以收到ADC0的ADC數(shù)據(jù)。
3.I/O功能
3.1 在FFF1中輸入00,設置I/O為輸入口。
3.2 打開FFF3的notify通道,按下開發(fā)板的按鍵,看到從3F(00111111)到3E(00111110)再回到3F。
3.3 在FFF1輸入FF,設置I/O口為輸出口。
3.4 在FFF5輸入00 00 05 DC.
3.5 在FFF4輸入00 00 05 DC,可以看見連接I06的小燈以1.5S的間隔亮滅。
3.6 在FFF7輸入00 00 05 DC。
3.7在FFF4輸入00 00 05 DC,可以看見連接I07的小燈以1.5S的間隔亮滅。
4.事件
4.1 在FE03中輸入01 00 1E FF FF FF FF FF 04 FF 00 00。
4.2 在FE05中輸入08 02 00 00 00。
4.3 在FE06中輸入01 02。
4.4 在FE01中輸入1F 1D 03 02 01 DD 07,連接P07的小燈在32S后熄滅。
對比了CC2540 BTool和nRF Connect for Desktop的直驅功能測試后,總結出了幾點:
1. CC2540 BTool每次只能對一個設備進行直驅控制操作,如果要操作另一個設備,需要切換下拉菜單,切換對用的MAC地址。如果要同時操作多個從機設備,CC2540 BTool難以實現(xiàn)。而nRF Connect for Desktop可以同時連接多個從機,實時顯示出來,如果需要對某個具體模塊進行直驅操作,直接打開對應的模塊操作界面即可。
2. CC2540 BTool進行直驅操作太麻煩了,從筆者上面的截圖可以看到,每一次進行直驅命令時,先要輸入UUID,讀出句柄,再去賦值區(qū)域輸入相應的參數(shù)。每進行一次操作都要至少4步以上。反觀nRF Connect for Desktop就簡單得多,不需要讀出句柄后進行賦值,直接在對應的句柄地址FE處輸入?yún)?shù)即可。而且其他所有句柄的參數(shù)都可以看見,CC2540 BTool的其他參數(shù)是沒有辦法同時看到的。
3. nRF Connect for Desktop的軟件界面優(yōu)化比CC2540 BTool好很多。在CC2540 BTool上進行測試時,感覺是在虛擬機上操作,可視化體驗非常差。nRF Connect for Desktop優(yōu)化很好,可視化展示基本可以查看所有需要的參數(shù)。
綜合以上測評體驗,如果選擇BTool軟件進行BLE模塊測試的話,推薦使用nRF Connect for Desktop。抓包硬件方面,信馳達推出的RF-DG-40A比TI 原廠的CC2540 USB Dongle使用體驗更好,大家有興趣可以嘗試一下。
信馳達科技專注藍牙領域十年,擁有豐富的方案設計經(jīng)驗。信馳達科技的Nordic Sniffer方案表現(xiàn)出色。
信馳達科技是行業(yè)知名度和信譽度優(yōu)秀的無線射頻解決方案提供商及低功耗射頻核心器件供應商,旗下產(chǎn)品包含豐富的Nordic系列產(chǎn)品,例如nRF52840。專業(yè)的技術支持團隊為您提供專業(yè)的定制化服務,更多Nordic方案,請關注信馳達科技。