王永輝
(比亞迪汽車工業有限公司,廣東 深圳 518118)
CANoe 是德國Vector 公司出的一款總線開發環境,全稱叫CAN(控制器局域網) open environment,主要用于完成總線通信網絡的建模、仿真、測試和開發工作。
本文主要工作為針對CANoe 在整車控制系統開發過程中,涉及的幾個方面的應用,主要包括以下內容:(a)CANoe/MATLAB 聯合仿真;(b) ECU 軟件集成測試;(c) 數據監測分析。
基于CANoe/MATLAB 的聯合仿真,需要先在CANoe的安裝路徑下安裝Vector_AddOn_Matlab_ Interface_ V513.exe,安裝完成后,在MATLAB/Simulink 中會出現Vector CANoe 組件,CANoe 與Matlab/Simulink 通過這些組件實現數據交互,數據交互的內容包括:信號、系統變量、環境變量、CAPL(類C 語言的程序語言)函數。然后在MATLAB/Simulink 中建立控制單元模型,并將該模型導入到CANoe中,測試驗證控制單元模型的功能邏輯。
采用CANoe/Matlab 聯合仿真,需要完成以下工作:(a)建立網絡數據庫(DBC 文件);(b)建立聯合仿真模型;(c)建立網絡拓撲架構和仿真面板。
根據整車系統通信矩陣定義,使用用CANoe 軟件的CANdb++編輯器創建整車CAN 網絡數據庫文件(DBC 文件)。數據庫文件中包括了CANoe 所用到的信號信息,包括了報文和信號的網絡節點和符號名稱,以及環境變量等信息。
新建DBC 文件時,選擇Vector_IL_Basic Template.dbc模板,在CANdb++Editor 新建信號和報文,并填寫信號的相關參數信息。然后再創建節點,并在信號、報文、節點都建立好后,建立節點之間報文的收發關系。
完成節點間的收發關系后,根據通信矩陣中時間周期等的定義完成Attribute Difinitions 和報文中Attributes 發送接收的參數定義。這樣,就把完整的數據庫建立好了。
在Matlab/Simulink 中,建立整車控制單元模型作為網絡中的1 個節點。將原Simulink 模型的輸入輸出模塊替換成CANoe/Matlab 接口庫中的相應模塊,并添加離線模式模塊。
整車控制單元需要的輸入信號包含開關量信號(比如點火狀態和檔位狀態)、模擬量信號(駕駛員的加速踏板信號值、制定踏板信號值)和CAN 信號(包括電池管理單元、發動機控制單元、發電機單元等)。本文以整車控制單元中的發電模塊為例,完成CANoe/Matlab 聯合仿真功能。
如圖4 所示,環境變量中的時間模塊ignition 是模擬汽車的啟動信號,該事件觸發,整車即進入正常上電流程,上電完成后整車即進入到正常行駛狀態(由于該模塊僅為發電功能模塊,所以默認啟動ignition 后,均滿足上電條件,整車到Ready 狀態)。環境變量Acc_act 和Brk_act 用于模擬駕駛員的加速和制定信號,其他的Signal input 和Signal output分別用于接收和發送相應的CAN 信號。然后把這些信號和上一步驟建立的網絡數據庫(DBC 文件)關聯起來。

圖1 聯合仿真模型例子
根據整車實際網絡拓撲架構搭建各控制單元節點,本文按照發電功能仿真案例搭建與該功能的交互模塊,網絡拓撲架構如圖2 所示。

圖2 網絡拓撲架構
然后將CANoe/Matlab 聯合仿真模型編譯生成DLL 文件導入到CANoe 的VCU 的Node Configuration 中,完成聯合仿真模型的搭建。
最后,利用CANoe 中的面板編輯器(Panel Designer)創建用戶操作界面和顯示窗口。面板編輯器用于創建圖形面板,在圖形面板中可以在模擬測量的設置中方便地改變離散或是連續的環境變量的值。
根據該發電功能測試的輸入輸出,建立的控制面板如圖3 所示。

圖3 功能測試控制面板
在CANoe/Matlab 聯合仿真階段,主要完成的是MIL(模型在環)測試,驗證控制算法模型是否準確的實現功能需求。ECU 的功能測試則為半實物仿真測試,在軟件集成燒錄到整車控制單元后,在CANoe/Matlab 聯合仿真搭建的網絡拓撲上把該控制單元(VCU)凍結,然后用CANoe 和VCU 的CAN 通道相連,接上電源,建立通訊。其他網絡數據庫(DBC文件)和仿真面板沿用前面CANoe/Matlab 聯合仿真搭建的模型即可。通過總線接口與CANoe 上剩余的虛擬節點相連接,來測試真實節點的功能邏輯。
該測試步驟主要完成整車控制單元的PIL(控制器在環)測試,在目標控制器上驗證代碼實現的功能是否與模型一致。把整車控制單元系統功能測試在CANoe 環境下完成,能夠大大縮短整車系統開發測試的時間,也能夠保證功能測試的準確性和便利性。
在數據監測分析階段,所有節點均為真實的物理節點,CANoe 完成數據監控與回放分析的功能。通過該測試階段,能夠驗證整車系統的功能開發與仿真測試結果是否一致。
在該階段,CANoe 完成數據的實時采集,通過建立的網絡數據庫文件,在Graphics 窗口中能夠實時監測解析后的物理量值,完成功能邏輯的測試驗證。在數據采集后,通過Measurement Setup 窗口中,選擇離線分析模式,導入保存的數據文件,運行CANoe 環境,也能夠實現數據的回放再分析功能。在主窗口中,通過Tool 下的Logging File Conversion功能模塊也能把數據導成.mat 或.csv 等格式,然后通過Excel或者Matlab 等腳本文件完成數據處理分析,驗證功能是否滿足需求定義以及性能相關的標定量優化。
隨著汽車電子的快速發展,整車系統中電子控制單元數量急劇級攀升。CANoe 作為強大的網絡分析與系統仿真工具,能夠為整車系統開發測試過程中的模型測試、ECU 軟件集成測試以及數據監測分析階段提供強大的支持,大大縮短整車系統開發測試周期。
當然CANoe 的功能不僅包括本文介紹的這些內容,在結合CANScope、VTSystem 等工具或CANdela Studio、Diva插件能夠完成更多的仿真測試與診斷工作。本文介紹的應用可為整車系統開發測試提供參考。