AUTOSAR开发

  1. 综述

本文档主要描述了VP项目MCU芯片TC297的AUTOSAR方案。MCU的基础软件由AUTOSAR软件实现,AUTOSAR可简易理解为如下层次。

  1. MCU芯片驱动层:MCU芯片的抽象层,目的是将各类MCU芯片进行抽象,向上统一接口,隔离其他层次软件,做到足够的解耦状态,以便更换芯片时其他软件无需变更只需更换这一层软件就可。MCU芯片的抽象层包含Port,CAN,SPI,ETH,MCU,WDG,GPT等。
  2. 控制器抽象层:控制器抽象层(包含I/O抽象驱动),作用是将控制器的外设进行抽象,向上统一接口。这一层的目的是可以控制器不同的外设需求进行抽象,做到上下隔离,解耦。重新设计控制器时,修改本层即可。包含:Fee,Mefif,Canif,Ethif等等。
  3. Service层:这一层是Autosar核心层,包含内存管理,网络管理,数据路由,UDS诊断管理,XCP标定等汽车领域通用化的软件服务都在这一层有所体现。关联了ISO14229,ASAP2,J1939等汽车标准,同时将成熟的MCU协议软件集成到这一层中;
  4. Autosar OS:OS实际上属于Service层的模块,但较为核心且独立,所以单独列出。AUTOSAR OS是基于OSEC OS进行开发的,区别于Linux,AUTOSAR OS功能相对简洁,不包含外设驱动,只关注任务调度。且所有任务都是静态分配,不支持动态任务分配。使用调度表进行任务调度,可对任务进行优先级,是否抢占,任务堆栈等进行设置,对二类中断进行统一管理。有专门配置选项进行管理。
  5. 复杂驱动:对不易被统一接口,未被AUTOSAR定义,但属于基础软件,各控制器自定义的软件可放在复杂驱动中。
  6. RTE:可理解为数据接口层。

  1. 系统硬件架构图

根据项目的功能需求,板子的硬件模块图如下:

图1 VP项目五仁板子的硬件模块图

  1. 设计方案

AUTOSAR软件整体分为三部分:应用层软件、BSW与CDD和MCAL。AUTOSAR软件整体框图如下图所示。

图1 AUTOSAR软件整体框图

  1. 应用层软件依据具体需求,由模型生成代码或者手写代码方式实现。应用层软件具体功能,本文档暂不涉及。
  2. BSW部分是AUTOSAR协议栈的主体,通过配置软件进行参数配置,由工具生成代码。CDD部分依据具体需求,由手写代码实现。
  3. MCAL部分是芯片外设的驱动,依据项目中使用到的外设和使用方式,通过配置软件进行参数配置,由工具生成代码。

下文介绍各个模块包含的功能。

    1. BSW模块

BSW模块是AUTOSAR的标准模块,主要包含(1)CAN、LIN、ETH等通信服务;(2)OS、ECUM等系统服务;(3)DEM、DCM等诊断服务;(4)FEE、NVM等存储服务。该部分可以在EB工程的基础上,依据VP具体需求进行更改。使用到的BSW模块如下图所示。

 

图2 BSW模块

    1. CDD模块

AUTOSAR没有覆盖到的一些特殊的功能,需要作为CDD进行开发。VP项目中CDD模块如下图所示。

图3 CDD模块

    1. MCAL

MCAL是MCU外设的底层驱动。该部分已经VP项目中具体使用到的外设和各外设的使用方式,通过配置软件进行参数配置,并且生成代码。VP项目中用到的外设和对应外设所驱动的外部设备,见下图所示。

图4 MCAL外设及外部设备

猜你喜欢

转载自blog.csdn.net/weixin_45905610/article/details/128439836