0 引 言
自動氣象站由氣壓、溫度、濕度、風向風速、雨量、輻射等氣象傳感器及數據采集處理、管理系統等組成。自動氣象站存在長期穩定性問題,需要對氣象傳感器進行定期的校準來確保觀測數據準確。
氣象觀測數據不能中斷,所以不能像普通計量儀器一樣拆下后送檢到檢定室。較好的方法是直接在觀測現場利用標準器進行比對后校準。因此設計了一種手持式校準儀,采用無線傳感器網絡來讀取自動氣象站的觀測數據及標準器的示值,并進行校準。
1 系統設計與實現原理
本設計利用無線傳感器網絡、Windows CE操作系統,ARM 處理器開發了一種針對氣象要素傳感器校準的手持式校準儀。校準的時候,被測傳感器的數據利用ZigBee技術通過無線傳感器網絡發送到協調器,協調器將數據傳送給手持式校準儀。校準儀進行誤差的計算,如果存在的誤差大于對應要素預設的誤差,則會自動生成校準命令以及校準值發送給傳感器,直到消除誤差為止。整個系統工作原理如圖1所示[1]。
圖1 系統工作原理
2 系統硬件設計
該校準儀硬件功能框圖如圖2所示,硬件主要由基于CC2530的數據采集模塊和具有ARM9內核的硬件平臺模塊。
圖2 手持式校準儀硬件框圖
數據采集模塊主要由CC2530芯片、傳感器及外圍部件構成。在硬件平臺上進行操作系統的移植以及數據校準的功能[2]。
2.1 數據采集模塊設計
數據采集模塊利用了ZigBee無線傳感器網絡,主要由ZigBee網絡協調器節點和ZigBee傳感器終端節點構成,本系統采用的是TI公司的CC2530作為無線傳感器網絡節點[3].CC2530是用于2.4GHz IEEE 802.15.4、ZigBee和RF4CE應用的一個真正的片上系統解決方案,它能夠以非常低的總的材料成本建立強大的網絡節點。
CC2530具有極高的接收靈敏度和抗干擾性,只需要配合少數的外圍元器件就可以實現信號的收發功能[4]。
2.2 硬件平臺設計
本系統采用的32位ARM920T 的RISC處理器SamsungS3C2440A ,主頻400MHz.采用320×240分辨率的3.5英寸觸摸真彩液晶屏。SDRAM 采用的H57V2562GTR,具有32 MB 的存儲空間,NANDFLASH采用三星公司的K9F2G08ROA.網絡協調器節點采用CC2530,具有較低的成本,只需要配合少數的外圍元器件就可以工作。S3C2440 與CC2530,NAND FLASH,SDRAM 的連接簡圖如圖3所示。硬件系統構成簡潔,體積小,運算速度快,并可安裝WindowsCE,Linux等操作系統[5]。
圖3 系統連接簡圖
3 軟件設計
校準儀根據所需校準的氣象要素,進入相應的校準界面,并自動接收處理數據,如果檢測誤差大于預設誤差時,在確認校準密碼后,自動生成校準命令并無線發送給對應的氣象傳感器。
系統安裝了Windows CE 5.0操作系統。WindowsCE是微軟公司嵌入式、移動計算平臺的基礎,它是一個開放的、可升級的32位嵌入式操作系統,具有可靠性好、實時性高、內核體積小及可伸縮性、強大的通信能力等特點,被廣泛用于嵌入式智能設備的開發[6]。校準儀系統軟件部分主要由兩部分構成:一是串口通信,主要用于協調器與手持式校準儀之間進行實時數據傳輸,另一部分是用戶界面軟件設計及功能實現,兩者都使用嵌入式C#語言編寫,采用VS 2005的窗體界面進行可視化軟件開發。圖4為系統軟件流程圖。
3.1 嵌入式操作系統Windows CE.NET的移植
硬件系統完成后,需要將操作系統移植到硬件平臺并開發應用程序。Platform Builder是基于WindowsCE.NET操作系統構建定制嵌入式平臺而提供的集成開發環境(IDE),它提供了設計、創建、編譯、測試和調試功能,以及平臺開發向導和BSP開發向導、基礎配置、仿真器、Windows CE Test Kit等。具體移植的步驟如下:
圖4 系統流程圖
(1)對操作系統進行裁剪,配置各個組件及修改相關配置文件;(2)開發目標設備上的驅動程序,建立定制的CE操作系統映像文件;44 現代電子技術2012年第35卷(3)將目標文件下載到目標設備上調試;(4)定制操作系統內核后,導出平臺SDK,供在Visual Studio 2005中開發上層應用軟件[7]。
3.2 開發環境的搭建
針對Windows CE 5.0 操作系統,選用基于。NET 2.0框架的Visual Studio 2005環境來開發。本文通過訪問。NET Compact FrameWork類庫,進行圖形化窗口編程,在開發環境中選擇智能設備WindowsCE 5.0設備應用程序模板進行開發。
3.3 界面設計
在系統界面設計中,主要分為主界面,各氣象要素校準界面。主界面主要用于氣象要素的選擇,使用了Menuitem控件進行菜單的創建,另外還提供了編輯和工具等功能。在校準界面中,主要使用了SerialPort,ComboBox,TextBox和Button等幾個控件。Serial-Port控件是用來對串口的設置,進行收發數據;ComboBox控件用來對節點和校準點的選擇;TextBox控件用來存放數據;Button控件用來進行一些命令的操作[8]。
3.4 校準功能設計
進入各個氣象要素校準頁面,首先進行節點和校準點的選擇,接著設置好串口號和波特率,打開串口進行數據的自動接收。在串口應用程序中,發送區文本框為TxSend,接收區文本框名為Txrec,項目中添加一個SerialPort控件,名為Port,發送按鈕名為Send,下面是接收和發送的部分代碼[9]。
Port控件中DataReceived事件的處理函數為:
Void port_DataReceived (object send,SerialDataReceivedEventArgs){int bytesToRead=port.BytesToRead;byte[]arr=new byte[bytesToRead];port.Read(arr,0,bytesToRead);string str=Encoding,Default,GetString(arr,0,bytes-ToRead);txrec.Text+=str;}
發送按鈕單擊事件對應的處理函數為:
Void Send_Click(object send,EventArgs e){Byte[]arr=Encoding.Default.GetBytes(txSend.txt);Port.Write(arr,0,arr.Length);}
由協調器接收傳感器網絡中氣象傳感器節點發來的數據,并通過串口發送到ARM 處理器,其數據采用九字節的十六進制數的數據通信格式,如圖5所示。
第一字節是數據標識符;第二個字節表示氣象要素類型,01是氣壓,02是氣溫,03是濕度等;接下來連續四個字節是傳感器的數據,并緊跟兩位校驗位;最后一個字節是結束符。
圖5 協調器串口發送格式
當協調器發送一幀數據后,系統解析接收數據并轉化為浮點數顯示在接收傳感器數據區中。如標識符為“D”,則表示傳感器發來的數據,如為“S”,表示標準器發來的數據。將傳感器的數據與標準器的數據進行比對分析,如果誤差大于規定閾值,則將誤差數據通過校準命令發送給傳感器。溫度校準的運行界面如圖6所示,采用第二個串口的目的是確保在標準器沒有連接無線傳感器網絡接口時,直接利用串口實現數據通信。利用5次連續溫度檢測的平均值進行校準,以確保校準精度[10]。
圖6 溫度校準時的軟件實時運行界面
3.5 軟件的部署及移植
程序編寫完成之后在VS 2005開發環境中進行調試、目標設備、傳輸協議等相關的設置,再將VS 2005與硬件設備平臺進行連接握手,利用微軟提供的工具ActiveSync將程序部署到手持式校準儀中,并可在目標設備上實時運行。
為了將以上編譯的應用程序固化到設備中,以便每次開機時都能自動運行,采用以下步驟進行處理:
(1)把應用程序Regulation.exe復制到PlatformBuilder 5.0安裝目錄下的FILES目錄中。
(2)創建Regulation.lnk 快捷方式文件,放入FILES目錄中。
(3)打開Platform.bib文件,添加如下內容:
Regulation.exe$(_FLATRELEASEDIR)Regulation.exeNK U;Regulation.lnk $(_FLATRELEASEDIR)Regulation.lnkNK U這樣,執行SYSGEN的時候會把這兩個文件加入到內核中,最后它們會存在于系統的Windows目錄中。
(4)打開Platform.dat,加入以下內容:
Directory(“\windows\桌面”):-File(“校準儀。lnk”,“\windows\Regulation.lnk”)這將會在桌面上出現名稱為“校準儀”的快捷方式。
(5)最后執行菜單Builder→Sysgen生成NK.bin和NK.nb0,把它們燒寫或者下載到ARM 系統中啟動后,就會在桌面上看到“校準儀”快捷方式了。
4 結 語
通過系統的電路設計及軟件編程,完成了手持式校準儀的設計,該手持式校準儀能夠在無線傳感網絡自動氣象站現場方便地進行溫度、濕度、氣壓等氣象要素的實時校準,具有使用方便、成本低廉等特點。通過改進完善,系統可應用于實際的物聯網自動氣象站的校準中。
?
評論
查看更多