陈 洺, 郭晓学
随着科技技术的快速发展,在许多地方都要用到温度采集系统,考虑到温度采集过程中遇到的各种恶劣环境,此系统要求有较高的稳定性和可靠性。本系统使用了四线制铂热电阻PT100作为温度传感器,为了在空间、实时性及可靠性上达到一定的要求,设计了一种基于ZigBee平台的温度采集系统。ZigBee技术是一种具有统一技术标准的短距离无线通信技术,其特点是近距离、自组织、低功耗、低数据速率、低成本[1]。
工业常见的温度采集设备,采集精度不是很高,采集到的信号之间时序不是很严格,4通道的温度采集能够满足常见的要求。本设计采用2块A/D芯片设计了4通道温度采集,通过选择开关选择需要采集的通道,每当一路信号采集送给 CC2430芯片处理以后,在选通下一路进行采集。这样轮流选通各个通道进行采集。
设计的硬件主要由CC2430微控制器,ADC采样电路,通道模拟选择电路,RS232接口电路,(ARM,Advanced RISC Machines)显示电路等。其功能框图如图1和图2所示。
在该系统中 CC2430芯片集成了符合IEEE802.15.4标准的2.4 GHz的RF无线电收发机。微控制器是低功耗的 8051内核,集成了 14位的ADC带有2个强大支持几组协议的USART。为提高采集精度,没有采用CC2430自带的14位A/D转换模块而是采用24位高精度的AD7793。此芯片工作电压在2.7~5.25 V,含有3个差分模拟输入,片内集成低噪声仪表放大器,因而可直接输入小信号[2],它还有两路可编程恒流源输出(10 µA,210 µA,1 MA),可以为电阻类型的传感器提供电流。系统通过恒流源作为模拟转换的外部基准电压,可实现2.1 V的基准电压输出,适合高精度测量应用的低功耗、低噪声需求。它的接口有三线制串行接口(SPI,Serial Peripheral Interface)。
图2 ZigBee接收和ARM显示框
系统的总体硬件设计电路是多通道的:仅以两个通道为例。另外两个通道是对称的,设计原理一样。温度采集电路负责四线制热电阻信号的采集。输入信号要通过低通滤波、开关选通、滤波消噪等单元后再进入AD7793的A/D输入端。由于引线电阻的存在,所以系统传感器采用的是四线制PT100是铂热电阻,它通过对 AD7793芯片编程使 LOUT1输出一个210 µA恒定电流,激励铂电阻,其中r1、r2、r3、r4、分别为近似相等的传感器引线电阻,Rt为铂电阻。AN1和AN2测量端通常是高输入阻抗[3],因此测量电路对I的分流可以忽略不计,得到的铂电阻上的电压为I×(Rt+△R),可以完全消除引线电阻所引起的误差。在电路设计中,ADC的AN1+和AN1-是第一个通道的差分模拟输入端,直接与传感器的两端相接,采集到的就是传感器的电压值。电流从LOUT1输出,经过ADG719模拟开关如图4所示,如果IN脚为低电平,S1通,如果IN脚为高电平,S2通。通过对外围扩展槽Header8X2A编程使模拟开关的IN引脚低电平,S1通。电流从SI流出进入另一个个模拟开关的S1。第一个和第2个模拟开关的IN又接到了反相器74HC04芯片。所以第一个模拟开关的IN为高电平,S1不通。电流从第2个开关S1直接流入了传感器,然后流出经过第一个模拟开关的 S2,一路通过电阻接地,另一路接到ADC芯片的REFIN+。这样就为芯片提供了2.1 V的外部基准电压。这样就完成了系统的温度采集过程。也可以对扩展槽的引脚重新编程,可以控制通道的选择,如果是高电平,就选中了第2个通道工作。
图3 四线制测量电路
图4 ADG719模拟开关
无线发送和接收主要由CC2430的ZigBee无线发收发模块来完成。上一过程AD采集到的数据通过SPI通道与 CC2430的ZigBee发射模块进行数据传输。SPI接口在内部硬件实际上是两个简单的移位寄存器,传输的数据为8位,在主器件产生的从器件使能信号和移位脉冲下,按位传输,高位在前,低位在后。在SCLK的下降沿上数据改变,同时一位数据被存入移位寄存器[4]。AD作为SPI通信的从机,AD芯片它的DOUT/RDY作为SPI从机模式的输出,接主机模式的输入口MISO。它的DIN脚是SPI从机模式的输入,和主机模式的输出口MOSI相连。SCLK是时钟输入接CC2430芯片的SCLK。然后CPU内核将读出来的数据进行处理,读出 AD芯片的数据前,先进行对AD芯片的寄存器配置,首先写通信寄存器,选择配置寄存器,将使能为单极性编码,仪表放大器的增益设为8,然后配置ADC为缓冲模式工作,通道选择AIN(+)-AIN(-),再写通信寄存器,选择IO寄存器,编程电流为210 uA,接着选择模式寄存器进行内部零电位校准,再选择模式寄存器进行内部满量程校准[5-6],最后从通信寄存器读出3字节。把3个字节的CODE码转化为温度值,ADC已配置成单极性工作模式。数据处理结束,被送到RF模块的RFD缓存器里面,经过调制、合成、放大,送到ADC芯片的RF_P和RF_N口,准备通过天线发送出去。CC2430接收模块的RF_P和RF_N口接收到正向和负向射频信号,并向LNA输入信号,经解调送入存储器[7],ZigBee接收模块通过电平转换芯片是 MAX3232和异步串行通信接口 RS232进行通信。RS232和CC2430芯片的P0口相接。RS232另一端和ARM开发板相连,直接在ARM开发板的LCD上面进行界面显示。
系统软件设计如图5所示,设计过程实现了基于ZigBee平台的多通道温度采集的功能。应用程序需要通过SPI通道从AD芯片上读取24位code码。然后将这3个字节的数据码转化为温度值,通过ZigBee无线发送模块和无线接收模块传输数据,刚开始要对CC2430、AD7793、串口、SPI口进行初始化,接着需要对AD芯片上的各个寄存器进行配置,电位进行校准。然后就从AD里面连续的读取3个字节数据,并转换成电阻值,电阻100欧是温度0度的一个分界点。最后将得到的小数类型的温度值转换为字符型的温度值,并基于ZigBee协议栈构建无线网络实现主从节点之间数据的采集与传输,ZigBee发送模块将数据传送给接收模块,经串口传输ARM开发板对数据进行处理并在LCD上面进行显示[8]。
图5 系统软件设计流程
通过观察几组实验的数据,100 Ω标准温度应为0℃,138.5 Ω对应100℃,150.2 Ω对应131℃,实际结果出现了0.1℃的误差,这是由多种原因造成的,因为整个温度采集系统经过好几个环节,刚开始温度传感器采集模拟信号会出现微小的偏差,AD芯片的采集以及 CC2430芯片的读取数据,再经ZigBee平台无线传输,每个环节硬件电路的工作过程和它的稳定性都会对数据有影响。硬件电路中,还需要进一步增加一些滤波和抗干扰电路的设计。软件设计过程还需要进一步的优化,软件设计代码尽量精简,算法不复杂,才能减小最终数据的误差。在开发中,已经开始用到嵌入式系统[9-10],数据在ARM板的LCD上显示,这样在实际应用中就会更方便。在实际开发中,已经有很多类似的例子。考虑到 CC2430芯片内核的资源和处理能力有限的局限性,不能运行复杂的算法和对数据更好的处理,同时为了节省资源和成本,今后进一步把采集电路和ARM处理控制电路集成到一起,外接合适的LCD进行显示,或者会通过 RS323总线连接上位机,用QT和数据库做出更丰富的显示界面。这样就会在工业控制,消费电子,军工业等领域尤其是在信号的实时跟踪这个方向会有很广阔的实际应用价值。
[1] 李文仲,段朝玉.ZigBee2006无线网络与无线定位实战[M].北京:北京航空航天大学出版社,2008:2-37.
[2] 郭渊博,杨奎武,赵俭,等.ZigBee技术与应用:CC2430设计、开发与实践[M].北京:国防工业出版社,2010:65-86.
[3] 陈旭,方康玲,李晓卉.基于CC2430的ZigBee 数据采集系统设计[J].湖南工业大学学报,2008,22(06):59-61.
[4] 刘任庆,刘莉娜.基于 ZigBee技术的工业无线温度变送器的设计和实现[J].通信技术,2009,42(06):188-193.
[5] 李文仲,段朝玉.ZigBee无线网络技术入门与实战[M].北京:北京航空航天大学出版社,2007: 87-106.
[6] 高守玮,吴灿阳.ZigBee技术实践教程:基于CC2430/31的无线传感器网络解决方案[M].北京:北京航空航天大学出版社,2009:94-116.
[7] 穆虹,陈向东,刘胜,等.基于 CC2430无线传感器网络监控系统设计[J].通信技术,2011,44(06):107-109.
[8] 昂志敏,金海红,范之国,等.基于 ZigBee 的无线传感器网络节点的设计与通信实现[J].现代电子技术,2007,30(10):47-49.
[9] 唐六华,王瑛.智能 IC卡技术及其在嵌入式系统中的应用[J]. 信息安全与通信保密,2010(04):90-92.
[10] 关可,盛惠兴,王海滨,等.基于nRF905的无线数据传输系统设计[J]. 信息安全与通信保密,2009(03):85-87.