張宏巍,張文娟
(1.中國科學院長春光學精密機械與物理研究所,吉林 長春 130033;2.東北師范大學物理學院,吉林 長春 130024)
飛行器雙冗余CAN網絡調度策略及其應用層協議設計
張宏巍1,張文娟2
(1.中國科學院長春光學精密機械與物理研究所,吉林 長春 130033;2.東北師范大學物理學院,吉林 長春 130024)
提出一種基于CAN總線的飛行器通信系統數據傳輸方案,通過采用冗余總線結構及優化的網絡調度策略,保證了通信網絡的實時性,同時也提高了系統的可靠性.根據實際數據傳輸需求設計出具有針對性的應用層通信協議.通過搭建仿真平臺驗證該協議滿足飛行器通信網絡在數據傳輸的可靠性、實時性等要求.
冗余總線;網絡調度策略;應用層通信協議
隨著控制技術、電子技術、計算機技術和傳感器技術的飛速發展,飛行器需要共享的數據激增且傳輸速率越來越快,而且針對某些特殊應用領域,又提出飛行器要降低成本,減小質量和體積,便于維護和管理.因此,選擇實時性強、體積小、成本低、可靠性高和維護簡單的總線技術是確保飛行器通信系統穩定運行的關鍵.
目前在飛行器上采用的總線技術主要包括RS422、ARINC429、RS485和1553B總線.其中:RS422和ARINC429總線采用點對點的組網通信方式,產生了大量的電纜及連接器,且體積大、質量高,進而降低了系統的可靠性;1553B和RS485總線在使用過程中采取主/從通信方式,從機間數據交換必須經由主機調度,此方式降低了總線數據的傳輸效率.[1]相比而言,CAN總線的短幀結構保證了數據傳輸的實時性,完善的錯誤檢測及處理機制,保證了通信網絡的可靠性,多主的通信方式提高了網絡的利用效率,而且成本低廉,大約是1553B組網價格的1%,安裝維護更加靈活,因此采用CAN總線搭建飛行器通信網絡可以較好地滿足各項要求.[2]
但是CAN總線采用的是一個基于事件觸發機制的多主系統結構,默認為固定優先級非搶占式的任務調度方法,當單位時間內總線上需要傳輸的數據量較大時,固定優先級的調度方法可能會導致低優先級報文搶占不上總線資源而產生不確定的延遲時間,在某些極端情況下甚至會導致低優先級報文丟失,這對于一些關鍵報文的傳輸將會產生致命的后果.[3]
因此,搭建基于CAN總線的飛行器通信網絡不僅要考慮傳輸哪些數據,還要通過合理制定其應用層通信協議來規定如何傳輸這些數據.本文以某輕型、低成本飛行器的通信網絡系統為例,詳細介紹了通信網絡的組成及應用層通信協議的設計方法,并可作為其他類似通信網絡系統的設計參考.
1.1 通信網絡組成
該飛行器的通信網絡主要由6個工作節點(1個GNC一體化分系統、1個導引頭分系統和4個舵機分系統)、1個記錄節點(數據記錄儀分系統)、1個管理節點(網絡管理中樞)和1個地面測試節點(地面測試系統)組成.
GNC一體化分系統:主要根據傳感器信息進行導航解算、制導指令計算和控制指令計算,并輸出舵機舵偏指令信息,實現導彈三通道的穩定控制.GNC一體化分系統在通信網絡中需要傳輸的信息主要包括自檢信息、舵機舵偏指令信息、導航輸出信息、狀態反饋信息和其他指令應答信息.
導引頭分系統:主要完成開機后對目標的搜索、識別和跟蹤,并輸出目標相對位置信息.在通信網絡中傳輸的信息主要包括自檢信息、目標信息、狀態反饋信息和其他指令應答信息.
舵機分系統:根據GNC一體化分系統發送的舵偏指令信息,通過控制舵面偏轉角度而形成空氣動力,進一步控制飛行器姿態.在通信網絡中傳輸的信息主要包括自檢信息、狀態反饋信息和其他指令應答信息.
數據記錄儀分系統:用于記錄整個通信網絡中的關鍵報文信息,以便于飛行試驗后期的數據分析.在通信網絡中傳輸的信息主要包括自檢信息和其他指令應答信息.
網絡管理中樞:負責監控通信網絡的運行情況,并根據具體故障類別,完成相對應的故障報警及適當的故障處理等操作.在通信網絡中傳輸的信息主要包括自檢結果信息、故障報警信息、故障處理指令信息和其他指令應答信息.
地面測試系統:主要完成對飛行器各分系統的功能測試和性能測試,在通信網絡中主要傳輸測試指令類信息.
1.2 雙冗余CAN總線調度策略
由于飛行器通信網絡中需要傳輸的數據越來越多且系統控制周期越來越短,導致單位時間內總線上傳輸的數據量急劇增加,總線負載率越來越高,采用單CAN總線的組網方案已經無法滿足數據傳輸實時性的需求.并且由于飛行器工作環境和用途比較特殊,從可靠性角度考慮需要采取冗余設計方案,但考慮到飛行器工作時間短,主CAN網絡癱瘓的概率比較小,網絡備份經常不能利用而浪費系統資源.因此,所制定的通信系統方案既要具備對主CAN網絡的備份功能,提高可靠性,又要能夠合理利用備份CAN總線的網絡資源,有效降低主CAN網絡的總線負載率,提高數據傳輸的實時性.
通過以上分析,最終提出一種雙冗余CAN總線的組網方案及調度策略.該策略采用雙CAN總線布局結構,將需要傳輸的數據分為關鍵性數據、非關鍵性數據和網絡管理類指令.其中關鍵性數據主要包括用于控制飛行器工作的指令類信息如舵偏指令,這些指令對實時性要求比較嚴格,如果無法在規定時間內成功發送,可能對整個飛行器的正常工作造成較嚴重影響;而非關鍵性數據主要包括對實時性要求不高的信息,如狀態反饋信息、指令應答信息和地面檢測信息等;網絡管理類指令是網絡管理中樞向通信網絡中全部工作節點發送的網絡管理類信息,實現網絡故障的隔離和恢復.
當主CAN網絡正常工作時,通過在備份網絡中傳輸部分非關鍵性數據而降低主網絡的總線負載率,進而提高主網絡中關鍵性數據傳輸的實時性.當主網絡上某些工作節點異常時,將其原在主網絡中傳輸的關鍵性數據改成在備份網絡中傳輸,此時備份網絡的總線負載率劇增,為保證關鍵性數據在備份網中傳輸的實時性,又制定了一種高效率的網絡調度策略,該策略在確保飛行器通信系統正常工作的同時,提高了關鍵性報文的實時性和非關鍵性報文的公平性.
在網絡調度策略中首先制定了CAN報文幀的標志符分配方案,采用步進式動態優先級調度算法與靜態優先級調度算法相結合的混合式標志符編碼方法,既保證了系統中所有報文幀發送的公平性和關鍵性報文幀發送的實時性,又避免了低優先級報文幀的丟幀現象.靜態優先級調度算法是CAN總線協議中默認的總線仲裁方式,當多個報文幀競爭總線資源時,高優先級的報文幀搶占總線而開始發送,低優先級的報文只有等待所有比其優先級高的報文幀發送完成后才開始發送.步進式動態優先級調度算法是通過動態提高仲裁失敗報文幀的優先級,令該報文幀隨著其總線仲裁失敗次數的增加而優先級越來越高,直到成功搶占總線,因此該策略可以保證總線上低優先級報文幀傳輸的公平性,避免了低優先級報文幀的丟幀現象[4].
網絡管理中樞是實現雙冗余CAN網絡內部資源調度的關鍵.它通過實時監測主網絡的實時運行情況,并根據預先設置的調度策略、主網絡出現的故障動態更改部分報文幀的傳輸路徑及發送周期,實現通信網絡的故障監測及恢復.根據主網絡出現故障的不同原因有針對性地采取以下措施:
(1) 當網絡管理中樞判斷出主網絡上某個節點出現故障時,首先通過主網絡和備份網同時向該節點發送復位指令幀,該節點如果能夠成功接收此幀則進行軟件復位操作.
(2) 如果網絡管理中樞發送復位指令幀后故障節點仍不能正常工作,即可確定是該節點的主網絡部分硬件出現故障,則網絡管理中樞通過備份網向故障節點發送切換網絡指令幀,然后在備份網上發送網絡帶寬優化廣播幀.
(3) 當故障節點接收到切換網絡指令幀后,將所有原主網絡中發送的關鍵性報文變更到備份網中傳輸.備份網上每個節點接收到網絡帶寬優化廣播幀后,將其在備份網中傳輸的非關鍵類報文幀的發送周期擴大一倍,以降低總線負載率,從而保證備份網中新增的關鍵性報文幀傳輸的實時性.
(4) 如果主網絡完全癱瘓,解決措施同樣是通過向備份網中發送一個切換網絡指令幀,將原主網絡中傳輸的關鍵性指令幀轉移到備份網中傳輸,并通過先后發送6個網絡帶寬優化廣播幀,將原來備份網中傳輸的非關鍵類報文幀的發送周期擴大6倍.
CAN總線規范只對數據鏈路層和物理層進行了定義,僅能保證節點間無差錯的數據傳輸,在實際多節點數據通信應用場合中,除了基本的兩層服務之外,還需要有更多服務的支持,如發送大于8個字節的數據塊及關鍵報文幀應答機制等,這些都可以通過制定其應用層通信協議來實現.
CAN總線應用層協議可以采用一些國際組織制定的標準協議,也可以自行定義,考慮到飛行器應用場合特殊,出于保密性角度,本文采用自制保密性高且專用性強的CAN總線應用層通信協議.
為提高數據傳輸的實時性,協議中規定CAN報文幀的標志符采用標準幀和擴展幀混合編碼格式.網絡管理類指令和關鍵性報文由于具有數據種類少和實時性要求高的特點,使用標準幀的11位標志符完全可以滿足所有報文幀的定義,而且標準幀的幀長度更短,可以提高信息傳輸的實時性;非關鍵性報文種類繁多,數據量較大,而且為了滿足所有信息傳輸的公平性,還要預留一段標志符區用于實現調度算法的嵌入,所以選擇29位標志符的擴展幀格式,由于這些報文對實時性要求不高,選擇擴展幀方式對總線延時的影響可以忽略.
協議中規定當主網絡正常工作時,主網絡負責傳輸關鍵性報文,綜合考慮到實時性和可靠性要求,總線波特率采用500 kB/s,備份網絡負責傳輸非關鍵性報文,由于非關鍵性報文較多且對實時性要求不高,總線波特率采用1 MB/s.
由于飛行器實際工作過程中所使用的關鍵性報文和網絡管理類報文種類較少,這兩類報文采用CAN總線默認的固定優先級編碼方式即可滿足實時性要求;而飛行過程中的非關鍵性報文種類較多,其標志符通過采用靜態優先級調度算法+動態優先級步進調度算法的混合調度算法編碼方式,可以保證所有報文幀發送的公平性,并避免了低優先級報文的丟幀現象.
2.1 網絡管理和關鍵性報文幀標志符分配方案
這2類報文幀統一采取標準幀格式,具體標志符分配方案如表1所示.

表1 網絡管理類和關鍵性報文幀標志符分配方案
通過采用2位標志符ID10和ID9來定義報文幀的全局優先級.網絡管理類報文幀關系到整個網絡的故障檢測及恢復,因此具有最高優先級,將碼值為00定義為網絡管理類報文幀的全局優先級,碼值01定義為關鍵性報文幀的全局優先級.
目標節點號用于標志接收此報文幀的節點代號,采用3位標志符ID8、ID7和ID6來定義目標節點號,具體含義如表2所示.

表2 目標節點定義
ID5-ID0共6位ID用于定義該報文幀所傳輸數據或指令的具體功能及目的信息.
2.2 非關鍵性報文幀標志符分配方案
非關鍵性報文幀采用擴展幀格式,具體報文幀標志符分配方案如表3所示.

表3 非關鍵性報文幀標志符分配方案
ID28和ID27標志符用于定義報文幀的優先級類別.非關鍵性報文幀的優先級低于網絡管理類報文幀和關鍵性報文幀,所以將非關鍵性報文幀這2位ID號定義為10.
ID26-ID22共5位標志符用于定義非關鍵性報文幀的動態優先級.其中EDF動態優先級區采取對數分區法,初值取最大值,由于標志符取值越大優先級越低,這樣就將新生成的非實時性數據幀放到了等待傳輸報文幀隊列的末尾.如果此時總線上沒有報文進行傳輸,則該數據幀可以立刻啟動發送;如果存在總線競爭則高優先級報文仲裁成功得到發送,而低優先級報文將其動態優先級區的數值減小一個已知值,然后等待重發.低優先級報文幀每競爭失敗一次,其動態優先級區就減小一個已知長度,優先級越來越高,直到發送成功.
ID21-ID20共2位標志符用于定義報文類型,根據非關鍵類報文幀的不同用途,其報文類型定義如表4所示.由表4可見:廣播幀代表總線上所有節點均接收;通知幀用于傳送數據,如節點的狀態信息;開機啟動幀用于當飛行器上電時,所有分系統啟動完成后通過發送一幀開機啟動幀表示啟動完畢.

表4 報文類型定義
ID19-ID17共3位標志符定義了非關鍵性報文幀的接收節點,它與前面所定義的目標節點定義相同,具體內容如表2所示.
ID16-ID7共10位標志符用于定義非關鍵性報文幀的具體功能含義,由于種類較多,在這里不詳細介紹.
每個CAN報文幀一次最多可以傳輸64 B即8個字節數據,而對于大于64 B數據包的傳輸可以通過制定多幀傳輸協議來實現.通過采用ID6至ID0共7位標志符來定義多幀傳輸模式下的相關信息,如單幀傳輸則值為0 000 000,多幀傳輸時,這7位標志符的值表示當前傳輸報文幀是多幀中的具體第幾幀,如0 001 000表示當前傳輸的報文幀是多幀傳輸中的第8幀.
2.3 數據類型及存儲方式定義
CAN總線采用多主通信模式,即只要總線空閑,任何節點都可以向總線上發送報文幀,而總線網絡中其他節點均可以根據濾波機制來決定是否接收該報文幀.在CAN物理層協議中并未規定不同類型數據的傳輸方式,因此為了保證節點間可以正確編碼和解碼數據信息,必須要規定一個統一的數據編碼和解碼格式.
根據飛行器上傳輸數據的種類可以進一步分為單精度浮點型、雙精度浮點型、短整型、長整型、字節型、布爾型和自定義型.單精度浮點型和短整型長度均為4個字節,規定其占用D0-D3的CAN報文數據區,且高字節在前(高字節存儲在D0中);雙精度浮點型和長整型長度均為8個字節,規定其占用D0-D7的CAN報文數據區,且高字節在前(高字節存儲在D0中);字節型長度為1個字節,規定其占用D0的CAN報文數據區;布爾型長度為1 B,規定其占用D0的最低位;自定義型的編碼定義需要根據具體數據大小而決定,占用CAN報文數據區原則是D0最先占用,而D7最后占用.
2.4 通信方式定義
根據CAN網絡中節點間數據傳輸方法的不同,制定以下3種數據通信方式:
(1) 生產者與消費者的通信方式.生產者是指CAN報文的發送節點,消費者是CAN報文的接收節點,根據CAN總線的多主工作模式,同一時刻可包括1個生產者和多個消費者.該方式為CAN總線數據通信的默認方式.
(2) 主/從式通信方式.CAN總線可以通過遠程幀實現主/從的通信方式,主節點首先發送一個遠程幀,從節點接收到遠程幀后立即發送與所接收遠程幀標志符相同的報文幀,并在該報文幀的數據區中發送節點遠程申請的數據.該通信方式主要用于信息的獲取,如傳感器信息獲取.
(3) 點對點的通信方式.CAN報文幀的數據區最大可承載8個字節的信息,往往無法滿足大數據包的信息交換,而點對點通信方式支持大于8個字節的數據包傳輸.
通過搭建全數字仿真平臺模擬飛行器通信系統實際工作過程,完成對所設計的飛行器雙冗余CAN網絡調度策略及應用層協議的驗證工作.
該仿真平臺的搭建是在Vector公司多功能仿真與分析集成開發環境CANoe軟件上實現的.CANoe具有網絡的仿真、監測和分析等功能,可以通過編程實現對CAN總線網絡運行過程的模擬.
根據文中所設計的基于雙冗余CAN總線的飛行器通信系統應用層協議,在CANoe中搭建2條CAN網絡,并模擬出所需的9個物理節點.在該網絡環境中完成以下測試:
(1) 模擬單CAN總線組網方式,并將協議中制定的所有報文幀在網絡中運行,測試網絡運行情況,通信速率采用1 MB/s.
(2) 采用雙冗余CAN總線組網方式,模擬主網絡正常工作狀態,分別測試主網絡和備份網絡的工作情況,其中主網絡總線波特率為500 kB/s,備份網為1 MB/s.
(3) 采用雙冗余CAN總線組網方式,模擬主網絡完全癱瘓時備份網的工作狀態,并統計網絡運行情況,備份網的通信速率采用1 MB/s.
每組實驗進行3 min后,讀取并分析CANoe中記錄的過程數據.實驗過程中CAN網絡信息統計結果見表5.

表5 實驗過程中CAN網絡信息統計結果
(1) 通過對采用雙冗余CAN總線結構與單CAN總線結構的通信網絡比較可知,飛行器通信系統的總線負載率從單CAN網絡的64%下降到雙CAN網絡中的主網絡為9%和備份網為57%,提高了報文傳輸的實時性.
(2) 當主網絡癱瘓時,所有報文都在備份網中傳輸,由于采用了合理的網絡調度策略,此時備份網的總線負載率也僅為18%,整個通信系統在正常且穩定運行的同時,保證了關鍵性報文幀的實時性,提高了系統的可靠性.
(3) 實驗過程中,總線上并未出現丟幀現象,保證了低優先級報文幀的公平性.
實驗結果表明,所制定的應用層協議是正確且有效的.通過在應用層協議中制定合適的網絡調度策略,不僅在主網絡正常工作時可以保證飛行器通信系統的正常運行,而且當主網絡出現故障時,可以通過備份網保證飛行器通信系統的正常運行,因此在確保關鍵性報文幀傳輸實時性的同時,提高了整個通信系統的可靠性.
[1] 支超有.機載數據總線技術及其應用[M].北京:國防工業出版社,2009:115.
[2] 楊春杰,王曙光,亢紅波.CAN總線技術[M].北京:北京航空航天大學出版社,2010:7-8.
[3] 張宏巍,張文娟.控制局域網中媒體訪問延時研究與網絡優化設計[J].東北師大學報(自然科學版),2014,46(4):61-65.
[4] 張宏巍,張文娟,賈宏光.飛行器控制系統雙CAN網絡混合調度策略設計[J].東北師大學報(自然科學版),2013,45(1):65-70.
(責任編輯:石紹慶)
Design of application layer protocol and scheduling strategy based on dual redundancy CAN network for aircraft
ZHANG Hong-wei1,ZHANG Wen-juan2
(1.Changchun Institute of Optics Fine Mechanics and Physics,Chinese Academy of Sciences,Changchun 130033,China;2.School of Physics,Northeast Normal University,Changchun 130024,China)
Firstly,a data transmission scheme of aircraft communication system based on CAN bus is presented in this paper.By using redundant bus structure and optimized network scheduling strategy,it not only ensures the network real time,but also improves the system reliability.Secondly,a special application layer protocol is designed according to the actual data transmission requirement.At last,it’s tested by experiment that this protocol meets the requirement of data transmission reliability and real time.
redundant bus;network scheduling strategy;application layer communication protocol
1000-1832(2015)04-0053-06
10.16163/j.cnki.22-1123/n.2015.04.012
2015-05-12
吉林省科技廳應用基礎研究項目(20130102028JC);中國科學院“三期創新”平臺資助項目.
張宏巍(1983—),男,博士,副研究員,主要從事飛行器數據傳輸技術研究;通訊作者:張文娟(1983—),女,博士,工程師,主要從事智能控制技術研究.
TP 336;V 249 [學科代碼] 510·50
A