一文了解 OTA 升級功能
當今這個年代,大家對於汽車上的 OTA 升級功能都不再陌生,因爲大多數車都支持這一功能,一年當中總會碰到一兩次 OTA 免費升級的推送信息。
source:http://it.cha138.com/android/show-77091.html
既然 OTA 功能已經這麼普遍,那麼本文就來詳細瞭解 OTA 是什麼?OTA 有什麼用?等等問題。
1 什麼是 OTA
隨着智能網聯和智能駕駛的快速發展,汽車控制越來越豐富,也越來越智能,這背後增加了更多的控制器,這意味着這汽車增加了更多的軟件程序。軟件越多通常出現錯誤或者故障的概率就越大,此時如果按照傳統方式來解決軟件問題,即車輛更新軟件都需要到 4S 店物理連接方式進行,那將解決成本將很大,同時也極大降低用戶的滿意度。假設某款車量產後出現大批量充電軟件問題,以傳統解決方式將召回所有已上市該款車輛,然後主機廠人工去更新軟件。很明顯,傳統方式既影響用戶體驗和滿意度,又會耗費大量的人力物力。
Source:OTA Software Update Technology for Vehicles
那有沒有更好的方式,那麼 OTA 就被引入到汽車行業。OTA(Over-the-Air) 是指通過移動通信網絡對汽車控制器軟件進行遠程管理,其實現分三步:先將更新軟件上傳 OTA 中心,再 OTA 中心通過無線傳輸將更新軟件發送到車輛端,最後車輛端進行相應的軟件更新。
Source:OTA Software Update Technology for Vehicles
那這樣的話,上述的充電軟件問題就不需要召回,只需要將更新軟件無線傳輸到車輛端,提醒用戶及時升級,因此不難發現 OTA 有很多優勢,包括:
-
能有效提升用戶體驗和滿意度
-
能大範圍大批量升級軟件,快速修復車輛故障
-
能有效降低售後的維護成本
另外,在這個軟件定義汽車的時代,軟件服務也是主機廠重要的營收方式,比如智能駕駛功能服務的售賣,這種方式也 OTA 有很大的需求。
OTA 可分爲兩類:
-
一類是固件在線升級 FOTA(Firmware-Over-the-Air),是指不改變車輛原有配件的前提下,通過寫入新的固件程序,使擁有聯網功能的設備進行升級,包括車輛的發動機,電機,變速箱,底盤等控制系統,比如特斯拉曾通過 FOTA 新增過自動駕駛功能、增加過電池容量和改善過剎車距離等。
-
另一類是軟件在線升級 SOTA(Software-Over-the-Air),是在操作系統的基礎上對應用程序進行升級,是指那些離用戶更近的應用程序,UI 界面和車載地圖、人機交互界面等功能,像娛樂系統更新操作界面或主題。
本文將以 FOTA 技術應用來進一步瞭解:
2 怎麼實現 OTA
要搞清怎麼實現 OTA,需要先了解 OTA 系統的組成,其基本由 OTA 雲端,OTA 終端和 OTA 軟件升級三部分組成,如下示意:
Source: 智能網聯汽車的 OTA 升級方案
其中,OTA 雲端是 OEM 專屬的雲端服務器平臺,包括 OEM 支持 OTA 升級的 ECU 全部完整升級包,比如車輛管理平臺,OTA 升級服務和任務管理等內容,如下所示:
source: 二萬五千字解讀汽車軟件 OTA
OTA 終端採用 TBox,主要負責協調和調度中斷 OTA 的升級,接收 OTA 升級通知,主動升級檢查,升級包下載,解密,簽名驗證和分發等相關工作。
OTA 軟件升級最終作用於車輛的各個控制器,具體如何進行軟件升級依賴於車輛的網絡架構和 ECU 具體的軟件升級方案,如下所示:
Source: 智能網聯汽車的 OTA 升級方案
車上很多 ECU 的 OTA 屬於 FOTA 類型,比如底盤域和動力域,FOTA 主要通過車載移動互聯網進行數據傳輸,通過 TBOX 對車內 ECU 進行軟件刷寫,如下示意:
以上就是以 FOTA 爲例來說明 OTA 實現的基本內容,除此之外,OTA 需要確保升級包在雲端的安全存儲、雲端與車端的安全加密通訊、車端的升級包解密和 OTA 管理,以及車內 ECU 的安全通訊和安全 Bootloader 等。
Source: Software_Update_and Upgrade Over thr Air
3 怎麼實現 ECU 的 OTA 升級
上節主要介紹 OTA 升級的整個過程,那麼對於車內 ECU 怎麼實現 OTA 呢,比如 VCU, BMS, OBC, 和 MCU 等。從上文可知,在車輛端,OTA 實現是從 TBox 經網關,通過總線通訊(CAN 或以太網)將軟件刷寫到車內 ECU(目標 ECU)。那麼具體是怎實現呢?
爲了更好地理解 ECU 的 OTA 實現方案,有必要 先了解分區刷寫和地址映射的概念:
3.1 什麼是分區刷寫與地址映射
汽車 ECU 軟件以二進制文件形式(HEX 或 S19)刷寫到 ECU 的非易失性存儲單元(內存)。
Source: 英飛凌 TC2xx 用戶手冊
以英飛凌 TC2xx 系列爲例,存儲程序叫做 PFlash,存儲數據叫做 DFlash。然後將它們分配來存儲不同的軟件內容,比如 ASW, BSW 和 Boot 軟件等,比如 ASW,而其他不變,即 Bootloader 和 BSW 不變。所謂分區刷寫就是指可以單獨刷寫 ASW 或 BSW 或 boot 軟件。
正因爲我們規定哪塊空間放什麼軟件,這樣就建立起了軟件與地址的映射,比如 ASW 代碼編譯後會與 0x80400000-0x805FFFFF 地址範圍映射,這樣就能保證 ASW 二進制代碼能刷寫到預期的 ECU PFlash 地址,同理 Bootloader 和 BSW。當軟件運行時,就可以通過有序地訪問來自 PFlash 地址的 ASW 內容,執行 ASW 預期的操作和運算。
3.2 OTA 有哪些實現方案
對分區刷寫和地址映射有了概念之後,接下來就可以瞭解 ECU 的 OTA 實現方案。ECU 的 OTA 實現方案主要有兩類:
- 無備份方案。即先擦除舊軟件,再刷寫新軟件,但這種方法有個隱患,就是新軟件有問題時,由於舊軟件已經被擦除,沒有備份,恢復麻煩。
Source: TA Updates - Requirements for a Full System Solution
- 有備份方案。即 A/B 交換,內存中分兩塊空間,一塊存放當前運行的軟件,另一塊存放舊軟件。當 OTA 升級新軟件時,新軟件將代替舊軟件,這時,一塊放的是當前運行的軟件,另一塊放的是新軟件。再激活運行新軟件,此時原先的當前版本就變爲舊版本軟件,作爲備份,以防運行的新版本軟件有問題,可以及時回滾恢復。
Source:同上
關於 A/B 交換方案,具體由三種實現方式:
- 基於 ECU 硬件支持的 A/B 交換方案。這個方案 ECU 內存足夠,支持地址重映射,當新軟件刷寫完成,通過更新映射地址來激活新軟件,即新軟件運行的入出地址不變。
Source:Software_Update_and Upgrade Over thr Air
- ECU 不支持地址重映射,激活新軟件的進出地址需要變化。
Source:同上
- 基於外擴內存的 A/B 交換方案,ECU 外加內存,備份當前軟件和舊軟件,新軟件會先刷寫原先的舊軟件空間,然後擦除 ECU 內存的當前軟件,刷寫新軟件,完成激活。
Source:同上
對於上述的這幾種方案,當遇到新軟件有問題時,都需要回滾舊軟件。所謂回滾是指刷寫後的軟件有錯誤,需將軟件恢復到之前正確狀態的版本。
另外,上述 OTA 升級刷寫的新軟件,就是通常理解的新軟件替換舊軟件,車內 ECU 的大部分軟件都屬於這類。但車載娛樂信息系統等的軟件更新通常會採用另一種差分軟件形式,這是由於受限車載網絡的帶寬資源有限,通常不直接傳輸完整的升級軟件而是通過差分算法傳輸增量升級的軟件,以此利於無線傳輸,同時節省流量,能夠提升傳輸的安全性和可靠性。
Source: TA Updates - Requirements for a Full System Solution
4 小結
到此就介紹 OTA 的基本概念和實現的技術方案,回顧一下在車端的 FOTA 升級過程,主要分爲這樣的幾個階段:
-
Installation, 即將新軟件下載到目標 ECU,這個過程中車可以一邊跑一邊下載軟件。
-
Verification, 即通過預定算法驗證新軟件的正確性和完整有效性。
-
Activation, 即車輛處於安全狀態下,備份舊軟件,激活新軟件。
Source:AUTOSAR_EXP_FirmwareOverTheAir
不管最終採用哪種 OTA 實現方案,其思路基本都是這樣,但方案的最終選擇需要充分考慮整車網絡架構和 ECU 軟硬件能力。
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/su8gb6Z-2IO2Psgk99vlXA