吳傳全



摘要:文章探討了在氣象監測領域中虛擬儀器技術的應用,對需要監測的氣象數據的采集、處理、顯示、分析和保存等功能都可以使用虛擬儀器技術來實現。對溫度、濕度、氣壓及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與別的軟件相比,具有能夠融入硬件的特性的能力,使得它能夠更加有效地與硬件結合,從而實現硬件的功能,也提高了該系統的有效性和實用性。