李林澤,孟 鑫,徐 嫚,黃祖朋,謝佶宏,邵 杰
(上汽通用五菱汽車股份有限公司,廣西 柳州 545007)
科學(xué)技術(shù)的發(fā)展帶動(dòng)了汽車電子技術(shù)的進(jìn)步,其在汽車行業(yè)中得到了廣泛應(yīng)用,使汽車操作更為安全、穩(wěn)定。CAN網(wǎng)絡(luò)是汽車普遍使用的一種通信技術(shù),在系統(tǒng)內(nèi)汽車能夠接收不同的數(shù)據(jù)信息,以及發(fā)送數(shù)據(jù)信息,CAN 網(wǎng)絡(luò)推動(dòng)了汽車計(jì)算機(jī)網(wǎng)絡(luò)走向了更高的發(fā)展領(lǐng)域[1]。隨著新能源汽車的崛起,越來越多的新功能、新科技搭載在新能源汽車上,從而導(dǎo)致上 CAN節(jié)點(diǎn)增多。各主機(jī)廠為了管理數(shù)量龐大的CAN節(jié)點(diǎn),會(huì)根據(jù)ISO 11898及ISO 11595標(biāo)準(zhǔn)協(xié)議制定更符合整車項(xiàng)目的 CAN通訊策略來管控 CAN網(wǎng)絡(luò)上的各節(jié)點(diǎn)。為了保證零部件廠商開發(fā)出的上 CAN節(jié)點(diǎn)軟件及硬件能夠滿足主機(jī)廠的CAN通訊策略,需要對(duì)CAN節(jié)點(diǎn)進(jìn)行零件級(jí)、系統(tǒng)級(jí)、整車級(jí)三項(xiàng) CAN網(wǎng)絡(luò)測試。為了更好地完成這項(xiàng)工作,本文結(jié)合工作實(shí)踐經(jīng)驗(yàn),提出了一種新的測試方案,該方案具有搭載簡單、操作簡單、拓展性強(qiáng)、可自動(dòng)化等優(yōu)點(diǎn),不僅解放人力和物力上的投入,大大減少測試周期,提高效率,降低成本,而且使測試更加規(guī)范化、標(biāo)準(zhǔn)化,減少由于人為的操作失誤引起的錯(cuò)誤結(jié)果[2]。
CAN總線的協(xié)議規(guī)定,ECU在總線上發(fā)送報(bào)文,若出現(xiàn)發(fā)不出去的情況,ECU會(huì)立刻嘗試重新發(fā)送,當(dāng)連續(xù)255次無法發(fā)送,ECU自己進(jìn)入總線關(guān)閉模式,即BUS OFF,該狀態(tài)下,ECU是無法發(fā)送報(bào)文的。ECU在自己內(nèi)部檢測到BUS OFF后,從邏輯上退出了總線,暫時(shí)不影響其他節(jié)點(diǎn)通訊,由于ECU自身也不明白是什么原因?qū)е翨US OFF,于是在內(nèi)部記錄“xx年xx月xx日xx時(shí)xx分xx秒,汽車電量、里程、xx是多少”,“我”BUSOFF了,即故障診斷。然后ECU開始計(jì)時(shí),達(dá)到特定時(shí)間后,重啟自身的CAN模塊,這一套具體的恢復(fù)規(guī)則,即故障恢復(fù)機(jī)制。
以零件級(jí)測試為例,如表1所示,所述系統(tǒng)包括:并聯(lián)在雙絞線即 CAN總線上的一個(gè)以上的 CAN節(jié)點(diǎn)和型號(hào)為VH6501的CAN總線干擾儀、供電的電源及開關(guān),通過USB線與CAN總線干擾儀相連的安裝了CANoe軟件的上位機(jī)。
表1 硬件單元表
若為整車級(jí)測試,電源、開關(guān)替換為整車KL30電源,CAN節(jié)點(diǎn)替換為整車節(jié)點(diǎn),即CAN總線干擾儀直接接入整車CAN網(wǎng)段。
以零件級(jí)測試舉例說明,連接方式如圖1所示,CAN節(jié)點(diǎn)是連接在 CAN總線上的電子設(shè)備,如汽車上的車身控制器、防制動(dòng)抱死控制器和電機(jī)控制器等。CAN節(jié)點(diǎn)的數(shù)量可以是一個(gè),也可以是多個(gè),并且可以同時(shí)對(duì)多個(gè) CAN節(jié)點(diǎn)進(jìn)行故障檢測。因此,為了提高檢測效率,一般會(huì)設(shè)置多個(gè)CAN節(jié)點(diǎn)。
圖1 硬件連接圖
電源是為 CAN節(jié)點(diǎn)工作供電的,一般采用穩(wěn)壓電源。開關(guān)用來控制電源供電的通斷,串聯(lián)在電源正極和 CAN節(jié)點(diǎn)之間。
CAN總線干擾儀連接在 CAN總線上,通過干擾 CAN節(jié)點(diǎn)發(fā)送的報(bào)文數(shù)據(jù)中的特定的位或者特定位的特定長度(最小6.25 ns),如某個(gè)位是“1”的,將其干擾為“0”,實(shí)現(xiàn)其干擾功能。通過驗(yàn)證 CAN節(jié)點(diǎn)發(fā)送錯(cuò)誤數(shù)據(jù)所處的狀態(tài)(主動(dòng)錯(cuò)誤狀態(tài)、被動(dòng)錯(cuò)誤狀態(tài)、總線關(guān)閉Bus Off狀態(tài))、采樣點(diǎn)位置是否符合規(guī)范定義判斷其受干擾情況。CAN總線干擾儀可采用德國Vector公司生產(chǎn)的VH6501。VH6501的前身CANstress是Vector早期針對(duì)傳統(tǒng)CAN的總線干擾儀產(chǎn)品,只有干擾功能,不能同時(shí)監(jiān)控總線上的CAN報(bào)文數(shù)據(jù),如果采用CANstress進(jìn)行Bus Off故障檢測,還需要設(shè)置一個(gè)CAN報(bào)文監(jiān)控設(shè)備。由于干擾設(shè)備與監(jiān)控設(shè)備分離,使CANstress對(duì)一個(gè)CAN節(jié)點(diǎn)實(shí)施干擾后,需重新進(jìn)行干擾配置才能對(duì)其它CAN節(jié)點(diǎn)實(shí)施干擾。VH6501是新一代總線干擾儀,在CANstress的功能上進(jìn)行了升級(jí)和擴(kuò)展。一方面,VH6501可用作干擾儀,在上位機(jī)上導(dǎo)入事先編寫好的軟件腳本、DBC數(shù)據(jù)庫,然后打開軟件腳本相關(guān)的panel工具,輸入待測試 CAN節(jié)點(diǎn),發(fā)送干擾信號(hào)對(duì)報(bào)文進(jìn)行干擾;另一方面,VH6501可在上位機(jī)的CANoe軟件控制下,監(jiān)控總線上的CAN報(bào)文數(shù)據(jù),生成記錄文件(Trace文件)。
如上所述,VH6501要實(shí)現(xiàn)干擾,需要導(dǎo)入事先編寫好的軟件腳本、DBC數(shù)據(jù)庫,然后打開軟件腳本相關(guān)的panel工具,其中軟件腳本是本測試方案系統(tǒng)的主要軟件部分。沒有腳本就無法驅(qū)動(dòng) VH6501,它不像 CANstress有個(gè)專屬的APP去操控,所以通過編寫CANoe腳本,包括操作界面設(shè)計(jì),即可實(shí)現(xiàn)操作的邏輯(干擾模式、干擾報(bào)文信息、運(yùn)行、停止、保存等等),再導(dǎo)入數(shù)據(jù)庫,結(jié)合調(diào)用干擾報(bào)文相關(guān)的函數(shù)并設(shè)置循環(huán),即可實(shí)現(xiàn)自動(dòng)化測試甚至自動(dòng)化解析。具體操作流程為:連接VH6501硬件,在CANoe總線仿真界面創(chuàng)建VH6501的仿真節(jié)點(diǎn),從仿真節(jié)點(diǎn)進(jìn)入CANoe軟件自帶的腳本編輯器CAPL Browser,也可以導(dǎo)入編寫好的腳本。腳本使用CALP語言編寫,協(xié)議中有相關(guān)函數(shù)直接調(diào)用來配置干擾模式及作出干擾動(dòng)作,然后還要使用CANoe內(nèi)部的panl設(shè)計(jì)工具設(shè)計(jì)一款對(duì)應(yīng)腳本軟件的人機(jī)交互界面,使用環(huán)境變量將腳本代碼和界面關(guān)聯(lián)起來,這只是對(duì)ECU簡單地進(jìn)行干擾,由于用代碼進(jìn)行的驅(qū)動(dòng),可以繼續(xù)豐富代碼來實(shí)現(xiàn)自動(dòng)化測試,即將運(yùn)行、監(jiān)控、停止、保存的邏輯代碼寫好,導(dǎo)入待測車型的整車DBC數(shù)據(jù)庫文件,DBC里面定義好車型中的節(jié)點(diǎn) ID及收發(fā)報(bào)文的信息,程序中設(shè)置每次測試干擾的報(bào)文就從 DBC中讀取,以及測試完成后以節(jié)點(diǎn)名稱、報(bào)文ID命名trce文件及自動(dòng)保存,此過程代替了手動(dòng)輸入節(jié)點(diǎn)名稱和報(bào)文ID的操作。過程如圖2所示。
圖2 干擾流程圖
在測試過程中在上位機(jī)上保存了trce文件,對(duì)其中的數(shù)據(jù)進(jìn)行分析,判斷是否滿足標(biāo)準(zhǔn)要求。圖3為BUS OFF恢復(fù)時(shí)序圖,標(biāo)準(zhǔn)中對(duì)BUS OFF故障通訊行為及恢復(fù)機(jī)制有以下評(píng)價(jià)標(biāo)準(zhǔn):(1)上電/復(fù)位后,連續(xù)BUS OFF標(biāo)志被設(shè)置為0,第1次BUS OFF屬于首次BUS OFF,所以要求T1小于 40 ms,越快越好。(2)如果t6大于 100 ms,則連續(xù)BUS OFF標(biāo)志位被設(shè)置為0,那么第6次BUS OFF仍然屬于首次BUS OFF。(3)如果t6小于100 ms,則連續(xù)BUS OFF標(biāo)志位被設(shè)置為1,那么第6次BUS OFF仍然屬于連續(xù)BUS OFF。(4)在極限情況下,當(dāng)BUS OFF恢復(fù)后無正常報(bào)文發(fā)送時(shí),即報(bào)文發(fā)送與下一次BUS OFF之間的時(shí)間不等于0 ms(t 6=0 ms),所以要求 T2、T3、T4、T5、T7、T8、T9、均在200±30 ms范圍內(nèi)。
圖3 BUSOFF恢復(fù)時(shí)序圖
用 CANoe軟件回放功能,可分析數(shù)據(jù)是否滿足標(biāo)準(zhǔn)定義。
CAN網(wǎng)絡(luò)測試的自動(dòng)化,不僅節(jié)省了人力物力,還很大程度地提升了測試效率。雖說自動(dòng)化測試能帶來的好處很多,但是由于成本的原因,實(shí)際上部分測試項(xiàng)的復(fù)雜度還很高,自動(dòng)化程度并不是越高越好。比如,整車的CAN網(wǎng)絡(luò)測試,問題點(diǎn)變化大,自動(dòng)化測試設(shè)備很難分析得出預(yù)期的結(jié)果。本文描述的自動(dòng)化測試系統(tǒng),實(shí)際上就是基于純手動(dòng)測試的硬件實(shí)現(xiàn)的。導(dǎo)入自動(dòng)化的腳本,成本上沒有增加,卻比使用網(wǎng)絡(luò)自動(dòng)化測試的板卡的設(shè)備性價(jià)比更高。本文提出的低成本自動(dòng)化測試方案,為主機(jī)廠提高測試能力提供了的新方向。