裴軍偉,韓可強(qiáng),唐風(fēng)敏
(中國汽車技術(shù)研究中心,天津 300300)
隨著我國汽車工業(yè)的迅速發(fā)展,汽車數(shù)量急劇增多。人們對汽車的安全性、舒適性及燃油經(jīng)濟(jì)性的要求越來越苛刻,這使得控制單元之間的信息交換越來越密集,傳感器和導(dǎo)線的數(shù)量越來越多,另外汽車上的電子控制設(shè)備增多,控制也越來越復(fù)雜,因而對汽車故障的診斷和排除的難度加大。而目前的診斷主要是人工診斷,運(yùn)用診斷儀對單個控制單元進(jìn)行故障的測試,對其進(jìn)行分析,但這種診斷方法效率不高,不能一次性測試很多控制單元,精度也達(dá)不到人們的期望值,因此,一種自動化的診斷技術(shù)實現(xiàn)越來越迫切。本文探討了利用CANoe軟件實現(xiàn)診斷自動化測試,通過VT System和CANoe中的編程語言CAPL分別實現(xiàn)硬件和軟件的設(shè)計。從而使診斷自動化測試程度更高,通用性強(qiáng),靈活性好,滿足客戶的需要。
CANoe軟件被應(yīng)用在CAN總線系統(tǒng)的設(shè)計、建模、仿真、開發(fā)、測試及驗證當(dāng)中,為客戶提供強(qiáng)大且完整的CAN總線網(wǎng)絡(luò)開發(fā)仿真分析解決方案。在診斷中,CANoe可以分析上層協(xié)議為KWP2000和UDS。診斷控制臺 (Diagnostics Console)——“Diagnostic Feature Set”的一部分,可以在CANdela Studio[1]的診斷描述文件的基礎(chǔ)上,提供對診斷服務(wù)的交互式訪問功能。診斷需求可以選擇,參數(shù)化,并在它們相關(guān)的響應(yīng)中顯示。Fault Memory Console提供了快速而簡便的訪問ECU故障存儲區(qū)域的功能。用戶可編程就意味著用戶可以按自己的要求對CANoe/DENoe的功能進(jìn)行擴(kuò)展。在數(shù)據(jù)流程圖的任意節(jié)點里都可以插入模塊模型,并且可以編寫用戶自己的程序來實現(xiàn)功能。CAPL就是用來實現(xiàn)可編程能力的編程語言,它是面向應(yīng)用的類C語言,并且包含了交互式的開發(fā)環(huán)境,在這個環(huán)境下,用戶能容易地創(chuàng)建、修改、編譯CAPL[2]的程序。在CANoe的軟件支持下,可以通過編程來控制所生成的診斷測試序列,根據(jù)自己的需要和單節(jié)點本身的特點進(jìn)行序列添加和刪減,以最少的測試用例完成需求的測試項目;通過搭建自動化測試系統(tǒng),定義測試用例,設(shè)定通過標(biāo)準(zhǔn);采用自動化測試,可以減少測試人員對分析數(shù)據(jù)、采集數(shù)據(jù)所消耗的精力與時間,同時自動化測試可以最大范圍減少人為多次測量引入的誤差,自動化測試系統(tǒng)還可以精確地進(jìn)行時間觸發(fā)、采樣和記錄,有利于提高測試精度、準(zhǔn)確度和可靠性。
由于該硬件設(shè)計主要是通過VT System[1]來實現(xiàn),而VT System的各個板卡可實現(xiàn)各個測試的用途,VT System各個板卡及通道的配置可通過CANoe軟件實現(xiàn),并通過CAPL語言對整個VT System的板卡通道進(jìn)行操作,從而可以更有效地根據(jù)需要來實現(xiàn)控制。同時VT System是通過TCP/IP協(xié)議與CANoe進(jìn)行數(shù)據(jù)通信,由于該診斷平臺需要對所測的ECU進(jìn)行供電,而VT中的供電模塊為M1_VT7001,通過M1_VT7001的開始狀態(tài)圖可以清楚地發(fā)現(xiàn)其內(nèi)部的連接情況,并能分析其如何與ECU進(jìn)行連接并控制ECU電源的通斷。
該硬件的設(shè)計主要有下面幾個步驟,首先對VT進(jìn)行供電,然后把KL30電和KL15電分別連接到VT System的VT7001電源板卡上的電源輸出通道1和通道2上,通過與VT System的供電模塊相連接,可以快速準(zhǔn)確地對ECU電源進(jìn)行控制,并且能通過CAPL程序?qū)﹄妷旱拇笮『头秶鷣磉M(jìn)行控制,從而為自動化測試的CANoe與被測試樣件提供紐帶。ECU的CANH和CANL通過轉(zhuǎn)接線連接到 CANCASE[3]上,可實現(xiàn)ECU與CAN網(wǎng)絡(luò)通信,并能對總線故障進(jìn)行模擬,上位機(jī)采用CANoe軟件進(jìn)行數(shù)據(jù)處理與數(shù)據(jù)分析,診斷故障碼 (DTC)測試圖如圖1所示,診斷自動化測試平臺如圖2所示。
傳統(tǒng)的診斷測試,只是編好數(shù)據(jù)庫導(dǎo)入diva進(jìn)行測試,有很多支持的服務(wù)或診斷功能不能沒有測試或驗證,目前各個車廠還沒有對DTC(故障碼)進(jìn)行系統(tǒng)或統(tǒng)一的驗證,究其原因就是測試DTC需要建立HIL(硬件在環(huán)系統(tǒng))的測試環(huán)境,實現(xiàn)上比較麻煩,且對硬件要求比較高。而VT System的參與,可以更好地測試出DTC,對汽車的故障檢測比較方便。
首先是配置VT System的通道和參數(shù),并通過CAPL語言對其進(jìn)行控制,然后將配置好CANoe.VT配置文件導(dǎo)入到diva中,就可以實現(xiàn)診斷故障碼的自動化測試,效率大大提高,能滿足汽車越來越復(fù)雜的功能和電控模塊自診斷協(xié)議,且更好地節(jié)約成本。圖3為診斷自動化的工作流程圖。
首先通過CANoe配置其測試環(huán)境,搭建虛擬節(jié)點[2]和測試程序,每個虛擬節(jié)點的添加通過CAPL Browser編寫網(wǎng)絡(luò)管理邏輯,CAPL語言可用于仿真節(jié)點的動態(tài)建模,為了測試結(jié)果的正確性,要運(yùn)用CANoe中XML來提取測試序列,測試用例可以根據(jù)需要通過Test Automation Editor來添加,而TAE可以清晰地構(gòu)建測試組中的測試用例,并且可以圖形的生成參數(shù)化的測試用例。當(dāng)測試用例生成后,可以在其中加入一些程序,來實現(xiàn)自動化的診斷。
當(dāng)硬件和軟件都配置好以后,根據(jù)硬件圖連接,配置好CANoe的測試環(huán)境,在diva軟件中導(dǎo)入相對節(jié)點已編好的cdd,生成所需要的所有測試項。由于diva里的程序是已經(jīng)設(shè)置好的,所以它生成的測試項是固定的,有時候不能滿足客戶的需求,這就需要在CANoe中通過添加程序,生成所需要的序列,使診斷的范圍覆蓋率更高。當(dāng)diva的測試項生成后,直接導(dǎo)入到CANoe中,就可進(jìn)行自動化的診斷測試。另外一種自動化測試方法是,可以直接在CANoe中導(dǎo)入編好的cdd。在診斷中,對故障碼的測試尤為重要,我們可以在CANoe中設(shè)置好要測的DTC和需要生成的序列,從而實現(xiàn)自動化的診斷,達(dá)到所期待的結(jié)果。圖4為在CANoe軟件下的自動化診斷的界面。
此自動化診斷平臺的搭建很好地解決了網(wǎng)絡(luò)通信故障的測試,對于汽車內(nèi)的模塊,如BCM、DCM和ABS,只要模塊內(nèi)部支持診斷,都可以根據(jù)提供的故障策略進(jìn)行測試。一般測試的故障都是與通信相關(guān)的,比如在極限電壓下記錄故障碼的能力,還有被測模塊與其它模塊失去通信而記錄的故障。
此平臺在許多項目中也得到了很好的應(yīng)用,比如力帆820 BCM模塊,需要測試故障碼B100016(供電電壓過低)和B100017(供電電壓過高),通過該平臺制造故障,讀取其故障碼,可以驗證故障產(chǎn)生和恢復(fù)策略的正確性。江鈴E31項目中RBCM模塊,需要測試B112011(左后轉(zhuǎn)向燈開路)、B112015(左后轉(zhuǎn)向燈短路)、B112611(倒車燈開路)、B112715(倒車燈短路)。除了以上測試之外,此診斷平臺將會應(yīng)用到更多的項目當(dāng)中,比如即將合作的力帆和北汽銀翔,還有五菱及東風(fēng)項目。
本文主要介紹自動化診斷平臺的搭建,而自動化診斷的實現(xiàn)可以更好地應(yīng)用到汽車模塊診斷中,使診斷的效率和精度更高,具有很重要的意義,更能促進(jìn)汽車行業(yè)的發(fā)展。相信在不久的將來,診斷的技術(shù)會越來越高。其中主要通過配置不同的VT板卡,自動化診斷測試平臺還能完成更多功能需求、更復(fù)雜的環(huán)境要求的測試。
[1]明星.基于VT System的汽車電子自動測試系統(tǒng)的研制及應(yīng)用[J]. 汽車電器, 2012 (8): 62-64.
[2]潘俊家,楊芝華,龔進(jìn)峰,等.CAN總線網(wǎng)絡(luò)自動化測試平臺應(yīng)用[J].交通信息與安全,2013.06.20:1-3.
[3]王鵬.汽車車身控制器自動測試系統(tǒng)的設(shè)計與實現(xiàn)[D].武漢:華中科技大學(xué)機(jī)械電子工程學(xué)科碩士學(xué)位論文,2007:1-6.