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