以太網(wǎng)、CAN總線技術(shù)作為一種較為成熟的技術(shù),取得了越來越廣泛的應(yīng)用。在某型艦炮控制系統(tǒng)研制中,為了貫徹三化要求,對控制系統(tǒng)按照功能進(jìn)行模塊化劃分。在此思想的指導(dǎo)下,設(shè)計了以CAN-以太網(wǎng)網(wǎng)橋模塊、伺服控制模塊、監(jiān)控模塊、人機接口模塊等核心功能模塊為主的控制系統(tǒng),控制系統(tǒng)內(nèi)部采用CAN總線進(jìn)行通訊,系統(tǒng)對外接口采用以太網(wǎng)進(jìn)行數(shù)據(jù)通訊。該控制系統(tǒng)網(wǎng)絡(luò)功能框圖見圖1。
圖1 控制系統(tǒng)網(wǎng)絡(luò)功能框圖
由圖1可知CAN-以太網(wǎng)網(wǎng)橋的功能為該艦炮控制系統(tǒng)的中樞,武器系統(tǒng)的指令通過該模塊接收然后發(fā)送到控制系統(tǒng)內(nèi)部的各個功能模塊,再由各個模塊控制被控對象完成相應(yīng)的動作,控制系統(tǒng)內(nèi)部的狀態(tài)信息通過該模塊上傳到以太網(wǎng)總線。該控制系統(tǒng)在執(zhí)行一次作戰(zhàn)任務(wù)時,如果該網(wǎng)橋出現(xiàn)故障或外部線纜出現(xiàn)故障造成不能通訊,則將導(dǎo)致整個系統(tǒng)癱瘓,無法完成作戰(zhàn)任務(wù)。
在實際的網(wǎng)絡(luò)系統(tǒng)中,有許多原因可能導(dǎo)致傳輸通道中斷,比如網(wǎng)絡(luò)堵塞、網(wǎng)線斷開、網(wǎng)絡(luò)接口連接器松動、網(wǎng)絡(luò)接口硬件電路故障等,造成網(wǎng)絡(luò)實時性和可靠性降低甚至網(wǎng)絡(luò)不能工作。然而,系統(tǒng)對網(wǎng)絡(luò)的要求越來越高,除了滿足正常的數(shù)據(jù)通訊,還要求網(wǎng)絡(luò)有較高的容錯率,而雙網(wǎng)冗余就是提高網(wǎng)絡(luò)可靠性的有效手段之一。
本網(wǎng)橋連接對象為以太網(wǎng)、CAN總線,所以,下面分別對兩者的故障檢測及冗余切換機制進(jìn)行分析。
1 以太網(wǎng)冗余切換機制
冗余切換工作的第一步是故障檢測及判斷,第二步是完成網(wǎng)絡(luò)切換。
故障檢測的判具主要是對網(wǎng)卡的鏈路狀態(tài)檢測,即與網(wǎng)卡相連的網(wǎng)絡(luò)鏈路是否發(fā)生了故障。根據(jù)以太網(wǎng)控制器內(nèi)部的狀態(tài)寄存器中LINKFAIL位的狀態(tài),來進(jìn)行判斷。當(dāng)DSP接收到以太網(wǎng)控制器的中斷信號后,通過讀取狀態(tài)寄存器的值來進(jìn)行判斷是何種類型中斷。如果是接收或發(fā)送中斷,則執(zhí)行相應(yīng)的處理程序,如果是網(wǎng)絡(luò)鏈路故障,則進(jìn)行網(wǎng)絡(luò)切換工作。
故障檢測的實現(xiàn)手段有兩種方式:查詢法、中斷法,由于查詢法為純軟件手段,且需要關(guān)中斷、開中斷,網(wǎng)絡(luò)有可能造成數(shù)據(jù)丟失,以及故障恢復(fù)時間長,所以本文采用中斷法進(jìn)行故障檢測。中斷法檢測無丟包現(xiàn)象,且故障能迅速恢復(fù)。
網(wǎng)絡(luò)冗余分冷切換機制、熱切換機制,本文采用熱切換機制。它對容易出錯的硬件設(shè)備進(jìn)行冗余備份,當(dāng)其中一個設(shè)備由于某種原因不能正常工作時,另一個設(shè)備馬上就可以代替這個設(shè)備完成相同的功能。
網(wǎng)絡(luò)節(jié)點設(shè)備采用冗余雙網(wǎng)卡熱切換技術(shù),就是設(shè)備具有兩個網(wǎng)絡(luò)適配器并行工作,作為系統(tǒng)與外界進(jìn)行數(shù)據(jù)傳輸?shù)耐ǖ?,?dāng)其中主通道被切斷或出現(xiàn)故障時,系統(tǒng)可以檢測到錯誤,并迅速切換到另一個網(wǎng)絡(luò)適配器上,并將從通道置為主通道。兩個網(wǎng)絡(luò)適配器使用同一個IP地址,對于外部設(shè)備同本設(shè)備已經(jīng)建立起來的TCP/IP連接,切換網(wǎng)絡(luò)適配器能夠迅速恢復(fù)連接。
2 CAN總線故障檢測及切換機制
假定總線上有兩個功能相同的CAN節(jié)點:CANA、CANB,兩者互為備份。兩者上電初始化完成以后,CANA、CANB分別向總線上發(fā)送一個詢問幀,若應(yīng)答超時,則認(rèn)為其本身是主機,若在規(guī)定的時間內(nèi)收到對應(yīng)詢問幀的應(yīng)答幀,可判斷出對方是主機,該CAN節(jié)點自動設(shè)置為從機。
若CANA、CANB同時上電,可能會同時發(fā)送詢問幀。根據(jù)CAN總線仲裁協(xié)議,其中1個節(jié)點先獲得CAN總線的使用權(quán),使它的詢問幀發(fā)送成功。沒有獲得CAN總線使用權(quán)的節(jié)點在收到對方的詢問幀后不馬上重發(fā)詢問幀,而是采取退避方法,延時一段時間,使對方產(chǎn)生應(yīng)答超時。
故障檢測機制為:在工作過程中,若從機在規(guī)定的時間間隔內(nèi)沒有收到主機的信息或者收到主機報告自己出錯的信息,就作為主機故障的判具。
其切換機制基本與開機上電類似,從機檢測到主機故障后,把自身置為主機。
雙網(wǎng)冗余在不同的系統(tǒng)中有不同的實現(xiàn)方式,本文采用熱切換機制,對模塊實行雙冗余備份。方案一是采用雙網(wǎng)橋配合一個切換模塊實現(xiàn)冗余,方案二采用一個處理器控制兩個以太網(wǎng)控制器、兩個CAN控制器實現(xiàn)。也可在此基礎(chǔ)上稍加改變可采用一個處理器(本文采用DSP)控制、一個以太網(wǎng)控制器、一個CAN控制器、兩個以太網(wǎng)物理層、兩個CAN總線收發(fā)器來實現(xiàn)。
1 雙網(wǎng)橋方案
圖2 雙網(wǎng)+切換模塊方案框圖
雙網(wǎng)橋方案是指在系統(tǒng)中用兩個CAN-以太網(wǎng)網(wǎng)橋,網(wǎng)橋之間通過切換模塊連接,兩個以太網(wǎng)接口共用一個IP地址,工作時,只有一個網(wǎng)橋工作,另一個網(wǎng)橋作為備份。當(dāng)網(wǎng)橋A不能正常通訊時,由切換模塊切換到網(wǎng)橋B進(jìn)行通訊,網(wǎng)橋A停止工作。
系統(tǒng)上電后,首先根據(jù)CAN總線的仲裁協(xié)議完成主網(wǎng)橋的設(shè)置,使主網(wǎng)橋處于正常工作狀態(tài),從網(wǎng)橋處于備用狀態(tài)。當(dāng)主網(wǎng)橋DSP芯片檢測到網(wǎng)絡(luò)故障或CAN總線故障時,發(fā)出切換指令,使從機投人正常運行狀態(tài),接管對網(wǎng)絡(luò)和CAN總線的控制。采用這種冗余技術(shù)以后,系統(tǒng)的可靠性大大提高,但也存在一些不足之處:
⑴需要設(shè)計專門的切換模塊,切換模塊可能會引入新的故障點,該模塊出現(xiàn)任何故障均可導(dǎo)致整個切換工作失敗;
⑵在主網(wǎng)橋發(fā)生故障時,不便于實現(xiàn)無擾切換,在切換過程當(dāng)中,可能會丟失數(shù)據(jù);
⑶如果主網(wǎng)橋中的以太網(wǎng)控制器或CAN控制器任一個出現(xiàn)故障,即要將從網(wǎng)橋投入工作,主網(wǎng)橋停止同作。
2 單板雙冗余網(wǎng)橋方案
圖3 單處理器+CPLD+雙網(wǎng)雙CAN方案框圖
該方案將雙冗余網(wǎng)橋集成到一塊電路板上,由一個處理器、CPLD、雙以太網(wǎng)控制器、雙CAN控制器實現(xiàn)雙網(wǎng)橋冗余功能。
單處理器控制以太網(wǎng)控制器A、以太網(wǎng)控制器B、CAN控制器A、CAN控制器B,DSP的數(shù)據(jù)總線和地址總線直接與以太網(wǎng)控制器、CAN控制器相連,控制總線通過CPLD與各自控制器的控制總線相連,以太網(wǎng)控制器的切換和CAN控制器的切換工作由CPLD實現(xiàn)。
兩個以太網(wǎng)接口共用一個IP地址,工作時,只有以太網(wǎng)控制器A工作,以太網(wǎng)控制器B作為備份。當(dāng)以太網(wǎng)控制器A不能正常通訊時,由DSP內(nèi)部程序發(fā)出指令,經(jīng)CPLD控制切換到以太網(wǎng)控制器B進(jìn)行通訊,以太網(wǎng)控制器A停止工作。DSP上電后自動將CAN控制器A設(shè)置為主控制器,CANB設(shè)置為從控制器,如果檢測到CANA故障,則程序自動將CANB設(shè)置為主控制器。
如果出現(xiàn)故障時, DSP內(nèi)部程序在發(fā)送報文里加入相應(yīng)的故障指示,同時以指示燈閃爍的形式進(jìn)行故障提示。
該方案與雙網(wǎng)橋方案相比較,有以下優(yōu)點:
CAN-以太網(wǎng)網(wǎng)橋作為系統(tǒng)中的核心部件,對可靠性有很高的要求。如果該網(wǎng)橋出現(xiàn)故障,整個系統(tǒng)將處于癱瘓狀態(tài),這對于系統(tǒng)來說是災(zāi)難性的。
在充分借鑒吸收成熟先進(jìn)的計算機技術(shù)基礎(chǔ)上,著重提高系統(tǒng)的可靠性,進(jìn)行模塊化設(shè)計。本文提出了兩種網(wǎng)橋冗余方案,其中雙網(wǎng)橋方案已經(jīng)在某型艦炮控制系統(tǒng)原理樣機上經(jīng)過試驗,試驗結(jié)果表明,雙網(wǎng)橋冗余功能工作正常,可實現(xiàn)雙網(wǎng)冗余功能,大大提高了系統(tǒng)的可靠性。
該研究成果對提高網(wǎng)絡(luò)、總線容錯,滿足特殊環(huán)境下高可靠性要求是非常有意義的,因此具有廣泛的應(yīng)用前景和較大的推廣價值。
(編自《電氣技術(shù)》,作者為謝戰(zhàn)洪。)