技术频道

一种基于ADμC816的自动气象站

摘要 本文介绍了一种新型的MCU ADμC816,该芯片内含具16位的ADC。以ADμC816为核心,研制了一种自动气象站。该自动站能检测气压、气温、风向、风速、湿度、降雨6个气象要素,并具有存储、GPRS通讯等功能。
关键词 ADμC816、自动气象站、GPRS
An automatic weather station base on ADμC816
YANG Lei DAN Yong-ping
Abstract:The new MCU ADμC816 was introduced in this paper, It contains the 16 bit ADC unite inside, The automatic weather station is developed base on ADμC816, It can measure six sensor signals, Air pressure, air temperature, direction of wind, wind velocity, humidity, and rainfall . Furthermore it has the function of storage, communication base on GPRS etc.
Keywords:ADμC816, automatic weather station GPRS
1 自动气象站的功能要求
随着社会和科技的发展,气象部门提出了气象要素采集自动化、网络化的要求,为此我们与河南省气象局联合研制了自动气象站。该气象站要求自动采集气压、气温、风向、风速、湿度、降雨6个要素,具有存储和通讯功能,具有实时时钟,各要素的测量要求:
1 气压 测量范围:500-1100 hPa,采集的分辨率:0.1hPa,准确度:±0.3hPa,采集速率:6次/分钟(一分钟共取6个样本值,取中间大小的4个值的等权算术平均值)。
2 气温 测量范围:-50 - +50℃,分辨率:±0.1℃,准确度:±0.2℃,采集速率:6次/分钟。
3 湿度 测量范围:0%-100%,分辨率:1%,准确度:(±4%,湿度≤80%;±8%,湿度>80%),采集速率:6次/分钟。
4 风向 测量范围:0-360º, 分辨率:3º,准确度:±10º,采集速率:60次/分钟。
5 风速 测量范围:0-60m/s,分辨率:0.1m/s,准确度:±(0.5+0.03V)m/s,采集速率:60次/分钟。
6 降雨 雨量范围:0-999mm,雨强范围:0-4.0mm/分, 分辨率:0.1mm,准确度:(降雨量每分钟≤10.0mm,
为±0.5mm,强降雨,即降雨量每分钟>10.0mm时为±5%,)[1]。
2 ADμC816功能简介
2.1 ADμC816简介 ADμC816是美国ADI公司出品的单片机,它是目前最强功能的单片机之一。该芯片的内核是加强型8051MCU,并增加了用户想要的WDT看门狗、I2C总线、模拟量处理、上电复位检测、欠压复位检测、FLASH存储器等功能,而且温度范围达到了工业级标准并有良好的电磁兼容特性[2]。ADμC816的模拟处理功能及存储器等丰富的资源使其在数据采集系统、智能化仪器仪表中得到广泛的应用。
2.2 ADμC816的ADC ADμC816有两路完全独立的Σ-△ADC通道,并有片内数字滤波,输出速率可调。主通道具有缓冲能力,并可以编程为8个输入范围,电压从正负20mV到2.56V,输入可以选择3个差分输入之一(AIN1-AIN2、AIN3-AIN4、AIN2-AIN3);辅助通道不具备缓冲能力,固定输入为0—2.5V,输入可以选择4个单端输入之一(AIN3、AIN4、AIN5或内部温度传感器信号)。同时ADμC816有1个12位电压输出DAC。
2.3 存储器 8KB片内FLASH/EEPROM程序存储器;640B片内FLASH/EEPROM数据存储器;256B片内数据RAM;16MB外部数据地址空间;64KB外部程序地址空间。
3 电路组成及工作原理
电路组成如图1所示:

3.1 最小系统
系统采用ADμC816单片机,片内有上电复位检测、欠压复位检测和WDT看门狗,构成了完备的复位电路,不需要外接电路。8KB片内FLASH/EEPROM程序存储器作为系统的程序存储器。利用P0口、P2口以及ALE、/RD、/WR信号扩展了1M字节的SRAM。利用ADμC816的SCL、SDA信号与实时时钟芯片SD2003相连,完成实时时钟功能。利用ADμC816的RXD、TXD、P1.0、P1.1信号,经电平转换芯片MAX232形成了RS232接口,该接口有RXD、TXD、CTS、RTS信号,可和GPRS模块或是PC机进行通信。
除了系统具备可充电铅酸蓄电池外,外部SRAM和时钟芯片SD2003还具有可充电锂电池做后备电源。
3.2 气压、风向预处理电路
气压传感器采用谐振筒式传感器,该传感器的输出为周期(频率)与气压相关的TTL电平的矩形波信号(下称气压原始信号)和一个与工作温度呈线性关系的0-5V的模拟电压信号。气压原始信号的处理需要8个I/O信号,风向传感器输出为7位格雷码。由于ADμC816的I/O口数量有限,增加了基于AT89C52的预处理电路。预处理电路如图2所示,上述15个信号分别接在AT89C52的P1、P2口和T0端,通过P3.6、P3.7与ADμC816连接,将预处理后的信号传送至ADμC816。


3.3 信号采集电路
气压测量:将气压原始信号接在预处理电路中,实现频率测量,将气压传感器输出的温度信号接在ADμC816的AIN5引脚,对该温度进行测量,实现温度补偿。
气温测量:气温传感器采用VISLA的PT100铂电阻,精密电流源将电阻变为电压信号,接在ADμC816的AIN1、AIN2引脚,实现对气温的测量。
湿度测量:采用VISLA的湿度传感器,该传感器输出为0-1V的电压信号,接在ADμC816的AIN1、AIN2引脚,实现对湿度的测量。由于AD转换为16位,完全满足湿度测量的要求。
雨量测量:采用翻斗式雨量传感器,其输出是一对节点,可以将降雨量转换为脉冲个数。该信号经整形后接在ADμC816的INT1端,准确实现对降雨的测量。
风速测量:风速信号为一个脉冲信号,其频率与风速成正比,将该信号接到定时计数器1的外部输入端T1,通过单位时间内(由定时计数器0完成准确定时)计数器的值,即可完成风速测量。定时计数器1工作于是16位计数方式,完全满足准确度的要求。
风向测量:将风向的7位格雷码接到预处理电路中,实现风向测量,测量误差为360/128=2.8125,满足性能要求。
4 高精度测量的实现
4.1 气压信号的准确测量
4.1.1 信号的非线性问题。气压传感器使用了太原某仪表公司提供的GDJ-5压电激励谐振筒式压力传感器。该传感器的输出为:周期(频率)与气压相关的TTL电平的矩形波信号(原始信号)和一个与环境温度呈线性关系的0-5V的模拟电压信号。在传感器出厂前,厂家对该传感器进行了标定,分别列出了-30℃、-20℃、-10℃、0℃、10℃、20℃、30℃、40℃、50℃情况下,不同气压下(450、500、550、600、650、700、750、800、850、900、950、1000、1070 hPa)对应的周期(单位是 )的数值。从数值上看,周期以及频率与气压呈非线性关系,且存在对温度的交叉灵敏度。如图3说明了温度为0℃时周期、频率与气压值的关系,图4说明了在750 hPa时,周期、频率与温度的关系。(图3左图中横坐标表示气压450-1070hPa,纵坐标是周期(单位是 )。右图中横坐标表示气压450-1070hPa,纵坐标是频率。图4左图中横坐标表示温度-30℃-50℃,纵坐标是周期。右图中横坐标表示温度-30℃-50℃,纵坐标是频率)。

如果不对其非线性关系做校正处理而认为是线性关系,则测量的气压值的误差将超过10hPa,超出了国家规定的测量误差范围。
4.1.2 气压信号采集 通过数据分析,欲使系统分辨率达0.1hPa,应按照周期及频率对气压的最低灵敏度处来确定周期及频率测量的分辨率。这就要求周期测量分辨率为0.0026362 ,频率测量的分辨率为0.068645Hz。系统对温度的分辨率,应根据周期C或(频率f)对温度的最高交叉灵敏度来决定,需要对温度电压的分辨率为43 mV。
对于信号周期(频率)的测量,经常用两种实现方法:(1)用直接测量信号的周期。单片机的机器周期 数量级,如果直接用单片机的定时计数器,不能满足0.0026362 分辨率的要求。(2)直接测量信号的频率。将信号作为单片机定时计数器的外部脉冲信号,在给定时间内对外部信号进行计数。若满足0.068645Hz分辨率的要求,定时时间要超过15秒。按照这种方法,不能达到国家气象局规定的气压采集速率:6次/分钟。
在系统的预处理电路中(如图2所示),对原始气压信号128分频后作为门控信号,在信号高电平时对12MHz信号进行计数,计数值为N,则高电平时计数值为64个原始气压信号的周期和:
64C=N/12
其中C为测量的原始信号的周期,C=N/768 =N×0.0013 ,这种间接的测量方法测量的分辨率为0.0013 ,气压原始信号脉宽为200 ,这样一次的测量时间为:128*200 ,约为26ms, 满足6次/分钟的要求。
对于温度测量,将温度信号进行分压,接到ADμC816的模拟输入端进行16位的AD转换,其电压的分辨率为5000 mV/65535=0.076 mV,满足43 mV的要求。
4. 1。3 气压的测量 用曲线拟合法,测量出气压:
= ( a0+ a1×T+ a2×T 2)+( b0+ b1×T+ b2×T 2) ×f +( c0+ c1×T+ c2×T 2) ×f2+( d0+ d1×T+ d2×T 2) ×f3+( e0+ e1×T+ e2×T 2) ×f4
其中各系数在PC计算机上通过回归解析式得到,得到的各系数通过串行接口下载至自动气象站。
通过标定数据,用曲线拟合法(拟合至f2项)时的结果如图5所示,从曲线上看,拟合误差在各温度各个气压下其误差均小于0.3hPa,满足了测量要求。在程序设计中,按4次项(到f4)来拟合,PC计算机计算参数时对于没有必要的高次项,令其系数为0。

4.2 气温信号的准确测量
在小范围、测量精度要求不高的场合,一般都将热电阻传感器看作线性传感器,在该自动站中,温度范围较大(-50℃到+50℃),要求测量精确,0.1℃,以0℃作为基点温度,r0=100欧,在温度t时的电阻表达式为:
Rt = R0 (1+ at + bt2 )
需要对该器件作非线性校正。用曲线拟合法[3],通过标定数据,PC计算机完成参数a,b的计算后,下载至自动气象站。通过软件计算可得出准确的温度值。
5 自动气象站的技术特点
该自动气象站有如下特点:
1.选择了高性能的ADμC816单片机,内部集成了各种功能部件,简化了系统电路的设计。16位的AD转换器完成了各种模拟信号的高精度采集。在进行参数标定时,PC计算机与自动站通讯,PC计算机将各种标定参数下载至自动气象站,存储在ADμC816内部E2PROM中,避免了电位器等器件的使用,调整方便、性能可靠。
2.自动站的可通过GPRS模块和气象中心实现远距离的无线传输。也可和PC机通过串口进行通信。
该自动站研制成功后,经过试运行表明气象信息采集准确,通信可靠。现正在气象部门推广使用。

文章版权归西部工控xbgk所有,未经许可不得转载。