齊英凱,何潤(rùn)添,初秀民,徐海潮
(1.武漢理工大學(xué)交通學(xué)院,湖北武漢 430063;2.武漢理工大學(xué)智能交通系統(tǒng)研究中心,湖北武漢 430063)
近年來(lái),國(guó)家對(duì)內(nèi)河航運(yùn)高度重視,大力發(fā)展內(nèi)河智能航運(yùn)的技術(shù)。其中,在航船舶與貨物狀態(tài)感知與集成是內(nèi)河智能航運(yùn)的重要基礎(chǔ)。盡管我國(guó)內(nèi)河營(yíng)運(yùn)船舶正在朝著標(biāo)準(zhǔn)化和高速化邁進(jìn),然而老舊船舶、中小船舶所占比重依然偏高,存在諸多安全隱患,為船舶運(yùn)行與貨物狀態(tài)信息的集成帶來(lái)了挑戰(zhàn)。加之船舶運(yùn)行與貨物信息具有多態(tài)異構(gòu)的特點(diǎn),包括船舶航行信息:船位、航速、航向、艏向、風(fēng)速、風(fēng)向、回聲測(cè)深等20余種數(shù)據(jù)。機(jī)艙設(shè)備狀態(tài)信息:主機(jī)系統(tǒng)、燃油系統(tǒng)、滑油系統(tǒng)、冷卻水系統(tǒng)、排氣系統(tǒng)、空氣系統(tǒng)、鍋爐系統(tǒng)和輔機(jī)系統(tǒng)等8大類(lèi)400多個(gè)數(shù)據(jù)。貨物狀態(tài)信息包括:貨物溫度、濕度、壓力、進(jìn)水等信息。如何在現(xiàn)有內(nèi)河船舶上實(shí)現(xiàn)上述信息的集成、構(gòu)建船舶信息網(wǎng)絡(luò)是內(nèi)河智能航運(yùn)面臨的亟需解決的問(wèn)題。
目前船舶機(jī)艙設(shè)備應(yīng)用較多的現(xiàn)場(chǎng)總線(xiàn)為CAN總線(xiàn)。CAN協(xié)議通信網(wǎng)絡(luò)是一種由CAN控制器組成的高性能串行數(shù)據(jù)通信網(wǎng)絡(luò),是當(dāng)前國(guó)際上應(yīng)用最為廣泛的現(xiàn)場(chǎng)總線(xiàn)之一。以太網(wǎng)則是當(dāng)前互聯(lián)網(wǎng)時(shí)代信息交互平臺(tái)的傳輸媒體,也是TCP/IP使用最普遍的物理網(wǎng)絡(luò)。隨著航運(yùn)管理與船舶自動(dòng)化及信息化的發(fā)展,以太網(wǎng)越來(lái)越多地應(yīng)用于船舶信息交互現(xiàn)場(chǎng),將船舶駕駛、機(jī)艙控制、貨物狀態(tài)等信息在局域網(wǎng)甚至廣域網(wǎng)進(jìn)行數(shù)據(jù)共享,從而可實(shí)現(xiàn)通過(guò)WEB方式瀏覽甚至遠(yuǎn)程訪(fǎng)問(wèn)船舶設(shè)備運(yùn)行狀態(tài)數(shù)據(jù)庫(kù)及遠(yuǎn)程控制,以確保船舶設(shè)備的各子系統(tǒng)能夠協(xié)調(diào)、安全、可靠、長(zhǎng)時(shí)間地運(yùn)行。從船舶機(jī)艙控制設(shè)備的實(shí)際應(yīng)用情況來(lái)看,連接各種船舶現(xiàn)場(chǎng)總線(xiàn)和以太網(wǎng)的網(wǎng)關(guān)將成為今后船舶信息網(wǎng)絡(luò)技術(shù)研究的重點(diǎn)[1]。因此,針對(duì)內(nèi)河船舶自動(dòng)化與信息化程度低、數(shù)據(jù)多源異構(gòu)特點(diǎn),開(kāi)發(fā)低成本內(nèi)河船舶專(zhuān)用網(wǎng)關(guān)具有應(yīng)用價(jià)值。本文將采用嵌入式技術(shù)設(shè)計(jì)一種適合于內(nèi)河船舶使用的經(jīng)濟(jì)型網(wǎng)關(guān)系統(tǒng),將CAN總線(xiàn)與以太網(wǎng)之間形成物理層與數(shù)據(jù)鏈路層對(duì)接,將現(xiàn)場(chǎng)總線(xiàn)上的底層數(shù)據(jù)與Internet的數(shù)據(jù)形成信息交互。由于CAN總線(xiàn)與以太網(wǎng)兩者的物理接口及通信協(xié)議不一致,無(wú)法實(shí)現(xiàn)簡(jiǎn)單相連,因此在設(shè)計(jì)開(kāi)發(fā)上述的網(wǎng)關(guān)需要完成的2個(gè)任務(wù):①物理層的接口連接;②數(shù)據(jù)鏈路層的協(xié)議轉(zhuǎn)換。
基于CAN總線(xiàn)與以太網(wǎng)的船舶信息網(wǎng)絡(luò)架構(gòu)如圖1所示,由CAN總線(xiàn)現(xiàn)場(chǎng)總線(xiàn)構(gòu)建的設(shè)備網(wǎng)絡(luò),由以太網(wǎng)構(gòu)建上層廣域信息網(wǎng),通過(guò)嵌入式網(wǎng)關(guān)系統(tǒng)實(shí)現(xiàn)兩者的有機(jī)無(wú)縫通信,進(jìn)而為中小型船舶的現(xiàn)場(chǎng)設(shè)備信息采集通信及控制提供必要的平臺(tái)支持。CAN與以太網(wǎng)協(xié)議轉(zhuǎn)換的嵌入式網(wǎng)關(guān)功能是實(shí)現(xiàn)CAN協(xié)議格式的總線(xiàn)數(shù)據(jù)與以太網(wǎng)協(xié)議格式的相互傳輸,與以太網(wǎng)網(wǎng)絡(luò)及現(xiàn)場(chǎng)CAN通信節(jié)點(diǎn)構(gòu)成通信采集及控制體系。以太網(wǎng)信息管理終端與CAN總線(xiàn)上的CAN節(jié)點(diǎn)設(shè)備通過(guò)Ethernet、協(xié)議轉(zhuǎn)換系統(tǒng)、CAN Bus相互通信,其中嵌入式網(wǎng)關(guān)系統(tǒng)起到核心的異構(gòu)網(wǎng)絡(luò)的互連作用。
圖1 CAN總線(xiàn)與以太網(wǎng)的網(wǎng)絡(luò)信息架構(gòu)圖
嵌入式網(wǎng)關(guān)的整體示意圖如圖2所示,由微處理器、電源電路、時(shí)鐘電路、接口電路等組成。系統(tǒng)設(shè)計(jì)關(guān)鍵是將CAN現(xiàn)場(chǎng)總線(xiàn)設(shè)備網(wǎng)絡(luò)與以太網(wǎng)網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)交互,并實(shí)現(xiàn)CAN總線(xiàn)數(shù)據(jù)檢測(cè)和信息接入功能及以太網(wǎng)數(shù)據(jù)檢測(cè)及信息接入功能。系統(tǒng)的具體工作原理如下:上層管理網(wǎng)絡(luò)向現(xiàn)場(chǎng)設(shè)備發(fā)送信息指令時(shí),微控制器將接收到的數(shù)據(jù)由以太網(wǎng)協(xié)議格式進(jìn)行解析并重新封裝成標(biāo)準(zhǔn)的CAN總線(xiàn)通信協(xié)議格式,然后向現(xiàn)場(chǎng)測(cè)試設(shè)備終端發(fā)送,由此完成上層管理網(wǎng)絡(luò)對(duì)現(xiàn)場(chǎng)設(shè)備終端網(wǎng)絡(luò)的控制;底層設(shè)備終端網(wǎng)絡(luò)向上層管理網(wǎng)絡(luò)發(fā)送數(shù)據(jù)信息時(shí),微控制器將接收到的數(shù)據(jù)由CAN總線(xiàn)協(xié)議格式進(jìn)行解析并重新封裝成標(biāo)準(zhǔn)的TCP/IP協(xié)議,然后往以太網(wǎng)的監(jiān)控端發(fā)送[2]。由于以太網(wǎng)固有的優(yōu)勢(shì),因此底層的數(shù)據(jù)信息還支持互聯(lián)網(wǎng)絡(luò)的遠(yuǎn)程訪(fǎng)問(wèn)及共享。
圖2 嵌入式網(wǎng)關(guān)示意圖
系統(tǒng)的硬件設(shè)計(jì)主要包括電源設(shè)計(jì)、時(shí)鐘電路設(shè)計(jì)、CAN總線(xiàn)接口電路設(shè)計(jì)以及以太網(wǎng)接口電路設(shè)計(jì)。
嵌入式網(wǎng)關(guān)采用常用的直流12 V供電,在設(shè)計(jì)過(guò)程中采取兩級(jí)供電。微處理器采用3.3 V供電,采用AMS1117系列穩(wěn)壓芯片產(chǎn)生3.3 V電壓,為保證整體系統(tǒng)電源的穩(wěn)定性需要前級(jí)電路來(lái)調(diào)整;前級(jí)供電選用美國(guó)半導(dǎo)體公司的LM2576系列開(kāi)關(guān)電源芯片。LM2576系列開(kāi)關(guān)穩(wěn)定芯片內(nèi)部集成一個(gè)52 KHz的振蕩器,只須必要的容感就能形成高效的穩(wěn)壓電路,內(nèi)部有完善的保護(hù)電路。
雖然嵌入式網(wǎng)關(guān)選用的微處理器內(nèi)置有簡(jiǎn)單的RC振蕩器,但為了提高整體系統(tǒng)的性能,嵌入式網(wǎng)關(guān)的時(shí)鐘電路采用的是外部8 MHz有源晶振。該有源晶振有精度和溫度比較性能,內(nèi)置有諧振整形電路。該有源晶振能產(chǎn)生一個(gè)非常精確的頻率為系統(tǒng)提供原始的時(shí)鐘源,嵌入式網(wǎng)關(guān)以較低的外部時(shí)鐘信號(hào)獲得較高的工作頻率,以降低因高速開(kāi)關(guān)時(shí)鐘所造成的高頻噪聲。
CAN總線(xiàn)接口電路主要包括CAN控制器及CAN發(fā)收器兩部分。本系統(tǒng)設(shè)計(jì)中選用的SAJ1000作為CAN控制器來(lái)實(shí)現(xiàn)對(duì)外提供與微處理器的物理線(xiàn)路的接口;選用CA82C250作為CAN發(fā)收芯片,在不需要通信中斷節(jié)點(diǎn)的情況下,通訊節(jié)點(diǎn)數(shù)目可達(dá)110個(gè)。
SAJ1000為獨(dú)立的CAN協(xié)議控制器,芯片的AD0~AD7為地址數(shù)據(jù)復(fù)用線(xiàn),與微處理器的通信協(xié)議接口進(jìn)行相連;當(dāng)用戶(hù)通過(guò)遠(yuǎn)程服務(wù)器查詢(xún)現(xiàn)場(chǎng)CAN總線(xiàn)數(shù)據(jù)時(shí),SJA1000負(fù)責(zé)將現(xiàn)場(chǎng)數(shù)據(jù)解析并往微處理器發(fā)送,再傳到以太網(wǎng)[3-4]。
CAN控制器經(jīng)過(guò)RX和TX引腳的信號(hào)分別經(jīng)過(guò)2個(gè)光耦隔離器6N137的OUT引腳和IN引腳,然后分別與PCA82C250的TXD和RXD相連,以此連接到PC82C250的內(nèi)部收發(fā)器;CAN收發(fā)器通過(guò)有差動(dòng)發(fā)送和接收功能的2個(gè)總線(xiàn)終端CANH和CANL連接到總線(xiàn)電纜。
在CANH輸出端與地之間接入一個(gè)肖特基二極管用以防止過(guò)高的電壓來(lái)保護(hù)芯片;CANH和CANL與地之間分別串聯(lián)30 pF的陶瓷電容,對(duì)于濾除總線(xiàn)上的高頻干擾及信號(hào)噪聲有明顯效果。
以太網(wǎng)控接口電路主要由以太網(wǎng)控制器RTL8019AS和隔離變壓器 20F001組成。RTL8019AS是一款高集成、能夠?qū)崿F(xiàn)Ethernet協(xié)議的MAC層的以太網(wǎng)控制芯片,內(nèi)置16KB的SRAM、雙DMA通道和FIFO完成數(shù)據(jù)包的接收和發(fā)送功能。RTL8019有以下3種工作模式:跳線(xiàn)方式、即插即用方式和免跳線(xiàn)方式,后2種工作方式一般用于PC機(jī),在本系統(tǒng)設(shè)計(jì)中由于使用微處理器代替了PC機(jī)的功能,因此使用跳線(xiàn)方式顯得更加簡(jiǎn)單方便[5-6]。
在電路設(shè)計(jì)中,將RTL8019AS數(shù)據(jù)線(xiàn)與微處理器的PB0~PB7相連,其它口作為保留,為后期二次開(kāi)發(fā)作預(yù)留接口。系統(tǒng)配置過(guò)程中需要存儲(chǔ)的網(wǎng)關(guān)IP地址、MAC地址和SJA1000的ID網(wǎng)絡(luò)標(biāo)示符、網(wǎng)絡(luò)掩碼等數(shù)據(jù),通過(guò)總線(xiàn)形式存儲(chǔ)到微處理器的片內(nèi)Flash空間內(nèi),如此,能夠靈活方便地修改有關(guān)參數(shù),適應(yīng)不同的應(yīng)用環(huán)境及方便后期二次開(kāi)發(fā)。
在系統(tǒng)軟件設(shè)計(jì)中,CAN協(xié)議與以太網(wǎng)協(xié)議間的信息流轉(zhuǎn)換設(shè)計(jì)為透明式的數(shù)據(jù)轉(zhuǎn)換,其模型結(jié)構(gòu)如圖3所示。
系統(tǒng)的軟件流程圖如圖4所示。系統(tǒng)上電之后,程序開(kāi)始對(duì)各功能模塊進(jìn)行相應(yīng)的初始化,由此完成系統(tǒng)的整體配置。在此過(guò)程中,完成處理器的配置、IO端口的配置、功能模塊時(shí)鐘的配置、波特率的設(shè)置等??赏ㄟ^(guò)硬件方式和軟件方式對(duì)系統(tǒng)進(jìn)行相應(yīng)的配置,系統(tǒng)配置成功之后,進(jìn)入循環(huán)等待接收數(shù)據(jù)幀,如果收到符合標(biāo)準(zhǔn)的數(shù)據(jù)幀則進(jìn)入相應(yīng)的中斷處理程序,完成數(shù)據(jù)的傳遞。不同協(xié)議之間的數(shù)據(jù)傳輸主要是由微處理器的接收與發(fā)送中斷處理程序完成,各總線(xiàn)協(xié)議的實(shí)現(xiàn)分別是由對(duì)應(yīng)的功能模塊完成,微處理器的中斷處理程序?qū)l(fā)送緩沖區(qū)中等待處理的數(shù)據(jù)幀發(fā)送到協(xié)議總線(xiàn)上,同時(shí)將從協(xié)議總線(xiàn)上接到的數(shù)據(jù)幀存在接收緩沖區(qū)里等待相應(yīng)的程序處理。
圖3 系統(tǒng)軟件設(shè)計(jì)結(jié)構(gòu)模型圖
圖4 軟件設(shè)計(jì)流程圖
當(dāng)整體系統(tǒng)設(shè)計(jì)完成后,必須經(jīng)過(guò)完整的測(cè)試才能保證系統(tǒng)按照設(shè)計(jì)目的進(jìn)行正常工作。在進(jìn)行系統(tǒng)整體功能測(cè)試時(shí),以功能模塊為基本單元,循序漸進(jìn)的對(duì)整個(gè)系統(tǒng)進(jìn)行調(diào)試與測(cè)試。首先加載協(xié)議轉(zhuǎn)換系統(tǒng)程序,包括系統(tǒng)參數(shù)的配置及以太網(wǎng)上位機(jī)客戶(hù)端程序,運(yùn)行服務(wù)器程序和客戶(hù)端程序,然后就可以檢測(cè)以太網(wǎng)與協(xié)議轉(zhuǎn)換系統(tǒng)是否連通。設(shè)置好相應(yīng)的網(wǎng)關(guān)IP地址子網(wǎng)掩碼,通過(guò)使用局域網(wǎng)ping命令測(cè)試系統(tǒng)是否連通,每次系統(tǒng)發(fā)送4個(gè)隨機(jī)產(chǎn)生的ICMP數(shù)據(jù)包,協(xié)議轉(zhuǎn)換系統(tǒng)應(yīng)答4個(gè)ICMP數(shù)據(jù)包,嵌入式網(wǎng)關(guān)對(duì)其CAN控制的一個(gè)發(fā)送緩沖區(qū)里進(jìn)行數(shù)據(jù)的寫(xiě)入操作,“This is a test!”,測(cè)試效果如圖5所示,結(jié)果正確。
圖5 CAN→Ethernet數(shù)據(jù)通信測(cè)試
為了進(jìn)一步驗(yàn)證嵌入式網(wǎng)關(guān)的性能,選用具有CAN接口AIS-B級(jí)船臺(tái)在武漢長(zhǎng)江二橋附近進(jìn)行實(shí)船測(cè)試,通過(guò)AIS接收機(jī)的數(shù)據(jù)通過(guò)網(wǎng)關(guān),可以準(zhǔn)確地顯示在電子江圖顯示系統(tǒng)中。
本文針對(duì)由現(xiàn)場(chǎng)總線(xiàn)構(gòu)成的船舶現(xiàn)場(chǎng)終端設(shè)備網(wǎng)絡(luò)和由以太網(wǎng)構(gòu)成的上層信息管理網(wǎng)絡(luò)之間的數(shù)據(jù)難以有效共享這一問(wèn)題,從現(xiàn)實(shí)需求出發(fā),結(jié)合CAN總線(xiàn)和以太網(wǎng)技術(shù)的優(yōu)勢(shì)特點(diǎn),采用意法半導(dǎo)體公司的微處理器,以功能模塊組合,設(shè)計(jì)了嵌入式網(wǎng)關(guān)系統(tǒng)實(shí)現(xiàn)CAN總線(xiàn)與以太網(wǎng)的數(shù)據(jù)傳輸,提高內(nèi)河船舶機(jī)艙設(shè)備與貨物狀態(tài)信息的集成能力。在后續(xù)的開(kāi)發(fā)中,將完善系統(tǒng),規(guī)范嵌入式網(wǎng)關(guān)的輸入、輸出結(jié)構(gòu),并進(jìn)行可靠性測(cè)試使其產(chǎn)品化。
[1]趙亞冰.港口海域船舶安全管理研究 [J].中國(guó)水運(yùn),2010(3).
[2]關(guān)騰飛.基于船舶安全航行的研究 [J].中國(guó)海事,2010(7).
[3]宋雪良.基于CAN總線(xiàn)局域網(wǎng)與以太網(wǎng)互連技術(shù)研究[D].哈爾濱工程大學(xué)碩士論文,2005.
[4]趙潔,茅云升.基于CAN總線(xiàn)的船舶配電監(jiān)測(cè)系統(tǒng)研究 [J].船海工程,2011(4).
[5]周立功.ARM嵌入式系統(tǒng)基礎(chǔ)教程 [M].北京:北京航天航空大學(xué)出版社,2005.
[6]胥靜.嵌入式系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)實(shí)例詳解基于ARM的應(yīng)用 [M].北京:北京航空航天大學(xué)出版社,2005.
[7]吳團(tuán)結(jié).基于CAN總線(xiàn)技術(shù)的艦船動(dòng)力系統(tǒng)綜合控制[J].中國(guó)艦船研究,2006(2).
[8]吳化柱,喬毅,欒美艷,等.LabVIEW 在現(xiàn)場(chǎng)總線(xiàn)控制系統(tǒng)的應(yīng)用研究 [J].儀表技術(shù)與傳感器,2005(4).