多要素智能主控制器嵌入式软件设计

2019-07-15 11:18马赛飞
计算机应用与软件 2019年7期
关键词:嵌入式软件采集器气象站

马赛飞 刘 钧

1(河南省气象探测数据中心 河南 郑州 450003)2(中国华云气象科技集团公司 北京 100000)

0 引 言

地面气象观测是大气探测的重要组成部分,为天气预报、科学研究和气象服务提供了重要的依据。随着电子技术、计算机技术和网络技术的发展,常规地面观测要素已经实现了由人工观测向自动观测的转变,推动了我国自动气象站的应用[1]。但还存在较多问题,主要体现在需要人工干预处理,数据处理效率低下,缺乏有效的信息数据融合处理能力,制约了气象观测的进一步发展[2]。而电子技术向低功耗、智能化方向的发展,网络将渗透到人民生活和经济社会的每一个地方,这就为大气探测技术的飞跃提供了新的机遇。将成熟的智能传感器技术、智能终端设备技术和无线通信技术引入到我国地面自动化观测业务中,形成具有我国自主知识产权的智能地面自动观测系统,这对提高气象仪器国产化程度,支撑国家气象探测业务发展的需要,具有重要的科学意义和应用前景。目前,国内尚无一套能够实现多要素智能化的自动气象站,多要素智能气象站的研制将成为气象领域一道新的亮点。与以往的气象站采集器软件相比[3],本文设计的嵌入式软件可以实现传感器的自动识别、自动接入、故障自动检查和自动存储等功能,可良好地应用于智能气象站中,提高了设备管理和数据处理的效率,满足通信稳定的要求和多要素数据的采集。

1 总体设计方案

数据采集器是气象站观测系统的核心控制单元[4],系统的控制流程、数据处理等全部通过数据采集器负责完成,由硬件和嵌入式软件组成。气象站系统工作在大气观测场内部,对无线通信传输距离要求不高,而星型网络结构最简单,成本低且最易实现[5],所以无线通信方式的结构采用星状的ZigBee无线网络拓扑结构。智能传感器通过ZigBee无线通信方式将采集到的气象数据传送给采集器,按照数据格式要求[6],采集器将接收到的智能传感器输出的数字信号处理成业务中需要的数据,并完成统计量计算和质控。同时还具有数据存储功能,适应软件升级和数据存储需要,具备掉电保护能力,可以通过光纤和GPRS上传数据至本地和远程业务平台。嵌入式采集器系统如图1所示。

图1 嵌入式多要素采集器系统

2 多要素采集器硬件构建

多要素智能数据采集器主要实现数据处理、存储、传输和控制等功能,其硬件电路包含了高性能嵌入式处理器、高精度实时时钟电路、大容量程序存储器和数据存储器、ZigBee收发器、通信接口、以太网接口、光纤接口、USB接口、SD卡接口、检测电路、指示灯和供电接口等。图2为采集器功能框图。处理器采用先进的ARM9 架构的32 位CPU[7]。该架构类型的处理器是多功能的32 位微处理器,支持丰富的外部设备控制部件,外围设备接口电路实现了采集器的各项功能。

图2 多要素采集器功能框图

3 智能嵌入式主控软件设计

主采集控制器中运行的嵌入式软件是基于保证通信的实时和提高处理多种气象要素数据的效率的需求而提出的。嵌入式软件包括专用的嵌入式操作系统和应用软件[8]。由于Linux系统开发成本低,具有丰富的编译器和调试工具,内核可定制[9],所以本设计嵌入式操作系统选择了实时性高、性价比好、稳定可靠的多任务Linux实时操作系统。数据采集器核心板根据主控制器具体的应用需求加载Linux 操作系统,并加载文件系统[10],使采集器的核心控制处理单元的功能更加强大,运行更加稳定可靠,有效提高了采集器对数据的处理能力,满足了各种复杂气象探测系统的数据处理要求。应用软件建立在实时多任务操作系统基础上,主要完成数据处理、存储、传输、综合质量控制和设备管理等。该软件采用模块化、多任务的设计思路,极大提高了实时监控程序执行的并发性,主要分为三个功能模块,包括主控制模块、数据采集处理模块和通信模块。图3为嵌入式主控软件结构图。

图3 嵌入式主控软件结构图

3.1 主控制模块

主控制模块主要完成整个系统的初始化和自检等功能,实时监听其他模块的运行状态,接收每个模块的日志信息,检查每个模块的信息,对看门狗、外设等运行的监控。图4为主控模块程序流程图。

图4 主控模块流程图

3.2 数据采集处理模块

数据采集处理模块主要与智能传感器进行交互,通过ZigBee方式接收各个传感器采集到的气象信息,对传感器数据进行分钟、小时数据统计量计算,瞬时值质控[11],综合质量控制。将处理好的数据传给数据存储器来进行数据存储,存储介质为内部nandflash及外部SD卡,整合数据和单个传感器数据均进行存储和上传服务器,最后会在一定时间进行删除,以防止存储空间占满。图5为数据采集处理模块程序流程图。

3.3 通信模块

通信模块主要与外围设备进行命令交互,并向业务中心站提供智能气象站业务数据,其交互方式可采用有线或无线通信。可以通过RS232/485/422串口有线传输,并且可由串口设置命令。同时将来自ZigBee传送的数据进行CRC校验,检测数据包的完整性和准确性。最后通过标准光纤接口实现数据上传至本地业务平台,或以GPRS/北斗传输方式实现数据上传至远程业务平台。图6为通信模块程序流程图。

CRC校验是对传送数据的查错校验码[12],可以保证数据传输的正确性和完整性,部分程序设计如下:

/* Check CRC of msg */

if(crc_calculated !=crc_received)

{

fprintf(stderr, ″ERROR CRC received %0X !=CRC calculated %0X ″,

crc_received, crc_calculated);

return ZB_EERO_PKT;

}

crc_calculated=_checksum_crc(msg,msg_length-9);

printf(″cal111:%d ″,crc_calculated);

crc_received=atoi((char*)(msg+msg_length-9));

printf(″rec:%d ″,crc_received);

在接收到传感器发来的数据包时,进行CRC校验,并将校验结果与数据包末端校验码相比较,从而判断数据传输的准确性。

4 测 试

在观测场搭建好各气象要素传感器,放置好带有太阳能板的采集器供电箱,将交叉编译好的嵌入式软件程序加载到采集器的主核心板上。首先通过操作命令设定好每个传感器的ID号,并记录它们的序列号,将信息加入到程序的配置文件中,以便主控制器自动识别传感器,通过ZigBee无线方式进行认证连接。最后用串口线连接采集板和PC机,通过PC机上终端Secure CRT的界面显示,可以看到系统加载,程序开始运行,检测到了传感器信息,并且开始存储各传感器通过无线ZigBee方式传送过来数据的各个过程。终端显示界面如图7所示。

图7 终端显示界面

再将串口线连接至串口调试端,设置好串口参数后,打开串口调试助手,可以看到助手界面开始实时显示传感器数据,同时在输入框发送通信监控命令,可以接收到相应的信息,如图8所示。登录采集器物理IP地址,还可以通过网口下载存储在flash和SD卡中的数据。

图8 串口助手测试结果

5 结 语

本文研究分析了主控制器的功能,简要介绍了硬件的设计框架,重点介绍了嵌入式软件的设计。通过在现场的测试,软件可以正常运行。本次设计的软件创新点在于应用程序意外死机后有自我重启功能,具有数据检测的实时性,能够自我诊断、自我校准,实现了灵活组网和低功耗高精度稳定的无线通信。为地面气象观测实现全面自动化提供巨大的技术支撑,对气象预报和服务提供了更加灵活便捷、及时有效数据服务的地面气象探测业务新模式。同时完成自动气象站向智能气象站的升级换代,具有很强的实用和推广价值。

猜你喜欢
嵌入式软件采集器气象站
我国在珠穆朗玛峰架设世界最高海拔气象站
防雷关键技术在自动气象站系统中的应用探究
珠峰上架起世界最高气象站
COVID-19大便标本采集器的设计及应用
嵌入式软件测试数据传输稳定性检测方式分析
多稳态压电振动能量采集器的动力学模型及其特性分析
浅析嵌入式软件技术的现状与发展动向
新型自动气象站采集器故障判断分析
嵌入式软件在计算机软件开发过程中的运用