TargetLink
V-ECU 模擬解決方案
TargetLink 是 dSPACE SIL 測試工具鏈的一環,可將 TargetLink 子系統的產品碼匯出為 V-ECU implementation container(.vecu),匯入 VEOS 建立離線模擬應用(OSA),在 PC 上以產品碼進行虛擬 ECU 模擬。
SIL(Software-in-the-Loop)測試用於模擬系統:其中包含 ECU 的可執行表示(V-ECU)、其環境模型,以及彼此的連接關係,並可在 dSPACE VEOS 上執行。TargetLink 作為 dSPACE SIL 工具鏈的一環,能把控制演算法的產品碼封裝為 V-ECU,讓您在無實體硬體的情況下、以最終產品碼進行早期驗證。本頁內容整理自 dSPACE 原廠手冊(RLS2024-B)。
1. 名詞定義
Virtual ECU(V-ECU)
在模擬情境中模擬真實 ECU 的軟體,包含應用層與基礎軟體的元件,提供與真實 ECU 相當的功能。
V-ECU implementation container(.vecu)
包含建立 OSA 所需全部檔案的容器檔,供 VEOS 模擬使用。
VEOS
dSPACE 於 PC 上以 C 程式碼模擬虛擬 ECU 與環境模型的軟體平台。
OSA(Offline Simulation Application)
由 VEOS 建立的離線模擬應用(.osa),用於 VEOS 上的 SIL 模擬。
2. TargetLink 在 SIL 工具鏈的定位
TargetLink 可為 SIL 測試情境產生三種模型容器格式,其中 V-ECU implementation container 是 V-ECU 模擬的核心產物:
| 容器格式 | 副檔名 | 用途 |
|---|---|---|
| V-ECU implementation container | .vecu | 匯入 VEOS 建立 OSA,進行 SIL 模擬 |
| Simulink implementation container | .sic | 作為行為模型加入 ConfigurationDesk 或匯入 VEOS |
| Functional Mock-up Unit | .fmu | 用於符合 FMI 標準的工具 |
3. 解決方案工作流程
TargetLink 產生並匯出 V-ECU 實作分為兩步驟:產生產品碼、收集編譯所需全部檔案打包。整體到 VEOS 模擬的流程如下:
4. V-ECU Manager
TargetLink 的 V-ECU Manager 讓您匯出 V-ECU 實作供 VEOS SIL 模擬。匯出含兩步驟:為所選子系統與 DD CodeGenerationUnit 產生產品碼,再收集編譯所需全部檔案。
存取方式
TargetLink Main Dialog 區塊 → Tools 頁 → Export V-ECU Implementation 按鈕,開啟 V-ECU Manager。
設定選項
選擇子系統與 CGU、指定輸出目錄、是否為外部全域介面變數建立定義、V-ECU 的 UUID。
- Code generation units選擇一個 TargetLink 子系統,可另選一或多個 DD CodeGenerationUnit;勾選 Include subitems for code generation 會為巢狀 CGU 產生產品碼。
- 外部全域介面變數定義勾選 Create definitions for external global interface variables,TargetLink 產生 stub code 定義模擬所需、但不屬產品碼的外部介面變數(置於
tl_globalsdefs_generated.c)。若要在自訂模組定義,須取消勾選以免符號重複定義。 - UUID可輸入 V-ECU UUID;UUID 儲存在產生 V-ECU 的 TargetLink 子系統中,產生後請儲存子系統以保留 UUID。
5. 產生 V-ECU 的操作步驟
開啟模型並開啟 Manager
模型須為開啟狀態;於 TargetLink Main Dialog 的 Tools 頁點擊 Export V-ECU Implementation。
選擇子系統與目錄
選取要產生 V-ECU 的 TargetLink 子系統(必要時選 CGU),指定輸出目錄。
(視需要)產生程式碼
若尚未產生或需重新產生,由 Export V-ECU Implementation 選單選 Generate Code,待完成。
產生 V-ECU 實作
由選單選 Generate V-ECU implementation,TargetLink 產生 .vecu 並複製到目標路徑。
匯入 VEOS
將產生的 V-ECU 實作匯入 VEOS。
產生 OSA 並模擬
於 VEOS 產生 OSA(.osa),進行 SIL 模擬。
6. 自動化:tl_generate_vecu_implementation API
可透過 API 自動產生 V-ECU 實作(因產品碼須為容器一部分,故須先產生程式碼)。V-ECU 容器打包為 <TLSubsystemName>.vecu。
tl_generate_vecu_implementation('Model','myModel', ...
'TLSubsystems',{'ctrl'}, ...
'VEcuContainerDir','.\TLVECU')
| 參數 | 說明(預設值) |
|---|---|
Model | 含 TargetLink 子系統的模型名稱(預設:目前模型)。 |
TLSubsystems | 要產生 V-ECU 的子系統名稱(預設:模型內全部)。 |
DDCodeGenerationUnits | 要納入的 DD CodeGenerationUnit;auto 由 TargetLink 自動判斷,無程式碼時採用 stub code 並通知。 |
UUID | 各 V-ECU 的 UUID 清單(數量/順序須對應子系統);產生後儲存在子系統中。 |
VEcuContainerDir | V-ECU 輸出目錄(預設:.\TLVECU)。 |
GenerateGlobalSymbols | on 產生 tl_globalsdefs_generated.c(含 extern global 介面變數定義);若定義由 Addfile 區塊提供則設 off 以免重複(預設 on)。 |
7. 進階:以 RTI Bypass 動態整合模型到 V-ECU
動態整合:可透過 RTI Bypass Blockset,將 Simulink 或 TargetLink 模型動態整合到 VEOS SIL 模擬中執行的 V-ECU,適用於 bypass/繞行式的驗證情境。
8. V-ECU 實作產生的限制
| 情況 | 說明 |
|---|---|
| RTOS 模式 | 無法為以 RTOS 模式產生產品碼的子系統匯出 V-ECU。 |
| TOM(Target-Optimized) | 無法為產品碼(或巢狀 CGU)針對特定目標最佳化(TOM)的子系統匯出 V-ECU。 |
| 非同步 root functions | 無法為含非同步 root functions 的子系統匯出 V-ECU(VECU_EVENT_SIMULATION demo 提供替代作法)。 |
| Matrix 訊號 | root functions 含 matrix 介面變數者無法匯出 V-ECU。 |
| array-of-bus | root ports 路由 array-of-bus 訊號者,無法產生 V-ECU 容器。 |
| Adaptive AUTOSAR | code generation mode 設為 Adaptive AUTOSAR 者,不產生 V-ECU 容器。 |
| 同名原始檔 | 產生「路徑不同但檔名相同」的原始檔者,不產生 V-ECU 容器。 |
| A2L array-of-struct | 容器匯出時產生 A2L,array-of-struct 變數的各元件不會產生 A2L 項目。 |
9. 三種容器格式:如何選擇
| 面向 | V-ECU (.vecu) | SIC (.sic) | FMU (.fmu) |
|---|---|---|---|
| 主要平台 | VEOS(SIL) | ConfigurationDesk / VEOS | FMI 相容工具 |
| 產物 | OSA(離線模擬應用) | 行為模型 / 即時應用 | FMI 模型交換/協同模擬 |
| 代表用途 | 虛擬 ECU 的 SIL 模擬 | 產品碼作為行為模型(含 Bus Manager/BSC 整合) | 跨工具交換 |
關於 SIC 與 Bus Manager/BSC 的整合,請參閱同系列文件 SIC 與 BSC 整合說明 與 SIC 模組需求與 TargetLink 彈性調用。
原始文件出處(dSPACE RLS2024-B)
| 文件 | 檔名 |
|---|---|
| TargetLink Interoperation and Exchange Guide | TargetLinkInteroperationAndExchangeGuide.pdf |
| TargetLink Tool and Utility Reference(V-ECU Manager) | TargetLinkToolAndUtilityReference.pdf |
| TargetLink API Reference(tl_generate_vecu_implementation) | TargetLinkAPIReference.pdf |
| TargetLink Limitation Reference(V-ECU Implementation Generation) | TargetLinkLimitationReference.pdf |
| TargetLink Glossary · VEOS Manual | TargetLinkGlossary.pdf · VEOSManual.pdf |
路徑前綴:C:\Users\Public\Acolada\Cobrili\HelpSetStorage\dSPACEPDF\RLS2024-B\en\