出品:汽車電子與軟件
#01 CP與FOTA
FOTA(Firmware Over-The-Air)是一種通過無線網絡遠程更新車輛中的軟件的技術。
隨著安全要求的不斷提升以及分布式、互聯功能帶來的軟件復雜性日益增加,車輛系統需要頻繁保持最新狀態。為了減少因軟件更新而帶來的耗時和重復前往維修廠的麻煩,應通過FOTA技術向車輛推送軟件更新。CP AUTOSAR對FOTA的支持主要體現在以下幾個方面:
- 軟件包管理:CP AUTOSAR提供了一套豐富的軟件包管理功能,以支持FOTA。這些功能包括軟件包的下載、驗證、存儲和安裝。車輛可以通過無線網絡接收到新的軟件包,并使用CP AUTOSAR提供的安全機制進行驗證,以確保軟件包的完整性和可靠性。驗證通過后,軟件包可以被存儲在車輛的存儲器中,準備進行更新。
- 更新過程執行:CP AUTOSAR定義了FOTA更新過程的執行流程。這包括檢測新的軟件包、下載軟件包、安裝軟件包以及更新后的驗證等步驟。在更新過程中,CP AUTOSAR提供了數據完整性和安全性的保障,以確保軟件包的正確性和可靠性。
不過,CP AUTOSAR自身是不直接支持OTA的。這意味著要更新在CP AUTOSAR上運行的應用程序,就必須更新整個ECU的代碼。通過其他控制器對運行CP AUTOSAR的控制器進行更新,并不被視為CP AUTOSAR自身的OTA功能。
#02 FOTA簡介
FOTA引入了一種通用機制,允許在車輛運行時更新ECU(電子控制單元)軟件。當當前ECU軟件正在執行且功能完全正常時,新的ECU軟件應在后臺進行打包準備。在安裝過程中,必須驗證新軟件的真實性和完整性。一旦驗證通過,ECU應能啟用新的軟件版本。不過,軟件的啟用需要ECU進入一種特殊模式,因此在車輛行駛過程中不得啟動或執行新軟件的啟用操作。啟用新軟件應在確保車輛安全的狀態下進行,比如車輛靜止、發動機熄火且已施加駐車制動時。
如果在啟用新軟件的過程中或之后發現異?;蝈e誤,ECU應具備內部回滾功能,即能夠恢復到之前的軟件版本。這意味著之前的軟件會保留在ECU上,并可以隨時重新啟用。
不同的無線技術(UMTS、LTE、藍牙、WiFi、5G)可用于將車輛連接到后端/云系統,以提供將軟件下載到車輛的能力。通過CAN、CAN-FD、Flexray或汽車以太網等車輛總線,將新軟件分發到需要更新的目標ECU。
如今,大多數ECU都具備更新升級功能。通常,這種軟件更新的實現接口采用閃存引導加載程序的形式,并且支持通過OTA技術更新主ECU??梢酝ㄟ^將軟件更新任務從外部診斷儀發送到已連接的車載ECU(作為OTA-Master)上,來實現無線的軟件更新。從目標ECU的角度來看,無論是通過傳統的診斷儀還是通過OTA-Master進行更新,整個過程都十分便捷。
這種方法涉及幾個重要方面,需要在實施過程中仔細考慮(以下針對單分區升級方案):
首先,從功能角度來看,在整個軟件更新過程中,目標ECU將無法正常運行,這通常意味著整個車輛在軟件更新期間會處于不可用狀態。其次,在分布式電子電氣架構中,由于多個ECU需要在一次更新活動中同步更新,與單獨更新一個ECU相比,車輛的不可用時間可能會更長。
再者,如果在安裝新軟件的過程中或之后出現問題,雖然可以通過OTA主控端啟動并重新安裝之前的軟件來進行修復,但這一操作會進一步延長車輛的不可用時間,并有可能導致ECU功能完全失效。
此外,如果需要進行軟件回滾,那么與更新相關的所有依賴ECU也必須同步進行回滾操作。
最后,采用這種方法時,我們還需要特別注意電池的剩余容量,以確保更新過程的順利進行。
#03 FOTA流程
FOTA的整體更新過程可分為幾個階段,可以參考如下圖示:

1. Update
術語“(FOTA)update”用于表示 ECU 的整個更新過程(如果是其他依賴 ECU 更新,則表示多個 ECU)。它包含下面描述的所有任務,例如download, installation, verification, activation等。如有必要,可以將回滾功能視為更新過程的一部分。2. Download
下載鏡像是指將FOTA目標ECU的完整更新所需的ECU軟件、數據和配置從后端服務器傳輸到FOTA主節點,即FOTA的Master ECU。3. Installation
Installation是指將待更新的ECU軟件從FOTA主節點ECU轉移到FOTA目標ECU。由于一次將整個ECU軟件完全傳輸到FOTA目標ECU并不方便,因此該過程是使用數據塊實現的。當沒有更多塊要傳輸到FOTA目標ECU并且所有塊都已成功寫入內存堆棧時,安裝過程就完成了。此外,安裝過程還包括FOTA目標ECU內的flash驅動程序將軟件實際寫入非活動目標分區。
4. Verification
Verification驗證過程是要確保更新的ECU軟件的正確性。這只會影響相應FOTA目標ECU中的普通ECU軟件(例如鏡像或者差異化更新)。5. Activation
Activation激活過程是ECU引導分區的實際啟動操作。對于采用不可切換內存架構的ECU,比如那些使用外部閃存或固定多分區內存的ECU,這個過程還涉及到從臨時存儲(例如外部閃存)到內部閃存的復制。一旦確認了前一個ECU軟件版本的備份,激活過程即告完成。新安裝的軟件必須在車輛處于安全狀態時才能最終激活,開發者有責任確保車輛在這種安全狀態下進行操作。6. Rollback
在回滾過程中,必須恢復之前運行軟件的所有ECU和用戶數據。回滾完成后,ECU軟件和用戶數據必須與整個更新過程開始之前沒有差異。#04 FOTA技術架構
整體 FOTA 架構設計如上圖所示,包括:
- FOTA Target ECU
它接收從 FOTA Master刷寫的 ECU 軟件,并將軟件寫入到內存堆棧(實際的 ECU 軟件燒錄過程);
- FOTA Master ECU
緩存所有新的 ECU 軟件工件,以發送到 FOTA 目標 ECU;
- 后端服務器
為 FOTA Master ECU 提供要安裝到 FOTA Target ECU 的鏡像;
1. FOTA Target ECU
由于FOTA處理程序規范目前仍在發展階段,尚未涵蓋和明確定義所有功能,因此現階段將其視為CDD。如果未來FOTA的功能集增長到足夠復雜,足以構成一個獨立的BSW模塊時,AUTOSAR可能會考慮定義FOTA BSW模塊。 由于 AUTOSAR Dcm 模塊實現了UDS診斷協議,因此直接提供了許多有用的功能以實現FOTA功能。對于FOTA程序,可以有如下的功能實現:
- 會話處理
- 安全訪問
- 身份驗證
- 服務處理(用戶工作),例如:
0x22/0x2E Read/WriteDataByIdentifier
0x31 路由控制
0x34 RD/0x36 TD/0x37 TE(請求下載/傳輸數據/傳輸退出)
錯誤處理
檢查更新升級條件
重置/重啟 ECU
Nv Data在AUTOSAR中,NvM模塊主要負責管理數據閃存,包括用戶數據、標定數據、錯誤記錄、快照以及ECU軟件的其他運行時數據。這些數據會被組織成所謂的NvDataBlock。NvM模塊提供了功能接口,允許讀取、寫入或刪除這些數據塊。
為了遷移或修改NvData,應當使用NvM模塊提供的功能,而不是直接操作數據閃存。這是因為FOTA(固件空中升級)的Master和Target端都不應直接與數據閃存交互,以防止數據受到干擾、阻塞或損壞。
如果數據發生變化,例如影響到NvData或用戶數據的遷移,這些變化需要由實施者進行處理。
然而,為了安全地存儲與FOTA進程相關的信息(如當前FOTA進程狀態、FOTA處理程序上次成功寫入的內存地址等),并確保這些信息在中斷期間能夠持續存在,應使用NvM模塊來處理這些(FOTA特定的)用戶數據。
2. FOTA Master (UCM-Master)
FOTA Target ECU 需要與相應的主節點通信,以便接收 FOTA 鏡像數據。此 Master 實例必須存儲車輛網絡中所有相關 ECU 的鏡像數據,數據量突然不會少。通常,Classic Platform所針對的嵌入式ECU在內存、存儲及計算能力上資源較為有限。因此,一種可行的方案是將FOTA Master實例的職責轉移到資源更豐富的AP平臺上的ECU中。
與 FOTA Target ECU 通信的實現目前由更新和配置管理模塊(UCM,Update And Configuration Management)完成。這將產生以下邏輯體系結構:

3. Backend
#05 FOTA內部狀態
FOTA Handler 模塊需要在處理 FOTA 鏡像期間處理并指示所有不同的狀態。這還包括恢復中斷(例如由于駕駛周期更改)或暫停(例如通過更高優先級的診斷請求)。為了將此信息提供給啟動和觸發 FOTA 程序的 FOTA Master,應實現診斷服務,從 FOTA Target 的角度提供和更新安裝程序的當前狀態。這些不同的狀態應通過以下狀態來反映:
- IDLE ECU啟動程序后FOTA Handler的初始狀態
- INIT FOTA處理程序已初始化,Dcm已設置為正確狀態(在Dcm FOTA會話中,已授予安全訪問權限)。
- READY 所有FOTA數據塊均已完成安裝,可以觸發激活程序。
- PROCESSING FOTA Handler由Dcm調用觸發,因為新塊已被接收并正在處理。
- WAIT FOTA處理程序已成功處理最后一個接收到的數據塊,返回了Dcm函數返回值,并正在等待下一個數據塊。
- VERIFY 自行設定如何驗證數據包,CP對這方面沒有具體的約定。
- ACTIVATE FOTA安裝已完成,并從FOTA Master收到相應的工作指令,該指令指示下一次啟動過程中的分區切換。
- ERROR 可以反饋Target的錯誤狀態,根據實際情況自已進行定義,CP對這方面沒有具體的約定。
上述所有狀態應有助于保持FOTA Target狀態,從而保持整個FOTA更新過程的確定性、可靠性和可恢復性。這將導致一個狀態機來處理FOTA更新,如圖所示:

#06 小 結
AUTOSAR CP中的FOTA流程是一種在運行時更新ECU軟件的機制,它通過無線技術將新軟件下載到車輛上,并在后臺進行安裝和驗證,以減少車輛停機時間并提高軟件更新效率。FOTA技術架構包括FOTA目標ECU、FOTA主機和后端等組件,通過一系列步驟實現軟件的下載、安裝、激活和回滾等功能。內部狀態機則管理FOTA過程中的各種狀態轉換,確保軟件更新的可靠性和安全性。