周三國,吳平友
(上海汽車集團(tuán)股份有限公司技術(shù)中心,上海 201804)
CAN報文實時性提高分析及改進(jìn)
周三國,吳平友
(上海汽車集團(tuán)股份有限公司技術(shù)中心,上海 201804)
隨著汽車電子功能的增加,功能需求對報文實時性需求高與報文傳輸延時大的矛盾越來越突出。為了研究傳輸延時影響因素,本文建立了最大傳輸延時模型,并基于位填充(含報文間隙)、網(wǎng)絡(luò)任務(wù)及其他調(diào)度周期等方面進(jìn)行分析和測試。結(jié)果發(fā)現(xiàn):網(wǎng)絡(luò)負(fù)載越高,報文傳輸延時越大;新增報文優(yōu)先級越高,對原整車網(wǎng)絡(luò)報文傳輸延時越大。故在網(wǎng)絡(luò)設(shè)計時,需降低網(wǎng)絡(luò)負(fù)載,新增零件采用低優(yōu)先級報文;在滿足零件功能需求時,適當(dāng)增大報文周期超出閾值。
位填充;傳輸延時;報文周期;網(wǎng)絡(luò)負(fù)載;調(diào)度周期
隨著汽車工業(yè)與電子工業(yè)的不斷發(fā)展,電子技術(shù)在現(xiàn)代汽車上的應(yīng)用越來越廣泛,汽車電子化的程度也越來越高;為了簡化汽車的線束、減輕線束的質(zhì)量,適應(yīng)大量數(shù)據(jù)實時交換需要,提高系統(tǒng)工作的可靠性和穩(wěn)定性,CAN總線被廣泛應(yīng)用到汽車上[1-3]。
日益增長的電子功能,使得掛在網(wǎng)絡(luò)上的零件越來越多,網(wǎng)絡(luò)負(fù)載大幅增加。由于零件開發(fā)工程師代碼編寫習(xí)慣、調(diào)度網(wǎng)絡(luò)任務(wù)周期以及零件其他非CAN網(wǎng)絡(luò)任務(wù)數(shù)量不同,這些均對CAN總線報文實時性有一定影響。而整車功能越來越復(fù)雜,功能對網(wǎng)絡(luò)數(shù)據(jù)實時性要求卻越來越高。網(wǎng)絡(luò)數(shù)據(jù)傳輸延時大與功能對網(wǎng)絡(luò)數(shù)據(jù)傳輸實時性需求高之間的矛盾越來越突出。
相關(guān)文獻(xiàn)對CAN網(wǎng)絡(luò)進(jìn)行了實時性研究,例如:英國約克大學(xué)對固定優(yōu)先級調(diào)度系統(tǒng)進(jìn)行了數(shù)學(xué)分析;在第1屆國際CAN會議上,有學(xué)者分析了具有固定優(yōu)先級的CAN仲裁及其應(yīng)用性,Tindell等分析了最壞情況下CAN報文的延遲時間計算問題等[4]。但這些均是理論性分析,在已知批量生產(chǎn)的車輛上并未推廣應(yīng)用。為了在滿足功能需求的前提下,盡可能提高網(wǎng)絡(luò)報文實時性,本文擬針對各種可能影響CAN網(wǎng)絡(luò)的報文因素進(jìn)行分析,期望能找到一種工程上有效提升CAN報文實時性的解決方案。
影響報文傳輸延時因素眾多,但總體來看主要由以下幾部分組成,如圖1所示。
圖1 CAN總線報文傳輸延時模型
MCU1對傳感器等數(shù)據(jù)進(jìn)行采樣處理所需時間t1;MCU1的CAN控制器接收CAN報文所需時間t21;MCU1的CAN控制器成功發(fā)送報文所需時間t22;MCU1成功發(fā)送的報文傳至MCU2的CAN控制器所需時間t3;MCU2的CAN控制器接收報文所需時間t41;MCU2的CAN控制器將報文轉(zhuǎn)換成被控對象命令所需時間t42。即網(wǎng)絡(luò)傳輸延時T可用以下公式表示
模型中,t1、t42一般由芯片自身運(yùn)算能力決定,其數(shù)值對整體延時貢獻(xiàn)較小,在實際分析中可忽略其影響。t21、t41與MCU任務(wù)數(shù)量、各任務(wù)調(diào)度周期、處理機(jī)制(例如:中斷、輪詢等)有關(guān),為了方便研究,可將t21和t41視為等同。t22與CAN協(xié)議相關(guān),涉及仲裁、位填充、錯誤幀等,該項也是本次重點研究對象。t3主要是線束上傳輸所需要的時間,因轎車內(nèi)零件之間傳輸距離短,t3僅為幾十ns,故可忽略不計。而在實際研究中,因方便測試驗證及數(shù)據(jù)分析,在t21和t41中,只選取研究t21對傳輸延時影響。
如前文所述,t22主要涉及仲裁、位填充、錯誤幀等。仲裁是指不同CAN報文同時發(fā)送時,優(yōu)先級高的報文獲得總線傳輸占有權(quán),低優(yōu)先級報文等待優(yōu)先級報文傳輸后,立即再次請求發(fā)送;位填充是指總線發(fā)送器只要檢測到所發(fā)送的位流里有5個連續(xù)相同極性位便自動在所發(fā)送的位流中插入一個填充位;錯誤幀是指當(dāng)總線上發(fā)送錯誤時,CAN控制器連續(xù)發(fā)送6個相同極性位。
如果總線上報文數(shù)量大,低優(yōu)先級報文極有可能被高優(yōu)先級報文奪去總線傳輸占有權(quán),導(dǎo)致低優(yōu)先級報文發(fā)送延時。
1.1 位填充對傳輸延時理論分析
實際上,在單位時間內(nèi),總線能傳輸?shù)膱笪模涣魇怯邢薜?,如果總線上因出現(xiàn)錯誤幀,則能傳輸?shù)膱笪臄?shù)量將減少。例如,在一段高速公路上,每一輛汽車可看做1個報文,這一段高速公路內(nèi),能布下的車輛數(shù)量有限??紤]到每一個報文最多能傳8個字節(jié)數(shù)據(jù),且因位填充原因,除了其他位場(CRC界定符、ACK場和幀結(jié)束)為固定格式外,其他各場均需考慮位填充。同時,每個報文之間的間隙為3個位,故此,報文傳輸時間因為新增加的填充位而變長[4-5]。
為了方便表現(xiàn)網(wǎng)絡(luò)傳輸延時特征,報文周期超出閾值幅值Z、報文周期超出閾值概率P,可作為傳輸評價指標(biāo)。
假設(shè)CAN總線傳輸速率為X kb/s,每個報文均包含8個字節(jié),每個報文周期均為Y ms,報文周期超出閾值幅值Z,需傳輸N個報文,也就是,當(dāng)?shù)冢∟+1)個報文傳輸時,該報文周期超出閾值幅值將超過Z值。此時,報文數(shù)量N、報文周期超出閾值幅值Z、報文周期之間的關(guān)系如下
假設(shè)X為500時,所有報文周期均相同,報文周期超出閾值幅值為10%,根據(jù)公式(2),可計算出第(N+1)個幀。表1為報文不同周期時,不超過報文周期超出閾值幅值的報文數(shù)量。
表1 不超過報文周期超出閾值幅值的報文數(shù)量
由于實際通信報文并不是每個幀都會有最多的填充位,故表1中的N值將略大于實際測試驗證中所得值。
1.2 其他因素對傳輸延時影響理論分析
報文ID、網(wǎng)絡(luò)負(fù)載、任務(wù)數(shù)量、協(xié)議棧任務(wù)調(diào)度周期等,對傳輸延時均有一定影響。
當(dāng)報文ID越小,該報文最有能力獲得網(wǎng)絡(luò)通信占有權(quán)。當(dāng)多個報文同時搶占網(wǎng)絡(luò)數(shù)據(jù)傳輸占有權(quán)時,ID小的報文將占據(jù)發(fā)送數(shù)據(jù)機(jī)會,其他報文將停止發(fā)送,只有當(dāng)前面ID小的報文發(fā)送完畢,其他報文再次嘗試發(fā)送。這樣就導(dǎo)致某些ID大的報文因搶占不到發(fā)送主動權(quán),導(dǎo)致其報文傳輸延時增大。
一個報文最多有133個位,每傳一個位均需要時間。如果網(wǎng)絡(luò)上空閑,則位流能順利傳輸;如果總線上已被其他位占據(jù),則無論即將傳輸?shù)膱笪腎D優(yōu)先級如何,必須等到總線空閑后,才能嘗試發(fā)送。故此,如果總線負(fù)載高,即網(wǎng)絡(luò)上已有報文在傳輸,欲傳輸?shù)膱笪囊蚩偩€繁忙而無法發(fā)送報文,導(dǎo)致報文傳輸有可能失效或延時。一般來看,網(wǎng)絡(luò)負(fù)載越高,各報文周期超出閾值幅值、報文周期超出閾值概率均會增大。
每個電子控制單元可能有不少任務(wù),例如,需要控制刮水、控制前照燈、控制門窗、實現(xiàn)網(wǎng)絡(luò)通信等,這些均可看作不同的任務(wù)。如果非網(wǎng)絡(luò)任務(wù)越少,控制單元就有更多的時間處理網(wǎng)絡(luò)通信;反之,如果其他任務(wù)多,MCU在有限的時間片內(nèi)處理大量任務(wù),則有可能丟失處理網(wǎng)絡(luò)任務(wù)。理論上來講,非網(wǎng)絡(luò)任務(wù)越少,各報文周期超出閾值幅值比例、報文周期超出閾值概率下降。
網(wǎng)絡(luò)任務(wù)調(diào)度周期越小,網(wǎng)絡(luò)調(diào)度也就越及時,網(wǎng)絡(luò)報文就可能在最短時間內(nèi)傳遞出去,對應(yīng)的網(wǎng)絡(luò)報文周期超出閾值幅值、報文周期超出閾值概率下降。
本研究中每組數(shù)據(jù)均在實車上進(jìn)行至少4次試驗,每次試驗約1 h。整車網(wǎng)絡(luò)上有發(fā)動機(jī)控制單元、變速器控制單元、ABS控制單元、網(wǎng)關(guān)控制單元、安全氣囊控制單元等。由于各控制單元均為實際零件,可以選擇具有代表性零件更改網(wǎng)絡(luò)任務(wù)調(diào)度周期及非網(wǎng)絡(luò)任務(wù)調(diào)度周期。測試驗證時,使用CANoe通過OBD頭連接到整車網(wǎng)絡(luò)上。
為了研究各因素對整車網(wǎng)絡(luò)報文傳輸延時分析影響大小,試驗及數(shù)據(jù)分析主要分為2個測試用例進(jìn)行。第1個測試用例:高優(yōu)先級報文對整車網(wǎng)絡(luò)報文傳輸延時影響;第2個測試用例:低優(yōu)先級報文對整車網(wǎng)絡(luò)報文傳輸延時影響。
每個測試用例按照以下原則進(jìn)行測試:在原整車網(wǎng)絡(luò)上,使用CANoe仿真發(fā)送對應(yīng)優(yōu)先級的報文,使其整車網(wǎng)絡(luò)負(fù)載增加到80%;在原整車網(wǎng)絡(luò)上,使用CANoe仿真發(fā)送對應(yīng)優(yōu)先級的報文,使其整車網(wǎng)絡(luò)負(fù)載增加到90%。
為了對比明顯,如無特別說明,報文周期超出閾值幅值Z設(shè)置為10%。
2.1 網(wǎng)絡(luò)負(fù)載對傳輸延時
網(wǎng)絡(luò)負(fù)載是網(wǎng)絡(luò)傳輸延時的主要因素,為了分析網(wǎng)絡(luò)負(fù)載對延時的影響,依次分高優(yōu)先級報文、低優(yōu)先級報文。2種試驗各分2次向整車網(wǎng)絡(luò)注入網(wǎng)絡(luò)負(fù)載(Busload)。然后,針對原車網(wǎng)絡(luò)負(fù)載下的數(shù)據(jù)、2種高負(fù)載數(shù)據(jù)進(jìn)行統(tǒng)計。整理某零件報文發(fā)現(xiàn):當(dāng)注入高優(yōu)先級報文時,Busload越高,相同ID報文周期超出閾值概率越大;周期小于50ms的報文,報文周期超出閾值概率越大;ID在0x18e~0x2c3報文超出周期超出閾值概率大。當(dāng)注入低優(yōu)先級報文時,Busload越高,相同ID報文周期超出周期閾值概率越大;周期小于50ms的報文,超出周期閾值概率越大;ID在0x1aa~0x2c3報文超出周期超出閾值概率大。
圖2為各網(wǎng)絡(luò)負(fù)載下原車某零件報文周期超出閾值概率。在各網(wǎng)絡(luò)負(fù)載下,報文ID:1df的報文周期超出閾值概率均較大。網(wǎng)絡(luò)負(fù)載在65%時,其報文周期超出閾值概率P為9.2%。當(dāng)注入高優(yōu)先級,網(wǎng)絡(luò)負(fù)載為80%、90%時,其報文周期超出閾值概率P依次增至22.57%、43.76%。當(dāng)注入低優(yōu)先級,網(wǎng)絡(luò)負(fù)載為80%、90%時,其報文周期超出閾值概率P依次增至11.00%、11.52%。
2.2 報文ID對傳輸延時
報文ID也是網(wǎng)絡(luò)傳輸延時的主要因素,為了分析報文ID對延時的影響,可利用2.1節(jié)中數(shù)據(jù)對某零件進(jìn)行分析。發(fā)現(xiàn):注入報文的優(yōu)先級越高,原車報文周期超出閾值概率越高;ID在0x18e~0x2c3報文超出周期超出閾值概率大。
當(dāng)網(wǎng)絡(luò)負(fù)載增至80%,如果報文ID:1df在注入低優(yōu)先級時,周期超出閾值概率為11.52%,而當(dāng)注入高優(yōu)先級報文時,報文ID:1df的周期超出閾值概率為22.57%。當(dāng)網(wǎng)絡(luò)負(fù)載增至90%時,如果報文ID:1df在注入低優(yōu)先級時,周期超出閾值概率為11.52%,而當(dāng)注入高優(yōu)先級報文時,報文ID:1df的周期超出閾值概率為43.76%。
2.3 網(wǎng)絡(luò)任務(wù)調(diào)度周期對傳輸延時的影響
選取某個零件,更改其網(wǎng)絡(luò)協(xié)議棧調(diào)度周期。分析數(shù)據(jù)主要來源于2種試驗:該零件的網(wǎng)絡(luò)協(xié)議棧調(diào)度周期未更改;該零件的網(wǎng)絡(luò)協(xié)議棧調(diào)度周期增加1倍。
針對整車所有網(wǎng)絡(luò)報文分析發(fā)現(xiàn):某一個零件的網(wǎng)絡(luò)協(xié)議棧調(diào)度周期變化,對原車報文周期超出閾值概率影響較小。如圖3所示。
2.4 非網(wǎng)絡(luò)任務(wù)調(diào)度周期對傳輸延時的影響
選取某個零件,網(wǎng)絡(luò)協(xié)議棧調(diào)度周期保持不變,其他9個任務(wù)調(diào)度周期均同時增加1倍。分析數(shù)據(jù)主要來源于2種試驗:①該零件所有任務(wù)調(diào)度周期未更改;②該零件其他9個任務(wù)調(diào)度周期均增加1倍。
根據(jù)實測數(shù)據(jù)看,其情況基本與2.3節(jié)類似,即:某個零件的非網(wǎng)絡(luò)協(xié)議棧任務(wù)調(diào)度周期變化時,對原車報文周期超出閾值概率影響較小。
2.5 報文周期超出閾值幅值與報文周期超出閾值概率之間關(guān)系
基于前面數(shù)據(jù),可將報文周期超出閾值幅值Z適當(dāng)增大,針對閾值要求變化,分析報文周期超出閾值概率情況?,F(xiàn)將報文周期超出閾值幅值Z分別設(shè)為10%和20%,針對網(wǎng)絡(luò)負(fù)載為80%進(jìn)行研究,發(fā)現(xiàn):當(dāng)報文周期閾值由10%增至20%時,網(wǎng)絡(luò)上各報文周期超出閾值概率顯著降低。參見圖4。
圖4 報文周期超出閾值幅值與報文周期超出閾值概率之間關(guān)系
根據(jù)前面試驗分析可知,網(wǎng)絡(luò)負(fù)載、報文優(yōu)先級是影響網(wǎng)絡(luò)傳輸?shù)闹饕蛩?。故此,在要求網(wǎng)絡(luò)實時性高的網(wǎng)絡(luò)設(shè)計時,盡可能降低網(wǎng)絡(luò)負(fù)載;在網(wǎng)絡(luò)擴(kuò)展時,新增網(wǎng)絡(luò)零件報文盡可能不用高優(yōu)先級ID,否則對原車網(wǎng)絡(luò)報文延時影響較大。此外,零件失效管理等策略或功能務(wù)必考慮網(wǎng)絡(luò)傳輸延時,網(wǎng)絡(luò)零件功能對于傳輸延時不能過于苛刻,在滿足功能需求情況下,可適當(dāng)放寬網(wǎng)絡(luò)報文傳輸延時閾值。例如:網(wǎng)絡(luò)零件接收其他零件報文時,網(wǎng)絡(luò)報文傳輸延時必須在報文周期超出閾值幅值10%內(nèi)到達(dá);否則,功能上禁止圖像、語音、故障碼等報警,這之類的要求可適當(dāng)放寬。由于影響網(wǎng)絡(luò)傳輸延時因素眾多,本次試驗僅找到部分傳輸延時重要因素,故在網(wǎng)絡(luò)報文實際設(shè)計中,還需要結(jié)合實際功能需求進(jìn)行網(wǎng)絡(luò)設(shè)計。
[1]王建,左啟耀,高峰.基于CAN總線的客車控制系統(tǒng)[J].吉林大學(xué)學(xué)報(工學(xué)版),2004,15(7):282-285.
[2]劉新亮,張建武,陳兆能.汽車控制器局域網(wǎng)絡(luò)技術(shù)及應(yīng)用[J].汽車工程,1998,20(2):101-107.
[3]周三國,張海濤,吳平友.CAN總線速率提升研究[J].上海汽車,2014(5):49-52.
[4]王俊波,胥布工.CAN報文實時性分析及在線評估[J].控制與決策,2007,22(4):449-452.
[5]袁遠(yuǎn).CAN網(wǎng)絡(luò)通信及實時性研究[D].蘭州:蘭州大學(xué),2010.
(編輯 楊景)
Analysis and Improvement of CAN Real-time Message Performance
ZHOU San-guo,WU Ping-you
(SAIC Motor Passenger Vehicle Technical Center,Shanghai 201804,China)
The conflict between transmission real-time performance and transmission latency about CAN message is becoming prominent,with the increase of on-board electrical functions.In order to find the main factors of transmission latency,the worst-case response time models are set.Many cases are tested based on perspectives of bit stuffing mechanism(including interval),network task,and the processing period.Results show that the higher CAN busload and message priority,the greater transmission latency.Therefore,in CAN network design,the busload should be decreased and new components should use low message priority.Besides,when meeting requirements of the component functions,the threshold of the frame transmission latency could be increased.
bit stuffing;transmission latency;message period;busload;processing period
U463.6
A
1003-8639(2017)02-0049-04
2016-07-31
周三國,男,湖北黃岡人,高級工程師,碩士,主要研究方向為車載網(wǎng)絡(luò)設(shè)計開發(fā);吳平友,男,安徽人,工程師,碩士,主要研究方向為車載網(wǎng)絡(luò)設(shè)計開發(fā)等。