TECH ARTICLE
EB tresos Classic AUTOSAR:
EB tresos Classic AUTOSAR:
複雜驅動程序 (CDD) 技術要點
重點講解複雜驅動 (CDD) 與通信棧的交互用例、開發基本操作與模組實現,幫助開發者高效構建非標準的定制模組。
本篇文章基於 Elektrobit 提供的「使用 EB tresos Studio 高效能擴充客製化功能」影片內容整理。影片介紹了如何在 EB tresos Studio 中擴展與定制功能,重點講解複雜驅動(CDD)與通信棧的交互用例、開發基本操作與模組實現,並演示如何創建自定義代碼生成器,幫助開發者高效構建非 AUTOSAR 標準的定制模組,提升開發自動化與系統集成能力。
1. 什麼是複雜驅動程序 (CDD)?
複雜驅動程序 (Complex Device Driver, CDD) 是 AUTOSAR 基礎軟體 (BSW) 中的一個特殊模組。雖然它屬於 BSW 層,但它的設計極具靈活性,允許開發者繞過標準的分層限制,直接存取微控制器 (MCU) 的硬體資源。
2. 為什麼需要 CDD?
儘管 AUTOSAR 提倡標準化,但在以下三種情境中,CDD 是不可或缺的:
timer 極高的即時性需求
(High Timing Constraints):例如燃油噴射控制或電力電子的高頻切換,標準的 BSW 堆疊處理延遲可能過高,需要直接操作硬體。
memory_alt 非標準硬體
或特殊功能:當硬體具備 AUTOSAR 標準模組(如 MCAL)未定義的特殊功能時。
history 整合既有代碼
(Legacy Code):若公司已有成熟且經驗證的非 AUTOSAR 驅動程式,可以透過 CDD 封裝,快速整合進新的架構中。
3. CDD 在架構中的交互作用
CDD 的獨特性在於它能同時橫跨多個層級進行通訊:
| 交互對象 | 通訊方式 | 目的 |
|---|---|---|
| 應用層 (SWC) | 透過 RTE | 將處理後的複雜數據提供給上層邏輯。 |
| 基礎軟體 (BSW) | 直接呼叫 API | 與其他 BSW 模組(如模組化介面或診斷模組)協作。 |
| 硬體 (MCU) | 直接存取暫存器 | 實現極速響應或特殊硬體操作。 |
4. 開發與配置建議
在 EB tresos 中,開發 CDD 通常涉及:
-
code_blocks
介面定義: 在工具中定義 CDD 提供的 Ports,以便與 RTE 連結。
-
edit_square
手動實現: 與標準 BSW 模組不同,CDD 的內部邏輯大部分需要開發者手動編寫 C 語言代碼,因為其功能往往是高度客製化的。