應世明,張宏雙Ying Shiming,Zhang Hongshuang
基于模型設計嵌入式ECU的自動代碼生成研究
應世明,張宏雙
Ying Shiming,Zhang Hongshuang
( 1.長城汽車股份有限公司,河北 保定 071000;2.河北省汽車技術創新中心,河北 保定 071000)
基于ASAP(zur Standardisierung von Applikationssystemen,應用系統標準化工作小組)標準架構提到的數據庫管理方式,應用Excel完成ECU(Electronic Control Unit,電子控制單元)系統的數據管理。利用MATLAB軟件完成ASAP數據庫自動生成,實現數據導入、用于a2l文件生成模型創建、頭文件修改及地址替換。最終生成可執行文件*.a2l,滿足對標定系統中的變量進行標定或觀測的需求。
標準架構;標定系統;數據管理;自動生成
ECU(Electronic Control Unit,電子控制單元)標定是指根據整車或者整車上ECU的性能要求(動力性、經濟性等),對ECU內部參數修改、校正、優化的過程。在項目開發的不同階段對控制系統的功能需求不相同,因此會有不同的標定需求。對于控制代碼的自動化生成,標定系統的ASAP(zur Standardisierung von Applikation ssystemen,應用系統標準化工作小組)數據庫自動更新標定數據的信息,保證對控制系統中的重要變量進行標定及觀測[1-3]。
ASAP工作組制定了目前廣泛使用的標準化接口和通信協議。標準化接口的通信協議有利于實現不同汽車ECU之間數據交互的一致性。ASAP標準架構定義了ASAP1、ASAP2和ASAP3 3個標準的關系,如圖1所示。
ASAP1定義了ASAP控制設備與MCD(Measurement Calibration Diagnostic,觀測標定診斷系統)之間物理和邏輯連接的接口標準。ASAP2提供了不同控制設備之間的接口、測量數據、標定數據、數據存儲格式、數據轉換方法的規范化定義。控制設備的標準信息使用基于XML(eXtensible Markup Language,可擴展標記語言)技術的A2L文件描述,描述控制設備內部數據的存儲細節,實現數據和應用的分離,有利于提高MCD系統的通用性。ASAP3作為MCD系統與用戶應用層之間的接口,提供MCD系統的測量、標定和診斷等功能的標準化函數的調用[4-5]。

圖1 ASAP標準架構
通常以V流程為指導方針的開發目標采用模型與數據分開管理的方法,即采用MATLAB/ Simulink作為控制算法的開發工具,依照MAAB(Mathworks Automotive Advisory Board,控制算法建模規范),完成整車ECU系統應用軟件的控制策略的模型架構設計、功能開發、模型數據定標,最終下載到客戶硬件控制器中。ECU由模型轉換到代碼,并與底層手寫代碼集成,整個過程如圖2所示。

注:ASW(Applications SoftWare,應用軟件);RTE(Runtime Environment,運行環境);BSW(Basic Software Layer,基礎軟件層)。
由圖2可以看出,編譯器的作用是將源代碼文件(.c.h文件)編譯成可執行的目標文件(.o文件),編譯規則應用標準C語言的編譯規則。根據不同芯片、不同平臺選擇不同的編譯器,鏈接器需和編譯器匹配,其作用是將所有由編譯器編譯完成的目標文件(.o文件)鏈接成可以燒錄到ECU中的elf、S19文件,以及編譯器生成的可供查看信息的map文件。最終文件(elf、S19文件)是源碼文件(.c.h文件)經過編譯器、鏈接器處理后得到的文件。
elf文件是帶調試信息的可燒錄文件,可以使用該文件進行調試。使用PE或勞特巴赫等工具軟件,可以將elf燒錄到ECU中,并使用專門的調試器進行文件調試,此時需要源碼支持,elf文件中包含了源碼的路徑信息,所以源碼路徑要保證正確。S19文件也是可燒錄文件,但不包括調試信息,只有程序數據信息,只能用于燒錄不能用于調試。A2L文件用于INCA軟件,INCA軟件可以根據A2L文件對ECU進行標定和測量,A2L文件中包含了標定量、測量量及CCP(CAN Calibration Protocol,CAN總線標定協議)通信的相關信息。
為了更好地對基礎軟件代碼進行維護,縮短產品平臺化開發周期,對ECU進行系統的數據管理很重要。進行參數標定前,需將搭建的模型及數據轉換成最終的可執行文件*.a2l。試驗過程中通過標定工具獲取數據、觀察和改變數據。這種將模型與數據分離的方式,簡化了開發人員的工作流程,使模型與數據維護更方便。
應用數據管理軟件如Excel、數據字典完成與模型對應的參數管理,將ECU系統程序中用到的標定量及觀測量按照Excel格式要求完善信息。如圖3所示,Excel中有2個表,ROM Data記錄標定量,RAM Data記錄觀測量。在ROM和RAM中分別定義整車ECU涉及的參數變量名、數值、數據類型、單位、維度等基本信息。

圖3 標定量和觀測量
RTE是AUTOSAR(Automotive Open System Architecture,汽車開放系統架構)中定義的一層結構,作用是將ASW和BSW隔離,為ASW和BSW提供實時訪問接口變量的方式。參考AUTOSAR架構中定義的RTE層,但是將RTE層訪問與操作系統分離,使用Read和Write方式進行ASW和BSW對RTE層的訪問,結構如圖4所示。

圖4 RTE層結構
為了方便RTE層維護,設計了RTE層接口變量定義表格。每次生成代碼過程中,RTE層定義文件會根據表格中定義的RTE變量自動生成,RTE層與ASW和BSW的交互層需要根據該表格自動生成,將對RTE層代碼和模型的維護轉化為對RTE層表格的維護。
模型對RTE層接口變量的訪問需要通過模塊調用RTE函數,這需要根據RTE層的變量創建訪問RTE層函數的模塊。創建調用外部函數的工具為Legacy Code Tool,為MATLAB自帶的工具,使用該工具編寫M腳本,查詢RTE表格中定義的接口變量及屬性,生成該工具要求的腳本。通過對腳本的執行,在線生成調用RTE層函數的模型文件以及庫文件。用戶可以將模型文件中定義的模塊直接用于建模,實現對RTE接口變量的訪問。生成的模型文件如圖5所示。

圖5 RTE模型
BSW層對RTE層的訪問通過直接調用RTE層定義的Read和Write函數進行。為了方便BSW層轉化定標方式,設計了RteBsw源文件,文件中定義2個函數,為BSW和RTE層變量定標方式的相互轉化函數;BSW通過調用這2個函數實現對RTE層定標方式的適配,從而將對源代碼的維護變成對RTE層表格的維護,能夠提高工作效率,降低勞動強度。
首先將管理數據Excel文件及MATLAB讀取Excel文件的封裝包放到MATLAB路徑下,使用創建的M腳本程序,在MATLAB的命令窗口輸入如下命令。
xlsreadsdo('nano_bus.xls', 'Simulink');
xlsreadsdo('Nano_data.xls', 'TestPackage');
nano_bus.xls、Nano_data.xls為2個Excel表的名字,Simulink、TestPackage為2個表的封裝格式,TestPackage為自定義的一種封裝格式,這樣實現了Excel表中信息導入到 MATLAB的Workspace。
在生成 A2L文件時需將導入MATLAB工作空間的數據轉換成使用該變量的模型。底層代碼為手寫C代碼,原策略模型中沒有這些變量;如果模型中沒有用到這些變量,則不會在A2L文件中生成相應的標定量或觀測量,所以使用自建的M腳本提取nano_bus.xls、 Nano_data.xls 2個Excel表格內的信息后自動創建模型。
將創建的模型生成的A2L文件導入INCA軟件后并不能與ECU建立通信,需要對A2L文件的文件頭進行修改。A2L文件頭定義了整個項目的通用信息,包括與硬件設備通信信息、標定量和觀測量的存儲區域等信息。
在 MATLAB安裝目錄下找到asap2main.tlc、asap2setup.tlc、asap2userlib.tlc 3個TLC文件,這些文件是基于MATLAB的TLC腳本語言開發,通過修改這3個TLC文件,可以控制生成的A2L文件格式及信息。在每次生成A2L文件時都包含需要的文件頭,把MATLAB生成的A2L文件正確導入INCA,與ECU建立通信。
在自動創建的模型上打開模型配置參數的配置界面,配置相關參數生成A2L文件,替換地址后可導入INCA使用。通過運行M腳本函數實現打開配置界面、配置相關參數、生成A2L等操作。
給出了一種ASAP數據庫管理方式,用2張Excel表管理所用到的標定量及觀測量。利用MATLAB工具生成可以導入INCA的A2L文件,將Excel表數據導入Workspace、提取Excel表信息創建模型、生成A2L文件并將替換地址的各M函數集成到一個M腳本中,在MATLAB命令窗口中輸入命令即可生成可以直接使用的A2L文件,使用這樣的方法可以完成對標定量和觀測量的ASAP數據庫實時更新任務。
[1]宋維群,楊世春,李明,等.基于ASAM標準的標定數據庫邏輯分析與編程實現[J].汽車技術,2012(1):10-13.
[2]張彧,馮輝宗.基于CCP協議的汽車ECU標定系統的設計[J].微計算機信息,2007(29):216-217.
[3]韋文波.基于CCP協議的電控發動機標定系統開發[D].長沙:湖南大學,2011.
[4]莊繼暉,謝輝,李蘇蘇,等.基于ASAP架構的發動機ECU標定系統開發[J].中國機械工程,2012 ,23(2):199-203.
[5]陳鵬.基于CCP協議發動機標定系統應用研究[D].武漢:武漢理工大學,2014.
2021-03-15
U463.6.02
A
10.14175/j.issn.1002-4581.2021.04.010
1002-4581(2021)04-0041-04