卜凡濤,劉木林,劉曉曄
(東軟睿馳汽車技術(shù)(沈陽)有限公司,遼寧 沈陽 110000)
隨著人工智能、電子控制以及互聯(lián)網(wǎng)技術(shù)的不斷完善,汽車正逐步從機(jī)械產(chǎn)品演變成為集各種先進(jìn)電子技術(shù)于一身的智能網(wǎng)聯(lián)汽車。智能網(wǎng)聯(lián)汽車的各個(gè)系統(tǒng),從燈光控制到車輛控制,從主動(dòng)安全到高級(jí)自動(dòng)駕駛系統(tǒng),無一不借助各種精密可靠的電子電氣系統(tǒng)得以實(shí)現(xiàn)。隨著智能網(wǎng)聯(lián)汽車的功能要求越來越多,控制器的代碼量也隨之增加,甚至達(dá)到上億行。代碼量的增加使得整車出廠前無法完全規(guī)避軟件漏洞,必須售后通過軟件更新修復(fù),但傳統(tǒng)的軟件升級(jí)過程需要診斷設(shè)備連接車上的OBD(On-Board Diagnostics,車載診斷系統(tǒng))接口進(jìn)行,無論是讓車主前往4S店進(jìn)行升級(jí)還是廠商召回,都將消耗大量時(shí)間、人力成本。為了解決軟件升級(jí)的難題,很多新興公司開始使用OTA技術(shù),使用無線網(wǎng)絡(luò)通過遠(yuǎn)程升級(jí)軟件。
OTA(Over-the-Air Technology)空中下載技術(shù),即通過移動(dòng)網(wǎng)絡(luò)從遠(yuǎn)程服務(wù)器無線下載新的軟件更新包對(duì)自身系統(tǒng)進(jìn)行升級(jí)。OTA技術(shù)可以減少大量的人力和物力,本文提出對(duì)車載控制器的OTA設(shè)計(jì)。
OTA是利用移動(dòng)網(wǎng)絡(luò)(TD-LTE)實(shí)現(xiàn)對(duì)移動(dòng)設(shè)備軟件進(jìn)行更新的技術(shù)??蛻舳撕头?wù)端協(xié)同工作,而服務(wù)端只有一個(gè),一般設(shè)在整車廠的服務(wù)器;客戶端有多個(gè),本文新能源車就是客戶端。一個(gè)服務(wù)端對(duì)應(yīng)多個(gè)客戶端,當(dāng)客戶端同意進(jìn)行更新軟件后,服務(wù)端就會(huì)發(fā)起更新請求,客戶端接收到新版軟件后在合適的時(shí)間段內(nèi)完成更新。車載OTA網(wǎng)絡(luò)架構(gòu)如圖1所示。
圖1 車載OTA網(wǎng)絡(luò)架構(gòu)圖[4]
當(dāng)客戶端同意進(jìn)行OTA更新時(shí),車輛通過移動(dòng)網(wǎng)絡(luò)連接到OEM服務(wù)器,OEM服務(wù)器將更新的固件發(fā)送到車輛的遠(yuǎn)程處理單元,遠(yuǎn)程處理單元再發(fā)送到網(wǎng)關(guān)控制器,通過網(wǎng)關(guān)控制器分發(fā)到相應(yīng)控制器。本文重點(diǎn)介紹OTA技術(shù),不對(duì)網(wǎng)絡(luò)安全技術(shù)做詳細(xì)講解。
圖2 OTA主需求圖
1)軟件中同時(shí)存在soft1(Bank A)和soft2(Bank B),新舊2套不同軟件。
2)軟件可以通過CAN控制指令在soft1和soft2之間切換。
3)軟件通過OTA燒錄更新,在舊版本位置更新為新版本軟件。
4)在軟件更新失敗時(shí),可以回滾至舊軟件。
5)軟件存在Boot并且不變更。
OTA實(shí)現(xiàn)的困難點(diǎn)如下。
1)兩版軟件App功能相同,但是PFLASH地址不同,對(duì)應(yīng)的Linker配置也就不同,所以必須有兩套軟件。
2)在進(jìn)行OTA更新時(shí),需要明確當(dāng)前ECU運(yùn)行的軟件是Bank A還是Bank B。
由于編譯地址不同,對(duì)于同一版Soft Code,需要配置不同的Linker文件,最后需要準(zhǔn)備不同的燒錄對(duì)象文件(.hex),見表1。
表1 未使用SWAP的hex版本
為了解決以上問題,本文應(yīng)用了英飛凌的SWAP技術(shù)。SWAP是使能后,Bank切換時(shí)通過修改特定的Dflash數(shù)據(jù)進(jìn)行配置切換,Reset后實(shí)際切換。如圖3所示。
圖3 SWAP功能開啟后的Bank切換圖
通過SWAP功能,可做到每一版軟件只需要生成一版燒錄對(duì)象文件(.hex),見表2。
表2 使用SWAP后的hex版本
使用SWAP的軟件時(shí)序圖如圖3所示。
圖4 軟件流程圖
1)UDS指令進(jìn)入Boot1。
2)Boot1擦除Bank B App Area(App1),如果Bank A為now。
3)下載App3.hex,在Bank B App Area進(jìn)行燒錄。
4)切換UCB_SWAP。
5)Reset,進(jìn)入Bank B Boot1。
6)校驗(yàn)PFlash區(qū)中,Bank B App3完整性。
7)如果6)校驗(yàn)成功,Reset,軟件從Bank B Boot1跳轉(zhuǎn)至Bank B App3。
8)如果6)校驗(yàn)失敗,報(bào)燒錄軟件檢驗(yàn)失敗錯(cuò)誤。
切換UCB_SWAP,Reset,軟件從Bank A Boot1跳轉(zhuǎn)至Bank A App2。
汽車聯(lián)網(wǎng)能力日漸普及,以“互聯(lián)網(wǎng)云服務(wù)”為中心的內(nèi)容及服務(wù)系統(tǒng)逐步建立,為每位客戶建立個(gè)人賬戶系統(tǒng),提供語音交互、在線導(dǎo)航、新聞資訊、在線音樂電臺(tái)等典型互聯(lián)網(wǎng)特色的內(nèi)容;同時(shí),企業(yè)為完善自身的信息化建設(shè)和軟件管理能力,搭建OTA及信息安全管理平臺(tái)勢在必行。
本文的OTA功能設(shè)計(jì)已在實(shí)際項(xiàng)目中運(yùn)用,預(yù)計(jì)在2023年達(dá)到量產(chǎn)狀態(tài)。