范玲玲 柳旭 張建平 徐晉吉 劉闖 沙偉華
(中國(guó)第一汽車股份有限公司研發(fā)總院,長(zhǎng)春 130013)
車聯(lián)網(wǎng)技術(shù)、高級(jí)自動(dòng)駕駛技術(shù)發(fā)展迅速,對(duì)汽車軟件快速升級(jí)的能力提出了要求。當(dāng)前,汽車軟件升級(jí)方法主要包括線下診斷儀升級(jí)和空中激活(Over The Air,OTA)升級(jí)[1-3]。
王棟梁等[4]提出一種安全、方便、可靠的整車OTA 解決方案,建立云服務(wù)器端與車輛客戶端之間的數(shù)據(jù)通路,使用差分算法、回滾重刷機(jī)制等關(guān)鍵技術(shù),實(shí)現(xiàn)整車Ethernet/CAN/LIN 混合電子電氣架構(gòu)的所有節(jié)點(diǎn)電子控制單元(Electronic Control Unit,ECU)的升級(jí)更新。劉志軍等[5]構(gòu)建了整車網(wǎng)聯(lián)系統(tǒng)架構(gòu),并設(shè)計(jì)了一種基于OTA 技術(shù)的ECU 遠(yuǎn)程刷寫(xiě)協(xié)議,利用移動(dòng)通信網(wǎng)絡(luò)基于OTA 更新ECU軟件。高天宇[6]提出了一種基于差分方法的遠(yuǎn)程數(shù)據(jù)刷寫(xiě)系統(tǒng),實(shí)現(xiàn)了汽車ECU 軟件迭代升級(jí)和相關(guān)數(shù)據(jù)的更新刷寫(xiě)。
上述文獻(xiàn)研究的整車OTA 升級(jí)技術(shù)主要分為2個(gè)階段:OTA 云端發(fā)布升級(jí)任務(wù),車端接入獲取升級(jí)任務(wù);經(jīng)用戶確認(rèn)升級(jí)或者有效期內(nèi)未升級(jí),任務(wù)結(jié)束。只要云端任務(wù)下發(fā)到車端,車端就具備了軟件刷寫(xiě)的主動(dòng)權(quán),如用戶不及時(shí)確認(rèn)升級(jí),任務(wù)就無(wú)法完成,且無(wú)線網(wǎng)絡(luò)連接無(wú)法保證車輛實(shí)時(shí)在線,車端任務(wù)也無(wú)法及時(shí)被云端終止。
綜上,現(xiàn)有OTA 升級(jí)技術(shù)更適用于售后階段,同時(shí),用戶頻繁使用車輛更有助于車端長(zhǎng)時(shí)間接入OTA 云端,并確認(rèn)完成軟件升級(jí)。售前階段主要包括試制、生產(chǎn)、儲(chǔ)存、運(yùn)輸?shù)?,車輛主要處于靜止?fàn)顟B(tài),接入云端的次數(shù)非常有限,單純依靠現(xiàn)有OTA的升級(jí)模式無(wú)法滿足軟件快速迭代的需求,也就無(wú)法保證車輛售出時(shí)的軟件版本一致性。
因此,本文提出一種基于OTA 的智能汽車近場(chǎng)軟件升級(jí)技術(shù),主要由近場(chǎng)設(shè)備主控車端完成軟件升級(jí),近場(chǎng)設(shè)備可方便地從OTA 云端獲取某一車型的ECU 軟件信息,控制單輛車完成任意ECU軟件升級(jí),或者控制批量車完成某一整車基線版本升級(jí)。
基于OTA 的智能汽車近場(chǎng)軟件升級(jí)技術(shù)復(fù)用OTA 系統(tǒng)已有的云端升級(jí)包管理功能、ECU 軟件刷寫(xiě)功能。由近場(chǎng)升級(jí)設(shè)備從OTA 云端獲取車型ECU 的升級(jí)包及基線,控制車端依次完成ECU 的軟件更新,車端被動(dòng)執(zhí)行,其升級(jí)方式包括近場(chǎng)客戶端完成單輛車升級(jí)和近場(chǎng)服務(wù)器完成批量車升級(jí)。
其中:近場(chǎng)客戶端可通過(guò)有線連接或局域網(wǎng)無(wú)線連接的方式接入車輛,并控制車端依次完成整車ECU 的軟件升級(jí);近場(chǎng)服務(wù)器可通過(guò)局域網(wǎng)連接的方式與車端建立連接,由車端主動(dòng)發(fā)起接入請(qǐng)求,近場(chǎng)服務(wù)器依據(jù)車型基線控制車端依次完成整車ECU 的軟件升級(jí)[4-5]。近場(chǎng)服務(wù)器主要包括工廠服務(wù)器,近場(chǎng)客戶端主要包括計(jì)算機(jī)客戶端、手機(jī)APP 和USB 設(shè)備。近場(chǎng)軟件升級(jí)框架如圖1 所示。
圖1 近場(chǎng)軟件升級(jí)框架
因此,近場(chǎng)軟件升級(jí)技術(shù)相比現(xiàn)有的診斷儀刷寫(xiě),不僅在功能上更加全面,更能配合OTA 系統(tǒng)實(shí)現(xiàn)智能汽車整車軟件版本一致性的管理需求,同時(shí)節(jié)省了額外開(kāi)發(fā)ECU 刷寫(xiě)上位機(jī)的成本,在使用上更加靈活。
近場(chǎng)客戶端采用主動(dòng)升級(jí)方式,由客戶端主動(dòng)發(fā)起車輛接入、軟件升級(jí)請(qǐng)求,升級(jí)模式分為單ECU 升級(jí)和批量多ECU 升級(jí)。近場(chǎng)客戶端部署的載體可以是便攜式計(jì)算機(jī)、手機(jī)或者車機(jī),可靈活應(yīng)對(duì)操作人員現(xiàn)場(chǎng)對(duì)單輛車進(jìn)行整車ECU 軟件升級(jí)需求。當(dāng)客戶端部署在車機(jī)上時(shí),通過(guò)接入U(xiǎn)SB設(shè)備獲取ECU升級(jí)包。
近場(chǎng)客戶端為桌面式軟件,具備可視化用戶界面(User Interface,UI),主要功能包括車型管理、軟件升級(jí)、系統(tǒng)管理及安全管理,如圖2所示。
圖2 近場(chǎng)客戶端功能
車型管理功能主要完成車型與ECU 的綁定關(guān)系,可通過(guò)手動(dòng)錄入或云端同步的方式更新,操作人員可依據(jù)待升級(jí)車輛進(jìn)行相應(yīng)的車型切換選擇。
軟件升級(jí)功能主要完成與車端的接入及數(shù)據(jù)交互,顯示車輛上報(bào)的車輛基本信息及各ECU 版本信息,操作人員依據(jù)車輛信息選擇升級(jí)包,開(kāi)始升級(jí)并實(shí)時(shí)顯示升級(jí)狀態(tài),選擇的升級(jí)包可以是單包或多包,從而執(zhí)行單ECU升級(jí)或批量多ECU升級(jí)。
安全管理功能主要完成近場(chǎng)客戶端與OTA 云端、車端的安全通信管理,包括登錄的雙向認(rèn)證、客戶端的賬號(hào)安全管理、數(shù)據(jù)傳輸?shù)陌踩芾怼?/p>
系統(tǒng)管理功能主要完成近場(chǎng)客戶端的相關(guān)連接設(shè)置,包括OTA 云端訪問(wèn)地址、車端連接地址、本地存儲(chǔ)路徑的管理[7-9]。
近場(chǎng)客戶端軟件升級(jí)流程主要包括:
a.車型同步及升級(jí)包下載。近場(chǎng)客戶端首先連接OTA 云端同步所有車型及ECU,操作人員選擇即將應(yīng)用的車型后,近場(chǎng)客戶端向OTA 云端獲取該車型對(duì)應(yīng)ECU 的升級(jí)包列表,操作人員可根據(jù)需要下載相應(yīng)升級(jí)包,近場(chǎng)客戶端可詳細(xì)顯示升級(jí)包下載進(jìn)度,并將已下載的升級(jí)包名稱加入本地升級(jí)包列表[10]。
b. 連接車輛及身份認(rèn)證。近場(chǎng)客戶端通過(guò)有線或者無(wú)線局域網(wǎng)的方式連接車輛后,向車端發(fā)起登錄請(qǐng)求并上傳證書(shū)等身份信息,車端對(duì)近場(chǎng)客戶端完成身份認(rèn)證后,上報(bào)車端基本信息于近場(chǎng)客戶端顯示。
c. ECU 軟件同步更新。操作人員依據(jù)近場(chǎng)客戶端上的車輛顯示信息可批量選擇需升級(jí)的ECU及對(duì)應(yīng)的升級(jí)包,開(kāi)始逐一更新ECU 軟件,近場(chǎng)客戶端可顯示詳細(xì)升級(jí)進(jìn)度。
d. 升級(jí)結(jié)束及斷開(kāi)連接。所有ECU 升級(jí)完成后,近場(chǎng)客戶端顯示車端最新?tīng)顟B(tài),操作人員依據(jù)車輛信息分析該車輛是否已完成軟件升級(jí),并斷開(kāi)連接[11-12]。
近場(chǎng)服務(wù)器采用車輛主動(dòng)接入、服務(wù)器主動(dòng)升級(jí)方式,由車輛主動(dòng)發(fā)起接入服務(wù)器,服務(wù)器依據(jù)車輛信息下發(fā)升級(jí)指令,升級(jí)模式為整車版本升級(jí)。近場(chǎng)服務(wù)器可部署在服務(wù)器集群中,通過(guò)局域網(wǎng)網(wǎng)頁(yè)訪問(wèn),處于同一局域網(wǎng)中的車輛可接入近場(chǎng)服務(wù)器,完成整車控制器版本升級(jí)。近場(chǎng)服務(wù)器適用于對(duì)批量車輛進(jìn)行軟件版本拉齊,如工廠階段下線車輛軟件灌裝、運(yùn)輸階段批量車輛軟件升級(jí)等場(chǎng)景[13]。
近場(chǎng)服務(wù)器以微服務(wù)器加網(wǎng)頁(yè)訪問(wèn)的方式實(shí)現(xiàn),可實(shí)現(xiàn)車輛信息收集,主要包括車型管理、車輛管理、軟件升級(jí)、車輛接入、系統(tǒng)管理及安全管理功能,如圖3所示。
圖3 近場(chǎng)服務(wù)器功能
車型管理主要完成車型、配置、ECU 及基線的管理,可通過(guò)手動(dòng)錄入、批量導(dǎo)入或云端同步的方式更新。
車輛管理功能主要完成接入車輛的狀態(tài)管理,包括車輛識(shí)別碼(Vehicle Identification Number,VIN)、車型、配置、整車軟件版本、ECU 版本信息、連接狀態(tài)、升級(jí)狀態(tài)的管理。車輛首次接入近場(chǎng)服務(wù)器后,車輛管理模塊登記該車輛的基本信息,后續(xù)每次接入均會(huì)記錄接入狀態(tài)及升級(jí)狀態(tài)。
軟件升級(jí)功能主要實(shí)現(xiàn)升級(jí)任務(wù)的創(chuàng)建、任務(wù)狀態(tài)查詢、任務(wù)終止功能。服務(wù)器端為某一個(gè)車型配置建立升級(jí)任務(wù)后,該車型配置的車輛接入后將執(zhí)行一次軟件升級(jí)任務(wù)。
安全管理功能主要完成近場(chǎng)服務(wù)器與OTA 云端、車端的安全通信、服務(wù)器賬號(hào)管理,包括車輛接入的雙向認(rèn)證、服務(wù)器端的賬號(hào)安全管理、數(shù)據(jù)傳輸?shù)陌踩芾怼?/p>
系統(tǒng)管理功能主要完成用戶管理、日志管理、導(dǎo)入導(dǎo)出日志管理、同步日志管理。該功能支持新增用戶、修改用戶、刪除用戶、重置密碼、查詢操作日志、導(dǎo)出操作日志、查詢導(dǎo)入導(dǎo)出日志、下載導(dǎo)入導(dǎo)出文件、查詢同步日志、導(dǎo)出同步日志、查看同步日志。
近場(chǎng)服務(wù)器端升級(jí)流程為:
a.車型、基線及升級(jí)包同步。近場(chǎng)服務(wù)器首先連接OTA 云端同步所有車型及ECU,操作人員可手動(dòng)同步某車型對(duì)應(yīng)的所有基線及升級(jí)包,也可手動(dòng)新建或者導(dǎo)入某個(gè)基線。
b. 車輛接入及身份認(rèn)證。車端開(kāi)啟近場(chǎng)升級(jí)服務(wù)后,會(huì)周期性地嘗試請(qǐng)求接入近場(chǎng)服務(wù)器,近場(chǎng)服務(wù)器收到車輛接入請(qǐng)求后進(jìn)行身份認(rèn)證,認(rèn)證通過(guò)后上報(bào)車輛基本信息,近場(chǎng)服務(wù)器記錄保存。
c. ECU 軟件同步更新。近場(chǎng)服務(wù)器依據(jù)車輛上報(bào)信息查看該車型配置是否有升級(jí)任務(wù),若有則下發(fā)需要更新的ECU 軟件包,完成該車輛的基線拉齊操作,近場(chǎng)服務(wù)器可顯示詳細(xì)升級(jí)進(jìn)度。
d. 升級(jí)結(jié)束及斷開(kāi)連接。車端完成下發(fā)ECU軟件更新后上報(bào)車輛最新?tīng)顟B(tài),近場(chǎng)服務(wù)器依據(jù)狀態(tài)信息判斷車輛軟件是否為最新基線狀態(tài)并顯示,之后斷開(kāi)連接[14-15]。
近場(chǎng)客戶端采用與單一車輛進(jìn)行點(diǎn)對(duì)點(diǎn)連接方式,人為觸發(fā)每一次軟件升級(jí),因此同一時(shí)刻只能有一輛車連接近場(chǎng)客戶端進(jìn)行升級(jí),升級(jí)完成后近場(chǎng)客戶端也無(wú)需記錄車輛的狀態(tài),故只需要在軟件升級(jí)功能模塊中實(shí)時(shí)完成接入車輛的信息顯示、軟件升級(jí)執(zhí)行等。
而近場(chǎng)服務(wù)器采用車輛主動(dòng)接入方式,可接受批量車輛同時(shí)接入,無(wú)需人為觸發(fā),服務(wù)器建立升級(jí)任務(wù)后,車輛接入即可自動(dòng)觸發(fā)軟件升級(jí),因此服務(wù)器的車輛管理功能需要記錄每一輛接入車輛的升級(jí)信息。
近場(chǎng)客戶端與近場(chǎng)服務(wù)器的功能異同如表1所示。
表1 近場(chǎng)客戶端與近場(chǎng)服務(wù)器功能異同
近場(chǎng)升級(jí)工具形式多樣,包括便攜式計(jì)算機(jī)、手機(jī)、車機(jī)、工廠服務(wù)器,但實(shí)現(xiàn)的功能基本一致,且近場(chǎng)客戶端、近場(chǎng)服務(wù)器與車輛的連接方式有所區(qū)別,因此需要設(shè)計(jì)實(shí)現(xiàn)既能兼容不同載體平臺(tái),又能滿足不同車輛連接方式的近場(chǎng)升級(jí)技術(shù)。近場(chǎng)工具采用QT 框架開(kāi)發(fā),車端通信采用基于傳輸層安全協(xié)議(Transport Layer Security,TLS)通道的消息隊(duì)列遙測(cè)傳輸(Message Queuing Telemetry Transport,MQTT)協(xié)議[16]。MQTT 是一個(gè)基于客戶端-服務(wù)器的消息發(fā)布/訂閱傳輸協(xié)議,該協(xié)議輕量、簡(jiǎn)單、開(kāi)放且易于實(shí)現(xiàn)。
車端部署MQTT Broker,用于管理近場(chǎng)工具與車端通信的MQTT 消息。MQTT 消息格式如圖4 所示,依據(jù)主題(TOPIC)類型分為控制類(CTRL)、狀態(tài)類(REPORT)、文件傳輸類(XFER)、控制響應(yīng)(CTRL/REPLY)、狀態(tài)響應(yīng)(REPORT/REPLY)。其中車端管理模塊訂閱CTRL和XFER消息,近場(chǎng)工具訂閱REPORT、CTRL/REPLY 和REPORT/REPLY 消息。
圖4 MQTT協(xié)議格式
對(duì)于近場(chǎng)服務(wù)器,由車端主動(dòng)訪問(wèn)服務(wù)器后,再由服務(wù)器主動(dòng)發(fā)起升級(jí),所以近場(chǎng)服務(wù)器中同時(shí)部署MQTT Broker,用于監(jiān)管車輛的登錄服務(wù)請(qǐng)求。
近場(chǎng)升級(jí)工具與OTA 云端通信方式統(tǒng)一采用RESTful API 方式。實(shí)現(xiàn)的接口主要有:查詢ECU軟件信息、查詢指定車型下的ECU 列表、查詢指定車型下的軟件版本列表、查詢指定車型整車版本列表、指定ECU軟件升級(jí)包的下載[17-18]。
近場(chǎng)工具依據(jù)功能邏輯及多平臺(tái)設(shè)計(jì)要求,分為核心功能、數(shù)據(jù)業(yè)務(wù)、功能組件及基礎(chǔ)組件,如圖5 所示。近場(chǎng)工具軟件設(shè)計(jì)盡量模塊化,以實(shí)現(xiàn)不同平臺(tái)最大程度共用軟件模塊,只在界面設(shè)計(jì)及響應(yīng)邏輯上區(qū)別開(kāi)發(fā)。
圖5 近場(chǎng)升級(jí)工具軟件架構(gòu)
將智能汽車每個(gè)ECU的軟件狀態(tài)進(jìn)行標(biāo)記,所有ECU的軟件標(biāo)識(shí)組成一個(gè)基線標(biāo)識(shí),一個(gè)基線標(biāo)識(shí)包含唯一一組ECU軟件標(biāo)識(shí),如圖6所示。通過(guò)基線標(biāo)識(shí)可以很好地管理整車ECU軟件,智能汽車每一次的功能升級(jí)都對(duì)應(yīng)唯一的基線標(biāo)識(shí),按照基線標(biāo)識(shí)更新迭代可以實(shí)現(xiàn)整車ECU軟件版本的有序管理,防止各ECU軟件版本不兼容帶來(lái)的功能異常問(wèn)題。
圖6 整車基線管理
近場(chǎng)升級(jí)服務(wù)器需要對(duì)每個(gè)車型配置的所有整車基線進(jìn)行管理,包括自定義基線和同步基線,自定義基線標(biāo)識(shí)和同步基線標(biāo)識(shí)應(yīng)唯一。
自定義基線可通過(guò)手動(dòng)建立,建立時(shí)選定各ECU 對(duì)應(yīng)軟件標(biāo)識(shí):如果當(dāng)前系統(tǒng)中已存在該基線標(biāo)識(shí)且為自定義基線則更新已存在基線;如果當(dāng)前系統(tǒng)中已存在該基線標(biāo)識(shí)且為同步基線,則新建自定義基線無(wú)效。
同步基線可通過(guò)操作人員手動(dòng)執(zhí)行實(shí)現(xiàn)。同步基線后如果當(dāng)前系統(tǒng)中已存在該基線標(biāo)識(shí)且為自定義基線,則以新同步基線為準(zhǔn)更新自定義基線;如果存在該基線標(biāo)識(shí)且為同步基線,則更新同步基線。
升級(jí)任務(wù)已綁定的基線,無(wú)論是自定義基線或同步基線,同步時(shí)均需要顯示警告,由操作人員決定是否停止或更新升級(jí)任務(wù)。
針對(duì)上述方案搭建臺(tái)架驗(yàn)證環(huán)境,原理如圖7所示。車載通信終端(Telematics-BOX,T-BOX)、中央網(wǎng)關(guān)(Central Gateway,CGW)、車載診斷系統(tǒng)(On-Board Diagnostics,OBD)組成車端環(huán)境,其中OTA 車端軟件集成在CGW 中。便攜式計(jì)算機(jī)通過(guò)有線方式連接到OBD 上,可通過(guò)OBD 直接與CGW建立安全通道。手機(jī)連接T-BOX 熱點(diǎn)后,可與CGW 建立安全通道。工廠服務(wù)器通過(guò)有線方式與路由器連接,路由器提供局域網(wǎng)WiFi,車端T-BOX可直接連接WiFi 與工廠建立安全通道,同時(shí)計(jì)算機(jī)端可以通過(guò)局域網(wǎng)訪問(wèn)工廠服務(wù)器進(jìn)行近場(chǎng)軟件升級(jí)管理。
通過(guò)上述驗(yàn)證環(huán)境可對(duì)近場(chǎng)升級(jí)客戶端進(jìn)行功能驗(yàn)證,部分測(cè)試項(xiàng)如表2 所示。對(duì)近場(chǎng)升級(jí)服務(wù)器進(jìn)行功能驗(yàn)證,部分測(cè)試項(xiàng)如表3所示。
表2 近場(chǎng)升級(jí)客戶端功能測(cè)試項(xiàng)
表3 近場(chǎng)升級(jí)服務(wù)器功能測(cè)試項(xiàng)
對(duì)近場(chǎng)升級(jí)工具分別進(jìn)行功能測(cè)試,測(cè)試結(jié)果均滿足功能設(shè)計(jì)要求。
將車輛軟件升級(jí)時(shí)間劃分為車輛接入及任務(wù)下發(fā)時(shí)間、升級(jí)包下載時(shí)間、升級(jí)包傳輸時(shí)間、用戶確認(rèn)時(shí)間及軟件升級(jí)時(shí)間,以全景影像功能為例,升級(jí)包大小408.61 MB,升級(jí)所需時(shí)間如表4 所示,近場(chǎng)服務(wù)器升級(jí)時(shí)間較OTA 升級(jí)時(shí)間縮短一半以上,且無(wú)需人員在車機(jī)上進(jìn)行操作。
表4 OTA與近場(chǎng)服務(wù)器升級(jí)全景影像功能時(shí)間 s
針對(duì)當(dāng)前智能汽車軟件更新迭代快,導(dǎo)致售前車輛的軟件版本難以統(tǒng)一的問(wèn)題,本文設(shè)計(jì)了一種近場(chǎng)軟件升級(jí)方法。
該方法基于現(xiàn)有OTA 車云系統(tǒng),使用便攜式計(jì)算機(jī)、手機(jī)或USB 設(shè)備進(jìn)行單輛車軟件快速升級(jí),使用工廠服務(wù)器通過(guò)局域網(wǎng)進(jìn)行批量車整車軟件基線版本快速拉齊。臺(tái)架試驗(yàn)結(jié)果表明,該升級(jí)方法所需升級(jí)時(shí)間較OTA 系統(tǒng)升級(jí)時(shí)間縮短一半以上,可有效提升軟件升級(jí)效率。該方法的應(yīng)用場(chǎng)景可有效補(bǔ)充OTA 系統(tǒng)升級(jí)場(chǎng)景,應(yīng)用于智能汽車試制階段、工廠階段、運(yùn)輸階段的軟件版本快速更新。未來(lái),可協(xié)同OTA 云平臺(tái)完成車輛整車軟件版本實(shí)時(shí)、同步管理,實(shí)現(xiàn)車輛全生命周期軟件可控。