文獻標識碼: A
文章編號: 0258-7998(2013)10-0022-03
節(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)域有廣泛的應(yīng)用[1-3],。3G網(wǎng)絡(luò)由于其高帶寬和網(wǎng)絡(luò)接入靈活的特點,,越來越廣泛地應(yīng)用于工業(yè)數(shù)據(jù)傳輸中[4]。本文基于ARM嵌入式終端和3G傳輸網(wǎng)絡(luò),,設(shè)計了一個船舶燃料管理系統(tǒng),,并在新式雙燃料船上成功應(yī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口分別連接船舶上的火災(zāi),、燃油和LNG異常報警繼電器,通過GPIO口的電平狀態(tài)來判定報警繼電器的開關(guān)狀態(tài),,從而確定是否有報警被觸發(fā),。船舶端軟硬件架構(gòu)和硬件框圖分別如圖1和圖2所示。
將架設(shè)在船舶上的網(wǎng)絡(luò)硬盤錄像機作為視頻服務(wù)器,,采集并存儲船舶上攝像頭的視頻信息,,這樣,監(jiān)控中心就可以通過訪問視頻服務(wù)器來實時預(yù)覽或回放船舶端的現(xiàn)場視頻,。
3 系統(tǒng)軟件設(shè)計
船舶ARM終端需要完成的具體功能包括船舶的瞬時和累計柴油消耗量,、瞬時和累計LNG消耗量,、燃料和火災(zāi)的報警狀態(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)故障時會導(dǎo)致讀取線程卡死,。為了正確讀取數(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ù)包的相應(yīng)位置中進行打包。讀取LNG儀表串口的流程如圖3所示,。
3.2.2 讀取燃油儀表
燃油儀表采用Modbus通信協(xié)議進行通信,,通過讀取儀表的寄存器來獲得累計耗量和瞬時耗量。燃油儀表中的累計流量值和瞬時流量值存放在01~06共6個保持寄存器中,,Modbus協(xié)議相應(yīng)的讀取保持寄存器的命令格式如表2所示,。將2塊燃油儀表的地址設(shè)置成不同值進行區(qū)分。發(fā)送命令前將待發(fā)送的命令數(shù)據(jù)進行CRC運算,,將得出的2 B的CRC校驗碼加到發(fā)送命令的末尾一并發(fā)送出去,。儀表會對發(fā)送命令進行校驗并丟棄校驗有誤的命令。將儀表返回值進行CRC校驗以確定返回值的正確性,。最后將返回的累計耗量和瞬時耗量顯示到終端屏幕上并放入發(fā)送數(shù)據(jù)包的相應(yīng)位置中。讀取燃油儀表串口的流程與LNG儀表類似,。
3.3 讀取報警信息
報警線程通過讀取ARM終端3個GPIO口的狀態(tài)來判定報警繼電器的開關(guān)狀態(tài),,3個繼電器的開關(guān)狀態(tài)分別代表了燃油、火災(zāi),、LNG的告警狀態(tài),。
設(shè)計中將這3個GPIO口的操作接口編譯為一個驅(qū)動模塊,并在Linux系統(tǒng)啟動時將驅(qū)動模塊加載進內(nèi)核,,這樣就可以將這3個GPIO口當作一個設(shè)備來操作,。將GPIO口設(shè)置為CFG_IN方式,通過讀取GPIO口的pin值就可以判斷相應(yīng)繼電器的開合狀態(tài),。
正常狀態(tài)下,,繼電器處于斷開狀態(tài),,如果有告警發(fā)生,則相應(yīng)的繼電器會被觸發(fā)閉合,,對應(yīng)的GPIO口電平會被拉高,,pin值變?yōu)榉?。相應(yīng)的報警號會被置位并寫入發(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)境復(fù)雜,可能會對設(shè)備的正常運行造成影響,。為確保ARM終端設(shè)備始終處于運行狀態(tài),,系統(tǒng)利用終端S3C6410處理器內(nèi)部的看門狗對嵌入式終端的運行狀態(tài)進行檢測。通過軟件開啟看門狗并設(shè)置喂狗超時時間為15 s,,一旦看門狗在喂狗超時時間內(nèi)沒有收到喂狗信號,,就復(fù)位重啟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)定可靠,,達到了預(yù)期效果。本系統(tǒng)還可以在集成度和功能擴展方面做進一步的改進與提升,。
參考文獻
[1] 王勇,,張浩,彭道剛,,等.ARM平臺在多功能數(shù)據(jù)采集系統(tǒng)中的設(shè)計與實現(xiàn)[J].自動化儀表,,2010,31(1):13-16.
[2] 張華,,吳欣,,王大星.基于ARM7的SD卡讀寫控制在數(shù)據(jù)采集系統(tǒng)中的應(yīng)用[J].電子技術(shù)應(yīng)用,2009,,35(7):38-41.
[3] 張芳,,許學忠,梁建斌,,等.基于ARM的嵌入式直升機目標識別系統(tǒng)[J].電子技術(shù)應(yīng)用,2009,,35(4):31-32.
[4] 李建文,,章堅武.基于CDMA2000-VPDN的視頻監(jiān)控系統(tǒng)設(shè)計[J].單片機與嵌入式系統(tǒng)應(yīng)用,2011(8):62-65.
[5] 賀青,李鵬飛.基于Qt的電腦橫機上位機的設(shè)計[J].微型機與應(yīng)用,,2012,,31(19):16-19.