吳震云,崔書(shū)浩,余世運(yùn)
車(chē)載控制器網(wǎng)絡(luò)占用過(guò)高導(dǎo)致網(wǎng)絡(luò)延時(shí)問(wèn)題分析
吳震云,崔書(shū)浩,余世運(yùn)
(安徽江淮汽車(chē)集團(tuán)股份有限公司,安徽 合肥 230009)
針對(duì)車(chē)載網(wǎng)絡(luò)占用過(guò)高導(dǎo)致網(wǎng)絡(luò)延時(shí)問(wèn)題提出一種基于AutoSAR標(biāo)準(zhǔn)下設(shè)計(jì)的錯(cuò)峰發(fā)送方式。通過(guò)這種方式的實(shí)施將龐大單一任務(wù)分解成若干小任務(wù),從而避免對(duì)資源的長(zhǎng)期占用情況發(fā)生,降低系統(tǒng)時(shí)間延遲,對(duì)網(wǎng)絡(luò)實(shí)時(shí)性和可靠性具有較好的參考意義。
車(chē)載控制器網(wǎng)絡(luò);錯(cuò)峰發(fā)送;網(wǎng)絡(luò)延時(shí)
CAN總線技術(shù)在汽車(chē)電子發(fā)展過(guò)程中起著至關(guān)重要的作用。但隨著汽車(chē)電子的快速發(fā)展,總線節(jié)點(diǎn)增多使得總線通信量急劇增大,同時(shí)又要求被控對(duì)象反應(yīng)時(shí)間進(jìn)一步縮短,這使得CAN總線實(shí)時(shí)性和可靠性方面受到總線負(fù)載影響越來(lái)越明顯。
一幀CAN報(bào)文從發(fā)送ECU處理好數(shù)據(jù)到接收方ECU使用數(shù)據(jù),中間包含發(fā)送端軟件處理延時(shí)時(shí)間,硬件發(fā)送時(shí)間,總線等待時(shí)間,網(wǎng)絡(luò)傳輸時(shí)間,接收方數(shù)據(jù)校核時(shí)間、以及接收方軟件處理時(shí)間。其中除總線等待時(shí)間受網(wǎng)絡(luò)負(fù)載影響外,其他時(shí)間一般由ECU廠商設(shè)計(jì)方案決定??偩€等待時(shí)間指標(biāo)在主機(jī)廠進(jìn)行網(wǎng)絡(luò)設(shè)計(jì)應(yīng)重點(diǎn)約束,特別是總線被單一節(jié)點(diǎn)占用導(dǎo)致等待延時(shí)時(shí)間過(guò)長(zhǎng)問(wèn)題。
本文重點(diǎn)闡述如何有效降低“總線等待延時(shí)時(shí)間”。
CAN通訊采用半雙工通訊方式,同時(shí)采用ID仲裁機(jī)制實(shí)現(xiàn)數(shù)據(jù)發(fā)送優(yōu)先級(jí)方案。
在此方案下當(dāng)單一節(jié)點(diǎn)持續(xù)不斷發(fā)送高優(yōu)先級(jí)數(shù)據(jù)時(shí),網(wǎng)絡(luò)帶寬將始終被此節(jié)點(diǎn)占用,低優(yōu)先級(jí)數(shù)據(jù)將始終無(wú)法發(fā)送,形成堵塞,直到高優(yōu)先級(jí)數(shù)據(jù)停止發(fā)送為止,低優(yōu)先級(jí)數(shù)據(jù)才被發(fā)送出來(lái),且此過(guò)程由硬件實(shí)現(xiàn),不受軟件控制。
低優(yōu)先級(jí)數(shù)據(jù)發(fā)送被高優(yōu)先級(jí)報(bào)文堵塞的時(shí)間,稱(chēng)之為網(wǎng)絡(luò)等待延時(shí)時(shí)間。
由于CAN通訊仲裁機(jī)制下存在的固有缺陷,因此在網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)之初需要對(duì)所有參與CAN通訊ECU發(fā)送數(shù)據(jù)量進(jìn)行約束,避免單一ECU瞬時(shí)發(fā)送大量數(shù)據(jù)導(dǎo)致網(wǎng)絡(luò)始終被單一節(jié)點(diǎn)占用情況發(fā)生。
CAN通訊負(fù)載一般為網(wǎng)段一定時(shí)間內(nèi)的平均負(fù)載,可以宏觀體現(xiàn)網(wǎng)絡(luò)通訊帶寬占用情況,但無(wú)法體現(xiàn)一幀CAN數(shù)據(jù)被堵塞導(dǎo)致的發(fā)送延時(shí)時(shí)間。
一般汽車(chē)廠商要求總線延時(shí)時(shí)間不大于其發(fā)送周期的10%,以目前最快發(fā)送數(shù)據(jù)周期為準(zhǔn)進(jìn)行延時(shí)設(shè)計(jì)要求,即10ms周期發(fā)送的報(bào)文實(shí)際網(wǎng)絡(luò)周期應(yīng)該在9ms-11ms之間,因此除去引言描述的軟件占用時(shí)間,ECU連續(xù)發(fā)送數(shù)據(jù)時(shí)占用網(wǎng)絡(luò)時(shí)間最大不應(yīng)超過(guò)1ms,否則無(wú)法保證上述10%周期延時(shí)要求。
由CAN數(shù)據(jù)鏈路層協(xié)議獲知,一幀數(shù)據(jù)長(zhǎng)度為8的網(wǎng)絡(luò)數(shù)據(jù)一般由120-129比特位組成,傳輸時(shí)間約為0.23ms,當(dāng)出現(xiàn)連續(xù)數(shù)據(jù)發(fā)送情況時(shí),若出現(xiàn)連續(xù)5幀數(shù)據(jù)時(shí)占用總線時(shí)間即為1.15ms,超出標(biāo)準(zhǔn)要求,因此ECU每次連續(xù)發(fā)送數(shù)據(jù)量應(yīng)嚴(yán)格控制在4幀報(bào)文以?xún)?nèi)(如每幀數(shù)據(jù)長(zhǎng)度均不足8時(shí),可適當(dāng)放寬條件,但總數(shù)不應(yīng)超出6幀)。
基于AutoSAR標(biāo)準(zhǔn)下設(shè)計(jì)的CAN網(wǎng)絡(luò)通訊協(xié)議棧要求其通訊層(COM模塊)具備設(shè)置OffSet功能,即錯(cuò)峰發(fā)送方式。
以下內(nèi)容源于某公司發(fā)布的基于AutoSAR4.0標(biāo)準(zhǔn)開(kāi)發(fā)的CAN通訊協(xié)議棧配置工具使用手冊(cè)部分截圖。
2.3.1 Com模塊調(diào)度周期配置選項(xiàng)
通過(guò)圖1“Com模塊的整體配置項(xiàng)”中可以找到Confi -guration Time配置選項(xiàng),其中Configuration Time Base[s]配置項(xiàng)用來(lái)配置COM調(diào)度的基準(zhǔn)時(shí)間,單位為S。
圖1 Com模塊的整體配置項(xiàng)
(1)Configuration Rx Time Base[s]
此項(xiàng)用來(lái)配置Com_MainFunctionRx()被調(diào)用周期。
(2)Configuration Tx Time Base[s]
此項(xiàng)用來(lái)配置Com_MainFunctionTx()被調(diào)用周期。
2.3.2 Com模塊OffSet配置選項(xiàng)
通過(guò)圖2“Com模塊的TxIPdu配置項(xiàng)”可以找到Com TxIPdu配置選項(xiàng),其中Tx Mode配置項(xiàng)用來(lái)配置報(bào)文發(fā)送機(jī)制,有事件觸發(fā)型、周期型、混合型和無(wú)發(fā)送模式,但無(wú)論哪種發(fā)送模式均提供了Time Offset配置選項(xiàng),單位為S。
圖2 Com模塊的TxIPdu配置項(xiàng)
(1)Tx Mode Time Offset Factor[ms]
此項(xiàng)用來(lái)配置當(dāng)發(fā)送模式為Periodic或mixed情況下,當(dāng)Ipdu使能時(shí),發(fā)送第一幀報(bào)文的偏移量,此值必須是Com_MainFunctionTx周期倍數(shù)。
(2)Tx Mode Time Period Factor[ms]
此項(xiàng)用來(lái)配置當(dāng)發(fā)送模式為PERIODIC或MIXED情況時(shí),報(bào)文發(fā)送的Cycle,此值必須為Com_MainFunctionTx的整數(shù)倍。
當(dāng)控制器出現(xiàn)發(fā)送數(shù)據(jù)大于4幀情況時(shí)采用錯(cuò)位(錯(cuò)峰)發(fā)送方式。即在報(bào)文發(fā)送時(shí)將報(bào)文進(jìn)行分組,保證每組報(bào)文數(shù)據(jù)不大于5幀報(bào)文,同時(shí)在每組報(bào)文之間加入Offset實(shí)現(xiàn)錯(cuò)峰發(fā)送。
以下以某控制器發(fā)送5幀10ms周期數(shù)據(jù)幀,6幀20ms周期數(shù)據(jù)幀為例進(jìn)行具體方案說(shuō)明。
通過(guò)2.3章節(jié)描述可知,協(xié)議棧中Offset配置選項(xiàng)只能為調(diào)度周期整數(shù)倍,因此以下以2.5ms、5ms為基準(zhǔn)調(diào)度周期為例進(jìn)行設(shè)計(jì)描述。
將Com基準(zhǔn)調(diào)度周期設(shè)定為2.5ms,因此可以將10ms發(fā)送周期劃分為4個(gè)時(shí)間片,即10ms內(nèi)可觸發(fā)4次發(fā)送機(jī)制,因此可以將所有數(shù)據(jù)劃分為4組進(jìn)行發(fā)送。
以控制器發(fā)送11幀為例,將5幀10ms周期幀劃分為A,a兩組,將6幀20ms周期幀劃分為B,b兩組,其中A組有3幀,a組有2幀,B、b組各有3幀。將4組數(shù)據(jù)Offset配置項(xiàng)分別配置為:A組0ms,a組2.5ms,B組5.0ms,b組7.5ms,由此可進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)時(shí)序排布,得出下表1所示Com模塊發(fā)送網(wǎng)絡(luò)數(shù)據(jù)時(shí)序圖。
表1 Com模塊調(diào)度周期2.5ms發(fā)送11幀數(shù)據(jù)分組發(fā)送機(jī)制表
此后控制器將按上述發(fā)送機(jī)制以20ms周期循環(huán)發(fā)送數(shù)據(jù)。
將Com基準(zhǔn)調(diào)度周期設(shè)定為5ms,因此可以將10ms發(fā)送周期劃分為2個(gè)時(shí)間片,即10ms內(nèi)可觸發(fā)2次發(fā)送機(jī)制,可以將所有數(shù)據(jù)劃分為2組進(jìn)行發(fā)送。
以控制器發(fā)送11幀為例,將5幀10ms周期幀劃分為A組,將6幀20ms周期幀劃分為B組,其中A組有5幀,B組各有6幀。將2組數(shù)據(jù)Offset分別配置為:A組0ms,B組5.0ms,由此可進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)時(shí)序排布,得出下表2所示Com模塊發(fā)送網(wǎng)絡(luò)數(shù)據(jù)時(shí)序圖。
表2 Com模塊調(diào)度周期5ms發(fā)送11幀數(shù)據(jù)分組發(fā)送機(jī)制表
此后控制器將按上述發(fā)送機(jī)制以20ms周期循環(huán)發(fā)送數(shù)據(jù)。
通過(guò)3.1、3.2章節(jié)分析可知:當(dāng)一幀優(yōu)先級(jí)小于控制器所有發(fā)送報(bào)文情況下,在三種方案情況下的延時(shí)情況:
(1)在2.5ms基準(zhǔn)調(diào)度和Offset配置情況下:最大延時(shí)時(shí)間為0.69ms;
(2)在5ms基準(zhǔn)調(diào)度和Offset配置情況下:最大延時(shí)時(shí)間為1.38ms;
(3)在不做任何發(fā)送時(shí)序處理情況下:最大延時(shí)時(shí)間為2.53ms。
無(wú)論在網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)還是控制器軟件任務(wù)調(diào)度設(shè)計(jì)時(shí),都需要考慮資源占用情況,整車(chē)廠對(duì)網(wǎng)絡(luò)堵塞設(shè)計(jì)約束和ECU供應(yīng)商需要考慮CPU任務(wù)堵塞其內(nèi)在機(jī)制完全一致。
ECU設(shè)計(jì)初需要將CPU資源進(jìn)行系統(tǒng)劃分,實(shí)現(xiàn)調(diào)度機(jī)制,同時(shí)要避免單一龐大任務(wù)對(duì)CPU長(zhǎng)期占用,得益于CPU中斷觸發(fā)機(jī)制,可以及時(shí)實(shí)現(xiàn)任務(wù)間切換,降低堵塞產(chǎn)生的延時(shí)風(fēng)險(xiǎn),除此之外,設(shè)計(jì)方也需要將龐大單一任務(wù)進(jìn)行拆分,從而形成若干個(gè)時(shí)序不連續(xù)的子任務(wù),在設(shè)計(jì)上實(shí)現(xiàn)有效降低任務(wù)搶斷情況發(fā)生概率。
而CAN通訊目前沒(méi)有中斷觸發(fā)機(jī)制,當(dāng)單一節(jié)點(diǎn)網(wǎng)絡(luò)數(shù)據(jù)持續(xù)發(fā)送時(shí),因?yàn)橄嚓P(guān)控制器發(fā)送報(bào)文優(yōu)先級(jí)高,往往導(dǎo)致總線長(zhǎng)期被占用。針對(duì)此情況,采用錯(cuò)峰發(fā)送方式用于軟件任務(wù)中將龐大單一任務(wù)解成若干小任務(wù),可避免單一任務(wù)對(duì)資源的長(zhǎng)期占用情況發(fā)生,降低系統(tǒng)時(shí)間延遲。
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
吳震云,就職于安徽江淮汽車(chē)集團(tuán)股份有限公司。