杜貴鋒,李 銳,陳姿霖,陳 佩,趙 杰
(陜西重型汽車有限公司汽車工程研究院,陜西 西安 710200)
隨著汽車電子技術的迅速發展,電子控制單元在整車中得到越來越多的應用,功能也變得越來越復雜,特別是新能源、ADAS/AD技術的迅猛發展,傳統的程序更新方法已經不能滿足開發、生產及售后服務要求,一種新的遠程刷寫技術——FOTA正迅速在汽車行業擴展。
FOTA:Firmware Over-The-Air,即固件空中下載技術。汽車FOTA技術,就是云端通過車載終端對整車電控系統中的控制器進行遠程程序更新[1]。
汽車FOAT的主要功能有:ECU程序更新、ECU標定參數更新、ECU配置更新、控制算法更新、安全措施升級及軟件漏洞補丁等。借助于FOTA技術,OEM廠商可以通過公司的售后數據平臺以及車輛上裝載的車載終端,對ECU缺陷進行修復,從而避免對問題車輛召回,或升級標定數據優化整車性能等方式。這種方式可以大幅降低售后維護或召回成本和時間,讓OEM廠商和用戶共同從中受益。
相對于傳統車輛,新能源、ADASAD車輛的持續優化迭代已成為技術常態,特斯拉早在2013年已經使用FOTA技術進行遠程升級。大眾、通用、豐田等OEM廠商在傳統車輛領域也在積極推廣應用該項技術。
汽車FOTA的實施主要包括如下3個步驟,流程如圖1所示。

圖1 汽車FOTA流程
1)云端到車載終端FOTA數據傳輸
在云端啟動程序更新,車載終端與云端經過安全認證后,使用加密技術、斷點續傳等無線傳輸技術傳輸升級相關的數據。數據傳輸完成后進行完整性、正確性校驗無誤后,車載終端向云端反饋數據成功接收,云端將車輛數據信息狀態更新為軟件已下發完成等待更新的狀態。
2)獲取FOTA更新授權
車載終端在收到完整、正確的軟件包后,在多媒體或儀表等人機交互界面上向駕駛員發出提示信息“請求實施FOAT”,獲取到駕駛員的升級許可后,車載終端啟動程序升級并向云端報告該信息。
3)整車執行FOTA更新
車載終端實時控制BT刷寫流程并記錄升級過程,升級完成后通知云端后臺,并通過多媒體或儀表等人機界面告知駕駛員已完成車輛升級,駕駛員可以自由操作車輛。
安全性 (Security)和可靠性是汽車FOTA實施的難點。安全性 (Security)主要涉及車載終端和云端之間的信息交互;可靠性則更多的與整車網絡的診斷及BT系統相關[1]。
基于FOTA技術的優勢,商用車OEM廠商對FOTA技術的研究應用也在積極開展中,相較于乘用車,商用車FOTA更具有挑戰性,商用車的車型產量與乘用車不在同一量級,實現定制化難度較大,特別是動力底盤相關的控制器,大多由國外供應商提供通用件,難以按OEM廠商的診斷規范和BT規范進行。
結合商用車FOTA的開發應用實踐,本文重點對車載終端的FOTA過程行為、中央網關的FOTA行為、BT刷寫等方面的設計要求進行探討。
FOTA的實現在車端主要是通過BT流程來完成,而BT建立在UDS診斷協議之上,故整車電控系統中所有電子控制單元需要支持UDS診斷。
UDS(全稱:Unified Diagnostic Services),即統一診斷服務,是診斷服務的規范化標準,它是一個應用層協議(ISO 14229-1),既可以在CAN線上實現,也可以在Ethernet上實現 (DoIP,Diagnostic over Internet protocol)。UDS為診斷服務提供一個基本框架,通常OEM廠商根據實際情況會選擇實現其中的一部分或是自定義一部分私有化的診斷服務,所以基于UDS協議的診斷又被稱為Enhanced diagnostic(增強型診斷)[2]。
BT是Bootloader的簡稱,基于CAN通信的電子控制單元BT,能夠通過CAN網絡快速實現對電控單元應用軟件、標定數據的更新,BT刷寫流程主要包括3個部分:預刷寫、主刷寫、刷寫后處理,如圖2所示,刷寫流程中每一步驟均由相應的診斷服務實現。
1)預刷寫主要步驟如下:通過85診斷服務,中止各控制器的故障記錄;通過28診斷服務,控制所有控制單元在刷寫期間不進行非診斷相關的總線通信,以降低負載率,保證控制單元BT刷寫的正常進行。
2)主刷寫程序是整個刷寫流程的主體,將原有的應用程序或標定數據擦除,寫入新的應用程序或標定數據。
3)刷寫后處理在刷寫程序完成后,需對電子控制單元進行復位操作,使新程序被激活生效,恢復車輛所有電子控制單元正常通信及診斷故障碼的記錄[3]。

圖2 BT刷寫流程
從云端下載數據完成后,FOTA實現就成為整車電控系統內部行為,實踐應用中發現以下幾項工作對FOTA的順利完成起著非常關鍵的作用。
BT流程一般針對車型平臺定義,為了滿足動力、底盤、車身等不同子系統的要求,在兼顧安全和效率的基礎上,定義了標準步驟與可選步驟,FOTA中需對平臺車型中各個控制器的BT流程進行兼容性處理,一般可以采用以下兩種方式。
1)控制器識別:車載終端內部已存儲了各個控制器的BT流程,識別到該控制器的特征信息時,直接調用該控制器的BT流程。這種方式指向明確,流程確定,缺點是通用性、擴展性較差。
2)流程識別:車載終端按統一BT流程實現,順序執行BT流程中的所有標準步驟及可選步驟。根據被刷寫控制器對可選步驟的反饋確定被刷寫控制器中是否有可選步驟。該方式通用性強,易于擴展性,缺點是整車網絡中所有的控制器需要按照規范要求對可選步驟做出嚴格的正確響應。
在整個BT過程中,確保整車網絡總線上的所有控制器均維持在總線靜默狀態中,這就要求車載終端嚴格遵循在S3client時間間隔內周期性廣播3E命令。如果在S3client的時間內,車載網絡終端沒有發送3E命令,那么會出現下面情況。
1)網絡總線上的所有控制器將自動跳轉回默認會話模式,控制器恢復正常工作狀態,從而使得總線上出現應用報文,為BT下載所創造的良好環境將不復存在。
2)網關也自動跳轉回默認會話,網關開始發送自身的周期性報文并啟動報文及信號路由的正常工作,引發數據丟幀或數據次序顛倒從而導致BT下載失敗。
設計中應盡可能追求BT數據流的最大流量,以提高FOTA效率。理論上,總線靜默無任何應用報文時有利于獲得高的刷寫效率;但在實際中,有的控制器根本就不具有診斷功能,或由于診斷協議的不同,無法滿足總線靜默要求,應用報文的存在占用部分總線負載,導致FOTA時BT數據占用有效的總線負載降低。
FOTA流程中,當中央網關接收到總線靜默命令后,需要執行如下工作:停止自身的外發報文;停止所有應用報文及信號的路由;識別并路由來自診斷網段的診斷信息(BT命令,BT數據)。
中央網關的極限路由能力,是指網關在網絡總線高負載情況下進行報文路由的能力,是影響BT刷寫可靠性和效率的重要因素,也是車載終端進行BT刷寫流量控制的主要依據,如果BT執行過程中總線負載超出網關的極限路由能力,往往會導致BT刷寫過程異常中斷。
汽車FOTA是一項新技術,是一個復雜的系統工程,就FOTA可靠性方面,在合理設計整車E-E架構、診斷系統和BT系統基礎上,對電控單元診斷協議、診斷功能測試,特別是對控制器BT流程符合性、網關極限轉發能力以及車載終端對BT流程控制能力的測試驗證工作,是非常重要的。