王邵龍,王睿朝,徐大成
(一汽轎車股份有限公司,吉林 長春 130000)
隨著CAN總線技術的不斷發展和電子控制單元ECU(Electronic Control Unit)不斷增多,車用CAN總線的負載率不斷提高,通信環境越來越復雜,容易出現節點報文丟失的故障情況。某些ECU不能正常接收所需的總線信號時,ECU會進入故障運行模式,為確保安全性而降低性能、增大排放,甚至是禁止車輛行駛[1],同時記錄診斷故障碼 (DTC,Diagnostic Trouble Code)。
某車型售后反饋以下故障現象:DWCU(舉窗控制器)上電后,發現誤記了BCM (車身控制器)、GW (網關)、DSCU(座椅控制器)節點丟失故障。
故障排查和原因分析:在排除了熔斷絲盒與蓄電池電壓對控制器的影響后,通過對多種供電模式下的DTC記錄情況分析發現:①對DTC的誤記故障發生在整車切換為OFF檔約3 min后;②不同控制器對節點丟失DTC的監控周期,存在參差不齊的情況。相關分析過程如表1和表2所示。
以表1、表2為基礎,進一步測試發現DWCU控制器誤記節點丟失故障的根本原因:正常情況下,整車切換為OFF檔,總線休眠條件滿足,進入T[wbs][2]時間等待休眠,此時控制器應用報文停止發送,相應控制器應關閉對報文的診斷監測,而DWCU未及時關閉監測,導致記錄大量節點丟失故障,如圖1所示。

表1 不同供電模式下記錄DTC的情況

表2 不同ECU對節點丟失DTC的監控周期
同時,對控制器記錄節點丟失故障的監測時間 (表2)統計后發現,各控制器對相應報文監控時間/周期參差不齊,從最短4個報文周期到最長260個報文周期不等。

圖1 T[wbs]期間動作情況
針對故障現象,對軟件進行升級,對T[wbs]期間的總線監測策略進行了優化,ECU在切換到OFF檔進入T[wbs]期間關閉監測;同時,對報文的監控周期統一變更為10倍報文周期,如DWCU監測BCM節點丟失的條件為:10倍報文周期時長內未收到BCM報文,則DWCU認為BCM節點丟失。進行軟件升級后,故障現象消失。
針對節點丟失故障碼出現的誤報問題,對診斷測試用例進行了優化,見表3。

表3 增加的測試用例
其中,報文監測周期測試的具體方式為:通過CAPL編程,將被監測節點所發送的被監測報文周期分別調整為9倍、10倍報文周期發送,同時讀取被測ECU的診斷故障碼產生情況。當以9倍報文周期發送時,不記錄故障碼,當以10倍報文周期發送時,記錄故障碼,即為PASS。
節點丟失故障是CAN總線通信中的常見故障,針對此類故障碼的診斷測試應該從兩方面考慮:即不誤記、不漏記。此類故障碼一般有3個相關參數:即被監測報文周期T1、被監測報文丟失周期計數器n(報文丟失T1時長,計數器加1)、報文丟失標志位 (置位時,記錄DTC)。
測試中,需對診斷規范規定的計數器n值進行邊界測試:分別考察n-1、n、n+1條件下DTC的記錄情況,做到n-1時不誤記,n+1時不漏記。由于不同ECU的重要程度不同,對n值可以適當進行調整,也可以設置偏差容忍。如音響、空調控制器等ECU,可適當放寬對n值的容忍度,設置比動力系統ECU更大的n值。例如,對n-3~n+3范圍內,認為記錄DTC是合理的。EMS、TCU等涉及安全駕駛的動力系統ECU,必須嚴格考察其對節點丟失DTC的記錄策略。
對于T[wbs]和T[diag_start]期間的報文監測測試,本文推薦使用HIL或通過CAPL編程進行自動化測試,可以得到更精確的測試結果[3]。同時,應關注實車情況下的測試情況,在點火開關的各種操作中,關注DTC的產生情況。
本文通過對節點丟失故障碼誤報情況的分析和解決,對節點丟失故障碼的測試用例優化和側重點提出建議,也對其他診斷測試工作有一定借鑒意義。