2系统软件分析与设计
读卡器采用ARM 11架构、功能强大的S3C6410处理器,可以支持多个嵌人式操作系统。本系统设计采用Windows CE操作系统,下面主要介绍使用C/C++开发Windows CE应用程序的过程。系统软件设计的整体流程图如图2所示。
由图2可知,通过温度参数提取电路后的数据经过两条不向的路线进行处理。其中一条用于在监控系统上进行显示,绘制温度一时间曲线分析计算特殊值(最大值、最小值、平均值)信息;另外一条是用来分析参数和对应的节点信息,判断数值是否超标,并根据这一情况决定是否启动GSM短信报警模块,以便在一定的周期上传数据于中心服务器备份保存。
本Window CE应用程序开发环境为VS2005, Window CE操作系统采用6.0版本。
2.1温度参数提取
由于数据采集部分主要由硬件电路完成,因此软件设计主要完成简单的控制和最后对数据的处理。
首先,程序控制通过MUM模块发送特定的标签询问码。这个询问码是规定的一个8 bit的码序列,只需设定它发送的信号频段保证能被标签正确地接收即可,信号通过标签后自动反射回来。发送完询问码后,程序进人等待接收状态。
反射回来的信号通过一系列的硬件电路处理后到达处理器的是基带信号,这个信号包含了标签的ID和标签所在物体的温度信息。通过抽样判断从信号幅度中可以得到ID值;数据送人到分析器中进行FFT计算,便可以得到温度参数信息;通过对比频率偏移与温度之间的关系即可以确定物体温度。
2.2监控状态显示和跟踪绘制曲线
本部分主要功能是把从射频端口采集到的信息按照对应的ID信息显示在相应的显示框中,然后根据需求对单个节点进行跟踪绘制曲线和计算特殊值的处理。
2.2.1温度信息的实时显示
采集到的数据根据其标签编号分别存放在不同的队列中。从队列中读取的数据通过标准化后分别显示在相应的显示框中。数据显示始终和数据采集保持同步,数据采集周期为50 ms,每进行一次采集,数据立刻进行更新显示。
本设计中存放数据的队列使用的是CList类,这个类可以定义其存放数据的数据类型,并具有丰富的成员函数,可以方便地实现数据的操作。
2.2.2数据跟踪和分析处理
在数据实时显示界面,可以选择需要跟踪分析的节点编号和绘制曲线的温度范围,根据选择调用对应队列中的数据来绘制曲线,对单个节点进行数据跟踪来观察数据的变化情况,并对数据进行分析处理,计算某个范围内数据的最大值、最小值、平均值以及可以对绘制曲线的界面进行截图保存。
在VS2005开发环境中,绘制曲线使用自定义控件来完成。但在使用自定义控件之前必须在对话框对应类的构造函数中调用窗口类的注册函数,对窗口类进行注册,这样在添加自定义控件时,控件的对应类名栏填写的类才可以使用。跟踪曲线的绘制由MoveTo()和LineTo()完成,只要使其绘制直线的区间足够短,由无数的直线段连接起来的线直观上便可以表示是连续变化的曲线。由于绘制曲线首先需要绘制坐标系、刻度线、暗格和边框等,因此,设计时定义了一个类用来专门完成有关绘制曲线的操作,只需要调用对应的类成员函数即可。
2.3危险信号报警和数据上传
数据的另外一条的处理途径就是进人到GSM和备份上传处理模块,主要完成危险信号报警和数据上传功能。
2.3.1危险信号报警
这一部分数据首先用来判断各个标签对应的温度值是否超出了这个标签温度的上限值,一旦判断超出了这个上限值,程序立即启动GSM模块将此标签编号及其对应的设备编号和此温度值一起通过GSM模块使用AT指令发送文本形式的SM于特定的手机号码中。通常这个号码属于负责维护此设备的维护人员,这样就可以使其危险信息在第一时间传递到直接负责人手中,使出现的问题能得到及时处理。
这个上限容值的最初值是取于经验值,为此本系统还提供了对此经验值的校准。在跟踪绘制单个节点的温度一时间曲线时,通过分析其在通常情况下的曲线变化情况,可以得到数据变化的最大值、最小值和平均值,这些值经过正常工作情况下的多次统计,就可以用来校准经验值,使得对应的温度上限值在特定的情况下能够更加准确、可靠。
2.3.2数据上传备份
将采集到的数据存放在队列CList中,但是由于大量的存储需要占用设备的存储资源,而在移动设备上存储空间是相当宝贵的,而且要承担由于系统发生故障而使数据完全丢失的风险,因此不可能使数据一直存放在本设备中,需要将数据上传于服务器暂存备份。这种数据传输属于大数据量的传输,因此本设计选用网口模块通过接入局域网或者使用GSM网络上的GPRS数据业务来完成。这两种方式可根据不同情况下网络的可用性来选择,都可以达到数据传输的目的。
数据上传自动完成需要对上传周期和上传网络进行设置,在进人监控软件后首先根据网络的可用性设置选择有线还是无线网络和相应的上传周期。