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

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

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

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

此后控制器將按上述發送機制以20ms周期循環發送數據。
通過3.1、3.2章節分析可知:當一幀優先級小于控制器所有發送報文情況下,在三種方案情況下的延時情況:
(1)在2.5ms基準調度和Offset配置情況下:最大延時時間為0.69ms;
(2)在5ms基準調度和Offset配置情況下:最大延時時間為1.38ms;
(3)在不做任何發送時序處理情況下:最大延時時間為2.53ms。
無論在網絡架構設計還是控制器軟件任務調度設計時,都需要考慮資源占用情況,整車廠對網絡堵塞設計約束和ECU供應商需要考慮CPU任務堵塞其內在機制完全一致。
ECU設計初需要將CPU資源進行系統劃分,實現調度機制,同時要避免單一龐大任務對CPU長期占用,得益于CPU中斷觸發機制,可以及時實現任務間切換,降低堵塞產生的延時風險,除此之外,設計方也需要將龐大單一任務進行拆分,從而形成若干個時序不連續的子任務,在設計上實現有效降低任務搶斷情況發生概率。
而CAN通訊目前沒有中斷觸發機制,當單一節點網絡數據持續發送時,因為相關控制器發送報文優先級高,往往導致總線長期被占用。針對此情況,采用錯峰發送方式用于軟件任務中將龐大單一任務解成若干小任務,可避免單一任務對資源的長期占用情況發生,降低系統時間延遲。
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
吳震云,就職于安徽江淮汽車集團股份有限公司。