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