TECH ARTICLE

EB tresos Classic AUTOSAR:
MCAL 模塊培訓

探討 AUTOSAR 軟體架構中最底層的分層 MCAL,理解其定義、主要驅動類別與圖形化配置機制,實現硬體抽象化。

本篇文章基於 Elektrobit 提供的「EB tresos Classic AUTOSAR-MCAL 模塊基礎培訓」影片內容整理。影片介紹了 AUTOSAR 軟體架構中 MCAL 的定義和結構及其配置和更新原理,可以幫助開發人員理解並實現車輛網路通訊設計的標準化和模組化,從而讓創建、設計和 ECU 的特定功能的實現變得更輕鬆。

1. MCAL 的定義與定位

MCAL (Microcontroller Abstraction Layer) 是基礎軟體 (BSW) 中最底層的分層。它直接與微控制器 (MCU) 的暫存器進行交互,是唯一一個與硬體具有高度相關性的層級。

  • target 核心目標:將 MCU 的硬體功能(如引腳、定時器、通訊接口)封裝成標準化的 API。
  • diamond 重要意義:這使得上層軟體(如應用層或其餘 BSW 模組)不再需要關心晶片暫存器的具體細節,從而實現軟體在不同晶片平台間的高可移植性。

2. MCAL 包含的主要驅動類別

影片將 MCAL 內部的模組分為四大類,涵蓋了 ECU 運行所需的所有基本硬體操作:

memory A. 微控制器驅動

  • MCU 模組:負責時鐘設置(PLL)、復位(Reset)與電源管理。
  • GPT 模組 (General Purpose Timer):提供通用的定時功能。
  • Wdg 模組 (Watchdog):管理硬體看門狗,防止程序跑飛。

settings_input_component B. I/O 驅動

  • PORT 模組:負責引腳的複用配置 (Pin Muxing),定義每個腳位是輸入、輸出還是特殊通訊功能。
  • DIO 模組 (Digital I/O):對通用的數字引腳進行高低電平的讀寫。
  • ADC 模組:將類比訊號轉換為數字數值。
  • PWM 模組:輸出脈衝寬度調製訊號(常見於控制馬達或燈光)。

router C. 通訊驅動

CAN, LIN, SPI, FlexRay, Eth:這些模組負責與微控制器內部的通訊控制器交互,並為上層通訊堆疊提供統一的數據傳輸介面。

save D. 記憶體驅動

FLS 模組 (Flash Driver):提供對內部或外部 Flash 記憶體的擦除與寫入操作。

3. MCAL 的配置機制

在 EB tresos Studio 中,MCAL 的開發並非「手寫驅動」,而是透過「圖形化配置」:

1
導入晶片軟體包 根據使用的硬體(如 Infineon Aurix, NXP S32K 等)導入對應的 MCAL 交付包。
2
硬體資源分配 在工具中設定每個引腳的功能、CAN 總線的波特率、以及定時器的週期。
3
代碼生成 工具根據配置生成的 C 語言代碼會直接操作晶片的暫存器。

4. 關鍵概念:靜態配置與標準化

lock 靜態屬性

MCAL 的絕大部分參數在配置階段就已確定,確保系統在運行時具有高度的確定性。

api API 統一化

無論底層晶片是哪一家,上層調用 Can_Write()Dio_ReadChannel() 的方式都是一致的。這也是為什麼車廠可以輕鬆更換控制器供應商的原因。

這篇文章總結了 MCAL 作為硬體「翻譯官」的核心作用。它是整個 AUTOSAR 架構的物理支撐點。

教學影片