TECH ARTICLE

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 語言代碼,因為其功能往往是高度客製化的。

教學影片