一、Autosar cp 总体架构
*
服务层:
服务层部分主要为应用程序、RTE以及基础模块提供服务如:操作系统功能、网络通信与管理服务、存储服务、诊断服务、ECU管理、看门狗管理
ECU抽象层:
ECU抽象层包含许多外部设备驱动,使得更高层软件与ECU硬件分布无关。如外部CAN Transceiver驱动、外部EEPROM驱动
微控制器抽象层(MCAL):
微控制器抽象层包含许多内部驱动,使得更高层软件与为微控制器无关。如IO驱动、AD驱动、CAN驱动
复杂驱动层(CDD):
复杂驱动层实现复杂传感器模拟和执行器控制(直接访问具体中断或复杂微控制器外设),以及不支持AUTOSAR BSW分层架构的驱动,如PWM驱动
二、模块术语解释
2.1 系统管理
2.1.1 系统服务(服务层)
Autosar OS
AUTOSAR OS为实时应用提供了所有基本服务,即中断处理、调度、系统时间和时钟同步、本地消息处理,以及错误检测机制
BswM
包含了车辆的模式管理和应用模式管理,处理来自于SWC模块和其他BSW模块的模式请求,同时根据模式请求的仲裁结果,执行模式转换或具体的行为等。同时BSWM可以与ECUM模块关联,控制ECU的启动和关闭,BSWM模块还可以协调多核系统的不同分区。
ComM
COMM模块根据应用程序的通信需求协调不同网络以及局部网络间的通信。对通信具有使能和禁用控制。
WdgM
看门狗管理模块监测ECU应用程序的可靠性和功能安全。包含对SWC和BSW正确执行的监测以及在需要的时间区间触发看门狗。WDGM模块还可以对多个升级阶段中潜在的错误行为进行反应。根据ISO26262标准,该模块有一个重要的安全相关的功能,即对关键任务正确执行顺序监测(逻辑监测)。对于功能安全相关的ECU,WDGM模块必须遵循ISO26262标准进行开发。
TM
TM模块用于测试函数运行时间和实现动态等待功能,可以提供从1微秒到4.9天的精度。
StbM
同步时基管理可以确保时间的同步,从AUTOSAR 4.2开始,由时间主站提供的时间基准可以通过总线系统实现不同ECU之间的同步。
Det
开发错误跟踪器DET(Development Error Tracer)模块用于支持在软件开发过程中的错误调试。它提供了一个错误提示接口,这一接口会在错误发生的时候被对应的BSW模块调用
FiM
功能禁止管理器FIM(Function Inhibition Manager)基于DEM模块所管理的有效错误,FIM可以关闭SWC相关的功能。
DeM
诊断事件管理器DEM(Diagnostic Event Manager)负责处理和存储诊断事件(错误)和相关FreezeFrame数据。DEM进一步提供故障信息给DCM(例如,从事件存储器读取所有存储的DTC(Diagnostic Trouble Code))
EcuM
ECU状态管理器管理ECU的状态(OFF、RUN、SLEEP),以及这些状态之间的转换(过渡状态:STARTUP、WAKEUP、SHUTDOWN)
2.1.2 片上设备抽象(ECU抽象层)
WdgIf
看门狗模块接口
2.1.3 微控制器驱动(微控制器抽象层)
CorTst
Core Test Driver提供用于配置、启动、轮询、终止和通知应用程序有关Core Test结果的服务
Mcu
MCU Driver为其他MCAL软件模块所需的基本微控制器初始化、断电功能、复位和微控制器特定功能提供服务。除了启动代码之外,初始化服务还允许灵活的和应用程序相关的MCU初始化。
Wdg
Watchdog Driver模块提供初始化、改变运行模式和设置触发条件(超时)的服务。
Gpt
General Purpose Timer driver :启动和停止硬件定时器;获取定时器值;控制时间触发的中断通知(如果硬件支持);控制时间触发的唤醒中断(如果硬件支持)
2.2 内存管理
2.2.1 内存服务(服务层)
NVM
NVRAM Manager非易失性RAM管理
2.2.2 内存硬件抽象(ECU抽象层)
MemIf
内存抽象接口
Ea
Eeprom abstraction外部EE的驱动实现,提供独立于硬件的EEPROM数据接口
Fee
Flash Eeprom Emulation 提供了独立于硬件的接口,用于访问flash数据,直接访问flash驱动
2.2.3 存储驱动(微控制器抽象层) Eep
EEPROM Driver提供读取、写入、擦除EEPROM的服务
Fls
Flash Driver 如果底层硬件支持,提供读取、写入和擦除flash memory的服务以及用于设置/重置写/擦除保护的配置接口。
RamTst
RAM Test 是对RAM单元的物理健康状况的测试。
FlsTst
Flash test module 提供了测试不变内存的算法。
2.3 通讯栈
2.3.1 通讯服务(服务层)
Com
COM模块给RTE提供了面向数据的信号接口。发送时,负责将信号放到特定报文的特定位置,并按照特定的报文发送方式将数据发送;接收时,直接将特定的PDU的特定位置的信号数据发送给SWC。该模块包含了对数据接收的监控机制,对数据发送的控制机制。
Dcm
实现UDS通信诊断协议,一些诊断请求(会话状态管理/错误码读取/重启ECU等)在DCM中直接被处理,另外一些诊断请求(读取和控制数据ID中的数据元素/程序执行等)会通过Port接口路由到SWC进行处理。OBDII/SAEJ1979排放法规需求也在该模块实现。
Dlt
Diag Log and Trace,主要用于记录DET、DEM、SWS等的日志信息以及跟踪信息。Dlt模块通过内部的API可以在通信总线传输该数据,以使该信息在 ECU 外部可见。
PduR
主要为通信接口模块、传输协议模块、诊断通信管理模块以及通信模块提供基于I-PDU的路由服务
Tp
CanTp是PduR和CANIf模块之间的模块,如图1所示。CANTp模块的主要作用是对CAN I-PDU进行分段和重新组装,使得I-PDU的长度不大于8个字节,对CAN FD而言,CAN I-PDU不大于64个字节。
SM
CAN状态管理器(CAN State Manager,CanSM)负责实现CAN网络控制流程的抽象,它为ComM模块提供API来请求CAN网络进行通信模式的切换。
NmIf
Nm模块接口
Nm
网络管理模块(CANNM/LINNM/FRNM/UDPNM)。此外,这一模块还负责同步不同网络上的ECU之间的通信系统关闭工作。
Xf
SOME/IP 模块是一个远程进程调用和序列化协议,用于从其它ECU中调用服务,这些服务是通过SD模块事先从系统中获知
E2E XF 通过E2ETransfer模块可以在RTE接口中,根据ISO26262标准,集成安全相关的信号的保护。相比于E2EPW,该模块使用了RTE标准的接口。
Secoc
可以用来发送和接收认证信息。那些未经认可的/重复的或被操作的信息可以被检测到。该模块是AUTOSAR加密方案的一部分。
IpudM
处理负责不同数据内容的PDU的复用。
2.3.2 通讯硬件抽象(ECU抽象层)
CanIf
为CAN模块提供基于PDU的抽象接口,用于访问CAN驱动器,对于不同功能的PDU在CANIF层实现PDU的区分,并关联到上层模块。同时还可以控制CAN驱动和CAN收发器的状态和模式。
LinIf
LIN接口提供对LIN硬件的抽象(基于PDU)的访问,它还负责处理调度表,同时包含了LIN传输协议(LINTP)。
FrIf
FlexRay接口提供对FlexRay硬件的抽象(基于PDU)的访问,此外,它还可以同步FlexRay的全局时钟。
EthIf
Ethernet接口模块独立于Ethernet驱动和ETHTRCV D,区分具体的Ethernet数据,同时还负责对VLAN的管理。
2.3.3 通讯驱动(微控制器抽象层)
Can
Can Driver
Eth
Ethernet Driver以太网驱动
Frs
FlexRay Driver
Lin
Lin Driver
Spi
SPI Handler/Driver提供读取和写入通过SPI总线连接的设备的服务。它为多个用户提供对SPI通信的访问(例如 EEPROM、看门狗、I/O ASIC)。它还提供了配置片上SPI外设所需的机制。
2.4 I/O相关
2.4.1 I/O硬件抽象(ECU抽象层)
IO Signal Interface
2.4.2 I/O驱动(微控制器抽象层)
Port
负责处理微处理器中的所有Port的初始化工作。
Dio
数字输入输出驱动提供了访问DIO通道/DIO通道和DIO通道组的读写操作。
Adc
ADC驱动用于抽象访问芯片内部的ADC模块,控制ADC模块相关的转换,对于每一个ADC转换通道,转换的精度/触发源/结果处理等都是可以配置的。
Pwm
PWM驱动提供了初始化和控制微处理器中的PWM通道服务。
Icu
ICU驱动提供了边沿检测/周期性信号测量/边沿时间戳分配和唤醒诊断控制功能。
Ocu
OCU驱动提供输出比较单元的初始化函数和访问接口。