BTool是一个用于蓝牙设备调试的PC软件工具,工作在Central/Master 。它可以让用户通过PC软件同Peripheral/Slave BLE设备之间建立连接。在测试蓝牙模块的直驱功能时,使用BTool可以快速开发模块的功能,缩短研发周期。
市面上主流的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优化的界面设计,易于查看关键信息。
在测试中,我们选用了信驰达科技基于nRF52840的RF-DG-40A硬件BTool工具,其性能、稳定性上要好于TI的CC2540 USB Dongle硬件,各位电子工程师们可以尝试一下这款RF-DG-40A。
当然本文重点是软件方面的实测对比,具体的测试分析过程请看下面。
首先我们需要在测试前做好软硬件准备。
本文测试中需要准备的硬件有:CC2540 USB Dongle,RF-DG-40A,信驰达科技的RF-Module EB CC254x开发套件。
准备的软件有CC2540 BTool和nRF Connect for Desktop。
一、CC2540 BTool直驱功能测试
硬件准备:CC2540 USB Dongle,RF-Module EB CC254x开发套件
软件准备:CC2540 BTool
BTool的下载链接:https://www.szrfstar.com/downloadnda/568-cn.html
在软硬件准备好之后,我们开始CC2540 BTool软件的直驱测试:
1.安装好CC2540 BTool后,将RF-Module EB CC254x开发套件上电,打开软件CC2540 BTool,确认COM号,点击OK。
2、点击Scan扫描设备,
3、在Slave BAD根据MAC地址选择要连接的设备
4、点击Establish连接,连接成功后在左侧会显示已连接的设备,点击Read/Write。
对蓝牙模块进行直驱测试前,我们需要进行最基础的通信测试,即透传测试。
利用蓝牙模块RF-Module EB CC254x给BTool发送数据
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进制发送的31 32 33 34 34 36 37,此时消息框中出现发送的数据。
串口发送数据,BTool端接收成功后,我们测试BTOOL向蓝牙模块发送数据。
1.在Characteristic UUID 输入E9:FF点击Read。Status 显示Success,在Characteristic Value Handle 输入0x0013 在Value输入 发送的数据 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,开发板的小灯亮了起来。
1.3 在Characteristic UUID 输入B2:FF,点击Read,在Characteristic Write中的Characteristic Value Handle 输入 0x0050,在Value中输入EE EE EE EE ,点击Write,开发板的小灯暗了一些。
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数据。
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,当有电平变化时,消息框就会输出值,按下开发板上的按键,电平值从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.可以见到开发板上连接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.可以见到开发板上连接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开发套件
软件准备:nRF Connect for Desktop
nRF Connect for Desktop下载地址:
https://www.nordicsemi.com/Software-and-tools/Development-Tools/nRF-Connect-for-desktop/Download#infotabs
1.首先打开 nRF Connect for Desktop,打开Bluetooth Low Energy的Open 按钮,如果是第一次使用,需要点击安装一下。
2.将RF-DG-40A上电,选择RF-DG-40A所对应的COM口,点击Start scan。
3.随后会出现附近正在广播的蓝牙设备列表。点击其中的测试的蓝牙开发板设备,会开始进入连接过程
4.开始测试基础的通信,即透传测试,在FFE4中打开notify。
5.使用串口助手发送数据,nRF Connect for Desktop收到从串口助手发来的数据。
6.在nRF Connect for Desktop的FFE9中输入 11 33 66 99 ,在串口助手中也可以收到同样的数据。
现在开始进行直驱功能测试:
1.PWM功能
1.1 在FFB1,输入00 ,全低脉宽初始化四路 PWM 通道,开发板上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数据。
3.I/O功能
3.1 在FFF1中输入00,设置I/O为输入口。
3.2 打开FFF3的notify通道,按下开发板的按键,看到从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难以实现。而nRF Connect for Desktop可以同时连接多个从机,实时显示出来,如果需要对某个具体模块进行直驱操作,直接打开对应的模块操作界面即可。
2. CC2540 BTool进行直驱操作太麻烦了,从笔者上面的截图可以看到,每一次进行直驱命令时,先要输入UUID,读出句柄,再去赋值区域输入相应的参数。每进行一次操作都要至少4步以上。反观nRF Connect for Desktop就简单得多,不需要读出句柄后进行赋值,直接在对应的句柄地址FE处输入参数即可。而且其他所有句柄的参数都可以看见,CC2540 BTool的其他参数是没有办法同时看到的。
3. nRF Connect for Desktop的软件界面优化比CC2540 BTool好很多。在CC2540 BTool上进行测试时,感觉是在虚拟机上操作,可视化体验非常差。nRF Connect for Desktop优化很好,可视化展示基本可以查看所有需要的参数。
综合以上测评体验,如果选择BTool软件进行BLE模块测试的话,推荐使用nRF Connect for Desktop。抓包硬件方面,信驰达推出的RF-DG-40A比TI 原厂的CC2540 USB Dongle使用体验更好,大家有兴趣可以尝试一下。