摘 要: 提出了一種采用無線方式遠(yuǎn)程采集大氣溫度、濕度、氣壓等數(shù)據(jù)的氣象數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)方案。通過在元器件選型及軟硬件設(shè)計(jì)上的精心考慮,以相對(duì)較低的成本實(shí)現(xiàn)了一個(gè)高精度、遠(yuǎn)傳輸距離、低功耗、寬工作溫度范圍的遠(yuǎn)程氣象數(shù)據(jù)采集系統(tǒng)。
關(guān)鍵詞: 氣象 數(shù)據(jù)采集 無線 單片機(jī)
傳統(tǒng)的氣象數(shù)據(jù)采集通常采用人工氣象站的方式,需要測(cè)量人員攜帶測(cè)量儀器實(shí)地進(jìn)行測(cè)量,自動(dòng)化程度低。隨著現(xiàn)代網(wǎng)絡(luò)技術(shù)的發(fā)展,出現(xiàn)了基于Internet的氣象數(shù)據(jù)采集系統(tǒng)。這種系統(tǒng)利用Internet實(shí)現(xiàn)氣象站和數(shù)據(jù)中心的通信,具有可靠性高、實(shí)時(shí)性好、傳輸距離遠(yuǎn)的優(yōu)點(diǎn);但它也存在一些明顯的不足,如網(wǎng)絡(luò)設(shè)備購置、運(yùn)行和維護(hù)的成本較高、嚴(yán)重依賴于Internet,在某些特殊場(chǎng)合如野外氣象探測(cè)或高空氣象探測(cè)中無法采用等。本文介紹的遠(yuǎn)程無線氣象數(shù)據(jù)采集系統(tǒng)有效地彌補(bǔ)了上述兩種方式的不足,利用無線模塊" title="無線模塊">無線模塊實(shí)現(xiàn)氣象站和數(shù)據(jù)中心的通信,具有高精度、高可靠性、遠(yuǎn)傳輸距離、低功耗、自動(dòng)化程度高、方便靈活的特點(diǎn),可以應(yīng)用于野外氣象探測(cè)和高空氣象探測(cè)等場(chǎng)合。
1 系統(tǒng)總體設(shè)計(jì)
如圖1所示,系統(tǒng)主要包括兩大部分:數(shù)據(jù)中心和氣象站。數(shù)據(jù)中心主要由PC機(jī)、無線模塊及上位機(jī)軟件構(gòu)成。氣象站主要由各種傳感器、A/D" title="A/D">A/D轉(zhuǎn)換器、無線模塊、單片機(jī)及下位機(jī)軟件等構(gòu)成。系統(tǒng)中通常包含一個(gè)數(shù)據(jù)中心和若干個(gè)氣象站,不同的氣象站被分配不同的地址用以互相區(qū)分,系統(tǒng)中氣象站的最大個(gè)數(shù)為256個(gè)。數(shù)據(jù)中心作為系統(tǒng)的中心節(jié)點(diǎn),可與各氣象站進(jìn)行全雙工通信,負(fù)責(zé)完成控制幀發(fā)送、數(shù)據(jù)接收、解碼、后處理及顯示、保存等。氣象站接收到數(shù)據(jù)中心發(fā)送的控制幀后,檢測(cè)控制幀中的8bit地址,若與本地地址一致,則啟動(dòng)溫度、濕度、壓強(qiáng)的測(cè)量,測(cè)量結(jié)束后將測(cè)量數(shù)據(jù)回送給數(shù)據(jù)中心。系統(tǒng)包含兩種幀:控制幀和數(shù)據(jù)幀??刂茙糜谙滦袀鬏?數(shù)據(jù)中心→氣象站),其作用是實(shí)現(xiàn)數(shù)據(jù)中心對(duì)氣象站的控制;數(shù)據(jù)幀用于上行傳輸(氣象站→數(shù)據(jù)中心),用于氣象站向數(shù)據(jù)中心回送數(shù)據(jù)。控制幀和數(shù)據(jù)幀的格式如圖2所示。
?
控制幀長度為24bits,包含8bits地址及16bits的固定后綴。數(shù)據(jù)幀長度為168bits,其中最高的8bits為本地地址,其后依次是溫度、濕度、氣壓以及用于將來擴(kuò)展的風(fēng)向、風(fēng)速、海拔、經(jīng)度、緯度等數(shù)據(jù),分別用16bits表示。由于無線信道誤碼率較高,因此采用了32bits的CRC校驗(yàn),以確保數(shù)據(jù)的正確性,校驗(yàn)和放在數(shù)據(jù)幀尾部。
2 硬件設(shè)計(jì)
2.1數(shù)據(jù)中心
數(shù)據(jù)中心的硬件部分包括PC機(jī)和無線模塊兩部分。無線模塊采用上海桑瑞電子生產(chǎn)的微功率無線模塊SRWF-108,它是一個(gè)全雙工無線模塊,工作在433MHz頻段,采用FSK調(diào)制方式,具有8個(gè)可用信道;具有1W的典型發(fā)射功率及-105dBm的接收靈敏度,在視距情況下,天線高度大于3米,有效通信距離大于3公里。具有兩個(gè)串口" title="串口">串口、三種接口方式,可支持RS232/485接口或CMOS/TTL電平的UART口,同時(shí)支持1200bps、2400bps、4800bps、9600bps、19200bps等多種通信速率。在本系統(tǒng)中,SRWF-108與PC機(jī)采用RS232接口進(jìn)行連接。
2.2 氣象站
氣象站中主要包含5V電源、溫度傳感器、濕度傳感器" title="濕度傳感器">濕度傳感器、氣壓傳感器、A/D轉(zhuǎn)換器、單片機(jī)、無線模塊等。各模塊之間的連接如圖3所示。
單片機(jī)采用Atmel公司的51系列Flash單片機(jī)AT89S52,它具有成本低、性能高的特點(diǎn)。其內(nèi)部集成了一個(gè)增強(qiáng)型8051內(nèi)核、256Byte的RAM、8KByte的Flash ROM、3個(gè)16bit定時(shí)器、1個(gè)全雙工UART口、2個(gè)外部中斷源、32個(gè)通用I/O口(部分為復(fù)用管腳),系統(tǒng)時(shí)鐘最高可達(dá)33MHz。
無線模塊仍采用SRWF-108。因?yàn)閱纹瑱C(jī)的UART口為CMOS電平,因此將其與SRWF-108的UART口相連即可。
溫度傳感器采用Microchip公司的TC72,其分辨率為10位(0.25℃/bit),溫度測(cè)量范圍為-55~+125℃。具有±0.5℃的典型精度,-40~+85℃范圍內(nèi)的最大誤差為±2℃;可工作在連續(xù)測(cè)量和單次測(cè)量兩種模式下,連續(xù)測(cè)量模式下的電流消耗僅為250μA,關(guān)斷模式下低于1μA。接口方式為SPI口,可直接與AT89S52接口。在設(shè)計(jì)中采用了單片機(jī)P2口的0、1、2、3腳構(gòu)成軟件SPI口,與TC72進(jìn)行接口,如圖4所示。
?
濕度傳感器采用Honeywell公司的HIH3610。它是帶溫度補(bǔ)償?shù)臐穸葌鞲衅鳎哂小?%的精度,輸出隨相對(duì)濕度線性增長的模擬電壓,電壓范圍大約為0.8~3.9V(不同溫度下、不同器件的輸出略有不同,應(yīng)參照與具體器件配套的參數(shù)表)。
氣壓傳感器采用了Freescale公司的MAX4115AP。它是一款帶片上信號(hào)調(diào)理及溫度補(bǔ)償功能的絕對(duì)壓強(qiáng)傳感器,氣壓測(cè)量范圍為15~115kPa,0~85℃內(nèi)最大測(cè)量誤差為±1.5%。輸出模擬電壓隨絕對(duì)壓強(qiáng)線性增長,典型范圍大約在0.204~4.794V之間。
HIH3610的驅(qū)動(dòng)能力較弱,因此必須在它和A/D轉(zhuǎn)換器之間增加一個(gè)緩沖級(jí)。另一方面,MPX4115AP輸出電壓范圍超出了A/D轉(zhuǎn)換器的量程,因此在它和A/D轉(zhuǎn)換器之間插入一個(gè)2/3比例運(yùn)放" title="運(yùn)放">運(yùn)放級(jí),將它的輸出變換到A/D轉(zhuǎn)換器的量程之內(nèi)。同時(shí),為了降低噪聲干擾,提高測(cè)量的準(zhǔn)確性,需要對(duì)濕度傳感器和氣壓傳感器的輸出進(jìn)行低通濾波。為了有效濾除噪聲,要求濾波器的截止頻率盡可能地低。但另一方面,濾波器通帶越窄,傳感器的響應(yīng)時(shí)間也越長。綜合噪聲濾除和響應(yīng)時(shí)間兩方面來考慮,選取了直流增益為1、截止頻率為50Hz的二階Butterworth低通濾波器對(duì)傳感器的輸出進(jìn)行濾波。具體如圖5所示。
LMV324ID為TI公司的四路運(yùn)放,它采用5V電源供電,具有滿擺幅輸出、低靜態(tài)功耗、低溫漂、低失調(diào)、共模抑制比高的特點(diǎn)。圖5中,R2、R3、C5、C7及運(yùn)放單元2構(gòu)成一路Butterworth低通濾波器,用于對(duì)濕度傳感器的輸出進(jìn)行濾波,同時(shí)也起到緩沖器的作用。R1、R4、C6、C8及運(yùn)放單元1構(gòu)成另一路Butterworth低通濾波器,用于對(duì)氣壓傳感器的輸出進(jìn)行濾波。該濾波器與由R5、R6、R7及運(yùn)放單元4構(gòu)成的2/3比例運(yùn)算器級(jí)聯(lián),完成濾波、緩沖、比例運(yùn)算,結(jié)果從運(yùn)放單元4的OUT腳輸出。為保證足夠精度,比例運(yùn)算器中的電阻R5、R6、R7采用絕對(duì)誤差為±0.5%、溫度系數(shù)為50ppm的精密電阻。
運(yùn)放輸出的濕度、氣壓模擬量分別占用了A/D轉(zhuǎn)換器MCP3004的通道3、4。MCP3004為Microchip公司的4通道10bit A/D轉(zhuǎn)換器,它集成了片上采樣/保持電路,最大采樣速率為200ksps(VDD=5V時(shí)),最大DNL和INL均為1LSB。MCP3004與單片機(jī)的接口圖如圖6所示。
由于氣象站采用電池供電,因此必須盡可能降低系統(tǒng)功耗。在不需要測(cè)量時(shí),溫度傳感器、氣壓傳感器、A/D轉(zhuǎn)換器、電壓參考、運(yùn)放及無線模塊的發(fā)射部分全部關(guān)斷,單片機(jī)工作在低功耗的空閑模式。其中,氣壓傳感器和運(yùn)放的關(guān)斷控制通過一個(gè)模擬開關(guān)實(shí)現(xiàn)(如圖3所示)。濕度傳感器的功耗較低(電流消耗僅200μA)且啟動(dòng)時(shí)間較長(15秒),為降低測(cè)量等待時(shí)間,對(duì)它不采用關(guān)斷控制。無線模塊在無數(shù)據(jù)發(fā)送時(shí)僅接收部分處于工作狀態(tài),發(fā)送部分自動(dòng)關(guān)斷,因此不需要專門對(duì)它進(jìn)行控制。
3 軟件設(shè)計(jì)
3.1單片機(jī)軟件設(shè)計(jì)
單片機(jī)負(fù)責(zé)完成控制幀接收、啟動(dòng)數(shù)據(jù)采集過程、對(duì)數(shù)據(jù)進(jìn)行編碼及發(fā)送等任務(wù)。單片機(jī)軟件流程圖如圖7所示。
在不需要進(jìn)行測(cè)量時(shí),系統(tǒng)處于低功耗模式,此時(shí)溫度傳感器、氣壓傳感器、A/D轉(zhuǎn)換器、電壓參考、運(yùn)放處于關(guān)斷狀態(tài),單片機(jī)處于低功耗模式,無線模塊的接收部分工作,發(fā)送部分關(guān)斷。當(dāng)無線模塊收到數(shù)據(jù)時(shí),通過串口將數(shù)據(jù)傳給單片機(jī)。單片機(jī)串口接收到數(shù)據(jù)后,產(chǎn)生串口接收中斷,激活單片機(jī),使單片機(jī)從低功耗模式進(jìn)入正常模式,執(zhí)行完串口中斷子程序后跳入主程序,對(duì)控制幀緩沖區(qū)的數(shù)據(jù)進(jìn)行檢測(cè)。當(dāng)檢測(cè)到包含本地地址的有效控制幀時(shí),將啟動(dòng)各模塊完成測(cè)量過程,測(cè)量完畢后進(jìn)行數(shù)據(jù)編碼、發(fā)送,然后系統(tǒng)重新進(jìn)入低功耗模式。若檢測(cè)不到包含本地地址的有效控制幀,則直接進(jìn)入低功耗模式。
由于各模塊在啟動(dòng)時(shí)需要一定的啟動(dòng)時(shí)間,并且本系統(tǒng)中A/D轉(zhuǎn)換器及溫度傳感器的時(shí)序均需要通過軟件實(shí)現(xiàn),因此提供一個(gè)準(zhǔn)確的時(shí)間節(jié)拍是必要的。這里采用單片機(jī)的定時(shí)器0產(chǎn)生一個(gè)間隔為1ms的時(shí)鐘節(jié)拍。定時(shí)器0為16bit定時(shí)器,運(yùn)行在自由計(jì)數(shù)模式下,其初值被預(yù)置為0xFC18,每個(gè)機(jī)器周期(在本系統(tǒng)中為1μs)計(jì)數(shù)加1;當(dāng)計(jì)滿溢出時(shí),將產(chǎn)生一個(gè)定時(shí)器0溢出中斷,系統(tǒng)跳轉(zhuǎn)至定時(shí)器0中斷子程序,定時(shí)器0被重置為0xFC18,進(jìn)入下一計(jì)數(shù)循環(huán),同時(shí)時(shí)間變量加1。通過這種方式,能夠提供一個(gè)分辨率為1ms、最大時(shí)間間隔為65535ms(時(shí)間變量為16bit整型時(shí))的準(zhǔn)確定時(shí)。通過查詢時(shí)間變量前后兩次的值,即可獲得準(zhǔn)確的時(shí)間間隔。
3.2 上位機(jī)軟件設(shè)計(jì)
數(shù)據(jù)中心硬件較為簡單,主要包含PC機(jī)和無線模塊兩部分,它們之間通過RS-232口進(jìn)行通信??刂茙陌l(fā)送以及數(shù)據(jù)的接收、解碼、后處理、顯示等通過上位機(jī)軟件實(shí)現(xiàn)。上位機(jī)軟件具有一個(gè)可視化的操作界面,如圖8所示。
界面主要包括定時(shí)發(fā)送控制區(qū)、發(fā)送指示區(qū)、接收數(shù)據(jù)區(qū)、串口設(shè)置區(qū)等幾大部分。各區(qū)域的功能分別為:(1)串口設(shè)置區(qū):用于串口參數(shù)設(shè)置,包括端口、波特率、數(shù)據(jù)位、停止位、校驗(yàn)位、流控制等。(2)定時(shí)發(fā)送控制區(qū):用于對(duì)測(cè)量進(jìn)行定時(shí)控制,可以指定在未來某一時(shí)刻進(jìn)行單次測(cè)量,也可選擇具有固定時(shí)延間隔的周期性測(cè)量。(3)發(fā)送指示區(qū):主要提供一些發(fā)送指示信息。(4)接收數(shù)據(jù)區(qū):用于顯示接收到的氣象數(shù)據(jù),包括氣象站地址、溫度、濕度、氣壓等。
接收到的氣象數(shù)據(jù)在接收數(shù)據(jù)區(qū)中顯示的同時(shí),也被存入一個(gè).txt文件和一個(gè)ODBC數(shù)據(jù)庫中??梢源蜷_指定路徑下的.txt文件對(duì)數(shù)據(jù)進(jìn)行編輯,另外也可點(diǎn)擊界面右下角的“管理氣象數(shù)據(jù)”按鈕對(duì)ODBC數(shù)據(jù)庫進(jìn)行編輯。
上位機(jī)軟件的流程圖相對(duì)較復(fù)雜,限于篇幅,不再詳述。
實(shí)驗(yàn)表明,該系統(tǒng)完全實(shí)現(xiàn)了預(yù)期的功能,具有高精度、高可靠性、低功耗、遠(yuǎn)傳輸距離、工作溫度范圍寬的特點(diǎn)。氣象站在空閑狀態(tài)下的電流消耗為25mA左右,測(cè)量狀態(tài)下最大電流消耗為850mA。采用4節(jié)5號(hào)干電池供電,每隔30分鐘測(cè)量一次,可連續(xù)工作72小時(shí)以上。在市區(qū)道路環(huán)境中, 系統(tǒng)在有輕微遮擋(樹木、汽車等)的情況下,氣象站與數(shù)據(jù)中心相距1.5公里時(shí),可靠測(cè)量的概率接近100%。在野外開闊地,視距情況下的有效距離在3公里以上。
參考文獻(xiàn)
1孫育才.ATMEL新型AT89S52系列單片機(jī)及其應(yīng)用.北京:清華大學(xué)出版社, 2005
2馬忠梅.單片機(jī)的C語言應(yīng)用程序設(shè)計(jì).北京:北京航空航天大學(xué)出版社,2003
3譚思亮,鄒超群.Visual C++串口通信工程開發(fā)實(shí)例導(dǎo)航.北京:人民郵電出版社,2003
4于英民,于 佳. 計(jì)算機(jī)接口技術(shù).北京:電子工業(yè)出版社,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