《电子技术应用》
您所在的位置:首页 > 其他 > 业界动态 > 无线远程气象数据采集系统设计

无线远程气象数据采集系统设计

2008-05-29
作者:吴华维, 赵明生, 罗康生,

  摘 要: 提出了一种采用无线方式远程采集大气温度、湿度、气压等数据的气象数据采集系统的设计方案。通过在元器件选型及软硬件设计上的精心考虑,以相对较低的成本实现了一个高精度、远传输距离、低功耗、宽工作温度范围的远程气象数据采集系统。
  关键词: 气象 数据采集 无线 单片机


  传统的气象数据采集通常采用人工气象站的方式,需要测量人员携带测量仪器实地进行测量,自动化程度低。随着现代网络技术的发展,出现了基于Internet的气象数据采集系统。这种系统利用Internet实现气象站和数据中心的通信,具有可靠性高、实时性好、传输距离远的优点;但它也存在一些明显的不足,如网络设备购置、运行和维护的成本较高、严重依赖于Internet,在某些特殊场合如野外气象探测或高空气象探测中无法采用等。本文介绍的远程无线气象数据采集系统有效地弥补了上述两种方式的不足,利用无线模块" title="无线模块">无线模块实现气象站和数据中心的通信,具有高精度、高可靠性、远传输距离、低功耗、自动化程度高、方便灵活的特点,可以应用于野外气象探测和高空气象探测等场合。
1 系统总体设计
  如图1所示,系统主要包括两大部分:数据中心和气象站。数据中心主要由PC机、无线模块及上位机软件构成。气象站主要由各种传感器A/D" title="A/D">A/D转换器、无线模块、单片机及下位机软件等构成。系统中通常包含一个数据中心和若干个气象站,不同的气象站被分配不同的地址用以互相区分,系统中气象站的最大个数为256个。数据中心作为系统的中心节点,可与各气象站进行全双工通信,负责完成控制帧发送、数据接收、解码、后处理及显示、保存等。气象站接收到数据中心发送的控制帧后,检测控制帧中的8bit地址,若与本地地址一致,则启动温度、湿度、压强的测量,测量结束后将测量数据回送给数据中心。系统包含两种帧:控制帧和数据帧。控制帧用于下行传输(数据中心→气象站),其作用是实现数据中心对气象站的控制;数据帧用于上行传输(气象站→数据中心),用于气象站向数据中心回送数据。控制帧和数据帧的格式如图2所示。

 


  控制帧长度为24bits,包含8bits地址及16bits的固定后缀。数据帧长度为168bits,其中最高的8bits为本地地址,其后依次是温度、湿度、气压以及用于将来扩展的风向、风速、海拔、经度、纬度等数据,分别用16bits表示。由于无线信道误码率较高,因此采用了32bits的CRC校验,以确保数据的正确性,校验和放在数据帧尾部。
2 硬件设计
2.1数据中心

  数据中心的硬件部分包括PC机和无线模块两部分。无线模块采用上海桑瑞电子生产的微功率无线模块SRWF-108,它是一个全双工无线模块,工作在433MHz频段,采用FSK调制方式,具有8个可用信道;具有1W的典型发射功率及-105dBm的接收灵敏度,在视距情况下,天线高度大于3米,有效通信距离大于3公里。具有两个串口" title="串口">串口、三种接口方式,可支持RS232/485接口或CMOS/TTL电平的UART口,同时支持1200bps、2400bps、4800bps、9600bps、19200bps等多种通信速率。在本系统中,SRWF-108与PC机采用RS232接口进行连接。
2.2 气象站
  气象站中主要包含5V电源、温度传感器、湿度传感器" title="湿度传感器">湿度传感器、气压传感器、A/D转换器、单片机、无线模块等。各模块之间的连接如图3所示。


  单片机采用Atmel公司的51系列Flash单片机AT89S52,它具有成本低、性能高的特点。其内部集成了一个增强型8051内核、256Byte的RAM、8KByte的Flash ROM、3个16bit定时器、1个全双工UART口、2个外部中断源、32个通用I/O口(部分为复用管脚),系统时钟最高可达33MHz。
  无线模块仍采用SRWF-108。因为单片机的UART口为CMOS电平,因此将其与SRWF-108的UART口相连即可。
  温度传感器采用Microchip公司的TC72,其分辨率为10位(0.25℃/bit),温度测量范围为-55~+125℃。具有±0.5℃的典型精度,-40~+85℃范围内的最大误差为±2℃;可工作在连续测量和单次测量两种模式下,连续测量模式下的电流消耗仅为250μA,关断模式下低于1μA。接口方式为SPI口,可直接与AT89S52接口。在设计中采用了单片机P2口的0、1、2、3脚构成软件SPI口,与TC72进行接口,如图4所示。

 


  湿度传感器采用Honeywell公司的HIH3610。它是带温度补偿的湿度传感器,具有±2%的精度,输出随相对湿度线性增长的模拟电压,电压范围大约为0.8~3.9V(不同温度下、不同器件的输出略有不同,应参照与具体器件配套的参数表)。
  气压传感器采用了Freescale公司的MAX4115AP。它是一款带片上信号调理及温度补偿功能的绝对压强传感器,气压测量范围为15~115kPa,0~85℃内最大测量误差为±1.5%。输出模拟电压随绝对压强线性增长,典型范围大约在0.204~4.794V之间。
  HIH3610的驱动能力较弱,因此必须在它和A/D转换器之间增加一个缓冲级。另一方面,MPX4115AP输出电压范围超出了A/D转换器的量程,因此在它和A/D转换器之间插入一个2/3比例运放" title="运放">运放级,将它的输出变换到A/D转换器的量程之内。同时,为了降低噪声干扰,提高测量的准确性,需要对湿度传感器和气压传感器的输出进行低通滤波。为了有效滤除噪声,要求滤波器的截止频率尽可能地低。但另一方面,滤波器通带越窄,传感器的响应时间也越长。综合噪声滤除和响应时间两方面来考虑,选取了直流增益为1、截止频率为50Hz的二阶Butterworth低通滤波器对传感器的输出进行滤波。具体如图5所示。
  LMV324ID为TI公司的四路运放,它采用5V电源供电,具有满摆幅输出、低静态功耗、低温漂、低失调、共模抑制比高的特点。图5中,R2、R3、C5、C7及运放单元2构成一路Butterworth低通滤波器,用于对湿度传感器的输出进行滤波,同时也起到缓冲器的作用。R1、R4、C6、C8及运放单元1构成另一路Butterworth低通滤波器,用于对气压传感器的输出进行滤波。该滤波器与由R5、R6、R7及运放单元4构成的2/3比例运算器级联,完成滤波、缓冲、比例运算,结果从运放单元4的OUT脚输出。为保证足够精度,比例运算器中的电阻R5、R6、R7采用绝对误差为±0.5%、温度系数为50ppm的精密电阻。
  运放输出的湿度、气压模拟量分别占用了A/D转换器MCP3004的通道3、4。MCP3004为Microchip公司的4通道10bit A/D转换器,它集成了片上采样/保持电路,最大采样速率为200ksps(VDD=5V时),最大DNL和INL均为1LSB。MCP3004与单片机的接口图如图6所示。


  由于气象站采用电池供电,因此必须尽可能降低系统功耗。在不需要测量时,温度传感器、气压传感器、A/D转换器、电压参考、运放及无线模块的发射部分全部关断,单片机工作在低功耗的空闲模式。其中,气压传感器和运放的关断控制通过一个模拟开关实现(如图3所示)。湿度传感器的功耗较低(电流消耗仅200μA)且启动时间较长(15秒),为降低测量等待时间,对它不采用关断控制。无线模块在无数据发送时仅接收部分处于工作状态,发送部分自动关断,因此不需要专门对它进行控制。
3 软件设计
3.1单片机软件设计

  单片机负责完成控制帧接收、启动数据采集过程、对数据进行编码及发送等任务。单片机软件流程图如图7所示。


  在不需要进行测量时,系统处于低功耗模式,此时温度传感器、气压传感器、A/D转换器、电压参考、运放处于关断状态,单片机处于低功耗模式,无线模块的接收部分工作,发送部分关断。当无线模块收到数据时,通过串口将数据传给单片机。单片机串口接收到数据后,产生串口接收中断,激活单片机,使单片机从低功耗模式进入正常模式,执行完串口中断子程序后跳入主程序,对控制帧缓冲区的数据进行检测。当检测到包含本地地址的有效控制帧时,将启动各模块完成测量过程,测量完毕后进行数据编码、发送,然后系统重新进入低功耗模式。若检测不到包含本地地址的有效控制帧,则直接进入低功耗模式。
  由于各模块在启动时需要一定的启动时间,并且本系统中A/D转换器及温度传感器的时序均需要通过软件实现,因此提供一个准确的时间节拍是必要的。这里采用单片机的定时器0产生一个间隔为1ms的时钟节拍。定时器0为16bit定时器,运行在自由计数模式下,其初值被预置为0xFC18,每个机器周期(在本系统中为1μs)计数加1;当计满溢出时,将产生一个定时器0溢出中断,系统跳转至定时器0中断子程序,定时器0被重置为0xFC18,进入下一计数循环,同时时间变量加1。通过这种方式,能够提供一个分辨率为1ms、最大时间间隔为65535ms(时间变量为16bit整型时)的准确定时。通过查询时间变量前后两次的值,即可获得准确的时间间隔。
3.2 上位机软件设计
  数据中心硬件较为简单,主要包含PC机和无线模块两部分,它们之间通过RS-232口进行通信。控制帧的发送以及数据的接收、解码、后处理、显示等通过上位机软件实现。上位机软件具有一个可视化的操作界面,如图8所示。


  界面主要包括定时发送控制区、发送指示区、接收数据区、串口设置区等几大部分。各区域的功能分别为:(1)串口设置区:用于串口参数设置,包括端口、波特率、数据位、停止位、校验位、流控制等。(2)定时发送控制区:用于对测量进行定时控制,可以指定在未来某一时刻进行单次测量,也可选择具有固定时延间隔的周期性测量。(3)发送指示区:主要提供一些发送指示信息。(4)接收数据区:用于显示接收到的气象数据,包括气象站地址、温度、湿度、气压等。
  接收到的气象数据在接收数据区中显示的同时,也被存入一个.txt文件和一个ODBC数据库中。可以打开指定路径下的.txt文件对数据进行编辑,另外也可点击界面右下角的“管理气象数据”按钮对ODBC数据库进行编辑。
  上位机软件的流程图相对较复杂,限于篇幅,不再详述。
  实验表明,该系统完全实现了预期的功能,具有高精度、高可靠性、低功耗、远传输距离、工作温度范围宽的特点。气象站在空闲状态下的电流消耗为25mA左右,测量状态下最大电流消耗为850mA。采用4节5号干电池供电,每隔30分钟测量一次,可连续工作72小时以上。在市区道路环境中, 系统在有轻微遮挡(树木、汽车等)的情况下,气象站与数据中心相距1.5公里时,可靠测量的概率接近100%。在野外开阔地,视距情况下的有效距离在3公里以上。
参考文献
1孙育才.ATMEL新型AT89S52系列单片机及其应用.北京:清华大学出版社, 2005
2马忠梅.单片机的C语言应用程序设计.北京:北京航空航天大学出版社,2003
3谭思亮,邹超群.Visual C++串口通信工程开发实例导航.北京:人民邮电出版社,2003
4于英民,于 佳. 计算机接口技术.北京:电子工业出版社,2003
5 Anti-aliasing, analog filters for data acquisition systems. Mi-crochip Technology Inc,1999
6 Driving the analog inputs of a SAR AD converter. Microchip Technolo0gy Inc,1999

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。