基于LPC2292和μC/OS-II的无线数据采集系统设计
扫描二维码
随时随地手机看文章
同时,嵌入式系统以其高效的开发、低廉的成本、方便的使用和维护等优点受到信息业界的广泛推崇。嵌入式系统在工农业控制领域主要用于对现场的监视和控制。而传统监控产品的设计目标往往为保护大型企事业单bit的安全,不同程度地使用了凌乱的布线和较大型的硬件,其造价高昂、安装繁琐、操作复杂,必须有人长时间专门值守,且不具备远程控制功能。这些缺点使它们很难走进中小型工农企业和家庭中。因此开发一种小型的、模块化的、无须专人随时维护、能够方便地使用无线网络进行操作的采集监控系统,已成为必然的趋势,并拥有巨大的需求[2]。随着系统复杂度的提高,应用嵌入式操作系统是一个流行的趋势。本文方案是采用ARM核的微控制器LPC2292、嵌入式实时操作系统μC/OS-II、明基的GPRS芯片M23和模拟式温湿度传感器CHTM-02A相结合的一种数采方案。
1 LPC2292、M23和CHT M-02A简介
LPC2292是PHILIPS公司生产的一个支持实时仿真和跟踪的32 bit ARM7内核的微控制器,片内带有16 kB的静态RAM和256 kB的高速Flash存储器,128 bit宽度的存储器接口和独特的加速结构使32bit代码能够在最大时钟速率下运行。满足了系统对存储空间的要求, 不需要扩展存储空间,减少了系统的能耗以及成本。LPC2292运算速度快、精度高、功耗低,且片内外设丰富(如UART、10bitADC、PWM、CAN控制器等),由于内置了宽范围的具有16B接收FIFO和16 B发送FIFO,结构及寄存器符合16C550工业标准串口通信接口,也非常适用于通信网关、协议转换器、嵌入式modem以及其他各种类型的应用[3]。
明基M23是内置TCP/IP议协的900/1800/1900 三频GPRS模块。其设计及开发符合ETSI GSM Phase2+标准。发送频率为1 850 MHz~1 910 MHz;接收频率1 930 MHz~1 990 MHz;工作状态温度范围为-20℃~+55℃。它具有话音/数据/传真/短信息功能。其中GPRS数据特性:GPRS Class4(Class10)代码为CS1~CS4;短信息服务功能特性:文字及PDU,点对点(MT/MO),小区广播[4]。
CHTM-02A是西博臣科技有限公司生产的模拟式温湿度传感器,其测温元件是LM35,输出电压为0~1 V。其湿度敏感元件是高分子湿敏电阻“CHR-01”, 供电电压为5 V(±5%),工作温度范围为0~60℃,湿度变送范围为0~100%RH,精度±5%,输出信号为0~3 V。该温湿度传感器性价比较高,且使用方便,可广泛适用于工业机械、电气自动化、气象和农业等行业[5]。
2 硬件设计
总体硬件框图如图1所示。
2.1 GPRS接口电路设计
M23与LPC2292之间的接口设计较易实现。使用UART1控制GPRS模块,GPRS所需的+5 V、+12 V电源和地,直接由MCU开发板提供。M23模块正常工作需要正确连接GPRS天线。
2.2 CHTM-02A温湿度传感器接口电路设计
LPC2292和 CHTM-02A的接口部分只需要4根线,其中第1根接5V电源;第2根接地;第3根接LPC2292的一路A/D输入,本设计中使用AIN1,即P0.28引脚,测量环境湿度;第4根接LPC2292的另一路A/D输入P0.27,测量环境温度。
3 软件设计
本系统软件设计可分为数采终端(测量节点)和控制中心两大部分,它们构成一个最基本的点对点网络。当然,需要这个系统可以方便地扩容,包括数采终端的数量和可采集信息的种类。且每个数采终端由其唯一的SIM卡号区别身份,组网便利。
本设计中控制中心可以是任意一个GPRS终端,例如手机或者连接有GPRS终端的电脑。而数采终端要完成实现GPRS编程控制、环境参数的采集、预处理等工作。采用常规的前/后台系统(foreground/background)编程极其复杂,选择嵌入式实时操作系统μC/OS-II作为软件系统平台,将各个处理模块分成单独的任务,能够较好地完成系统需求[6]。详细的移植可参考文献[6]。在数采终端软件系统设计中,涉及到的主要任务有:LPC2292初始化、GPRS模块初始化、通信、采集传感器信息、看门狗等12个任务。
3.1 数采终端主任务设计
数采终端有两种工作模式:一是由控制中心控制,数采终端判断控制中心GPRS地址(本设计由唯一的手机号码确定)和读取温湿度值,在数采终端与控制中心建立链接之后,数采终端将适时地通过无线网络把温湿度数据信息传输给控制中心。数采终端在整个系统中起到一个采集、预处理数据和发送的作用。实际测试发现,当SIM卡上存有过多短信息时,会干扰系统正常通信。故程序中在判断完每个新收到的短信后将其删除。二是定时发送节点信息,此模式相对简单一些。下面主要分析第一种工作模式。
第一种工作模式下主程序流程图如图2所示。
3.2 GPRS初始化任务设计
在对GPRS模块操作前,要运行GPRS模块进行初始化。它包括复bitGPRS模块、读缓冲区大小和设定信息中心号码等。上面介绍的每一步操作都有相应的AT指令,程序中执行指令的步骤是一样的。LPC2292通过串口1使用AT指令操作GPRS模块,例如AT+CMGF=1:设置为文本模式,不支持中文。
常用的与短信息操作相关的AT指令有:
AT+CNMA:新信息确认应答。
AT+CNMI:新信息指示。这个命令选择如何从网络上接收短信息。
AT+CMGR:读短信。信息从+CPMS命令设定的存储器读取。
AT+CMGS:发送信息。
AT+CMGD:删除短信息。删除一个或多个短信息。
AT+CSCA:短信服务中心地址。
GPRS初始化至关重要,如果初始化不成功,将直接影响下面程序的执行。为提高系统的稳定性,在设计中把相关部分都封装成带返回参数的函数形式。
设定信息中心号码是初始化的关键,不同地区的信息中心号码是不同的,这一点要引起注意。并且信息中心号码只需要设置一次就可以了。中国移动短信中心服务号码的编码规则是:+861380 + 开户地四bit长途区号 + 500,长途区号不足四bit的在后面加"0"补齐(如北京为+8613800100500,四川绵阳的信息中心号码是+8613800816500)。
3.3 数据采集任务设计
前面已经介绍过,数据采集包括温度和湿度的采集,选用的温湿度传感器是CHTM-02A,该器件的转换速度快,线性度非常理想。图3为采集湿度的流程图。
在湿度采集程序流程图中,提到了初始化,它包括对LPC2292的 A/D转换器和I/O的初始化。MCU从传感器接收的是与温湿度的值相应的电压值,根据传感器使用手册将接收到的电压转换成所需要的数字量。为了得到更加接近于现实的真实值,使用增强型均值滤波,即将采集的8次外部电压值去除最大和最小值后取平均值,这个平均值即为滤波后的电压。温度采用相似的方式进行处理。
该传感器可测量温度范围为0~100℃,湿度测量的范围为0%RH~100%RH,当出现异常情况时,程序中做出相应的处理。
3.4 控制中心程序设计
控制中心可以是任一GPRS终端,本设计为手机。在系统中有发送控制命令和接收测量节点采集的环境信息的作用。
本系统综合运用了无线通信技术、MCU控制技术、温湿度传感器技术和嵌入式实时操作系统μC/OS-II,以模块化完成,实现了温湿度采集模块化、无线通信模块化。通过对该数采系统的应用,发现GPRS模块工作正常,温湿度值传输准确、稳定。以温湿度计作为标准,与测试所得的温湿度值作对比,误差小:常温下湿度±5RH%,温度±0.5℃。且系统硬件接口电路简单,软硬件系统稳定,模块化程度高,具有很好的可操作性和维护性。