王璐杰 張鳳登 劉魯平 吳俊鵬



摘 要:針對CAN FD總線相較于CAN總線有更高的傳輸速率,但不能精確地限制給定報文的最壞情況響應時間問題,從CAN FD報文格式出發,通過分析影響報文最壞響應時間的阻塞因數,建立CAN FD報文時間響應模型并利用可調度性條件限制報文最壞情況響應時間。在模型中采用固定優先級的調度方案,同時提出利用報文截止時間分析報文及系統的可調度性。實驗使用TrueTime工具箱進行仿真,在波特率為IMbps和SMbps時,各節點報文響應迅速,最壞響應時間的值遠遠小于各報文截止期。同125kbps和500kbps傳輸速率下的報文最壞響應時間相比,lMbps和SMbps傳輸速率下的報文響應較為迅速。實驗結果能夠充分體現出CAN FD總線在較高的有效傳輸負載和高傳輸速率下的報文傳輸優勢。
關鍵詞:CAN總線;CAN FD;報文響應時間;報文傳輸
DOI: 10. 11907/rjdk.192554
開放科學(資源服務)標識碼(OSID):
中圖分類號:TP393
文獻標識碼:A
文章編號:1672-7800( 2020)001-0256-06
0 引言
CAN( Controller Area Network)即控制器局域網,是德國Bosch公司20世紀80年代初為解決汽車中大量控制與測試儀器之間的數據交換而開發的一種串行數據通訊協議…,是國際上應用最廣泛的開放式現場總線之一。作為一種技術先進、可靠性高、功能完善、成本合理的遠程網絡通信控制方式,CAN總線已廣泛應用于自動化控制系統中。然而,隨著系統復雜性和通信量的增加,傳統的CAN總線由于帶寬的限制已經難以滿足市場應用需求。為了進一步提高傳輸速率,CAN總線的升級版-CAN FD( CAN with Flexible Data-Rate)應運而生。因此在2011年,Bosch發布了CAN的替代總線CAN FD[2]。CAN FD繼承了CAN總線的絕大多數特性,即沒有改變物理層、采用雙線串行通訊協議、基于非破壞性仲裁技術、有可靠的錯誤處理和檢測機制等;并且,CAN FD彌補了CAN總線在總線帶寬和數據長度方面的不足。
文獻[3]分析了影響CAN報文響應時間的阻塞因數,即低優先級報文的阻塞和高優先級報文的延遲。但未給出計算報文最壞傳輸時間Sm的一般公式;文獻[4]分析了計算CAN標準幀和擴展幀最壞傳輸時間Sm的一般性公式,但沒有考慮報文釋放抖動;文獻[5]通過分析CAN FD報文幀格式、報文傳輸的阻塞因數,給出計算報文最壞傳輸的一般性公式,但是未考慮CAN FD報文在波特率切換時對傳輸時間的影響,也未在不同傳輸速度下進行對比實驗。本文給出了計算報文最壞傳輸時間Sm的一般公式,在考慮到CAN FD報文在波特率切換時對傳輸時間影響的前提下,展開了不同傳輸速率的實驗并進行了實驗結果對比。
1 CAN FD總線變化
相對于CAN總線,CAN FD總線主要有如下變化:
(1)新數據場長度。數據場由在數據幀中傳輸的數據組成,它在CAN格式幀中包含0-8個字節,CAN FD對數據場的長度作了擴充,CAN FD格式幀中數據場包含0-64個字節。
(2)兩種比特率。CAN FD采用了兩種比特率,從控制場的BRS位到CRC場的界定符為可變速率,當到達CRC界定符的(第一位)采樣點時,它從數據段速率切換回仲裁段速率[2.6-7]。兩種速率各有一套位時間定義寄存器,它們不僅采用了不同的位時間單位(TQ),而且位時間各段的分配比例也可以不同。
(3)新添加位。在CAN FD格式幀中新增加了3個控制位。①EDL:擴展數據長度位,它只存在于CAN FD格式幀中,可用來區分CAN格式幀和CAN FD格式幀,該位為隱性位時表示CAN FD報文,該位為顯性位時表示CAN報文;②BRS:位速率開關位,該位決定位速率是否在CAN FD格式幀內切換。如果該位為隱形位,則比特率從仲裁階段的標稱比特率切換到數據階段預配置的替代比特率,如果它為顯性位,則不切換比特率;③ESI:錯誤狀態指示位,由錯誤主動節點標志顯性,由錯誤被動節點標志隱性。
(4)新CRC算法。CAN FD節點對不同的格式幀使用不同的CRC生成多項式,CRC_15多項式用于CAN格式的所有幀,CRC_17多項式用于CAN FD格式的幀,數據字段為16個字節,CRC_21多項式用于數據字段大于16字節的CAN FD格式幀。①CRC_15=X15+X'4+X10+X8+X7+X4+X3+1;②C RC_17=X17+X16+X'4+X13+X11+X6+X4+X3+X2+X+1;③CRC_21=X21+X20+X13+X11+X7+X4+X3+1.
(5)新DLC編碼。數據場中的字節數由DLC指示,其編碼在CAN和CAN FD中不同。1-8字節的數據長度的DLC編碼相同,在CAN FD中有更長的數據場,因此有特有的9-64字節數據長度的DLC編碼。DLC編碼方式如表1所示。
(6)遠程數據請求。CAN FD格式中沒有遠程幀,但每個CAN FD節點能夠以標準CAN格式發送遠程幀。
2 CAN FD模型分析
2.1 報文收發規則
每當總線空閑時,任何節點均可以發送報文。如果兩個或多個節點同時開始發送報文,則總線通過使用載波監聽多路訪問( CSMAICA)解決訪問沖突。如果同時發送具有相同標示符的數據幀和遠程幀,則數據幀優先于遠程幀。在仲裁期間,每個節點將自己發送的位電平與總線上監視的電平進行比較。如果這些電平相等,則單元可以繼續發送。當發送隱性電平(邏輯‘1)并監視顯性電平(邏輯‘0)時,該節點仲裁失敗退出仲裁。
2.1. 1報文有效接收
ACK場包含ACK間隙和ACK界定符。在ACK字段中,發送器發送隱性位。已正確接收到有效報文幀的接收器在ACK間隙時發送一個顯性位重寫發送器的隱性位以報告這一點。在CAN FD格式中,所有節點接受重疊ACK位的兩位顯性位作為有效ACK,以補償接收器之間的相移。
報文被認為有效的時間點對于報文發送器和接收器而言是不同的。如果在“幀結束”結束前沒有錯誤,則該報文對發送器有效。根據優先級報文會自動重傳,在報文被破壞之后。為了能夠與其它報文競爭總線訪問,只要總線空閑,重傳就必須開始。重傳嘗試的次數可以通過配置被限制到特定值。默認情況下,重傳次數不受限制。如果在幀結束的最后一個位之前不出現錯誤,則報文對接收器是有效的。
2.1.2 位流編碼
CAN FD格式幀中[8]的比特流根據不歸零(NRZ)方法進行編碼。無論何時發送器在要發送的比特流中檢測到5個連續比特的相同值,它自動將極性相反的比特(稱為填充比特)插入到實際發送的比特流中。接收器將識別相同值5個連續位的序列,并丟棄填充位。在CAN FD格式幀中,采用新的CRC填充方法[9]。如圖1所示,填充位應當被插入在固定位置。即使前一個字段的最后一個位不滿足CAN FD填充條件,在CRC序列的第一個位之前也應該有固定的填充位。在CRC序列的每4個比特位之后固定插入一個極性相反的比特位。接收器應從CRC校驗的比特流中丟棄固定填充比特,如果固定填充比特具有與其前一比特相同的值,則它將檢測填充錯誤。
2.2 調度理論
目前,常用的可調度性分析方法有兩種[3]:
(1)基于CPU利用率的分析方法。這種方法首先算出處理器的利用率,繼而使用一個測試條件(與該利用率相關)去鑒定系統的可調度性。
(2)基于最大響應時間的分析方法。分析過程被該辦法分成兩個階段:分析和判定。分析階段分析每個任務的最大響應時間,判定階段將分析階段得到的任務最大響應時間與該任務的截止時間相比較。若每個任務的最大響應時間全小于或等于其截止期,那么該系統可調度。
CAN FD總線上的報文調度類似于任務的固定優先級調度。對于最高優先級報文的最壞情況響應時間,能夠很容易確定并計算,而對于較低優先級的報文,不能如此容易地獲得最壞情況響應時間,由此產生的一般性問題是,在CAN FD上只有最高優先級報文才能得到保證。
2.2.1 任務模型
為了保證任務遵守時間約束,實時系統執行必須了解任務的定時特性。
(1)到達規律。隨著時間的推移,任務(Ti)激活請求的重復情況,一般分成4類(見圖2)。①周期性到達:任務激活請求是周期性的,設周期為pi;②零星到達:任務激活請求連續兩次到達之間存在一個最短時間間隔,該最短到達間隔大于周期pi;③非周期性到達:任務到達不能以任何規律表征,可在任何時刻到達,零星任務是非周期性任務的一種特殊情況;④到達一個滑動窗口:某個任務到達一個滑動時間窗口Wi的次數最多為ni次。洛朗·喬治指出,一個任務ni次到達一個窗口Wi等同于周期為Wi的ni個獨立的零星任務,應該使用零星模型研究該模型。
(2)激活時刻。任務激活時刻是指任務被激活的時間點,當把一個特定的激活方案強加給任務時,任務被認為是具體的,如果沒有對任務的激活時刻作出假設,那么任務被認為是不具體的。例如,對于周期性到達規律,研究一個具體任務模型意味著定義任務的第一次激活時刻。
(3)執行時間。它是指任務本身在處理器內的執行時間。一般情況下,最壞情況執行時間(Ci)被作為量化參數,在驗證是否遵守與任務相關的時間約束時,將它作為所用方法的一個重要輸入參數。
(4)響應時間。它是任務的激活請求時刻和任務執行結束時刻之間的時間間隔,其中,最壞情況響應時間(Ri)表示任務的最長響應時間。該參數不僅與所用調度算法有關,而且與更高優先級任務引入的時間延遲有關。任何情況下,Ri≥Ci始終成立。
2.2.2 CAN FD接口
如圖3所示,主機處理器正在將一個報文排列到用于標識符“1”的插槽中;標識符“4”的插槽已經被另一個報文占用[10]。
這些插槽通常作為在處理器之間共享的雙端口存儲器實現。當總線空閑時,接口處理器將嘗試發送報文“1”。對于給定標識符,不存在報文隊列:如果在報文“1”正在被發送時,另一個具有相同標識符[5]的報文被排隊,則該時隙中的報文被覆蓋和破壞。其中隱含了周期性排隊報文的截止時間:報文必須在后續報文排隊之前發送。
3 CAN FD報文響應時間模型分析
基于上述分析,本文對CAN FD報文時間響應模型進行分析。CAN FD主要是基于固定優先級的總線[11-13],分配了唯一標識符的CAN FD報文。假設給定報文周期性地排隊(即每隔一段時間,報文源使具有相同大小和相同標識符的報文排入隊列)。給定報文在一個站點上的排隊窗口內排隊,后續排隊窗口之間具有最小的時間間隔(報文不必是嚴格周期性的:報文可以是零星的,但報文排隊之間必須有最短時間),如圖4所示。
在實時系統調度中如果消息響應時間小于消息截止時間,則該消息被認為是可調度的。為了限制CAN FD報文的響應時間,本文利用可調度性條件以限制CAN FD報文最壞情況響應時間。響應模型由{Jm,Sm,Tm,Dm,Qm)5個時間參數決定,如圖5所示。
假設給定報文m的周期為Tm,報文m列隊的釋放抖動時間為Jm,即報文到達和被釋放之間的最壞情況延遲。用bm表示報文中的字節數,Sm表示在總線上傳輸報文的最壞情況傳輸時間[15],由于CAN FD總線上一個報文按照每5個相同極性的比特位之后要添加一個極性相反的比特位,一個報文所能添加的最多填充位即為最壞情況,傳輸這樣一個報文的時間就是最壞傳輸時間,因此.Sm是bm的函數。Dm為報文m的截止時間,給定報文m的最壞情況響應時間用Rm表示。本文采用WCRT(最壞情況響應時間)分析網絡中的延遲時間,主要考慮兩種延遲:排隊延遲和傳輸延遲。
Rm= Qm+ Sm
(1)
其中,Qm是一個報文的阻塞時間,即排隊延遲時間。Qm本身由兩個時間組成:低優先級報文帶來的延遲Bm[16]以及報文m最終被傳輸之前所有較高優先級報文可能用于排隊和占用總線的最長時間Hm。
當一個報文被認為是可以調度的,需要滿足截止時間要求,即:
Rm≤Dm
(2)
對于最壞響應時間,上文提到需要防止報文被覆蓋,已排隊的報文必須在其下一次排隊之前被發送,因此要滿足下列約束:
由式(1)和式(2)可以得到可調度報文的響應時間(用最壞情況響應時間Rm表示)。
為了找出任務最壞情況響應時間,先假設所有報文在到達時都被釋放[17],且報文不會暫停。
式(5)中的hp(m)表示比報文m優先級高的任務集合,等式兩邊都出現了Rm通過迭代[18]方法可得式(6)。
其中,Rm =Sm。當滿足式(2)時,一個報文被認為是可調度的,因此如果序列收斂大于截止時間的最壞響應時間值是無效的。
但是,實際情況中,報文排隊時會發生抖動[10]。針對任務調度,CAN FD報文響應模型的分析中引入釋放抖動[19]和阻塞時間。
其中,lp(m)是所有優先級低于m的報文集合。
針對最壞情況傳輸時間,需要考慮最壞情況的位填充場景。位填充的方法對幀起始、仲裁場、控制場、數據場和CRC序列進行編碼。首先是BRS位之前的位填充情況,EDL、r0和BRS位狀態分別為‘1,‘0,‘1(CAN FD幀在BRS位進行波特率切換,否則為CAN幀),因此有13個比特位受位填充規則約束。最壞情況的比特位排列按照1111100001111…,此時有3個填充位。其次是BRS位到CRC場之間的位填充,BRS為1并且ESI也可以作為1發送,需要在最壞情況的比特序列中考慮這兩個附加比特。因此,BRS位到CRC場之間位填充的最大位數是L6+ 8p/4]=1+2p。最終可以得出具有p個字節的CAN FD標準幀的最壞情況傳輸時間Sm為:
對于CAN FD擴展幀,BRS位之前共有36個比特位,因此可以推出CAN FD擴展幀的最壞傳輸時間為:
4 CAN FD報文響應時間模型仿真
4.1 仿真模型
CAN FD總線網絡由多個CAN FD節點組成(見圖6),若干個CAN FD節點通過CAN FD總線收發器連接在一個網絡中,通過相互的通訊和協作完成控制任務[1]。
在CAN FD總線報文響應時間仿真系統中(見圖7),用仿真的網絡節點取代真實網絡節點。仿真實驗所采用的報文如表2所示。
4.2 TrueTime仿真結果分析
在t=0時刻,同時釋放表2中的所有報文,通過仿真系統可以得到報文在總線上不同的波特率,如125kbps、500kbps、IMbps、5Mbps條件下的響應時間,仿真結果如表3和圖8所示。
在波特率為500kbps時,各節點報文響應較為迅速,雖然各節點間存在抖動,例如報文6的最壞響應時間是2.3ms,報文7的最壞響應時間是2.037ms。但是從圖8可以看出,報文6和報文7的最壞響應時間小于截止期,因此報文6和報文7滿足可調度性條件。
在波特率為125kbps時,雖然出現了低優先級報文搶先發送情況,但是從圖8可以看出被低優先級報文搶先報文的最壞響應時間小于截止期。報文14的最壞響應時間為13.93ms,雖然與截止期相差很小,但小于截止期。
在波特率為lMbps和SMbps時,各節點報文響應迅速,最壞響應時間的值遠遠小于各報文截止期。同125kb-ps和500kbps傳輸速率下的報文最壞響應時間相比較,可以看出lMbps和SMbps傳輸速率下的報文響應較為迅速,體現了CAN FD總線在較高的有效傳輸負載和高傳輸速率下傳輸報文的優勢。
5 結語
本文在介紹CAN FD協議內容的基礎上,詳細描述了CAN FD協議的報文收發準則;簡述了處理器調度理論,借鑒調度理論對CAN FD報文最壞響應時間進行了模型建立;在模型基礎上對影響CAN FD報文最壞響應時間的因數進行了詳細分析。本文采用固定優先級算法分配報文ID,在不同波特率下對報文最壞情況響應時間進行實驗驗證,并得出了具體結論:在波特率為IMbps和SMbps時,各節點報文響應迅速,最壞響應時間的值遠遠小于各報文截止期。同125kbps和500kbps傳輸速率下的報文最壞響應時間相比較,可以得出在IMbps和SMbps傳輸速率下的報文響應較為迅速。由于CAN FD數據段波特率遠高于CAN,可以大大提高總線帶寬利用率,降低總線沖突概率。因此,CAN FD總線更加適合汽車行業對高速總線的需求。但是本文未考慮報文在傳輸出錯情況下的最壞響應時間,也未建立真實的硬件節點對理論進行驗證,后續研究中可以搭建真實硬件系統對理論進行驗證。
參考文獻:
[1]張鳳登.現場總線技術與應用[M].北京:科學出版社,2008.
[2]BOSCH. CAN with flexihle data-rate specification versionl.0[Z]. 2012.
[4]DAVIS R I.Controller Area Network( CAN) schedulability analysis:refuted, revisited and revised[J]. Real-Time Svstems, 2007, 35(3):239-272.
[3]張鳳登.實時傳輸網絡FlexRay原理與范例[M].北京:電子工業出版社,2017:44-49.
[5]COKHAN URUL.A frame packing method to improve the schedulabil-itv on CAN and CAN FD[ D]. Ankara: Middle East Technical Universi-ty.2015.
[6] 郭創建,王琳煜.基于MCP2517FD的CAN FD通信實現[J].現代信息科技,2019, 3(16):67-69.
[7]ZHENG Z C, NAN J R.The advantages and application prospects ofCAN FD bus technology for vehicle network communication [C]. TheInternational Conference on Energy , Ecology and Environment , 2018.
[8] UNMESH, BORDOLOI, SOHEIL. The frame packing problem forCAN-FD[ C ] . 2014 IEEE Real-Time Systems Symposium . 2014.
[9]楊福宇. CAN總線的安全性研究進展 [J] .單片機與嵌A式系應用 .2015( 6) : 15-18.
[10]TINDELL K , BURNS , WELLINCS. Calculating controller area net-work ( CAN) message response times [J] . Control Engineering Prac-tice,1995( 8) :1163-1169.
[11]AUDSLEY, BURNS, RICHARDSON. et al. Applying new schedulingtheory to static priority pre-emptive sche-duling [J]. Software Engi-neering Journal, 1993 ( 9 ) : 284-292.
[12]TINDELL K. CLARK. Holistic schedulability analysis for distributedhard real-time systems [ J] . Micrprocessors and Microprogramming ,1994.40( 2-3) : 117-134.
[13]TINDELL K, BURNS, WELLINGS. An extendible approach for ana-lysing fixed priority hard real-time tasks [J]. Real-Time Systems,1994.6( 2) : 133-151.
[14]TINDELL K, A BURNS, WELLINGS A J. Analysis of hard real-timecommunications[ J] . Real-Time Systems , 1995 . 9( 2) : 147-171.
[15] BURNS A. NICHOLSON M. TINDELL K. et al. Allocating andscheduling hard real-time tasks on a point-to-point distributed sys-tem [C ]. Workshop on Parallel and Dist. Real-Time System, 1993 :1-22.
[16]TINDELL K, HANSSON H , WELLINCS A. Analysing real-time com-munications : controller area network ( CAN ) [J] . Real-time SystemsSymposium , 2013 : 259-263.
[17]JOSEPH M, PANDYA P. Finding response times in a real-time sys-tem[J]. BCS Computer Journal. 1986 . 29( 5) : 390-395.
[18] TINDELL K. Using offset information to analyse static prioritypre-emptively scheduled task sets[Z ]. 1992.
[19] BURNS , WELLINCS. Mode changes in priority pre-emptivelyscheduled systems [J]. Real-Time Systems Symposium, 1992 (1) :100-109.
[20]SHA L, LEHOCZKY J P, RAJKUMAR R. Priority inheritance proto-cols: an approach to real-time synchronization [J]. IEEE Trans. onComputers , 1990, 39( 9) : 1175-1185.
(責任編輯 :孫娟 )
基金項目:上海市自然科學基金項目( 15ZR1429300)
作者簡介:王璐杰(1994-),男,上海理工大學光電信息與計算機工程學院碩士研究生,研究方向為現場總線、汽車電子;張鳳登(1963-),男,博士,上海理工大學光電信息與計算機工程學院教授,研究方向為現場總線、汽車電子;劉魯平(1992-),女,上海理工大學光電信息與計算機工程學院碩士研究生,研究方向為汽車電子、嵌入式系統;吳俊鵬(1993-).男,上海理工大學光電信息與計算機工程學院碩士研究生,研究方向為現場總線、嵌入式系統。