04 Xcp 标定过程介绍
要更改XCP Slave中的參數(shù),XCP Master必須將參數(shù)的位置以及值本身發(fā)送給Slave。
XCP總是用5個(gè)字節(jié)定義地址:4個(gè)字節(jié)用于實(shí)際地址,1個(gè)字節(jié)用于地址擴(kuò)展。基于CAN傳輸,XCP消息只有7個(gè)有用的字節(jié)可用。例如,如果標(biāo)定工具設(shè)置了一個(gè)4字節(jié)的值,并且想要在一個(gè)CAN消息中同時(shí)發(fā)送這兩個(gè)信息,那么就沒有足夠的空間來完成這一操作。由于總共需要9個(gè)字節(jié)來傳輸?shù)刂泛托轮?#xff0c;這個(gè)變化不能在一個(gè)CAN消息(有用的7個(gè)字節(jié))中傳輸。因此,標(biāo)定請求是由Master向Slave發(fā)送兩條信息完成,Slave必須確認(rèn)這兩個(gè)消息。
下圖顯示了Master和Slave之間的通信,需要設(shè)置一個(gè)參數(shù)值。實(shí)際信息解釋被隱藏,通過用鼠標(biāo)“展開”它來顯示。
在Master的第一個(gè)消息中,Master發(fā)送了SET_MTA命令給Slave,該命令將寫入一個(gè)新的地址值。在第二條消息中,Slave對命令表示肯定Ok: SET_MTA。
第三條消息下載傳輸十六進(jìn)制值以及有效的字節(jié)數(shù)。在本例中,由于是浮點(diǎn)數(shù),有效的字節(jié)數(shù)是4。Slave在第四個(gè)消息中同意給予了肯定響應(yīng)。
這就完成了當(dāng)前的標(biāo)定過程。在Trace顯示中,您可以識別到最后一個(gè)命令SHORT_UPLOAD。,這是Vector的測量和標(biāo)定工具CANape的一個(gè)特殊方面。為了確保標(biāo)定成功,在標(biāo)定結(jié)束后再次讀出該值,并將顯示更新為讀出值。這可以讓用戶直接識別是否執(zhí)行了標(biāo)定命令。這個(gè)命令也得到了一個(gè)肯定的確認(rèn):SHORT_UPLOAD。
當(dāng)參數(shù)在ECU的RAM中發(fā)生變化時(shí),應(yīng)用程序?qū)⑻幚硇碌闹怠H欢?#xff0c;重新啟動ECU會導(dǎo)致該值被擦除,并用flash中的原始值覆蓋RAM中的值。那么,如何永久保存修改后的參數(shù)呢?
基本上有兩種可能:
?
一、保存在ECU中
例如,RAM中改變的數(shù)據(jù)可以保存在ECU的EEPROM中:當(dāng)ECU掉電時(shí)自動保存,或由用戶手動保存。前提條件是數(shù)據(jù)可以存儲在Slave的非易失性內(nèi)存中。在ECU中,這將是EEPROM或flash。然而,具有數(shù)千個(gè)參數(shù)的ECU很少能夠提供這么多未使用的EEPROM內(nèi)存空間,因此這種方法很少見。
另一種可能是將RAM參數(shù)寫回ECU的flash內(nèi)存。這種方法比較復(fù)雜。Flash內(nèi)存必須先被擦除,然后才能被重寫。反過來,這只能作為一個(gè)塊來完成。因此,這不是簡單地回寫單個(gè)字節(jié)的問題。
二、將參數(shù)以文件的形式保存到PC上
更常見的是將參數(shù)存儲在PC上。所有參數(shù)(或它們的子集)都以文件的形式存儲。不同的格式是可用的;最簡單的情況是ASCII文本文件,它只包含對象的名稱和值。其他格式還允許保存其他信息,例如關(guān)于修訂歷史參數(shù)的成熟度級別等。
場景:完成工作后,標(biāo)定員希望享受一個(gè)自由的夜晚。因此,標(biāo)定工具將執(zhí)行的更改,以參數(shù)設(shè)置文件的形式保存在ECU的RAM中。第二天,標(biāo)定員想要繼續(xù)他停止的工作。標(biāo)定工具啟動ECU。在引導(dǎo)時(shí),參數(shù)在RAM中初始化。然而,ECU使用存儲在flash中的值來做到這一點(diǎn)。這意味著前一天的變化在ECU中不再可用。為了繼續(xù)前一天停止的工作,標(biāo)定工具使用DOWNLOAD命令通過XCP將參數(shù)設(shè)置文件的內(nèi)容傳輸?shù)紼CU的RAM中
?
保存參數(shù)設(shè)置文件Hex文件和刷新
刷新ECU flash是另一種改變flash參數(shù)的方法。當(dāng)ECU啟動時(shí),它們被作為新參數(shù)寫入RAM。參數(shù)文件也可以被傳輸?shù)紺或H文件中,并在運(yùn)行編譯器/鏈接器時(shí)被制成新的flash文件。但是,根據(jù)代碼的參數(shù),生成flash十六進(jìn)制文件的過程可能需要相當(dāng)長的時(shí)間。此外,標(biāo)定工具可能沒有任何ECU源代碼,這取決于工作過程。
作為一種替代方案,標(biāo)定工具可以將參數(shù)設(shè)置文件復(fù)制到現(xiàn)有的flash文件中。
?
在flash文件中,有一個(gè)包含地址和值的十六進(jìn)制文件。現(xiàn)在參數(shù)文件可以復(fù)制到十六進(jìn)制文件中。為此,CANape從參數(shù)文件中獲取地址和值,并在Hex文件的相關(guān)位置更新參數(shù)值。這將產(chǎn)生一個(gè)新的Hex文件,其中包含更改的參數(shù)值。現(xiàn)在這個(gè)Hex文件現(xiàn)在必須重新寫入flash中,并且在重新啟動后,新的參數(shù)值在ECU中是可用的。
總結(jié)
以上是生活随笔為你收集整理的04 Xcp 标定过程介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 京东搜索框的汉语分词技术太牛了!!!--
- 下一篇: 来淘宝的这一年:前篇、生活和工作