李志濤
(長城汽車股份有限公司保定技術研發分公司,河北 保定 071000)
隨著汽車智能化、網聯化的不斷提升,汽車電控單元越來越多,汽車的軟件也變得越來越復雜。目前一輛豪華的車型上一般有60~80個電控單元,上億條代碼,龐大的代碼量會不可避免地增加缺陷發生概率,同時汽車行業新技術新功能的更新越來越快,車輛上市之后電器功能的優化,售后問題的及時維修,降低車輛召回風險及提升客戶滿意度等,已成為各主機廠重點關注與急需解決的問題。為解決以上相應問題,一種新的遠程刷寫技術——FOTA技術,在汽車行業得以迅速發展。本文基于FOTA工作實踐,對FOTA系統架構、測試流程、測試方法等進行了詳細闡述及介紹。
FOTA(Firmware Over The Air)移動終端的空中下載軟件升級,簡稱無線升級,是指通過云端升級技術,為聯網設備進行固件升級。汽車應用此云端升級技術,服務器端與車輛客戶端之間通過云端進行連接,實現車輛上相關電子控制單元軟件的遠程升級或提供軟件補丁,可以快速、有效地解決軟件故障,不需要去車輛4S店或者返廠,應用FOTA遠程升級既可解決90%以上的軟件故障,同時可快速導入新功能,優化人機界面,提升用戶體驗。
相對于傳統車輛,新能源、智能駕駛車輛的軟件持續迭代、優化已成為常態。特斯拉早在2013年已經使用FOTA技術進行遠程升級,大眾、通用、豐田等OEM廠商在傳統車輛領域也在積極推廣應用該項技術[1]。國內外主流OEM廠商在車型研發中均已規劃并快速匹配FOTA技術,來實現車輛遠程數據刷寫。
整車FOTA系統架構主要由服務器端、云端和車輛終端組成。云服務器端和車輛客戶端采用一對多的方式,云服務器端為部署在數據中心的私有云服務平臺,借助于公有云的CDN(內容分發技術)來實現位于不同區域的不同車輛同時更新[2]。FOTA系統架構示意如圖1所示。

圖1 系統架構示意圖
依據車輛終端升級需求,后臺管理人員配置升級任務,可進行差分升級、全量升級、固件升級、系統升級等多種類型的升級需求,如HUT、IP等軟件升級包較大的ECU,采用差分升級,GW后軟件升級包較小的ECU可采用全量升級。
服務器端主要實現升級車輛管理、軟件管理、升級日志目錄管理、升級實時監控和報告、軟件升級包生成等,后臺管理人員在服務器端部署固件和軟件更新任務。車輛終端需部署FOTA客戶端軟件,客戶端軟件需由相應的ECU制造商集成到ECU控制器中。客戶端軟件與服務器端通信,用于管理車輛端相關ECU的軟件更新、安裝或刪除等,執行待升級ECU升級管理任務。客戶端軟件可以安裝在任何ECU控制單元上,帶有客戶端的ECU控制單元為FOTA升級主控單元或管理單元,若客戶端軟件安裝在HUT中,則HUT為車輛終端的主控單元。對于支持FOTA差分升級的目標ECU,需集成升級代理軟件,用于支持差分包的還原、軟件包的更新,降低軟件升級包的數據傳輸時間,通常車輛終端的主控單元中集成客戶端軟件、升級代理軟件。
HUT作為主控單元,通過云端與后臺服務器端進行通信,完成軟件升級包數據的下載、存儲,然后主控單元與待升級ECU之間執行BT刷寫流程,完成對目標ECU的刷寫。
功能測試通過的軟件包,在FOTA測試服務器完成刷寫流程驗證,然后經正式服務器管理人員在服務器端部署ECU的軟件包,建立升級任務,通過主控單元客戶端與服務器端無線通信,匹配和下載目標升級文件,實現待升級目標ECU的軟件升級、安裝過程,主要升級流程見圖2。

圖2 升級流程
新版軟件本地刷寫至對應ECU控制器產品中,基于軟件變更點進行影響分析,識別電器功能測試范圍,確定測試需求,結合測試需求選擇對應的測試環境,如HIL、系統臺架、實車等,進行針對性的電器功能測試,驗證軟件更新后電器功能的正確性及完整性。
功能測試驗證通過后的軟件,依據版本管理規則定義版本序列號,軟件包上傳至測試服務器端,軟件包進行MD5加密,在測試服務器上生成差分包或全量包,對差分包或全量包進行數字簽名、加密,然后選擇測試車輛,建立升級任務,完成車輛端目標ECU的升級,確認FOTA升級的正確執行。
軟件升級包經測試服務器驗證可正確實現FOTA升級后,新版軟件包上傳至正式服務器端,軟件包進行MD5加密,在正式服務器端生成差分包或全量包,對差分包或全量包數字簽名、加密,選擇待升級的目標車輛,建立升級任務,定義軟件包信息,升級包版本管理、升級內容管理、升級操作日志等,向目標升級車輛推送軟件升級、更新請求。
在升級任務有效的時間內,每次車輛上電會與云端建立連接,云端對車輛內部所有支持FOTA升級的控制器軟件版本進行收集,服務器端獲取各相關ECU軟件版本后,與部署的軟件版本比對,若存在新版本,云端會將新版本軟件下載到車輛終端的主控單元HUT,顯示升級信息提示車輛用戶。
升級中的信息提示及互動是汽車FOTA中進行人機交互的核心,是獲取車主授權確認,啟動升級的重要環節[3]。用戶車輛收到服務器端推送的軟件更新任務后,在主控單元HUT屏幕上通過UI顯示升級提示,用戶對升級提示進行確認。
當服務器端收到用戶升級確認指令之后,車載通信終端通過云端與服務器端進行通信,服務器端通過云端進行FOTA升級包的推送,升級包數據傳輸校驗及下載至主控單元,車載客戶端判斷下載條件是否滿足,升級條件滿足后進行車機端ECU軟件升級,待車機端ECU更新完成后,主控單元收集各ECU升級日志信息,將日志信息上傳至服務器端記錄。
為提升FOTA升級效率與確保升級的正確性、可靠性,軟件升級包需最大限度地進行數據壓縮,以便于節省數據流量消耗,升級包下載過程中車輛端需保持電源正常提供,網絡連接正常,支持升級回滾機制、斷點續傳功能,確保升級包完整下載。同時,要在一個合適的時間、合適的地點以及合適的車輛狀態下進行車輛FOTA升級。
FOTA的應用既提升了效率,節省了時間成本,又為消費者帶來了便利,但是值得注意的是,FOTA的布局亦對車企提出了新的要求,例如安全防御體系以及相應的測試和驗證體系的構建等[4]。
FOTA測試驗證工作主要分為3個層級,零部件級測試、系統級測試、實車驗收測試。①零部件級測試進行主控單元ECU與各目標ECU之間的測試,測試主控單元ECU到目標刷寫ECU之間的正向刷寫流程;②系統級測試,基于系統臺架測試環境,主控單元ECU連接各目標刷寫ECU,進行正向FOTA刷寫流程測試,包含安全、推送、CDN等集成交互測試內容;③實車驗收測試,主要在實車環境下,基于客戶需求規范,車輛用戶角度,開展驗收確認測試。
開展FOTA各層級的測試驗證工作,需選擇相應的測試工具,構建測試環境,達成測試條件,執行測試操作。基于FOTA測試需求,進行人工測試,測試工具主要包含基礎測試工具、仿真模擬工具、網絡連接工具、數據采集記錄工具等,相應FOTA測試工具需求及作用見表1。
基于以上相關測試工具,測試人員在測試過程中需進行正向流程刷寫測試、故障注入測試,場景模擬測試、異常操作測試、用戶模擬測試等。FOTA各層級測試,需要測試人員密切參與,熟練掌握各測試工具應用技能,測試工作還處在一個手動測試的階段,測試效率低,需結合測試需求及測試工具資源,開發自動化測試系統,持續提升測試效率。
V模型在OEM電子電器產品開發中廣泛應用,依據此模型OEM在電子電器功能測試流程中,需經過部件測試、系統集成測試、實車測試[5]。借鑒功能測試流程,FOTA測試基于產品開發流程需開展零部件級測試、系統級測試、實車驗收測試。①零部件級測試,進行主控ECU與目標升級ECU之間測試,如HUT&T_BOX、HUT&IP、HUT&GW、HUT及GW后ECU;②系統級測試,依據系統架構搭建測試臺架,進行主控ECU與多ECU組合測試,如HUT&T_BOX&IP、HUT&T_BOX&IP&GW、HUT&T_BOX&IP&GW&GW后ECU等;③實車驗收測試,基于實車環境,模擬用戶進行主控ECU與單個或多個ECU的組合測試。

表1 測試工具
零部件級測試與系統級測試需覆蓋正向測試,如正常升級測試;非正向測試 (加入異常場景的測試),如驗簽測試、升級錯誤安裝包、安裝過程中掉電等;壓力測試;USB升級測試等。實車驗收測試,基于實車測試環境,進行ECU軟硬件版本信息獲取,多ECU組合升級測試,車輛端所有支持FOTA刷寫ECU的同時升級測試,升級更新條件檢查,升級過程中安裝條件檢查,升級過程中整車電源異常測試等。測試涉及的主要功能點見表2。
零部件級測試是測試的關鍵,同時也是系統級測試開展的前提,系統級測試便于異常操作及故障注入的測試,實車驗收測試是對系統測試的補充與用戶應用內容的確認,測試內容更接近用戶的實際操作。FOTA功能點的測試驗證,需依據測試策略,結合測試目標,在各層級合理分配、互相補充,確保測試的充分性及測試覆蓋度。
測試人員在測試服務器端建立任務,獲取待升級車輛相關ECU的軟硬件信息,驗證可通過服務器端任務創建,正確獲取待升級車輛ECU的軟硬件版本信息,相關測試要求及執行如下。

表2 功能點
主控單元 (HUT)已連接網絡,測試服務器正常運行,待升級車輛已在服務器端成功注冊;測試人員已知車輛端待升級相關ECU的軟硬件版本信息;測試人員在測試服務器端建立任務,任務內容為獲取目標車型ECU軟硬件版本信息,設置升級類型為常規升級,非服務器啟動,無任務重試次數限制。
1)服務器端創建待升級車輛ECU軟硬件版本信息獲取任務。
2)在主控單元 (HUT)界面,點擊“檢查更新”按鈕。
3)等待主控單元檢查完畢,查看主控單元界面顯示。
4)在服務器端的車輛信息列表頁查看測試車輛ECU的軟硬件版本信息。
1)在服務器頁面的任務列表頁查看新增了一個任務。
2)HUT界面顯示檢查更新窗口。
3)檢查完畢,HUT界面顯示整車各系統軟件均為最新版本。
4)在服務器端車輛信息列表頁,正常顯示車輛端待升級相關ECU的軟硬件版本信息,如圖3所示。查看服務器車輛信息列表頁中獲取的各ECU軟硬件版本信息與已知的各ECU軟硬件版本信息,確認是否一致,若信息一致則測試通過,不一致則測試失敗。

圖3 車輛信息列表
萬物互聯正在以驚人的速度在全球滲透,汽車正在被具有顛覆性的信息化技術所顛覆,FOTA技術在汽車上的應用,使得汽車實現了前所未有的變革,這將帶給用戶對汽車前所未有的驚喜和體驗,為主機廠創造巨大的經濟效益,同時會進一步促進汽車電動化、網聯化、智能化、共享化的發展。本文旨在結合實踐工作對FOTA功能測試的研究分析,闡述了FOTA系統基本架構、主要升級流程,測試驗證等內容,期望能夠對相關測試人員具有一定的指導意義。