导图社区 AUTOSAR规范基础理论
AUTOSAR分层架构及软件组件。AUTOSAR定义的基于CAN总线时间同步的CanTSyn模块处理CAN总线上的时间信息分发,它以广播的形式将时间信息从master节点(TM) 传输到各slave节点(TS),还可通过时间网关(TW)将时间同步到其他子网,以解决因各ECU节点的硬件时钟信号偏差、CAN总线传输延时如协议仲裁以及各ECU节点内的软件处理等原因导致的时间延迟。
编辑于2021-04-05 01:23:56AUTOSAR
官网:http://www.AUTOSAR.org/
1. 自适应AUTOSAR平台
AUTOSAR Adaptive Platform
2. 经典AUTOSAR平台
AUTOSAR Classic Platform
2.1 分层架构
分层架构实现软硬件分离的关键
1. 应用软件层 ASW
Application Software Layer
1.1. 软件组件的内部行为 IB
Internal Behaviour
运行实体 RE
Runnable Entity(可以是一个也可以是多个) 运行实体是一段可执行的代码,其中封装了相关控制算法,其可由RTE事件(RTE Event)触发。 一个软件组件可以包含一个或者多个运行实体。
运行实体的RTE Event
每个运行实体都会被赋予一个RTE事件,这个事件可以引发这个运行实体的执行
1.周期性事件 Timing Event
2.数据接收事件 Data-Received Event
3.客户端调用服务器事件 Server-Call Event
运行实体与所属软件组件的端口访问 Port Access
1.通信模式:S/R为例
1.显示 Explicit
数据读写是即时的
2.隐式 Implicit
当多个运行实体需要读取相同的数据时,若能在运行实体运行前先把数据读到缓存中,在运行实体运行结束后再把数据写出去,则可以改善运行效率。此为隐式模式
2.通信模式:C/S为例
1.同步 Synchronous
2.异步 Asynchronous
运行实体间变量 IRV
inter runnable variable 两个运行实体之间交互的变量
1.2. n个软件组件 SWC
Software Component 软件组件间通过端口(Port)进行交互
原子软件组件 Atomic SWC
按用途分类
1.应用软件组件 Application SWC
主要用于实现应用层控制算法
2.传感器/执行器软件组件 Sensor/Actator SWC
用于处理具体传感器/执行器的信号,可以直接与ECU抽象层交互。
3.标定参数软件组件 Parameter SWC
主要提供标定参数值
4.ECU抽象软件组件 ECU Abstractin SWC
提供访问ECU具体I/O的能力,该软件组件一般提供应用C/S接口的供型端口,即server端,由其他软件组件(如传感器/执行器软件组件)的需型端口(client端)调用。此外,ECU抽象软件组件也可以直接和一些基础软件进行交互。
5.复杂设备驱动软件组件 Complex Device Driver SWC
可以定义端口与其他软件组件通信,还可以与ECU硬件直接交互,所以该类软件组件灵活性最强,但由于其和应用对象强相关,从而导致其可移植性较差。
6.服务软件组件Service SWC
主要用于基础软件层,可通过标准接口或标准AUTOSAR接口与其他类型的软件组件进行交互。
按数据类型分类
在AUTOSAR中,对于Application Data Type没有强制要求使用,用户可以直接使用Implementation Data Type。若使用了Application Data Type,则必须进行数据类型映射(Data type mapping),即将Application Data Type与Implementation Data Type进行映射,从而来对每个Application Data Type进行具体实现。
1.应用数据类型 ADT
Application Data Type 1、是软件组件设计阶段抽象出来的数据类型,用于表征实际物理世界的量。 2、是提供给应用层使用的,仅仅是一种功能的定义,并不生成实际代码。
2.实现数据类型 IDT
Implementation Data Type 1、是代码级别的数据类型,是对应用数据类型的具体实现。 2、它需要引用基础数据类型(Base Type),并且还可以配置一些计算方法(computer method)与限制条件(data constraint)
3.基础数据类型 BT
BaseType
部件 Composition SWC
部件可以包含若干原子软件组件或部件
端口
1.需型端口 RPort
Require Port 用于从其他软件组件获得所需数据或者所请求的操作。
2.供型端口 PPort
Provide Port 用于对外提供某种数据或者某类操作。
3.供需端口 PRPort
Provide and Require Port 兼有需型端口与供型端口的特性。
端口接口
1.发送者-接收者接口S/R
Sender-Receiver Interface
2.客户端-服务端接口S/C
Client-Service Interface 函数调用关系,服务器是操作的提供者,多个客户端可以调用同一个操作,但同一个客户端不能调用多个操作。 注:每个端口只能引用一种接口类型,并且引用相同端口接口类型的端口才可以进行交互。
3.模式转换接口 MS
Mode Switch Interface
4.非易失性数据接口 N-VD
Non-volatile Data Interface
5.参数接口 Parameter Interface
6.触发接口 Trigger Interface
2. 运行时环境 RTE
runtime environment RTE封装了基础软件层的通信和服务,为应用层软件组件提供了标准化的基础软件和接口,使得应用层可以通过RTE接口函数调用基础软件的服务。
3. 基础软件层 BSW
Basic Software Layer
3.1. 服务层
Services Layer
1.系统服务 System Service
2.存储器服务 Memory Service
3.通信服务 Communication Service
备注:提供服务
提供网络通信管理、存储管理、ECU模式管理和实时操作系统(real time operating system,RTOS)等服务。注:除了操作系统外,服务层的软件模块都与ECU平台无关。
3.2. ECU抽象层
ECU abstraction Layer 1、该层将ECU结构进行抽象,负责提供统一的访问接口,实现对通信、存储器或者I/O的访问。 2、不需要考虑这些资源是由微控制器片内提供,还是由微控制器片外设备提供。 3、该层与ECU平台相关,但与微处理器无关。
1.板载设备抽象 onboard devices abstraction
2.存储器硬件抽象 memory hardware abstraction
3.通信硬件抽象 communication hardware abstraction
4.I/O硬件抽象 input/output hardware abstraction
3.3. 微控制器抽象层 MCAL
Microcontroller Abstraction Layer 1、实现不同硬件接口统一化的特殊层。 2、通过该层可将硬件封装起来,避免上层软件直接对微控制器的寄存器进行操作。
1.微控制器驱动 microcontroller drivers
2.存储器驱动 memory drivers
3.通信驱动 communication drivers
4.I/O驱动 I/O drivers
示意图片
3.4. 复杂驱动
Complex Drivers 由于对复杂传感器和执行器进行操作的模块涉及严格的时序问题,难以抽象,所以在AUTOSAR规范中这部分没有被标准化。
3.5. 示意图
4. 微控制器
Microcontroller
2.2 方法论
AUTOSAR Methodology
1.系统级
系统功能需求
硬件资源
系统约束
2.ECU级
描述文件 arxml
AUTOSAR Extensible Markup Language
单个ECU内部系统实现方法示意
3.软件组件级
"自顶向下"的软件组件设计
4.开发前期准备
1.软件组件描述 SW-Component description
包含系统中所涉及的软件组件接口信息,例如数据类型、端口接口、端口等
2.ECU资源描述 ECU Resource Description-HW only
包含系统中每个ECU所需要的处理器及其外设、传感器、执行器等信息
3.系统约束描述 System Constraint Description
包含总线信号、软件组件间的拓扑结构和一些映射关系等信息
资源整合
系统配置根据ECU资源和时序要求,将软件组件映射到对应的ECU上,生成系统配置描述文件(system configuration description),系统配置描述文件中包含了设计过程中非常重要的一个描述--系统通信矩阵,其描述了网络中所有运行的数据帧及其对应的时序和内容。
ECU配置
ECU配置过程主要是对RTE和BSW的配置。 1、在RET配置阶段,需要将软件组件的运行实体映射到相应的操作系统任务。 2、在BSW配置阶段,需要详细配置BSW层中所需要用到的模块,一般有操作系统、通信服务、ECU抽象层和微控制器抽象层等。 依据ECU配置信息生成BSW和RTE代码,再结合软件组件级实现的应用代码,最终进行代码集成,编译链接,生成单片机可执行文件。
2.3 应用接口
1.AUTOSAR接口(AUTOASAR Interface)
该接口属于应用接口,是从软件组件的端口衍生出来的通用接口,描述数据或者服务。他由RTE提供给软件组件,可以作为软件组件间的通信接口,也可以作为软件组件与I/O硬件抽象层或复杂设备驱动层间的接口。AUTOSAR接口非标准,可自定义,但在AUTOSAR规范中目前已对车身、底盘、及动力传动系统控制领域的应用接口做了些标准规范。
2.标准AUTOSAR接口(Standardized AUTOSAR Interface)
该接口是一种特殊的AUTOSAR接口,在AUTOSAR规范中有明确定义,由RTE向软件组件提供BSW中的服务,如存储器管理、ECU状态管理、“看门狗”管理等。
3.标准接口(Standardized Interface)
在AUTOSAR规范中,以C语言中API的形式明确定义,主要用于ECU上的BSW各模块间、RTE和操作系统间、RTE和通信模块间,应用软件不可访问。
AUTOSAR软件架构接口示意
2.4 AUTOSAR虚拟功能总线 VFB
Virtual Function Bus VFB是AUTOSAR提供所有通信机制的抽象,通过VFB,无论软件组件使用的是在ECU内部的通信还是在ECU之间的通信,对于应用软件的开发者而言,没有本质区别。内部通信与外部通信的区别只有等到系统级设计与配置阶段,将软件组件分配到不同的ECU之后才会体现出来。最终,VFB的真实通信实现可以由RTE和基础软件来保证,所以,RTE是AUTOSAR VFB的具体实现。