AUTOSAR(Automotive Open System Architecture)即汽车开放系统架构,它将汽车电子控制单元(ECU)的软件底层做了一个标准的封装,使得开发者能够共用一套底层软件,并通过修改参数来匹配不同的硬件和应用层软件。AUTOSAR CP(Classic Platform)是AUTOSAR架构中的一个重要组成部分。在AUTOSAR CP中,MCAL(Microcontroller Abstraction Layer,微控制器抽象层)规范占据着核心地位。以下是对MCAL规范的介绍,包括一个具体的例子以及使用工具进行MCAL配置的过程和配置文件的内容。
1、MCAL规范内容
MCAL位于AUTOSAR软件架构的最底层,与微控制器的内部单元及其外设紧密相关。它接收来自上层的指令,完成对硬件的直接操作,并获取硬件的相关状态反馈给上层。MCAL对上层屏蔽了硬件的具体特征,只提供对应的操作接口。
MCAL的主要功能包括:
1) 硬件抽象:将微控制器的寄存器操作封装成统一的API,供上层调用。
2). 驱动实现:实现各种外设的驱动,如ADC(模数转换器)、PWM(脉冲宽度调制)、GPIO(通用输入输出)等。
3.) 状态反馈:将硬件的状态(如中断、错误等)反馈给上层。
2. 配置工具
AUTOSAR工具链(如Vector DaVinci Configurator或EB tresos Studio)提供了用于配置MCAL模块的可视化工具,通过这些工具可以生成符合AUTOSAR规范的ARXML文件。这些工具一般提供以下功能:
- 模块选择:用户可以选择需要配置的MCAL模块(如Port、Adc)。
- 参数设置:用户可以配置模块的参数,例如CAN的波特率,ADC的分辨率等。
- 生成配置文件:工具自动生成相应的ARXML文件,描述所有配置的详细信息。
3. ARXML配置文件示例
以下是一个MCAL模块(Port模块)的ARXML文件示例,展示了如何为Port模块配置引脚。
<AUTOSAR xmlns="http://autosar.org/schema/r4.0">
<AR-PACKAGES>
<AR-PACKAGE>
<SHORT-NAME>MCAL_PortConfig</SHORT-NAME>
<ELEMENTS>
<PORT-DRIVER-CONGIFURATION>
<SHORT-NAME>PortConfigSet</SHORT-NAME>
<PORT-CONTFIGURATION>
<SHORT-NAME>PinConfig_01</SHORT-NAME>
<PORT-PIN>PortPinA0</PORT-PIN>
<PORT-PIN-DIRECTION>INPUT</PORT-PIN-DIRECTION>
<PORT-PIN-LEVEL>LOW</PORT-PIN-LEVEL>
</PORT-CONTFIGURATION>
<PORT-CONTFIGURATION>
<SHORT-NAME>PinConfig_02</SHORT-NAME>
<PORT-PIN>PortPinA1</PORT-PIN>
<PORT-PIN-DIRECTION>OUTPUT</PORT-PIN-DIRECTION>
<PORT-PIN-LEVEL>HIGH</PORT-PIN-LEVEL>
</PORT-CONTFIGURATION>
</PORT-DRIVER-CONGIFURATION>
</ELEMENTS>
</AR-PACKAGE>
</AR-PACKAGES>
</AUTOSAR>
4. 配置说明
<AUTOSAR>
:根元素,包含所有的MCAL配置。<AR-PACKAGES>
:用于将配置进行逻辑分组。<AR-PACKAGE>
:MCAL配置的具体包,示例中为Port模块。<PORT-DRIVER-CONGIFURATION>
:定义了Port模块的具体配置。<PORT-CONTFIGURATION>
:定义具体的引脚配置,每个引脚的设置包括引脚名称、方向(INPUT或OUTPUT)和默认电平(HIGH或LOW)。
5. 示例解析
在此例子中,我们定义了两个引脚的配置:
PortPinA0
:配置为输入引脚,默认电平为低电平。PortPinA1
:配置为输出引脚,默认电平为高电平。
6. 配置流程小结
- 选择MCAL模块:选择需要配置的MCAL模块,如Port模块。
- 设置参数:为每个引脚设置方向、电平等参数。
- 生成ARXML文件:配置完成后使用工具生成ARXML文件,并导入至AUTOSAR开发环境中。
7. 总结
MCAL规范是AUTOSAR CP中的重要组成部分,它实现了对微控制器硬件的抽象和驱动。通过使用专门的配置工具(如Davinci等),开发者可以方便地配置MCAL模块,并生成相应的代码。配置文件(如arxml文件)则用于描述MCAL的配置参数和关系。在实际项目中,开发者需要根据具体的硬件和软件需求进行详细的配置和测试。