杜峰 蔡一杰 關(guān)志偉,3 唐風(fēng)敏 吳迪
(1.天津市智能交通技術(shù)工程中心,天津 300222;2.天津職業(yè)技術(shù)師范大學(xué),天津 300222;3.天津中德應(yīng)用技術(shù)大學(xué),天津 300350;4.中汽研(天津)汽車工程研究院有限公司,天津 300300;5.河北工業(yè)大學(xué),天津 300401)
主題詞CAN總線 傳輸速率 延時(shí) 偏移量補(bǔ)償 標(biāo)識(shí)符優(yōu)化
車載CAN總線系統(tǒng)擁有高性能、高可靠性、高實(shí)時(shí)性與設(shè)計(jì)較為靈活等優(yōu)勢,因此廣泛應(yīng)用于當(dāng)前汽車電子控制網(wǎng)絡(luò)系統(tǒng)中。但是汽車電子技術(shù)的發(fā)展日新月異,為滿足用戶的需要,總線系統(tǒng)內(nèi)的節(jié)點(diǎn)越來越多,設(shè)計(jì)越來越復(fù)雜。系統(tǒng)高負(fù)載工作時(shí),大量節(jié)點(diǎn)會(huì)同時(shí)爭搶帶寬資源,有可能出現(xiàn)數(shù)據(jù)傳輸延時(shí)現(xiàn)象,不僅限制了數(shù)據(jù)傳輸速率,還可能影響系統(tǒng)的穩(wěn)定性。
國內(nèi)外針對CAN總線網(wǎng)絡(luò)通信延時(shí)的測算與優(yōu)化進(jìn)行了大量的研究。對通信延時(shí)的測算主要包括對最差情況響應(yīng)時(shí)間及非最差情況下的總線消息響應(yīng)時(shí)間建模分析,并在此基礎(chǔ)上建立了考慮錯(cuò)誤和干擾的理論體系。此外,有學(xué)者還提出了運(yùn)用數(shù)學(xué)和概率工具計(jì)算響應(yīng)時(shí)間的方法,該方法能夠更好地測算響應(yīng)時(shí)間的概率分布情況。網(wǎng)絡(luò)通信延時(shí)優(yōu)化方面的研究主要包括報(bào)文標(biāo)識(shí)符編碼研究、調(diào)度算法優(yōu)化、負(fù)載率算法研究等。這些措施都可有效改善總線系統(tǒng)的通信質(zhì)量,但實(shí)際應(yīng)用中仍會(huì)出現(xiàn)高負(fù)載率下穩(wěn)定性變差等不利情況,且這些優(yōu)化方法均難以對總線網(wǎng)絡(luò)系統(tǒng)的整體與局部進(jìn)行兼顧,無法達(dá)到最好的優(yōu)化效果。
本文基于CAN 通信協(xié)議對總線數(shù)據(jù)傳輸進(jìn)行分析,在負(fù)載率固定的情況下對總線延時(shí)和網(wǎng)絡(luò)可擴(kuò)展性進(jìn)行優(yōu)化,分析總線數(shù)據(jù)傳輸時(shí)的延時(shí)特性,提出一種報(bào)文偏移量補(bǔ)償及標(biāo)識(shí)符優(yōu)化的混合優(yōu)化方案,并采用該方案對動(dòng)力CAN(PTCAN)和車身CAN(BDCAN)總線進(jìn)行分析優(yōu)化。
CAN 總線上每一個(gè)節(jié)點(diǎn)工作的時(shí)鐘都不相同,并且具有獨(dú)立發(fā)送請求的權(quán)利。對某一報(bào)文而言,從系統(tǒng)下達(dá)報(bào)文發(fā)送的命令到報(bào)文接收完成的時(shí)間稱為CAN總線的通信延時(shí)。任意報(bào)文的通信延時(shí)τ可分為通信過程延時(shí)R和通信錯(cuò)誤恢復(fù)時(shí)間E:
通信過程延時(shí)為在沒有任何通信錯(cuò)誤的前提下,報(bào)文從開始發(fā)送到接收完成所需的執(zhí)行時(shí)間和等待時(shí)間。因?yàn)橥ㄐ佩e(cuò)誤所導(dǎo)致的報(bào)文發(fā)送失敗而進(jìn)行恢復(fù)所花費(fèi)的時(shí)間稱為通信錯(cuò)誤恢復(fù)時(shí)間。
2.1.1 通信過程延時(shí)
通信過程延時(shí)由幀延時(shí)、軟件與CAN 控制器延時(shí)、媒體訪問延時(shí)組成,可近似表示為:
幀延時(shí)主要受報(bào)文的幀長度和位時(shí)間影響。幀延時(shí)的表達(dá)式為:
式中,為數(shù)據(jù)位的長度,即數(shù)據(jù)場中實(shí)際傳輸?shù)臄?shù)據(jù)位數(shù);為開銷位的長度,由該幀為標(biāo)準(zhǔn)幀或擴(kuò)展幀決定;為填充位的長度,其大小需根據(jù)位流的實(shí)際情況而定。
軟件延時(shí)與CAN 控制器延時(shí)主要由CAN 控制器本身、接口芯片、具體傳遞的報(bào)文信息量等因素決定。
媒體訪問延時(shí)是不同優(yōu)先級(jí)的報(bào)文在搶奪總線帶寬資源時(shí)所額外耗費(fèi)的時(shí)間,這也是當(dāng)前國內(nèi)外汽車電子方面研究的熱點(diǎn)。CAN 總線通過非破壞性總線仲裁機(jī)制對報(bào)文進(jìn)行傳輸,這樣的運(yùn)行機(jī)制極易導(dǎo)致高優(yōu)先級(jí)報(bào)文不斷地被發(fā)送,中低優(yōu)先級(jí)報(bào)文不斷地被重復(fù)仲裁的情況出現(xiàn),會(huì)對優(yōu)先級(jí)不占優(yōu)勢的報(bào)文產(chǎn)生極大影響,從而出現(xiàn)較大的媒體訪問延時(shí)。
2.1.2 通信錯(cuò)誤恢復(fù)時(shí)間
CAN 總線采用自身獨(dú)特的通信錯(cuò)誤處理機(jī)制來處理通信錯(cuò)誤情況,該機(jī)制分為錯(cuò)誤檢測、錯(cuò)誤界定和錯(cuò)誤處理3個(gè)階段。
由于實(shí)際系統(tǒng)中可能出現(xiàn)的情況多種多樣,復(fù)雜多變,難以確認(rèn)通信錯(cuò)誤恢復(fù)時(shí)間的全部影響因素,因此本文僅對一般情況下的錯(cuò)誤恢復(fù)時(shí)間進(jìn)行分析。
錯(cuò)誤恢復(fù)時(shí)間E可表示為:
式中,為在通信傳輸錯(cuò)誤出現(xiàn)之前,報(bào)文已傳輸?shù)臅r(shí)長;為通信錯(cuò)誤持續(xù)的時(shí)長;為通信錯(cuò)誤期間報(bào)文的傳輸時(shí)長之和。
綜上,CAN總線報(bào)文的通信延時(shí)可由式(5)得到:
對總線突發(fā)傳輸(Burst)情況、一般情況相對延時(shí)及最差情況相對延時(shí)進(jìn)行建模研究,可清晰地發(fā)現(xiàn)總線的擁堵情況及具體的各情況延時(shí)時(shí)長。
2.2.1 總線突發(fā)傳輸情況
在總線上完成了一次地址傳輸后,對該地址連續(xù)進(jìn)行多次數(shù)據(jù)傳輸稱為總線的突發(fā)傳輸。在一次突發(fā)傳輸中,起始地址傳輸完成后,后續(xù)傳輸?shù)拇螖?shù)稱為突發(fā)傳輸長度。在內(nèi)存讀寫的實(shí)際應(yīng)用中,只要對起始地址與突發(fā)傳輸長度進(jìn)行定義,就可方便有效地進(jìn)行連續(xù)傳輸,但在CAN總線系統(tǒng)中,連續(xù)發(fā)送極容易對通信情況造成影響。連續(xù)發(fā)送時(shí)長較長的控制器勢必會(huì)出現(xiàn)網(wǎng)絡(luò)擁堵問題,從而導(dǎo)致延時(shí)時(shí)長的增加,因此研究Burst情況可以快速發(fā)現(xiàn)延時(shí)情況較為嚴(yán)重的控制器,以便有針對性地解決問題,提高優(yōu)化效率。
2.2.2 一般情況相對延時(shí)
在進(jìn)行報(bào)文的網(wǎng)絡(luò)傳輸時(shí),即使是完全相同的報(bào)文也難以保證同時(shí)到達(dá)。每個(gè)報(bào)文實(shí)際到達(dá)時(shí)間與預(yù)定到達(dá)時(shí)間的差距無法做到一致,這種現(xiàn)象稱為抖動(dòng)。由于不同報(bào)文的發(fā)送周期不同,導(dǎo)致延時(shí)時(shí)長這一指標(biāo)無法真實(shí)反映報(bào)文的延時(shí)情況,為解決這一問題,采用一般情況相對延時(shí)近似顯示報(bào)文發(fā)送的延時(shí)情況:
式中,為抖動(dòng)的時(shí)長;為報(bào)文的設(shè)計(jì)周期。
2.2.3 最差情況相對延時(shí)
要對報(bào)文的延時(shí)特性進(jìn)行分析,就必須對報(bào)文的實(shí)時(shí)性進(jìn)行研究,即對報(bào)文的最差情況響應(yīng)時(shí)間(Worst Case Response Time,WCRT)進(jìn)行分析。WCRT 分析即研究總線系統(tǒng)調(diào)度的可行性,其內(nèi)容為測算報(bào)文可能出現(xiàn)的最長通信延時(shí),以判斷在給定時(shí)間內(nèi)能否成功完成傳輸,從而避免出現(xiàn)丟幀等嚴(yán)重問題,保證CAN報(bào)文傳輸?shù)陌踩浴?/p>
最差情況響應(yīng)時(shí)間W主要由3個(gè)部分組成:
式中,Q為排隊(duì)等候的時(shí)長。
J主要由發(fā)送節(jié)點(diǎn)的軟件程序決定,Q通過迭代計(jì)算:
上述分析方法是基于理想情況,將WCRT分析拓展到具有通信錯(cuò)誤的情況,最差情況響應(yīng)時(shí)間W為:
同樣地,將最差情況響應(yīng)時(shí)間與設(shè)計(jì)周期之比稱為最差情況相對延時(shí):
報(bào)文偏移量補(bǔ)償(OFFSET)是一種對CAN 總線報(bào)文傳輸序列進(jìn)行精確分析并通過對其偏移量進(jìn)行補(bǔ)償來提升通信精確度的方法。該方法通過監(jiān)測總線活動(dòng)形成報(bào)文傳輸序列,并對這些報(bào)文傳輸序列進(jìn)行分析來了解傳輸延時(shí)的大致情況,從而獲得報(bào)文偏移的準(zhǔn)確值。該方法的流程如下:
a.獲取CAN 總線一段時(shí)間范圍內(nèi)傳輸?shù)娜繄?bào)文內(nèi)容,并確認(rèn)每一個(gè)報(bào)文傳輸結(jié)束的時(shí)間信息,隨后將所有接收到的信息存放起來,并按照接收的順序予以排列,從而得到報(bào)文傳輸序列。
b.對報(bào)文傳輸序列加以分析。首先,在報(bào)文記錄中定義“基準(zhǔn)報(bào)文”,然后選定2個(gè)不存在排隊(duì)延時(shí)的報(bào)文為“基準(zhǔn)報(bào)文實(shí)例”,其選取原則為:
各報(bào)文的最差情況相對延時(shí)須小于100%,否則會(huì)出現(xiàn)丟幀等問題,需對其進(jìn)行具體分析;各報(bào)文一般情況相對延時(shí)須小于40%,如果有個(gè)別超過40%的情況,可能出現(xiàn)丟幀等問題,需具體分析;需存在2 個(gè)以上不存在排隊(duì)延時(shí)的報(bào)文以進(jìn)行基準(zhǔn)報(bào)文的選取。
設(shè)這2個(gè)基準(zhǔn)報(bào)文實(shí)例完成接收的時(shí)間點(diǎn)分別為t和t,其中為完成接收的時(shí)刻,和為報(bào)文實(shí)例的序號(hào),且<。
c.通過前文選定的基準(zhǔn)報(bào)文實(shí)例構(gòu)建整個(gè)時(shí)間段內(nèi)各報(bào)文應(yīng)接收完成的時(shí)間點(diǎn),如圖1 所示。圖中“B”為基準(zhǔn)報(bào)文實(shí)例,ΔM為一個(gè)基準(zhǔn)報(bào)文實(shí)例相對前一個(gè)基準(zhǔn)報(bào)文實(shí)例的時(shí)間增量,參考線表示由2 個(gè)“基準(zhǔn)報(bào)文實(shí)例”所構(gòu)建的各報(bào)文應(yīng)接收完成的時(shí)間點(diǎn),這些時(shí)間點(diǎn)的信息可由式(11)、式(12)得到:
圖1 各報(bào)文應(yīng)接收完成的時(shí)間點(diǎn)
d.最后,采用上述方法對每個(gè)報(bào)文重新計(jì)算,得到正確到達(dá)時(shí)間,即可對優(yōu)化后的報(bào)文進(jìn)行發(fā)送。
綜上,報(bào)文偏移量補(bǔ)償法可以在確定基準(zhǔn)報(bào)文實(shí)例的情況下對報(bào)文進(jìn)行精確的延時(shí)分析,但如果不滿足構(gòu)成基準(zhǔn)報(bào)文實(shí)例的條件,就無法應(yīng)用此方法。因此這里需要采用報(bào)文標(biāo)識(shí)符優(yōu)化的整體優(yōu)化方案先對總線進(jìn)行整體優(yōu)化,從而提升報(bào)文傳輸質(zhì)量,滿足確定基準(zhǔn)報(bào)文實(shí)例的條件。
在CAN 總線系統(tǒng)中,進(jìn)行信息交換的最基礎(chǔ)單元為報(bào)文,每一個(gè)報(bào)文都有自己獨(dú)特的標(biāo)識(shí)符(ID),標(biāo)識(shí)符最主要的功能為區(qū)分報(bào)文的優(yōu)先級(jí)。但是CAN總線的機(jī)制決定了系統(tǒng)會(huì)優(yōu)先保證高優(yōu)先級(jí)報(bào)文的傳輸,而優(yōu)先級(jí)低的報(bào)文不但無法及時(shí)發(fā)送,且沒有一個(gè)確定的發(fā)送時(shí)間,這樣勢必會(huì)對通信質(zhì)量造成影響。為此,本文提出一種通用的標(biāo)識(shí)符編碼優(yōu)化設(shè)計(jì)方法。
使用兼容CAN2.0A 與CAN2.0B 規(guī)范的11 位標(biāo)識(shí)符,并將其ID域劃分為3段,如圖2所示。
圖2 11位標(biāo)識(shí)符分段結(jié)構(gòu)
高4位為標(biāo)識(shí)符的信息段,是一段信息編碼,用來對設(shè)備節(jié)點(diǎn)提交的數(shù)據(jù)進(jìn)行分類,取值范圍為0~15。其中由于CAN 規(guī)范規(guī)定7個(gè)最高位不能全部為1,所以取值為15的編碼無法使用。第4~6位為設(shè)備段,是一個(gè)系統(tǒng)或分系統(tǒng)內(nèi)的設(shè)備編碼,取值范圍為0~7,因此最多支持8 個(gè)設(shè)備。低4 位為系統(tǒng)段,在對整個(gè)系統(tǒng)或分系統(tǒng)進(jìn)行編碼時(shí)使用,取值范圍為0~15,即最多可承載16個(gè)分系統(tǒng)。由于設(shè)備段和系統(tǒng)段并沒有明顯的區(qū)分,因此若將2個(gè)段聯(lián)用,可承載127個(gè)節(jié)點(diǎn)設(shè)備同時(shí)聯(lián)網(wǎng)。
“OFFSET+ID”方案優(yōu)化流程如圖3所示。
圖3 “OFFSET+ID”方案的優(yōu)化流程
運(yùn)用CANoe 軟件采集實(shí)車動(dòng)力控制總線(PT?CAN)、車身控制總線(BDCAN)的報(bào)文發(fā)送記錄,并使用Symtavision 軟件對采集到的發(fā)送記錄(trace)文件進(jìn)行網(wǎng)絡(luò)傳輸質(zhì)量分析。
采用Symtavision 軟件,依據(jù)設(shè)計(jì)文件搭建BDCAN與PTCAN 總線上的實(shí)車網(wǎng)絡(luò)模型,建立的部分網(wǎng)絡(luò)模型元素如圖4所示。
圖4 BDCAN與PTCAN總線網(wǎng)絡(luò)的部分模型元素
采用報(bào)文偏移量補(bǔ)償方法進(jìn)行優(yōu)化需要對能否選定基準(zhǔn)報(bào)文實(shí)例進(jìn)行判別,基于此對選定條件進(jìn)行測試。
首先對CAN 總線上的報(bào)文發(fā)送情況進(jìn)行分析,表1 所示為BDCAN 與PTCAN 總線上的延時(shí)指標(biāo)分析數(shù)據(jù)。
表1 延時(shí)指標(biāo)仿真情況
由表1 可知,BDCAN 各報(bào)文延時(shí)在可接受范圍內(nèi),但PTCAN 總線上Engine4、SAS1 報(bào)文的延時(shí)不符合標(biāo)準(zhǔn)。
綜上分析,BDCAN 總線網(wǎng)絡(luò)情況符合選定基準(zhǔn)報(bào)文實(shí)例的標(biāo)準(zhǔn),可以直接采用報(bào)文偏移量補(bǔ)償?shù)姆椒?,而PTCAN 總線無法滿足要求,需要采用“OFFSET+ID”的混合優(yōu)化方案。
本次優(yōu)化具體方案如下:
ID 方面,在對PTCAN 總線使用標(biāo)識(shí)符重新分配方法后,報(bào)文SAS1 仍不滿足實(shí)施偏移量補(bǔ)償方案的條件,經(jīng)分析后對其報(bào)文名進(jìn)行優(yōu)化,具體參數(shù)如表2 所示。
表2 ID優(yōu)化參數(shù)
通過實(shí)施偏移量補(bǔ)償方案,計(jì)算得出OFFSET方案具體優(yōu)化參數(shù),如表3所示。
表3 OFFEST優(yōu)化參數(shù)
根據(jù)前文所述,對BDCAN 總線采用報(bào)文偏移量補(bǔ)償方法,對PTCAN 采用“OFFSET+ID”優(yōu)化方案進(jìn)行優(yōu)化,根據(jù)前文得到的計(jì)算模型對BDCAN與PTCAN的一般情況相對延時(shí)與最差情況相對延時(shí)進(jìn)行計(jì)算,優(yōu)化前后對比如圖5、圖6所示。
圖5 優(yōu)化前、后BDCAN報(bào)文一般情況及最差情況相對延時(shí)
圖6 優(yōu)化前、后PTCAN報(bào)文一般情況及最差情況相對延時(shí)
經(jīng)過數(shù)據(jù)統(tǒng)計(jì),優(yōu)化后PTCAN、BDCAN總線一般情況相對延時(shí)數(shù)據(jù)對比如圖7所示,最差情況相對延時(shí)數(shù)據(jù)對比如圖8所示。
圖7 PTCAN和BDCAN一般情況相對延時(shí)對比
圖8 PTCAN和BDCAN最差情況相對延時(shí)對比
據(jù)圖7、圖8 可知:優(yōu)化后PTCAN 各報(bào)文的一般情況相對延時(shí)均在30%以下,同時(shí)高延時(shí)百分比的報(bào)文數(shù)量大幅度減少;BDCAN 各報(bào)文的一般情況相對延時(shí)均在20%以下,同時(shí)最差情況延時(shí)均小于60%。將相對延時(shí)低于10%的報(bào)文定義為低延時(shí)報(bào)文,通過采用這一方案,2條總線的平均一般情況低延時(shí)報(bào)文占比由優(yōu)化前的67.5%提升至82.25%,最差情況低延時(shí)報(bào)文占比由優(yōu)化前的44.65%提升至48.75%,極大地改善了網(wǎng)絡(luò)通訊延時(shí)情況,增加了后續(xù)網(wǎng)絡(luò)的可擴(kuò)展性。
本文以CAN 總線系統(tǒng)實(shí)時(shí)性為對象,研究了總線通信系統(tǒng)的延時(shí)特性,針對報(bào)文延時(shí)的各項(xiàng)指標(biāo),提出“OFFSET+ID”的優(yōu)化方案,并在2條CAN總線上進(jìn)行仿真驗(yàn)證,得出如下結(jié)論:
a.從通信延時(shí)模型中分析得到的報(bào)文突發(fā)傳輸情況、一般情況相對延時(shí)和最差情況相對延時(shí)的模型可用于評價(jià)CAN總線的實(shí)時(shí)性。
b.“OFFSET+ID”方案在負(fù)載率一定的條件下大幅減少了高度延時(shí)和中度延時(shí)報(bào)文的數(shù)量,大幅提高了CAN總線的實(shí)時(shí)性。