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