在各类民用、工业控制现场等工作人员难以到达的区域,环境温湿度的状况是重要的参数,因此,对环境温湿度的准确、及时监控,具有重要意义。蓝牙采用跳频机制进行数据传送,故能极大地提高数据传送的抗干扰性能。对于数据采集系统应用而言,本设计大大简化了系统的复杂度,且大大降低了功耗和体积。由此带来的灵活性,使得系统的应用更加广泛。
本文对系统的总体方案、硬件电路和软件设计等内容作了详细介绍,通过使用CC2540芯片所具有的蓝牙4.0BLE协议进行设备互联以及无线数据的发送,实现了一种新型的无线温湿度数据采集系统。
CC2540是TI公司推出的完全兼容蓝牙4.0低功耗BLE协议的SoC芯片,其内部集成了低功耗的8051MCU内核、高性能2.4 GHz射频收发器、8 KB RAM和256 KB Flash存储器。其主要特性:包括1个16位和2个8位通用定时器、2个UART、12位有效位的ADC模/数转换、21个GPIO、32 kHz休眠定时器,具有5种工作模式,集成AES-128安全协处理器、高性能比较器、精确的数据接收信号强度检测(RSSI)、功能强大的5通道直接内存访问(DMA);在发送模式和外部中断模式下,电流损耗分别为24 mA和0.4μA。CC2540与TI的蓝牙低功耗协议栈相配合,已成为市场上灵活、具有广阔应用前景的蓝牙低功耗解决方案。
本文设计的无线温湿度采集系统结构如图1所示。温湿度传感器SHT11与CC2540节点设备相连,由CC2540芯片中集成的8051 MCU来控制温湿度传感器进行数据的采集,然后将数据以无线方式发送给蓝牙集中器,集中器通过串口将收到的无线数据发送给监控终端。
CC2540芯片中集成的处理器采用兼容8051内核的结构及指令系统,该内核通过3种不同的内存访问总线(SFR、DATA和CODE/XDATA)对内存进行访问控制,SFR总线负责将所有的外设同内存仲裁相连接,还负责CPU与射频寄存器之间的交互。内存仲裁通过SFR总线将CPU、DMA模块、存储器以及其他外设连接在一起。CC2540芯片外部接口电路如图2所示,外围电路包含1个32 MHz和1个32.768 kHz石英晶振,RF_N和RF_P为射频天线接口。
天线以及巴伦匹配电路的设计较为重要,这涉及到射频通路的指标是否优良,对通信距离、系统功耗都有较大影响。天线设计可以采用PCB天线,本文射频天线采用了全尺寸的倒F天线(IFA),极大地提高了发射、接收性能。天线如图3所示,尺寸参数如表1所列。
巴伦匹配电路即平衡不平衡转换器,使得单极天线接收的信号转为双路差分信号时,维持天线的辐射效率。巴伦匹配电路如图4所示。
3.3 传感器模块
传感器模块采用数字温湿度传感器SHT11,该芯片主要特点有:
◆提供二线数字串行接口SCK和DATA,接口简单,支持CRC传输校验,可靠性高;
◆高集成度,将温度感测、湿度感测、信号变换、A/D转换等功能集成到单一芯片上;
◆提供温度补偿的湿度测量值和高质量的露点计算功能,采用CMOS工艺,可适应潮湿的测量环境。SHT11温湿度传感器的典型应用电路如图5所示。
4 软件设计
4.1 BLE协议栈
本设计通过使用CC2540芯片所具有的蓝牙4.0 BLE协议实现蓝牙设备的互联以及无线数据的发送。TI公司推出的蓝牙4.0 BLE协议栈包含两部分:主机和控制器。协议栈的实现方式采用分层的思想,控制器部分包括物理层、链路层、主机控制接口层;主机部分包括逻辑链路控制及自适应协议层、安全管理层、属性协议层、通用访问配置文件层、通用属性配置文件层;上层可以调用下层提供的函数来实现需要的功能。蓝牙4.0 BLE协议栈的结构如图6所示。
蓝牙4.0 BLE协议栈中,有3个变量至关重要:
①tasksCnt:该变量保存了任务的总个数。该变量的声明为“uint8 tasksCnt”,其中uint8的定义为“typedef unsigned char uint8”。
②tasksEvents:这是一个指针,指向了事件表的首地址。该变量的声明为“uint16*tasksEvents”,其中uint16的定义为“typedef unsigned short uint16”。
③tasksArr:这是一个数组,该数组的每一项都是一个函数指针,指向了事件处理函数。该数组的声明为“pTaskEventHandlerFn tasksArr[]”,其中pTaskEventHandlerFn定义如下:
typedef unsigned short(*pTaskEventHandlerFn)(unsignedchar task_id,unsigned short event)
这是定义了一个函数指针。因此,tasksArr数组的每一项都是一个函数指针,指向了对应的事件处理函数。
可以将BLE协议栈的运行机制总结为:通过不断地轮询事件表来判断是否有事件发生,如果有事件发生,则查找函数表找到对应的事件处理函数对事件进行处理。事件表使用数组来实现,数组的每一项对应一个任务的事件,每一位表示一个事件;函数表使用函数指针数组来实现,数组的每一项是一个函数指针,指向了事件处理函数。
4.2 温湿度数据采集流程图
使用SHT11温湿度传感器进行温湿度数据的采集,周期性的采集数据并存储到CC2540蓝牙节点设备中,如图7所示。
4.3 实验原理及流程图
CC2540节点设备与集中器设备之间数据传输操作流程如下:
①集中器设备发起扫描请求,扫描正在发送广告的节点设备,若GAP(Generic Access Profile)服务的UUID(Universally Unique Identifier)相匹配,则两设备可以建立连接。
②集中器发起建立连接的请求,外部设备响应后,两设备进入连接状态,然后集中器通过特定的UUID进行数据服务的发现。
③发现数据服务后,集中器发送要进行数据操作的“特性(Characteristics)”的UUID,节点设备将这个“特性”的句柄返回给集中器,句柄即为特性值在属性表中的地址。
蓝牙BLE数据服务包含一些称之为“特性”的数据,“特性”是服务用到的值以及其内容和配置信息(称为描述符),存储于属性表中。所有应用数据的操作都需要通过“特性”进行,如果将“特性”比作一辆客车,应用数据便是乘客,“特性”的UUID便是车牌号,“特性”中应用数据的发现过程就相当于通过车牌号找到客车,然后才能找到客车上的乘客。
集中器设备扫描发现节点设备并与之建立连接的流程如图8所示。集中器设备与节点设备建立连接后,进行服务发现、“特性”发现以及“特性”中的温湿度数据传输的流程如图9所示。
5 系统测试
CC2540集中器将接收到的无线数据通过串口发送给PC端的监控终端,通过串口输出的温湿度数据如图10所示。
结语
蓝牙4.0技术是三位一体的蓝牙技术,它将传统蓝牙、高速蓝牙和低功耗蓝牙技术融合在一起,这3个规格可以组合或者单独使用。本文讲述的即为蓝牙低功耗技术的单独使用,极低的运行和待机功耗可以使设备依靠一粒纽扣电池就可连续工作一年甚至数年之久。此外,还具有低成本和跨厂商互操作性,3 ms启动能提高传输距离具有AES-128安全加密等诸多特色,可应用于对成本和功耗都有严格要求的无线方案,广泛用于医疗保健、体育健身、家庭娱乐、传感器物联网等众多领域。