XCP的主要應用于測量和標定ECU內部參數(shù)。此協(xié)議能夠使數(shù)據(jù)采集工作與ECU內部運行的任務和中斷同步,從而保證每當ECU軟件更新參數(shù)時,能快速采集到所需的參數(shù)值。
根據(jù)標定數(shù)據(jù)要實現(xiàn)掉電存儲的要求,需要為RAM中的標定參數(shù)建立一個RAM-EEPROM的關聯(lián)列表。
列表中的具體元素為:EEPROM地址(相對于起始地址的偏移量)、RAM地址(標定參數(shù)在ECU中的地址,“&+變量名”的形式可直接獲得)、標定參數(shù)的長度和標定參數(shù)的數(shù)據(jù)類型。
數(shù)據(jù)標定任務可細分為三部分。上電標定參數(shù)更新讀入、上位機對ECU中RAM地址的直接標定和運行過程中RAM-EEPROM參數(shù)關聯(lián)列表的更新。
上電時,標定參數(shù)處于初始化狀態(tài),其參數(shù)直接來源于程序燒寫完成時的數(shù)值。斷電之前標定的參數(shù)需要更新到RAM中才能保證之后運行的參數(shù)值是上次標定后的數(shù)值。
因此數(shù)據(jù)更新時,將EEPROM中的存儲值直接讀出更新到RAM中即可。
但若標定參數(shù)都未被標定過,則不需要標定參數(shù)的讀出更新。如下圖所示,處理的方法是在數(shù)據(jù)讀出更新之前,讀出EEPROM特定位置的標定更新標志位,若標定更新標志不存在,則不需要將數(shù)據(jù)讀出更新到RAM。
該任務在主函數(shù)初始化處被調用一次。
上位機對ECU中RAM地址的直接標定主要是在CCP命令指導下完成的。
數(shù)據(jù)在RAM中標定更新后可滿足正常的控制運行,但數(shù)據(jù)仍需要更新到對應的EEPROM中才可實現(xiàn)掉電存儲。如下圖所示,在主函數(shù)中查詢更新EEPROM標志位,以判斷是否需要更新數(shù)據(jù)到EEPROM。
在數(shù)據(jù)更新到EEPROM之前,向EEPROM的特定地址處寫入一個標志,表示有數(shù)據(jù)更新到EEPROM,以方便下次上電時辨別標志讀取最新的標定數(shù)據(jù)。
讀入RAM-EEPROM關聯(lián)列表的信息,將地址偏移、數(shù)據(jù)類型、數(shù)據(jù)長度、數(shù)據(jù)值寫入緩存,置寫EEPROM中斷標志,在中斷函數(shù)中完成數(shù)據(jù)更新EEPROM的操作。
整個任務在主函數(shù)中被調用,設定任務時間為100ms,減少不必要更新查詢
??
審核編輯:劉清
-
RAM
+關注
關注
8文章
1354瀏覽量
114444 -
EEPROM
+關注
關注
9文章
1008瀏覽量
81336 -
ecu
+關注
關注
14文章
876瀏覽量
54360 -
CCP
+關注
關注
0文章
21瀏覽量
11213
發(fā)布評論請先 登錄
相關推薦
評論