基于LabVIEW的自动气象站设计

2016-05-16 20:18吴传全
无线互联科技 2016年5期
关键词:无线传输气象传感器

吴传全

摘要:文章探讨了在气象监测领域中虚拟仪器技术的应用,对需要监测的气象数据的采集、处理、显示、分析和保存等功能都可以使用虚拟仪器技术来实现。对温度、湿度、气压及PM2.5各类气象要素进行实时的监测采集,并能根据时间节点来查询历史气象数据。本系统具有开发周期短、性价比高等优点,将虚拟仪器技术和气象学科相融合,可以节约很多资源。

关键词:LabVIEW;气象;无线传输;传感器

初期的气象仪其实就是完全以各类电子元件为基础设计开发而成的一种专业检测气象数据的仪器。其主要的特征是用户所需求的结构功能,只能在仪器设备早期设计的时候来构建,只要仪器设备一旦制作完成,在使用过程中发现设备的缺点,再想对其进行修改和扩展,就会非常困难,几乎无法实现。基于上述原因,早期的气象仪不仅在设计、制作时就需要耗费非常多的人力、物力和很长的开发周期,也不便于其自身的升级更新,更不用说促进、推广了。

作为将自动化概念引入到气象行业的重要表现,自动化气象站主要运用了电子科学技术和计算机技术为技术支持设计而成的。现场24小时不间断监测空气相对水分含量、温度、气压、土壤水分含量等气象要素,并能够将监测到的相关气象数据自动存储到相应的位置。

1.硬件电路设计

本系统设计主要采用了软硬件相结合的方式完成,硬件部分主要由各类气象数据传感器、STC89C58RD+单片机等组成,本系统的硬件系统框图如图1所示。

本设计所使用的前端硬件数据采集模块的前端控制芯片为STC89C58RD+单片机,首先由它来控制传感器的数据采集工作,并且对采集来的数据进行处理,再将处理过的数据通过无线传输模块发送出去。再由上位机接收到通过无线传输模块实现通信的经过初步处理的数据,最后由上位机软件对采集来的数据进行处理、分析、储存及显示。在设计中,主要介绍的是前端硬件模块中各个部分的选用、性能参数、接口电路的设计等以及无线传输模块的选择、接口电路的设计、参数的设定和工作模式的介绍等。

2.硬件电路软件设计

系统主程序如图2所示,开始时先进行单片机系统的初始化工作,主要包括设定定时器、中断、串口相关的特殊功能寄存器,程序ROM区和数据RAM区的初始化,设定各I/O口的初始状态等主程序运行之前的准备工作,电源检查和保护,利用看门狗监视芯片上电后STC89C58RD芯片内各个资源的硬件运行情况,定时器的设定,所有变量初始化,开中断等。然后依次对温湿度、气压、PM2.5、风速风向和雨量传感器上传的检测数据进行接收和处理成发送给上位机的数据传输形式,通过无线传输模块进行发送。其流程如图2所示。

3.串口通信设计

本系统中,数据传输时是以独立字节的方式传输的,每个字节前有1个起始信号,字节后有1个终止信号,起始位到终止为构成一帧数据。一般,起始位占用1位,字符编码占7位,第8位为奇偶校验位,停止位可占用1位、1.5位或2位。因此,一帧数据便由10,10.5或者11位构成。

3.1串口寄存器配置

SCON寄存器——串口控制寄存器。这个寄存器的位置含义如图3所示。

图中SMO和SMl的定义如表l所示。

其中,fosc为单片机的时钟频率;波特率指串行口每秒发送(或接收)的位数。

电源寄存器PCON如表2所示。

SMOD:波特率加倍位。

GFI/GFO:通用标志位。

PD:掉电方式位。

IDL:待机方式。

在了解了串行口相关的寄存器之后,可得出其通信波特率的一些结论:

(1)方式0和方式2的波特率是固定的。在方式0中,波特率为时钟频率的1/12,即fosc/12,固定不变。在方式2中,波特率取决于PCON中的sMOD值,即波特率为:fosc=2SMOD*fosc/64。当SMOD=0时,波特率为fosc/64;当SMOD=1时,波特率为fosc/32。

(2)方式1和方式3的波特率可变,由定时器1的溢出率决定。

波特率=2SMOD*(T1溢出率)/32

当定时器T1用作波特率发生器时,通常选用定时初值自动重装的工作方式2。其计数结构为8位,假定计数初值为Count,单片机的机器周期为T,则定时时间为(256 Count)×T。从而在ls内发生溢出的次数(即溢出率):溢出率=1/(256-Count)×T。从而波特率的计算公式则为:波特率=(2SMOD/32)×[fosc/12(256-x)]。在实际应用时,通常是先确定波特率,后根据波特率求T1定时初值,如:T1初值=256-2SMOD/32×[fosc/(12X波特率)]。

4.LabVlEW软件系统设计与实现

4.1LabVIEW简介

LabVIEw是美国国家仪器公司(NI)研发的一门图形化编程语言(G语言)。和c,BASIC等编程语言一样,拥有一个扩展性强的、完备的、功能强大的、模块化的函数库以及各种面板控件。更因其图形化编程的简便模式,使得用户能够便捷地设计自己在现实应用中所需要的仪器系统。

由于采用了图形化编程语言——G语言,在这个生活和工作节奏越来越快的时代,LabVIEW产生的程序具有易学易用的特点,给工作节奏很快、需要简便的编程语言来适合自己的节奏的人员如硬件工程师、科学家、高级技术人员带来了很大的便利,由于其框图的编程方法,使用者可以在较短的时间内学会并使用到现实中去。

4.2本文中自动化气象站系统采用的设计模式及系统框架

自动化气象站系统软件设计模式如图4所示,主要使用在LabVIEW指的是项目“连续测量和记录“基于模板的实例,因为LabVIEw具有很强的扩展性,所以在“连续测量和记录”模板的基础上,可以升级与扩展出所需要的自定义应用程序。而“连续测量和记录”中却是以“队列消息处理器”的设计模式扩展开发出来的。而在“队列消息处理器”中则主要以数据的采集和储存同时监控用户界面事件的模板。在此模板中,“事件处理循环”就是按照用户界面的动作产生各种消息。然后将这些消息放入到“消息处理循环”当中对生成的消息进行处理。换句话说,一个“队列消息处理器”设计模式是一种复杂的生产者/消费者模式,在这里面“事件处理循环”其实就是生产给“消息处理循环”处理的消息的“生产者”。而“消息处理循环”则是处理相应数据的处理者。

上述是“队列消息处理器”设计模式的简介,而“连续测量和记录”则是在这个基础之上又添加了数据采集线程、数据处理线程和数据实时显示面板等模板。从本质上讲,这里的设计模式其实就是一个复杂化的基本生产者和消费者模式。由上面的“消息处理循环”生产数据采集线程等需要处理的命令或者数据,然后由消费者进行处理,比如数据的存储、分析和显示等。

而且在本模板下,数据的采集并不是一直都在进行的,它的动作是被用户控制界面中的控件所控制的,这样就节省了计算机的内存使用量和微处理器的利用率。除此之外,这样的模式层层递进,条理清晰,便于后期的扩展与维护。本系统框架如图4所示。

5.结语

本文所设计的自动化气象站是基于LabVIEW编程语言的气象要素检测体系。为了能够保证各传感器正常、稳定地工作,该系统使用单片机STC89C58RD+作为前端硬件系统的控制中心。为了数据读取更加方便,易于操作,各传感器均采用的数字式传感器。后端用户人机界面采用的则是虚拟仪器软件开发系统——LabVIEW进行设计,效率高,编程界面直观,总体来说,本设计有以3个特点:(1)灵活性。因为LabVIEw具有很强的灵活性和可扩展性,所以设计系统后台的用户界面是LabVIEw系统。该系统可以根据用户的具体要求随意地添加、更改仪器的功能和作用,这点是传统的仪器所无法比拟的。而传统仪器一经生产完成就无法更改其功能。与之相比,本文中使用的界面则更加有优势。(2)功耗低。任何一个系统在设计上都要考虑功耗的问题,本系统前端的传感器和控制元件在选用时均采用低功耗元件,各种元件的供电电压均采用5V供电,在保证正常工作的状态下尽量将系统功耗控制在较低的范围内。(3)实用性。LabVIEw与别的软件相比,具有能够融入硬件的特性的能力,使得它能够更加有效地与硬件结合,从而实现硬件的功能,也提高了该系统的有效性和实用性。

猜你喜欢
无线传输气象传感器
气象树
康奈尔大学制造出可拉伸传感器
《内蒙古气象》征稿简则
简述传感器在物联网中的应用
“传感器新闻”会带来什么
跟踪导练(三)2
大国气象
美丽的气象奇观
基于无线传输的LED灯远程控制系统设计
公路路面现场检测数据无线传输系统的设计