田涌君, 蔡其瑾, 唐風敏, 華一丁
(1.中汽研(常州) 汽車工程研究院有限公司, 江蘇 常州 213000;2.東風柳州汽車有限公司, 廣西 柳州 515005;3.中汽研(天津) 汽車工程研究院有限公司, 天津 300300)
CAN總線是當今世界汽車領域使用最為廣泛的總線之一,以其高效、可靠、靈活的特點受到設計者的青睞。但隨著技術的進步,越來越多的控制模塊被加入到總線系統中,這些模塊中包含了許多有著高實時性要求的任務,且在實際工作過程中,由于CAN總線自身的非破壞性逐步仲裁機制導致的調度問題、仲裁問題及阻塞問題等都會導致實時系統的網絡品質下降。但是當前還沒有人提出完善的總線網絡的品質評價方法。
目前國內外已經有許多學者對CAN總線的評價指標進行了研究。Tindell等人針對基于CAN總線的實時系統研究了不同工況下的最差情況響應時間,即可調度性的問題[1]。劉洪鵬等提出了關于負載率的算法及其優化的設計[2];龔暉等將負載率的分析與優化策略在CANoe內進行了驗證[3];馬卓等提出了鎖相環的降低抖動技術[4]。以上研究均是針對某一具體指標進行的,隨著總線技術的不斷發展,針對單一指標的評價方式顯然無法滿足行業需求,一種完善的評價方法是業內急需的。
為此,本文以CAN總線傳輸過程中主要的評價指標為研究對象,在對其進行建模分析的基礎上研究其在總線網絡品質中所起到的作用,并設計一套完整的網絡品質評價流程,最后選取某實車CAN總線在Symtavision軟件內進行測試,對所提出的評價方法進行示例說明。
評價系統的實時性首先要做的就是保證不丟幀,如果丟失了所需傳輸的消息,那實時性也就無從談起。而是否丟幀,所反映的就是消息的可調度性[5]。
以單調速率算法 (RM算法) 為例,當系統的利用率低于69%時,任務模型中的任何任務集都是可以調度的。但是僅利用這一點對可調度性進行判斷是不精確的。詳細分析如式(1) 所示:
式中:Uj——任務j的利用率,如式(2) 所示:
式中:Cj——任務j的最壞情況執行時間;Tj——任務j的周期;Rj由式(3) 可得:
上述公式精確地對單調速率算法的實際工作情況進行了分析,可以通過利用率有效地判斷出可調度性。
根據可調度性的定義,若系統可以將一個任務在其最終期限前完成調度,則稱此任務是可調度的,這就是可調度性的另一種判斷方式:計算任務的最差情況響應時間。
最差情況響應時間能有效地計算出各消息可能發生的最大延時情況,從而衡量出該消息的可調度性。對最差情況響應時間進行分析,當消息的最差情況響應時間大于該消息傳輸的周期時,可以判定為不可調度,這種情況是不可接受的,必須進行優化處理。
最差情況響應時間分析如下:
式中:ri——給定任務i的最差情況響應時間;Ci——任務i的最差情況執行時間;Tj——任務i的周期;hp(i)——所有優先級高于任務i的任務的集合。
式(4) 可通過形成遞歸關系來解:
式中:rni——ri的n次逼近。
在該式中,ri的遞歸關系是單調的,那么若r0i=0,則通過歸納法這一公式將有可能收斂為:
或:
在這種情況下,結果是無效的,表明任務i是不可調度的。
通過上述方式可以判斷出總線系統的可調度性,這也是網絡品質分析的第一步,只有可調度的系統才有資格進行下一步的網絡品質評估。
在報文實際傳輸過程中,由于仲裁、堵塞、控制器自身等原因,每個報文實際到達的時間都不可能與最初設計的時間相同,都會存在一定的差距,這種現象叫做抖動。抖動的時間長短與設計周期的比值被稱為抖動百分比,它可以近似地顯示出報文的延時情況。若某報文的抖動百分比超過40%,則代表報文延時情況已經較為嚴重,需要對該報文進行具體分析。
一般來說,負載率被定義為當前系統正在進行的數據傳輸速率與系統設計時的理論最大傳輸速率之比。負載率是一個在時間上被定義的概念,說明在一定時間范圍內,位資源的使用情況。負載率越高,代表在這一時間段內需要傳輸的數據越多,低優先級的報文可以得到的網絡資源就會越少,因此就越有可能發生通信延時甚至嚴重情況下的丟幀。若總線系統的負載率為10%~20%時,基本不存在堵塞的情況,可以暢通無阻地進行傳輸。若負載率為30%左右時,各節點可能會出現輕微延時,根據優先級的高低存在些許差異。但是當負載率逐步增加至60%以上時,就已經會開始影響總線系統的實時性,延時情況會變得比較嚴重。負載率繼續增加至80%以上時,通信情況可能會相當糟糕,嚴重情況下可能造成丟幀、錯誤幀等現象。在實際應用中,負載率越低,越能保證實時性,但CAN總線的特性就決定了負載率過低無法滿足報文傳輸的速率,這是一個無法解決的問題,只能在二者之間尋找一定的平衡。根據實驗表明,當負載率在30%左右時,可以取得最好的兼顧效果。
Burst即連續發送,在實際應用中,只需設定好起始地址與連續傳輸長度,就可以方便有效地進行連續傳輸。但是在CAN總線中,系統依靠報文優先級來進行仲裁分配傳輸,連續傳輸會造成高優先級的報文不斷地被發送,比該報文優先級低的報文就只能持續等待仲裁,這樣極容易造成總線傳輸的堵塞、延時,甚至丟幀問題。
本文依據以上研究的幾個重要指標提出了一套完整的測試評價方法,具體流程如下。
1) 獲得完整的CAN總線報文后,首先需要對該總線上所有的消息進行可調度性分析。若該總線采用靜態調度算法進行調度,則可優先對該總線的負載率進行測試,若負載率小于69%,則該總線上的所有報文均可調度。否則需對每個報文的最差情況響應時間進行分析。若存在最差情況響應時間大于該報文設計周期的報文,則證明該報文不可調度,該總線上會出現丟幀情況。因此該總線網絡品質不合格,必須重新進行優化。若不存在這樣的報文,則可以進入下一步。
2) 若通過最差情況響應時間進行可調度性判斷,則下一步還需要對負載率進行分析。依據前文分析,當總線系統的負載率處于30%~40%時,是較為理想的狀態,當負載率大于80%時,低優先級的報文延時會較為嚴重,嚴重影響了實時性。此時總線必須接受優化。若總線負載率大于40%小于80%,則應根據具體情況具體分析,研究占用負載率大的控制器的工作情況。
3) 通過系統的可調度性與負載率測試后,需要對總線中各報文的抖動及Burst情況進行分析。將抖動的時長與該報文設計周期之比稱為抖動百分比或相對延時,令抖動百分比為x,并將各報文的抖動情況分為3種:x<10%,10%
4) 經過上述測試步驟,該總線系統的可調度性、延時情況等指標都已較為清晰明了,可以較好地幫助工程人員進行針對性地優化。
將實車trace通過CANoe導出,將CANoe trace文件導入symtavision工具自動建模,進行Analyze Trace分析。
依據本文提出的評價方法,首先對系統的可調度性進行分析,圖1為各報文的相對延時和最差情況響應時間分析圖。
對該總線的最差情況響應時間和抖動時長與設計周期之比(以下簡稱相對延時) 進行分析,由分析結果可知,該總線各報文相對延時均在40%以下,最差情況延時均在70%以下,各報文延時在可接受范圍內,代表該總線上的各報文雖存在延時,但均可調度,因此可繼續進行下一步評測。
圖1 各報文相對延時和最差情況響應時間
隨后需要對負載率進行評估,圖2為BDCAN總線各控制器的負載率分析圖。
圖2 BDCAN總線各控制器負載率圖
如圖2所示,該總線負載率為35%左右。其中,GW_BCM占主要比例,25%左右。其余控制器所在負載均在3.1%以下。根據上文分析,負載率在30%左右時,基本滿足高優先級報文的傳輸需求,但低優先級的報文還存在少許延時,可根據具體情況進行適當優化。
Burst情況:該總線Burst分析圖如圖3所示。
圖3為該總線的報文發送情況甘特圖。由圖3可知,只有GW_BCM控制器發送的報文存在多幀報文連續發送的情況。對圖3進行數據統計,該總線Burst數據情況如圖4所示。
據圖4可知,總線Burst最長約為5.2ms,有20幀左右報文連續發送。這一現象代表存在連續傳輸的現象發生,且持續時間接近50%的設計周期,因此應該對該任務進行優化。
綜上,依照本文提出的總線網絡品質評價體系,首先應當對GW_BCM這一控制器進行具體分析檢測,該控制器發送的任務存在占用高負載率、報文連續發送的情況,會嚴重限制后續總線的可擴展性。對于負載率和可調度性來說,該總線基本符合要求,但還有可優化提升的空間。
圖3 報文Burst情況分析圖
圖4 Burst數據情況圖
本文以總線網絡品質評估為研究對象,在多種網絡指標研究的基礎上提出對不同CAN總線網絡品質的通用評估方法。面對越來越復雜的總線網絡,此方法可以有效地對網絡品質進行評價并針對具體問題給予解決措施。