席剛剛
(同濟(jì)大學(xué),上海 201800)
EPS(Electronic Power Steering,電子助力轉(zhuǎn)向)由機(jī)械轉(zhuǎn)向系統(tǒng)加上轉(zhuǎn)矩傳感器、車速傳感器、電子控制單元、減速器、電動(dòng)機(jī)等組成。它在傳統(tǒng)機(jī)械轉(zhuǎn)向系統(tǒng)的基礎(chǔ)上,根據(jù)方向盤上的轉(zhuǎn)矩信號(hào)和汽車的行駛車速信號(hào),利用電子控制裝置使電動(dòng)機(jī)產(chǎn)生相應(yīng)大小和方向的輔助動(dòng)力,協(xié)助駕駛員進(jìn)行轉(zhuǎn)向操作,作為整車安全件之一,要通過測(cè)試來確保軟件的性能。壓力測(cè)試是給軟件不斷加壓,強(qiáng)制其在極限情況下的運(yùn)行,觀察它可以運(yùn)行到何種程度,從而發(fā)現(xiàn)性能缺陷。通過搭建與實(shí)際環(huán)境相似的測(cè)試環(huán)境,通過測(cè)試程序在同一時(shí)間內(nèi)或某一段時(shí)間內(nèi),向系統(tǒng)發(fā)送預(yù)期數(shù)量的交易請(qǐng)求、測(cè)試系統(tǒng)在不同壓力情況下的效率狀況,以及系統(tǒng)可以承受的壓力情況。然后做針對(duì)性的測(cè)試與分析,找到影響系統(tǒng)性能的瓶頸,評(píng)估系統(tǒng)在實(shí)際使用環(huán)境下的效率情況,評(píng)價(jià)系統(tǒng)性能以及判斷是否需要對(duì)應(yīng)用系統(tǒng)進(jìn)行優(yōu)化處理或結(jié)構(gòu)調(diào)整。本文結(jié)合實(shí)際案例,在響應(yīng)多個(gè)診斷指令時(shí)EPS負(fù)反饋,響應(yīng)代碼是72,截取部分診斷指令,對(duì)EPS 進(jìn)行壓力測(cè)試,然后對(duì)測(cè)試結(jié)果處理,檢查是否存在軟件缺陷。
需要準(zhǔn)備好12 V 電源,集成CANoe licence 的CAN 盒一個(gè),EPS 樣件,EPS 所配套的電源線束和通信線束,終端電阻,測(cè)試電腦一臺(tái),按照?qǐng)D1 進(jìn)行連接(網(wǎng)絡(luò)喚醒)。
圖1 測(cè)試連接
由上位機(jī)軟件自動(dòng)發(fā)出診斷請(qǐng)求,等待EPS 給出響應(yīng)后,判斷是否為正響應(yīng),是正響應(yīng)繼續(xù)進(jìn)行下個(gè)請(qǐng)求,直到所有的請(qǐng)求全部發(fā)完。診斷流程如圖2 所示。
測(cè)試案例基于CANoe環(huán)境,利用CAPL 語(yǔ)言進(jìn)行編程,本次診斷壓力測(cè)試案例開發(fā)中,主測(cè)試Case 包含5 個(gè)事件,依次分別是進(jìn)入擴(kuò)展會(huì)話模式、向EPS 請(qǐng)求安全認(rèn)證種子、向EPS 發(fā)送安全認(rèn)證key、寫入?yún)?shù)1、寫入?yún)?shù)2、寫入?yún)?shù)3、寫入?yún)?shù)4。
/*cycle send*/
for(i=0;i<10;i++)
{
EnterExtendSession();
RequestSecuritySeed();
SendSecurityKey();
WriteParameter1();
WriteParameter2();
WriteParameter3();
WriteParameter4();
testWaitForTimeout(2000);
}
實(shí)際上整車廠造車時(shí)涉及到的診斷服務(wù)遠(yuǎn)超過這些,本次只截取其中某個(gè)工位涉及到的診斷服務(wù),對(duì)其進(jìn)行連續(xù)循環(huán)測(cè)試,同時(shí)發(fā)送整車級(jí)報(bào)文。設(shè)定總線負(fù)載率達(dá)到60%以上(通過發(fā)送小周期報(bào)文實(shí)現(xiàn)),驗(yàn)證EPS 在惡劣工況下能否響應(yīng)診斷工具的請(qǐng)求,檢查軟件的表現(xiàn)性能(圖3)。
基于不同的ECU(Electronic Control Unit,電子控制單元),在循環(huán)寫入?yún)?shù)時(shí),需要注意有些ECU 在連續(xù)寫入相同值時(shí)不響應(yīng)請(qǐng)求,基于這樣的軟件邏輯,本次Case 中連續(xù)寫入值不同,采用交替值寫入,以寫入?yún)?shù)1 請(qǐng)求函數(shù)為例,對(duì)請(qǐng)求服務(wù)的第8個(gè)字節(jié)進(jìn)行交替賦值。此處的變量i 在主測(cè)試已經(jīng)定義,并在for 循環(huán)中進(jìn)行自加加運(yùn)算,結(jié)合請(qǐng)求函數(shù),能夠?qū)崿F(xiàn)連續(xù)兩次寫入的值不同。
i=i%2;
if(i==0)
{diagTX.byte(7)=0x2B;}
if(i==1)
{diagTX.byte(7)=0x2C;}
為了詳細(xì)觀察EPS 表現(xiàn),在測(cè)試完成后需要對(duì)測(cè)試數(shù)據(jù)進(jìn)行處理,測(cè)試目的是為了檢測(cè)軟件在極限工況下的表現(xiàn)0 根據(jù)需求,EPS 在收到請(qǐng)求后750 ms 內(nèi)判斷是否寫入,寫入成功發(fā)送正響應(yīng),寫入不成功發(fā)送負(fù)響應(yīng),因此在出現(xiàn)負(fù)響應(yīng)時(shí)檢查請(qǐng)求到響應(yīng)之間的時(shí)間間隔,測(cè)試數(shù)據(jù)為總線數(shù)據(jù)(圖4)。借助spy3 工具,把CANoe 記錄的數(shù)據(jù)轉(zhuǎn)化成.CSV 文件,然后在Excel 里面打開(圖5),再利用公式if(P3=7F,(B3-B2)*1000,0)計(jì)算,然后用max 篩選出最大的時(shí)間,判斷其是否超過750 ms。
圖2 診斷流程
圖3 總線負(fù)載
圖4 總線數(shù)據(jù)
圖5 測(cè)試數(shù)據(jù)
壓力測(cè)試的目的是檢測(cè)軟件在極端工況下的表現(xiàn)情況,在供應(yīng)商處檢查出問題,避免在整車廠出現(xiàn)問題,測(cè)試時(shí)必要條件是模擬整車環(huán)境,盡可能做到與產(chǎn)線的工況一致,但為了增加工況的惡劣性,可以適當(dāng)增加總線負(fù)載率。另外,在每一個(gè)請(qǐng)求之間的時(shí)間間隔應(yīng)盡可能小,這樣測(cè)試效果才會(huì)顯著,但是必須要等到上一個(gè)請(qǐng)求服務(wù)得到反饋之后才能請(qǐng)求第二幀,否則測(cè)試將失去意義。由于測(cè)試數(shù)據(jù)較大,因此處理時(shí)一定要采用快捷高效準(zhǔn)確的方式。