, ,
(廣東省氣象探測數(shù)據(jù)中心, 廣州 510080)
地面氣象觀測對象包括地面附近的空氣溫度、空氣濕度、氣壓、風(fēng)向、風(fēng)速、自然水面蒸發(fā)量、降水量、大氣能見度、日照時間、云高、云狀、雷電等等,其中溫度、濕度、風(fēng)向、風(fēng)速、氣壓和降水是常規(guī)觀測項目[1]。氣象環(huán)境數(shù)據(jù)是慢變量,而氣象觀測儀器是在野外工作,為了剔除錯誤和干擾數(shù)據(jù),平滑波動信號,一般情況下以每分鐘的平均值作為氣象瞬時值[2],分鐘數(shù)據(jù)實時傳輸?shù)街行臄?shù)據(jù)庫以供氣象預(yù)報、防災(zāi)減災(zāi)等應(yīng)用。
目前國內(nèi)氣象行業(yè)已經(jīng)有幾萬個氣象數(shù)據(jù)在線監(jiān)測站,但大部分監(jiān)測儀主機都是采用C51系列單片機作為中央處理芯片,工作頻率低,存儲能力有限,功能接口簡單,缺乏擴展性。工作頻率低造成采樣密度低,樣本數(shù)量有限,進而導(dǎo)致數(shù)據(jù)的可信度滿足不了要求。存儲能力有限,當(dāng)惡劣天氣導(dǎo)致野外觀測儀器實時傳輸失敗的時候,重要的氣象觀測數(shù)據(jù)不能盡可能多的保存下來,以待事后的災(zāi)害分析。有的采集器只能實現(xiàn)簡單要素的采集和數(shù)據(jù)傳輸,例如單雨量站;絕大部分的采集器不帶顯示功能,并且只能保存半個月的數(shù)據(jù)[3]。因此當(dāng)數(shù)據(jù)質(zhì)量和數(shù)據(jù)安全日益被重視的時候,采用C51單片機的氣象數(shù)據(jù)監(jiān)測設(shè)備已經(jīng)不能滿足現(xiàn)代氣象監(jiān)測發(fā)展的需要[4]。
監(jiān)測儀基于現(xiàn)代總線技術(shù)和嵌入式系統(tǒng)技術(shù)構(gòu)建,采用了國際標(biāo)準(zhǔn)并遵循標(biāo)準(zhǔn)、開放的技術(shù)路線進行設(shè)計,它由硬件和軟件兩大部分組成。硬件包括采集器、外部總線、傳感器和外圍設(shè)備四部分;軟件主要為嵌入式軟件采集處理。
監(jiān)測儀主機內(nèi)部結(jié)構(gòu)如圖1所示。
圖1 監(jiān)測儀內(nèi)部結(jié)構(gòu)
主采集器是監(jiān)測儀的核心,由硬件和嵌入式軟件組成。主采集器嵌入式處理器選取STM32F207為ARM9系列的32位處理器,具有強大的性能如下:以120 MHz高速運行時可達到150DMIPS的處理能力;自適應(yīng)實時閃存加速器使得STM32F2可以在片內(nèi)閃存,具有高達1 M字節(jié)的片上閃存和128 K字節(jié)的內(nèi)嵌SRAM;具有靈活的高速外部存儲器接口用于擴展片外存儲器和外設(shè);3個12位采樣率高達2M/秒的ADC模塊;翻轉(zhuǎn)速率高達60 MHz的GPIO;實時時鐘電路和USB/CAN總線/RJ45接口等等[5]。主采集器還為處理器配置了16位的A/D 轉(zhuǎn)換電路、大容量的程序和數(shù)據(jù)存儲器、監(jiān)測電路、觸摸顯示屏和信號接線板等。硬件系統(tǒng)能夠支持嵌入式實時操作系統(tǒng)的運行[6-7]。
主采集器直接掛接的傳感器包括:氣溫、地溫、濕度、氣壓、降水量、風(fēng)向、風(fēng)速、蒸發(fā)和能見度[8-9]。監(jiān)測儀的信號連接示意如圖2所示。各種傳感器信號線通過信號接線板與監(jiān)測儀相接,監(jiān)測儀進行數(shù)據(jù)采集與處理之后通過2路[10]RS232端口分別發(fā)送到觸摸顯示屏和遠距離通信模塊,實現(xiàn)遠程無線傳輸和設(shè)備監(jiān)控。
圖2 監(jiān)測儀連接示意圖
如圖2所示,自動氣象站使用的傳感器,根據(jù)輸出信號的特點,可分三類。第一類是模擬傳感器:輸出電壓或者電流模擬量信號的傳感器,包括氣溫、濕度、蒸發(fā)、草面溫度和地面溫度等;第二類是數(shù)字傳感器:輸出數(shù)字量(含脈沖和頻率)信號的傳感器,包括風(fēng)向、風(fēng)速、雨量等傳感器;第三類是智能傳感器:一種帶有嵌入式處理器的傳感器,具有基本的數(shù)據(jù)采集和處理功能,一般采用RS485/232協(xié)議,輸出串行數(shù)字信號,包括氣壓和能見度傳感器。
為了在增加單位時間內(nèi)的采樣頻率的同時不影響外部中斷響應(yīng)的實時性,設(shè)計了循環(huán)采樣設(shè)計,將各種要素采樣程序和時鐘中斷處理、外部中斷處理程序放在一個大循環(huán)里面。在詳細分析各氣象傳感器信號特征的基礎(chǔ)上設(shè)計了各要素采集的信號流程和關(guān)鍵器件配置,并按氣象觀測標(biāo)準(zhǔn)對傳感器信號進行采集。
由于氣象瞬時值和極值統(tǒng)計一般以分鐘為基本單位長度,設(shè)計每分鐘內(nèi)的數(shù)據(jù)采集循環(huán)如圖3所示。軟件每秒鐘查詢是否到達下一分鐘,如果沒有,則進行溫度各通道的數(shù)據(jù)采集,包括發(fā)送指令選擇被采集通道、延時、返回信號濾波、采樣前充電、模數(shù)轉(zhuǎn)換和讀取采樣值等序列程序。然后進行濕度各通道的數(shù)據(jù)采集,采集時序流程與溫度相同。如果出現(xiàn)時鐘中斷,運行中斷任務(wù),包括雨量信號探測和識別、風(fēng)向讀取、風(fēng)速讀取轉(zhuǎn)換等。如果出現(xiàn)外部觸發(fā)中斷(主要指串口中斷),則運行氣壓采樣處理、能見度采樣處理或者是通信交互程序。
圖3 循環(huán)采樣
圖中可見嵌入式程序的大循環(huán)中還包含下載任務(wù)和每秒任務(wù)。下載任務(wù)指采集器接收到下載多條數(shù)據(jù)命令之后在循環(huán)中逐一發(fā)送,避免連續(xù)發(fā)送多條數(shù)據(jù)的情況,因為串口發(fā)送中斷占用系統(tǒng)時間過長會影響其他任務(wù)的執(zhí)行。每秒任務(wù)指設(shè)備定時自檢和按照氣象觀測要求定時運行的采樣數(shù)據(jù)質(zhì)量控制、分鐘氣象瞬時值計算、數(shù)據(jù)儲存和分鐘數(shù)據(jù)顯示任務(wù)。
溫度傳感器采用鉑電阻,其阻值隨著溫度的變化產(chǎn)生線性變化,當(dāng)溫度為0 ℃時,鉑電阻為100 Ω。模數(shù)轉(zhuǎn)換采用16位芯片AD7792,參考電平5 V,能夠轉(zhuǎn)換0~5 V信號電壓。溫度采集的硬件原理圖如圖4所示,標(biāo)準(zhǔn)電阻為精度為萬分之一的100 Ω電阻,其電阻值不隨溫度的變化而變化。通過比較同一時刻標(biāo)準(zhǔn)電阻與鉑電阻上的壓降,可以計算出溫度的變化值。根據(jù)《新型自動氣象(氣候)站功能需求書》要求,溫度的每分鐘采樣次數(shù)必須大于30次,測量靈敏度為0.1 ℃,最大誤差不超過±0.2 ℃。
圖4 溫度監(jiān)測回路
為了提高測量精度,降低測量誤差,溫度鉑電阻采用了四線制[11],即工作回路與信號回路分開。由于信號回路中電流非常微弱,使得回路電纜的線上壓降基本為0。此外,由于監(jiān)測儀需要采集多個溫度信號,監(jiān)測回路中的標(biāo)準(zhǔn)電阻是各溫度通道的共用器件,當(dāng)某一鉑電阻傳感器未被處理器選擇采樣的時候,電子開關(guān)使該傳感器不經(jīng)過標(biāo)準(zhǔn)電阻直接使用5VDC工作,當(dāng)該鉑電阻被選擇進行采樣時,電子開關(guān)使傳感器與標(biāo)準(zhǔn)電阻串聯(lián),這樣無論是否被采樣,鉑電阻傳感器一直處于穩(wěn)定工作狀態(tài)。
濕度傳感器一般采用濕敏電容作為核心元件,濕敏電容以流通的空氣作為絕緣電介質(zhì),當(dāng)空氣中的相對濕度發(fā)生變化,電介質(zhì)的介電常數(shù)發(fā)生變化,電容值也隨之改變。傳感器與濕度的變化相對應(yīng)輸出0~1 V的連續(xù)電壓信號。蒸發(fā)傳感器采用超聲波測距組件為核心器件,測距組件探測到蒸發(fā)器皿水面高低的變化,并將0~100 mm的變化使用4~20 mA的連續(xù)電流信號來表示。對于蒸發(fā)傳感器的電流信號,采集器端增加了100 Ω的負載電阻,以便將電流信號轉(zhuǎn)換成電壓信號再進行數(shù)據(jù)采集。
圖5 濕度信號流程
圖5為濕度和蒸發(fā)的信號流程圖。工作回路供電為12VDC,信號回路連接至多路復(fù)用開關(guān)ADG1607BRUZ。當(dāng)中央處理器MCU運行程序輪詢采集濕度或者蒸發(fā)信號的時候,軟件指令接通多路復(fù)用開關(guān),將該信號輸入16位A/D轉(zhuǎn)換通道。經(jīng)過必要的穩(wěn)定時間(一般為10~40 ms)之后,A/D將該電信號轉(zhuǎn)換為數(shù)字信號,并通知處理器讀取。根據(jù)功能需求書要求,濕度采集精度為1%RH,當(dāng)濕度大于80%RH時,最大允許誤差為±5% RH,否則為±3% RH;蒸發(fā)采集精度為0.1 mm,最大允許誤差為±2%。兩者的采樣頻率要求大于30次/分。
格雷碼是一種特別的二進制編碼,其大小相鄰的兩個碼之間僅有一位二進制數(shù)不同;位數(shù)相同的兩個碼,最大值與最小值之間也僅有一位二進制數(shù)不同,這種特性很適合使用電路實現(xiàn)物理量到脈沖數(shù)字量的轉(zhuǎn)換。氣象觀測中風(fēng)向傳感器主要采用7位格雷碼脈沖信號,即使用7個信號共同表示一個風(fēng)向角度[12]。風(fēng)向標(biāo)隨著風(fēng)向的改變而朝向不同的方向,轉(zhuǎn)軸帶動格雷碼盤,在0~360°方向?qū)?yīng)輸出不同的7位格雷碼脈沖信號。例如風(fēng)的來向為北偏東3°時,7位格雷碼為0000001,即最低位輸出高電平,其他6位輸出低電平。
風(fēng)速傳感器則多采用光敏元件或者霍爾元件。使用光敏元件的傳感器其轉(zhuǎn)軸速度隨風(fēng)速變化,轉(zhuǎn)軸帶動的遮光板以不同的頻率遮擋光敏元件,使其導(dǎo)通頻率與風(fēng)速具有線性的關(guān)系,可通過導(dǎo)通脈沖的頻率計算風(fēng)速。使用霍爾元件的傳感器其轉(zhuǎn)軸帶動導(dǎo)線以不同的頻率切割傳感器中永久磁鐵產(chǎn)生的磁力線,產(chǎn)生與風(fēng)速具有線性關(guān)系的感生電勢,可通過感生電勢的脈沖頻率計算風(fēng)速。
雨量傳感器則利用干簧管吸合的動作產(chǎn)生與降雨量成線性關(guān)系的脈沖個數(shù)。因此這幾類傳感器都具有相似的原理以及相同的信號采集方法,如圖6。
圖6 脈沖信號流程
圖中過壓保護二極管采用SMCJ6.0CA,光電耦合采用P621,緩沖器為74LV14D。脈沖信號經(jīng)過壓保護之后從限流電阻到達光電耦合器,被耦合器隔離之后傳輸至緩沖器再與MCU的I/O端口連接。I/O端口配置為無上拉/下拉的懸浮輸入模式,響應(yīng)頻率為100 MHz,響應(yīng)上升沿觸發(fā)的外部中斷,中斷優(yōu)先級最高為0。
不同的傳感器信號使用不同的處理程序得到氣象要素測量值。代表風(fēng)向的7個電平信號被處理器逐一讀取之后,作為7位格雷碼,與存儲在處理器中的格雷碼-風(fēng)向表對比檢索,得到相對應(yīng)的風(fēng)向值。代表風(fēng)速的脈沖信號則被高速采集,計算每一秒的信號脈沖個數(shù),通過傳感器廠家提供的脈沖頻率與風(fēng)速的關(guān)系式計算所代表的風(fēng)速值。代表降雨量的脈沖信號則按分鐘計算脈沖個數(shù),通過脈沖頻率與降雨量的關(guān)系式計算所代表的降雨量。為了防止高頻干擾,處理器將檢查雨量脈沖高電平的持續(xù)時間,只有持續(xù)時間為50~150 ms才被認(rèn)為是正常的干簧管吸合產(chǎn)生的脈沖信號,否則認(rèn)為是異常信號。根據(jù)要求,風(fēng)向的采樣頻率為1次/秒,風(fēng)速的采樣頻率為4次/秒。
氣壓和能見度都是智能傳感器,自帶嵌入式處理器,能夠?qū)Νh(huán)境進行自主探測得到基本的采樣數(shù)據(jù),因此對這一類傳感器進行數(shù)據(jù)采集主要是解析智能傳感器的輸出報文,讀取所需要的采樣數(shù)據(jù)。如圖7所示,傳感器使用RS232標(biāo)準(zhǔn)協(xié)議,串口配置參數(shù)為9 600波特率,無校驗,8位數(shù)據(jù)位,1位停止位,即(9600,N,8,1)。按照采集要求的頻率輸出基本的采樣數(shù)據(jù),采集器串口通過中斷接收數(shù)據(jù),在接收完一次完整報文之后,通知處理器解析報文,并將其中的氣象值讀取出來作為該氣象要素的分鐘采樣值。按照要求,氣壓的采樣頻率為30次/分,能見度的采樣頻率為6次/分。
圖7 智能傳感器數(shù)據(jù)采集
高速運行的MCU能夠?qū)⒎昼姴蓸宇l率提高,樣本數(shù)的增加增強了監(jiān)測數(shù)據(jù)的代表性。此外,MCU還有更多的時間進行數(shù)據(jù)的質(zhì)量控制,提高了監(jiān)測數(shù)據(jù)的可靠性和可信性。檢測儀的數(shù)據(jù)質(zhì)控分為3個級別:首先檢查各個氣象傳感器采樣數(shù)據(jù)是否落在傳感器測量范圍之內(nèi),超出范圍的數(shù)據(jù)被剔除,不參與計算氣象瞬時值;其次,對相鄰兩個采樣值的變化幅度進行檢查,按照相關(guān)的閾值,剔除掉變化幅度超出允許范圍的采樣值;最后在計算氣象瞬時值之后,再根據(jù)相鄰幾分鐘氣象瞬時值的變化幅度,記錄當(dāng)前計算值的質(zhì)控碼,以表示本分鐘的氣象瞬時值是可信的、存疑的還是確定異常的。
MCU擴展控制讀寫4 G以上的外部存儲模塊。外部存儲模塊上除了自身壞塊管理數(shù)據(jù),需要保存的數(shù)據(jù)有:臺站參數(shù),包括時間日期、臺站號、通信波特率、傳感器種類、臺站經(jīng)緯度、主動發(fā)送數(shù)據(jù)間隔等等;分鐘內(nèi)的采樣數(shù)據(jù),包括各種傳感器信號每分鐘的多個采樣值,便于從中發(fā)現(xiàn)信號異常原因;分鐘測量數(shù)據(jù),即由采樣數(shù)據(jù)計算得到的每分鐘一份氣象瞬時值。其中絕大部分空間用于分鐘測量數(shù)據(jù)存儲,按每份數(shù)據(jù)4 kb計算,4 G容量大約能容納2年的分鐘數(shù)據(jù),考慮到壞塊、壞塊備份、臺站參數(shù)和采樣數(shù)據(jù)需要一部分空間,本設(shè)計能夠保證1年以上的數(shù)據(jù)存儲。
如圖8為屏幕顯示界面,每分鐘更新一次氣象瞬時值,在調(diào)試設(shè)備的時候,也可以實時顯示每一次采樣數(shù)值,讓現(xiàn)場操作人員能夠馬上發(fā)現(xiàn)被監(jiān)測數(shù)據(jù)的變化[13]。該顯示屏還兼?zhèn)溆|摸操作功能,可以在屏上直接進入選擇菜單或者參數(shù)設(shè)置,便于監(jiān)測儀保存不同的監(jiān)測站點參數(shù)。
圖8 屏幕顯示界面
各測量通道的測試結(jié)果如表1所示。
表1 通道測試結(jié)果
通道以MCU管腳區(qū)分,表中濕度與蒸發(fā)采集數(shù)據(jù)均從PE1輸入MCU。模擬信號采樣通道性能主要取決于A/D采集電路的穩(wěn)定性和抗干擾能力,16位A/D測量分辨率為5×1/65536 V,在給定已知穩(wěn)定信號的情況下,采樣擾動平均值為5×3/65536 V,相對于氣溫和濕度的要素分辨率和最大誤差要求,該采樣擾動是可以接受的?;诿}沖計數(shù)的I/O采樣中斷設(shè)置為100 MHz,按每秒8次的采樣頻率測試誤碼率為0.00003%,即平均連續(xù)運行4天出現(xiàn)一個誤碼,考慮到要素采集的要求最多為4次每秒,實際的誤碼率會大幅降低,轉(zhuǎn)換成要素之后的測試結(jié)果最大誤差也是符合要求。串口測試的頻率設(shè)置為每分鐘傳輸10次,連續(xù)運行7天出現(xiàn)一次誤碼,誤碼率為0.001%,在糾錯和質(zhì)控的程序后并沒有影響要素的采集和數(shù)據(jù)的傳輸,滿足采集的要求。
本設(shè)計在STM32最小系統(tǒng)的基礎(chǔ)上,充分利用MCU的計算能力、存儲能力、高速I/O、中斷管理和擴展串口的功能,增加16位A/D、大容量存儲卡和觸摸顯示屏實現(xiàn)了氣象要素在線監(jiān)測。由于對傳感器的原理和電氣性能了解得比較詳細,監(jiān)測儀并沒有發(fā)現(xiàn)信號連接方面的問題。各個通道的采樣性能以及氣象要素測量性能均能夠滿足氣象數(shù)據(jù)在線監(jiān)測的需要。由于測試條件有限,測試參數(shù)和測試數(shù)據(jù)點不夠全面,考慮將設(shè)備送到具有相關(guān)資質(zhì)的氣象檢定部門測試,進一步發(fā)現(xiàn)并改善本設(shè)計。本設(shè)計可以為基于STM32的其他小型環(huán)境探測設(shè)備的研制提供參考。