姚 英,田心宇
(1.西安郵電大學(xué) 電子工程學(xué)院,西安 710121;2.西北工業(yè)大學(xué)365所,西安 710065)
隨著航空技術(shù)和微電子技術(shù)的發(fā)展,要求新一代的無(wú)人飛行器需具有適應(yīng)不同設(shè)備快速掛接、快速處理的能力,航電系統(tǒng)也朝著綜合化、智能化、模塊化、標(biāo)準(zhǔn)化及系統(tǒng)化的方向發(fā)展。其系統(tǒng)結(jié)構(gòu)由聯(lián)合式、綜合式發(fā)展到了先進(jìn)綜合式,因此航電總線技術(shù)是新一代航空電子系統(tǒng)的研究目標(biāo)。
目前ARINC429和MIL-STD-1553B總線在航空領(lǐng)域使用最為廣泛。但是ARINC429總線是點(diǎn)對(duì)點(diǎn)傳輸,且速率較低,無(wú)法滿足無(wú)人機(jī)綜合化的要求;MIL-STD-1553B總線屬于指令/響應(yīng)式,速率高、抗干擾性強(qiáng)是目前使用非常廣泛的一種航空總線,但是由于成本較高,無(wú)法在無(wú)人機(jī)中推廣使用[1-3]。
CAN總線是德國(guó)Bosch公司開發(fā)的一種新型串行數(shù)據(jù)通信總線,其具有成本低廉、協(xié)議開放、實(shí)現(xiàn)簡(jiǎn)單、速率快、可同時(shí)掛接多個(gè)節(jié)點(diǎn)、抗干擾性強(qiáng)等諸多優(yōu)點(diǎn),使其具有極高的性價(jià)比,目前已成為中小型無(wú)人機(jī)航空電子總線的首選[4-5]。
CAN(控制器局域網(wǎng))總線是一種能有效支持分布式控制的串行總線,其通信速率最高可達(dá)1 Mb/s。CAN協(xié)議廢除了傳統(tǒng)的站地址編碼,只針對(duì)報(bào)文進(jìn)行編碼,使得網(wǎng)絡(luò)內(nèi)的節(jié)點(diǎn)數(shù)理論上不受任何限制。
CAN總線系統(tǒng)主要由CAN控制器、CAN收發(fā)器、CAN總線數(shù)據(jù)傳輸線和CAN總線終端電阻構(gòu)成。CAN控制器接收CPU送來(lái)的數(shù)據(jù),對(duì)這些數(shù)據(jù)處理后送給CAN收發(fā)器,CAN控制器同時(shí)接收CAN收發(fā)器傳來(lái)的數(shù)據(jù),對(duì)這些數(shù)據(jù)處理后送給CPU。
CAN數(shù)據(jù)總線是兩條雙向數(shù)據(jù)線,分為高位﹝CAN-H﹞和低位﹝CAN-L﹞數(shù)據(jù)線。CAN數(shù)據(jù)總線兩端通過(guò)終端電阻連接,終端電阻可以防止干擾。
CAN的報(bào)文標(biāo)識(shí)碼由11位或29位二進(jìn)制數(shù)組成,因此可以定義211或229個(gè)節(jié)點(diǎn),而且不同節(jié)點(diǎn)可同時(shí)接收同一數(shù)據(jù),這種方式非常契合分布式控制系統(tǒng)。
CAN總線采用多機(jī)工作方式,任意時(shí)刻網(wǎng)絡(luò)中任一節(jié)點(diǎn)均可送報(bào)文,可實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)、點(diǎn)對(duì)多點(diǎn)或廣播等多種傳輸方式。
CAN總線數(shù)據(jù)段長(zhǎng)度最多為8個(gè)字節(jié),在滿足控制領(lǐng)域一般要求的同時(shí)不會(huì)占用總線時(shí)間過(guò)長(zhǎng),從而保證了通信的實(shí)時(shí)性。每幀報(bào)文均具有循環(huán)冗余碼(CRC)校驗(yàn)及總線監(jiān)視、位填充、報(bào)文格式檢查等多種檢錯(cuò)措施,出錯(cuò)率低同時(shí)具有自動(dòng)關(guān)閉故障節(jié)點(diǎn)及出錯(cuò)幀自動(dòng)重發(fā)功能,可靠性高[6]。
CAN總線協(xié)議作為一種適用于航空電子設(shè)備之間進(jìn)行數(shù)據(jù)交換的通信接口協(xié)議,具有以下特點(diǎn):
1)成本低廉、結(jié)構(gòu)簡(jiǎn)單、實(shí)現(xiàn)方便、速率快、可同時(shí)掛接節(jié)點(diǎn)多(最多可達(dá)110個(gè))、抗干擾性強(qiáng);
2)其總線調(diào)度可以在一定的限制之內(nèi)變化,并支持節(jié)點(diǎn)的熱插拔;
3)完全開放,便于擴(kuò)展,允許用戶實(shí)現(xiàn)自定義的報(bào)文類型和協(xié)議;
以上優(yōu)點(diǎn)也使其作為一種小型飛行器通用總線標(biāo)準(zhǔn)進(jìn)行推廣成為可能。
由于CAN總線的獨(dú)特優(yōu)點(diǎn),西方眾多機(jī)構(gòu)已將其引入航空領(lǐng)域。例如:
1)Eurocopter公司的全天候救援直升機(jī)中導(dǎo)航系統(tǒng)、飛行狀態(tài)傳感器和飛行員控制單元之間就使用CAN總線進(jìn)行通訊。
2)Ae270商用和小型運(yùn)輸機(jī)中的航空艙系統(tǒng)(SAM)使用CAN總線作為其多個(gè)智能化的單元的通信方式。
3)Bombardier-Rotax公司V220/300T型航空發(fā)動(dòng)機(jī)就具有CAN總線接口。
4)NASA小飛機(jī)運(yùn)輸系統(tǒng)(SATS)就是用CAN總線進(jìn)行機(jī)載航空電子間的通信。
國(guó)內(nèi)對(duì)CAN總線也進(jìn)行了廣泛研究,并取得了引人注目的成果,目前CAN總線已經(jīng)成為了國(guó)內(nèi)軍、民用機(jī)載設(shè)備的常用接口之一,眾多航空貨架產(chǎn)品的接口均采用CAN總線接口。
下面以標(biāo)準(zhǔn)幀為例介紹CAN總線數(shù)據(jù)協(xié)議。
CAN總線協(xié)議幀分為起始位、仲裁域、控制位、數(shù)據(jù)域、CRC位、應(yīng)答位和結(jié)束位七部分構(gòu)成,其中數(shù)據(jù)域的長(zhǎng)度可以為0,其結(jié)構(gòu)如圖1所示。
圖1 CAN總線協(xié)議幀結(jié)構(gòu)示意圖
起始位它標(biāo)志幀的起始,由一個(gè)單獨(dú)的“1”構(gòu)成。
仲裁域包括標(biāo)識(shí)符(11位)和1位的遠(yuǎn)程發(fā)送請(qǐng)求位(RTR)構(gòu)成。
控制位由6位組成,包括數(shù)據(jù)長(zhǎng)度和兩位的保留位。
數(shù)據(jù)域即為發(fā)送的數(shù)據(jù),它由0~8個(gè)字節(jié)構(gòu)成。
CRC位由16位構(gòu)成,包括CRC序列和CRC界定符。
應(yīng)答位長(zhǎng)度為2位,包含應(yīng)答間隙和應(yīng)答界定符。
結(jié)束位長(zhǎng)度為7位,由7位“0”組成。
對(duì)小型飛行器來(lái)說(shuō)CAN總線網(wǎng)絡(luò)以其低廉的成本、高實(shí)時(shí)性等優(yōu)點(diǎn)常常作為其通訊網(wǎng)絡(luò)接口,該網(wǎng)絡(luò)通常將小型飛行器中的飛控計(jì)算機(jī)、任務(wù)設(shè)備、功能設(shè)備和伺服設(shè)備進(jìn)行組網(wǎng)通訊以完成飛行控制和導(dǎo)航、任務(wù)設(shè)備控制和功能設(shè)備控制等功能。其組成如圖2所示。
圖2 CAN總線網(wǎng)絡(luò)組成框圖
針對(duì)小型飛行器而言,常用CAN總線模型通常為主從結(jié)構(gòu)。即以飛控計(jì)算機(jī)為主節(jié)點(diǎn),其他設(shè)備為從節(jié)點(diǎn)。飛控計(jì)算機(jī)向各掛接在CAN總線上的任務(wù)設(shè)備、伺服設(shè)備、功能設(shè)備等發(fā)送控制指令和無(wú)人機(jī)的姿態(tài)、位置等信息,同時(shí)接收各設(shè)備的反饋數(shù)據(jù);各任務(wù)設(shè)備、伺服設(shè)備和功能設(shè)備接收飛控計(jì)算機(jī)發(fā)來(lái)的控制指令和無(wú)人機(jī)信息,執(zhí)行并向飛控計(jì)算機(jī)反饋狀態(tài)信息。CAN總線模型拓?fù)浣Y(jié)構(gòu)如圖3所示。
圖3 CAN總線模型拓?fù)浣Y(jié)構(gòu)圖
該CAN總線模型如圖4所示。
圖4 飛行器CAN總線模型
在該總線模型中飛控計(jì)算機(jī)定時(shí)向掛接在CAN總線上的各任務(wù)設(shè)備、伺服設(shè)備和功能設(shè)備發(fā)送控制幀,各設(shè)備向飛控計(jì)算機(jī)返回包含反饋數(shù)據(jù)的應(yīng)答幀。
由圖4可以看出,該飛行器中所有的電子設(shè)備均掛接在CAN總線上進(jìn)行通訊,所以CAN總線的可靠性高低直接決定了整個(gè)飛行器的安全,下面對(duì)CAN總線模型進(jìn)行分析。
圖4所示的系統(tǒng)可靠性模型如圖5所示。
圖5 無(wú)人機(jī)CAN總線可靠性模型
圖5所示的系統(tǒng)為串聯(lián)系統(tǒng),可靠性模型如式(1)所示:
R(t)=F(t)*M(t)*N(t)*P(t)*Q(t)
(1)
R(t)為系統(tǒng)的可靠性;F(t)為飛控計(jì)算機(jī)CAN模塊可靠性;M(t)為CAN總線可靠性;N(t)為任務(wù)設(shè)備CAN模塊可靠性;P(t)為伺服設(shè)備CAN模塊可靠性;為功能設(shè)備CAN模塊可靠性;
由于在可靠性分析中,故障屬于隨機(jī)事件,其實(shí)效分布函數(shù)最基本、最常見(jiàn)的描述是指數(shù)分布,標(biāo)號(hào)為i單元的失效分布函數(shù)可以用e-λit表示。
λi為i單元的失效率;R(t)為系統(tǒng)可靠性。
將其代入式(1)可得:
R(t)=e-λFt*e-λMt*e-λNt*e-λPt*e-λQt
(2)
對(duì)式(2)進(jìn)行分析可以看出,該系統(tǒng)中只要有一個(gè)系統(tǒng)故障則系統(tǒng)就會(huì)發(fā)生故障。所以提高系統(tǒng)的可靠性成了當(dāng)務(wù)之急。通常余度技術(shù)是提升系統(tǒng)可靠性的有效手段。對(duì)圖5所示的可靠性模型進(jìn)行改進(jìn),將其設(shè)計(jì)為并聯(lián)結(jié)構(gòu),如圖6所示。
圖6所示的CAN總線可靠性模型可以看成由5個(gè)并聯(lián)系統(tǒng)串聯(lián)構(gòu)成??煽啃阅P腿缡?3)所示:
R(t)=A(t)*B(t)*C(t)*D(t)*E(t)
(3)
R(t)為系統(tǒng)的可靠性;
A(t)為飛控計(jì)算機(jī)雙余度CAN模塊可靠性;
B(t)為雙余度CAN總線可靠性;
C(t)為任務(wù)設(shè)備雙余度CAN模塊可靠性;
D(t)為伺服設(shè)備雙余度CAN模塊可靠性;
為功能設(shè)備雙余度CAN模塊可靠性;
雙余度系統(tǒng)的可靠性模型如式(4)所示:
(4)
R(t)為雙余度系統(tǒng)的可靠性;F(ti)為單套系統(tǒng)的可靠性。
式(4)也可以表示為:
(5)
R(t)為雙余度系統(tǒng)的可靠性;e-λit為第i個(gè)系統(tǒng)的可靠性。
將式(5)代入式(3)可得:
R(t)=(1-(1-e-λA1t)(1-e-λA2t))*
(1-(1-e-λB1t)(1-e-λB2t))*(1-(1-e-λC1t)
(1-e-λC2t))*(1-(1-e-λD1t)(1-e-λD2t))
*(1-(1-)(1-))
(6)
顯然,式(6)所示的系統(tǒng)可靠性相比式(2)的系統(tǒng)可靠性顯著提高;由于(1-e-λt)的值是大于0小于1的數(shù),如果繼續(xù)增加其數(shù)量就可以繼續(xù)增加系統(tǒng)的可靠性;但是系統(tǒng)余度數(shù)量和系統(tǒng)規(guī)模、體積和重量成反比,即余度數(shù)目增加隨之系統(tǒng)越復(fù)雜,體積和重量隨之增加,這對(duì)于小型飛行器而言不可接受。
通常從單余度系統(tǒng)到雙余度系統(tǒng)時(shí),可靠性增加最為顯著,體積和重量帶來(lái)的影響最小,所以本文采用雙余度系統(tǒng)設(shè)計(jì)。
使用余度技術(shù)對(duì)圖1所示的模型進(jìn)行優(yōu)化,可得圖7所示的模型。
圖7 優(yōu)化后的無(wú)人機(jī)雙余度CAN總線模型
在優(yōu)化后的模型中,CAN總線系統(tǒng)由CAN1和CAN2兩條CAN總線組成;模型中飛控計(jì)算機(jī)CAN總線模塊、任務(wù)設(shè)備CAN總線模塊、功能設(shè)備CAN總線模塊和各伺服設(shè)備CAN總線模塊均由兩個(gè)完全一致且相互獨(dú)立的CAN總線模塊構(gòu)成,且分別掛接在CAN1和CAN2總線上;在工作時(shí)飛控計(jì)算機(jī)的CAN1和CAN2模塊同時(shí)向總線上的各設(shè)備發(fā)送控制幀信息,掛接在總線上的各設(shè)備接收到控制幀信息并執(zhí)行后通過(guò)各自的CAN1和CAN2模塊同時(shí)向飛控計(jì)算機(jī)返回反饋幀信息。
根據(jù)上述分析設(shè)計(jì)了一種針對(duì)小型飛行器雙余度CAN總線算法,如下所示:
1)設(shè)定CAN1和CAN2模塊優(yōu)先級(jí);
2)設(shè)定主節(jié)點(diǎn)飛控計(jì)算機(jī)針對(duì)各機(jī)載設(shè)備發(fā)送控制幀周期(如數(shù)據(jù)傳輸頻率為80 Hz,則定時(shí)周期為12.5 ms);
3)設(shè)定各從節(jié)點(diǎn)優(yōu)先級(jí)以防止總線競(jìng)爭(zhēng);
4)CAN1和CAN2模塊同時(shí)工作;
5)對(duì)CAN1和CAN2模塊按高低優(yōu)先級(jí)的順序進(jìn)行檢測(cè),如數(shù)據(jù)接收正確則成功次數(shù)+1;測(cè)試次數(shù)+1,如在閾值時(shí)間內(nèi)未收到數(shù)據(jù),則使用CAN2模塊數(shù)據(jù),失敗次數(shù)+1;測(cè)試次數(shù)+1;
6)判斷失敗次數(shù)是否大于閾值,是則系統(tǒng)降級(jí)切除該設(shè)備中的CAN模塊使用低優(yōu)先級(jí)CAN2模塊數(shù)據(jù),并將故障信息返回,否則返回步驟4執(zhí)行。
CAN協(xié)議采用了非破壞性總線仲裁技術(shù),兩個(gè)或兩個(gè)以上節(jié)點(diǎn)同時(shí)傳送信息時(shí),低優(yōu)先級(jí)節(jié)點(diǎn)主動(dòng)停止數(shù)據(jù)發(fā)送,而高優(yōu)先級(jí)節(jié)點(diǎn)數(shù)據(jù)傳送則不受影響。
本系統(tǒng)將飛控計(jì)算機(jī)的CAN1模塊設(shè)為最高優(yōu)先級(jí)CAN2模塊次之,伺服設(shè)備優(yōu)先級(jí)低于飛控計(jì)算機(jī),功能設(shè)備的優(yōu)先級(jí)低于伺服設(shè)備,任務(wù)設(shè)備的優(yōu)先級(jí)最低。
設(shè)定優(yōu)先級(jí)后飛控計(jì)算機(jī)CAN1模塊和CAN2模塊按照一定周期按優(yōu)先級(jí)順序向總線上的各設(shè)備發(fā)送控制幀信息,由于為了防止總線競(jìng)爭(zhēng),飛控計(jì)算機(jī)的CAN1模塊和CAN2模塊按照一定周期針對(duì)各機(jī)載設(shè)備進(jìn)行周期性數(shù)據(jù)傳輸,機(jī)載設(shè)備收到數(shù)據(jù)后延遲固定時(shí)間后返回應(yīng)答數(shù)據(jù),優(yōu)先級(jí)高的數(shù)據(jù)優(yōu)先通過(guò)總線,這樣就有效地防止了總線競(jìng)爭(zhēng)。其總線調(diào)度流程如圖8所示。
圖8 總線調(diào)度流程圖
飛控計(jì)算機(jī)雙余度CAN總線軟件工作機(jī)理如下:
飛控計(jì)算機(jī)工作時(shí),其CAN1和CAN2模塊按照預(yù)先設(shè)定的定時(shí)任務(wù)同時(shí)發(fā)送控制幀數(shù)據(jù),延時(shí)一個(gè)固定周期后接收CAN1和CAN2數(shù)據(jù),首先檢測(cè)CAN1數(shù)據(jù),如數(shù)據(jù)接收正確則成功次數(shù)+1;測(cè)試次數(shù)+1,如固定周期內(nèi)未收到數(shù)據(jù),則使用CAN2模塊數(shù)據(jù),CAN1模塊失敗次數(shù)+1;測(cè)試次數(shù)+1,若失敗次數(shù)大于閾值則將CAN1模塊切除,使用CAN2模塊數(shù)據(jù)。
如CAN1模塊正常則檢測(cè)CAN2模塊數(shù)據(jù),如數(shù)據(jù)接收正確則成功次數(shù)+1;測(cè)試次數(shù)+1,如固定周期內(nèi)未收到數(shù)據(jù)則模塊失敗次數(shù)+1,測(cè)試次數(shù)+1,若失敗次數(shù)大于閾值則將CAN2模塊切除。
飛控計(jì)算機(jī)雙余度CAN總線軟件工作流程如圖9所示。
圖9 飛控計(jì)算機(jī)雙余度CAN總線軟件工作流程圖
各功能節(jié)點(diǎn)雙余度CAN總線軟件工作流程如圖10所示。
圖10 各功能節(jié)點(diǎn)雙余度CAN總線軟件工作流程圖
按上述算法設(shè)計(jì)的CAN總線網(wǎng)絡(luò)上的幀數(shù)據(jù)時(shí)序如圖11所示。
圖11 CAN總線幀數(shù)據(jù)時(shí)序圖
由于預(yù)先設(shè)定了CAN總線波特率,同時(shí)小型飛行器總線距離較短,所以每一幀發(fā)送時(shí)間可知,即飛控計(jì)算機(jī)發(fā)送一次的所有控制幀時(shí)間是確定的;同理所有反饋幀發(fā)送時(shí)間也可以確定,由于我們?cè)O(shè)計(jì)時(shí)希望總線上不能同時(shí)存在控制幀和反饋幀,由此算出飛控計(jì)算機(jī)控制幀的發(fā)送周期,以此周期構(gòu)建實(shí)時(shí)任務(wù),設(shè)計(jì)出CAN總線網(wǎng)絡(luò)。
按照上文所述模型構(gòu)建雙余度CAN總線系統(tǒng)如圖12所示。
圖12 雙余度CAN總線系統(tǒng)
該雙余度CAN總線系統(tǒng)由5個(gè)CAN節(jié)點(diǎn)構(gòu)成,分別是飛控計(jì)算機(jī)、偵察設(shè)備、伺服設(shè)備1、伺服設(shè)備2和隨動(dòng)裝置,每個(gè)CAN節(jié)點(diǎn)均為雙余度CAN總線設(shè)計(jì)。飛控計(jì)算機(jī)為主節(jié)點(diǎn),偵察設(shè)備、伺服設(shè)備1、伺服設(shè)備2和隨動(dòng)裝置為從節(jié)點(diǎn),從節(jié)點(diǎn)的優(yōu)先級(jí)為伺服設(shè)備1最高,伺服設(shè)備次之,偵察設(shè)備第三,隨動(dòng)裝置最后。主節(jié)點(diǎn)每20 ms向偵察設(shè)備、伺服設(shè)備1、伺服設(shè)備2和隨動(dòng)裝置4個(gè)從節(jié)點(diǎn)發(fā)送控制指令,4個(gè)從節(jié)點(diǎn)接收到控制指令后均延遲10 ms向主節(jié)點(diǎn)返回反饋數(shù)據(jù)。
為了驗(yàn)證總線故障采用軟件模擬的方式分別模擬主節(jié)點(diǎn)故障和從節(jié)點(diǎn)故障主節(jié)點(diǎn)故障為主節(jié)點(diǎn)的CAN1模塊正常工作后開始計(jì)時(shí),5分鐘后自動(dòng)故障不向從節(jié)點(diǎn)發(fā)送控制指令;從節(jié)點(diǎn)故障為從節(jié)點(diǎn)的CAN1模塊正常工作后開始計(jì)時(shí),10分鐘后自動(dòng)故障不向主節(jié)點(diǎn)發(fā)送反饋數(shù)據(jù)。
經(jīng)過(guò)長(zhǎng)時(shí)間實(shí)驗(yàn)表明本雙余度CAN總線系統(tǒng)不論是主節(jié)點(diǎn)故障還是從節(jié)點(diǎn)故障時(shí),系統(tǒng)均工作正常,各從節(jié)點(diǎn)能夠正常接收主節(jié)點(diǎn)的控制指令,主節(jié)點(diǎn)也能夠正常接收各從節(jié)點(diǎn)反饋數(shù)據(jù)。
CAN總線由于其自身的諸多優(yōu)點(diǎn)已經(jīng)得到了廣泛的應(yīng)用,目前CAN接口已經(jīng)成為了眾多航空設(shè)備的通用接口之一。本文設(shè)計(jì)的雙余度CAN總線策略經(jīng)實(shí)踐驗(yàn)證表明,在保證實(shí)時(shí)性的同時(shí)顯著提高了系統(tǒng)的可靠性,完全滿足總體要求,而為此付出的軟硬件代價(jià)較小。