







【摘 要】軟件定義顧名思義即通過軟件的不斷更新迭代使產品呈現出不同的功能狀態,在OTA更新的方式中,ECU軟件更新功能也需要服務化,文章重點介紹軟件更新的服務化設計方法,可供后續技術實施參考。
【關鍵詞】軟件更新;服務接口;車輛診斷
中圖分類號:U463.6 文獻標識碼:A 文章編號:1003-8639( 2024 )09-0044-03
Analysis of Service Application of Software Update Technology Based on ASAM Standards
WANG Bin1,CHEN Zilin2,ZHANG Longgang2,WANG Yuanbo2
(1.Dechuang Weilai Automotive Technology Co.,Ltd.,Xi′an 713700,China;2.Shaanxi Heavy-duty Automobile Co.,Ltd.,Xi′an 710200,China)
【Abstract】Software definition,as the name implies,that is,through the continuous updating of the software iteration so that the product presents a different functionality of the state,in the way of OTA update,ECU software update function also needs to be serviced,this paper focuses on the servicing design method of software update,which can be used as a reference for subsequent technology implementation.
【Key words】software update;service interface
1 技術介紹
SOVD全稱為Service-Oriented Vehicle Diagnostics,即以服務為導向的車輛診斷系統。在傳統更新中,本地診斷儀控制更新過程,車輛只需執行既定的步驟便可完成軟件更新;而SOVD系統中采用調取API接口將控制權交給車輛,結合聯網車輛的OTA功能來實現軟件更新。
SOVD API接口支持兩類程序更新方法及相關步驟,以支持不同的軟件更新場景。
1.1 逐步更新軟件
通過該方法診斷儀可以控制安裝哪些更新,以及何時準備和執行更新,步驟如下。
1)獲取適用的更新。車輛向本地診斷儀提供適用的更新;診斷儀選擇安全的更新;在執行命令時,可從OTA后端查詢適用的更新,或由車輛提供OTA后端之前推送給車輛的更新列表。
2)準備更新。診斷儀選擇的更新將通過從OTA后臺下載、驗證其對車輛的適用性、將其安裝到B存儲器等方式準備安裝;完成這一步驟后,更新即可安裝。
3)執行更新。準備好的更新包被安裝和激活。
1.2 自動更新軟件
通過該方法ECU控制診斷儀選擇更新包的整個更新過程。在該更新方式中,ECU負責完成下載更新包、安裝和激活更新軟件包。SOVD API接口中定義了特殊的自主更新包標識符,自主更新包用于不需要診斷儀選擇更新包的情況。
2 軟件更新接口
2.1 檢索所有更新列表
該API接口包含以下幾方面。
1)方法:GET/updates。
2)方法說明:該方法返回實體的可用更新。
3)路徑參數:該方法不支持該項參數。
4)查詢參數:讀取實體提供的所有更新列表,見表1。
5)請求標頭:該方法不使用該項參數。
6)響應狀態代碼:讀取響應狀態代碼200,請求成功。
7)響應數據結構:屬性為項目,類型為字符串[],為更新軟件包標識符。
2.2 獲取更新詳情
該API接口包含以下幾方面。
1)方法:GET/updates/{update-package-id}。
2)方法說明:該方法為返回特定更新包的詳細信息。
3)路徑參數:參數名稱update-package-id,類型為字符串,為更新包的標識符。
4)查詢參數:獲取更新的詳細信息(表2)。
5)請求標頭:該方法不使用該項參數。
6)響應狀態代碼:獲取更新詳情,狀態代碼200,請求成功。
7)響應結構:獲取更新詳情的信息,見表3。
2.3 自動安全更新
該API接口包含以下幾方面。
1)方法:PUT/updates/{update-package-id}/automated。
2)方法說明:該方法可啟動更新包的自動安裝。在這種情況下,ECU和OTA平臺可完全控制更新過程,并決定何時采取哪些行動。
3)路徑參數:參數名稱update-package-id,類型為字符串,為更新包的標識符。
4)查詢參數:該方法不支持該項參數。
5)請求標頭:該方法不使用該項參數。
6)響應標頭:響應包括以下標頭,用于重定向診斷儀的請求狀態。
位置:{base_uri}/updates/{update-package-id}/status。
7)響應狀態代碼:自動安裝更新響應狀態代碼見表4。
2.4 準備安裝更新
該API接口包含以下幾方面。
1)方法:PUT/updates/{update-package-id}/prepare。
2)方法說明:該方法為準備安裝更新包。
作為該步驟的一部分,將執行以下任務:驗證更新包是否仍可安裝;從OTA后臺下載更新包;驗證更新包的完整性;應用增量;在B內存中安裝更新。
安裝成tPefiZC6ORIALGFNk87MDiOgODONKzEwYVZoHMldhBg=功后,ECU會自動刪除更新包。
3)路徑參數:參數名稱update-package-id,類型為字符串,為更新包的標識符。
4)查詢參數:該方法不支持該項參數。
5)請求標頭:該方法不使用該項參數。
6)響應標頭:響應包括位置標頭,用于重定向診斷儀的請求狀態。
位置:{base_uri}/updates/{update-package-id}/status。
7)響應狀態代碼:準備安裝更新響應狀態代碼見表5。
2.5 執行更新安裝
該API接口包含以下幾方面。
1)方法:PUT/updates/{update-package-id}/execute
2)方法說明:該方法啟動更新包的安裝和激活。
作為該步驟的一部分,將執行以下任務:驗證更新包是否仍可安裝;在所有ECU上安裝更新;執行特定的更新后操作;激活更新;出現錯誤時回滾更新。
3)路徑參數:參數名稱update-package-id,類型為字符串,為更新包的標識符。
4)查詢參數:該方法不支持該項參數。
5)請求標頭:該方法不使用該項參數。
6)響應標頭:響應包括位置標頭,用于重定向診斷儀的請求狀態。
位置:{base_uri}/updates/{update-package-id}/status。
7)響應狀態代碼:執行更新安裝響應狀態代碼見表6。
2.6 獲取更新狀態
該API接口包含以下幾方面。
1)方法:GET/updates/{update-package-id}/status。
2)方法說明:該方法返回更新的準備或執行狀態。
3)路徑參數:參數名稱update-package-id,類型為字符串,是用于跟蹤更新準備或執行情況的標識符。
4)查詢參數:該方法不支持該項參數。
5)請求標頭:該方法不使用該項參數。
6)響應狀態代碼:執行更新狀態,狀態代碼為200,請求成功。
7)響應結構:獲取更新狀態的詳細信息見表7~表10。
3 結束語
軟件更新功能服務化設計主要應用于軟件定義汽車的設計框架中,本文圍繞軟件更新展開了常用指令的服務接口介紹,對于軟件更新等場景的服務化接口還需要結合實際功能設計要求進一步深入研究和豐富,共同推動先進技術的快速落地。
(編輯 楊凱麟)
作者簡介王彬(1987—),男,博士,工程師,主要主導公司各車型的整體開發,以及電器系統、整車系統的開發、設計、管理工作。