目录
一、汽车电子控制系统
1.1 基本构成
1.2 车用控制器软件标准
二、AUTOSAR规范基础理论
2.1 概述
2.2 AUTOSAR分层架构
2.3 软件组件
2.3.1 数据类型
2.3.2 端口与端口接口
2.3.3 软件组件的内部行为
2.4 AUTOSAR虚拟总线
2.5 AUTOSAR方法论
2.6 AUTOSAR应用接口
三、AUTOSAR工具链
一、汽车电子控制系统
1.1 基本构成
汽车电子控制系统主要由传感器、电子控制单元 (ECU)和执行器组成,对被控对象进行控制。
1.2 车用控制器软件标准
OSEK/VDX标准包括以下七个部分:
- OSEK OS
- OSEK COM
- OSEK NM
- OSEK/VDX实现语言规范
- OSEK/ORTI运行时接口规范
- OSEK-Time时间触发操作系统规范
- OSEK FTCom容错通信规范
EAST-EEA项目定义了一个分层的软件架构,并提出了一 个“中间件”的层次来提供支持嵌入式系统模块在不同平台之间移植的接口和服务;并且,EAST-EEA项目还定义了公共的架构描述语言ADL 。EAST-EEA项目的研究成果可谓是AUTOSAR规范的雏形。
二、AUTOSAR规范基础理论
2.1 概述
优点:
- 有利于提高软件复用度,尤其是跨平台的复用度;
- 便于软件的交换与更新;
- 软件功能可以进行先期架构级别的定义和验证,从而能减少开发 错误;
- 减少手工代码量,减轻测试验证负担,提高软件质量;
- 使用一种标准化的数据交换格式,方便各公司之间的合作交流等。
AUTOSAR 本质是一种契合分布式开发的方法论以及软件架构。
2.2 AUTOSAR分层架构
应用软件层ASW包含若干个软件组件SWC,软件组件间通过端口Port进行交互。每个软件组件可以包含一个或多个运行实体RE,运行实体中封装了相关控制算法,其由RTE事件触发。
运行时环境RTE作为应用软件层与基础软件加护的桥梁,为软硬件分离提供可能。RTE可以为实现软件组件间、基础软件间、软件组件与基础软件间的通信。
- RTE封装了基础软件层的通信与服务,为应用层软件组件提供了标准化接口。
- RTE抽象了ECU之间的通信,及RTE通过使用标准化接口将其统一为软件组件之间的通信。由于RTE的实现与具体ECU相关,所以必须为每个ECU分别实现。
基础软件层BSW可以氛围四层,即服务层、ECU抽象层、微控制器抽象层、复杂驱动。
- 服务层:系统服务、存储器服务、通信服务。
- ECU抽象层:板载设备抽象、存储硬件抽象、通信硬件抽象、I/O硬件抽象。负责提供统一访问接口,实现对通信、存储器、I/O的访问,从而不需要考虑这些资源是微控制器还是其片外设备提供的。
- 微控制器抽象层:实现不同硬件接口统一化
- 复杂驱动
2.3 软件组件
AUTOSAR软件组件大体上可分为原子软件组件(Atomic SWC)和 部件(Composition SWC)。其中,部件可以包含若干原子软件组件或 部件。原子软件组件则可根据不同用途分为以下几种类型:
- 应用软件组件:实现应用层控制算法
- 传感器/执行器软件组件:处理具体传感器/执行器信号,可以直接与ECU抽象层交互
- 标定参数软件组件:提供标定参数值
- ECU抽象软件组件:提供访问ECU具体I/O的能力
- 复杂驱动软件组件:可以定义端口与其他软件组件通信,也可以与ECU硬件交互,灵活性高,但因与应用相关,可移植性较差。
- 服务软件组件:主要用于基础软件层,可通过标准接口或标准AUTOSAR接口与其他类型的软件组件交互。
2.3.1 数据类型
AUTOSAR规范中定义了如下三种数据类型(Data Type):
- 应用数据类型(ADT):在软件组件设计 阶段抽象出来的数据类型,用于表征实际物理世界的量,是提供给应用 层使用的,仅仅是一种功能的定义,并不生成实际代码
- 实现数据类型(IDT):代码级别的数据类型,是对应用数据类型的具体实现;它需要引用基础数据类型 ,并且还可以配置一些计算方法(Compute Method)与 限制条件(Data Constaint)。
- 基础数据类型(Base Type):
在AUTOSAR中,对应用数据类型没有强制要求使用,用户可以直接使用实现数据类型。若使用应用数据类型,则必须进行数据类型映射,将应用数据类型与实现数据类型进行映射,从而对每个应用数据类型进行具体的实现。
2.3.2 端口与端口接口
软件组件的端口根据输入/输出方向可分为需型端口 (RPort)与供型端口(PPort),以及供需端口(PRPort)。
- 需型端口:用于从其他软件组件获得所需数据或者所请求的操 作。
- 供型端口:用于对外提供某种数据或者某类操作。
- 供需端口:兼有需型端口与供型端口的特性。
由于端口仅仅定义了方向,所以AUTOSAR中用端口接口(Port Interface)来表征端口的属性。
- 发送者-接收者接口(S/R):
- 客户端-服务器接口(C/S):
- 模式转换接口(Mode Switch Interface):
- 非易失性数据接口(Non-volatile Data Interface):
- 参数接口(Parameter Interface):
- 触发接口(Trigger Interface):
(1)发送者-接收者接口
用于数据的传递关系,发送者发送数据到一个 或多个接收者。
定义了一系列的数据元素(Data Element,DE),这些数据元素之间是相互独立的。一个软件组件的多个需型端口、供型端口、供需端 口可以引用同一个发送者-接收者接口,并且它们可以使用该接口中所 定义的任意一个或者多个数据元素,而并不一定使用所有数据元素。
(2)客户端-服务器接口
客户端-服务器接口用于操作(Operation,OP),即函数调用关 系,服务器是操作的提供者,多个客户端可以调用同一个操作,但同一 个客户端不能调用多个操作。
2.3.3 软件组件的内部行为
- 运行实体(Runnable Entity,RE):是一段可执行的代码,其封装了 一些算法。一个软件组件可以包含一个或者多个运行实体。
- 运行实体的RTE事件(RTE Event):每个运行实体都会被赋予一个RTE事件,用于引发这个运行实体的执行
- 周期性(Periodic)事件,即Timing Event;
- 数据接收事件(Data-received Event);
- 客户端调用服务器事件(Server-call Event)。
- 运行实体与所属软件组件的端口访问(Port Access):
-
- 对于S/R通信模式,可分为显示(Explicit)和隐式(Implicit)两种 模式。
- 对于C/S通信模式,可分为同步(Synchronous)和异步 (Asynchronous)两种模式
- 运行实体间变量(Inter Runnable Variable,IRV):
2.4 AUTOSAR虚拟总线
若从整车级别去看待整车上所有的功能模块,即软件组件的架构, 它们之间的通信形式主要涉及以下两种:
- 在单个ECU内部的通信(Intra-ECU Communication)
- 在多个ECU之间的通信(Inter-ECU Communication)
VFB是AUTOSAR提供的所有通信机制的抽象。通过VFB,无论软 件组件使用的是在ECU内部的通信还是在ECU之间的通信,对于应用软 件的开发者而言,没有本质区别。内部通信与外部通信的区别只有等到系统级设计与配置阶段,将软件组件分配到不同的ECU之后才会体现出来。最终,VFB的真实通信实现可以由RTE和基础软件来保证,所以, RTE是AUTOSAR VFB的具体实现.
2.5 AUTOSAR方法论
AUTOSAR方法论中车用控制器软件的开发涉及系统级、ECU级和软件组件级。
- 系统级:主要考虑系统功能需求、硬件资源、系统约束,然后建立系统架构;
- ECU级:根据抽象后的信息对ECU进行配置;
系统级和ECU级设计的同时,伴随着软件组件级的 开发。上述每个环节都有良好的通信接口,并使用统一的 arxml描述文件,以此构建了AUTOSAR方法论。
单个ECU开发流程:
- 编写系统配置输入描述文件
- 软件组件描述:包含系统中所涉及的软件组件的接口信息,例如数据类型、端口接口、端口等;
- ECU资源描述:包含系统中每一个ECU所需要的处理器及其外设、传感器、执行器等信息;
- 系统约束描述:包含总线型号、软件组件间的拓扑结构和一些映射关系等信息;
- 生成系统配置描述文件:基于系统配置输入描述文件,系统配置根据ECU资源和时序要求,将软件组件映射到对应的ECU上。
- ECU信息萃取:将待配置ECU信息抽取出来即可,服 务于之后的ECU配置。
- ECU配置:过程主要是对RTE和BSW的配置。
-
- 在RTE配置阶段,需要将软件组件的运行实体映射到相应的操作系统任务;
- 在BSW配置阶段, 需要详细配置BSW层中所需要用到的模块,一般有操作系统、通信服务、ECU抽象层和微控制器抽象层等。
- 代码集成:软件组件级实现的应用代码、RTE代码、BSW代码进行代码集成,编译链接,生成MCU可执行文件。
2.6 AUTOSAR应用接口
AUTOSAR规范中,将不同模块间通信的接口主要分为以下三类:
- AUTOSAR接口(AUTOSAR Interface)
-
- 属于应用接口,是从软件组件的端口衍生来的通用接口,描述数据或者服务。
- 由RTE提供给软件组件,可以作为软件组件间通信的接口,也可以作为软件组件与I/O 硬件抽象层或复杂设备驱动层间的接口。
- 标准AUTOSAR接口(Standardized AUTOSAR Interface)
-
- 是一种特殊的AUTOSAR接口,在AUTOSAR规范中有明确的定义。
- 由RTE向软件组件提供BSW中的服务,如存储器管理、ECU状态管理、“看门狗”管理等。
- 标准接口(Standardized Interface)
-
- 在AUTOSAR规范中以C语言中API的形式明确定义。
- 主要用于ECU上的BSW各模块间、RTE和操作系统间、RTE和通信模块间,应用软件组件不可访问。
三、AUTOSAR工具链