0 引 言
自动气象站由气压、温度、湿度、风向风速、雨量、辐射等气象传感器及数据采集处理、管理系统等组成。自动气象站存在长期稳定性问题,需要对气象传感器进行定期的校准来确保观测数据准确。
气象观测数据不能中断,所以不能像普通计量仪器一样拆下后送检到检定室。较好的方法是直接在观测现场利用标准器进行比对后校准。因此设计了一种手持式校准仪,采用无线传感器网络来读取自动气象站的观测数据及标准器的示值,并进行校准。
1 系统设计与实现原理
本设计利用无线传感器网络、Windows CE操作系统,ARM 处理器开发了一种针对气象要素传感器校准的手持式校准仪。校准的时候,被测传感器的数据利用ZigBee技术通过无线传感器网络发送到协调器,协调器将数据传送给手持式校准仪。校准仪进行误差的计算,如果存在的误差大于对应要素预设的误差,则会自动生成校准命令以及校准值发送给传感器,直到消除误差为止。整个系统工作原理如图1所示[1].
图1 系统工作原理
2 系统硬件设计
该校准仪硬件功能框图如图2所示,硬件主要由基于CC2530的数据采集模块和具有ARM9内核的硬件平台模块。
图2 手持式校准仪硬件框图
数据采集模块主要由CC2530芯片、传感器及外围部件构成。在硬件平台上进行操作系统的移植以及数据校准的功能[2].
2.1 数据采集模块设计
数据采集模块利用了ZigBee无线传感器网络,主要由ZigBee网络协调器节点和ZigBee传感器终端节点构成,本系统采用的是TI公司的CC2530作为无线传感器网络节点[3].CC2530是用于2.4GHz IEEE 802.15.4、ZigBee和RF4CE应用的一个真正的片上系统解决方案,它能够以非常低的总的材料成本建立强大的网络节点。
CC2530具有极高的接收灵敏度和抗干扰性,只需要配合少数的外围元器件就可以实现信号的收发功能[4].
2.2 硬件平台设计
本系统采用的32位ARM920T 的RISC处理器SamsungS3C2440A ,主频400MHz.采用320×240分辨率的3.5英寸触摸真彩液晶屏。SDRAM 采用的H57V2562GTR,具有32 MB 的存储空间,NANDFLASH采用三星公司的K9F2G08ROA.网络协调器节点采用CC2530,具有较低的成本,只需要配合少数的外围元器件就可以工作。S3C2440 与CC2530,NAND FLASH,SDRAM 的连接简图如图3所示。硬件系统构成简洁,体积小,运算速度快,并可安装WindowsCE,Linux等操作系统[5].
图3 系统连接简图
3 软件设计
校准仪根据所需校准的气象要素,进入相应的校准界面,并自动接收处理数据,如果检测误差大于预设误差时,在确认校准密码后,自动生成校准命令并无线发送给对应的气象传感器。
系统安装了Windows CE 5.0操作系统。WindowsCE是微软公司嵌入式、移动计算平台的基础,它是一个开放的、可升级的32位嵌入式操作系统,具有可靠性好、实时性高、内核体积小及可伸缩性、强大的通信能力等特点,被广泛用于嵌入式智能设备的开发[6].校准仪系统软件部分主要由两部分构成:一是串口通信,主要用于协调器与手持式校准仪之间进行实时数据传输,另一部分是用户界面软件设计及功能实现,两者都使用嵌入式C#语言编写,采用VS 2005的窗体界面进行可视化软件开发。图4为系统软件流程图。
3.1 嵌入式操作系统Windows CE.NET的移植
硬件系统完成后,需要将操作系统移植到硬件平台并开发应用程序。Platform Builder是基于WindowsCE.NET操作系统构建定制嵌入式平台而提供的集成开发环境(IDE),它提供了设计、创建、编译、测试和调试功能,以及平台开发向导和BSP开发向导、基础配置、仿真器、Windows CE Test Kit等。具体移植的步骤如下:
图4 系统流程图
(1)对操作系统进行裁剪,配置各个组件及修改相关配置文件;(2)开发目标设备上的驱动程序,建立定制的CE操作系统映像文件;44 现代电子技术2012年第35卷(3)将目标文件下载到目标设备上调试;(4)定制操作系统内核后,导出平台SDK,供在Visual Studio 2005中开发上层应用软件[7].
3.2 开发环境的搭建
针对Windows CE 5.0 操作系统,选用基于。NET 2.0框架的Visual Studio 2005环境来开发。本文通过访问。NET Compact FrameWork类库,进行图形化窗口编程,在开发环境中选择智能设备WindowsCE 5.0设备应用程序模板进行开发。
3.3 界面设计
在系统界面设计中,主要分为主界面,各气象要素校准界面。主界面主要用于气象要素的选择,使用了Menuitem控件进行菜单的创建,另外还提供了编辑和工具等功能。在校准界面中,主要使用了SerialPort,ComboBox,TextBox和Button等几个控件。Serial-Port控件是用来对串口的设置,进行收发数据;ComboBox控件用来对节点和校准点的选择;TextBox控件用来存放数据;Button控件用来进行一些命令的操作[8].
3.4 校准功能设计
进入各个气象要素校准页面,首先进行节点和校准点的选择,接着设置好串口号和波特率,打开串口进行数据的自动接收。在串口应用程序中,发送区文本框为TxSend,接收区文本框名为Txrec,项目中添加一个SerialPort控件,名为Port,发送按钮名为Send,下面是接收和发送的部分代码[9].
Port控件中DataReceived事件的处理函数为:
Void port_DataReceived (object send,SerialDataReceivedEventArgs){int bytesToRead=port.BytesToRead;byte[]arr=new byte[bytesToRead];port.Read(arr,0,bytesToRead);string str=Encoding,Default,GetString(arr,0,bytes-ToRead);txrec.Text+=str;}
发送按钮单击事件对应的处理函数为:
Void Send_Click(object send,EventArgs e){Byte[]arr=Encoding.Default.GetBytes(txSend.txt);Port.Write(arr,0,arr.Length);}
由协调器接收传感器网络中气象传感器节点发来的数据,并通过串口发送到ARM 处理器,其数据采用九字节的十六进制数的数据通信格式,如图5所示。
第一字节是数据标识符;第二个字节表示气象要素类型,01是气压,02是气温,03是湿度等;接下来连续四个字节是传感器的数据,并紧跟两位校验位;最后一个字节是结束符。
当协调器发送一帧数据后,系统解析接收数据并转化为浮点数显示在接收传感器数据区中。如标识符为“D”,则表示传感器发来的数据,如为“S”,表示标准器发来的数据。将传感器的数据与标准器的数据进行比对分析,如果误差大于规定阈值,则将误差数据通过校准命令发送给传感器。温度校准的运行界面如图6所示,采用第二个串口的目的是确保在标准器没有连接无线传感器网络接口时,直接利用串口实现数据通信。利用5次连续温度检测的平均值进行校准,以确保校准精度[10].
图5 温度校准时的软件实时运行界面
3.5 软件的部署及移植
程序编写完成之后在VS 2005开发环境中进行调试、目标设备、传输协议等相关的设置,再将VS 2005与硬件设备平台进行连接握手,利用微软提供的工具ActiveSync将程序部署到手持式校准仪中,并可在目标设备上实时运行。
为了将以上编译的应用程序固化到设备中,以便每次开机时都能自动运行,采用以下步骤进行处理:
(1)把应用程序Regulation.exe复制到PlatformBuilder 5.0安装目录下的FILES目录中。
(2)创建Regulation.lnk 快捷方式文件,放入FILES目录中。
(3)打开Platform.bib文件,添加如下内容:
Regulation.exe$(_FLATRELEASEDIR)Regulation.exeNK U;Regulation.lnk $(_FLATRELEASEDIR)Regulation.lnkNK U这样,执行SYSGEN的时候会把这两个文件加入到内核中,最后它们会存在于系统的Windows目录中。
(4)打开Platform.dat,加入以下内容:
Directory(“\windows\桌面”):-File(“校准仪。lnk”,“\windows\Regulation.lnk”)这将会在桌面上出现名称为“校准仪”的快捷方式。
(5)最后执行菜单Builder→Sysgen生成NK.bin和NK.nb0,把它们烧写或者下载到ARM 系统中启动后,就会在桌面上看到“校准仪”快捷方式了。
4 结 语
通过系统的电路设计及软件编程,完成了手持式校准仪的设计,该手持式校准仪能够在无线传感网络自动气象站现场方便地进行温度、湿度、气压等气象要素的实时校准,具有使用方便、成本低廉等特点。通过改进完善,系统可应用于实际的物联网自动气象站的校准中。