当前位置: 首页 > news >正文

MCAL(Microcontroller Abstraction Layer)介绍

目录

MCAL的核心作用

MCAL的模块组成

1. 微控制器驱动(Microcontroller Drivers)

2. I/O驱动(DIO, PWM, ADC等)

3. 通信驱动(Communication Drivers)

4. 存储驱动(Memory Drivers)

5. 复杂设备驱动(Complex Drivers)

MCAL的开发与配置流程

MCAL的典型应用场景

MCAL的优势与挑战

国产MCAL的发展现状


MCAL的核心作用

  1. 硬件抽象
    将MCU的硬件特性(如寄存器配置、外设操作)封装成标准化的API,使上层软件无需关心具体硬件型号。

  2. 统一接口
    提供跨平台的驱动程序接口(如GPIO控制、CAN通信),确保应用代码可移植到不同MCU。

  3. 降低开发成本
    避免针对不同芯片重复开发驱动代码,加速ECU软件开发流程。


MCAL的模块组成

MCAL根据功能划分为多个子模块,每个模块对应一种硬件外设或功能:

        这个是24年11月份推出的CP架构图,也是目前最新的,其中RTE下面的就是BSW层和MCAL层。里面的driver和controller都属于MCAL。 而痛心协议栈和操作系统则属于BSW层。

1. 微控制器驱动(Microcontroller Drivers)

  • 作用:配置MCU核心功能,如时钟、电源模式、中断控制器(如NVIC)。

  • 关键功能

    • 初始化MCU内核(如ARM Cortex-M/R系列)。

    • 管理低功耗模式(Sleep、Stop等)。

    • 控制内存保护单元(MPU)。

2. I/O驱动(DIO, PWM, ADC等)

  • DIO(Digital Input/Output)
    控制数字引脚输入/输出状态(如开关量信号读取、LED控制)。

  • PWM(Pulse Width Modulation)
    生成PWM波形(如电机调速、背光调节)。

  • ADC(Analog-to-Digital Converter)
    采集模拟信号(如温度传感器、电池电压)。

3. 通信驱动(Communication Drivers)

  • CAN(Controller Area Network)
    提供CAN控制器配置、报文收发接口(如车身网络通信)。

  • LIN(Local Interconnect Network)
    支持LIN主从节点通信(如车窗控制)。

  • FlexRay
    高速实时通信驱动(如线控系统)。

  • Ethernet
    适用于Adaptive AUTOSAR的以太网驱动(如自动驾驶数据传输)。

4. 存储驱动(Memory Drivers)

  • Flash驱动
    管理程序存储器的擦写操作(如OTA升级)。

  • EEPROM驱动
    控制非易失性存储(如标定数据保存)。

  • RAM测试
    实现内存自检(满足ISO 26262功能安全要求)。

5. 复杂设备驱动(Complex Drivers)

  • 作用:处理非标准外设或高实时性需求(如直接控制传感器/执行器)。

  • 示例

    • 电机控制(如BLDC电机FOC算法)。

    • 高精度定时器(如喷油控制时序)。

        标准MCAL模块主要包括MCU、GPT、WDG、DIO、ICU、OCU、SPI、CAN、LIN、ETH、PORT、FR(FLEXRAY)、FLS、FEE、ADC、PWM一共16个,不知道为什么IIC不是标准模块。但是好像用IIC缺失比较少。这里还有一个问题需要注意,汽车电子领域用的MCU都是专供这个领域的,比如英飞凌的TC系列芯片(TC367、TC377、TC397)、NXP的S32K系列(S32K124、S32K324)、瑞萨的RH系列(RH850)。最近TI也想进这个领域分蛋糕,但是他们的芯片用过一次,属实一般。虽然他们的STM32还挺好用的。这里国产的旗芯微也不错。


MCAL的开发与配置流程

  1. 硬件需求分析
    根据ECU需求选择MCU型号(如英飞凌TC3xx、NXP S32K),明确外设资源(CAN通道数、ADC精度等)。

  2. 工具链配置
    使用AUTOSAR工具(如Vector DaVinci Configurator、EB Tresos)生成MCAL配置代码:

    • 定义引脚映射(如Port模块配置)。

    • 设置通信参数(如CAN波特率、报文ID过滤)。

    • 配置中断优先级、DMA通道等。

  3. 代码生成与集成
    工具自动生成C代码(如Mcu_Cfg.cCan_Cfg.c),与手动编写的复杂驱动代码集成。

  4. 测试验证

    • 静态测试:检查配置是否符合MCU硬件限制。

    • 动态测试:通过HIL(硬件在环)验证外设功能(如ADC采样精度、CAN通信稳定性)。

    • 功能安全测试:验证内存保护、错误注入处理机制(如ASIL D要求)。

        工具链里面用的最多的就是EB其次是Vector的达芬奇。感觉EB更好用点,不知道是不是用的多的原因。但是瑞萨只支持达芬奇,用瑞萨的时候就得用达芬奇了。


MCAL的典型应用场景

  1. 车身控制模块(BCM)

    • DIO控制车灯、车门锁。

    • LIN驱动车窗升降电机。

    • PWM调节车内氛围灯亮度。

  2. 发动机控制单元(ECU)

    • ADC采集进气压力、氧传感器信号。

    • PWM控制燃油喷射脉宽。

    • 定时器驱动火花塞点火时序。

  3. 电池管理系统(BMS)

    • ADC监测电池单体电压、温度。

    • CAN通信上报电池状态。

    • Flash存储电池健康数据。

  4. 智能驾驶域控制器

    • Ethernet驱动高速数据传输(如摄像头、雷达数据)。

    • 复杂驱动处理多传感器同步采样。

        除了这些还有VCU、数字钥匙、智能流媒体后视镜、各种车身域控单元等等。后续给大家讲下车里的架构以及架构的发展。


MCAL的优势与挑战

优势

  • 硬件无关性:上层软件无需修改即可适配不同MCU。

  • 标准化开发:减少底层驱动开发时间,提升代码复用率。

  • 安全合规:内置内存保护、错误检测机制,支持ISO 26262 ASIL等级认证。

挑战

  • 硬件适配复杂性:不同MCU的寄存器差异需精细处理。

  • 性能优化:高实时性场景(如电机控制)需优化驱动代码效率。

  • 工具链依赖:MCAL配置高度依赖商业工具(如Vector、EB),成本较高。


国产MCAL的发展现状

  • 技术突破:经纬恒润、东软睿驰、普华基础软件等企业已推出国产AUTOSAR MCAL解决方案,逐步替代海外产品。

  • 生态建设:国产MCU厂商(如芯驰科技、赛腾微电子)与本土AUTOSAR供应商(三巨头)合作,提供“芯片+MCAL”一体化方案。

拿了这位作者一张国产芯片介绍表给大家看一下。(懒着整理了哈哈,如果侵权的话我后面自己整理一下)

22家国产汽车MCU公司及型号盘点 - 知乎

  • 挑战

    • 工具链成熟度(如调试、测试功能)仍需提升。

    • 高端MCU(如车规级多核芯片)的MCAL支持能力不足。

简单介绍下国产AUTOSAR软件的三巨头:

  1. 东软睿驰

    • 产品优势:东软睿驰的汽车基础软件平台产品NeuSAR具有软硬件协同能力强、软件模块覆盖完整度高等优势。其AUTOSAR产品NeuSAR版本为21-11,是目前国内最先进的,包括支持AUTOSAR Adaptive标准的NeuSAR aCore平台和支持AUTOSAR Classic标准的NeuSAR cCore平台。
    • 生态建设:东软睿驰致力于建立完整的开发生态,包括从整车SOA设计到域控制器的应用架构设计,同时配置相应的平台管理产品和中间件。此外,东软睿驰还牵头推进了中间件ASF、车云一体等技术规范、行业标准的建设,在汽车基础软件的应用与传播、技术交流学习的促进、行业共识的形成、行业标准的建设等方面起到了重要作用。
    • 会员等级:东软睿驰在2017年加入AUTOSAR时即为2级会员,后于2022年升级为1级会员。
  2. 经纬恒润

    • 公司背景:经纬恒润成立之初靠代理销售国外汽车电子研发工具起家,2005年进入汽车电子领域,通过承接项目迎来汽车电子业务发展转折点。
    • 合作情况:经纬恒润与英飞凌等硬件芯片厂商有长期合作关系,其自主开发的AUTOSAR中间件也更贴近中国国情。
    • 会员等级:经纬恒润在2007年就已加入AUTOSAR,是最早加入的中国企业之一,后于2022年升级为1级会员。
  3. 普华基础软件

    • 公司背景:普华基础软件由中央直属中国电子科技集团公司(CETC)控股,是纯软件企业,基本不涉及硬件生产制造。其汽车电子事业部专注于AUTOSAR基础软件的技术开发和产品推广应用。
    • 产品与服务:普华基础软件与意法半导体合作密切,并提供ST系列芯片的MCAL Demo工程和培训服务、集成服务等。此外,普华还自主研发了ORIENTAIS AUTOSAR汽车电子基础软件平台,该平台提供了操作系统、底层驱动等基础软件模块及集成开发环境。其操作系统严格遵循ISO 26262开发流程,满足行业最高的功能安全要求。
    • 合作与认证:普华基础软件在2017年加大与英飞凌的合作,并推出了基于AUTOSAR 4.2.2的英飞凌AURIX平台。同时,普华基础软件也通过了ASPICE 3级认证。

        不过我觉得这里面恒润是实力是稍强于另外两家的,我指的是技术实力哈,这个可以去整车厂采访一下,而且培养体系比较完善,就是工资一般,所以有汽车电子界的黄埔军校的称号。

相关文章:

MCAL(Microcontroller Abstraction Layer)介绍

目录 MCAL的核心作用 MCAL的模块组成 1. 微控制器驱动(Microcontroller Drivers) 2. I/O驱动(DIO, PWM, ADC等) 3. 通信驱动(Communication Drivers) 4. 存储驱动(Memory Drivers&#xf…...

爬虫:PhantomJS的详细使用和实战案例

文章目录 一、PhantomJS介绍1.1 什么是 PhantomJS1.2 PhantomJS 的特点与优势二、PhantomJS 的安装2.1 在 macOS 上安装 PhantomJS2.2 在 Linux 上安装 PhantomJS2.3 在 Windows 上安装 PhantomJS2.4 验证安装三、PhantomJS 的基本使用3.1 示例 1:打开网页并截图3.2 示例 2:获…...

目标检测——数据处理

1. Mosaic 数据增强 Mosaic 数据增强步骤: (1). 选择四个图像: 从数据集中随机选择四张图像。这四张图像是用来组合成一个新图像的基础。 (2) 确定拼接位置: 设计一个新的画布(输入size的2倍),在指定范围内找出一个随机点(如…...

深度学习工程师的技术图谱和学习路径

在构建一个深度学习工程师的技术图谱时,按照“技能树与能力模型”的结构可以帮助清晰地展示出技术体系的层次化关系,帮助学习者更好地理解每个技术点的依赖与顺序。 深度学习工程师的技术图谱和学习路径 以下是深度学习工程师的技能树,包括从基础到进阶的学习路径,以及对…...

Qt 文件操作+多线程+网络

文章目录 1. 文件操作1.1 API1.2 例子1,简单记事本1.3 例子2,输出文件的属性 2. Qt 多线程2.1 常用API2.2 例子1,自定义定时器 3. 线程安全3.1 互斥锁3.2 条件变量 4. 网络编程4.1 UDP Socket4.2 UDP Server4.3 UDP Client4.4 TCP Socket4.5 …...

如何使用ArcGIS Pro制作横向图例:详细步骤与实践指南

ArcGIS Pro,作为Esri公司推出的新一代地理信息系统(GIS)平台,以其强大的功能和灵活的操作界面,在地理数据处理、地图制作和空间分析等领域发挥着重要作用。 在地图制作过程中,图例作为地图的重要组成部分&…...

Kotlin 嵌套类和内部类

在Kotlin中,嵌套类(Nested Class)和内部类(Inner Class)是两种不同的类,它们在定义和使用上有一些区别。 1.嵌套类(Nested Classes)默认是静态的(即等同于Java中的stati…...

蓝蝶(BlueStacks)模拟器Root、Magisk、LSPosed及Shamiko框架安装与过应用检测指南

蓝蝶(BlueStacks)模拟器Root、Magisk、LSPosed及Shamiko框架安装与过应用检测指南 蓝蝶bluestacks模拟器root和magisk以及Lsposed和shamiko框架的安装过应用检测 一、引言 蓝蝶(BlueStacks)模拟器是一款广受欢迎的安卓模拟器&…...

OpenCV计算摄影学(6)高动态范围成像(HDR imaging)

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 高动态范围成像(HDR imaging)是一种图像处理技术,旨在通过增加图像的动态范围来更准确地表示真实世界的亮度差…...

[ComfyUI][AI生图]如何在Comfyui中安装插件管理器

如何在ComfyUI便携版中安装插件管理器 在现代软件环境中,图形用户界面(GUI)提供了一种直观的方式来与应用程序交互。ComfyUI是一个出色的GUI框架,它使用户能够通过图形化方式配置和管理他们的应用程序。特别是ComfyUI的便携版,它允许用户在没有安装的情况下使用这一工具,…...

初探Ollama与deepseek

什么是Ollama?它与大模型有什么联系? 简单说,Ollama就像是你电脑上的一个 “大模型小助手”。 以前,很多强大的大语言模型,比如能回答各种问题、写文章、翻译等的那些模型,要么只能在网上的服务器上用&am…...

Linux top 常用参数记录

top命令经常用来监控linux的系统状况,能实时显示系统中各个进程、线程的资源占用情况,是常用的性能分析工具。 一些常用参数记录 top的使用方式 top [-d number] | top [-bnp] # 5s 更新一次 top -d 5# 进行2次top命令的输出结果 top -n 2# 查看进程的…...

CCF-CSP认证 202104-1灰度直方图

题目描述 思路 首先输入矩阵长度、矩阵宽度和灰度范围&#xff0c;结果数组长度可固定&#xff0c;其中的元素要初始化为0。在输入灰度值的时候&#xff0c;结果数组中以该灰度值为索引的元素值1&#xff0c;即可统计每个灰度值的数量。 代码 C版&#xff1a; #include <…...

怎么下载安装yarn

安装 npm install --global yarn 是否安装成功 yarn -v Yarn 淘宝源安装&#xff0c;分别复制粘贴以下代码行到黑窗口运行即可 yarn config set registry https://registry.npm.taobao.org -g yarn config set sass_binary_site http://cdn.npm.taobao.org/dist/…...

Vulhub靶机 AppWeb认证绕过漏洞(CVE-2018-8715)(渗透测试详解)

一、开启vulhub环境 docker-compose up -d 启动docker ps 查看开放的端口 影响版本 Appweb 7.0.2以及之前的版本 二、访问靶机IP 8080端口 访问IP会弹出个登录框 1、随便输个用户名&#xff0c;利用burp抓包 2、修改数据包 &#xff0c;发包 Authorization: Digest usern…...

CSS 系列之:grid 布局

基本概念 <template><div class"parent"><div class"box">p1-1</div><div class"box">p1-2</div><div class"box">p1-3</div></div><div class"parent"><…...

DeepSeek MLA(Multi-Head Latent Attention)算法浅析

目录 前言1. 从MHA、MQA、GQA到MLA1.1 MHA1.2 瓶颈1.3 MQA1.4 GQA1.5 MLA1.5.1 Part 11.5.2 Part 21.5.3 Part 3 结语参考 前言 学习 DeepSeek 中的 MLA 模块&#xff0c;究极缝合怪&#xff0c;东抄抄西抄抄&#xff0c;主要 copy 自苏神的文章&#xff0c;仅供自己参考&#…...

【计算机网络入门】初学计算机网络(七)

目录 1. 滑动窗口机制 2. 停止等待协议&#xff08;S-W&#xff09; 2.1 滑动窗口机制 2.2 确认机制 2.3 重传机制 2.4 为什么要给帧编号 3. 后退N帧协议&#xff08;GBN&#xff09; 3.1 滑动窗口机制 3.2 确认机制 3.3 重传机制 4. 选择重传协议&#xff08;SR&a…...

Conda 环境搭建实战:从基础到进阶

在当今复杂多变的软件开发与数据科学领域&#xff0c;拥有一个稳定、可复现且易于管理的开发环境是项目成功的基石。Conda 作为一款强大的跨平台环境管理与包管理工具&#xff0c;为开发者提供了便捷高效的环境搭建与依赖管理解决方案。本文将深入探讨 Conda 环境搭建的实战技巧…...

大数据-236 离线数仓 - 会员活跃度 WDS 与 ADS 导出到 MySQL 与 广告业务 需求分析

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; Java篇开始了&#xff01; 目前开始更新 MyBatis&#xff0c;一起深入浅出&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff0…...

鸿蒙同城兴趣圈页面构建:活动热区地图、话题动态与安全提示模块详解

鸿蒙同城兴趣圈页面构建&#xff1a;活动热区地图、话题动态与安全提示模块详解 前言 在 HarmonyOS 6.0 应用开发中&#xff0c;社交类页面的地理可视化、话题互动和安全提示是提升用户体验的关键补充模块。本文将以“同城兴趣圈”应用中的“活动热区”模拟地图、“话题动态”帖…...

我见过最聪明的技术人,都在偷偷培养这3种“非技术能力”

在软件测试行业摸爬滚打这些年&#xff0c;我见过太多天赋异禀的技术从业者&#xff1a;有人能一夜吃透新的自动化测试框架&#xff0c;有人能对着流量日志半小时定位出隐藏半年的内存泄漏问题&#xff0c;有人能把性能测试指标优化到远超行业标准。可几年过去&#xff0c;真正…...

ARM Cortex-M4中断优先级与嵌套机制详解:从原理到实战配置

1. 项目概述&#xff1a;深入理解中断的“秩序”在嵌入式开发&#xff0c;尤其是基于ARM Cortex-M4这类高性能微控制器的项目中&#xff0c;中断系统是驱动实时响应的核心引擎。它就像一家繁忙餐厅的后厨&#xff0c;各种订单&#xff08;外部事件&#xff09;会随时涌入。如果…...

G-Helper终极指南:如何用免费开源工具彻底替代Armoury Crate

G-Helper终极指南&#xff1a;如何用免费开源工具彻底替代Armoury Crate 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbo…...

从Halcon助手到你的程序:手把手教你将HSmartWindow中的ROI区域‘抠’出来并用起来

从Halcon助手到C#程序&#xff1a;ROI区域的高效迁移与应用实战 在工业视觉开发中&#xff0c;ROI&#xff08;Region of Interest&#xff09;的交互式调整是核心痛点之一。许多开发者习惯在Halcon助手中反复调试ROI参数&#xff0c;却苦于无法将这些精心调整的区域无缝迁移到…...

紫光同创FPGA网络摄像头方案选型指南:OV7725 vs OV5640,YT8531 vs KSZ9031怎么选?

紫光同创FPGA网络摄像头方案选型指南&#xff1a;OV7725 vs OV5640&#xff0c;YT8531 vs KSZ9031深度解析 在工业视觉和安防监控领域&#xff0c;FPGA因其并行处理能力和低延迟特性&#xff0c;成为实时视频采集与传输的理想选择。紫光同创作为国产FPGA的重要代表&#xff0c;…...

别再傻等串口了!用STM32CubeMX+DMA实现串口收发,CPU效率直接拉满

STM32CubeMXDMA串口通信&#xff1a;释放CPU性能的实战指南 在嵌入式系统开发中&#xff0c;串口通信是最基础也最常用的外设之一。然而&#xff0c;传统的轮询或中断方式处理串口数据会大量占用CPU资源&#xff0c;这在需要同时处理电机控制、传感器数据融合等多任务的复杂系统…...

Taotoken用量看板如何帮助团队管理API成本

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Taotoken用量看板如何帮助团队管理API成本 对于团队技术负责人或项目管理者而言&#xff0c;在引入大模型能力后&#xff0c;一个核…...

AArch64架构SMCR_EL3寄存器详解与SME向量计算优化

1. AArch64系统寄存器与SMCR_EL3概述在Armv8-A/v9架构中&#xff0c;系统寄存器是处理器状态和功能控制的核心枢纽。作为特权级软件与硬件交互的接口&#xff0c;每个系统寄存器都承担着特定的控制、配置或状态监控职责。SMCR_EL3&#xff08;SME Control Register at EL3&…...

服务通信模式选择完全指南

服务通信模式选择完全指南 前言 在微服务架构中&#xff0c;服务间通信是核心基础设施之一。选择合适的通信模式直接影响系统的性能、可靠性和可维护性。本文将详细介绍同步通信和异步通信的各种模式&#xff0c;以及如何根据业务场景做出最佳选择。 一、服务通信概述 1.1 通信…...