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