AUTOMORPHSW Team

虛擬 ECU 分幾級?從應用層模擬到指令集模擬的取捨

虛擬 ECU 分幾級?從應用層模擬到指令集模擬的取捨

「我們也要導入虛擬 ECU」——這句話的資訊量其實接近零,因為 vECU 是一個光譜,不是一種東西。同樣叫 vECU,有的只包應用層邏輯,有的連目標處理器的指令都在模擬。包多少,決定它能驗什麼、跑多快、建多貴。選錯層級的專案,不是驗不到想驗的東西,就是為用不到的擬真度付錢。

業界常見的分級方式

包了什麼跑在哪能驗什麼
L1應用層程式碼(SWC),介面用替身PC 原生編譯控制邏輯、演算法行為
L2應用層+部分基礎軟體(RTE、通訊等)PC 原生編譯加上:SWC 間互動、排程語意、部分 BSW 組態
L3接近量產的完整軟體堆疊,僅底層驅動抽換PC 原生編譯加上:BSW 組態、診斷、網路管理等整合行為
L4量產二進位檔原封不動目標指令集模擬器加上:編譯器效應、組譯層行為

兩個關鍵的分界線:

  • L1→L2/L3:開始包真實的基礎軟體,「整合問題」才驗得到。AUTOSAR 專案裡大量的坑在 BSW 組態與 RTE 互動(為什麼,見 RTE 是什麼),L1 完全碰不到這一層
  • L3→L4:從「重新編譯到 x86」變成「跑原始二進位」。代價是速度大幅下降、建置複雜度大增——所以 L4 保留給非它不可的題目(編譯器最佳化引發的差異、混合語言邊界),不是預設選項

跑得比實時快是原生編譯層級(L1–L3)的隱藏優勢:模擬時間可以壓縮,一夜跑完幾百次開機情境、幾千條測試——這是實體 HIL 台架做不到的並行度。

vECU 驗不了什麼(誠實清單)

  • 精確時序:PC 上的執行時間與目標 MCU 無關,WCET、中斷延遲這類題目不在此層
  • 真實電氣:短路、位準異常、EMC——這些是 HIL 的地盤(分工見 HIL 測試是什麼
  • 硬體周邊的真實行為:抽換掉的 MCAL 之下,一切是模型

所以正確的定位是接力:邏輯與整合問題在 vECU 上大量並行地抓,時序與電氣問題留給 HIL 的稀缺台架——兩邊共用同一套測試案例(例如 vTESTstudio 設計、CANoe 執行,環境從 SIL 換到 HIL 而測試不重寫),左移才不會變成重工。

接進 CI 才是重點

vECU 最大的價值不是「不用等硬體」這件事本身,而是它讓 ECU 級測試變成可以在建置伺服器上排程的工作

  1. 提交觸發建置 → vECU 啟動 → 冒煙測試(幾分鐘內回饋)
  2. 夜間排程:完整迴歸+多組態矩陣(不同車型組態並行跑)
  3. 失敗案例自動附上完整的匯流排紀錄與內部變數軌跡——可重現性是虛擬環境的天生優勢,同一個種子重跑一次,問題就在那裡

環境版本化是常被忽略的配套:vECU 的建置產物、殘餘匯流排模擬的組態、測試資料,要跟軟體版本一起進版控——否則「上週還會過」的謎團會消耗掉左移省下的時間。


下一步

從 vECU 層級選擇、建置流程到 CI 整合,歐特莫夫(Vector Informatik 合作夥伴)協助把測試往前搬、往上搬。