扫描二维码
随时随地手机看文章
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℃。且系统硬件接口电路简单,软硬件系统稳定,模块化程度高,具有很好的可操作性和维护性。