宋小慶,任維彬,2,陳克偉,熊全謙
(1.裝甲兵工程學院控制工程系,北京100072;2.65545部隊,遼寧普蘭店116200)
CAN總線屬于總線式串行通信網(wǎng)絡[1],采用CSMA/CA機制處理通信過程中所產(chǎn)生的信息沖突。因此,信息傳輸?shù)膶崟r性與信息當時所擁有的優(yōu)先地位相關,而這也直接影響到整個總線的傳輸性能。鑒于總線網(wǎng)絡是一個強耦合、離散的信息系統(tǒng),因此,直接通過解析法建模進行分析具有一定難度。而Petri網(wǎng)由于其形式化行為描述特征,而被廣泛應用于總線通信系統(tǒng)中,如隨機Petri網(wǎng)(Stochastic Petri Net,SPN)在航空綜合電子系統(tǒng)中已經(jīng)得到了運用[2]。目前,Petri網(wǎng)主要分為2類:隨機Petri網(wǎng)和有色 Petri網(wǎng)(Colored Petri Net,CPN)。隨機Petri網(wǎng)側(cè)重隨機過程的分析,不能對總線網(wǎng)絡進行較為全面的分析;而有色Petri網(wǎng)可以對系統(tǒng)行為進行準確的描述,從而準確地建立總線性能仿真模型。本文采用有色Petri網(wǎng),以CPN Tools為工具建立基于CAN總線競爭機制模型,并以連接了5個節(jié)點的某型戰(zhàn)車總線網(wǎng)絡為例,進行性能仿真與分析。
1962年,德國的Carl Adam Petri在他的博士論文《用自動機通信》中首次使用網(wǎng)狀結(jié)構模擬通信系統(tǒng)[2],這種系統(tǒng)模型后來以Petri網(wǎng)命名。
CPN是在基本Petri網(wǎng)的基礎上發(fā)展起來的一種高級Petri網(wǎng)[3]。CPN中的主要元素有:帶顏色的標識、庫所、變遷和弧。建模過程中,將綜合電子系統(tǒng)狀態(tài)、消息、數(shù)據(jù)和指令等信息描述為標識,信息的不同類型用不同顏色集加以區(qū)分;將這些信息的駐留或緩存區(qū)用庫所來描述;報文發(fā)送接收、命令執(zhí)行等事件用變遷來描述;弧則描述了信息的流向。
CPN Tools是丹麥Aarhus大學CPN小組對CPN仿真軟件Design/CPN的再設計。它使用了新的、更快的CPN仿真器和更強的網(wǎng)絡進行語法檢查,并且可以使用CPN ML語言來定義規(guī)范和描述網(wǎng)絡。
圖1為某型車輛的CAN總線拓撲結(jié)構[4],該總線網(wǎng)絡上共掛接了5個節(jié)點,其優(yōu)先級按照其節(jié)點1到節(jié)點5依次遞減。
圖1 CAN總線拓撲結(jié)構
總線網(wǎng)絡工作時,消息在總線上傳輸包括3個階段:
1)通過總線發(fā)送節(jié)點進行發(fā)送;
2)根據(jù)節(jié)點優(yōu)先級獲取消息對總線占用權,實現(xiàn)消息在傳輸信道上的傳輸(該部分包括優(yōu)先級仲裁以及傳輸延遲);
3)判定總線接收節(jié)點通過驗收濾波,被相應總線節(jié)點判定接收。
CAN總線網(wǎng)絡消息傳輸過程如圖2所示。初始化代表一個動態(tài)的分配過程,將所有CAN幀根據(jù)其所具有的標志位ID,指派到具有優(yōu)先級差別的5個CAN節(jié)點上;優(yōu)先級仲裁過程代表依據(jù)CSMA/CA的總線仲裁原則,對同一時刻將要發(fā)送到總線上的CAN幀進行仲裁,將具有最高優(yōu)先級的CAN幀取出,送到總線上進行發(fā)送;CAN BUS代表總線,同一時刻只能容納一幀消息幀;濾波代表根據(jù)每一幀消息幀的目的標識位,進行發(fā)送到達指定CAN節(jié)點的過程;目的節(jié)點代表消息幀將要送達的指定節(jié)點。
圖2 CAN總線網(wǎng)絡消息傳輸過程
初始化模塊如圖3所示。其中:變遷ComList代表接收從服務器端經(jīng)底層接口傳送過來的命令表,將其存放在庫所List中;變遷Distri代表按照指定ID位將命令幀指派到各個節(jié)點的過程;庫所Cache1,2,3代表各個節(jié)點緩存,存放屬于各個節(jié)點的CAN幀。
圖3 初始化模塊
CAN幀發(fā)送模塊如圖4所示。其中:變遷Sort1代表將節(jié)點緩存中的CAN幀按照優(yōu)先級順序進行排序的過程;庫所Tok1中存放節(jié)點使能令牌,當Tok1中存在使能令牌時,變遷Sort1被激活,可以完成排序并將排序后的CAN幀組成的表送入CAN節(jié)點Nod1中;變遷First1代表取出優(yōu)先級最高的一幀送入發(fā)送緩沖區(qū)進行發(fā)送的過程;庫所Waiting代表發(fā)送緩沖區(qū)。
圖4 CAN幀發(fā)送模塊
CAN幀接收模塊如圖5所示。其中:變遷TNod1代表將獲得總線使用權的CAN幀發(fā)送到其目的節(jié)點Nod1中;變遷Return1代表將節(jié)點使能令牌歸還給庫所Tok1。
圖5 CAN幀接收模塊
優(yōu)先級仲裁模塊如圖6所示。其中:變遷Filter1代表具有較高優(yōu)先級的CAN幀發(fā)送過程;Filter2代表發(fā)送具有相對較低優(yōu)先級的變遷;CacheA,B代表發(fā)送緩沖區(qū);變遷Sending1,2代表向總線發(fā)送通過競爭獲得總線使用權的CAN幀的過程。在2條并行的流程中,通過反庫所Anti12結(jié)構的設置[5],實現(xiàn)當變遷Filter1,2同時使能時,變遷Filter1具有使能令牌的優(yōu)先使用權,而當Filter1具有總線使用權時,變遷Filter2無法獲得使能令牌,從而失活[6-7]。變遷Sending1激發(fā)之后,將使能令牌歸還,變遷Filter2使能。該過程仿真當同時有一個以上節(jié)點具有幀等待發(fā)送時,可以根據(jù)優(yōu)先級實現(xiàn)具有較高優(yōu)先級的幀優(yōu)先發(fā)送,具有較低優(yōu)先級的CAN幀讓出總線使用權,等待高優(yōu)先級發(fā)送完畢后繼續(xù)向總線發(fā)送。
圖6 優(yōu)先級仲裁模塊
濾波模塊如圖7所示。其中:庫所CANBUS代表總線上有CAN幀即將向目的節(jié)點發(fā)送的狀態(tài);變遷TNod代表根據(jù)CAN幀的目的節(jié)點標識位,通過設置警戒函數(shù),將標識位與目的節(jié)點不相符的幀過濾除去,將符合的CAN幀發(fā)送到目的節(jié)點的過程;庫所Nod代表目的節(jié)點。
圖7 濾波模塊
模型的運行過程主要通過CPN ML語言來實現(xiàn)。CPN ML是一種面向表達式的函數(shù)式語言[8],是對標準ML的拓展,它可以直接用CPN的概念和ML語言的功能對系統(tǒng)進行模型的描述和控制,實現(xiàn)定量的仿真和性能分析。模型實現(xiàn)流程如圖8所示。
圖8 模型實現(xiàn)主要流程
在建成的模塊化的基礎上,依據(jù)抽象出來的總體模型,結(jié)合Petri網(wǎng)原理中標識與顏色集、標識的狀態(tài)與庫所、標識的動作與變遷的對應關系,可以將模型劃分為3個基本層次:初始化層、優(yōu)先級仲裁層和濾波層。各層主要功能如表1所示,基本層次如圖9-11所示。
表1 層次功能表
圖9 初始化層
圖10 優(yōu)先級仲裁層
圖11 濾波層
CAN總線系統(tǒng)的性能指標主要包括總線的負載、總線的利用率和總線效率等??偩€負載和總線效率計算公式如下:
總線負載=數(shù)據(jù)幀傳輸時間/CAN卡激活時間;
總線效率=有效數(shù)據(jù)部分傳輸時間/數(shù)據(jù)幀傳輸時間。
本文在使用CAN總線進行通信時采用的是數(shù)據(jù)幀。數(shù)據(jù)幀由7個不同的位域組成,分別為幀起始、仲裁域、控制域、數(shù)據(jù)域、CRC域、ACK域和幀結(jié)束,其中,數(shù)據(jù)域的長度可以為0。數(shù)據(jù)幀結(jié)構如表2所示。
表2 數(shù)據(jù)幀結(jié)構
其中:幀起始以一個比特的顯位出現(xiàn);仲裁域由29位標識符、替代遠程請求位、標識位和遠程發(fā)送請求位組成;控制域包括4位的數(shù)據(jù)長度碼、IDE顯性位和保留位;數(shù)據(jù)域可以包括0~8個字節(jié),位數(shù)為8n(0≤n≤8);CRC域取16位;ACK域包括應答間隙和應答界定符2位;幀結(jié)束由7個隱位組成的標志序列界定。
設總線負載為η,總線效率為θ,每位數(shù)傳輸時間為t',CAN激活時間為t,則可得
在建立了CAN網(wǎng)絡模型基礎上,本文對CAN網(wǎng)絡的網(wǎng)絡實時性能指標進行了仿真分析。仿真分析時,網(wǎng)絡上每個節(jié)點的具體信息如表3所示。
表3 CAN總線網(wǎng)絡信息列表
仿真結(jié)果得出總線利用率與節(jié)點之間關系如表4所示。
表4 總線利用率與節(jié)點關系
通過模型仿真得到如圖12所示關系曲線,對指定的模型消息幀進行分析,在總線上傳送的幀數(shù)不斷增加的過程中,總線利用率不斷提升。圖中前3段折線反映總線利用率上升的速度在逐漸加快,這主要是由于每一個CAN幀所攜帶的數(shù)據(jù)長度變大。從表3的周期變化中可以看出:由于幀間空間變大,總線空閑時間相對變長,從而使得總線利用率增長速度有所減緩。
圖12 總線利用率隨幀數(shù)變化曲線
當在模型中發(fā)送表3中CAN幀的過程中,模型仿真可得其總線效率隨時間變化關系,如圖13所示(橫坐標有縮放)。
圖13 總線效率隨時間變化曲線
由圖13可見:影響總線效率的主要因素是數(shù)據(jù)的長度,并且和幀的周期密切相關。模型仿真的結(jié)果符合式(1)、(2)的CAN總線性能指標理論計算公式,驗證了模型的正確性。
從定性的角度,進一步分析基于有色Petri網(wǎng)的CAN總線模型的合理性。
1)從CAN總線的功能角度,模型實現(xiàn)了CAN總線的數(shù)據(jù)傳輸功能,反映了CAN總線自身的功能和特點。
2)從CAN總線的靜態(tài)結(jié)構特性角度,模型實現(xiàn)了CAN總線的單級總線拓撲結(jié)構,反映了CAN總線的靜態(tài)結(jié)構特性。
3)從CAN總線的動態(tài)行為特性角度,模型實現(xiàn)了CAN總線的多主競爭機制,模擬了CAN總線的動態(tài)運行,反映了CAN總線的動態(tài)行為特性,因而更具合理性。
本文在CPN Tools環(huán)境下基于有色Petri網(wǎng)建立了CAN總線模型,并以某型車輛作為仿真實例,通過定性和定量分析,驗證了模型的合理性和正確性。下一步將進行CAN總線算法研究以及對多級總線網(wǎng)絡互聯(lián)的建模與研究。
[1]饒運濤.現(xiàn)場總線原理與應用技術[M].北京:北京航空航天大學出版社,2006:22.
[2]張健東,吳勇,高曉光.基于DSPN的綜合航空總線系統(tǒng)的性能評價[J].西北工業(yè)大學學報,2005,23(2):244 -248.
[3]袁崇義.Petri網(wǎng)原理與應用[M].北京:電子工業(yè)出版社,2005:2.
[4]宋小慶,李匡成,張豫南.軍用車輛綜合電子系統(tǒng)總線網(wǎng)絡[M].北京:國防工業(yè)出版社,2010:115-124.
[5]王勝德.維修過程模型及其優(yōu)化技術的研究[D].北京:北京理工大學,2006.
[6]Mulyar N A.Patterns in Colored Petri Nets[EB/OL].(2005-04 -15) [2010 -07 -16].http:∥wiki.daimi.au.dk/cpntoolshelp/
[7]Welters M.Building Logistic Games in CPN Tools[EB/OL].(2005 -01 -22) [2010 -07 -16].http:∥wiki.daimi.au.dk/cpntools-help/
[8]Paulson L C.ML程序設計教程[M].柯韋,譯.北京:機械工業(yè)出版社,2005:3 -4.