图解AUTOSAR(六)——服务层(Service Layer)、复杂驱动(Complex Drivers)

AUTOSAR的服务层包括系统服务、存储服务和通信服务,如下图黄色区域所示。


一、系统服务

系统服务是一组模块和函数,这些模块和函数可以被所有软件层模块使用。比如操作系统(包括定时器服务)和错误管理。系统服务的实现与单片机、ECU硬件以及应用程序有部分关联,其上层接口与单片机和ECU硬件无关。其内部结构如下图所示


系统服务的任务是为应用程序和基础软件模块提供基础的服务,主要包括:

1、依赖于微控制器的服务(如操作系统),以及可以支持特殊微控制器功能的服务(如加密服务管理器);

2、与ECU硬件和应用程序部分相关的服务(如ECU状态管理器);

3、与硬件和微控制器无关的服务。

二、存储器服务

内存服务只包括一个模块,即NVRAM管理器。它负责非易失性数据(来自不同存储驱动器读/写)的管理。其主要任务是以统一的方式为应用程序提供非易失性的数据,同时对存储位置和属性进行抽象,对非易失性数据的管理提供机制,比如数据的保存、读取、校验保护和验证等。其内部结构如图所示。



存储器服务具有以下属性:

(1)内存服务的实施与单片机和ECU硬件无关,是高度可配置的;

(2)其上层接口与单片机和ECU硬件无关,根据AUTOSAR实施,即AUTOSAR接口。

三、通信服务

通信服务是一组用于车辆网络通信(CAN/LIN/FlexRay以及Ethernet)的模块。

如上图BSW基础软件层所示,通信服务通过通信硬件抽象与通信驱动程序进行交互。其主要任务是为车辆通信网络和车载网络的诊断通信提供一个统一的接口,为网络管理提供统一的服务,以及从应用程序中隐藏相关的协议和消息属性。

如下图所示,通信服务的实现与单片机和ECU硬件无关,但是有一部分需要取决于总线的类型。其上层接口与单片机、ECU以及总线类型也无关。


1、CAN通信

下图显示了CAN通信所涉及的各个模块。


CAN通信服务具有以下属性:

(1)CAN通信服务的实施与单片机和ECU硬件无关,但部分依赖于CAN通信本身;

(2)AUTOSAR COM、通用网络管理接口(Generic NM Interface)以及诊断通信管理器(Diagnostic Com.Manager)对所有的车辆网络系统都是通用的,并且作为每个ECU的一个实例而存在;

(3)通用网络管理(Network Managerment,NM)接口只包含一个调度程序,但在网关ECU中,它也可以实现NM协调器的功能,即允许同步多个不同的网络(具有相同或不同的类型),对它们进行同步唤醒或者关闭;

(4)CAN NM是针对特定CAN网络的,并且通过车辆CAN网络系统进行具体实现;

(5)通信系统特定的CAN状态管理器能够管控与通信系统相关的启动和关闭功能。此外,它还可以通过控制COM的不同选项来实现发送PDU以及监控信号超时的功能;

2、CAN通信的扩展——J1939通信

如下图所示,显示了J1939通信所包含的所有模块。


J1939通信服务是对普通CAN通信协议栈的拓展,主要应用在商用车上。其主要任务是提供J1939通信所需的协议服务,同时从应用程序中隐藏不需要的协议和消息属性。

J1939通信服务具有以下属性:

(1)J1939通信服务的实施与单片机和ECU硬件无关,它是基于CAN通信的;

(2)AUTOSAR COM、通用网络管理接口(Generic NM Interface)以及诊断通信管理器(Diagnostic Com.Manager)对所有的车辆网络系统都是通用的,并且作为每个ECU的一个实例而存在;

(3)支持在配置阶段未知的动态帧标识符;

(4)J1939网络管理器管控每一个ECU的特定地址分配,但它不支持休眠/唤醒处理以及其他相关的概念,如局部网络等;

(5)提供J1939诊断和请求处理;

3、LIN通信

如下图所示,显示了LIN通信所涉及的所有模块。


LIN通信服务是一组车辆LIN通信系统的模块。其主要任务是为LIN通信网络提供一套统一的接口,同时从应用程序中隐藏协议内容和消息属性。

4、TCP/IP通信

如下图所示,为TCP/IP通信所涉及的所有模块。


TCP/IP通信服务是一组用于车辆TCP/IP通信系统的模块。其主要任务是为Ethernet通信网络提供一套统一的接口,同时从应用程序中隐藏协议内容和消息属性。

TCP/IP通信服务具有下属属性:

(1)TCP/IP模块实现TCP/IP协议家族(TCP/UDP/IPv4/IPv6/ARP/ICMP/DHCP)主要协议,并通过以太网(Ethernet)提供动态的、基于Socket的通信;

(2)Socket适配器模块是TCP/IP模块中的唯一上层模块;

四、复杂驱动(Complex Drivers)

复杂驱动的内部结构如下图所示。


复杂驱动(CCD)层跨越于微控制器硬件层和RTE之间,其主要任务是整合具有特殊目的且不能用MCAL进行配置的非标准功能模块,将该部分功能嵌入到AUTOSAR基础软件层中,从而实现处理复杂传感器以及执行器的特定功能和时间要求。复杂驱动程序跟单片机和ECU硬件紧密相关。其上层程序接口是根据AUTOSAR指定并且实施的;其下层程序接口受标准接口程序的限制。复杂驱动可以使用特定的中断或是复杂的微控制器外设(如PCP/TPU)来直接访问微控制器,从而实现对复杂传感器的评估和执行器的控制,比如喷油控制,电磁阀控制,增量位置检测等。
















猜你喜欢

转载自blog.csdn.net/ChenGuiGan/article/details/80380054
今日推荐