青海省是青藏高原的重要组成部分,素有“中华水塔”和“动物王国”之称,是我国五大牧区之一,但由于近几年的鼠类肆虐、气温变暖、水土流失、草地沙化、江河源头水资源锐减和人口增加等原因使部分地区的牧民被追离乡谋生,出现“生态难民”现象。为了畜牧业的可持续发展,政府部门引导牧民建起了育肥棚圈养。但调研中发现,多数牧民居住在高寒地区,这里早晚温差很大,育肥棚中牛羊很易得病,过高过低的温度也影响着牛羊的食量,从而影响着牛羊的育肥速度;针对此问题设计了一个温度监控系统,此系统能够把温度监控在最适宜育肥的+10~+21℃之间,如温度低于+7℃或高于+27℃系统会自动地控制GSM模块向指定用户发送短信,实现报警功能。
1 系统硬件电路总体结构
该系统的硬件平台结构如图1所示。其中S3C2410为处理器芯片,DS18B20为数字温度传感器,系统运行时,处理器芯片将温度传感器采集的数据进行处理,将处理得到的数据在LCD屏上显示,并定时将采集结果写入Flash中,然后将采集到的温度值和预设值进行比较,检验其是否在其预设范围内。若超出预设范围,通过TC35GSM通讯模块发出报警信息;由于处理芯片存储空间有限,不能满足操作系统和其他程序的运行,所以外接了SDRA存储器K4S561632C-TC75(两片16 Mx16 bit构成32 bit)和Nand Flash存储器K9K1G08U0A(两片64 M×16bit构成32 bit);复位电路选用了MAX706;LCD选用了LB064V02;为了方便Linux内核移植、交叉编译、驱动和应用程序下载以及以后的二次开发和功能扩展还用JTAG和其他外围器件。
1.1 S3C2410处理器芯片
嵌入式系统硬件的核心部件是嵌入式处理器,本系统选用了三星公司推出的16/32位RISC处理器S3C2410,这是一款低价格、低功耗、高性能的处理器,它为了降低整个系统成本,S3C2410提供了很丰富的内部设备:分开的16 k指令Cache和16 k数据Cache、MMU虚拟存储器管理、LCD控制器、支持NAND Flash系统引导、片选逻辑和SDRAM控制器、8通道10位ADC和触摸屏接口、看门狗定时器、3通道UART、I2C控制器、USB控制器、中断控制器以及可编程I/O口等。
1.2 S3C2410与DS18B20芯片的接口电路
温度传感器在整个控制装置中占据着十分重要的地位,它所采样的值是ARM微处理器的主要处理数据,是实施控制的依据。所以保证采样的数据准确是进行良好控制的基础。本系统选用温度传感器时考虑到高原的恶劣环境和牧民的实际情况选用了价格便宜、硬件开销小、精度较高、有极强的抗干扰能力和纠错能力的DS18B20数字温度传感器。此传感器采用单总线专用技术,即一条线即可与处理器实现双向传递数字信号,无须经过其它变换电路;直接输出被测温度值(9~12位二进制数),工作时每一步操作都遵循严格的工作时序和通信协议。被测温范围-55~+125℃,在-10~+85℃时精度为±0.5℃;此芯片内含64位经过激光修正的只读存储器ROM,用于存储唯一64位序列号,因此可以在一条总线上挂接多个DS18B20而不会出现混乱;内含暂存RAM,用于存放工作参数和测量值;具有非挥发的温度报警触发器TH和TL,用户可以分别设定各路温度的上、下限;工作电压范围在3.0~5.5 V。DS18B20与控制器的接口电路图如图2所示。
1.3 S3C2410与外存储器的接口电路
为了降低成本和充分发挥32位处理器的数据处理能力,本系统采用2片16位的HY29LV160和2片16位的K4S561632C芯片分别构造了32位的Flash和SDRAM存储系统。Flash与S3C2410连接时,低16位片的WE#端接S3C2410的nWE<0>。高16位片的WE#端接S3C2410的nWE<2>,2片Flash的BYTE#均上拉,使工作在字模式;2片Flash的地址总线[A19-A0]均与S3C2410的地址总线[ADDR19-ADDR0]相连;低16位Flash与S3C2410的低16位数据总线[DATA15-DATA0]相连,高16位的数据总线与[DATA31-DATA16]相连;2片Flash的OFF#接S3C2410的nOE#;2片Flash的RESET#端接S3C2410的nRESET;将S3C2410的nGCS<0>接至2片Flash的CE#端。SDRAM与S3C2410连接时,SDRAM的地址线为[A12-A0](行/列地址线分时复用)和片选信号为BA0和BA1与S3C2410的[ADDR14-ADDR2]、ADDR[22]和ADDR[23]相连。第一片SDRAM输入数据线[DQ15-DQ0]连接S3C2410数据总线[DATA15-DATA0],第二片连接数据总线[DATA31-DATA16]。另外,第二片的LDQM、UDQM、SCLK分别连接S3C2410的DQM2、DQM3、SCLK1。图3是SDRAM芯片引脚与S3C2410引脚之间的接口图,Flash的连接方式和SDRAM方式相似,这里就不给出接口图。
1.4 TC35GSM通讯模块
TC35是Siemens公司推出的新一代无线通信GSM模块,该模块有AT命令集接口,支持文本和PDU模式,可以快速可靠地实现系统方案中的短消息发送。此模块主要由GSM基带处理器、GSM射频模块、供电模块(ASIC)、Flash、无线接口和ZIF连接器6部分组成。它通过独特的40引脚的ZIF连接器,实现电源连接、指令、数据、语音信号及控制信号的双向传输。作为TC35的核心,基带处理器主要控制着模块内各种信号的传输、转化和放大,GSM射频部分完成对射频信号的接受和发送等处理,Flash用来存储用户配置信息、电话本和其他信息。ZIF的40个引脚中,其中数据的输入/输出引脚为16-23,即9针串口,SIM卡引脚为24-29,其中CCIN引脚用来检测SIM卡支架中是否插有SIM卡。当插入SIM卡,该引脚置为高电平,系统方可进入正常工作状态。但目前移动运营商所提供的SIM卡均无CCIN引脚,所以在设计电路时将引脚CCIN与CCVCC相连。由于TC35数据接口工作在CMOS电平(2.65 V)下,因此需要通过电平转换芯片MAX232与处理器串行口连接。TC35与S3C2410的接口电路如图4所示。
2 系统软件设计
软件方面我们做了移植加载引导BootLoader、Linnux内核的裁剪及重新编译、移植文件系统、驱动程序和用C开发了应用程序。具体工作流程是当系统开机后,进入BootLoader程序进行一系列的硬件初始化,然后加载Linux系统进一步初始化,如成功,系统调用各个模块开始工作,同时看门狗检测系统是否运行正常,如不正常,则自动复位。工作时时,S3C2410自动控制GSM模块向指定用户发送短信。在发送短消息前,首先要发送AT+CMGF命令选择短消息的格式,然后通过AT+CSCA来获取短消息服务中心,等待字符‘>’出现后,开始发送字符,并以Ctrl+C结束。短消患的发送和接收控制模式有3种:Block模式、Text模式和PDU模式。使用Block模式需要手机生产厂商提供驱动支持,目前国内手机基本上不支持,Text模式不支持中文。流程图5是用TC35来实现温度报警的过程,其中流程图中短消息发送格式设置为PDU模式(AT+CMGF=0),短消息中心设置为西宁市(AT+CSCA=“+8613010776500”)。
3 测试结果
1)系统的基本功能测试。首先借助“串口调试助手V2.2”进行了GSM模块的测试,测试结果能够实现发送中文短信,然后系统集成并上电后S3C2410会不断读取温度,当温度过高或过低超过限定值时,处理器自动控制GSM模块向指定手机发送短信,实现报警功能。一次报警后,S3C2410隔半小时再次进行温度读取和判断,如果仍然不在限定值范围,则继续报警,如果温度回归正常,则进入待机循环。
2)温度误差的计算。分-20℃、+7℃和+27℃3个温度进行测试。把温度传感器放入恒温箱中,每一个温度测试30 min,每秒钟记录1组数据,共测试1 800条记录。测试时,基准数据为箱内温度,计算时将测试存储的数据与基准数据作差,计算公式如下:
最终统计在-20℃、+7℃、+27℃3个温度下,它们的温度误差分别是1.21、1.08和0.89。也就是说,设备所测试的结果都是在设定的温度附近波动,且波动的范围在1℃左右,说明此设备的稳定性较好。
4 结束语
文中设计了基于S3C2410处理器、DS18B20温度传感器和TC35GSM模块组成的温度监控系统,此系统在考虑到高原的特有气候和经济水平,设计中考虑到了它的性价比,以短信息的形式将过高或过低的温度发给用户,用户根据具体情况进行处理。试验证明该系统的温度采集和短信的发送性能满足设计要求。由于,牧民嫌电费贵,本系统只涉及了短信的发送功能,没有对接收短信及接收后系统对温度的自动控制进行研究,但系统留了相应的接口,可以进行二次开发和功能扩展。