一、前言
隨著汽車電子技術的發展和對汽車性能要求的提高,汽車上電控單元(ECU,ElectronicControlUnit)數量越來越多,各個電控單元之間的交互信息通過CAN、LIN、MOST總線組成的網絡來實現。因而對整車網絡的開發顯得尤為必要。當前整車網絡的開發流程一般都是基于國際上通用的V模式開發流程。
整車網絡開發V模式流程包括以下幾個主要方面:網絡需求定義、網絡規范制定、網絡測試驗證。當前期的網絡需求定義以及網絡規范制定完成后,就進入后期的網絡設計與測試驗證階段,網絡測試驗證階段主要是對已經設計出來的樣品或產品進行網絡測試驗證,以確保樣品或產品的功能與前期的需求一致。
網絡測試驗證階段主要從事網絡測試需求分析、網絡測試規范制定、網絡測試系統的開發以及網絡測試實施、對測試過程中出現問題進行分析等。
二、CAN網絡測試開發流程
整車CAN網絡測試開發流程主要包括以下幾個方面:測試計劃制訂、規范制定、自動化測試系統開發、測試實施以及測試報告總結。
測試計劃制訂主要考慮網絡測試工作所需要的資源需求(工具需求以及人力需求等)、任務劃分、時間需求等,以確保后續的工作能順利地、有效地開展。
測試規范的制定主要是確定網絡需測試內容。在整個網絡開發過程當中,網絡測試規范應在網絡需求規范完成后開展。網絡測試的目的是確認供應商提供的ECU產品是否符合網絡需求規范的要求。正因為如此,CAN網絡測試規范的制定必須依據CAN網絡需求規范。測試規范里需要包含所有的測試項內容以及對每一測試項測試所需要的測試環境需求、測試步驟、測試工具需求的描述。
測試系統開發包括軟件系統開發、硬件系統開發、軟硬件系統集成。軟件系統開發主要包括:
軟件架構的劃分;
基于測試內容的測試程序開發;
基于網絡通信報文的庫文件開發;
用來控制測試執行等方面的測試面板開發;
用來控制不同的測試系統使之有效工作的相關控制程序開發。
硬件系統開發主要包括:
網絡測試輔助控制器開發;
測試工具的選型(如程控電源、CAN網絡通信設備、CAN網絡干擾設備、CAN網絡波形采集設備等)。
軟硬件系統集成其目的是對軟件開發系統與硬件開發系統進行調試使之無縫集成在一起并有效的工作。
測試實施是CAN網絡測試的具體的實施環節,主要包括:
測試環境的搭建(測試臺架的搭建等);
對被測ECU網絡測試的執行;
記錄測試結果并保存測試記錄。
測試報告總結主要是根據測試結果對被測ECU進行分析,確定被測ECU是否符合CAN網絡需求規范的要求。
圖1CAN網絡測試流程圖
三、CAN網絡測試開發工具
CAN網絡測試開發需要以下主要的開發工具:DOORS、VisualC++、Matlab/Simulink、CANoe.MatlabInteRFace、CANoe、CANdela、CANoe.DiVa、CANcard、CANdb++、CANscope、CANstress、CodeWarrior、Protel等。
DOORS為需求管理工具,可以利用該工具整理網絡測試內容并對后續開發工具提供測試需求的輸入。VisualC++主要用于開發硬件系統之間協調工作的控制程序和人機交互操作界面的控制程序。Matlab/Simulink和CANoe.MatlabInterface主要用于基于模型的測試內容的建模,用來實現測試代碼的自動生成。CANoe為網絡仿真、測試工具,在CANoe下開發網絡通信相關的測試程序,同時利用CANoe生成網絡測試報告。CANscope用于CAN信號物理特性的測量與分析,具有多種采樣觸發方式,在網絡自動化測試系統中用于采集被測ECU的波形。CANstress用于干擾CAN網絡通信以測試ECU及網絡系統的容錯能力,在網絡自動化測試系統中用于干擾被測網絡,CANdela用于編輯基于KWP2000和UDS的診斷數據庫,CANoe.DiVa用于生成診斷相關的測試程序,其輸入文件為CANdela編輯的庫文件,輸出文件為CANoe的診斷相關的測試程序,CANdb++用于編輯CAN通信報文的數據庫。
四、一種CAN網絡自動化測試系統的實現
根據第二節介紹的測試流程,采用第三節介紹的相應開發工具來開發出一種CAN網絡自動化測試系統。該CAN自動化測試系統的功能包括:測試流程的控制、測試用例的自動執行、數據采集以及處理、自動生成測試報告。
1)測試規范的制定:采用DOORS需求管理工具,根據網絡需求規范和診斷需求規范,制定出CAN網絡單元測試規范、系統測試規范和診斷測試規范;
2)利用CANdb++進行CAN報文數據庫方面的軟件開發,CANdela進行診斷數據庫方面的開發;
3)根據1)制定的網絡單元測試規范和系統測試規范,利用Matlab/Simulink和CANoe.MatlabInteRFace生成相應的測試程序,并在CANoe環境下進行集成;
4)根據2)完成的診斷數據庫,利用CANoe.DiVa生成診斷測試程序,并在CANoe環境下進行集成;
5)利用CANoe、Matlab/Simulink和VisualC++進行控制面板方面的軟件開發;
6)根據測試規范的測試需求,利用VisualC++、CodeWarrior和Protel進行網絡輔助控制器以及其他諸如故障植入等方面的軟硬件開發;
7)利用VisualC++開發CANstress、CANscope和程控電源等測試工具的控制程序;
8)利用VisualC++進行系統集成。
網絡自動化測試系統架構和示意圖如圖2、圖3所示。
圖2CAN網絡自動測試系統
圖3CAN網絡自動化測試系統示意圖
五、結論
本文首先詳細介紹了CAN網絡測試流程;其次,介紹了CAN網絡測試開發所需要使用的開發工具并介紹了這些開發工具的具體功能;最后,基于該流程并利用這些開發工具,詳細的介紹了開發流程中自動化測試系統的開發細節