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)来直接访问微控制器,从而实现对复杂传感器的评估和执行器的控制,比如喷油控制,电磁阀控制,增量位置检测等。












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

  1. NLayerAppV3-Distributed Service Layer(分布式服务层)

    回顾:NLayerAppV3是一个使用.net 2.1实现的经典DDD的分层架构的项目. NLayerAppV3是在NLayerAppV2的基础上,使用.net core2.1进行重新构建的:它包含了 ...

  2. 【正点原子Linux连载】第六十七章 Linux USB驱动实验 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

  3. 手把手教你搭建SpringCloud项目(十六)集成Stream消息驱动

    Spring Cloud全集文章目录: 零.什么是微服务?一看就会系列! 一.手把手教你搭建SpringCloud项目(一)图文详解,傻瓜式操作 二.手把手教你搭建SpringCloud项目(二)生产 ...

  4. Hybris service layer和SAP CRM WebClient UI架构的横向比较

    我把Hybris service layer理解成CRM WebUI的API layer. The Hybris ServiceLayer is an API for developing servi ...

  5. 算法图解第六章笔记与习题(广度优先搜索)

    算法图解第六章笔记与习题(广度优先搜索) 文章目录 算法图解第六章笔记与习题(广度优先搜索) 6.1 图(graph) 6.2 广度优先搜索 6.3.1 查找最短路径 6.3.2 队列 6.4 实现图 ...

  6. 【正点原子Linux连载】第六十一章 Linux I2C驱动实验 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

  7. 图解AUTOSAR(五)——微控制器抽象层(MCAL)

    微控制器抽象层位于AUTOSAR分层模型中BSW最底层,包含内部驱动,可以直接访问微控制器和片内外设.更进一步地,MCAL又可以分为微控制器驱动.存储器驱动.通信驱动和I/O驱动四个部分,各部分又由具 ...

  8. LSM6DS3(六轴传感器)STM32驱动及6D功能实现

    刚使用了STM32测试了LSM6DS3该六轴传感器,顺便也测试了其6D方向检测功能,效果是能满足对6个面方向的识别需求. 该六轴传感器支持I2C/SPI通信.在读取该六轴传感器寄存器时,采用I2C通信 ...

  9. 维特智能六轴姿态传感器JY61P_stm32f1xx驱动代码解析

    目录 硬件准备/上位机直连 代码驱动 关于官方给出的示例 代码功能及其走位 1.怎样不依托代码验证传感器的某个功能是否有效或者能用? 2.写寄存器的方式 3.为什么不使用WIT私有协议中的关闭上电输出 ...

最新文章

  1. 视觉稿与H5页面之间的终端适配
  2. 《漫画算法2》源码整理-9 股票交易最大收益
  3. session或者error引起的iframe嵌套问题的解决
  4. JavaScript实现k-nearest算法(附完整源码)
  5. BEGIN-1 A+B问题
  6. cordova项目适配iPhoneX
  7. ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调
  8. Go 语言基础(三)——基本数据类型
  9. oracle 重设基线,Oracle SQL执行计划基线总结(SQL Plan Baseline)
  10. 推荐腾讯最新重磅开源项目!
  11. CentOS7 原生 yum 源修改为阿里 yum 源
  12. 下载youtube 字幕
  13. 【线性代数】线性代数的几何意义
  14. 如何构建企业TPM管理体系?
  15. c语言十六位正整数表示,C语言学习(一)概述,数据类型
  16. 台式计算机拆解与安装,台式机固态硬盘安装流程拆解
  17. 线性代数之——行列式公式及代数余子式
  18. fhq-Treap题目记录
  19. linux用vi写文件内容,Linux下利用vi编辑器创建文件并写入内容 专家详解
  20. 9个好用的搜索小技巧

热门文章

  1. 【cpu100%查不到具体的进程】
  2. Ogre导入3Dmax模型注意事项
  3. git改变用户名和邮箱
  4. Java mail Exchange Service
  5. Python新型冠状病毒疫情数据自动爬取+统计+发送报告+数据屏幕(二)统计篇
  6. LeetCode224基本计算器用DFA实现超简洁
  7. [激光原理与应用-30]:典型激光器 -2- 气体激光器 (连续激光器)
  8. windows开机启动
  9. 目标检测1——SAR影像舰船数据集
  10. 黑鹰VIP教程超级大全集!!!千G容量!!!