《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于ARM和3G的船舶燃料管理系統(tǒng)設(shè)計(jì)
基于ARM和3G的船舶燃料管理系統(tǒng)設(shè)計(jì)
來(lái)源:電子技術(shù)應(yīng)用2013年第10期
程 行1,岳 銳2,金曉龍3
1.中國(guó)地質(zhì)大學(xué)(武漢) 機(jī)械與電子信息學(xué)院,湖北 武漢430074; 2.湖北省電子科學(xué)研究所有限公司,湖北 武漢430061; 3.武漢市城市路橋收費(fèi)管理中心,湖北 武漢430050
摘要: 針對(duì)船舶管理中心對(duì)江面作業(yè)的雙燃料船舶的燃料監(jiān)管需要,設(shè)計(jì)了一個(gè)基于ARM和3G網(wǎng)絡(luò)的船舶燃料管理系統(tǒng)。結(jié)合3G網(wǎng)絡(luò)和VPN技術(shù),解決了船舶管理中心與船舶遠(yuǎn)距離通信的問(wèn)題;利用ARM的串口和GPIO口,實(shí)現(xiàn)了對(duì)船舶燃料使用信息和異常報(bào)警狀態(tài)的采集;通過(guò)將船舶端的網(wǎng)絡(luò)硬盤錄像機(jī)作為視頻服務(wù)器,管理中心可以對(duì)船舶現(xiàn)場(chǎng)進(jìn)行實(shí)時(shí)監(jiān)控。測(cè)試結(jié)果表明,系統(tǒng)性能穩(wěn)定可靠、實(shí)時(shí)性良好。
中圖分類號(hào): TP319
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 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é)能減排是當(dāng)今的一個(gè)熱點(diǎn),LNG(液化天然氣)由于其高效節(jié)能、污染小的特點(diǎn)越來(lái)越受到重視。許多船舶廠開(kāi)始將傳統(tǒng)的柴油船改造成柴油和LNG雙燃料船。為了更好地對(duì)雙燃料船進(jìn)行燃料管理,特別是當(dāng)需要分析雙燃料船的節(jié)能比以及了解船舶的燃料安全狀態(tài)時(shí),就需要對(duì)船舶的燃料使用情況和安全狀態(tài)進(jìn)行及時(shí)的獲取和監(jiān)控。

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

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

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

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

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

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

 

 

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

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