徐鳳新
(上海海事大學信息工程學院,上海 201306)
溫度和濕度是同類人生活密切相關的重要環境參數,海洋溫濕度數據也是進行衛星輻射定標的重要數據。因此設計一種海洋表面溫濕度實時監測系統對于衛星輻射定標以及其他有關海洋環境的研究工作有著重要的意義。本系統利用溫濕度傳感器、SD存儲卡、ARM嵌入式處理器,結合北斗通信衛星系統組成一個完整的溫濕度檢測系統。系統簡單靈活,可在線、實時存儲和顯示溫濕度數據信息。和傳統的定期取回檢測相比,在線監測減少了研究人員的工作量,也減少了數據丟失和數據失真等不必要的麻煩。而且本系統可移植性較高,可以移植運用于其他相關的領域[1-2]。
海洋表面溫濕度實時監測系統主要包括:海上平臺、北斗數據傳輸系統和岸上平臺3部分,如圖1所示。
溫濕度傳感器對海洋表面的溫濕度數據進行采集,ARM Cortex-M4作為數據處理終端的核心處理器對采集到的信號進行讀取分析,處理好的數據一路存儲在系統自帶的SD中,另一路通過RS-232串口傳送給北斗天線,透過北斗信道,最終將數據發送至岸上平臺的數據存儲系統,對數據進行接收、存儲和實時顯示。

圖1 系統的整體框架
數據處理終端主要包括:主控系統、溫濕度傳感器模塊和雙路SD卡模塊,并引出兩個接口,一個為太陽能供電接口,連接太陽能供電系統,另一個為北斗天線接口,連接北斗衛星信號發射天線。數據處理終端以ARM Cortex-M4處理器為主控芯片,采用DHT22數字溫濕度傳感器,為了保證數據的安全性,采用雙路SD卡系統對采集的數據進行存儲。整個數據處理終端的拓撲結構如圖2所示。

圖2 數據處理終端的結構圖
(1)ARM Cortex-M4處理器
本系統采用ST公司(意法半導體)基于ARM Cor?tex-M4內核的STM32 F4系列高性能微控制器。具體型號為STM32F407ZGT6。該芯片時鐘頻率高達168MHz,擁有 1024KB Flash,192+4KB 的 SRAM,工作電壓1.8V~3.6V,工作溫度范圍-40~80℃。該系列的微處理器具有高性能、低功耗、低價格、技術成熟和資料齊全等優點[3]。
STM32F407ZGT6是本系統的核心控制器,在本系統中起著重要的作用,承擔著連接溫濕度傳感器,獲取、處理并存儲溫濕度數據,與北斗衛星發射天線進行通信等重要職責。圖3為ARM Cortex-M4結構簡圖。

圖3 ARM Cortex-M4結構簡圖
(2)溫濕度傳感器
本系統采用的溫濕度傳感器為DHT22,是一款含有已校準數字信號輸出的溫濕度復合傳感器。它運用專用的數字模塊采集技術和溫濕度傳感技術,確保產品具有極高的可靠性與卓越的長期穩定性。傳感器包括一個電容式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機相連接。DHT22具備超小的體積、極低的功耗,信號傳輸距離可達20米以上等優點,采用單排引腳封裝,連接方便。溫濕度傳感器電路圖如圖4所示[4]。
DHT22的供電電壓范圍為3.3V~5.5V,建議供電電壓為5V。數據線SDA引腳為三態結構,用于讀寫傳感器數據,在應用電路中,需加一個5.1K的上拉電阻。3腳為懸空引腳,不能接VDD或者GND,4腳為GND。

圖4 溫濕度傳感器電路圖
(3)Micro SD卡模塊
由于海上環境的特殊性,為了保證數據的安全,本系統采用雙路8GB Micro SD卡進行數據存儲。Micro SD卡支持兩種工作模式:SPI模式和SDIO模式。SPI是利用4根信號線進行通信的串行接口協議,包括主/從兩種模式。SPI模式雖然簡單易用,但是卻損失了傳輸速度。SDIO模式采用SDIO接口,SDIO接口可擴展性更強,傳輸速度更快,旨在為移動設備提供高速低功耗I/O數據傳輸解決方案。SDIO有三種工作模式:SPI、1位SD模式、4位SD模式。所以綜合比較,選擇SDIO模式更能滿足系統的需要[5]。SD卡模塊和STM32連接的電路圖如圖5所示。
本系統是投放于寬闊的海洋上的,那么遠距離數據傳輸只能借助于無線網絡通信。由表1可知,在無線網絡覆蓋地區,選擇GSM、GPRS、CDMA中的任意一種都可以達到數據傳輸的目的,但在沒有網絡覆蓋的區域,以上方式都會失效。本系統單位時間傳輸的數據量不大,但安全性和實時性要求很高,并且海上平臺位于遠海,通信環境惡劣,綜合以上因素考慮,在我國境內無盲區的北斗衛星通信方式成為首選[6]。

圖5 SD卡模塊連接電路圖

表1 幾種常用的無線通信方式的比較
(1)北斗衛星通信系統
北斗衛星導航定位系統是我國自主研制開發的區域性有源三維衛星定位與通信系統,該系統主要有快速定位、簡短通信和精密授時三大功能,是繼美國的全球定位系統(GPS)、俄羅斯的GLONASS之后第三個成熟的衛星導航系統。
北斗衛星導航系統具有通信、定位和授時三大功能,本系統的數據傳輸主要是運用了北斗衛星系統的通信功能,北斗一代衛星以及北斗二代衛星中的靜止軌道衛星均提供通信服務。
北斗衛星通信系統覆蓋范圍廣、沒有通信盲區、信息加密傳輸安全。用戶終端機分為指揮型用戶機和通信型用戶機,指揮型用戶機可以監收其所有下屬用戶機的通信數據,并可以向其任一下屬用戶機發送命令或與其進行數據通信[6]。
(2)北斗衛星天線
本系統所選用的北斗衛星天線為北斗一號/GPS雙模一體式普通型用戶機,該款天線是由北京星地恒通信息科技有限公司研制。該天線可以適應高鹽霧、高腐蝕海上使用環境,用戶可利用該產品實現北斗定位、短信息通信功能和GPS定位功能。

圖6 北斗衛星系統框圖

圖7 北斗衛星天線示意圖

圖8 北斗衛星天線實物圖
(3)北斗信道傳輸方案的拓撲結構
北斗通信信道分為三個部分,海上平臺的北斗發射天線,岸上平臺的北斗接收天線以及北斗通信衛星。數據傳輸的方向為:海上平臺北斗發射天線—北斗通信衛星—岸上平臺北斗接收天線。北斗傳輸方案一共有三個接口,海上平臺北斗發射天線預留兩個接口,一個接口為24V太陽能供電電源接口,另一個為RS-232接口,用于連接數據處理終端。岸上平臺的北斗接收天線預留一個RS-232接口,用于連接岸站PC端,岸上平臺上的北斗接收天線供市電。圖9為北斗信道傳輸方案的拓撲及結構示意圖。

圖9 北斗衛星信號傳輸示意圖
綜合考慮海上平臺的功耗、制作成本以及對海洋環境的影響,本系統海上平臺采用太陽能供電。太陽能是一種能量巨大、無污染、使用安全的能源[7]。
太陽能供電系統主要由太陽能電池板、控制器和儲能鉛蓄電池組成。整個太陽能供電系統有兩個接口,一個接口輸出電壓為5V,給數據處理終端供電,一個接口輸出電壓為24V,給北斗衛星信號發射天線供電。太陽能供電系統結構圖如圖10所示。

圖10 太陽能供電系統結構圖
系統軟件包括兩個部分,一部分是岸上平臺上運行的數據接收程序和前端網頁實時數據顯示系統,另一部分是運行在海上平臺STM32處理器內部的數據處理和北斗信號傳輸程序。岸上平臺上的數據接收程序使用C語言編寫,在Linux系統下進行運行,實時數據顯示網站使用LAMP(Linux操作系統+Apache服務器+MySQL數據庫+PHP語言)進行系統環境的配置,網頁部分采用PHP語言進行編寫。ARM Cortex-M4處理器內運行的程序是使用C語言在Keil UVision4開發平臺下編寫,主要包括兩部分,一是和北斗衛星天線進行通信,二是負責對溫濕度傳感器采集到得數據進行處理、發送和存儲。
(1)FreeRTOS
FreeRTOS是一款可移植的、開放源代碼的微型實時操作系統內核,它免費下載、免版稅,并可用于商業應用。它為多種不同的處理器架構和開發工具提供移植包。每個官方移植包都包含一個配置好的應用范例,用來展示內核特性,加快學習進程,并允許“開箱即用(out of the box)”式的開發[8-9]。
FreeRTOS提供的功能包括:任務管理、時間管理、信號量、消息隊列、內存管理、記錄功能等,可基本滿足較小系統的需要。FreeRTOS內核支持優先級調度算法,每個任務可根據重要程度的不同被賦予一定的優先級,CPU總是讓處于就緒態的、優先級最高的任務先運行。FreeRT0S內核同時支持輪換調度算法,系統允許不同的任務使用相同的優先級,在沒有更高優先級任務就緒的情況下,同一優先級的任務共享CPU的使用時間。本系統處理任務量較少,所以,FreeRTOS完全滿足要求[9]。
海上平臺的軟件程序運行在STM32內部的Fre?eRTOS系統中。STM32程序對溫濕度傳感器的SDA總線進行循環掃描,將采集到的溫濕度數據處理后存儲在雙路SD卡中,然后再將數據通過RS-232串口傳送給北斗衛星信號發射天線。程序的流程圖如圖11所示。

圖11 海上平臺軟件運行流程圖
(1)數據庫設計
數據庫關系表如下,其中帶有下劃線的是主鍵。大洋環境信息表(編號,錄入時間,溫度,濕度)
本系統的數據表如表所示。
(2)北斗衛星數據接收程序設計
本程序工作在Linux環境中,使用串口接收數據,波特率為115200,8位數據位,無奇偶校驗位,1位停止位。程序使用多線程技術,使用兩個線程分別用于接收和命令控制。在接收到數據之后,需要解析數據中的內容,將解析的內容保存至MySQL數據庫中。
(3)前端實時顯示網頁設計
本網頁使用LAMP(Linux操作系統+Apache服務器+MySQL數據庫+PHP語言)進行系統網站環境的配置。網站環境如下表所示,使用PHP語言開發。

表2 信息表

表3 系統網站環境
為了檢測海洋表面溫濕度實時監測系統的性能,對該系統進行運行測試,測試結果表明,系統能實現溫濕度數據的采集、存儲、傳輸和實時顯示等各種功能,運行效果良好。表4為2017年7月13日在上海海事大學臨港校區進行系統測試時,測試到的數據結果,實驗結果表明,所測得的溫度誤差在0.5℃以內,濕度誤差小于5%。

表4 實際測量結果

圖12網頁顯示端實際效果圖
圖13 為本系統海上平臺的數據處理終端、太陽能供電系統及外層的防護裝置。

圖13 海上平臺全貌
本文設計的海洋表面溫濕度監測系統,采用高性能、低功耗的STM32微處理器為硬件平臺控制核心,同時嵌入實時操作系統FreeRTOS,設計并實現了對海洋表面溫濕度的實時監測,具有低成本、高性能、操作簡單以及抗干擾能力強等特點。采用模塊化設計方法,降低了系統開發的復雜度,大大縮短了設計周期和設計成本,經過實驗和測試,可以滿足海洋表面溫濕度數據處理和存儲的技術要求,因此,經過對該系統進行簡單的修改,就可以靈活地應用于其他領域。