autosar详细介绍(vector的文档_AUTOSAR之MCAL简介上

本文介绍了AUTOSAR架构中的MCAL层,包括Microcontroller Abstractions Layer、ECU Abstraction Layer、Complex Drivers和Service Layer。MCAL层包含如ADC、PWM、ICU等驱动,为上层模块提供访问MCU外设的接口。同时概述了各驱动的功能,如Port、DIO、ADC等,为理解AUTOSAR系统打下基础。
摘要由CSDN通过智能技术生成

在AUTOSAR的架构中,将其划分为三层,如下:

91a2e14696cf555a2b7ab829eec6851f.png

在RTE以下的,由四个大的components组成,

1. Microcontroller Abstractions Layer : 这一层是基础软件的最底层,主要是包括MCU的外设驱动,比如:ADC,GPT, DIO等等一系列驱动,通常称为MCAL层。这部分的驱动都是由芯片厂商提供。

2. ECU Abstraction Layer :这一层主要负责将MCAL层的驱动接口进行抽象封装,当然也包括除了MCU的驱动接口。这一层负责提供API给更上层模块提供接口来访问MCU的外设驱动以及和MCU的联系。

3. Complex Drivers :复杂驱动,可以看到这一层是直接连接Microcontroller层与RTE的。通常有复杂驱动,比如Rtc,SBC这些复杂驱动,这些是根据实际项目来决定有没有这些功能,不属于AUTOSAR定义的标准模块。因此,AUTOSAR预留出这一层来给用户自己编写这类驱动,然后集成到AUTOSAR的架构中。通常这些复杂驱动都是对时间严格的限制或者是模块移植。

4. Service Layer : 服务层是BSW的最高层,也有提供服务给Application。服务层主要提供的服务有:

a) 操作系统

b) 整车网络通信管理

c) 存储服务

d) 诊断服务,包括UDS服务和错误事件管理

e) ECU状态管理

f) ECU模式管理

g) 看门狗管理

在AUTOSAR中,通常是以Stack为划分标准,比如有ComStack,MemStack和IO Stack等等(在往后的文章会讲解这些Stack),于是将AUTOSAR划分为以下几个Stack:

4bc73224bb7d114f71b30a656dd9d490.png

我们就以这些Stack为单位,简单的介绍一下这些Stack分别涉及到哪些module。

首先是MCAL(微处理器抽象层):

相信只要是接触过嵌入式软件开发的人都清楚,每个MCU都包括许多个外设。在上图,在Microcontroller中,代表MCU所拥有的外设,当然不是所有的MCU都能拥有这里列举的全部外设,这个需要根据具体的MCU来判决。下面我们简单介绍一下每个driver的作用:

0a8ad20d47129109b425cbeefd51a2d1.png

首先是I/O Drivers Group:

1. Port Driver:这个是MCU最为普遍的外设之一,每个MCU肯定需要我们去配置每个引脚的属性,比如说,方向是输入还是输出,引脚类型是GPIO还是ADC等等。每个要用到的MCU引脚必须要在Port中有被定义,后续模块才能正常使用。

2. DIO Driver:每个MCU都有引脚作为普通的输入或者输出引脚,这个模块就是把所有要用到的输入输出定义出来,方便上层应用。

3. ADC:这个也是比较普遍的IO口类型,用来将模拟输入转换成数字信号。这个模块主要是配置ADC的通道,转换模式等等。

4. PWM:在某种情况下,可能需要MCU输出一个脉冲,脉冲的占空比可以配置成固定或者变化,周期同样可以配置成固定或者变化,再或者占空比和周期都配置成固定或者可改变,这时候就需要这个模块了。

5. ICU:输入捕获单元,这个主要是用来捕获IO口上边缘变化,包括上升沿和下降沿。可以用来作为信号边沿检查,中断唤醒,边沿或者脉冲计数,边沿时间戳计算。

6. OCU,输出比较单元,当计数器到达设定的阈值是,OCU便会自动开始比较并执行相应的操作,可以用来启动或者禁止某个通道的通知,获取计数器值,或者启动停止输出通道。

Wireless Communication Driver Group:

1. Wireless Ethernet Driver : 无线以太网驱动,主要负责无线网的发送和接收,以及一些错误处理机制,将无线以太网抽象为上层使用。

Communication Drivers Group:

1. Ethernet Driver : 将多个同等的Ethernet控制器抽象,并提供给上层一个独立于硬件接口。其中包括初始化,配置和数据的传输。一个以太网驱动仅能支持一种类型的Ethernet控制器,如下图

ceea2b32a98bf332ee8500b26436970c.png

2. FlexRay Driver: 将不用的FlexRay通讯控制器以及其硬件特性封装起来给FlexRay interface使用去访问FlexRay硬件。我们需要在这个模块配置数据处理单元,控制指令和信息数据的传输以及接口状态数据的规定

3. Can Driver :Can在汽车上应用是最为广泛,Can驱动是对Can处理器的抽象,主要需要配置波特率,采样点,报完ID,报文ID过滤器,mail box的使用,唤醒检查以及错误处理机制等等

4. Lin Driver :Lin是基于UART/SCI协议演变出来的,属于单线通讯。而Lin驱动就是针对Lin通讯的硬件抽象,给上层提供报文的发送与接受接口,以及唤醒和总线错误处理机制。

5. SPI Handle Driver:也是我们常说的SPI驱动,是MCU每部同步通讯串行接口驱动,可以为不同的设备(EEPROM或者Wdg)提供读写访问服务。而我们需要配置好SPI的模式包括Clock的空闲电平,数据的采样边缘,波特率等基本属性,当然还包括数据的缓冲区以及不同SPI通道的优先级。

今天就先介绍这么多,剩下的一些group请期待小编下次更新。

这些目前的介绍是有点简单或者枯燥,但是个人觉得首先简单了解一下每个模块的功能,对后面实际的配置有很大的帮助,当然如果你已经了解过了不妨再次加深印象。在后续的更新中将会着重针对每个Stack展开详细的介绍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值