《電子技術(shù)應用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應用 > 基于ARM和3G的船舶燃料管理系統(tǒng)設(shè)計
基于ARM和3G的船舶燃料管理系統(tǒng)設(shè)計
來源:電子技術(shù)應用2013年第10期
程 行1,岳 銳2,金曉龍3
1.中國地質(zhì)大學(武漢) 機械與電子信息學院,湖北 武漢430074; 2.湖北省電子科學研究所有限公司,湖北 武漢430061; 3.武漢市城市路橋收費管理中心,湖北 武漢430050
摘要: 針對船舶管理中心對江面作業(yè)的雙燃料船舶的燃料監(jiān)管需要,設(shè)計了一個基于ARM和3G網(wǎng)絡(luò)的船舶燃料管理系統(tǒng)。結(jié)合3G網(wǎng)絡(luò)和VPN技術(shù),解決了船舶管理中心與船舶遠距離通信的問題;利用ARM的串口和GPIO口,實現(xiàn)了對船舶燃料使用信息和異常報警狀態(tài)的采集;通過將船舶端的網(wǎng)絡(luò)硬盤錄像機作為視頻服務(wù)器,管理中心可以對船舶現(xiàn)場進行實時監(jiān)控。測試結(jié)果表明,系統(tǒng)性能穩(wěn)定可靠、實時性良好。
中圖分類號: TP319
文獻標識碼: A
文章編號: 0258-7998(2013)10-0022-03
Design of ship fuel management system based on ARM and 3G
Cheng Hang1,Yue Rui2,Jin Xiaolong3
1.Faculty of Mechanical & Electronic Information,China University of Geosciences, Wuhan 430074,China; 2.Hubei Provincial Institute of Electronic Science Co.,Ltd.,Wuhan 430061,China; 3.Wuhan Urban Road & Bridge Toll Management Center,Wuhan 430050,China
Abstract: In accordance with the need of fuel management for dual-fuel ships that work on the water, a fuel management system based on ARM and 3G network is designed. The 3G network, combined with VPN technology, is used to solve the problem of communication between the ships and the ship management center. Taking advantages of the ARM serial port and GPIO port, the acquisition of fuel usage and security status is realized. By using a network DVR on the ship as a video server, the center can achieve real-time monitoring of the ship scene. The experiments show that the system has advantages of good reliability and real-time performance.
Key words : ARM;3G network;fuel management;VPN;real-time monitoring

    節(jié)能減排是當今的一個熱點,LNG(液化天然氣)由于其高效節(jié)能、污染小的特點越來越受到重視。許多船舶廠開始將傳統(tǒng)的柴油船改造成柴油和LNG雙燃料船。為了更好地對雙燃料船進行燃料管理,特別是當需要分析雙燃料船的節(jié)能比以及了解船舶的燃料安全狀態(tài)時,就需要對船舶的燃料使用情況和安全狀態(tài)進行及時的獲取和監(jiān)控。

    傳統(tǒng)的船舶燃料管理依賴于人工,無法自動和實時地對船舶的燃料信息進行采集和監(jiān)管,而且船岸通信往往依賴于船舶的衛(wèi)星通信系統(tǒng),一般以郵件的方式進行數(shù)據(jù)交換,信息交互缺乏靈活性。
    ARM作為嵌入式的主流核心架構(gòu),具有高速度、高精度和智能化等優(yōu)點,逐漸取代了單片機技術(shù),占據(jù)了絕大部分市場。在工業(yè)控制、移動設(shè)備、智能儀表、信息家電和網(wǎng)絡(luò)通信等領(lǐng)域有廣泛的應用[1-3]。3G網(wǎng)絡(luò)由于其高帶寬和網(wǎng)絡(luò)接入靈活的特點,越來越廣泛地應用于工業(yè)數(shù)據(jù)傳輸中[4]。本文基于ARM嵌入式終端和3G傳輸網(wǎng)絡(luò),設(shè)計了一個船舶燃料管理系統(tǒng),并在新式雙燃料船上成功應用。本文重點介紹系統(tǒng)船舶端的軟硬件設(shè)計。
1 系統(tǒng)總體介紹
1.1 系統(tǒng)結(jié)構(gòu)

    船舶燃料管理系統(tǒng)分為監(jiān)控中心端和船舶端,監(jiān)控中心端可以對在江面作業(yè)的多條船舶進行管理。
    船舶端包含ARM11嵌入式終端、網(wǎng)絡(luò)硬盤錄像機和3G路由器,監(jiān)控中心端包含VPN服務(wù)器和監(jiān)控主機,其中監(jiān)控主機連接本地數(shù)據(jù)庫。系統(tǒng)的主要功能是利用ARM終端進行燃料信息的采集和發(fā)送,監(jiān)控中心端接收顯示船舶端發(fā)送來的船舶燃料信息,并將信息存儲于數(shù)據(jù)庫以便后續(xù)的分析處理,同時,監(jiān)控中心能夠瀏覽船舶現(xiàn)場的視頻信息。
1.2 系統(tǒng)通信方案
    系統(tǒng)采用VPN與電信3G網(wǎng)絡(luò)相結(jié)合的通信方案。通過在監(jiān)控中心端搭建VPN服務(wù)器,就可以讓船舶端遠程連接到監(jiān)控中心的內(nèi)部網(wǎng)絡(luò),同時也保證了傳輸數(shù)據(jù)的安全性。船舶端傳送的每路監(jiān)控視頻的碼率為32 kb/s~2 048 kb/s,傳送的燃料數(shù)據(jù)信息碼率相對較低??紤]到傳輸數(shù)據(jù)量的大小,本系統(tǒng)采用電信3G網(wǎng)絡(luò)作為視頻和燃料數(shù)據(jù)的傳輸網(wǎng)絡(luò),其最大上行速率達1.8 Mb/s,在對視頻的畫質(zhì)要求不是特別高的情況下,可以滿足船舶燃料數(shù)據(jù)和1~4路船舶現(xiàn)場視頻的傳輸帶寬要求。
2 系統(tǒng)硬件設(shè)計
    ARM終端以S3C6410處理器為硬件基礎(chǔ),移植嵌入式Linux系統(tǒng)為軟件平臺,利用終端的RS232口對燃油和LNG二次儀表進行讀取,通過ARM終端的與船舶報警繼電器相連的GPIO口的狀態(tài)來獲取燃料的安全狀態(tài),并通過3G路由器內(nèi)置的GPS傳感器來獲得船舶的位置信息,最后將采集的數(shù)據(jù)信息通過3G網(wǎng)絡(luò)打包發(fā)送到監(jiān)控中心。
    根據(jù)船舶的燃料儀表設(shè)計,有一個LNG儀表和2個燃油儀表要讀取,儀表接口為RS485接口。本設(shè)計通過RS485轉(zhuǎn)RS232連接線將儀表與ARM終端進行連接,將ARM終端的3個GPIO口分別連接船舶上的火災、燃油和LNG異常報警繼電器,通過GPIO口的電平狀態(tài)來判定報警繼電器的開關(guān)狀態(tài),從而確定是否有報警被觸發(fā)。船舶端軟硬件架構(gòu)和硬件框圖分別如圖1和圖2所示。

    將架設(shè)在船舶上的網(wǎng)絡(luò)硬盤錄像機作為視頻服務(wù)器,采集并存儲船舶上攝像頭的視頻信息,這樣,監(jiān)控中心就可以通過訪問視頻服務(wù)器來實時預覽或回放船舶端的現(xiàn)場視頻。
3 系統(tǒng)軟件設(shè)計
    船舶ARM終端需要完成的具體功能包括船舶的瞬時和累計柴油消耗量、瞬時和累計LNG消耗量、燃料和火災的報警狀態(tài)、GPS位置信息的采集,將采集的信息打包發(fā)送,以及接收和處理監(jiān)控中心端發(fā)送來的指令等。在采集信息和打包發(fā)送數(shù)據(jù)的同時,有可能需要接收和處理監(jiān)控中心端的指令。由于系統(tǒng)功能的多任務(wù)性,軟件采用了基于多線程的設(shè)計方式,將各個功能分線程來實現(xiàn)。船舶ARM終端軟件采用QT2.2[5]進行設(shè)計,并運行于嵌入式Linux系統(tǒng)上。
3.1 配置表
    配置表位于ARM終端文件系統(tǒng)中,主要用于保存船舶的設(shè)備信息和網(wǎng)絡(luò)配置信息等。ARM終端初始化時,軟件會從配置表里讀取船舶的基本信息(如船名、ID號、各串口的波特率)以及ARM終端的網(wǎng)絡(luò)信息(如本機IP地址、監(jiān)控中心端IP地址等)。
    利用ARM終端配置telnet服務(wù)器,監(jiān)控中心端可以通過telnet方式遠程登錄ARM終端來修改配置表,從而修改船舶端的配置。這樣的方式為系統(tǒng)調(diào)試和維護提供了極大的靈活性和便利性。
3.2 讀取LNG儀表和燃油儀表
    本設(shè)計通過RS485接口連接多個LNG儀表和燃油表,通過設(shè)置不同的儀表地址來區(qū)分不同的儀表。
    ARM終端軟件通過串口讀取儀表數(shù)據(jù)。軟件中串口以非阻塞、可讀寫方式打開。如果是以阻塞方式打開,當讀取出現(xiàn)故障時會導致讀取線程卡死。為了正確讀取數(shù)據(jù),必須保證ARM終端的串口屬性與儀表串口的屬性一致,因此需要設(shè)置終端串口的屬性,如數(shù)據(jù)位、奇偶校驗位、停止位和串口波特率等,串口屬性可以在配置表中讀取。串口打開后定時地發(fā)送和讀取串口數(shù)據(jù),從而實現(xiàn)對儀表燃料信息的讀取。
3.2.1 讀取LNG儀表
    LNG儀表與ARM終端之間的通信以ASCII碼的十六進制方式來實現(xiàn)。讀取累計耗量和瞬時耗量的命令如表1所示,其中#為定界符;AA代表儀表的地址,地址為01~99。儀表設(shè)置的地址必須與讀取命令中的儀表地址一致。

    以讀取累計值為例,將儀表的地址設(shè)為01,則讀取命令為#01。將命令加上2位校驗核來防止誤碼,再加上結(jié)束符(回車符),最后從串口發(fā)送出去。命令發(fā)送后,地址為01的儀表會返回所讀取的值,將返回值進行校驗后去除校驗核和結(jié)束符,再進行碼值轉(zhuǎn)換后得到實際要讀取的值。讀取完成后,將讀取出來的值顯示到嵌入式終端屏幕上并放入發(fā)送數(shù)據(jù)包的相應位置中進行打包。讀取LNG儀表串口的流程如圖3所示。

3.2.2 讀取燃油儀表
    燃油儀表采用Modbus通信協(xié)議進行通信,通過讀取儀表的寄存器來獲得累計耗量和瞬時耗量。燃油儀表中的累計流量值和瞬時流量值存放在01~06共6個保持寄存器中,Modbus協(xié)議相應的讀取保持寄存器的命令格式如表2所示。將2塊燃油儀表的地址設(shè)置成不同值進行區(qū)分。發(fā)送命令前將待發(fā)送的命令數(shù)據(jù)進行CRC運算,將得出的2 B的CRC校驗碼加到發(fā)送命令的末尾一并發(fā)送出去。儀表會對發(fā)送命令進行校驗并丟棄校驗有誤的命令。將儀表返回值進行CRC校驗以確定返回值的正確性。最后將返回的累計耗量和瞬時耗量顯示到終端屏幕上并放入發(fā)送數(shù)據(jù)包的相應位置中。讀取燃油儀表串口的流程與LNG儀表類似。

3.3 讀取報警信息
    報警線程通過讀取ARM終端3個GPIO口的狀態(tài)來判定報警繼電器的開關(guān)狀態(tài),3個繼電器的開關(guān)狀態(tài)分別代表了燃油、火災、LNG的告警狀態(tài)。
    設(shè)計中將這3個GPIO口的操作接口編譯為一個驅(qū)動模塊,并在Linux系統(tǒng)啟動時將驅(qū)動模塊加載進內(nèi)核,這樣就可以將這3個GPIO口當作一個設(shè)備來操作。將GPIO口設(shè)置為CFG_IN方式,通過讀取GPIO口的pin值就可以判斷相應繼電器的開合狀態(tài)。
    正常狀態(tài)下,繼電器處于斷開狀態(tài),如果有告警發(fā)生,則相應的繼電器會被觸發(fā)閉合,對應的GPIO口電平會被拉高,pin值變?yōu)榉?。相應的報警號會被置位并寫入發(fā)送數(shù)據(jù)包中。由于有3個報警需要讀取,每個報警的正常和異常狀態(tài)可以分別用0和1表示,所以用0~7這8個報警號就可以表示各種報警組合狀態(tài)。
3.4 讀取GPS信息
    系統(tǒng)采用的3G路由器內(nèi)置GPS模塊,它能獲取船舶所在位置的經(jīng)緯度信息和精確的UTC時間信息,并能通過網(wǎng)口輸出。ARM終端軟件通過UDP方式來獲取3G路由器輸出的GPS信息,將信息中的經(jīng)度、緯度和UTC時間解析出來,并將UTC時間轉(zhuǎn)換為北京時間,最后放入發(fā)送數(shù)據(jù)包中。
3.5 燃料數(shù)據(jù)傳輸
    當燃料數(shù)據(jù)采集好以后,就可以將其打包發(fā)送到監(jiān)控中心。燃料數(shù)據(jù)的發(fā)送格式為:船名/船舶ID號/瞬時LNG流量/瞬時燃油流量/累計LNG耗量/累計燃油耗量/報警號/日期時間/經(jīng)度/緯度/$,用“/”作為兩個數(shù)據(jù)之間的分隔符,用“$”作為一個數(shù)據(jù)包的結(jié)束符。各分量用字符串表示。
    船舶端與監(jiān)控中心端之間通過TCP方式進行數(shù)據(jù)傳輸。船舶端接收監(jiān)控中心發(fā)送的命令,并據(jù)此確認采集發(fā)送燃料信息的間隔時間。為確保網(wǎng)絡(luò)連通的穩(wěn)定性,船舶端每隔5 min向監(jiān)控中心發(fā)送一個特定的連接標志信息“@”,當連續(xù)3次發(fā)送連接標志信息或燃料信息失敗時,軟件就重新連接監(jiān)控中心。船舶端與監(jiān)控中心數(shù)據(jù)傳輸?shù)牧鞒倘鐖D4所示。

 

 

3.6 看門狗線程
    船舶內(nèi)工作環(huán)境復雜,可能會對設(shè)備的正常運行造成影響。為確保ARM終端設(shè)備始終處于運行狀態(tài),系統(tǒng)利用終端S3C6410處理器內(nèi)部的看門狗對嵌入式終端的運行狀態(tài)進行檢測。通過軟件開啟看門狗并設(shè)置喂狗超時時間為15 s,一旦看門狗在喂狗超時時間內(nèi)沒有收到喂狗信號,就復位重啟ARM終端設(shè)備,這樣就保證了船舶端的ARM終端始終處于運行狀態(tài)。
4 系統(tǒng)測試
    在監(jiān)控中心搭建VPN服務(wù)器,并在電信3G網(wǎng)絡(luò)環(huán)境下對系統(tǒng)進行測試。
    首先配置好船舶端3G路由器并連入3G網(wǎng)絡(luò),將船舶ARM終端的數(shù)據(jù)接收地址設(shè)置為監(jiān)控主機的IP并連接3G路由器,當ARM終端軟件連接上監(jiān)控主機的管理軟件后即可進行數(shù)據(jù)傳輸。通過監(jiān)控端軟件連接船舶的網(wǎng)絡(luò)硬盤錄像機,還可以瀏覽船舶上的4路現(xiàn)場視頻。在視頻格式為CIF格式、視頻幀率為25 f/s的條件下進行測試,畫質(zhì)清晰流暢,能達到較好的監(jiān)控效果。圖5為監(jiān)控端軟件中的船舶燃料信息。
    本文針對船舶管理中心對江面作業(yè)的雙燃料船的燃料管理需要,設(shè)計了一個船舶燃料管理系統(tǒng),采用ARM實現(xiàn)了對雙燃料船的燃料使用情況和燃料安全狀態(tài)的采集。通過結(jié)合3G網(wǎng)絡(luò)和VPN技術(shù),解決了船舶中心與船舶遠距離通信的問題,并通過船舶端的視頻服務(wù)器實現(xiàn)了對船舶現(xiàn)場情況的監(jiān)控。測試表明,系統(tǒng)穩(wěn)定可靠,達到了預期效果。本系統(tǒng)還可以在集成度和功能擴展方面做進一步的改進與提升。
參考文獻
[1] 王勇,張浩,彭道剛,等.ARM平臺在多功能數(shù)據(jù)采集系統(tǒng)中的設(shè)計與實現(xiàn)[J].自動化儀表,2010,31(1):13-16.
[2] 張華,吳欣,王大星.基于ARM7的SD卡讀寫控制在數(shù)據(jù)采集系統(tǒng)中的應用[J].電子技術(shù)應用,2009,35(7):38-41.
[3] 張芳,許學忠,梁建斌,等.基于ARM的嵌入式直升機目標識別系統(tǒng)[J].電子技術(shù)應用,2009,35(4):31-32.
[4] 李建文,章堅武.基于CDMA2000-VPDN的視頻監(jiān)控系統(tǒng)設(shè)計[J].單片機與嵌入式系統(tǒng)應用,2011(8):62-65.
[5] 賀青,李鵬飛.基于Qt的電腦橫機上位機的設(shè)計[J].微型機與應用,2012,31(19):16-19.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。