吳一坤
(中國電子科技集團公司第二十研究所,陜西 西安 710068)
當前,數(shù)據(jù)總線技術被廣泛應用在飛控系統(tǒng)中,提升了整個系統(tǒng)的可靠性、靈活性及擴展性。CAN作為標準的工業(yè)總線之一,具有獨特的設計思想、優(yōu)良的性能,經(jīng)過多年發(fā)展已日趨成熟,在眾多領域得到了廣泛應用。實現(xiàn)CAN總線系統(tǒng)通信需要依托標準的CAN協(xié)議規(guī)范,就像用戶使用互聯(lián)網(wǎng)需要依托TCP/IP協(xié)議一樣[1]。CAN總線提出的CAN2.0 A/CAN2.0B協(xié)議標準,使它具有物理層和數(shù)據(jù)鏈路層功能。在此基礎上,CAN應用層協(xié)議往往需要用戶自行設計制定,或采用國際組織已發(fā)布的成熟應用層協(xié)議進行剪裁移植。
CANaerospace由德國Stock航空系統(tǒng)公司制定,是目前應用在航空領域較為主流的CAN應用層協(xié)議之一,適用于飛行器機載設備之間進行總線通信。探究其協(xié)議特點、報文結構、總線調度機制等核心技術規(guī)范,并對其剪裁移植、優(yōu)化設計,以實現(xiàn)應用驗證,是本文研究的重點。
CANaerospace規(guī)范了航空機載設備間總線通信的協(xié)議接口,其主要特點如下[2]:
(1) 總線型網(wǎng)絡拓撲,如圖1所示。支持3種數(shù)據(jù)傳輸方式:點對點、多主以及廣播。無需系統(tǒng)啟動過程,不會出現(xiàn)因為主站失敗而引發(fā)的危險情況。
(2) 針對應用場景高可靠性要求,支持系統(tǒng)冗余。
(3) 總線網(wǎng)絡可在一定范圍內(nèi)動態(tài)調度,支持節(jié)點熱插拔。
(4) 協(xié)議規(guī)范公開,用戶可自定義協(xié)議內(nèi)容及報文類型等,便于擴展應用。
圖1 CANaerospace總線型拓撲結構
1.2.1 報文類型
CANaerospace協(xié)議定義了7種基本報文類型,每種類型都具有特定的功能作用和使用規(guī)范,如表1所示。同時,對每種報文類型分配了固定的CAN標識符范圍,用來定義它們的優(yōu)先級,而范圍內(nèi)的標識符可由用戶自行制定分配。
表1 CANaerospace報文類型及說明
該協(xié)議標準保證了總線上所有消息報文都具有唯一的CAN標識符,即每條報文具有唯一的優(yōu)先級。當總線多節(jié)點同時發(fā)送報文時,高優(yōu)先級信息先被傳輸,較低優(yōu)先級信息停止發(fā)送,并等總線空閑時再次嘗試。
1.2.2 消息格式
CANaerospace協(xié)議規(guī)定采取“大端模式”,基本信息格式如圖2所示,所有報文數(shù)據(jù)域分為兩部分(共8字節(jié)),用來表示報文的標題和報文有效數(shù)據(jù)信息[3]。
圖2 CANaerospace消息數(shù)據(jù)域格式
節(jié)點編號主要用于標識總線數(shù)據(jù)傳輸中的不同節(jié)點,表示范圍為1~255,編號0表示所有節(jié)點。
數(shù)據(jù)類型標明總線報文的數(shù)據(jù)特征。CANaerospace規(guī)定每條報文都支持多種數(shù)據(jù)類型(FLOAT、LONG、SHORT、CHAR等),用戶也可在特定標識符范圍內(nèi)自行定義需要的數(shù)據(jù)類型。
服務代碼即節(jié)點服務協(xié)議代碼。對于正常操作數(shù)據(jù),它用來表征此刻總線數(shù)據(jù)的狀態(tài),使得在任何時間,都對節(jié)點單元接收數(shù)據(jù)的有效性已知。
報文編號按照總線上報文傳輸?shù)臄?shù)量增加,超過255后又歸0,并再次進行累加。此編號用于監(jiān)測報文信息傳輸進程和正確順序,以驗證總線節(jié)點是否正常工作。
CANaerospace協(xié)議規(guī)定數(shù)據(jù)傳輸基于時間觸發(fā)方式進行,正常工作狀態(tài)下,各類報文信息會按照協(xié)議預先分配的周期時間進行傳輸,同時也在特定情況下接收中斷,傳輸非周期信息。以CANaerospace基準系統(tǒng)為例,如表2所示,設定系統(tǒng)信息傳輸頻率為80 Hz,即傳輸周期為12.5 ms,這里將12.5 ms的傳輸時間稱為最小傳輸間隔。在實際控制系統(tǒng)應用中,并不是所有設備報文信息都需要以如此短的周期傳輸,可以根據(jù)設備信息的具體情況,對最小傳輸間隔進行不同組合,以滿足各類報文信息的傳輸需求,使總線上能傳輸更多參數(shù)[4]。
表2 基準系統(tǒng)報文定時發(fā)送頻率
基于對CANaerospace協(xié)議的詳細探究,本章將對其進行剪裁移植,優(yōu)化設計出運行在實驗室飛控系統(tǒng)原理樣機的CAN總線應用層協(xié)議。
飛控系統(tǒng)原理樣機中,飛控計算機通過總線與伺服舵機進行數(shù)據(jù)交互,作為系統(tǒng)的主控節(jié)點,它以80 ms為周期向伺服舵機發(fā)送控制指令,伺服舵機收到指令后立即響應,并以20 ms為周期回報自身舵面角度和舵機狀態(tài)信息??偩€上可能傳輸?shù)臄?shù)據(jù)幀主要分為2類:飛控計算機發(fā)送的控制指令幀和伺服舵機回報信息幀,控制指令幀優(yōu)先級高于回報信息幀。
CAN總線飛控系統(tǒng)通信模型主要為生產(chǎn)者/消費者模型。該通信模型下,在總線非破壞性仲裁中,競爭獲勝的節(jié)點,成為發(fā)送信息的“生產(chǎn)者”,其余節(jié)點成為接收信息的“消費者”。設置總線通信波特率為500 kbps。數(shù)字舵機節(jié)點傳輸?shù)膱笪男畔⒎N類有限,數(shù)據(jù)量較少,正常工作模式下,協(xié)議中不考慮多幀傳輸?shù)那闆r。
CANaerospace支持CAN2.0B協(xié)議,兼容CAN2.0 A??紤]原理樣機系統(tǒng)傳輸?shù)臄?shù)據(jù)種類少、總線系統(tǒng)節(jié)點個數(shù)少以及減小信息延時等方面的原因,本協(xié)議制定使用11位標識符,并規(guī)定節(jié)點之間數(shù)據(jù)交換只使用數(shù)據(jù)幀,不使用遠程幀傳輸。
采用標識符靜態(tài)分配方式,將總線上可能傳輸?shù)?類數(shù)據(jù)幀ID設定在CANaerospace協(xié)議正常操作數(shù)據(jù)范圍(CAN-ID為0x12C至0x707)內(nèi),控制指令和狀態(tài)數(shù)據(jù)根據(jù)傳輸間隔,周期性傳輸或中斷執(zhí)行。
數(shù)據(jù)域中,CANaerospace協(xié)議原理樣機數(shù)據(jù)幀結構如表3所示。結合原理樣機在總線上數(shù)據(jù)傳輸?shù)奶攸c,本協(xié)議制定如下:
D0定義為節(jié)點ID,在飛控系統(tǒng)原理樣機中,存在的節(jié)點包括飛控計算機和多個安裝在不同位置上起不同作用的數(shù)字電動舵機,D0就用來區(qū)分網(wǎng)絡上所有節(jié)點的位置信息,給每個節(jié)點都標識出ID號,當節(jié)點ID為0x00時,代表“所有節(jié)點”,表明可能會有廣播幀的發(fā)送;
D1定義為數(shù)據(jù)類型,CANaerospace協(xié)議允許多種數(shù)據(jù)類型在總線上傳輸,并對不同數(shù)據(jù)類型定義了不同標識,對于數(shù)據(jù)接收者只要分析信息幀數(shù)據(jù)域D1的內(nèi)容便可根據(jù)協(xié)議得出總線數(shù)據(jù)類型,這里制定發(fā)控指令和回報信息都為SHORT型(0x06);
D2定義為服務代碼,對于正常操作數(shù)據(jù),此字節(jié)顯示當下的總線數(shù)據(jù)狀態(tài),保證了接收數(shù)據(jù)的有效性,CANaerospace協(xié)議已定義節(jié)點服務有4類,對原理樣機定義為保留狀態(tài)(XXS),供將來擴展使用;
D3定義為報文編碼,編碼按照數(shù)據(jù)幀發(fā)送數(shù)量而自動增加,最大至255后歸0,再從0開始重新計數(shù)增加,可以通過報文編碼來測定報文的進程和正確的順序,監(jiān)測總線收發(fā);
D4~D5定義為舵面偏轉角信息,最高1位為符號位,說明舵面偏轉的正負方向,低15位為數(shù)據(jù)有效位,表明具體的偏轉角度;
D6~D7定義為其他數(shù)據(jù),例如電動舵機類型等。
表3 CANaerospace協(xié)議原理樣機數(shù)據(jù)幀結構
本實驗CAN總線網(wǎng)絡上掛接飛控計算機節(jié)點、數(shù)字電動舵機節(jié)點以及PC機節(jié)點,構成實驗室飛控系統(tǒng)原理樣機,如圖3所示。實驗方案中,飛控計算機作為主控節(jié)點,周期性向舵機節(jié)點發(fā)送舵面偏轉控制指令;電動舵機節(jié)點接收并響應飛控指令的同時,周期性向飛控計算機回報自身舵面實時偏轉角度;PC機節(jié)點作為總線上的第3個節(jié)點,接收并顯示CAN總線上的實時收發(fā)數(shù)據(jù)。RS-232串行總線連接飛控計算機與PC機,打印飛控計算機節(jié)點數(shù)據(jù)收發(fā),有利于后續(xù)實驗數(shù)據(jù)的對比分析。
圖3 原理樣機實驗連接原理圖
CAN總線飛控系統(tǒng)原理樣機測試實驗中,連接在總線上的PC機節(jié)點通過CANTest軟件平臺記錄所有通信發(fā)生過程中的數(shù)據(jù)信息。信息主要分為2類:飛控計算機每80 ms對電動舵機發(fā)送周期性控制指令,以及電動舵機每20 ms對飛控計算機回報周期性角度信息。
依據(jù)實驗的嚴謹性,隨機選擇3組由-20°~+20°循環(huán)的實驗數(shù)據(jù),這3組數(shù)據(jù)在時間上是連續(xù)的,將第1組數(shù)據(jù)的第1幀記為基準時間0,后續(xù)數(shù)據(jù)按周期時間依次增加,如表4所示,對數(shù)據(jù)匯總解算。
表4 原理樣機發(fā)控與回報角度數(shù)據(jù)
對3組實驗解算數(shù)據(jù)詳細分析,可得出以下結論:
(1) 時間連續(xù)的測試中,存在兩處角度“跳躍點”,它的出現(xiàn)是為驗證舵機在指令周期內(nèi),響應大角度偏轉而設計的結果。在每組測試最后一幀+20°的指令發(fā)送后,依舊等待80 ms,發(fā)送下一組測試的第1幀-20°的指令,相同周期內(nèi)發(fā)控角度跨度由2°變?yōu)?0°,發(fā)生了跳躍,舵面持續(xù)向目標角度偏轉,但短時間內(nèi)無法到達,并繼續(xù)以20 ms為周期回報實時角度信息。
(2) 除去角度“跳躍點”所產(chǎn)生的非穩(wěn)定狀態(tài),計算每指令周期下發(fā)控角度和回報角度的誤差,分析3組數(shù)據(jù),可得絕對值最大誤差為0.207 5°,最小誤差為0.007 5°,所有誤差絕對值處于0.007 5°~0.207 5°之間,遠小于±0.5°的誤差范圍,數(shù)據(jù)表現(xiàn)良好穩(wěn)定。
利用MATLAB擬合發(fā)控角度和實時回報角度的數(shù)據(jù)信息,仿真制圖如圖4所示。觀測角度走勢,分析舵機回報角度對飛控計算機發(fā)控角度的跟隨性。
圖4 原理樣機通信數(shù)據(jù)曲線擬合
分析圖4可得出以下結果:
(1) 3組飛控計算機發(fā)送角度都分別從-20°~20°,爬升斜率一致,出現(xiàn)兩處角度“跳躍點”;
(2) 由結果走勢可看出,回報曲線斜率基本同發(fā)控曲線斜率一致,每次相應的發(fā)控行為與回報行為之間相差一個指令周期,誤差值極小,可得舵機對飛控計算機的跟隨性良好,系統(tǒng)性能優(yōu)良。
航空領域方面,CANaerospace是當今被廣泛應用的機載設備之間通信的應用層協(xié)議,本文對它的核心特點、報文類型、總線信息調度方式等規(guī)范進行了深入探究,并著重應用此協(xié)議,進行剪裁移植,優(yōu)化設計了關于實驗室飛控原理樣機的應用層協(xié)議。規(guī)范了樣機的通信模型和總線數(shù)據(jù)交互類型,以及報文結構內(nèi)每個字節(jié)的具體定義等。通過飛控系統(tǒng)原理樣機的測試實驗,結果證明CANaerospace應用層協(xié)議制定正確、CAN總線無人機飛控系統(tǒng)通信性能良好。