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