微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > CC2540和SHT11的无线温湿度采集系统设计

CC2540和SHT11的无线温湿度采集系统设计

时间:09-11 来源:互联网 点击:

摘要:蓝牙无线技术是使用范围最广泛的全球短距离无线标准之一,蓝牙4.0规范的核心是蓝牙低功耗(Bluetooth Low Energy)技术,本设计采用基于BLE技术的CC2540芯片,利用SHT11数字温湿度传感器来进行温湿度的采集,并通过CC2540以无线方式将采集到的数据发送给监控终端。实验结果表明,本系统具有体积小、功耗低、精度高等优点。
关键词:CC2540;蓝牙4.0;BLE;SHT11;无线网络

引言
在各类民用、工业控制现场等工作人员难以到达的区域,环境温湿度的状况是重要的参数,因此,对环境温湿度的准确、及时监控,具有重要意义。蓝牙采用跳频机制进行数据传送,故能极大地提高数据传送的抗干扰性能。对于数据采集系统应用而言,本设计大大简化了系统的复杂度,且大大降低了功耗和体积。由此带来的灵活性,使得系统的应用更加广泛。
本文对系统的总体方案、硬件电路和软件设计等内容作了详细介绍,通过使用CC2540芯片所具有的蓝牙4.0BLE协议进行设备互联以及无线数据的发送,实现了一种新型的无线温湿度数据采集系统。

1 CC2540芯片简介
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的蓝牙低功耗协议栈相配合,已成为市场上灵活、具有广阔应用前景的蓝牙低功耗解决方案。

2 系统结构
本文设计的无线温湿度采集系统结构如图1所示。温湿度传感器SHT11与CC2540节点设备相连,由CC2540芯片中集成的8051 MCU来控制温湿度传感器进行数据的采集,然后将数据以无线方式发送给蓝牙集中器,集中器通过串口将收到的无线数据发送给监控终端。

3 硬件电路
3.1 处理器单元
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为射频天线接口。


3.2 天线及巴伦匹配电路
天线以及巴伦匹配电路的设计较为重要,这涉及到射频通路的指标是否优良,对通信距离、系统功耗都有较大影响。天线设计可以采用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所示。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top