陳子昊 王超逸 楊超 武利偉 呂小磊 顧金龍
吉利汽車集團(tuán)有限公司 浙江省寧波市 315336
隨著汽車行業(yè)的高速發(fā)展,人們對汽車在安全性,舒適性等方面要求越來越高,隨之而來的是關(guān)于汽車上ECU模塊的種類越來越多,車型配置越來越復(fù)雜,對于EOL電檢系統(tǒng)的腳本開發(fā)和驗證的要求也越來越高,現(xiàn)階段大部分的電檢系統(tǒng)的腳本驗證都是通過實車驗證或者是臺架驗證,但是實車驗證和臺架驗證存在以下幾點問題:1.無論是實車驗證或是臺架驗證都是需要實體資源,在緊急情況下可能很難及時得到驗證。2.實車和臺架驗證跟腳本存在需求不同的可能,難以得到驗證。3.驗證效率低,可能并沒有擁有新版腳本的驗證條件。因此,本文提出利用VSPY通過模擬仿真外部ECU的回復(fù),對診斷設(shè)備發(fā)出的指令進(jìn)行回復(fù),從而起到對整車電檢系統(tǒng)腳本虛擬驗證的效果。
在汽車總線仿真測試行業(yè)中,一般使用最多的為兩款軟件,一是Vector公司的CANOE,另外一個則是英特佩斯公司的VSPY。
Vector公司CANoe是為了開發(fā),測試和分析整個ECU網(wǎng)絡(luò)和單個ECU而設(shè)計的全面的軟件工具,它能夠參與整個開發(fā)流程,它的功能較為豐富多樣,在全球大部分汽車廠和一級供應(yīng)商得到廣泛的應(yīng)用,但是其產(chǎn)品分模塊和功能進(jìn)行銷售,同時其銷售的價格昂貴。
而英特佩斯的VSPY是一款專業(yè)的汽車總線仿真測試軟件,專業(yè)的CAN/LIN總線分析儀,能夠進(jìn)行汽車故障診斷,ECU節(jié)點仿真開發(fā),ECU自動化測試,總線數(shù)據(jù)采集,CAN/LIN線解碼/破解,XCP/CCP協(xié)議的ECU標(biāo)定,以及車輛網(wǎng)絡(luò)總線數(shù)據(jù)監(jiān)測。簡單易學(xué),更重要的是價格只有Vector公司CANoe的價格的1/5,購買軟件就可以獲得全部功能,操作方便,因此,在車輛虛擬驗證臺架的搭建過程中,采用VSPY較為合適,不僅提高整個搭建過程的效率,也降低了搭建的成本。
通過VSPY工具對整車EOL電檢系統(tǒng)虛擬環(huán)境的搭建,主要利用到VSPY SPY3版本的診斷報文編輯區(qū)、功能測試項編輯區(qū)、message模塊編輯區(qū)三個模塊編輯區(qū)。
診斷報文編輯區(qū)中主要分為三個板塊:請求報文編輯區(qū)(Receive),響應(yīng)報文編輯(Transmit),數(shù)據(jù)庫(database),在虛擬驗證中主要用到Receive功能和Transmit功能。
請求報文編輯區(qū)主要的作用是編輯識別并比對設(shè)備發(fā)出的報文,并與Function Block功能結(jié)合,完成對設(shè)備報文的驗證,如果驗證比對成功則通過Function Block功能調(diào)用發(fā)送響應(yīng)的報文回復(fù)。
響應(yīng)報文編輯區(qū)的主要作用是編輯設(shè)備請求報文對應(yīng)的響應(yīng)報文,通過報文編輯區(qū)的數(shù)據(jù)報文識別設(shè)備發(fā)送的報文,通過Fuction Block中的腳本,回復(fù)響應(yīng)報文區(qū)鏈接的報文。
Function Block功能是整車EOL系統(tǒng)虛擬驗證的重要部分,也是VSPY中常用的腳本控制語言,它既可以在VSPY中運(yùn)行,也可以用VSPY可將其編譯程CoreMini寫入neoVI硬件產(chǎn)品中脫機(jī)運(yùn)行。目前Function Block大概含有三十條指令,包括常用的邏輯控制、數(shù)據(jù)記錄、發(fā)送報文等。
在測試驗證過程中,通過Function Block實現(xiàn)幾點功能:1.用于判斷外部設(shè)備的請求報文,然后發(fā)送相應(yīng)的響應(yīng)報文。2.設(shè)置診斷地址,報文響應(yīng)時間,響應(yīng)次數(shù)等。3.創(chuàng)建診斷序列,按照一定的順序和發(fā)送響應(yīng)報文。4.動態(tài)設(shè)置ECU響應(yīng)的狀態(tài)值。
在診斷設(shè)備開始發(fā)送報文后,我們可以通過Spy Networks-Message進(jìn)入報文查看界面,所有與報文信息有關(guān)的查看均在此界面進(jìn)行。
在message界面下,可以看查看各個參數(shù),在查看CAN報文即默認(rèn)狀態(tài)的情況下,有以下的主要內(nèi)容可以查看。
表1 message 可視化內(nèi)容
虛擬驗證的實現(xiàn)方式為將待驗證的腳本release導(dǎo)入測試診斷儀中,然后通過通訊接口跟搭建好的臺架進(jìn)行數(shù)據(jù)交互,設(shè)備發(fā)出測試的DID,通過接口在虛擬臺架中進(jìn)行判斷,然后虛擬臺架會根據(jù)條件回復(fù)相關(guān)的回復(fù)DID通過通訊接口,反饋到診斷設(shè)備中,從而達(dá)到虛擬驗證腳本的目的。
圖1 虛擬臺架的指令傳輸結(jié)構(gòu)
如下圖所示,在虛擬驗證系統(tǒng)結(jié)構(gòu)中,主要分為診斷報文編輯區(qū)和功能測試項編輯區(qū),在診斷報文編輯區(qū)模塊中,通過設(shè)置請求報文編輯區(qū)的相關(guān)的指令進(jìn)行識別并比對設(shè)備發(fā)出的相關(guān)報文,通過編輯響應(yīng)報文編輯區(qū)中相關(guān)數(shù)據(jù),來進(jìn)行存儲相關(guān)的回復(fù)報文,兩者通過Function Block進(jìn)行連接,也可以理解為診斷報文編輯區(qū)起到整個虛擬驗證系統(tǒng)的數(shù)據(jù)庫的功能,F(xiàn)unction Block從中調(diào)用已經(jīng)編輯好的相關(guān)報文用來進(jìn)行比對或是回復(fù)。
圖2 虛擬驗證系統(tǒng)結(jié)構(gòu)
以吉利SS11車型的寫入功能測試協(xié)議為例,F(xiàn)unction Block的script類型與C語言類似,首先為if語句進(jìn)行判斷,判斷條件為請求報文編輯區(qū)中的設(shè)置好的RX_SIM_2EF101模塊,而RX_SIM_2EF101模塊中編輯的報文為2E F1 01,即在lin線的數(shù)據(jù)流中,如果出現(xiàn) 2E F1 01的報文,即開始執(zhí)行該條件下的腳本,同理Else If類同于C語言中的功能,從而實現(xiàn)判斷不同指令執(zhí)行不同的腳本的作用。
圖3 function block 正反饋邏輯圖(部分功能)
Wait Until語句為當(dāng)前條件循環(huán),類同于C語言中的While語句,控制腳本一直處理等待狀態(tài),直到設(shè)置的條件為真才繼續(xù)往下執(zhí)行。
而Transmit語句則是發(fā)送響應(yīng)報文編輯區(qū)中設(shè)置好的報文,發(fā)送到數(shù)據(jù)流中,對If語句的判斷條件進(jìn)行回復(fù),而最后的set value則是使這次回復(fù)的次數(shù)為1次,如果取消這個語句,則腳本會對判斷報文一直循環(huán)發(fā)送回復(fù)報文。發(fā)送結(jié)束后,跳到End If語句結(jié)束腳本的運(yùn)行。
通過上述操作可以驗證正反饋的腳本驗證,同理,也可以對相關(guān)腳本的負(fù)反饋也進(jìn)行驗證,流程圖如下,由此可見,虛擬驗證不僅可以驗證腳本的正反饋,也可以測試負(fù)反饋是否會對腳本產(chǎn)生影響。
基于SS11車型 ESC模塊進(jìn)行測試驗證,正負(fù)反饋均驗證成功,驗證總時長約3S,測試結(jié)果的部分信息如下圖所示。
圖4 測試正反饋部分結(jié)果
以UK lotus為例,當(dāng)初版腳本導(dǎo)入后,經(jīng)過實車驗證關(guān)于腳本問題平均一周發(fā)現(xiàn)并解決的腳本問題為2個,而通過虛擬臺架驗證腳本問題一天平均發(fā)現(xiàn)并解決腳本問題為5個,大大提高了腳本的驗證效率,降低了腳本在實車測試運(yùn)行失敗的風(fēng)險。
提出一種利用VSPY工具,搭建整車EOL電檢系統(tǒng)腳本驗證的虛擬環(huán)境的方法,該方法也可根據(jù)編輯不同的報文模塊,完成對電檢腳本不同工位的進(jìn)行測試。解決了當(dāng)前缺少實體資源和實體資源與腳本測試條件不符的情況,同時也提高了電檢系統(tǒng)腳本的驗證效率,降低腳本的邏輯錯誤的概率,為后面的基地實車腳本驗證提供了技術(shù)支持。