王海平
【摘要】 為提高CAN總線網(wǎng)絡(luò)在船舶通信導(dǎo)航集成系統(tǒng)中的可靠性,本篇專項技術(shù)報告分析了基于32位的ARM控制器(STM32F105VC)和隔離驅(qū)動器ADM3053的雙冗余CAN總線通信設(shè)計方案。
【關(guān)鍵詞】 CAN總線船舶通信雙冗余
一、雙冗余CAN總線的硬件設(shè)計
在CAN總線網(wǎng)絡(luò)的硬件方案中,包括32位的ARM控制器(STM32F105VC)、CAN總線隔離驅(qū)動器(ADM3053)和CAN總線傳輸接口電路。
1、系統(tǒng)冗余設(shè)計。針對硬件電路設(shè)計,原理上包括局部冗余和系統(tǒng)冗余。局部冗余設(shè)計一般只實現(xiàn)了物理傳輸介質(zhì)和物理層協(xié)議的冗余。而系統(tǒng)冗余方案從物理傳輸介質(zhì)和CAN總線通信的物理層、數(shù)據(jù)鏈路層及應(yīng)用層都進(jìn)行了系統(tǒng)冗余,因而全面提高了船舶通信集成系統(tǒng)的實時性和可靠性。另一方面,系統(tǒng)冗余不需要故障檢測、故障判斷及附加的冗余部分切換電路。本篇技術(shù)分析報告設(shè)計了雙冗余CAN總線通信硬件電路方案,其原理框圖如圖1所示。
2、硬件電路冗余設(shè)計。硬件原理方案中,采用32位的ARM控制器(STM32F105VC)。由于STM32F105VC芯片內(nèi)部集成了兩個和CAN2.OB標(biāo)準(zhǔn)兼容的CAN總線模塊,支持CAN協(xié)議的CAN2.OA、CAN2.OB的主動和被動版本,這些突出的特點使得STM32F105VC非常適合雙冗余CAN總線通信系統(tǒng)的硬件設(shè)計。另外選用CAN總線隔離驅(qū)動器(ADM3053)作為總線的驅(qū)動單元,對CAN的傳輸總線提供差動驅(qū)動功能。
3、硬件電路可靠性設(shè)計。ADM3053可以提供電源和信號雙隔離功能。該器件采用3.3 V或5V的單電源在VDD1引腳供電,總線側(cè)僅在VDD2采用5v單電源??偩€側(cè)(VDD2)的功率損耗可以采用集成VDD2SENSE信號通過微控制器檢測。同時,該驅(qū)動器在總線引腳集成了+/-36V的故障保護(hù)CANH和CANL,可以防止12V和24V系統(tǒng)中電源/接地的短路。該器件還具有限流和熱關(guān)斷特性,可防止發(fā)生輸出短路以及總線短接至地或電源引腳的情況。
二、雙冗余CAN總線通信系統(tǒng)軟件協(xié)議設(shè)計
1、船舶通信系統(tǒng)中CAN總線應(yīng)用層協(xié)議。在船舶通信系統(tǒng)中,研發(fā)人員可依據(jù)IEC61162標(biāo)準(zhǔn)的要求,定義CAN總線通信的應(yīng)用層協(xié)議。其設(shè)備數(shù)量因船舶噸位不同有所區(qū)別,總數(shù)量一般在20左右。所以系統(tǒng)中選擇了Basic:CAN的幀格式,標(biāo)識碼是靜態(tài)分配的,采用11位報文標(biāo)識碼,信息標(biāo)識符結(jié)構(gòu)如:數(shù)據(jù)輸出設(shè)備編號、數(shù)據(jù)類型、數(shù)據(jù)接受設(shè)備編號。
2、應(yīng)用層協(xié)議通信的格式。應(yīng)用層通信協(xié)議是通過應(yīng)用層信息幀在CAN總線物理鏈路中的數(shù)據(jù)傳輸來實現(xiàn)的。應(yīng)用層協(xié)議將各信息幀解析之后,傳輸給用戶應(yīng)用程序顯示界面使用;同時,用戶程序通過應(yīng)用層協(xié)議將需要發(fā)送的信息進(jìn)行封裝,然后發(fā)送給CAN總線網(wǎng)絡(luò)中的接收設(shè)備。
3、雙冗余CAN總線通信流程。在雙冗余CAN總線系統(tǒng)中,對于冗余設(shè)計的兩路CAN總線要求內(nèi)部寄存器的參數(shù)設(shè)置,如通信波特率、濾波器必須統(tǒng)一,保障冗余電路的一致性;同時,要注意雙路中的初始化程序、報文發(fā)送程序、報文接收程序的切換。雙冗余CAN總線是同時工作的。一旦某節(jié)點中的CANH、CANL斷開或只有一個發(fā)送鏈路在總線上,將會造成STM32F105VC中發(fā)送/接收錯誤計數(shù)器不斷增加到128,從而觸發(fā)節(jié)點處于忽略錯誤態(tài),并啟動糾錯程序。通過以上設(shè)計,雙冗余CAN總線網(wǎng)絡(luò)在物理層、數(shù)據(jù)鏈路層和應(yīng)用層都獲得了冗余,全面提高船舶通信系統(tǒng)的可靠性。
4、雙冗余CAN總線中容錯糾錯機制。為防止系統(tǒng)中數(shù)據(jù)漏包和誤包等情況的出現(xiàn),造成系統(tǒng)檢測信息誤操作,我們在系統(tǒng)中設(shè)計了節(jié)點應(yīng)答機制,對于檢測到得錯包和漏包,在總線空閑時發(fā)送請求,要求重發(fā),從而提高系統(tǒng)的容錯能力。另外,為防止CAN總線應(yīng)數(shù)據(jù)沖突等原因造成總線死鎖,在系統(tǒng)設(shè)計了錯誤檢測重啟機制,從而達(dá)到糾錯的目的。
三、結(jié)論
為了保障船舶在遠(yuǎn)洋航行中的通信導(dǎo)航系統(tǒng)可靠性,本技術(shù)報告論述了基于雙冗余CAN總線網(wǎng)絡(luò)原理及優(yōu)勢,并研發(fā)了基于STM32F105VC和ADM3053的CAN總線應(yīng)用層協(xié)議,編制了相應(yīng)的通信程序和容錯糾錯程序,保障通信過程中的可靠性。