吳震云,崔書浩,余世運
車載控制器網(wǎng)絡占用過高導致網(wǎng)絡延時問題分析
吳震云,崔書浩,余世運
(安徽江淮汽車集團股份有限公司,安徽 合肥 230009)
針對車載網(wǎng)絡占用過高導致網(wǎng)絡延時問題提出一種基于AutoSAR標準下設計的錯峰發(fā)送方式。通過這種方式的實施將龐大單一任務分解成若干小任務,從而避免對資源的長期占用情況發(fā)生,降低系統(tǒng)時間延遲,對網(wǎng)絡實時性和可靠性具有較好的參考意義。
車載控制器網(wǎng)絡;錯峰發(fā)送;網(wǎng)絡延時
CAN總線技術在汽車電子發(fā)展過程中起著至關重要的作用。但隨著汽車電子的快速發(fā)展,總線節(jié)點增多使得總線通信量急劇增大,同時又要求被控對象反應時間進一步縮短,這使得CAN總線實時性和可靠性方面受到總線負載影響越來越明顯。
一幀CAN報文從發(fā)送ECU處理好數(shù)據(jù)到接收方ECU使用數(shù)據(jù),中間包含發(fā)送端軟件處理延時時間,硬件發(fā)送時間,總線等待時間,網(wǎng)絡傳輸時間,接收方數(shù)據(jù)校核時間、以及接收方軟件處理時間。其中除總線等待時間受網(wǎng)絡負載影響外,其他時間一般由ECU廠商設計方案決定。總線等待時間指標在主機廠進行網(wǎng)絡設計應重點約束,特別是總線被單一節(jié)點占用導致等待延時時間過長問題。
本文重點闡述如何有效降低“總線等待延時時間”。
CAN通訊采用半雙工通訊方式,同時采用ID仲裁機制實現(xiàn)數(shù)據(jù)發(fā)送優(yōu)先級方案。
在此方案下當單一節(jié)點持續(xù)不斷發(fā)送高優(yōu)先級數(shù)據(jù)時,網(wǎng)絡帶寬將始終被此節(jié)點占用,低優(yōu)先級數(shù)據(jù)將始終無法發(fā)送,形成堵塞,直到高優(yōu)先級數(shù)據(jù)停止發(fā)送為止,低優(yōu)先級數(shù)據(jù)才被發(fā)送出來,且此過程由硬件實現(xiàn),不受軟件控制。
低優(yōu)先級數(shù)據(jù)發(fā)送被高優(yōu)先級報文堵塞的時間,稱之為網(wǎng)絡等待延時時間。
由于CAN通訊仲裁機制下存在的固有缺陷,因此在網(wǎng)絡架構設計之初需要對所有參與CAN通訊ECU發(fā)送數(shù)據(jù)量進行約束,避免單一ECU瞬時發(fā)送大量數(shù)據(jù)導致網(wǎng)絡始終被單一節(jié)點占用情況發(fā)生。
CAN通訊負載一般為網(wǎng)段一定時間內(nèi)的平均負載,可以宏觀體現(xiàn)網(wǎng)絡通訊帶寬占用情況,但無法體現(xiàn)一幀CAN數(shù)據(jù)被堵塞導致的發(fā)送延時時間。
一般汽車廠商要求總線延時時間不大于其發(fā)送周期的10%,以目前最快發(fā)送數(shù)據(jù)周期為準進行延時設計要求,即10ms周期發(fā)送的報文實際網(wǎng)絡周期應該在9ms-11ms之間,因此除去引言描述的軟件占用時間,ECU連續(xù)發(fā)送數(shù)據(jù)時占用網(wǎng)絡時間最大不應超過1ms,否則無法保證上述10%周期延時要求。
由CAN數(shù)據(jù)鏈路層協(xié)議獲知,一幀數(shù)據(jù)長度為8的網(wǎng)絡數(shù)據(jù)一般由120-129比特位組成,傳輸時間約為0.23ms,當出現(xiàn)連續(xù)數(shù)據(jù)發(fā)送情況時,若出現(xiàn)連續(xù)5幀數(shù)據(jù)時占用總線時間即為1.15ms,超出標準要求,因此ECU每次連續(xù)發(fā)送數(shù)據(jù)量應嚴格控制在4幀報文以內(nèi)(如每幀數(shù)據(jù)長度均不足8時,可適當放寬條件,但總數(shù)不應超出6幀)。
基于AutoSAR標準下設計的CAN網(wǎng)絡通訊協(xié)議棧要求其通訊層(COM模塊)具備設置OffSet功能,即錯峰發(fā)送方式。
以下內(nèi)容源于某公司發(fā)布的基于AutoSAR4.0標準開發(fā)的CAN通訊協(xié)議棧配置工具使用手冊部分截圖。
2.3.1 Com模塊調(diào)度周期配置選項
通過圖1“Com模塊的整體配置項”中可以找到Confi -guration Time配置選項,其中Configuration Time Base[s]配置項用來配置COM調(diào)度的基準時間,單位為S。

圖1 Com模塊的整體配置項
(1)Configuration Rx Time Base[s]
此項用來配置Com_MainFunctionRx()被調(diào)用周期。
(2)Configuration Tx Time Base[s]
此項用來配置Com_MainFunctionTx()被調(diào)用周期。
2.3.2 Com模塊OffSet配置選項
通過圖2“Com模塊的TxIPdu配置項”可以找到Com TxIPdu配置選項,其中Tx Mode配置項用來配置報文發(fā)送機制,有事件觸發(fā)型、周期型、混合型和無發(fā)送模式,但無論哪種發(fā)送模式均提供了Time Offset配置選項,單位為S。

圖2 Com模塊的TxIPdu配置項
(1)Tx Mode Time Offset Factor[ms]
此項用來配置當發(fā)送模式為Periodic或mixed情況下,當Ipdu使能時,發(fā)送第一幀報文的偏移量,此值必須是Com_MainFunctionTx周期倍數(shù)。
(2)Tx Mode Time Period Factor[ms]
此項用來配置當發(fā)送模式為PERIODIC或MIXED情況時,報文發(fā)送的Cycle,此值必須為Com_MainFunctionTx的整數(shù)倍。
當控制器出現(xiàn)發(fā)送數(shù)據(jù)大于4幀情況時采用錯位(錯峰)發(fā)送方式。即在報文發(fā)送時將報文進行分組,保證每組報文數(shù)據(jù)不大于5幀報文,同時在每組報文之間加入Offset實現(xiàn)錯峰發(fā)送。
以下以某控制器發(fā)送5幀10ms周期數(shù)據(jù)幀,6幀20ms周期數(shù)據(jù)幀為例進行具體方案說明。
通過2.3章節(jié)描述可知,協(xié)議棧中Offset配置選項只能為調(diào)度周期整數(shù)倍,因此以下以2.5ms、5ms為基準調(diào)度周期為例進行設計描述。
將Com基準調(diào)度周期設定為2.5ms,因此可以將10ms發(fā)送周期劃分為4個時間片,即10ms內(nèi)可觸發(fā)4次發(fā)送機制,因此可以將所有數(shù)據(jù)劃分為4組進行發(fā)送。
以控制器發(fā)送11幀為例,將5幀10ms周期幀劃分為A,a兩組,將6幀20ms周期幀劃分為B,b兩組,其中A組有3幀,a組有2幀,B、b組各有3幀。將4組數(shù)據(jù)Offset配置項分別配置為:A組0ms,a組2.5ms,B組5.0ms,b組7.5ms,由此可進行網(wǎng)絡數(shù)據(jù)時序排布,得出下表1所示Com模塊發(fā)送網(wǎng)絡數(shù)據(jù)時序圖。
表1 Com模塊調(diào)度周期2.5ms發(fā)送11幀數(shù)據(jù)分組發(fā)送機制表

此后控制器將按上述發(fā)送機制以20ms周期循環(huán)發(fā)送數(shù)據(jù)。
將Com基準調(diào)度周期設定為5ms,因此可以將10ms發(fā)送周期劃分為2個時間片,即10ms內(nèi)可觸發(fā)2次發(fā)送機制,可以將所有數(shù)據(jù)劃分為2組進行發(fā)送。
以控制器發(fā)送11幀為例,將5幀10ms周期幀劃分為A組,將6幀20ms周期幀劃分為B組,其中A組有5幀,B組各有6幀。將2組數(shù)據(jù)Offset分別配置為:A組0ms,B組5.0ms,由此可進行網(wǎng)絡數(shù)據(jù)時序排布,得出下表2所示Com模塊發(fā)送網(wǎng)絡數(shù)據(jù)時序圖。
表2 Com模塊調(diào)度周期5ms發(fā)送11幀數(shù)據(jù)分組發(fā)送機制表

此后控制器將按上述發(fā)送機制以20ms周期循環(huán)發(fā)送數(shù)據(jù)。
通過3.1、3.2章節(jié)分析可知:當一幀優(yōu)先級小于控制器所有發(fā)送報文情況下,在三種方案情況下的延時情況:
(1)在2.5ms基準調(diào)度和Offset配置情況下:最大延時時間為0.69ms;
(2)在5ms基準調(diào)度和Offset配置情況下:最大延時時間為1.38ms;
(3)在不做任何發(fā)送時序處理情況下:最大延時時間為2.53ms。
無論在網(wǎng)絡架構設計還是控制器軟件任務調(diào)度設計時,都需要考慮資源占用情況,整車廠對網(wǎng)絡堵塞設計約束和ECU供應商需要考慮CPU任務堵塞其內(nèi)在機制完全一致。
ECU設計初需要將CPU資源進行系統(tǒng)劃分,實現(xiàn)調(diào)度機制,同時要避免單一龐大任務對CPU長期占用,得益于CPU中斷觸發(fā)機制,可以及時實現(xiàn)任務間切換,降低堵塞產(chǎn)生的延時風險,除此之外,設計方也需要將龐大單一任務進行拆分,從而形成若干個時序不連續(xù)的子任務,在設計上實現(xiàn)有效降低任務搶斷情況發(fā)生概率。
而CAN通訊目前沒有中斷觸發(fā)機制,當單一節(jié)點網(wǎng)絡數(shù)據(jù)持續(xù)發(fā)送時,因為相關控制器發(fā)送報文優(yōu)先級高,往往導致總線長期被占用。針對此情況,采用錯峰發(fā)送方式用于軟件任務中將龐大單一任務解成若干小任務,可避免單一任務對資源的長期占用情況發(fā)生,降低系統(tǒng)時間延遲。
Research on Network Delay Caused By High Network Occupancy Of The Vehicle Controller
Wu Zhenyun, Cui Shuhao, Yu Shiyun
( Anhui Jianghuai Automobile Group Corp., Ltd., Anhui Hefei 230009 )
Consideringthe problem of network delay caused by the high occupancy of the vehicle network, a method of staggered transmission based on the AutoSAR standard is proposed.The implementation of this method decomposes a huge single task into several small tasks, so as to avoid long-term occupation of resources, reduce system time delay, and have a good reference significance for network real-time and reliability.
Vehicle network; Staggered transmission method; High network occupancy
10.16638/j.cnki.1671-7988.2021.06.009
U461.99
A
1671-7988(2021)06-26-03
U461.99
A
1671-7988(2021)06-26-03
吳震云,就職于安徽江淮汽車集團股份有限公司。