新聞中心

EEPW首頁 > 汽車電子 > 設計應用 > 利用CANape進行基于CCP的汽車控制器的匹配標定的設

利用CANape進行基于CCP的汽車控制器的匹配標定的設

作者: 時間:2012-09-04 來源:網絡 收藏

本文引用地址:http://www.2s4d.com/article/196450.htm

圖3 標定程序接口

·發(fā)送端:DTO通過CAN driver的發(fā)送子函數(shù)以CAN報文的格式上傳給MCS。

·接收端:主設備發(fā)送的命令以CAN報文的格式首先進入CAN driver的接收子函數(shù),由其判斷為CRO后,進一步交給命令處理器處理。

命令處理器作為 driver的一個主要組成部分,負責將接收到的CRO,通過其CRM代碼進行命令解釋,執(zhí)行相應操作,組織反饋數(shù)據(jù)并調用CAN發(fā)送子函數(shù)。DAQ處理器支持DAQ工作模式,當命令處理器判斷收到的命令為DAQ請求后,進一步將數(shù)據(jù)傳給DAQ處理器,由DAQ處理器組織數(shù)據(jù)并直接調用CAN 發(fā)送子函數(shù),以DAQ-DTO的形式定期向主設備上傳。

基于協(xié)議的基本CAN通信流程如圖4所示。ECU接收到報文后,轉入CAN接收子函數(shù),在常規(guī)接收流程后,對報文的ID標識符進行判斷,如為CRO_ID,則將CCP標志位(Ccp_indicator)置位。由于采用中斷方式接收報文,為了避免占用過多中斷時間而影響其他函數(shù)或中斷級別較低的程序運行,在對ID標識符進行判斷后,并不直接在函數(shù)中調用CCP driver的命令處理器。命令處理器的調用會在主函數(shù)中進行。

44.gif

圖4 接口程序基本流程圖

主函數(shù)通過判斷標志位的狀態(tài),調用CCP driver的ccpCommand()子函數(shù)。該函數(shù)是命令處理器的主要組成部分,也是命令處理器與CAN driver的接口函數(shù),它負責解釋并執(zhí)行收到的CRO命令,調用CCP driver中的其他函數(shù),進行數(shù)據(jù)處理并組織需要反饋的數(shù)據(jù)。

ccpCommand()通過調用CAN driver中的CCP發(fā)送子函數(shù)ccpSend()發(fā)送一幀DTO。ccpSend()須在CAN driver中實現(xiàn),由CCP driver調用。按實際情況,將CAN發(fā)送子函數(shù)直接以ccpSend()的形式實現(xiàn),或在保留原有發(fā)送子函數(shù)的基礎上添加一個ccpSend()子函數(shù),在其中調用CAN發(fā)送子函數(shù),以完成DTO的發(fā)送。

CCP協(xié)議為確保主設備與ECU之間正常通信,每次發(fā)送后,程序必須通過調用CCP driver中的ccpSendCallback()子函數(shù)檢查剛才的DTO是否已經發(fā)送,否則不能發(fā)送下一幀報文。針對不同的CAN driver實現(xiàn),該函數(shù)調用的位置不同。最后主函數(shù)將CCP標志位清空,等待下一條CRO命令。

一個完整的CCP driver 接口還包括與ECU其他應用程序的接口。每次單片機初始化后,主函數(shù)調用一次CCP driver的CCP初始化子函數(shù)ccpInit(),將上次標定殘留在ECU內存中的數(shù)據(jù)清空,為下次標定與測量做準備。

CCP協(xié)議共定義了28條命令,每條命令在CCP driver中都對應一組相應的子函數(shù),代表不同的功能,如EEPROM標定、DAQ工作模式等。用戶可根據(jù)實際需要,選擇實現(xiàn)其中部分或全部功能。每增加一個新的功能,必須在底層程序中添加開放該項功能的程序接口[3]。如對EEPROM標定,首先ECU應用程序中應包含EEPROM模塊子函數(shù),同時還需實現(xiàn)命令處理器與EEPROM模塊之間的調用接口。

3 利用實現(xiàn)基于CCP的標定

[4]是德國Vector公司出品的一款基于ASAP標準的ECU測試和標定工具。它通過一個硬件接口與ECU相連,兩者之間常用的物理連接是基于CCP協(xié)議的CAN總線。只有的底層程序中有支持CCP協(xié)議的程序接口, 才能與通信。

CANape提供了多種功能:在線數(shù)據(jù)評估、離線評估、數(shù)據(jù)管理、FLASH編程、參數(shù)標定及ASAP2數(shù)據(jù)編輯器等。此外,測試過程中由CAN總線上傳的數(shù)據(jù)還可以通過CANape在計算機顯示和保存,以進行離線標定和數(shù)據(jù)評估。

3.1 ASAP2控制器描述文件及ASAP2編輯器

CANape與控制器間的通信需要一個描述文件支持,這個文件稱為ASAP2控制器描述文件[4]。CANape對控制器的參數(shù)標定和數(shù)據(jù)測量都是基于這個文件,該文件記錄了控制器中各參數(shù)的詳細信息,如標定參數(shù)和測量變量在控制器中的存儲地址、存儲結構、數(shù)據(jù)類型和轉換公式等。在CANape中,每個標定參數(shù)和測量數(shù)據(jù)都會有一個變量名,如發(fā)動機溫度、冷卻水溫度。當CANape需要訪問某個變量,就在ASAP2描述文件中根據(jù)變量名,找到該變量在控制器中的存儲地址、數(shù)據(jù)長度等信息,然后進行操作,如圖5。

 ASAP2控制器描述文件

圖5 ASAP2控制器描述文件

為了方便用戶對ASAP2文件進行維護和修改,CANape集成了一個ASAP2數(shù)據(jù)庫編輯器,用以生成和修改ASAP2控制器描述文件。所有的信息都能通過對話框的形式進行設置和修改。該數(shù)據(jù)庫編輯器還能工作在獨立模式下,以生成一個ASAP2格式的控制器描述文件。

當ECU底層程序修改后,一些標定參數(shù)和測量數(shù)據(jù)的內存地址可能發(fā)生變動,CANape雖然仍能進行標定,但修改的已不是原來需要標定的參數(shù),而是程序變動后原先地址下當前存放的某個新的未知數(shù)據(jù)。為了簡化手工修改地址的繁瑣,防止因為隨意修改某個數(shù)據(jù)而破壞程序的正常運行,CANape支持通過linker map文件自動更新ASAP2文件里的信息。Map文件是ECU底層程序在編譯時由編譯器生成的一種映射文件,通過Map文件可以自動更新ASAP2文件。

3.2 CANape使用配置

每個需要標定的ECU都要在CANape中進行配置。

CANape共定義了28條命令,用以實現(xiàn)不同的功能,在配置頁面里均有復選框與其對應??刂破鞯呐渲帽仨毰cCCP Driver在ECU底層程序的具體實現(xiàn)相匹配,只有對某個功能的程序接口已經開放,才能在CANape中選擇使用該項功能[2][5]。

3.3 CANape中的參數(shù)標定

在CANape中,需要標定的變量稱為標定參數(shù),CANape將標定定義為修改駐扎在ECU內存中的變量的內容。CANape支持多種標定方法。這里標定方法指如何對標定參數(shù)所在的內存區(qū)域進行初始化、數(shù)據(jù)改寫及保存。根據(jù)標定參數(shù)所在不同地址空間(ROM、FLASH或EEPROM),CANape規(guī)定了不同的標定方法。

當標定參數(shù)需要存放在FLASH或ROM中時,在ECU上電初始化后,程序首先將標定參數(shù)的初始值復制到RAM中,在CANape中該段用來存放標定參數(shù)的RAM稱為Calibration RAM。標定過程中,CANape修改Calibration RAM中的參數(shù)值。標定全部結束后,再將該段RAM中的內容復制回FLASH或ROM中。



關鍵詞: CANape CCP 汽車 控制器

評論


相關推薦

技術專區(qū)

關閉