上期LIN測試小課堂,我們分享了LIN總線幀結(jié)構(gòu)及各場干擾,如何測試樣件是否不響應(yīng)錯誤的幀結(jié)構(gòu)。 ?
這次我們的介紹主題是LIN休眠喚醒,一起看看標(biāo)準(zhǔn)和差異性,開發(fā)和測試的關(guān)系,實際的案例分享也來了。 ? ?
01 LIN控制器休眠喚醒類型介紹
雖然新架構(gòu)的發(fā)展促進(jìn)著通信技術(shù)的升級換代,但作為車載通信技術(shù)的常青樹之一的LIN通信,由于其自身的特點,將會繼續(xù)發(fā)光發(fā)熱。其中LIN的休眠喚醒作為整車休眠喚醒的重要組成部分,需引起開發(fā)和測試工程師足夠的重視。本文將介紹此方面的內(nèi)容,LIN總線是主從結(jié)構(gòu),下面將從LIN主/從節(jié)點分別展開。 ?
主節(jié)點休眠喚醒
主節(jié)點的喚醒條件在LIN協(xié)議2.1規(guī)范中定義的是被喚醒信號喚醒,但是實際應(yīng)用OEM多是依據(jù)自己的需求進(jìn)行開發(fā)的。 ?
常見的幾種喚醒方式如下:
1.硬線喚醒(硬線喚醒源實質(zhì)就是定義喚醒線的電平變化,如傳統(tǒng)車的KL15上電)?
2.網(wǎng)絡(luò)喚醒(網(wǎng)絡(luò)喚醒即是網(wǎng)絡(luò)管理報文喚醒,此處網(wǎng)絡(luò)管理報文指的是LIN的上層網(wǎng)絡(luò)總線(CAN/FlexRay),LIN本身不存在網(wǎng)絡(luò)管理報文,上層網(wǎng)絡(luò)喚醒伴隨LIN網(wǎng)絡(luò)喚醒)
3.特定信號喚醒(例:車輛使用模式信號為特定值時LIN網(wǎng)絡(luò)才能喚醒)
LIN Specification Rev 2.1en ? 規(guī)范描述在主節(jié)點不發(fā)送幀頭時,從節(jié)點應(yīng)發(fā)送喚醒信號來喚醒主節(jié)點。這種喚醒必須滿足兩個條件:
1.從節(jié)點必須支持發(fā)送喚醒信號?
2.主節(jié)點能夠被喚醒信號喚醒 ? 但是實際測試中發(fā)現(xiàn),從節(jié)點一般不支持發(fā)送喚醒信號喚醒(實車測試遇到過網(wǎng)絡(luò)喚醒休眠異常情況,排查發(fā)現(xiàn)為從節(jié)點陽光雨量控制器不斷發(fā)送喚醒信號導(dǎo)致的,即取消了該控制器能發(fā)送喚醒信號的功能)。 ?
隨著局部網(wǎng)絡(luò)喚醒的應(yīng)用,主節(jié)點喚醒方式大多為網(wǎng)絡(luò)喚醒,LIN網(wǎng)絡(luò)做成與上層網(wǎng)絡(luò)同睡同醒的機(jī)制。 ?
主節(jié)點休眠的最終表現(xiàn)形式都是發(fā)送睡眠指令,當(dāng)然休眠與喚醒本就是強(qiáng)關(guān)聯(lián),且主節(jié)點的喚醒休眠條件多是依據(jù)OEM自身需求而定,我們就不進(jìn)行展開了。 ?
從節(jié)點休眠喚醒
從節(jié)點的喚醒條件
同樣為接收到喚醒信號,LIN協(xié)議2.1規(guī)范中描述從節(jié)點喚醒條件可能為接收到主節(jié)點發(fā)送同步間隔場,這是LIN通信機(jī)制的緣故,從節(jié)點進(jìn)行通信必須接收到主節(jié)點發(fā)送的幀頭才能發(fā)送從節(jié)點響應(yīng)部分,而幀頭可以充當(dāng)喚醒信號,從節(jié)點在接收到喚醒信號完成初始化后即可正常通信。 ?
LIN Specification Rev 2.1en
規(guī)范描述從節(jié)點的兩種休眠條件如下:
1.接收到睡眠指令?
2.總線空閑4-10S
正是由于從節(jié)點需求的通用性,我們才能總結(jié)出各零部件供應(yīng)商的實現(xiàn)差異點,沉淀測試經(jīng)驗來優(yōu)化我們的測試。其中從節(jié)點最典型的測試就是休眠喚醒遍歷測試,下文將對此進(jìn)行詳細(xì)展開。 ? ?
02 休眠喚醒測試案例分享
案例1:連續(xù)仿真發(fā)送從節(jié)點響應(yīng)的某幀幀頭時,樣件會不斷重復(fù)休眠喚醒的過程。
造成該現(xiàn)象的根本原因是該零部件供應(yīng)商除了上述兩種休眠條件外還增加了另外一個休眠條件:檢測主節(jié)點丟失(即接收到主節(jié)點的發(fā)送報文);我們測試休眠喚醒為了避免其它幀頭對測試造成影響,所以選擇該從節(jié)點響應(yīng)的某一幀進(jìn)行休眠喚醒測試,這就造成了主節(jié)點丟失的條件,從節(jié)點會進(jìn)入休眠;休眠之后又會被周期仿真的幀頭喚醒,所以就出現(xiàn)重復(fù)休眠喚醒的現(xiàn)象。 ?
檢測到主節(jié)點丟失休眠條件在各節(jié)點工作正常是不會產(chǎn)生任何影響,但可以在LIN總線短地的條件下使樣件進(jìn)入休眠,防止由于LIN線短地造成樣件無法休眠導(dǎo)致整車饋電,此是在滿足標(biāo)準(zhǔn)基礎(chǔ)上的設(shè)計優(yōu)化。當(dāng)然,具體的問題要依據(jù)具體設(shè)計而定,有可能總線空閑的判斷邏輯覆蓋了低電平時情況,未檢測到電平變化就識別為總線空閑,這樣就無需增加休眠條件了。 ?
案例2:樣件在接收到睡眠指令后偶發(fā)性不能進(jìn)入休眠。
測試用例我們一般遍歷測試接收到睡眠指令后等待300-1100ms樣件是否都能正常進(jìn)入休眠; ?
造成該問題的根本原因是樣件在接收到睡眠指令后有一個預(yù)休眠處理,時間為500ms(功能設(shè)計于數(shù)據(jù)保存),在預(yù)休眠期間樣件不會識別任何幀頭;所以只要是遍歷等待時間小于500ms,依據(jù)自動腳本等待時間代碼的時間疊加,就造成樣件偶發(fā)不能進(jìn)入休眠的現(xiàn)象。 ?
由于特殊樣件有特定的需求,這種情況我們就會優(yōu)化我們的測試方法。同時在此基礎(chǔ)上可以延伸出等待總線空閑臨界點的休眠喚醒測試的新場景。 ?
總而言之,測試設(shè)計以具體需求設(shè)計為基礎(chǔ),用以高效發(fā)現(xiàn)問題,以及評估設(shè)計合理性,這是一個消化吸收、總結(jié)沉淀、擴(kuò)展延伸的過程,需要對設(shè)計需求有深入的理解,需要關(guān)注和了解具體的實現(xiàn)方法,需要在測試過程中實踐和分析。 ? ?
03 小結(jié)
通過上述的介紹,相信大家對LIN喚醒休眠有了一定的了解。由于LIN主節(jié)點多是OEM根據(jù)自己的需求進(jìn)行開發(fā),就沒有對主節(jié)點的喚醒休眠測試進(jìn)行展開;如果大家想了解常見的喚醒方式(同睡同醒),可參照AUTOSAR網(wǎng)絡(luò)管理部分的分享內(nèi)容。 ?
編輯:黃飛
?
評論