文獻標識碼: A
文章編號: 0258-7998(2010)12-0036-03
以浮標平臺為載體的海洋定點垂直剖面監測系統[1]可以實現海平面以下水體垂直剖環境監測數據的實時、自動獲取,它由水下數據采集系統、電磁耦合系統、水上浮標遠程監測和數據傳輸系統組成,可為海洋的探索和監測提供豐富可靠的數據信息和資料。從我國開始研制海洋資料浮標以來,實時數據傳輸系統先后采用過多種數據通信方式,包括短波通信、INMARSAT-C衛星通信以及GPRS/CDMA通信等。各種通信方式各有優點和局限性,短波通信抗干擾能力差、誤碼率高、數據接收率低;INMARSAT-C衛星通信可靠性高,數據接收率達95%以上,但通信費用較高;GPRSP/CDMA通信費用較低,但通信信號受到浮標到岸邊距離的限制[1]。根據浮標系統對數據傳輸及功耗的要求,本文利用銥星突發短數據SBD(Short Burst Data)透明數傳模塊提供的SBD業務,實現了數據的可靠傳輸,利用監測板代替主控板完成對浮標系統的實時監測,并大幅降低了系統的浮標遠程監測與數據傳輸系統的功耗。
1 系統工作原理概述
海洋定點垂直剖面監測系統的整體結構框圖如圖1所示。本文主要闡述由主控板、銥星通信終端和監測板組成的水上浮標遠程監測與數據傳輸系統。它主要完成轉發水下數據采集到的數據和對浮標體進行實時監測。為降低功耗,主控板未進行數據傳輸時休眠,銥星通信終端未發送數據時不供電。
水下數據采集系統利用波浪能自行下降,到設定的深度后上升并且開始采集數據。當上升到距海面浮標體一定距離時,嵌于數據采集系統頂部玻璃鋼內的釹鐵硼磁塊將觸發嵌于浮標底部玻璃鋼內的磁敏開關電路,使其產生中斷信號,喚醒處于休眠狀態的主控板。然后,主控板通過RS232串口接收并保存從電磁耦合系統傳來的數據。數據接收完畢后,水下數據采集系統再次下降去采集數據。與此同時,主控板通過銥星通信終端將接收到的數據發送到監控中心,并再次進入休眠狀態,等待下次數據的到來。
主控板休眠時無法完成監測浮標、錨燈和電池電壓等狀態的工作,本文用監測板代替主控板完成這些重要的工作。當出現異常情況時,監測板通過I/O口產生中斷信號來喚醒主控板,并與之進行串口通信,然后由主控板通過銥星將以上狀態信息發送到監控中心。
2 系統硬件概述
2.1 主控板
主控板的微處理器選擇Atmel公司生產的工業級ARM9芯片AT91SAM9G20,其主頻高達400 MHz,在所有外設啟動的全功率模式下,其功耗僅為80 mW。相對其他ARM9芯片,其功耗較低。它有豐富的串口資源,6路RS232串口和1路可配置為RS485或RS422串口,支持銥星通信終端所需的9線串口,使得主控板和銥星通信終端之間的通信更加穩定。安裝WINCE操作系統后,支持大容量SD卡存儲和多線程操作,非常適合應用在多串口數據采集、存儲和通信的場合。主控板的簡要框圖如圖2所示。
2.2 銥星通信終端
銥星系統是由66顆環繞地球的低軌衛星網組成的全球衛星移動通信系統,其最大優勢是通信范圍可以覆蓋全球,而且無論在任何地方都能保證數據通信的信號強度和可靠性,不受天氣、高度、電離層、距離等不穩定因素的制約,因此,特別適合現有通信手段達不到的地方。本系統工作的海洋環境就是這樣的地方。此外,相對于其他數據通信方式,銥星通信的費用較低,而且功耗較小,能夠滿足海洋浮標設備低功耗的要求。
本系統中的銥星終端使用銥星SBD 透明數據傳輸模塊,它嵌入了銥星9601 SBD和SBD協議,結合銥星全球覆蓋網絡提供銥星數據業務(SBD),通過采用數據包的方式實現短消息雙向傳輸。在本系統中,主控板通過9線RS232串口向銥星模塊發送AT指令集,實現SBD業務。用戶可以通過郵件協議方式或DirectIP鏈接方式獲取數據,也可在終端之間進行數據收發。模塊的主叫消息可達205 B,被叫消息可達105 B。通信速率最高可達115 200 b/s,默認波特率為192 00 b/s,可通過AT+IPR命令設置[2]。
2.3 浮標狀態監測板
主控板可以完成浮標狀態的監測工作,但由于其功耗相對單片機較高,為盡可能降低電子系統功耗,滿足長期無人值守監測需求,本系統選用了以低功耗MCU芯片STC12C5A60S2為核心的監測板來完成監測導航錨燈、浮標倉蓋、倉體漏水和系統電池狀態的工作。其正常工作時的電流為2 mA~7 mA。
浮標系統中,錨燈在夜間以一定頻率閃爍,以免過往船只撞上浮標,如果它在白天閃爍,則說明其出現異常。對浮標倉蓋進行監測,主是要為了防止其被人為打開。浮標倉體如果發生漏水,則會對其中的電子系統和電池產生致命的危害。系統的電池電壓過低,也會嚴重影響系統的運行。如果以上這些異常情況發生了,都會通過主控板發送到監控中心。監測板的框圖如圖3所示。
3 系統軟件設計
通過軟件降低功耗的方式有兩種:(1)使主控板未進行數據通信時休眠;(2)銥星通信終端沒有發送數據時,通過主控板I/O口控制終端的相應引腳關斷其電源。
3.1 AT91SAM9G20主控板程序設計
主程序設計可分為以下四個步驟:(1)安裝中斷。上電后,不打開任何串口而直接進入休眠狀態。要使其返回正常狀態工作,則必需通過中斷將其喚醒。(2)串口配置和通信[3]。在WINCE中struct DCB包括了串口的波特率、字符位數和奇偶校驗等重要屬性,在修改好DCB之后,調用的串口操作API函數SetCommState使串口的屬性配置生效。對于串口讀寫,設置串口讀寫超時是非常重要的,SetCommTimeouts函數提供了這樣的功能。配置好串口后,用CreateFile函數打開數據接收串口和狀態串口,并調用CreateThread創建串口監聽線程。在監聽線程中利用WaitCommEvent函數阻塞線程,等待串口事件中某一事件的發生。當串口發生錯誤時,則調用OnError清除錯誤。當有字符到達串口的緩沖區時,用ReadFile讀串口。主控板與水下數據采集子系統之間的通信是在監聽線程函數中回調函數OnReceive中完成的,接收到的數據保存在大容量SD卡中的文本文件。然后,利用線程同步API函數WaitForSingleObject(m_hSendWait, INFINITE)阻塞主線程。(3)數據傳輸。水下采集到的數據在傳輸完后,將會標識阻塞主線程的句柄m_hSendWait。之后,主控板將數據通過銥星發送到監控中心。(4)關閉串口。一次數據接收和發送完后,應該關閉打開的串口,然后再次進入休眠狀態。主控板程序流程如圖4所示。
3.2 銥星通信終端程序設計
主控板通過串口向銥星SBD透明數據傳輸模塊發送AT指令就可以控制其發送數據。銥星模塊發送數據時,其功耗最大,利用AT+CSQ命令可查詢當前銥星模塊與銥星衛星之間是否存在網絡,這樣也可以減小銥星模塊的功耗。如果大于0,即應答信號位中的信號強度為1~5,則用AT+SBDIX命令發送數據。程序流程如圖5所示。
3.3 監測板程序設計
監測板主要實現浮標體和電池狀態的實時監測。當浮標、錨燈和電池體狀態正常時,無需將當前的狀態發回監控中心,也就不用產生中斷信號。當出現異常情況時,如電池電壓低于預設值,MCU將產生中斷信號,并通過串口將狀態字符串發送給主控板,由后者通過銥星通信終端發送到監控中心。
4 系統調試
將主控板的打印串口COM3與電腦的串口相連,打開串口調試助手,波特率設置為9 600 b/s,無奇偶校驗位,8 bit數據位,1 bit停止位。系統上電后,把嵌有釹鐵硼磁塊的玻璃鋼圓板向內嵌有磁敏板的玻璃鋼片移動。當到達一定距離后,磁敏板產生中斷信號。水下數據采集板與水上主控板握手成功后進行數據通信,主控板將數據保存在SD中。經過長時間運行,通過從串口調試助手打印出的信息與SD卡和郵箱中的數據比較可知,系統運行穩定。通過傳感器模擬異常情況時,異常情況數據幀也能通過銥星通信終端發送到郵箱中。
測試到的主控板和監測板的功耗如表1所示。若以表1的數據為依據,用12 V/38 AH的蓄電池對主控板、銥星通信終端和監測板(不包括錨燈)供電,設系統每日完成一個數據采集周期,每個采集周期發送數據時間為2小時,則只采用主控板完成數據收發和狀態監測所消耗的電能為22.7 WH,而用監測板代替主控板完成狀態監測工作所消耗的電能為14.1 WH。在不借助太陽能電池板對蓄電池充電的情況下,前者大約能工作20天,后者大約能工作32天。可見,用監測板代替主控板完成狀態監測工作非常必要。
本文利用銥星設計和實現了一種浮標遠程監測和數據傳輸系統,在系統運行穩定的前提下,充分考慮到系統對功耗的要求,從硬件的選取到軟件的實現,都盡可能地降低其功耗。用監測板代替主控板進行狀態監測,不僅降低了系統的功耗,而且使狀態監測和采集數據傳輸相對獨立,更易于系統的穩定運行和功能的擴展。該浮標遠程監控和數據傳輸系統很好地滿足了海洋定點垂直剖面監測控制系統的需求,達到了設計目標。
參考文獻
[1] 張曙偉,王秀芬,齊勇.銥星數據通信在海洋資料浮標上的應用[J].山東科學,2006(5).
[2] Iridium Satellite LLC.Iridium 9601 short burst data transceiver product developers guide V1.24[M],2005.
[3] 汪兵,李存賦,陳鵬,等.EVC高級編程及其應用開發[M]. 北京:中國水利出版社,2005.