基于LwIP的海洋數據采集與傳輸系統(tǒng)
摘 要: 針對海洋數據采集系統(tǒng)中串行數據傳輸能力不能滿足海洋環(huán)境實時監(jiān)測需求的現(xiàn)狀,設計并實現(xiàn)了一種傳輸速率較高的以太網數據傳輸系統(tǒng)。系統(tǒng)以STM32F207VGT6處理器為核心,選擇輕量級的LwIP作為以太網協(xié)議棧,將LwIP TCP/IP協(xié)議棧移植到STM32F207VGT6上,在應用層實現(xiàn)了一個網絡、串口數據雙向傳輸的數據傳輸系統(tǒng)。經測試,其傳輸速率優(yōu)于同條件下RS232、RS485、CAN總線的傳輸速度,滿足了設計要求。
關鍵詞: 數據采集;LwIP;TCP/IP;數據傳輸
以海底觀測節(jié)點為載體的海洋數據采集與傳輸系統(tǒng),可以實現(xiàn)海平面以下水環(huán)境監(jiān)測數據的實時、自動獲取,它由各個傳感器、CPU控制器、數據傳輸接口以及水上遠程監(jiān)測平臺組成,可為海洋的探索和監(jiān)測提供豐富的信息和資料。從我國開始研制海洋數據采集與監(jiān)測系統(tǒng)至今,先后采用了多種數據傳輸方式[1],包括RS232、RS485、CAN總線等,各個傳輸方式各有利弊。RS232支持全雙工通信,雖然是眾多設備的直接連接渠道,但傳輸速率慢、抗干擾能力差、傳輸距離短;RS485只支持半雙工通信,抗噪聲干擾性好,傳輸距離較RS232遠,但傳輸速率慢;CAN總線只支持半雙工通信,通信距離遠,抗干擾能力強,但傳輸速率仍有限制[2]。根據數據采集及傳輸系統(tǒng)對數據傳輸速率的要求,本文利用LwIP作為以太網協(xié)議棧,完成LwIP TCP/IP協(xié)議棧在STM32F207VGT6的移植;考慮到以太網支持全雙工通信,同時利用以太網中的UDP傳輸方式實現(xiàn)各類傳感器開啟、采集間隔的控制以及對采集數據的實時監(jiān)測,大幅度提高了系統(tǒng)遠程的可控性及實時性。
1 系統(tǒng)工作原理
海洋數據采集與傳輸系統(tǒng)的整體結構如圖1所示。其中數據采集板是本系統(tǒng)設計和實現(xiàn)的主要組成部分,本文主要闡述由傳感器、數據采集板和用戶遠程檢測終端組成的海洋數據采集與傳輸系統(tǒng)。它主要完成對傳感器采集到的數據進行存儲和傳輸以及對傳感器進行實時監(jiān)測,其目的是提高傳感器水下工作時長、提供外部電源供電引腳、方便進行長期觀測。
海洋數據采集與傳輸系統(tǒng)工作原理為:當水下傳感器采集到數據時,即刻通過串口傳遞至數據采集板,采集板收到數據請求信號,立即執(zhí)行SD卡數據存儲操作,并通過以太網對數據進行接收,在UDP傳輸方式下通過網線將數據傳遞至用戶遠程計算機終端。數據接收完畢后,水下傳感器繼續(xù)執(zhí)行數據的采集。與此同時,遠程計算機終端通過網絡發(fā)送控制命令,信號經網絡傳輸至采集板CPU,CPU進行命令解析,針對不同的解析結果對傳感器發(fā)送相應控制命令,實現(xiàn)對傳感器開啟、采集間隔設置的實時控制。
CTD傳感器1~傳感器5是一般的RS232接口傳感器,而耦合傳感器1、2、3屬于感應耦合自容式傳感器,若要連入電路,需要加入調制解調模塊。兩種傳感器除了都能以RS232形式輸出數據外,也可進行自容式存儲。
2 系統(tǒng)硬件
目前,實現(xiàn)傳感器串行數據與以太網數據交換的方式主要有3種:(1)使用專用的網絡處理芯片;(2)使用高檔嵌入式系統(tǒng)處理;(3)使用單片機和網絡控制芯片。通過比較可以發(fā)現(xiàn):第(1)種成本較高,且用戶需要重新設計接口;第(2)種成本也較高,且如果僅用于通信接口,芯片資源則不能充分利用;相比較而言,通過從成本和使用場合考慮,第(3)種方法成本低,實現(xiàn)比較容易,并且可以根據實際需要進行功能擴展,只是軟件編程工作量比較大。因此本文采用第三種方法來實現(xiàn)。
本系統(tǒng)中主控板微處理器選用ST公司基于Cortex-M3內核的32 bit微處理器STM32F207,其主頻達120 MHz,專用于網絡型嵌入式設備中。STM32F207具有豐富的串口資源、4路USART通道、2路UART通道。其中USART1和USART6最高波特率支持7.5 Mb/s,其他接口最高支持3.75 Mb/s,不僅支持調制解調模塊、傳感器的物理連接,而且對于數據的傳輸也提供了較高的傳輸速率,可以有效縮短傳感器通過串口下載歷史數據的時間。
以太網收發(fā)芯片選用美國National公司的10/100 M以太網物理層收發(fā)芯片DP83848C,該芯片遵循Ethernet II和IEEE802.3u標準,同時支持MII、RMII、SNI三種數據連接方式,內部還集成了數據收發(fā)及濾波功能。在全雙工模式下,可以同時實現(xiàn)發(fā)送和接收,理論上最高速度能達到100 Mb/s,本文對其配置為100 Mb/s。采集板簡要框圖如圖2所示。
如圖2所示,微控制器與以太網收發(fā)芯片間采用了RMII模式[3]。這種方式在保持物理層器件現(xiàn)有特性的前提下減少了PHY的連接引腳,在保持IEEE802.3規(guī)范中所有特性的同時,降低了系統(tǒng)設計的成本。
3 系統(tǒng)軟件設計
本系統(tǒng)軟件設計包括兩部分:水下采集板傳感器數據采集、傳輸程序和遠程用戶界面實時監(jiān)測程序。其中,采集板程序均在KEIL Uvision4下編譯、測試,遠程監(jiān)測程序在Visual Studio 2008下編譯、測試。
3.1 TCP/IP協(xié)議棧——LwIP 移植
LwIP是瑞士計算機科學院的Adam Dunkles等人開發(fā)的用于嵌入式系統(tǒng)的開放源碼TCP/IP協(xié)議棧,其在保持TCP主要功能的基礎上減少對RAM的占用,一般只需要幾十字節(jié)的RAM和40 KB左右的ROM就可運行,使LwIP適合在中低端的嵌入式系統(tǒng)中應用。
嵌入式TCP/IP協(xié)議棧有兩種普遍的實現(xiàn)方式:一種是將協(xié)議簇中的每個協(xié)議作為一個單獨的進程,并指定進程之間的通信點。其優(yōu)點在于結構清晰,代碼易懂,占用系統(tǒng)資源較少,且方便調試;另一種方式是將協(xié)議棧駐留在操作系統(tǒng)內核中,應用程序通過系統(tǒng)調用與協(xié)議棧通信。該方式對系統(tǒng)RAM、ROM資源占用較高,且不能很好地支持MDK[4]環(huán)境下的斷點調試。故本文選擇第一種方式。
3.2 STM32F207采集板程序設計