提到ECU的測量標定工具,很多小伙伴第一個想到的就是CANape。但其實,除了強大的測量標定功能之外,CANape還有很多其他功能。例如,CANape中集成的小工具——ASAP2 Studio,其支持對A2L文件(由ASAM組織所定義)進行編輯、修改、更新等操作。接下來就請各位跟著小編一起去了解一下CANape是如何實現這部分功能的吧。
在此之前,讓我們先來了解一下什么是ASAM組織及A2L文件。
ASAM全稱為Association for Standardization of Automation and Measuring Systems,即自動化及測量系統標準協會。其目的是提供通用軟、硬件接口標準,以解決由于不同制造商提供的控制器存在的接口不匹配問題。目前ASAM組織在全球范圍內已有200余家會員。
在標定領域里,ASAM組織定義了標定的三重架構,分別為ECU(電子控制單元)、測量標定系統(如CANape)、自動化系統。如下圖所示:
其中,我們所熟知的XCP協議,就是ECU與測量標定系統的通訊協議。
而A2L文件(ASAM MCD-2 MC文件)則是用于描述ECU標定和測量數據的標準文件格式。在A2L文件中主要定義了ECU與測量標定系統的通信參數、變量名稱、數據類型、地址、轉換規則等信息。下圖為A2L文件的基本架構:
言歸正傳,本文將向大家介紹一些ASAP2 Studio的主要功能。包括如何加載并更新A2L文件,如何生成變量并為變量設置詳細信息(例如備注與單位、精度與數據范圍、轉換規則、DAQ測量通道等屬性)。
一、如何加載并更新A2L文件
在ASAP2 Studio中導入A2L文件主要有兩種方法。一種是選擇Open選項,打開一個新的A2L文件,另一種是選擇Recent Files選項,打開最近所使用的A2L文件。
在ASAP2 Studio中最常用的一個功能就是加載MAP文件并根據MAP文件中的信息去更新A2L文件的信息。
首先,我們需要在Tools菜單欄下選擇Load MAP File選項,加載MAP文件。在這一步我們需要注意的是選擇對應自己MAP文件的Reader格式,否則ASAP2 Studio將無法解析MAP文件。
成功解析MAP文件后,可以在Display菜單下選擇MAP File Window查看MAP文件中的變量信息。
最后,回到Tools菜單欄下,選擇Update選項更新A2L文件。我們可以根據自己要更新的內容去對應選擇需要激活的選項。
需要注意的是,在工作中一定要保證A2L與MAP文件的版本對應。例如,A2L文件中的數據類型或變量地址與MAP文件不符,可能會導致CANape中解析出來的變量值發生偏移或報錯。
另外,關于MAP Reader的設置也有值得我們注意的地方。
例一,在默認情況下,為了提高MAP文件的解析速度,MAP文件中數組變量的默認解析長度為16。如需解析更大長度的數組,可進入ASAP2 Studio Options界面配置。
例二,在默認情況下,ELF格式的MAP文件不解析結構體信息,如果想要解析結構體信息,首先需要將MAP Reader選擇為可以解析ELF文件的“ELF/DWARF 32/64 Bit”,然后將ELF_USE_CPP_EXTENSION_DWARF2的值更改為yes。
二、如何生成變量并為變量設置詳細信息
在A2L文件中為了實現變量的分級管理,可以創建不同的Groups,并且同一變量可以分配在不同的Group下。
1. 生成變量
ASAP2 Studio支持直接通過MAP文件生成變量,變量的類型主要包括測量量(Measurement)、標定量(Parameter),數組類型的變量需要創建成Map或Curve。
基于MAP文件創建的變量,其變量名稱、數據類型、地址等信息均會與MAP文件保持一致。
2.變量屬性
除了上述提到過的變量名稱、數據類型、地址等屬性,變量的屬性還包括備注、單位、轉換規則、數據范圍等。
關于備注和單位:
關于變量的精度和數據范圍:
在實際工作中我們的變量都是有范圍的。例如,下圖所示的標定量ampl,其初始范圍的設置為0到200。當工程師想要將ampl的值修改為255時,CANape就會報錯。因為這已經超出了A2L文件中設置的變量范圍,此時我們只需要在ASAP2 Studio中更改變量的取值范圍并保存即可:
關于轉換規則:
其中用得較多的是線性關系Linear:f(x) = Factor*x + 0ffset以及枚舉Identical。
轉換規則的創建有兩種操作方式。一種是在Navigation窗口中右鍵Conversion Methods,另一種是在Start菜單下選擇Conversion選項。
這里是對CANape Demo工程中所設置的轉換規則的示例:
注意同一轉換規則可以應用于不同的變量,只需要通過Conversion Method為變量選擇合適的轉換規則即可。
關于DAQ測量通道:
在ASAP2 Studio中,可以提前配置信號的測量通道(即上傳的周期或觸發上傳的事件)。在CANape的Measurement Configuration窗口添加信號后,會默認為預先在ASAP2 Studio配置好的測量通道。測量通道的配置如下所示。
其中,None/Fixed/Variable的含義如下:
補充小知識:
在XCP協議中定義了兩種測量方式。一種是Polling(輪詢),另一種是DAQ(同步數據采集),兩種方式各有特點。
關于Polling,是由主機(測量標定系統)向從機(ECU)下發SHORT_UPLOAD命令,從機接收到命令后,進行回復并上傳數據即可。它的配置很簡單,只需要ECU支持測量就可以,同時它也不占用ECU內存。但通過Polling獲取數據,每次獲取都需要兩條報文來完成,這使得總線上的負載變高。當輪詢多個信號時,需要按順序發送命令/響應,每個請求之間留有延遲,這個延遲客觀存在,所以Polling是異步的且無法保證信號的關聯性。
關于DAQ,DAQ是一種同步數據采集方式,這很好的彌補了Polling無法保證時間同步、信號關聯性以及總線負載高的問題。但DAQ的配置較為復雜,需要配置DAQ列表下發給從機,這將占用ECU的內存資源。在DAQ列表中會指定從機需要上傳的信號的地址等信息,然后將不同的DAQ列表與不同的事件通道關聯,之后ECU就會按照所關聯的事件通道周期性或觸發上傳數據。
以上就是關于ASAP2 Studio的相關介紹,如有其他相關問題,歡迎直接留言或者聯系郵箱support@dotrustech.com。