Sub-GHz/BLE,双频更好用——TI CC1350 Launchpad评测
扫描二维码
随时随地手机看文章
“我有一帘幽梦,不知与谁能共“,不必嗟呀,请打开您家的WIFI,我必与你相共!现实生活中, WIFI与BLE已广泛应用在电脑、手机、电视等设备上,只是Sub-GHz现在还没有进入大众的视线,不过也快了。随着WIFI设备的广泛使用,2.4GHZ的频段也越来越拥挤了,所以现在WIFI有5.8GHZ的频段,不过WIFI 5.8GHz的通信距离是一大硬伤。另一个发展方向就是向Sub-GHz频段发展,该频段工作频率范围十分宽广,包括免许可的工业、科学和医疗(ISM)频段所覆盖的315、433、470、868、915、928和960 MHz,以实现无距离通信的需求。许多厂商也推出了各自的Sub-GHz通信芯片,希望在Sub-GHz领域大显身手。
TI CC1350 LaunchPad是TI LaunchPad家族的最新成员,该评估板上使用了TI CC1350双频(DUAL-BAND)芯片,集成了Sub-1GH及BLE通信功能。
Sub-1GHz通信是近来比较火爆的话题,传统的2.4GHz和5.8GH已愈来愈拥挤,加上通信距离的限制,越来越多的人已将眼光转向次吉赫兹(Sub-1GHz)通信领域。次吉赫兹通信有什么优势呢?我们来看一张图
其优势主要有三:更远的传输距离,使用钮扣电池供电的话,最远能覆盖20KM的距离;其次是超低功耗,使用一颗钮扣电池,可以供其运行好几年;再有就是强大的穿墙能力。
不过说实话,次吉赫兹还真不是新技术,当初IEEE 802.15.4标准发布时提供了16个2.4Ghz频段,一个868Mhz及10个928Mhz的频段。这些次吉赫兹频段很少使用而已。
看看TI CC1350 LaunchPad给我们带来了什么。
LaunchPad系列经典包装,与其它LaunchPad的差别在于上面两行不同的标识,一个是Dudal-Band字样,表明这是一款双频应用,另一个就是CC1350,表明板上使用的是TI CC1350芯片。
内附一张快速用户指南,要更详细的了解该产品还得打开手册上列出的产品网址。
全部清单,除CC1350 LaunchPad开发板外,附送一根Micro USB连接线,一张用户指南。
CC1350 LaunchPad开发板正面。上图标注了一些主要的设备或接口,包括XDS110调试器,调试程序时可以不必使用专用的调试器,实现开箱即用。其它的如TI CC1350 MCU、2个用户按键、2个用户LED灯、8MB的SPI FLASH存储器及天线接口等。
CC1350 LaunchPad开发板背面,看到40针的BoosterPack连接器,这是TI专用的连接器,与ARDUINO接口不兼容。
最后放两张开发板全景图,供赏析。
CC1350 LaunchPad开发板上使用的TI CC1350,是全球首款双频(Sub-1 GHz and 2.4 GHz)无线微控制器,目前TI CC1350还只有这一款芯片,型号为CC1350 F128。
该MCU内部使用的是ARM Cortex-M3处理器,最高主频48MHZ,包含20KB的SRAM及128KB的FLASH存储器,EEMBC COREMARK得分为142分。MCU逻辑框图如下
除了包含ARM Coretex-M3主控外,模块内部还包括一颗Coretex-M0,专门用来处理RF相关操作。RF核心的主要特性包括有:2.4GHZ收发器,兼容蓝牙BLE 4.2标准。该内核还具有极及灵敏的接收能力,在LRM(Long-Range Mode)模式下以50kpbs速度传输速度,可达到-110dBm,蓝牙模式下可达到-87dBm。
TI CC1350模块内部还集成了传感器控制器,该控制器让我们最感兴趣的特征是可心独立运作。当主控MCU在休眠期间,该控制器可以配置为用来处理模拟及数字传感器数据,从而大大降低功耗。
TI CC1350根据型号的不同,提供了4种封装形式。7-mm × 7-mm RGZ VQFN48 (30 GPIOs),5-mm × 5-mm RHB VQFN32 (15 GPIOs),4-mm × 4-mm RSM VQFN32 (10 GPIOs),不同的封装提供的GPIO接口数也不相同,方便用户根据实际情况选用。
软件方面提供了SDK包,里面包含TI自己推出的TI-RTOS系统及相关的示例代码供用户参考。TI-RTOS的目标是减少软件开发过程中的常规性重复劳动,如设备的初始化及参数配置等,另外TI-RTOS也提供了各种通信协议栈,多核通信、设备驱动及电源管理等功能,用户可更专注于系统的功能设计。同大多数RTOS一样,TI-RTOS也是一个实时多任务迷你内核。[!--empirenews.page--]
初步了解了CC1350 LaunchPad开发板的软、硬件知识,接下来开始体验。
TI CC1350 LaunchPad出厂程序内置BLE协议栈,这就是说,我们可以使用SensorTag手机程序来连接开发板,SensorTag程序可以对开发板上的设备进行简单的控制(视具体开发板型号而异),另外也可以使用手机APP来更新开发板的固件。在手机上安装TI提供的SensorTag程序,将开发板上电之后就可以测试了。
打开SensorTag程序,如果没有开启手机蓝牙,APP启动时会询问是否打开,APP通过BLE与CC1350 LaunchPad开发板进行通信,手机APP应该能够检测到CC1350 LaunchPad开发板的存在。不过试验当中发现,如果同时开启手机WIFI与BLE的话,有一定的机率不能发现开发板,具体原因不详,推测可能是信号干扰所致。
点击发现的蓝牙设备,进入具体的设备操作界面
这里有一些与具体功能相关的操作,如云端推送、设备信息、按键检测等。可以看到设备信息如CC1350 LaunchPad,当前固件版本号等。
这里演示了APP捕获到用户按键的情况。也许是TI CC1350刚推出的原因,如果使用的是TI CC26XX系列开发板,还可以控制GPIO、LED灯等。不过对于TI CC1350,只提供了按键检测功能。
进入高级设置选项,可以对设备进行固件刷写及升级等操作,该功能需要手机与INTERNET连接,以便从服务器下载所需固件。
这里看到的是可选的固件,包括LaunchPad系列的所有可用固件。后面的开发环节需要使用到该功能。
在正式介绍软件开发之前,让我们先来认识TI传感网络模型。
一个典型的TI的传感网络模型框架如图所示,TI传感网络主要包括两部分:结点(Node)及集中器(Concentrator)两部分,手机或其它带蓝牙通信功能的设备为可选。
集中器的作用主要是起着收集与传递信息的功能,使用Sub-GHz信道来传递数据。结点大部分时间都处于睡眠状态以保证低功耗,它使用传感器控制器来采集数据,然后使用Sub-GHz信道将数据传递给集中器,传感器采集的数据主要包括ADC值、电池情况,自上次重启后的时间,发送及接收的数据包等。然后结点重新进入睡眠状态,直到下一次的数据采集开始。
为了更好的体验TI CC1350 LaunchPad,需要两块相同或类似功能的开发板。这里准备了TI CC1310来与之通信,下面是TI CC1310与TI CC1350的合照,准备用这两块板来实行简单的通信。
顺便比较一下TI CC1350和TI CC1310的区别,如下表
不难看出,二者其实只有MCU不同而已。这倒是和ST的NUCLEO系列如出一辙,另外NXP的FRDM系列也是基本类似,都是使用相同的基础底板,只是根据需要更换不同的MCU。
准备开发环境,TI提供了CCS开发环境,不过近年来有向着云端IDE发展的趋势,新推出的TI CC1310和TI CC1350都只支持CCS Cloud开发了。
使用注册的TI用户登入TI的开发者网站,
打开菜单Project/Examples…,从官方的TI-RTOS软件包中导入两个工程文件,其中一个工程的作用是将TI CC1350设置为集中器模式,接收结点上报的数据,另一个工程将TI CC1310设置为结点模式,使用传感器控制器采集数据上报。
CCS Cloud集软件编辑、编译、调试、下载于一体,为了感知本地的XDS110下载调试器,需要一个浏览器插件来作为桥梁,将本地的硬件信息与远程的工具链工具连接起来,实现调试过程中的通信。在IDE上点击Run或Debug按钮,IDE会检测到是否已安装好必要的调试工具并给出具体的指令,由于我们已不是第一次使用CCS Cloud,该操作步骤已经安装好了该工具,首次配置详情请参考本站评测文件《一颗电池用十年?——TI CC1310LaunchPad开发板评测》。不过对于CCS Cloud而言,我觉得还有几个方面值得加强,一是工程微调设置还有待加强;其次就是IDE还没有提供代码提示,编辑输入代码时不是很方便;再有就是网络网络如果不流畅可能会导致开发体验非常糟糕。
选择通信串口时,IDE会检测当前调试器是否为最新固件,如果不是,则提示用户更新固件程序。如下图是首次连接设备时提示的更新固件的通知
[!--empirenews.page--]
每个XDS110调试器在安装好设备驱动程序后,会在PC端映射两个串口设备,如下图
其中一个是用户串口,供下载程序之用,另一个是辅助串口,开发环境使用它在IDE中输出一些调试信息。
点击Run或Debug,就可以将当前工程文件编译后的二进制代码下载到TI CC1350 LaunchPad上并运行。同样将另一个工程文件编译后的代码下载到TI CC1310开发板上。看到两个开发板都开始运行,如下图
现在可以测试两块开发板通过Sub-GHz来进行通信,TI为LaunchPad提供了配套的LCD显示器,名字叫430BOOST-SHARP96,如下图,与LaunchPad是很好的搭档,MOUSER的报价是153RMB,小贵。
不过没有LCD也没有关系,还可以通过串行通信口来查看通信情况。
对putty做如下配置来连接TI CC1350,注意具体通信端口号可能会所有不同,本机上的端口号为COM8。
连接后看到TI CC1350 LaunchPad输出的信息了,如下
TI CC1350作为集中器,启动后等待结点的加入,现在对TI CC1310上电
TI CC1350立即检测到了结点的存在,并且在终端上给出了相关的信息,如结点标识,RSSI等信息。No Button Pressed表明用户没有按下按键,最后一行则是TI CC1350的蓝牙配置模式,使用TI CC1350上的按键2可以在各模式间切换。
这是用户在TI CC1310上按下按键1后的输出情况,可以看到用户按键状态被收集并上报到了集中器。
另外为了测试不位置的信号强度,将TI CC1310移动到不同位置后观测到的一个效果如下,可以看到RSSI的值有明显的变化,通过特定的计算方法,可以粗略的检测二者之间的距离。
不过由于TI CC1310只是单频芯片(没有BLE),这里就没法体验二者的蓝牙通信功能了。
总结来说,TI CC1350 LaunchPad将世界首款集Sub-GHz与BLE通信技术的双频技术直接带到了开发者面前,借助该开发板,我们可以立即体验双频通信的强大,同时也可以使用该开发板作为产品研发前期的评估,LaunchPad开箱即用的特性使得甚至是广大爱好者也可以用来直接实现特定的创意。TI-RTOS固件包提供了实时操作系统环境及诸多例程,对于不熟悉TI MCU的用户,提供了无痛上手指南。作为一款约200RMB的开发板来说,还是非常值得一试的。
参考资源
本文系21ic原创,未经许可禁止转载