本發(fā)明涉及車載電子控制單元相關(guān)
技術(shù)領(lǐng)域:
,特別是一種車載電子控制單元模塊刷新方法及系統(tǒng)。
背景技術(shù):
:早在1994年以前,ISO制定了ISO14230。2008年以前,ISO14230是國(guó)內(nèi)許多汽車廠商采用的診斷通信標(biāo)準(zhǔn),是基于K線診斷的。但隨著K線的逐步淘汰,CAN網(wǎng)絡(luò)的興起,大多數(shù)主機(jī)廠都過(guò)渡到基于ISO15765的診斷協(xié)議。但是隨著車載網(wǎng)絡(luò)的發(fā)展,又出現(xiàn)了MOST、FlexRay、無(wú)線網(wǎng)絡(luò)等多種網(wǎng)絡(luò)并存。為了統(tǒng)一不同網(wǎng)絡(luò)的診斷服務(wù),ISO制定了一種新的診斷通信協(xié)議,ISO14229-1,也叫統(tǒng)一診斷服務(wù)(Unifieddiagnosticservices,UDS)。UDS服務(wù)不僅用于目前盛行的CAN網(wǎng)絡(luò),還可以用于以后的MOST、FlexRay、無(wú)線網(wǎng)絡(luò)等,為汽車網(wǎng)絡(luò)的發(fā)展做鋪墊。UDS標(biāo)準(zhǔn)在歐美已經(jīng)普遍使用,作為未來(lái)的發(fā)展趨勢(shì),國(guó)內(nèi)某主機(jī)廠也正在逐步往UDS標(biāo)準(zhǔn)過(guò)渡,開發(fā)屬于自己的UDS標(biāo)準(zhǔn),用于新一代電子架構(gòu)的研發(fā)。同時(shí)在一些較老的車輛電子控制單元(ElectronicControlUnit,ECU)維修中,大多采用拆卸并更換ECU芯片的方式,但是,一旦這種已經(jīng)完成編程的ECU芯片無(wú)法獲取,則會(huì)造成無(wú)法維修或者維修效果不良的情況,影響車輛操作性和安全性。在現(xiàn)在新型車輛的ECU維修中,由于ECU中存有大量的車輛信息,因此無(wú)法通過(guò)更換ECU芯片的方式進(jìn)行維修,所以汽車生產(chǎn)廠商大多使用外接電腦,直接對(duì)ECU芯片進(jìn)行編程的方式,來(lái)取代原有的簡(jiǎn)單更換,以達(dá)到對(duì)ECU進(jìn)行維修或升級(jí)的目的。不允許簡(jiǎn)單的對(duì)車輛ECU芯片進(jìn)行拆卸、更換?,F(xiàn)有的ECU芯片刷新方式,在開發(fā)上層軟件的過(guò)程中,首先開發(fā)者從硬件供應(yīng)商處獲取完整的數(shù)據(jù)文件和標(biāo)定刷新流程,并根據(jù)數(shù)據(jù)文件中所出現(xiàn)的指令,使用工具配置指令集或使用編程軟件通過(guò)代碼編寫指令集。然后開發(fā)者需要根據(jù)刷新流程使用配置工具或使用編程工具在指令集的基礎(chǔ)上配置指令流程。但是在實(shí)際應(yīng)用中,根據(jù)上述軟件架構(gòu)開發(fā)出的上層軟件會(huì)導(dǎo)致以下一些問(wèn)題:首先根據(jù)該架構(gòu)的開發(fā)是針對(duì)單一模塊的開發(fā),對(duì)每一個(gè)新模塊都需要進(jìn)行單獨(dú)開發(fā),軟件重復(fù)利用率差,開發(fā)效率低。其次,原有的架構(gòu)不支持UDS協(xié)議,UDS服務(wù)在原有架構(gòu)下無(wú)法通訊。再次,根據(jù)該架構(gòu)的開發(fā)的指令流程是根據(jù)供應(yīng)商提供的數(shù)據(jù)文件開發(fā),由于軟件運(yùn)行環(huán)境差異,所以在刷新過(guò)程中出錯(cuò)率相對(duì)較高。技術(shù)實(shí)現(xiàn)要素:基于此,有必要針對(duì)現(xiàn)有技術(shù)的ECU刷新方式重復(fù)利用率低且開發(fā)周期較長(zhǎng)的技術(shù)問(wèn)題,提供一種車載電子控制單元模塊刷新方法及系統(tǒng)。一種車載電子控制單元模塊刷新方法,包括:初始步驟,包括:從預(yù)設(shè)的包括多條記錄的配置文件中讀取第一條記錄作為當(dāng)前記錄,每條記錄至少包括指令和跳轉(zhuǎn)方式,執(zhí)行指令發(fā)送步驟;指令發(fā)送步驟,包括:獲取當(dāng)前記錄所包括的指令作為當(dāng)前指令,向車載電子控制單元模塊發(fā)送所述當(dāng)前指令,執(zhí)行模塊響應(yīng)值獲取步驟;模塊響應(yīng)值獲取步驟,包括:獲取車載電子控制單元模塊響應(yīng)所述當(dāng)前指令所返回的模塊響應(yīng)值作為當(dāng)前模塊響應(yīng)值,執(zhí)行下一記錄獲取步驟;下一記錄獲取步驟,包括:獲取當(dāng)前記錄所包括的跳轉(zhuǎn)方式作為當(dāng)前跳轉(zhuǎn)方式,如果所述當(dāng)前跳轉(zhuǎn)方式包括與當(dāng)前模塊響應(yīng)值對(duì)應(yīng)的下一記錄,則將當(dāng)前記錄更新為下一記錄,執(zhí)行指令發(fā)送步驟,否則結(jié)束。一種車載電子控制單元模塊刷新系統(tǒng),包括:初始模塊,用于:從預(yù)設(shè)的包括多條記錄的配置文件中讀取第一條記錄作為當(dāng)前記錄,每條記錄至少包括指令和跳轉(zhuǎn)方式,執(zhí)行指令發(fā)送模塊;指令發(fā)送模塊,用于:獲取當(dāng)前記錄所包括的指令作為當(dāng)前指令,向車載電子控制單元模塊發(fā)送所述當(dāng)前指令,執(zhí)行模塊響應(yīng)值獲取模塊;模塊響應(yīng)值獲取模塊,用于:獲取車載電子控制單元模塊響應(yīng)所述當(dāng)前指令所返回的模塊響應(yīng)值作為當(dāng)前模塊響應(yīng)值,執(zhí)行下一記錄獲取模塊;下一記錄獲取模塊,用于:獲取當(dāng)前記錄所包括的跳轉(zhuǎn)方式作為當(dāng)前跳轉(zhuǎn)方式,如果所述當(dāng)前跳轉(zhuǎn)方式包括與當(dāng)前模塊響應(yīng)值對(duì)應(yīng)的下一記錄,則將當(dāng)前記錄更新為下一記錄,執(zhí)行指令發(fā)送模塊,否則結(jié)束。本發(fā)明通過(guò)從配置文件中讀取控制指令跳轉(zhuǎn)的記錄,從而實(shí)現(xiàn)通過(guò)配置文件控制ECU模塊的刷新過(guò)程。由于采用了配置文件,因此,開發(fā)者只需要將適當(dāng)?shù)膮f(xié)議修改為配置文件即可實(shí)現(xiàn)不同協(xié)議對(duì)ECU模塊的刷新,提高了重復(fù)利用率低且減少了開發(fā)周期。附圖說(shuō)明圖1為本發(fā)明一種車載電子控制單元模塊刷新方法;圖2為本發(fā)明最佳實(shí)施例的結(jié)構(gòu)示意圖;圖3為本發(fā)明一種車載電子控制單元模塊刷新系統(tǒng)的結(jié)構(gòu)模塊圖。具體實(shí)施方式下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明做進(jìn)一步詳細(xì)的說(shuō)明。如圖1所示為本發(fā)明一種車載電子控制單元模塊刷新方法的工作流程圖,包括:步驟S101,包括:從預(yù)設(shè)的包括多條記錄的配置文件中讀取第一條記錄作為當(dāng)前記錄,每條記錄至少包括指令和跳轉(zhuǎn)方式,執(zhí)行步驟S102;步驟S102,包括:獲取當(dāng)前記錄所包括的指令作為當(dāng)前指令,向車載電子控制單元模塊發(fā)送所述當(dāng)前指令,執(zhí)行步驟S103;步驟S103,包括:獲取車載電子控制單元模塊響應(yīng)所述當(dāng)前指令所返回的模塊響應(yīng)值作為當(dāng)前模塊響應(yīng)值,執(zhí)行步驟S104;步驟S104,包括:獲取當(dāng)前記錄所包括的跳轉(zhuǎn)方式作為當(dāng)前跳轉(zhuǎn)方式,如果所述當(dāng)前跳轉(zhuǎn)方式包括與當(dāng)前模塊響應(yīng)值對(duì)應(yīng)的下一記錄,則將當(dāng)前記錄更新為下一記錄,執(zhí)行步驟S102,否則結(jié)束。本發(fā)明從通訊協(xié)議的角度出發(fā),對(duì)模塊刷新軟件進(jìn)行開發(fā),打破了以前根據(jù)單個(gè)模塊開發(fā)刷新軟件的方式。在此架構(gòu)下,配置文件不僅提供相應(yīng)的指令,還提供相應(yīng)的刷新流程,開發(fā)者只需要生成配置文件,而無(wú)需了解與ECU之間的接口,無(wú)需了解如何向ECU發(fā)送指令,因此開發(fā)難度降低,開發(fā)周期也降低,后續(xù)當(dāng)需要更換新的協(xié)議時(shí),只需要更新配置文件就能夠完成刷新流程。本發(fā)明可以很好地完善指令配置的自動(dòng)化過(guò)程,同時(shí)使軟件的模塊化結(jié)構(gòu)更加清晰,可減少50%以上模塊刷新的開發(fā)工作量,大大提高了軟件的重復(fù)利用率,降低了開發(fā)成本。在其中一個(gè)實(shí)施例中:所述記錄還包括標(biāo)識(shí)序列號(hào),所述跳轉(zhuǎn)方式包括至少一個(gè)數(shù)據(jù)對(duì),所述數(shù)據(jù)對(duì)包括模塊響應(yīng)值與跳轉(zhuǎn)序列號(hào);所述步驟S104,具體包括:獲取當(dāng)前記錄所包括的跳轉(zhuǎn)方式作為當(dāng)前跳轉(zhuǎn)方式,如果當(dāng)前跳轉(zhuǎn)方式中查找到包括當(dāng)前模塊響應(yīng)值的數(shù)據(jù)對(duì),則將包括當(dāng)前模塊響應(yīng)值的數(shù)據(jù)對(duì)所包括的跳轉(zhuǎn)序列號(hào)作為當(dāng)前跳轉(zhuǎn)序列號(hào),將標(biāo)識(shí)序列號(hào)為當(dāng)前跳轉(zhuǎn)序列號(hào)的記錄作為下一記錄,將當(dāng)前記錄更新為下一記錄,執(zhí)行指令獲取步驟,否則結(jié)束。本實(shí)施例采用標(biāo)識(shí)序列號(hào)標(biāo)識(shí)記錄,并將模塊響應(yīng)值和跳轉(zhuǎn)序列號(hào)進(jìn)行配對(duì),使得指令的跳轉(zhuǎn)能夠根據(jù)不同的模塊響應(yīng)值與跳轉(zhuǎn)序列號(hào)對(duì)應(yīng),從而找到相同的標(biāo)識(shí)序列號(hào)而實(shí)現(xiàn)通過(guò)配置文件對(duì)刷新流程的配置。優(yōu)選地,所述序列號(hào)為一個(gè)字節(jié)的十六進(jìn)制數(shù),所述數(shù)據(jù)對(duì)包括兩個(gè)字節(jié)的十六進(jìn)制數(shù),其中數(shù)據(jù)對(duì)的一個(gè)字節(jié)的十六進(jìn)制數(shù)為模塊響應(yīng)值,數(shù)據(jù)對(duì)的另一個(gè)字節(jié)的十六進(jìn)制數(shù)為跳轉(zhuǎn)序列號(hào)。在其中一個(gè)實(shí)施例中,所述指令包括基本指令和指令參數(shù)。指令參數(shù)對(duì)基本指令進(jìn)行配置,通過(guò)基本指令和指令參數(shù)的不同配合能形成多個(gè)不同的指令。例如:寫入編程日期,基本指令為0x3B(一個(gè)字節(jié)十六進(jìn)制數(shù)),其配置參數(shù)分別為0x99,0x00,0x00,0x00(均為一個(gè)字節(jié)十六進(jìn)制數(shù))。當(dāng)參數(shù)為0x99時(shí),軟件會(huì)自動(dòng)讀取當(dāng)前系統(tǒng)時(shí)間,生成后的指令為:0x3B0x990x200x150x040x22。在其中一個(gè)實(shí)施例中,所述配置文件根據(jù)汽車統(tǒng)一診斷服務(wù)協(xié)議生成。本實(shí)施例根據(jù)汽車統(tǒng)一診斷服務(wù)協(xié)議生成配置文件,從而實(shí)現(xiàn)ECU刷新對(duì)UDS的支持。如圖2所示為本發(fā)明最佳實(shí)施例的結(jié)構(gòu)示意圖,包括:上層軟件21、配置文件22、VCI硬件23和車載ECU芯片24。配置文件包括多個(gè)記錄,每條記錄如表1所示。表1單條記錄示意表序列號(hào)服務(wù)服務(wù)配置參數(shù)跳轉(zhuǎn)方式############G0-G1G2-G3G4-G5G6-G7G8-G9其中:序列號(hào):由一個(gè)BYTE的十六進(jìn)制數(shù)構(gòu)成,為刷新過(guò)程中的流程序列;服務(wù):由一個(gè)BYTE的十六進(jìn)制數(shù)構(gòu)成,為刷新過(guò)程中的基本指令;服務(wù)配置參數(shù):由四個(gè)BYTE的十六進(jìn)制數(shù)構(gòu)成,和服務(wù)配套使用,配置發(fā)送指令;跳轉(zhuǎn)方式:由10個(gè)BYTE的十六進(jìn)制數(shù)構(gòu)成,共分成5組,每組由兩個(gè)十六進(jìn)制數(shù)構(gòu)成,前一個(gè)為模塊響應(yīng)值,后一個(gè)為跳轉(zhuǎn)序列號(hào)。例如:當(dāng)模塊響應(yīng)值為G2,程序流程就跳轉(zhuǎn)到G3。G0~G9分別為一個(gè)BYTE的十六進(jìn)制數(shù)。圖2中,上層軟件21需要加載已經(jīng)根據(jù)相關(guān)協(xié)議編寫好的指令集,在刷新過(guò)程中,首先從配置文件22中根據(jù)模塊刷新順序讀取一條記錄,然后根據(jù)數(shù)據(jù)記錄配置指令,并通過(guò)VCI硬件23發(fā)送到車載ECU芯片24。當(dāng)上層軟件21收到車載ECU芯片24的數(shù)據(jù)反饋后,根據(jù)反饋數(shù)據(jù)在表1記錄中查找跳轉(zhuǎn)序列。按上述步驟重復(fù)循環(huán),可將配置文件22中的標(biāo)定數(shù)據(jù)寫入車載ECU芯片24的模塊,完成刷新過(guò)程。本發(fā)明和以前的軟件架構(gòu)相比,大大減少了指令集開發(fā)和流程開發(fā)的工作量,只需要進(jìn)行配置文件的編寫,降低了開發(fā)的難度,同時(shí)也提高了開發(fā)的準(zhǔn)確性。如圖3所示為本發(fā)明一種車載電子控制單元模塊刷新系統(tǒng)的結(jié)構(gòu)模塊圖,包括:初始模塊301,用于:從預(yù)設(shè)的包括多條記錄的配置文件中讀取第一條記錄作為當(dāng)前記錄,每條記錄至少包括指令和跳轉(zhuǎn)方式,執(zhí)行指令發(fā)送模塊302;指令發(fā)送模塊302,用于:獲取當(dāng)前記錄所包括的指令作為當(dāng)前指令,向車載電子控制單元模塊發(fā)送所述當(dāng)前指令,執(zhí)行模塊響應(yīng)值獲取模塊;模塊響應(yīng)值獲取模塊303,用于:獲取車載電子控制單元模塊響應(yīng)所述當(dāng)前指令所返回的模塊響應(yīng)值作為當(dāng)前模塊響應(yīng)值,執(zhí)行下一記錄獲取模塊304;下一記錄獲取模塊304,用于:獲取當(dāng)前記錄所包括的跳轉(zhuǎn)方式作為當(dāng)前跳轉(zhuǎn)方式,如果所述當(dāng)前跳轉(zhuǎn)方式包括與當(dāng)前模塊響應(yīng)值對(duì)應(yīng)的下一記錄,則將當(dāng)前記錄更新為下一記錄,執(zhí)行指令發(fā)送模塊302,否則結(jié)束。在其中一個(gè)實(shí)施例中:所述記錄還包括標(biāo)識(shí)序列號(hào),所述跳轉(zhuǎn)方式包括至少一個(gè)數(shù)據(jù)對(duì),所述數(shù)據(jù)對(duì)包括模塊響應(yīng)值與跳轉(zhuǎn)序列號(hào);所述下一記錄獲取模塊,具體包括:獲取當(dāng)前記錄所包括的跳轉(zhuǎn)方式作為當(dāng)前跳轉(zhuǎn)方式,如果當(dāng)前跳轉(zhuǎn)方式中查找到包括當(dāng)前模塊響應(yīng)值的數(shù)據(jù)對(duì),則將包括當(dāng)前模塊響應(yīng)值的數(shù)據(jù)對(duì)所包括的跳轉(zhuǎn)序列號(hào)作為當(dāng)前跳轉(zhuǎn)序列號(hào),將標(biāo)識(shí)序列號(hào)為當(dāng)前跳轉(zhuǎn)序列號(hào)的記錄作為下一記錄,將當(dāng)前記錄更新為下一記錄,執(zhí)行指令獲取模塊,否則結(jié)束。在其中一個(gè)實(shí)施例中,所述序列號(hào)為一個(gè)字節(jié)的十六進(jìn)制數(shù),所述數(shù)據(jù)對(duì)包括兩個(gè)字節(jié)的十六進(jìn)制數(shù),其中數(shù)據(jù)對(duì)的一個(gè)字節(jié)的十六進(jìn)制數(shù)為模塊響應(yīng)值,數(shù)據(jù)對(duì)的另一個(gè)字節(jié)的十六進(jìn)制數(shù)為跳轉(zhuǎn)序列號(hào)。在其中一個(gè)實(shí)施例中,所述指令包括基本指令和指令參數(shù)。在其中一個(gè)實(shí)施例中,所述配置文件根據(jù)汽車統(tǒng)一診斷服務(wù)協(xié)議生成。以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。當(dāng)前第1頁(yè)1 2 3