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