趙明,陳彧欣
(北京電子工程總體研究所,北京 100854)
發射車冗余熱備份CAN總線網絡實現方法研究*
趙明,陳彧欣
(北京電子工程總體研究所,北京 100854)
研究了一種以發控系統為核心的車載CAN總線網絡冗余熱備份實現方法,提出了具體的硬件、軟件設計思路。通過該方法,可實現整車通信總線網絡的冗余熱切換,有效提升發射車的任務可靠性,保障發射車的作戰效能。
CAN總線;冗余;熱備份;發射控制;Vxworks;設計方法
發射車是地基導彈武器系統的重要組成部分,以發控系統作為控制核心,控制其他分系統完成導彈的初始基準建立、起豎調轉、射前檢測和發射控制[1]。
通常傳統的設計方法是將發控系統與其他分系統以點對點方式進行信息交互;但在分系統較多的情況下,這種方式會導致電纜連接關系復雜,不利于擴展升級。而采用現場總線技術可以使各分系統間的信息連接和傳遞變得簡單可靠[2]。
控制器局域網絡(controller area network,CAN)總線作為一個成熟的控制局域網絡,已被廣泛應用到機器人、汽車、數控機床、自動化儀表等領域的現場通信中[3]。雖然CAN總線協議本身有很強的檢錯糾錯能力,但在實際應用中硬件電路的連接不牢、傳輸介質的損壞、總線驅動器或控制器的損壞都會影響CAN通信的可靠性。
發射車的任務可靠性直接影響到導彈發射任務的實施和結果,而其通信總線網絡運行的可靠性正是關鍵因素之一。通常有2種提高可靠性的方法:一種是避錯(fault avoidance),就是通過對系統的完美規避和設計,使錯誤、故障不產生,即提高基本可靠性;另外一種是容錯(fault tolerance),就是當系統出現故障時,系統也能正常工作,并且執行結果也不會因系統故障而發生差錯,即提高任務可靠性[4-5]。
本文針對發射車的具體特點,采取主動容錯方式提高可靠性,提出了一種冗余熱備份CAN總線網絡的實現方式。
1.1 總線冗余設計
為了增加整個總線的可靠性,采用了雙冗余的總線型網絡結構[6-7],包括A,B 2路總線相互獨立的,互為備份,發射車內部各設備構成總線通信節點,每個總線設備同時接A,B總線,互為備份,每個單機接口電路有獨立2組總線控制芯片和總線接口芯片[8-9],如圖 1所示。
車載系統上電后默認選擇一路總線工作,當該總線發生故障后,便迅速切換到另一路總線上來,保證CAN節點發送、讀取數據幀的正確性和實時性,使CAN總線網絡仍具備完成信息交互的能力。
由于CAN總線的控制器和驅動器可以選擇不同芯片,為了提高整個CAN總線網絡的兼容性,可對CAN總線節點的電氣接口進行了統一設計:
(1) CAN控制器選擇SJA1000,頻率16 MHz;
(2) CAN驅動器選擇TJA1040(其管腳STB接低電平)或者82C250;
(3) 控制器與驅動器之間采用高速光耦進行隔離,光耦兩端分別由隔離直流電源進行供電。
1.2 總線架構設計
考慮到發控系統作為發射車的核心控制系統,其他分系統均受其控制,因此將發控設備作為CAN總線網絡的主節點,其他分系統作為從節點[10-11]。通過合理的應用層協議設計,保證從節點不主動發送數據,只有當接收到主節點的命令幀后才能夠回送應答幀。
整個CAN總線網絡結構如圖 2所示。

圖1 接口電路Fig.1 Interface circuit

圖2 CAN總線網絡結構Fig.2 Networkstructure of CAN Bus
2.1 CAN總線應用層協議設計
為了相對簡化軟件復雜程度,提升冗余熱備份功能的可靠性。通過應用層協議設計,定義了5類信息類型,可實現主從節點之間信息交互為“一問一答”式;從而能夠保證CAN總線的通訊是由主節點發起的,從節點是不允許主動發送數據的。整個CAN總線的故障判定和冗余軟切換由主節點來進行控制。
本文使用了CAN2.0B協議中的標準幀[12],由7個不同的位域組成,即幀起始、仲裁域、控制域、數據域、CRC(cyclic redundancy check)域、應答域和幀尾,如圖 3所示。
利用仲裁域提供的用戶自定義的11位,定義了發送方節點標識、接收方節點標識、總線標識、幀標識,如表 1所示。
信息類型的定義如表 2所示。
當傳輸的數據包長度不足8字節時,采用單幀格式(數據域通用格式見表3);當傳輸的數據包長度大于8字節時,采用多幀格式(數據幀通用格式如表4~6所示)。
2.2 冗余軟切換策略
CAN總線故障主要分3種情況:
(1) 數據幀發送錯誤;
(2) 在規定時間內未接收到應答幀;
(3) 接收到的應答幀無效。
針對以上3種故障應采取不同的檢測方式:
(1) 第1種故障情況,可通過底層驅動程序讀取總線控制器SJA1000的狀態寄存器看其發送標志位是否被置位,如已置位則表示數據幀發送成功,

圖3 數據幀格式
Fig.3 Format of data frame

表1 標準幀格式

表2 信息類型

表3 單幀數據域格式

表4 多幀數據域格式(首幀)

表5 多幀數據域格式(中間幀)

表6 多幀數據幀格式(尾幀)
反之則表示發送錯誤;
(2) 第2種故障情況,主節點發送數據幀后,啟動定時器,如在100 ms內沒收到應答幀,則認為故障;
(3) 第3種故障情況,當接收到應答幀時,應檢測應答幀ID,同時作應用層協議校驗,如ID有誤或校驗和錯誤都說明接收的應答幀無效。
針對上述的3種故障,需進行總線切換,主節點通過另外一條總線重新發送數據幀。
2.3 通訊流程設計
(1) 主節點
發控系統作為主節點,處于實時性、可靠性、安全性的考慮,選擇Vxworks作為操作系統。Vxworks作為嵌入式實時操作系統,主要具有如下特點[13]:
1) 多任務調度(采用基于優先級搶占方式,同時支持同優先級任務間的分時間片調度);
2) 任務間的同步(提供信號量機制);
3) 任務間的通信機制(提供消息隊列機制);
4) 中斷處理;
5) 定時器和內存管理機制。
主節點命令幀發送的任務架構和流程如圖4,5所示。命令幀發送任務與功能任務之間通過消息隊列聯系,共享待發送的CAN總線數據(即命令幀數據)。功能任務執行時,將需要發送的命令幀數據寫入命令幀存儲消息隊列中。命令幀發送任務周期性的監測命令幀存儲消息隊列狀態,一旦消息隊列中有了新的消息,立即讀取后,將其發送出去。
有可能有幾個功能任務在同時往消息隊列寫入消息,通過消息隊列的存儲容量和先進先出的特性,能夠保證所有的數據不會覆蓋丟失。一旦命令幀發送任務搶占CPU控制權后,會將所有的命令幀數據發送出去。

圖4 命令幀發送相關任務架構Fig.4 Sending- task infrastructure of command frame
主節點接收應答幀的任務架構和流程如圖6,7所示。同時建立A,B總線應答幀接收任務,監聽A,B總線的狀態。A,B總線應答幀接收任務與功能任務之間通過消息隊列聯系,共享接收到的CAN總線數據(即應答幀數據)。
對應每個應答幀,建立獨立的存儲消息隊列,是為了確保在多個功能任務同時進行CAN總線通信時,不會導致相互沖突。
(2) 從節點
從節點只需同時監聽A,B總線,一旦接收到命令幀,則按照通信協議的要求,按照前文所述的總線選擇原則,回送應答幀即可。

圖5 命令幀發送流程Fig.5 Sending flow of command frame
2.4 總線仲裁
由于軟件設計采取了多條命令并發處理的機制,會發生CAN總線不同的節點可能會同時發送數據的情況,導致數據發送沖突。此時,依靠CAN總線自身的總線仲裁機制,來避免出現這樣的問題。
CAN總線采取的是“非破壞性總線優先逐位仲裁”技術[14]:當多個節點開始傳送它們各自的報文時,標識符的每一位都被寫到總線上(高位在先,低位在后),而且能夠被每一個節點讀回。如果一個節點寫進了隱性位“1”而讀回顯性位“0”,它會知道另一個較低標識符號碼的(高優先權)節點正在訪問總線,于是停止傳送報文(丟失仲裁)并轉入接收狀態。

圖6 應答幀接收相關任務架構Fig.6 Receiving- task infrastructure of response frame

圖7 應答幀接收流程Fig.7 Receiving flow of response frame
通過這種仲裁技術,能夠確保CAN總線的實時性需求,讓優先級最高的節點先發送數據,低優先級的節點會在優先級高的節點結束發送后再發送數據,保證不會丟失任何數據。
為驗證本文設計的CAN總線網絡冗余熱備份實現效果,按圖 8所示的原理搭建試驗平臺。CAN總線上掛1個主節點、1個從節點和1個CAN總線監視器,CAN總線監視器能顯示主節點和從節點發送的數據。其中CAN 0通道為A總線,CAN 1通道為B總線。
CAN總線監視器采用周立功CAN- USB分析盒,界面中時間標識欄(TimeIdentifier)1個單位表示0.1 ms[15]。
以一組CAN通信數據為試驗范例,正常通信結果在CAN總線監視器上的顯示如圖 9的第0~7幀所示所示(回復間隔時間87.1 ms)。
命令幀:a0
應答幀(7幀組成的多幀):
01 07 d0 01 00 00 00 0b
82 01 01 01 01 00 00 04
83 0a 00 0a 00 94 11 b8
84 0b 05 00 06 00 07 00
85 08 00 09 00 0a 00 0b
86 00 0c 00 0d 00 8f 00
c7 cc e9
針對CAN總線的主要故障,分別作出以下3種模擬:
(1) 發送錯誤
主節點通過CAN 0通道模擬發送命令幀a0錯誤,CAN總線監視器顯示未收到此命令。隨后主節點切換到CAN 1通道發送命令幀a0,從節點通過CAN 1通道發送應答幀。整個通訊過程如圖10的第8~15幀所示。

圖10 發送錯誤Fig.10 Send error
(2) 應答超時
主節點通過CAN 1通道發送命令幀a0,從節點不應答(模擬應答超時)。112.1 ms(100 ms超時等待時間加上軟件一定的時間開銷)后主節點切換到CAN 0通道發送命令幀a0,從節點通過CAN 0通道發送應答幀。整個通訊過程如圖11的第16~24幀所示。
(3) 應答錯誤
主節點通過CAN 0通道發送命令幀a0,從節點同樣通過CAN 0通道應答幀,但模擬應答錯誤,其中最后一個數據為55(正確的為e9)。隨后主節點切換到CAN 1通道發送命令幀a0,從節點通過CAN 1通道發送正確應答幀(最后一個數據為e9),主節點停止發送命令。整個通訊過程如圖 12的第25~40幀所示。

圖11 應答超時Fig.11 Time out of answer

圖12 應答錯誤Fig.12 Answer error
本文針對發射車的實際特點,通過合理可行的軟硬件設計,研究建立了一種以發控系統為核心的車載CAN總線網絡冗余熱備份實現方法,其具有可靠性高、穩定性好、實時性強等特點。通過該方法,可以實現整車通信總線網絡的冗余熱切換,提升發射車任務可靠性,保障發射車作戰效能。該方法也可適用于其他類似的軍用復雜系統中。
[1] 趙偉忠.現場總線技術在導彈發射控制系統設計中的應用研究[D].上海:上海交通大學,2007. ZHAO Wei- zhong.The Application and Research of the Field Bus Technology in Design of The Missile Launch Control System[D].Shanghai:Shanghai Jiaotong University,2007.
[2] 方曉柯.現場總線網絡技術的研究[D].沈陽:東北大學,2006. FANG Xiao- ke.Research on Fieldbus Network Technology[D].Shenyang:Northeast University,2006.
[3] 鄔寬明.CAN總線原理和應用系統設計[M].北京:北京航空航天大學出版社,1996. WU Kuan- ming.Principle and Application System Design of CAN Bus[M].Beijing:Beihang University Press,1996.
[4] 郭曉松,王振業,于傳強,等.基于CAN總線的容錯冗余技術研究[J].計算機測量與控制,2009,17(1):60-62. GUO Xiao- song,WANG Zhen- ye,YU Chuan- qiang,et al. Research of the Fault Tolerant Redundant Technology Based on CAN Bus[J].Computer Measurement and Control,2009,17(1):60-62.
[5] 劉承智,丁國良,陳家文,等.基于分組的CAN總線容錯優先級分配策略[J].計算機測量與控制,2012,20(12):3321-3324. LIU Cheng- zhi,DING Guo- liang,CHEN Jia- wen,et al.Fault- Tolerant Priority Assignment Algorithm Based on Classification of CAN[J].Computer Measurement & Control,2012,20(12):3321-3324.
[6] 禹春來,許化龍,劉根旺,等.CAN總線冗余方法研究[J].測控技術,2003,22(10):28-41. YU Chun- lai,XU Hua- long,LIU Gen- wang,et al.Research of the Redundant Methods of CAN[J].Measurement & Control Technology,2003,22(10):28-41.
[7] 朱開銳,羅雄文.CAN總線與串行總線高速接口的設計[J].探測與控制學報,2009,31(S1):80-85. ZHU Kai- rui,LUO Xiong- wen.Design of High Speed CAN Bus and Serial Communication Interface[J].Journal of Detection & Control,2009,31(S1):80-85.
[8] 胡光永.CAN總線節點電路的設計與實現[J].微計算機信息,2006,22(2):1-3. HU Guang- yong.Design and Implementation of CAN Bus Node Circuit[J].Microcomputer Information,2006,22(2):1-3.
[9] 朱寶增,黎明也,嚴華,等.機載CAN總線節點的模塊化設計與實現[J].電子設計工程,2014,22(16):151-158. ZHU Bao- zeng,LI Ming- ye,YAN Hua,et al.Modular Design and Implementation of Airborne CAN Bus Node[J].Electronic Design Engineering,2014,22(16):151-158.
[10] 史久根,張培仁.CAN總線在實時系統中應用的研究[J].中國科學技術大學學報,2005,35(2):195-201. SHI Jiu- gen,ZHANG Pei- ren.The Study of CAN Network’s Application in Real- Time System[J].Journal of University of Science and Technology of China,2005,35(2):195-201.
[11] 蘇虎平,沈三民,劉文怡,等.基于冗余CAN總線的實時通信系統設計[J].自動化與儀表,2013,28(1):26-55. SU Hu- ping,SHEN San- min,LIU Wen- yi,et al.Real- Time Communication System Based on Redundancy CAN- Bus[J].Automation & Instrumentation,2013,28(1):26-55.
[12] 謝顏輝.基于CAN協議的現場總線儀表的設計[D].重慶:重慶大學,2002. XIE Yan- hui.Design of Fieldbus Instrument Based on CAN Protocol[D].Chongqing:Chongqing University,2002.
[13] 張梅.嵌入式操作系統VxWorks在導彈武器測試發射控制領域的可行性應用研究[J].航天控制,2004,22(4):91-96. ZHANG Mei.Study on Application of Embedded RTOS Vx Works in Test Launch and Control System for Missile Weapon[J].Aerospace Control,2004,22(4):91-96.
[14] 王桂榮,錢劍敏.CAN總線和基于CAN總線的高層協議[J].計算機測量與控制,2003,11(5):391-394. WANG Gui- rong,QIAN Jian- min.CAN Bus and the Higher Layer Protocol Based on CAN Protocol[J].Computer Measurement and Control,2003,11(5):391-394.
[15] CANNalyst- l單路CAN分析儀[EB/OL].[2016-06-15].http:∥www.zlgmcu.com/tools/canbus/CANalyst- l.asp. CANNalyst- l Single CAN Analyzer[EB/OL].[2016-06-15].http:∥www.zlgmcu.com/tools/canbus/CANalyst- l.asp.
Design Method of Launch Vehicle’s Dual- Redundancy CAN Bus
ZHAO Ming,CHEN Yu- xin
(Beijing Institute of Electronic System Engineering,Beijing 100854,China)
The design method of launch vehicle’s dual- redundancy CAN(controller area network) bus is summarized. The design of bus architecture, the electrical interface, the communication protocol and the software are introduced. Redundancy backup and auto- switching of launch vehicle’s information- interactive system come true. The mission reliability of launch vehicle is improved, and the operational efficiency of launch vehicle in the battlefield is ensured.
CAN(controller area network) bus; redundancy; hot backup;launch control; Vxworks; design method
2016-06-15;
2016-11-18 基金項目:有 作者簡介:趙明(1980-),男,四川樂山人。高工,碩士,研究方向為測發控技術。
10.3969/j.issn.1009- 086x.2017.04.026
TJ768.2;TP393.1
A
1009- 086X(2017)- 04- 0162- 10
通信地址:100854 北京市142信箱30分箱 E- mail:buaazm2000@163.com