本技術(shù)涉及電子控制單元,尤其涉及一種基于容器的ecu刷寫方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù):
1、汽車電子控制單元(electronic?control?unit,ecu)作為汽車不可或缺的核心部件之一,負(fù)責(zé)集成、處理和執(zhí)行來(lái)自車輛各個(gè)傳感器和執(zhí)行器的數(shù)據(jù)與信息,實(shí)現(xiàn)對(duì)發(fā)動(dòng)機(jī)、傳動(dòng)系統(tǒng)、制動(dòng)系統(tǒng)、安全系統(tǒng)和車身控制等多個(gè)關(guān)鍵系統(tǒng)的精確控制。隨著汽車智能化、網(wǎng)聯(lián)化趨勢(shì)的加速,ecu需要不斷更新軟件以適應(yīng)日益復(fù)雜的功能需求,軟件更新通常包括新功能的添加、現(xiàn)有功能的優(yōu)化、錯(cuò)誤修復(fù)以及安全補(bǔ)丁的應(yīng)用等。在相關(guān)技術(shù)中,通常采用基于doip(diagnostic?co?mmunication?over?internet?protocol)的ecu刷寫技術(shù),通過(guò)專用設(shè)備將新的軟件版本寫入ecu的方式,實(shí)現(xiàn)軟件更新,doip協(xié)議是一種基于tcp/ip協(xié)議(傳輸控制協(xié)議/網(wǎng)際協(xié)議)的刷寫技術(shù),它能夠通過(guò)互聯(lián)網(wǎng)或局域網(wǎng)連接到車輛,對(duì)ecu進(jìn)行遠(yuǎn)程或本地的刷寫操作。
2、然而,基于doip協(xié)議的ecu刷寫,需要確保刷寫設(shè)備和待刷寫的ecu處于同一網(wǎng)絡(luò)環(huán)境中,僅適用于單個(gè)ecu的刷寫。在需要批量刷寫ecu時(shí),由于同一型號(hào)的ecu可能配置有相同的ip地址,一方面,同時(shí)處理多個(gè)ecu的并發(fā)通信,會(huì)存在通信沖突導(dǎo)致刷寫失敗;另一方面,如果逐個(gè)對(duì)ecu進(jìn)行刷寫,會(huì)導(dǎo)致刷寫效率低,影響生產(chǎn)進(jìn)度和成本。
技術(shù)實(shí)現(xiàn)思路
1、為了對(duì)披露的實(shí)施例的一些方面有基本的理解,下面給出了簡(jiǎn)單的概括。所述概括不是泛泛評(píng)述,也不是要確定關(guān)鍵/重要組成元素或描繪這些實(shí)施例的保護(hù)范圍,而是作為后面的詳細(xì)說(shuō)明的序言。
2、鑒于以上所述現(xiàn)有技術(shù)的缺點(diǎn),本技術(shù)公開了一種基于容器的ecu刷寫方法、裝置、設(shè)備及存儲(chǔ)介質(zhì),以解決上述如何實(shí)現(xiàn)ecu的批量刷寫以提高刷寫效率的技術(shù)問(wèn)題。
3、第一方面,本技術(shù)提供了一種基于容器的ecu刷寫方法,應(yīng)用于上位機(jī),所述上位機(jī)通過(guò)虛擬局域網(wǎng)接口和多個(gè)相同型號(hào)的ecu進(jìn)行通信,每一車輛中至少配置一個(gè)所述ecu,所述方法包括:接收用于刷寫多個(gè)所述ecu的控制指令,所述控制指令至少包括待刷寫所述ecu的目標(biāo)數(shù)量和升級(jí)文件的路徑;將預(yù)設(shè)刷寫程序封裝為一容器鏡像,根據(jù)所述容器鏡像和所述控制指令創(chuàng)建所述目標(biāo)數(shù)量的容器;運(yùn)行每一所述容器內(nèi)的所述預(yù)設(shè)刷寫程序,使所述升級(jí)文件通過(guò)各通信鏈路傳輸至各所述ecu,以完成對(duì)各所述ecu的刷寫,其中,所述通信鏈路是所述容器和所述ecu之間基于所述虛擬局域網(wǎng)接口一一對(duì)應(yīng)構(gòu)建的。
4、于本技術(shù)一實(shí)施例中,所述通信鏈路的構(gòu)建方式,包括:將各所述容器分別和不同所述虛擬局域網(wǎng)接口進(jìn)行綁定;基于綁定的每一所述虛擬局域網(wǎng)接口建立所述容器和所述ecu之間一一對(duì)應(yīng)的通信鏈路,每一所述虛擬局域網(wǎng)接口僅關(guān)聯(lián)有一所述ecu。
5、于本技術(shù)一實(shí)施例中,所述基于綁定的每一所述虛擬局域網(wǎng)接口建立所述容器和所述ecu之間一一對(duì)應(yīng)的通信鏈路,包括:對(duì)每一所述容器分配一唯一的第一網(wǎng)絡(luò)地址,且同一所述虛擬局域網(wǎng)接口所對(duì)應(yīng)的所述容器的所述第一網(wǎng)絡(luò)地址和所述ecu的第二網(wǎng)絡(luò)地址為同一網(wǎng)段,其中,各所述ecu的所述第二網(wǎng)絡(luò)地址相同;根據(jù)同一所述虛擬局域網(wǎng)接口所對(duì)應(yīng)所述容器的所述第一網(wǎng)絡(luò)地址和所述ecu所述第二網(wǎng)絡(luò)地址,建立一所述通信鏈路。
6、于本技術(shù)一實(shí)施例中,所述運(yùn)行每一所述容器內(nèi)的所述預(yù)設(shè)刷寫程序,包括:將與運(yùn)行所述預(yù)設(shè)刷寫程序的所述容器同一所述虛擬局域網(wǎng)接口的所述ecu,作為目標(biāo)控制單元;利用所述預(yù)設(shè)刷寫程序在預(yù)設(shè)時(shí)間內(nèi)檢測(cè)所述上位機(jī)和所述目標(biāo)控制單元是否連接成功;若連接成功,則向所述目標(biāo)控制單元發(fā)送會(huì)話指令,以基于所述會(huì)話指令建立所述預(yù)設(shè)刷寫程序和所述目標(biāo)控制單元之間的編碼會(huì)話;若連接失敗,則重新建立連接,直至連接成功或連接次數(shù)達(dá)到預(yù)設(shè)次數(shù)為止;根據(jù)所述升級(jí)文件的路徑讀取所述升級(jí)文件,并發(fā)送至所述目標(biāo)控制單元,以對(duì)所述目標(biāo)控制單元進(jìn)行刷寫。
7、于本技術(shù)一實(shí)施例中,所述完成對(duì)各所述ecu的刷寫,包括:利用每一所述容器內(nèi)的所述預(yù)設(shè)刷寫程序?qū)㈤W存操作文件傳輸至同一所述虛擬局域網(wǎng)接口的所述ecu,所述升級(jí)文件包括和所述閃存操作文件和應(yīng)用程序文件,所述閃存操作文件用于對(duì)所述ecu中的預(yù)設(shè)存儲(chǔ)分區(qū)進(jìn)行擦除和寫入;通過(guò)加載所述閃存操作文件對(duì)所述預(yù)設(shè)存儲(chǔ)分區(qū)進(jìn)行擦除,并待擦除完成后將應(yīng)用程序文件寫入所述預(yù)設(shè)存儲(chǔ)分區(qū),以完成對(duì)各所述ecu的刷寫。
8、于本技術(shù)一實(shí)施例中,在所述完成對(duì)各所述ecu的刷寫之后,還包括:通過(guò)所述預(yù)設(shè)刷寫程序讀取所述ecu中所述應(yīng)用程序文件的當(dāng)前版本信息;將所述當(dāng)前版本信息和所述升級(jí)文件中所述應(yīng)用程序文件攜帶的版本信息進(jìn)行比對(duì);若不一致,則反饋攜帶有刷寫失敗的標(biāo)志信息至所述上位機(jī);若一致,則反饋攜帶有刷寫成功的標(biāo)志信息至所述上位機(jī);基于所述標(biāo)志信息調(diào)用預(yù)設(shè)指令,對(duì)與所述ecu同一所述虛擬局域網(wǎng)接口的所述容器進(jìn)行刪除,所述預(yù)設(shè)指令用于刪除所述容器。
9、于本技術(shù)一實(shí)施例中,在所述接收用于刷寫多個(gè)所述ecu的控制指令之前,還包括:將各所述ecu分別接入不同接入端口,所述接入端口為基于交換機(jī)創(chuàng)建的虛擬局域網(wǎng)所配置的端口,所述接入端口和所述虛擬局域網(wǎng)一一對(duì)應(yīng);在所述上位機(jī)創(chuàng)建與所述接入端口相同數(shù)量的所述虛擬局域網(wǎng)接口;將各所述虛擬局域網(wǎng)接口分別和不同所述接入端口進(jìn)行關(guān)聯(lián),使所述上位機(jī)通過(guò)不同所述虛擬局域網(wǎng)接口和每一所述ecu建立通信。
10、第二方面,本技術(shù)提供了一種基于容器的ecu刷寫裝置,應(yīng)用于上位機(jī),所述上位機(jī)通過(guò)虛擬局域網(wǎng)接口和多個(gè)相同型號(hào)的ecu進(jìn)行通信,每一車輛中至少配置一個(gè)所述ecu,所述裝置包括:指令接收模塊,用于接收用于刷寫多個(gè)所述ecu的控制指令,所述控制指令至少包括待刷寫所述ecu的目標(biāo)數(shù)量和升級(jí)文件的路徑;容器創(chuàng)建模塊,用于將預(yù)設(shè)刷寫程序封裝為一容器鏡像,根據(jù)所述容器鏡像和所述控制指令創(chuàng)建所述目標(biāo)數(shù)量的容器;刷寫模塊,用于運(yùn)行每一所述容器內(nèi)的所述預(yù)設(shè)刷寫程序,使所述升級(jí)文件通過(guò)各通信鏈路傳輸至各所述ecu,以完成對(duì)各所述ecu的刷寫,其中,所述通信鏈路是所述容器和所述ecu之間基于所述虛擬局域網(wǎng)接口一一對(duì)應(yīng)構(gòu)建的。
11、第三方面,本技術(shù)還提供了一種電子設(shè)備,包括:處理器、存儲(chǔ)器和通信總線;所述通信總線用于將所述處理器和存儲(chǔ)器連接;所述處理器用于執(zhí)行所述存儲(chǔ)器中存儲(chǔ)的計(jì)算機(jī)程序,以實(shí)現(xiàn)如上述實(shí)施例中所述的基于容器的ecu刷寫方法。
12、第四方面,本技術(shù)提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,當(dāng)計(jì)算機(jī)程序被計(jì)算機(jī)的處理器執(zhí)行時(shí),使計(jì)算機(jī)執(zhí)行如上述實(shí)施例中所述的基于容器的ecu刷寫方法。
13、本技術(shù)的有益效果:本技術(shù)提出了一種基于容器的ecu刷寫方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)。通過(guò)虛擬局域網(wǎng)接口建立上位機(jī)和多個(gè)相同型號(hào)的ecu進(jìn)行通信,每一車輛中至少配置一個(gè)ecu,利用上位機(jī)接收用于刷寫多個(gè)ecu的控制指令,控制指令至少包括待刷寫ecu的目標(biāo)數(shù)量和升級(jí)文件的路徑;將預(yù)設(shè)刷寫程序封裝為一容器鏡像,根據(jù)容器鏡像和控制指令創(chuàng)建目標(biāo)數(shù)量的容器;運(yùn)行每一容器內(nèi)的預(yù)設(shè)刷寫程序,使升級(jí)文件通過(guò)各通信鏈路傳輸至各ecu,以完成對(duì)各ecu的刷寫,其中,通信鏈路是容器和ecu之間基于虛擬局域網(wǎng)接口一一對(duì)應(yīng)構(gòu)建的。這樣,一方面,通過(guò)不同vlan(虛擬局域網(wǎng))實(shí)現(xiàn)容器和ecu之間一對(duì)一的通信,使得相同型號(hào)的ecu之間的通信隔離,在實(shí)現(xiàn)了ecu的批量刷寫的同時(shí),避免了不同ecu之間的通信沖突;另一方面,將預(yù)設(shè)刷寫程序進(jìn)行容器化,使預(yù)設(shè)刷寫程序運(yùn)行的靈活性和響應(yīng)速度高,顯著簡(jiǎn)化刷寫流程,進(jìn)一步提高刷寫效率。另外,不需要再增加額外的硬件設(shè)備,如交換機(jī)和專業(yè)刷寫設(shè)備等,降低了成本和系統(tǒng)的復(fù)雜度。
14、應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本技術(shù)。