尽管我国自动气象站数目已达到3万多个,但在很多无人区仍很少有气象站。随着气象业务需求的提高,气象站的密度也要不断提高,特别是对于偏远地区和恶劣环境下,气象站的长时间工作就是一个亟需解决的问题[1]。
自动气象站的核心是数据采集器,数据采集器包括数据采集、数据运算、数据质量控制以及数据传输。国内在低功耗方面的研究工作主要集中在数据传输和低功耗芯片的选择上[2]。本文从业务需要角度出发,设计出一款低功耗的自动气象站数据采集器。该采集器中将数据处理和数据采集任务分离,由两个CPU分别完成数据采集和数据处理任务。利用MSP430F5438作为气象要素采集芯片(分采集器),AT91RM9200作为数据处理芯片(主采集器)。在进行基本气象要素采集时,主采集器进入低功耗睡眠模式,根据气象要素采集规范,在每分钟内,分采集器将采集到的数据保存在存储器中,此时,主采集器退出低功耗睡眠模式,读取分采集存储器中的气象数据。在系统的每分钟内,绝大部分时间主采集器处于深度休眠状态,从而达到降低装置平均功耗的目的。
该款低功耗自动气象站的数据采集器可应用于偏远地区自动气象站,具有较好的市场前景。
1 系统总体设计
自动气象站数据采集器主要由AT91RM9200主采集器模块、基本气象要素的数据采集模块以及软件部分组成,实现数据采集、处理、存储和传输的功能[3]。数据的采集主要通过MSP430F5438(分采集器)来完成,分采集器主要按照国家气象局标准的采样频率对各个气象要素进行采集和存储,在每分钟采集完之后,分采集器将1 min内采集的数据通过SPI接口发送给以AT91RM9200为核心的主采集器,主采集器模块按气象数据处理规范对接收的数据进行处理后存储在Flash中,以便数据的实时传输和显示。软件部分以Linux嵌入式操作系统为软件平台,与终端微机或远程数据中心进行交互以协同完成自动气象站数据采集的功能。采集器的系统组成如图1所示。
2 硬件设计
2.1 主采集器
主采集器是整个自动气象站的心脏,由嵌入式硬件和软件组成。
主采集器采用Atmel公司的AT91RM9200作为系统的CPU,AT91RM9200内含MMU虚拟内存管理单元、16 KB SRAM和128 KB ROM、1个主/从SPI(串行设备接口)等[4-5]。AT91RM9200负责整个系统内部各模块之间的协调工作,整个主采集器结构框图如图2所示。
在整个自动气象站数据采集器系统中,主采集器主要完成两大功能:(1)读取基本气象要素分采集器采集的数据,对分采集器读取的数据进行控制运算、数据计算处理、数据质量控制、数据记录存储,实现数据通信和传输,并与终端微机或远程数据中心进行交互;(2)担当管理者角色,对构成自动气象站的所有分采集器进行管理,包括网络管理、运行管理、配置管理、时钟管理等以协同完成自动气象站的功能[3]。
2.2 分采集器设计
分采集器系统包括MSP430F5438芯片、组成该最小系统的外围电路、基本气象要素传感器以及信号调理电路。基本气象要素数据分采集器采用SPI总线通信方式与主采集器进行数据连接。
2.2.1 MSP430芯片选型
TI公司54系列最新的型号MSP430F5438有很好的低功耗处理能力。它是一款16位RSIC结构的MCU,其最高主频为25 MHz,内含256 KB的Flash、16 KB的RAM、87个I/O、4个串口通信接口、12 bit A/D转换器、SPI通信接口等资源。相比传统的STC、AVR、PIC、MSP430单片机,它的资源更加丰富,在超低功耗工作模式下,其使用时间能达到几年以上[6-7]。正是由于上述资源的优越性,本自动气象站分采集器中的MCU主要采用MSP430F5438单片机。
2.2.2 基本气象要素采集模块
自动气象站的基本气象数据采集包括温度、湿度、风速、风向、雨量和气压。温湿度测量采用Visala公司的HMP155D传感器,其输出的模拟量经过四线制差分放大电路之后由模/数转换器转换为单片机可处理数字信号。风速和雨量传感器分别是EL15-1C型和FDY-02翻斗型,对应输出的是脉冲信号,风速的频率与风速成正比,通过单位时间内计数器的值即可完成风速测量;翻斗雨量传感器翻转频率与雨量成正比,通过单位时间内(雨量计翻转的次数)计数器的值来完成雨量的测量。EL15-2C杯式风向传感器输出为7 bit格雷码,通过程序计算得到相应的风向。DYC1数字式气压传感器的输出是通过RS232传输,因此在气压传感器与单片机之间需要有RS232接口电路。采用SPI来实现与AT91RM9200之间的通信。基本气象要素数据采集的结构图如图3所示。
2.2.3 SPI接口电路
本系统为主采集器与分采集器之间的通信预留了很多接口,在基本气象要素的分采集器中采用了两个SPI接口与主采集器之间进行数据通信,其中一个外接A/D转换器,另一个直接与数字量传感器相连。
SPI(串行外设接口)共由3~4条信号线组成,包括串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。SPI通信的信号格式无需起始和停止信号同步。分采集器直接将要传送的数据写入到主机的数据寄存器中。在写入主机的过程中自动启动主机发送,在同步信号SCLK的作用下把串行数据输出中的内容一位一位地移到引脚数据接收端(SDI)。可以看出,用户编程只需在发送数据时写数据到SPI发送数据寄存器;在接收数据时读SPI接收数据寄存器。其余工作都由SPI内部自带的模块完成[8]。本系统中MSP430F5438采用四线制的两路SPI与AT91RM9200的SPI接口进行分时复用通信,其相应的接口电路设计图如图4所示。
2.3 自动气象站的功耗分析
当前,制约着自动气象站广泛发展的不是速度和工艺,而是设备的功耗。在设计自动气象站数据采集器时,应尽量降低自动气象站的整体功耗。
自动气象站数据采集器的功耗主要包括主采集器功耗、分采集器功耗以及智能传感器的功耗。而在这些功耗中,主分采集器的功耗起着主导作用。分析主分采集器的功耗问题,对降低系统的整体功耗非常重要。主分采集器的功耗又包括系统的软硬件功耗。虽然功耗最终是由硬件系统产生的,但是影响功耗的因素并不只是硬件。硬件依赖于运行于其上的软件来实现其处理信息的功能,软件本身不会产生功耗,但是软件的数据存取和指令执行都会使硬件产生功耗。因此要降低功耗,必须从嵌入式硬件和软件两方面着手考虑如何进行功耗优化。
从硬件来考虑,硬件的功耗主要分为动态功耗和静态功耗。动态功耗是由硬件的负载电容充放电造成的,静态功耗则是由漏电流造成的[9]。可以用式(1)表示:
其中:C为系统负载所代表的电容,N为电路每拍的信号翻转次数,V为系统的输入电压,f为时钟频率,Ileak为漏电流。由式(1)可知,通过降低电压和频率可以降低系统的功耗。
3 实验与结果
自动气象站把数据采集和数据处理分开,使用超低功耗的MSP430F5438进行采集,ARM9每隔1 min会进行一次系统唤醒。在休眠期间,分采集器采集的数据将被存储于主采集器的存储器中,之后主采集器进行数据处理。系统每分钟内只有6 s处于工作状态,其余时间均在休眠状态。实际系统的功耗单位是以电流为标准,通过量取系统总的平均电流来比较自动气象站的功耗大小。设计完成后,系统通过多次测量静态功耗(传感器未工作)和动态功耗(传感器正常工作)并取平均值,然后把所得结果与市场上主流的ZQZ_CⅡ型、CAWS600型和DYYZ-Ⅱ自动气象站作比较,最终可以得到系统的测试结果,如表1所示。
本文主要研究了自动气象站的数据采集和功耗问题,设计了新一代自动气象站数据采集系统。经过初步测试,将系统的基本6项气象要素传感器全部打开工作,系统功耗较传统的自动气象站得到了极大的改善,使得自动气象站不再受市电供电的束缚,即使在偏远地区也能保证15天以上连续运行,具有良好的市场应用前景。另外,本数据采集器的静态功耗偏高,对于睡眠模式的软件编程还需进一步优化,使之能够更好地满足系统长时间工作的要求。
参考文献
[1] 孟昭回,李庆军.自动气象站综述[J].气象水文海洋仪器,2009(4):54-59.
[2] 叶小岭,杨大红,周金兰.基于CAN总线的自动气象观测系统设计[J].自动化与仪表,2009,4(9):19-21.
[3] 中国气象局.地面气象观测规范[M].北京:气象出版社,2003.
[4] 刘洋,王海滨,赵红,等.基于ARM9和CPLD的四导心音采集显示系统的设计[J].电子技术应用,2013,39(12):18-24.
[5] 郑诚,余珊南,祝永华,等.一种基于ARM的便携式心率检测仪的设计[J].微型机与应用,2014,33(5):27-29.
[6] 杨乐,高超.基于彩信的远程控制宠物茏系统的研制[J].信息技术,2012(10):40-42.
[7] 齐怀琴,张松,王晗.基于MSP430F5438的超低功耗森林火灾预警系统设计[J].测控技术,2013,32(1):28-32.
[8] 张玮,刘宇,薛志远,等.基于SPI总线的DSP与音频编解码芯片的接口设计[J].电子技术应用,2013,39(6):31-33.
[9] 周宽久,迟宗正,西方.嵌入式软硬件低功耗优化研究综述[J].计算机应用研究,2010,27(2):423-427.