AUTOSAR介绍、软件结构

AUTOSAR(一)


一、什么是AUTOSAR?

AUTOSAR (AUtomotive Open System ARchitecture) 是全球性的汽车开放式系统架构,其在汽车制造及其供应商行业,甚至电子、半导体和软件行业有广泛的应用。

AUTOSAR是一家致力于制定汽车电子软件标准的联盟,目前有100多个会员。各会员依据其对AUTOSAR的贡献及责任分为三个等级,Core Partners(核心合作伙伴)、Premium Partners(高级合作伙伴)、Associate Partners(发展合作伙伴)。9家核心公司主要负责AUTOSAR开发模式的筹划、管理和调控,也是AUTOSAR协议的发起人。高级合作伙伴和发展合作伙伴在核心会员成立的项目领导组的协调和监督下开展工作。值得一提的是,目前国内主机厂只有三家支持AUTOSAR协议,上汽、吉利和一汽。
在这里插入图片描述

为何使用AUTOSAR

AUTOSAR致力于标准化嵌入式软件架构,为创新的电子系统改进性能、安全、环境友好等奠定基础。软硬件之间彼此独立,各个层级之间的开发从此解耦,节省了开发成本和开发时间。对于OEM和供应商而言,彼此的软件复用性都大幅提升,提高了开发效率和开发质量。

下图很清晰体现了AUTOSAR对嵌入式软件开发带来的翻天覆地的变化。在此之前,while(1)中各种中断、定时器等,用一句话概括就是你中有我,我中有你。但是AUTOSAR的概念是把一切能剥离的模块全部剥离开,这样对各个模块的维护更加方便。

在这里插入图片描述

二、AUTOSAR 软件架构

在AUTOSAR架构中,系统软件从上到下分层依次为:应用层(Application Software Layer),运行时环境(Runtime Environment,RTE),基础软件层(Basic Software Layer,BSW),微控制器(Microcontroller)。

每层之间为保持独立性,每一层只能调用下一层的接口,并为其上一层提供接口。

在这里插入图片描述

1.应用层(Application)

应用层包含若干软件组件(Software Component,SWC),SWC封装了需要实现的具体功能,独立于微控制器的类型,与底层硬件的独立性是通过虚拟功能总线(VFB)来实现。而VFB则提供了一种通信机制,具体由RTE和BSW来实现。

SWC由端口(Port)和运行实体(Runnable Entity,RE)组成。

端口(Port)是SWC之间进行通信的接口,通信内容包含数据元素(Data Element,DE)和操作(Operation,OP)。

两种常用端口:发送-接收端口(Sender-Receiver Interface,S/R)和客户端-服务器端口(Client-Server,C/S)。

S/R用于数据传递,发送方将数据元素(Data Element,DE)发送给一个或者几个接收方。C/S用于操作(Operation,OP),即函数调用,服务器提供函数,而客户端用来调用函数,一个函数可以被多个客户端调用,但是一个客户端不能调用多个函数。

运行实体(Runnable Entity,RE)是一段可执行代码,封装了具体算法。

2.运行时环境(RTE)

RTE是AUTOSAR中虚拟总线功能(VFB)接口的实现。

3.基础软件层(BSW)

基础软件层又分为4个小层,分别是:服务层(Services Layer),ECU抽象层(ECU Abstraction Layer),微控制器抽象层(Microcontroller Abstraction Layer),复杂驱动(Complex Drivers)。

在这里插入图片描述
基础软件层包含如下类型的服务:

(1)输入/输出(I/O):对传感器、执行器和ECU外围设备的标准化访问
(2)内存(Memory):对内部/外部(非易失性存储器)的标准化访问
(3)加密(Crypto):对内部/外部加密原语的标准化访问
(4)通信(Communication):车辆网络系统、车载ECU通信系统和ECU内部软件的标准化访问
(5)非车载通信(Off-board Communication):V2X、车内无线网络系统和非车载ECU通信系统的标准化访问
(6)系统:提供标准化(包括操作系统,定时器,错误存储器)和ECU特定(ECU状态管理,看门狗管理)服务和库函数

服务层(Services Layer)

在BSW层最上层,提供以下服务:
(1)操作系统(OS)
(2)车辆网络通信和管理服务
(3)内存管理(NVRAM管理)
(4)诊断服务(包括UDS通信,错误存储器和故障处理)(5)ECU状态管理,模式管理
(6)逻辑和程序流监控(Wdg管理)

复杂驱动(Complex Drivers)

目的:提供复杂传感器和执行器的驱动
功能:重要的应用模块可以直接访问硬件资源,例如: 喷油量控制, 胎压监测
提供集成特殊功能的可能性,例如设备的驱动,这些驱动有以下特点:
(1)在AUTOSAR中没有明确规定
(2)对时序要求比较高
(3)用于移植目的ECU抽象层(ECU Abstraction Layer)提供访问外围设备的API,使更上层的软件独立于ECU硬件。

微控制器抽象层(Microcontroller Abstraction Layer)

包含可以直接访问微控制器和外围设备的底层驱动。
在这里插入图片描述

引用Vector资料中的一个例子,说明物理信号的变化如何在AUTOSAR软件中体现。

1-3步是信号在硬件中的“流动”情况:假设右门状态有变化,传感器会感知该变化,将检测到的电流信号通过ECU转换成电压信号,之后电压信号被微控制器外围设备感知,至此硬件传递完毕。反应在各硬件上的软件状态如4-6步描述,处在应用层的门控制模块会通过Rte-Read_DoorRight_IsOpen()、Rte_Read_Door_state()两个函数从RTE下层的BSW 读取数据,ECU抽象层通过ADC-get()从更底层读取数据。 其实AUTOSAR就是把一些基础软件封装成包,使得用户只需要关注上层应用层的开发,从而提高效率。


总结

  • 23
    点赞
  • 148
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值