什麼是虛擬 ECU (vECU)?
虛擬 ECU (Virtual ECU) 是將 ECU 的應用軟體 (Application Software) 與基礎軟體 (Basic Software, BSW) 編譯為可在 PC (Windows/Linux) 上執行的模擬單元。它脫離了對特定微控制器 (MCU) 硬體的依賴,使得軟體開發與測試可以提早進行,實現 “Shift-Left” (左移) 測試策略。
vECU 的層級定義
根據模擬的深度與所包含的軟體層級,vECU 通常分為以下幾個等級:
- Level 0 (演算法模型級):僅包含控制演算法模型(如 Simulink 模型或 C 程式碼)。在主機環境(PC)編譯,用於早期邏輯驗證,無底層軟體。
- Level 1 (應用程式級):專注於應用層開發。移除中間件,改用基本的 Runtime 與 I/O 模擬程式碼。不包含 RTE、OS 或 BSW,執行速度最快。
- Level 2 (模擬中間件級):在 L1 基礎上加入生產級中間件(如 RTE、通訊棧、診斷棧),但 OS 仍由模擬程式碼替代。適合驗證通訊與診斷服務。
- Level 3 (生產級中間件級):主機編譯的最高等級。包含完整的生產級 OS 與大部分 BSW 模組。僅硬體相關驅動(如 CAN/ADC 驅動)由模擬程式碼替代,最接近真實 ECU 軟體環境。
- Level 4 (二進位級):目標編譯型,可執行真實 ECU 的二進位程式碼(Binary Code)。
- Level 4a (部分二進位):針對特定功能執行主機擴展(Host Extension),提升模擬效率。
- Level 4b (完整二進位):完全模擬真實 ECU 的所有軟體層與硬體細節(包括 CPU 指令集、記憶體系統等)。
為什麼需要 vECU?
- 平行開發:軟體團隊無需等待硬體樣品 (A-Sample/B-Sample) 即可開始整合測試。
- 高擴展性:在伺服器或雲端環境中,可以同時執行數百個 vECU 實例進行大規模回歸測試。
- 除錯便利:利用 PC 強大的除錯工具 (如 Visual Studio, GDB) 快速定位邏輯錯誤。
常見驗證技術與工具
Vector vVIRTUALtarget SE
vVIRTUALtarget SE 是專為 AUTOSAR CP 軟體系統設計的持續整合工具,可將 AUTOSAR(MICROSAR)配置虛擬化為 vECU 並整合進 CANoe。依原廠說明:
- 實際生成的等級是 Level 1 與 Level 3(不是上表的每一級都由這個工具產生)。
- Level 1(軟體組件系統測試):整合模擬的 BSW 模組,支援 NVM 儲存模擬與使用者自訂變數,並可透過 RTE 的開放埠驗證軟體組件之間的互動。
- Level 3(ECU 軟體系統測試):複用 MICROSAR 協定堆疊中的虛擬配置工程,在 PC 上提早配置 ECU 並驗證;透過 MCAL 與內部埠模擬硬體抽象層,可在 CANoe 中執行虛擬 ECU,並支援與真實 ECU 耦合的真實/虛擬混合驗證。
- 內建 VttMake 命令列元件,可在 Windows 或 Linux 執行;虛擬 vECU 可用 Visual Studio、MinGW-w64 或 Clang 編譯。
- 對應 ASPICE 的 SWE.5(軟體整合)與 SWE.6(軟體層級驗證) —— 這一點在流程評鑑時很實用,等於用同一套虛擬化投資同時滿足兩個流程領域的證據要求。
早期版本的 vVIRTUALtarget 曾有 Pro/Basic 之分,實際可取得的版本與授權組合請洽歐特莫夫確認。
CANoe4SW 與 CANoe4SW SE
CANoe4SW 專門用於軟體系統的測試;伺服器版 CANoe4SW SE 與 CANoe SE 則構成 DevOps 的 SIL 測試平台:可在 Windows 或 Linux 伺服器與雲端叢集執行、支援 Docker 容器化,並能同時啟動多個實例;系統狀態可用命令列與 REST API 監控,並透過 YAML 配置配合 Jenkins 被動執行自動化測試。生成的虛擬軟體系統還能搭配標定或診斷工具,實現虛擬標定與虛擬診斷。
開源的 SIL Kit
SIL Kit 是 Vector 開源的整合中介,可在 Linux 與其他 UNIX 衍生系統上執行,用來連接虛擬 ECU、測試工具、軟體應用、場景與感測器模擬。它提供發布/訂閱模式與 RPC,並支援虛擬的 CAN、LIN、FlexRay 與 Ethernet 通訊;可透過 FMI 把 FMU 當成節點一起執行,並具備虛擬時間同步、健康監測與分散式日誌。這讓「不同工具生成的 vECU」能在同一個模擬系統裡共存——從單一 SWC 一路到整車的數位孿生整合測試。
Synopsys Silver
Synopsys Silver 是一款領先的虛擬開發與測試平台,支持從簡單的電腦碼到完整的二進制程式碼的 vECU 開發。
- 快速模擬:能夠在高精確度的情況下實現極快的執行速度,適合大量自動化測試。
- 多工具整合:可與 MATLAB/Simulink 以及其他的虛擬車輛環境無縫連接。
dSPACE VEOS
dSPACE VEOS 是一個適用於 PC 的模擬平台,專為 ECU 軟體在開發階段的早期驗證而設計。
- 靈活的模擬架構:支持各個層級的模擬,從功能模組到整車網路。
- 與 HIL 測試工具鏈同步:與 dSPACE 的 HIL 解決方案具有高度的一致性,方便測試案例在虛擬與實體環境間轉移。
以Vector為例的整合測試流程
- 生成 vECU: 使用 DaVinci Configurator Classic 配置 BSW,並透過 vVIRTUALtarget 生成執行檔 (.dll 或 .exe)。
- 建構虛擬匯流排: 在 CANoe 中設定虛擬的 CAN/Ethernet 網路。
- 執行測試: 將 vECU 掛載到 CANoe 節點上,執行 CAPL 腳本或 vTESTstudio 測試案例。
- 故障注入: 模擬通訊中斷、訊號丟失等故障場景,驗證 vECU 的錯誤處理機制。
開源工具整合
除了商業工具,vECU 驗證也可以結合開源生態系:
- QEMU: 用於模擬特定 MCU 架構 (如 ARM Cortex-R5),執行底層驅動程式測試。
- SystemC: 用於建立硬體周邊的行為模型。
透過 vECU 技術,車廠與 Tier 1 能夠顯著縮短開發週期,並在軟體發布前大幅提升品質信心。