馬賽飛 劉 鈞
1(河南省氣象探測數據中心 河南 鄭州 450003)2(中國華云氣象科技集團公司 北京 100000)
地面氣象觀測是大氣探測的重要組成部分,為天氣預報、科學研究和氣象服務提供了重要的依據。隨著電子技術、計算機技術和網絡技術的發展,常規地面觀測要素已經實現了由人工觀測向自動觀測的轉變,推動了我國自動氣象站的應用[1]。但還存在較多問題,主要體現在需要人工干預處理,數據處理效率低下,缺乏有效的信息數據融合處理能力,制約了氣象觀測的進一步發展[2]。而電子技術向低功耗、智能化方向的發展,網絡將滲透到人民生活和經濟社會的每一個地方,這就為大氣探測技術的飛躍提供了新的機遇。將成熟的智能傳感器技術、智能終端設備技術和無線通信技術引入到我國地面自動化觀測業務中,形成具有我國自主知識產權的智能地面自動觀測系統,這對提高氣象儀器國產化程度,支撐國家氣象探測業務發展的需要,具有重要的科學意義和應用前景。目前,國內尚無一套能夠實現多要素智能化的自動氣象站,多要素智能氣象站的研制將成為氣象領域一道新的亮點。與以往的氣象站采集器軟件相比[3],本文設計的嵌入式軟件可以實現傳感器的自動識別、自動接入、故障自動檢查和自動存儲等功能,可良好地應用于智能氣象站中,提高了設備管理和數據處理的效率,滿足通信穩定的要求和多要素數據的采集。
數據采集器是氣象站觀測系統的核心控制單元[4],系統的控制流程、數據處理等全部通過數據采集器負責完成,由硬件和嵌入式軟件組成。氣象站系統工作在大氣觀測場內部,對無線通信傳輸距離要求不高,而星型網絡結構最簡單,成本低且最易實現[5],所以無線通信方式的結構采用星狀的ZigBee無線網絡拓撲結構。智能傳感器通過ZigBee無線通信方式將采集到的氣象數據傳送給采集器,按照數據格式要求[6],采集器將接收到的智能傳感器輸出的數字信號處理成業務中需要的數據,并完成統計量計算和質控。同時還具有數據存儲功能,適應軟件升級和數據存儲需要,具備掉電保護能力,可以通過光纖和GPRS上傳數據至本地和遠程業務平臺。嵌入式采集器系統如圖1所示。

圖1 嵌入式多要素采集器系統
多要素智能數據采集器主要實現數據處理、存儲、傳輸和控制等功能,其硬件電路包含了高性能嵌入式處理器、高精度實時時鐘電路、大容量程序存儲器和數據存儲器、ZigBee收發器、通信接口、以太網接口、光纖接口、USB接口、SD卡接口、檢測電路、指示燈和供電接口等。圖2為采集器功能框圖。處理器采用先進的ARM9 架構的32 位CPU[7]。該架構類型的處理器是多功能的32 位微處理器,支持豐富的外部設備控制部件,外圍設備接口電路實現了采集器的各項功能。

圖2 多要素采集器功能框圖
主采集控制器中運行的嵌入式軟件是基于保證通信的實時和提高處理多種氣象要素數據的效率的需求而提出的。嵌入式軟件包括專用的嵌入式操作系統和應用軟件[8]。由于Linux系統開發成本低,具有豐富的編譯器和調試工具,內核可定制[9],所以本設計嵌入式操作系統選擇了實時性高、性價比好、穩定可靠的多任務Linux實時操作系統。數據采集器核心板根據主控制器具體的應用需求加載Linux 操作系統,并加載文件系統[10],使采集器的核心控制處理單元的功能更加強大,運行更加穩定可靠,有效提高了采集器對數據的處理能力,滿足了各種復雜氣象探測系統的數據處理要求。應用軟件建立在實時多任務操作系統基礎上,主要完成數據處理、存儲、傳輸、綜合質量控制和設備管理等。該軟件采用模塊化、多任務的設計思路,極大提高了實時監控程序執行的并發性,主要分為三個功能模塊,包括主控制模塊、數據采集處理模塊和通信模塊。圖3為嵌入式主控軟件結構圖。

圖3 嵌入式主控軟件結構圖
主控制模塊主要完成整個系統的初始化和自檢等功能,實時監聽其他模塊的運行狀態,接收每個模塊的日志信息,檢查每個模塊的信息,對看門狗、外設等運行的監控。圖4為主控模塊程序流程圖。

圖4 主控模塊流程圖
數據采集處理模塊主要與智能傳感器進行交互,通過ZigBee方式接收各個傳感器采集到的氣象信息,對傳感器數據進行分鐘、小時數據統計量計算,瞬時值質控[11],綜合質量控制。將處理好的數據傳給數據存儲器來進行數據存儲,存儲介質為內部nandflash及外部SD卡,整合數據和單個傳感器數據均進行存儲和上傳服務器,最后會在一定時間進行刪除,以防止存儲空間占滿。圖5為數據采集處理模塊程序流程圖。
通信模塊主要與外圍設備進行命令交互,并向業務中心站提供智能氣象站業務數據,其交互方式可采用有線或無線通信??梢酝ㄟ^RS232/485/422串口有線傳輸,并且可由串口設置命令。同時將來自ZigBee傳送的數據進行CRC校驗,檢測數據包的完整性和準確性。最后通過標準光纖接口實現數據上傳至本地業務平臺,或以GPRS/北斗傳輸方式實現數據上傳至遠程業務平臺。圖6為通信模塊程序流程圖。
CRC校驗是對傳送數據的查錯校驗碼[12],可以保證數據傳輸的正確性和完整性,部分程序設計如下:
/* Check CRC of msg */
if(crc_calculated !=crc_received)
{
fprintf(stderr, ″ERROR CRC received %0X !=CRC calculated %0X ″,
crc_received, crc_calculated);
return ZB_EERO_PKT;
}
crc_calculated=_checksum_crc(msg,msg_length-9);
printf(″cal111:%d ″,crc_calculated);
crc_received=atoi((char*)(msg+msg_length-9));
printf(″rec:%d ″,crc_received);
在接收到傳感器發來的數據包時,進行CRC校驗,并將校驗結果與數據包末端校驗碼相比較,從而判斷數據傳輸的準確性。
在觀測場搭建好各氣象要素傳感器,放置好帶有太陽能板的采集器供電箱,將交叉編譯好的嵌入式軟件程序加載到采集器的主核心板上。首先通過操作命令設定好每個傳感器的ID號,并記錄它們的序列號,將信息加入到程序的配置文件中,以便主控制器自動識別傳感器,通過ZigBee無線方式進行認證連接。最后用串口線連接采集板和PC機,通過PC機上終端Secure CRT的界面顯示,可以看到系統加載,程序開始運行,檢測到了傳感器信息,并且開始存儲各傳感器通過無線ZigBee方式傳送過來數據的各個過程。終端顯示界面如圖7所示。

圖7 終端顯示界面
再將串口線連接至串口調試端,設置好串口參數后,打開串口調試助手,可以看到助手界面開始實時顯示傳感器數據,同時在輸入框發送通信監控命令,可以接收到相應的信息,如圖8所示。登錄采集器物理IP地址,還可以通過網口下載存儲在flash和SD卡中的數據。

圖8 串口助手測試結果
本文研究分析了主控制器的功能,簡要介紹了硬件的設計框架,重點介紹了嵌入式軟件的設計。通過在現場的測試,軟件可以正常運行。本次設計的軟件創新點在于應用程序意外死機后有自我重啟功能,具有數據檢測的實時性,能夠自我診斷、自我校準,實現了靈活組網和低功耗高精度穩定的無線通信。為地面氣象觀測實現全面自動化提供巨大的技術支撐,對氣象預報和服務提供了更加靈活便捷、及時有效數據服務的地面氣象探測業務新模式。同時完成自動氣象站向智能氣象站的升級換代,具有很強的實用和推廣價值。