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 的開發並非「手寫驅動」,而是透過「圖形化配置」:
4. 關鍵概念:靜態配置與標準化
MCAL 的絕大部分參數在配置階段就已確定,確保系統在運行時具有高度的確定性。
無論底層晶片是哪一家,上層調用 Can_Write() 或 Dio_ReadChannel() 的方式都是一致的。這也是為什麼車廠可以輕鬆更換控制器供應商的原因。
這篇文章總結了 MCAL 作為硬體「翻譯官」的核心作用。它是整個 AUTOSAR 架構的物理支撐點。