劉明芹,付東翔,王亞剛
(上海理工大學光電信息與計算機工程學院,上海200093)
基于OPNET的CAN總線實時性的仿真與分析
劉明芹,付東翔,王亞剛
(上海理工大學光電信息與計算機工程學院,上海200093)
控制器局域網(CAN)的建模與仿真不僅能對CAN總線性能進行評估,而且能優化CAN總線網絡的設計。在研究分析CAN總線通信控制協議的基礎上,采用OPNET網絡仿真工具,運用網絡層次化建模方法,建立CAN總線通信網絡模型。通過該仿真模型,分析了CAN總線網絡中CAN節點優先級、傳輸速率、幀信息量以及填充位等因素對CAN總線網絡實時性的影響,從而為CAN總線網絡的設計與優化提供理論參考。
控制器局域網 OPNET 層次化建模 實時性
CAN(Control Area Network)即控制器局域網,是一種高性能、高可靠性、易開發和低成本的現場總線,是80年代初BOSCH公司為了解決現代中總舵的控制與測試儀器之間數據交換而開發的一種串行數據通信協議[1]。CAN總線采用帶優先級載波偵聽多路訪問/沖突避免(CSMA/CA)的通信機制,具有通信速率高,工作可靠,使用靈活和性價比高等優點,目前已廣泛應用于汽車、航空航天、航海、工業自動化、醫療器械等眾多領域[2]。
通過對復雜的通信系統進行有效的、逼真的建模仿真,才能對網絡進行綜合分析與評估,從而提出更好更優的解決方案。針對Petri網而設計的仿真工具OPMSE、VPNT有著仿真能力有限,計算力不足的缺點,而OPNET通過自帶的Proto-C能完成各種復雜協議算法、排隊策略等,能較好模擬CAN通信協議運行機制。目前,針對CAN網絡的建模與仿真的研究,已經取得一定的進展,但是缺少基于網絡層次化建模的CAN模型以及對整個CAN網絡系統的仿真與性能分析[3]。文中采用OPNET網絡仿真工具對CAN總線通信網絡進行網絡層次化模型,通過該仿真模型,主要分析了CAN總線網絡中CAN節點優先級、傳輸速率、幀信息量以及填充位等因素對CAN總線網絡實時性這一重要網絡性能的影響,從而為CAN總線網絡的設計及應用提供參考。
1.1 CAN總線簡介
CAN總線協議遵循OSI標準模型,但從體系結構上只定義了ISO/OSI模型的最低兩層:數據鏈路層和物理層。應用層是通過專門用于特定工業領域的各種協議或CAN用戶專用方案與物理媒體相連。在CAN技術規范中,數據鏈路層又分為邏輯鏈路層(LLC)子層和媒體訪問控制(MAC)子層,其中LLC子層涉及到報文過濾、超載通知以及恢復管理,而MAC子層是CAN協議的核心,MAC子層負責報文分幀、仲裁、應答、錯誤檢測和標定,與CAN通信性能密切相關[4]。
CAN的總線訪問控制采用了CSMA/CA的方法,這種方案采用主動避免碰撞而非被動偵測的的方式來解決碰撞問題。其通信流程如圖1所示,可簡要描述為:總線上任意節點可在任意時刻主動向網絡上其它節點發送信息,而不分主從,節點在請求發送信息時,首先偵聽總線狀態,若總線空閑(或等待至總線空閑)則開始發送。當多個節點同時發送產生沖突時,采用非破壞性位仲裁機制:借助ID標識符及逐位仲裁規則,低優先級主動停止發送,高優先級不受影響繼續發送,從而避免總線沖突,避免信息和時間發生損失。在發送過程中,發送節點對發送信息進行校驗,完成發送后釋放總線[5]。

圖1 CAN總線MAC子層協議通信流程Fig.1 Communication mechanism of MAC layer protocol
1.2 CAN實時性分析
通信的實時性是由通信的延遲時間來衡量的,即從報文產生時算起到將報文中的有效數據提供給目標節點所耗費的時間。CAN總線的信息延時主要由四部分組成:幀延時、CAN控制器延時、軟件延時、媒體訪問延時。文中就主要從信息幀和媒體訪問的角度進行了分析。
OPNET建模常采用層次化和模塊化的方式,將復雜的系統分解為不同的層次結構,每層完成一定的功能,一層內又由多個模塊組成,每個模塊完成更小的任務。OPNET所采用的是三層建模機制:最上層為網絡域,反映了網絡的拓撲結構特點;其次為節點域,由相應的協議模塊構成,反映了設備的特性;最底層為進程域,以狀態機的形式來描述協議,反映了協議的具體功能是如何實現的[6]。
2.1 網絡模型
網絡模型通常由子網、通信節點和通信鏈路三個主要模塊組成。子網(Subnetworks)在節點中級別最高,可以封裝其它網絡層對象。通信節點(Communication Node)對應網絡設備,也包括一些業務配置模塊。通信鏈路(Communication Links)對應于現實網絡中的鏈接鏈路,也包括邏輯鏈路[7]。CAN總線在OPNET中建立的網絡結構如圖2所示,這5個節點之間相互獨立,代表實際網絡中CAN節點。每個CAN節點通過雙向的支線(tap)接入總線(bus),可以設定的參數有波特率、信息幀格式以及傳輸錯誤模型等。

圖2 CAN網絡在OPNET中的拓撲結構Fig.2 Network layer model of CAN bus
2.2 節點模型
采用OPNET層次化的建模方法,如圖3所示,可將節點模型可分為應用層(Application Layer)、數據鏈路層(Data Link Layer)和物理層(Physical Layer)三層。其中,RX和TX分別為總線型收發信機,組成物理層,主要負責從CAN總線上接收數據給MAC和把MAC上數據發送給CAN總線。CAN_ LLC模塊與MAC模塊組成數據鏈路層,主要負責數據的封裝/解封、媒體訪問控制以及錯誤檢測處理。消息源(SRC)和接收器(SINK)模塊組成最簡單的應用層,SRC與SINK分別表示應用層中數據的產生與接收。

圖3 CAN節點模型Fig.3 Node model of CAN bus
2.3 節點模型
節點域建模的方法是基于節點模型,每個模型實現節點行為的某一功能,多個節點模型的集合構成功能完整的節點。很多節點采用類似于OSI或TCP/IP參考模型,按協議層次分為不同的模型一個隊列或處理器模塊模擬每一層協議。模型間用包流線或統計線相連。
MAC子層的通信處理進程模塊主要包括數據發送、數據接收以及錯誤處理。基于CAN總線中MAC通信機制及OPNET仿真方式,MAC模塊的仿真??烊鐖D4所示。其中,數據發送過程由idle、FRM_START、DEF_WAIT、TX_START、ARBITRATION、TX、ACK、FRM_END組成;數據接收過程由idle、RX_WAIT、RX、ACK組成。這兩個過程以及中間錯誤處理模塊一起構成整個的MAC子層通信模塊。

圖4 MAC子層模型Fig.4 Model of MAC sub-layer
利用已建立的CAN總線網絡模型進行仿真,通過對仿真結果的分析來研究CAN總線網絡中CAN節點優先級、傳輸速率、幀信息量以及填充位等因素對CAN網絡實時性的影響。
3.1 仿真環境配置
CAN總線網絡中共有5個CAN節點,節點0優先級最高,其余依次降低。網絡傳輸速率可設置為250 kbit/s、500 kbit/s、1 Mbit/s。CAN網絡中所有發送、接收的幀信息皆定義為數據幀,所以單幀信息量的大小主要取決于數據域中包含的字節量,其中字節量取值范圍為1~8。數據幀發送周期單位為ms,其詳細信息如表1所示。

表1 OPNET中CAN總線網絡配置Table 1 Network configuration of CAN bus in OPNET
3.2 仿真試驗1
仿真試驗1用于檢驗幀信息的優先級對于CAN總線實時性的影響。該試驗將波特率設為500 kbit/s,數據域長度設為4個字節,發送周期都設置為5 ms,使其同時發送以產生總線競爭。取Node0、Node2、Node4的幀信息ETE延時觀察分析,如圖5所示。

圖5 優先級與ETE延時的關系Fig.5 Relationship between priority and ETE delay
分析可得:在CAN總線傳輸速率、傳輸幀信息量相同的情況下,CAN總線中幀信息的優先級越高,ETE時延越小,而優先級越低,ETE延時就越大。因此,在實際CAN總線網絡設計中,可設置較高的幀信息優先級來提高幀信息實時性。
3.3 仿真試驗2
該仿真試驗將檢驗CAN總線網絡傳輸速度對其實時性的影響。在自定義的鏈路模型中將傳輸速率分別設置為250 kbit/s,500 kbit/s及1 Mbit/s,分別進行仿真,幀信息ETE延時如圖6所示。

圖6 傳輸速率與ETE延時的關系Fig.6 Relationship between transmission rate and ETE delay
分析可得:在1 Mbit/s的傳輸速率下,幀信息ETE延時分別為500 kbit/s條件下和250 kbit/s條件下的54%和28%,說明在CAN總線網絡中傳輸速率越高,ETE時延越小,實時性越高。因此,在CAN總線網絡設計中,在適當情況下,可通過提高網絡傳輸速率來減小時延,提高整個網絡實時性。
3.4 仿真試驗3
該仿真試驗將檢驗CAN總線網絡中幀信息量大小對其實時性的影響。該試驗將波特率設為500 kbit/s,各節點數據域長度和發送周期如表1中試驗3所示。圖7、圖8分別為字節量、擴展幀及填充位與ETE延時的關系。

圖7 字節量與ETE延時的關系Fig.7 Relationship between byte and ETE delay

圖8 擴展幀及填充位與ETE延時的關系Fig.8 Relationship between extended frame, bit stuffing and ETE delay
在圖7中,節點Node0、Node1、Node2、Node4發送數據的數據域中字節量分別是1、2、4、8。結果表明,隨著字節量的增多,幀信息ETE延時也不斷增加,并且低優先級的節點ETE延時增加的更多。圖8中,4條線分別是含有8個字節量無填充位的標準幀、有填充位標準幀、無填充位擴展幀、有填充位擴展幀。其結果表明,擴展幀信息ETE延時多于標準幀的,有填充位的ETE延時多于無填充位的。這與文獻[8]中關于擴展幀及填充位對于CAN總線實時性分析相符合,進一步也說明結論的正確性。因此,在實際CAN總線應用中,盡量使用標準幀及減小數據域中字節量可以適當提高CAN總線的實時性。
文中采用OPNET網絡仿真軟件,通過層次化和模塊化的方式,對CAN總線通信網絡進行建模與仿真,研究分析了優先級、傳輸速率、幀信息量以及填充位等因素對于CAN總線實時性的影響,真是反映了CAN總線的特點,對于CAN總線實際應用提供一定的參考與指導,而且這種層次化與模塊化的仿真方式也同樣可以應用于其它對象的研究與分析。
[1] 候明,杜奕.基于CAN總線的接口電路設計[J].通信技術,2008,41(07):138-140.
HOU Ming,DU Yi.Interface Circuit Design based on CANBus[J].CommunicationsTechnology,2008, 41(07):138-140.
[2] AUDSLEY N,BURNS A,RICHARDSON M.Applying New Scheduling Theory Static Priority Preemptive Scheduling [J].Software Engineering Journal,1993(09):284-292.
[3] 李曉汀,丁凡,熊華鋼.基于OPNET的CAN網絡建模與仿真[J].北京航空航天大學學報,2009,35(03): 284-287.
LI Xiao-ting,DING Fan,XIONG Hua-gang.CAN Modeling and Simulation based on OPNET[J].Journal of Beijing University of Aeronautics and Astronautics,2009, 35(03):284-287.
[4] 張鳳登.現場總線技術與應用[M].上海:科學出版社,2008:132-140.
ZHANG Feng-deng.Field Bus Technology and Application[M].Shanghai:Science Press,2008:132-140.
[5] 韋雪潔,劉金梅,姚曉瓊.CAN總線通信過程實時性能的仿真計算[J].兵工自動化,2008,27(06):40-42.
WEI Xue-jie,LIU Jin-mei,YAO Xiao-qiong.Simulation of Real-Time Communication to CAN[J].Ordnance Industry Automation,2008,27(06):40-42.
[6] 張帥帥,鄭龍,王玉文.基于OPNET的Link11數據鏈仿真設計[J].通信技術,2011,44(02):62-64.
ZHANG Shuai-shuai,ZHENG Long,WANG Yu-wen.Simulation Design of Link-11 based on OPNET[J].Communications Technology,2011,44(02):62-64.
[7] 龍華.OPNET Modeler與計算機網絡仿真[M].西安:西安電子科技大學出版社,2006:31-33.
LONG Hua.OPNET Modeler and Computer Network Simulation[M].Xi'an:Xi'an Electronic and Science University Press,2006:31-33.
[8] 陳曦,劉路源,呂偉杰.基于排隊論的CAN總線消息響應時間建模與分析[J].天津大學學報,2012,45(03): 228-235.
CHEN Xi,LIU Lu-yuan,LU Wei-jie.Modeling and A-nalysis of Response Time of CAN Bus based on Queueing Theory[J].Journal of Tianjin University,2012,45(03): 228-235.
LIU Ming-qin(1988-),male,graduate student,majoring in embedded system and fieldbus.
付東翔(1971—),男,副教授,主要研究方向為嵌入式系統,現場總線;
FU Dong-xiang(1971-),male,associate professor,mainly engaged in embedded system and detection technology.
王亞剛(1967—),男,教授,主要研究方向為先進過程控制、無線傳感器通信網絡研究。
WANG Ya-gang(1967-),male,professor,principally working at advanced process control and wireless sensor network.
Simulation and Analysis of CAN Bus Real-time Performance based on OPNET
LIU Ming-qin,FU Dong-xiang,WANG Ya-gang
(School of Optical-Electrical and Computer Engineering,University of Shanghai for Science&Technology,Shanghai200093,China)
Modeling and simulation of a controller area network(CAN)could evaluate and optimize CAN bus network design.Based on research and analysis of CAN communication protocol,CAN communication network model is developed with OPNET network simulation tool and by layered modeling method.This paper mainly analyzes the influence of node priority,transmission rate,information frame and bit stuffing on the real-time performance of CAN bus,thus to provide a theoretical reference for the design and optimization of CAN based network system.
CAN bus;OPNET;layered modeling;real-time performance
TP915
A
1002-0802(2014)03-0281-05
10.3969/j.issn.1002-0802.2014.03.010

劉明芹(1988—),男,碩士研究生,主要研究方向為嵌入式系統、現場總線;