AUTOSAR服務導向車輛診斷詳解
目錄
- 1. 引言
- 1.1 ASAM SOVD簡介
- 1.2 SOVD產生的動機
- 2. SOVD參考架構
- 2.1 SOVD網關
- 2.2 診斷管理器
- 2.3 SOVD到UDS轉換
- 2.4 后端連接
- 3. SOVD用例
- 3.1 SOVD和UDS的共同用例
- 3.2 SOVD特定用例
- 3.2.1 訪問權限
- 3.2.2 軟件更新
- 3.2.3 日志記錄
- 3.2.4 批量數據
- 3.2.5 配置
- 4. 總結
1. 引言
2022年,ASAM(汽車標準化協會)發布了新的診斷標準SOVD(Service-Oriented Vehicle Diagnostics,服務導向車輛診斷)的第一個版本。本文檔旨在解釋AUTOSAR如何實現SOVD標準,并提供面向用例的指導。本文檔的范圍超出了功能集群ara::diag,旨在提供更全面的視圖,以便恰當地處理SOVD的整體性質。
1.1 ASAM SOVD簡介
SOVD是一種全新的診斷協議標準,具有以下關鍵特性:
1.1.1 SOVD標準關鍵特性解析
上圖展示了SOVD標準的關鍵特性和優勢:
-
自解釋協議:SOVD是一個自解釋協議,不需要外部ODX數據描述進行解釋。這解決了傳統UDS協議的一大限制,即客戶端對ODX文件的依賴。
-
支持多種診斷場景:
- 遠程診斷:通過互聯網進行遠程診斷操作
- 臨近診斷:在車輛附近進行診斷
- 車內診斷:直接在車內進行診斷
-
中央邊緣節點通信:SOVD網關作為中央通信點,統一管理診斷請求的路由分發。
-
包含UDS作為子集:SOVD保留了與現有UDS功能的兼容性,可以被視為UDS的超集。
-
支持HPC用例:原生支持在高性能計算機(HPC)上的診斷需求,這是現代車輛架構的關鍵組成部分。
-
使用現代信息技術:
- 基于HTTP/HTTPS的通信
- 使用REST API設計理念
- 基于JSON的數據交換
1.2 SOVD產生的動機
截至2023年,汽車行業主流的診斷協議是UDS(統一診斷服務)。UDS最初于2006年作為ISO 14229標準化,主要針對具有嚴格ROM和RAM要求的微控制器進行診斷。由于該協議注重效率,數據的解釋由客戶端使用ODX文件處理。這帶來了兩個主要挑戰:
- 客戶端技術棧的復雜性:客戶端必須能夠解析和理解ODX文件
- 客戶端ODX文件與診斷實現之間的強依賴:客戶端ODX文件必須與車輛上的診斷實現精確匹配
SOVD通過以下方式解決這些挑戰:
- 自解釋協議:不依賴外部ODX數據描述
- 現代技術:使用當前信息技術的診斷API,如HTTP/HTTPS、JSON等
在當今的車輛架構中,高性能計算機(HPC)承擔著核心功能,滿足車輛端日益增長的需求。隨著軟件復雜性的增加,對診斷方法的新要求也隨之出現,這正是SOVD標準旨在滿足的需求。
2. SOVD參考架構
在分布式系統中提供中央SOVD邊緣節點需要一些基礎設施組件。為實現這一目標,AUTOSAR引入了一個將功能分為幾個塊的參考架構。這一架構如下圖所示:
2.0.1 SOVD參考架構解析
上圖展示了SOVD的參考架構,其主要組件包括:
- SOVD客戶端:發起診斷請求的外部設備或系統
- 后端連接:處理遠程診斷情況下的請求路由
- SOVD網關:作為中央節點,管理所有診斷請求的分發
- SOVD服務節點:包含診斷管理器,處理特定診斷請求
- SOVD到UDS轉換:將SOVD請求轉換為傳統UDS請求,實現向后兼容
- ECU (UDS):使用傳統UDS協議的電子控制單元
此架構通過明確的分層和模塊化設計,實現了SOVD與傳統UDS系統的無縫集成,同時為先進的診斷功能提供了基礎。
2.1 SOVD網關
SOVD網關作為HTTP反向代理,在接收到SOVD客戶端的請求后,將請求路由到相應的內部SOVD端點。路由是基于SOVD請求URI中的實體部分進行的。SOVD網關必須提取URI的這一部分,并將請求路由到相應的端點。潛在內部SOVD端點的設置可以通過靜態配置或使用mDNS動態發現。
轉發本身發生在應用層,這意味著SOVD網關會提取URI的實體部分并路由到相應的端點。
對于SOVD網關的配置,在TPS_Manifest中引入了SOVDGatewayInstantiation。這一清單允許配置面向SOVD客戶端的外部SOVD連接以及內部轉發目標。
2.2 診斷管理器
在SOVD引入之前,診斷管理器的主要目的是根據ISO 14229-1處理診斷服務和故障存儲器。隨著SOVD的引入,診斷管理器也旨在原生支持SOVD,因此作為SOVD服務器。
SOVD引入的主要指導原則之一是盡可能重用UDS的現有功能,同時不限制SOVD的原生支持。在結構層面,診斷管理器允許多個診斷服務器實例,旨在保持各個軟件集群的獨立性。DEXT中的每個診斷貢獻集代表具有單獨診斷地址的診斷服務器實例。這一尋址原則被SOVD采用。
診斷管理器本身代表一個SOVD組件,而每個診斷服務器實例由一個SOVD子組件表示。不過,診斷管理器仍作為SOVD服務器,內部路由由診斷管理器處理。對于此SOVD服務器的配置,在TPS_Manifest中引入了SOVDServerInstance。
2.3 SOVD到UDS轉換
這一功能塊允許基于預定義的ODX定義將SOVD命令轉換為UDS請求。SOVD到UDS轉換的細節由ASAM定義。該功能塊應被視為一個車載測試客戶端,它將向目標診斷地址發送UDS請求,并將翻譯后的UDS響應發送給SOVD客戶端。
盡管從實現角度看,這一功能塊的復雜性很高,但由于ASAM已經定義了這些細節,AUTOSAR將僅引用ASAM標準。
2.4 后端連接
SOVD旨在支持臨近、遠程和車內診斷。SOVD通過引入mDNS,對臨近和車內訪問進行了相當精確的標準化。而由于對后端基礎設施的依賴,標準化遠程訪問相對困難。AUTOSAR保持這一自由度。
盡管如此,通過抽象后端連接的功能塊將SOVD請求路由到SOVD網關,是一種直接的解決方案。后端連接功能塊可以使用mDNS發現SOVD網關,而路由可以通過HTTP轉發實現。
3. SOVD用例
本章描述了SOVD用例在AUTOSAR車輛架構層面的設計和實現方式:
3.0.1 SOVD用例圖解析
上圖展示了SOVD支持的各種用例,分為兩大類:
-
SOVD和UDS共同用例:這些用例在傳統UDS協議中已存在,在SOVD中得到了保留和映射
- 會話管理
- 診斷通信管理
- DTC信息(故障碼)
- 診斷服務
- 數據傳輸
- 例程控制
-
SOVD特定用例:這些是SOVD新增的功能,專為現代車輛架構設計
- 訪問權限(包括接近性挑戰)
- 軟件更新
- 日志記錄
- 批量數據處理
- 配置
圖中還展示了不同用例與參與者的交互關系:
- 診斷客戶端可以訪問所有用例
- 傳統ECU (UDS)僅支持共同用例
3.1 SOVD和UDS的共同用例
SOVD用例的很大一部分可以直接映射到現有的UDS用例。診斷管理器中這種映射的實現方式在SWS Diagnostics中有詳細說明。對于與UDS (ISO 14229-1)匹配的情況,引入了一個主要原則:重用與相應UDS服務相同的端口實例。
這對應用設計特別方便,因為不需要集成具有冗余功能的額外端口。此外,這些實現遵循與UDS相同的關于重入性和并行執行的規則。某些用例的SOVD處理可能與其UDS對應物有足夠的差異,需要差異化的要求和機制。
在方法論上,這些SOVD方法采用了現有的配置機制,使用DEXT并僅在需要的地方擴展DEXT。
3.2 SOVD特定用例
除了與UDS共享的用例外,SOVD還引入了一些特定的用例,這些用例專為滿足現代車輛架構的需求而設計。
3.2.1 訪問權限
訪問權限管理是SOVD的一個重要方面,特別是在遠程診斷場景中。接近性挑戰是其中一個關鍵功能,用于驗證客戶端是否實際位于車輛附近,這是某些診斷功能的安全前提。
接近性挑戰通過要求診斷客戶端提供僅在物理接近車輛時才能獲得的信息,來防止未授權的遠程訪問。這增強了診斷系統的整體安全性。
3.2.2 軟件更新
SOVD為軟件更新提供了專用的用例支持,包括軟件包的下載、安裝和驗證過程。與傳統UDS相比,SOVD的軟件更新功能更加強大和靈活,特別適合高性能計算機(HPC)上的復雜軟件架構。
這一用例支持增量更新、版本回滾和更新過程中的狀態報告等先進功能。
3.2.3 日志記錄
日志記錄用例提供對系統日志的訪問,允許診斷客戶端檢索、過濾和分析車輛系統生成的日志信息。這對于故障排除和系統監控至關重要。
SOVD的日志記錄功能支持多種日志級別、格式和過濾選項,使診斷更加高效和精確。
3.2.4 批量數據
批量數據用例支持大量數據的高效傳輸,這在處理大規模診斷數據、系統日志或軟件更新時非常重要。
SOVD采用現代數據傳輸技術和壓縮方法,確保批量數據處理的高效性和可靠性。
3.2.5 配置
配置用例允許遠程配置系統參數,實現車輛功能的定制和優化。這包括修改系統設置、更新配置參數和調整功能行為。
配置用例結合了強大的驗證機制,確保只有授權的更改才能被應用,從而保障系統的安全性和穩定性。
4. 總結
SOVD(服務導向車輛診斷)代表了汽車診斷領域的重大進步,特別適合當今的高性能計算機(HPC)和分布式架構。通過引入自解釋協議、現代通信技術和豐富的用例支持,SOVD解決了傳統UDS面臨的一系列挑戰。
AUTOSAR的SOVD實現提供了一個全面的參考架構,包括SOVD網關、診斷管理器、SOVD到UDS轉換和后端連接等核心組件。這一架構不僅保持了與現有UDS系統的兼容性,還為先進的診斷功能和用例提供了堅實的基礎。
SOVD特別適合以下場景:
- 高性能計算機(HPC)診斷:利用現代技術如HTTP/HTTPS和JSON,SOVD為HPC提供了更適合的診斷解決方案
- 遠程診斷:通過標準化的接口和安全機制,SOVD簡化了遠程診斷操作
- 分布式系統:SOVD的中央邊緣節點通信模型完美適應現代分布式車輛架構
- 高級用例:訪問權限、軟件更新、日志記錄、批量數據和配置等特定用例滿足了現代車輛的先進需求
隨著車輛架構和功能的不斷發展,SOVD將繼續發揮重要作用,為汽車行業提供強大、靈活且面向未來的診斷解決方案。