autosar 诊断入门

AUTOSAR (汽车开放系统架构) 是一个国际汽车行业的开放和标准化的软件架构。它的主要目标是为了创建一种独立于硬件的软件架构,以提高汽车电子系统的模块化和可重用性。
AUTOSAR架构主要分为两个部分:AUTOSAR Runtime Environment (RTE) 和 AUTOSAR Software Components (SWCs)。

  1. AUTOSAR Runtime Environment (RTE)
    RTE是软件组件之间的通信媒介,它提供接口以实现组件间的数据交换。RTE的主要任务包括通信,输入/输出硬件抽象,时间和数据同步等。
  2. AUTOSAR Software Components (SWCs)
    SWCs是具有明确功能的一种软件模块,例如发动机管理或刹车控制。它们包含一种或多种Runnable Entities (Runnables),这些Runnables是实现SWC功能的代码块。SWCs可以通过RTE进行通信。

AUTOSAR架构还包括以下层级:

  1. 应用层
    应用层包含了所有的AUTOSAR SWC,这些SW辆功能,如刹车管理,动力系统控制等。
  2. 运行时环境层
    这就是RTE,它允许SWC之间的通信并提供硬件抽象。
  3. 基础软件层
    基础软件层包含一系列的模块,负责提供各种服务,如操作系统,通信服务,网络管理,输入/输出硬件控制等。
  4. 微控制器抽象层
    这一层为微控制器硬件提供抽象,使得上层软件可以独立于硬件进行设计和开发。
  5. 硬件层
    硬件层是实际的物理硬件,例如微控制器,传感器,执行器等。
    AUTOSAR的这种分层架构可以提高软件的模块化和可重用性,使得汽车制造商和供应商可以更容易地设计和开发复杂的汽车电子系统。

以ECU例子,通俗理解
假设我们正在使用一个单片机(例如STM32)来控制汽车的灯光系统,需要控制头灯、尾灯和转向灯。在AUTOSAR架构中,我们可以将每一个灯光看作是一个单独的软件组件(Software Component,SWC)。例如,“头灯控制SWC”,和“转向灯控制SWC”。

应用层:这一层包含所有的软件组件,也就是我们的头灯、尾灯和转向灯的控制代码。

运行时环境层(RTE): 这一层是所有软件组件之间通信的桥梁。例如,当驾驶员打开头灯的开关,"开关控制SW RTE 告诉 "头灯控制SW。

基础软件层:这一层包含了一些基本的软件服务,例如操作系统、驱动程序等。在我们的例子中,单片机的GPIO引脚驱动、PWM驱动等就属于这一层。

微控制器抽象层:这一层对硬件进行了抽象,使得上层软件可以不用关心具体的硬件细节。例如,这一层可以将单片机的某个GPIO引脚抽象为"头灯控制引脚"。

硬件层:这一层就是实际的硬件,也就是我们的单片机和灯光硬件。

这样,当驾驶员打开头灯的开关时,“开关控制SWC” 会通过 RTE 发送消息给 “头灯控制SW灯控制SWC” 会调用基础软件层的 GPIO 驱动程序,通过微控制器抽象层控制硬件层的 GPIO 引脚,从而点亮头灯。
诊断部分
在AUTOSAR架构中,诊断主要包括两个重要模块:Diagnostic Communication Manager (Dcm) 和 Diagnostic Event Manager (Dem)。这两个模块都属于基础软件层(BSW Layer)的服务层(Service Layer)。
以下是每一层的详细实现和层与层之间的联系:
应用层(Application Layer)
应用层并不直接实现诊断功能,但它会生成一些可能需要诊断的事件或故障,比如一个传感器的读数超过了正常范围。这些事件或故障会被送入Diagnostic Event Manager (Dem)进行管理。
运行时环境层(RTE)
RTE负责应用层和基础软件层之间的通信。在诊断的上下文中,RTE提供了APIs,允许应用层调用Diagnostic Event Manager (Dem)的服务,比如报告一个新的故障。
基础软件层(BSW Layer)
在基础软件层的服务层中,Diagnostic Event Manager (Dem) 和 Diagnostic Communication Manager (Dcm) 是实现诊断功能的关键。

  • Diagnostic Event Manager (Dem): Dem负责管理和存储所有的故障码(Diagnostic Trouble Codes,DTC)。当应用层或其他BSW模块报告一个新的故障时,Dem会存储这个故障码,以便后续的诊断。Dem还管理故障码的状态,比如故障是否已经恢复,故障是否需要立即通知驾驶员等。
  • Diagnostic Communication Manager (Dcm): Dcm负责处理来自外部诊断设备的诊断请求,比如读取故障码、清除故障码、读取数据流等。Dcm会通过RTE调用Dem或其他BSW模块提供的服务,以完成这些诊断请求。然后,Dcm会将诊断结果发送回外部诊断设备。
    Dcm和Dem模块通常通过RTE进行通信,但也可以直接进行通信。Dcm和Dem的配置(比如支持的诊断服务、故障码的定义等)通常是通过XML文件进行的。
    通过以上的分层和模块化设计,AUTOSAR的诊断功能可以实现很高的灵活性和可配置性,满足了不同车辆和不同诊断需求的要求。

诊断DTC实现
在AUTOSAR中,故障码(Diagnostic Trouble Code,或DTC)的触发和读取过程如下:

故障码的触发

在应用层,某个模块(例如,一个引擎管理模块)可能会检测到某种故障情况,比如一个传感器的读数超过了正常范围。

当故障发生时,应用层模块通过RTE调用Diagnostic Event Manager(Dem)的API来报告故障。具体的API可能是Dem_ReportErrorStatus。

Dem模块接收到故障报告后,首先会检查该故障是否已经存在。如果这是一个新的故障,Dem会创建一个新的DTC,并将其状态设置为“已报告”。如果该故障已经存在,Dem可能会更新其状态或计数器。

Dem将新的DTC存储在非易失性内存中,以便在车辆重新启动后仍然可用。

故障码的读取

外部诊断设备(例如,一个诊断工具或诊断测试设备)通过Vehicle Diagnostic Connector发送一个读取DTC的诊断请求。

该请求通过车辆的网络(例如,CAN或Ethernet)传输到目标ECU。

在目标ECU中,Diagnostic Communication Manager(Dcm)接收到诊断请求,解析出请求的服务ID(在这个例子中,是读取DTC的服务ID)。

Dcm通过RTE调用Dem的API(例如,Dem_GetDTCOfEvent)来获取请求的DTC。

Dem返回请求的DTC,包括DTC的ID、状态、严重性等信息。

Dcm将DTC的信息封装成诊断响应消息,并通过网络发送回外部诊断设备。

通过以上的流程,AUTOSAR实现了故障码的触发和读取。这个流程涉及到了应用层、RTE和BSW层的多个模块,显示了AUTOSAR分层和模块化设计的优势。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/139355.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第一百五十一回 自定义组件综合实例:游戏摇杆二

文章目录 内容回顾实现方法位置细节示例代码我们在上一章回中介绍了如何实现 游戏摇杆相关的内容,本章回中将继续介绍这方面的知识.闲话休提,让我们一起Talk Flutter吧。 内容回顾 我们在上一章回中介绍了游戏摇杆的概念以及实现方法,并且通过示例代码演示了实现游戏摇杆的…

用flask框架flask-sock和websocket创建一个自己的聊天界面

WebSocket 协议在10年前就已经标准化了(在2011年,你能相信吗?)所以我相信你不需要介绍。但是如果你不熟悉它,WebSocket 是 HTTP 协议的一个扩展,它在客户端和服务器之间提供了一个永久的、双向的通信通道,在这里双方可以实时地发…

Spring Security :一【权限管理概述、Spring Security 认证与授权】

文章目录 Spring Security一、权限管理概述1.1.什么是认证1.2 什么是授权1.3 授权的数据模型RBAC1.3.1 基于角色的访问控制1.3.2 基于资源的访问控制 1.4 权限管理框架1.4.1 Apache Shiro1.4.2 Spring Security1.4.3 Shiro 和 Spring Security 比较 二、Spring Security 认证与…

Redis学习 - 了解Redis(三)

1. 什么是缓存击穿、缓存穿透、缓存雪崩? 1.1 缓存穿透问题 先来看一个常见的缓存使用方式:读请求来了,先查下缓存,缓存有值命中,就直接返回;缓存没命中,就去查数据库,然后把数据库…

SpringCloud Alibaba 整合Sentinel的基本使用

文章目录 一、什么是Sentinel二、Sentinel 的主要特性1. 流量控制:2. 熔断降级:3. 实时监控:4. 规则配置:5. 集成方便: 三、Sentinel 分为哪几部分:1. 核心库(Java 客户端)2. 控制台&#xff08…

2023 第十二届中国智能产业高峰论坛 - 文档大模型的未来展望

目录 前言文档图像分析识别与理解中的技术挑战 文档图像分析识别与理解的研究主题文档图像分析与预处理文档解析与识别版面分析与还原文档信息抽取与理解AI安全知识化&存储检索和管理 多模态大模型在文档图像处理中的应用多模态的GPT-4在文档图像上的表现多模态的Google Ba…

IntelliJ IDEA学习总结(3)—— IntelliJ IDEA 常用快捷键(带动图演示)

一、构建/编译 Ctrl + F9:构建项目 该快捷键,等同于菜单【Build】—>【Build Project】 执行该命令后,IntelliJ IDEA 会编译项目中所有类,并将编译结果输出到out目录中。IntelliJ IDEA 支持增量构建,会在上次构建的基础上,仅编译修改的类。 Ctrl + Shift + F9:重新编…

【C++心愿便利店】No.6---C++之拷贝构造函数

文章目录 一、拷贝构造函数的引入二、拷贝构造函数 👧个人主页:小沈YO. 😚小编介绍:欢迎来到我的乱七八糟小星球🌝 📋专栏:C 心愿便利店 🔑本章内容:拷贝构造函数 记得 评…

Spring boot easyexcel 实现复合数据导出、按模块导出

场景: 导出数据为1对多的复合数据一个模块是一条数据,直接填充数据无法实现 如图: 红框内为一条数据(1对多),下方箭头指向为第二条数据如果直接填充,只能填充第一条,第二条就没办法了。由于多行都包含许多&…

安卓玩机搞机----不用刷第三方官改固件即可享受“高级设置”的操作 ChiMi安装使用步骤

很多玩友特别喜欢第三方作者修改的带有高级设置的官改包。因为他可以随意修改系统里面的有关设置选项。包括但不限于修改状态栏 显示日期 秒等等的操作。 第三方带高级设置的官改 一般官改带高级设置的类似与 今天给大家分享下不用刷这些官改包即可享受高级设置的操作。 红米…

2023上海工博会,正运动展位现场直击(二)

9月21日,上海工博会已经成功开展了2天,热度仍旧不减,正运动技术展位6.1H-E261不仅吸引了大量工业自动化专业人士,而且也为他们呈现了一系列令人印象深刻的产品和运动控制解决方案。其中,高性能软硬件产品引发了广泛关注…

数据结构入门-14-排序

一、选择排序 1.1 选择排序思想 先把最小的元素拿出来 剩下的,再把最小的拿出来 剩下的,再把最小的拿出来 但是这样 空间复杂度是O(n) 优化一下,希望原地排序 1.1.2 选择原地排序 索引i指向0的位置 索引j指向i1的元素 j 后面的元素遍历&…

使用香橙派学习Linux udev的rules 并实现U盘的自动挂载

在之前编程首先语音刷抖音的博文里提到过udev,现在回顾一下: 什么是udev? udev是一个设备管理工具,udev以守护进程的形式运行,通过侦听内核发出来的uevent来管理/dev目录下的设备文件。udev在用户空间运行,…

macOS Sonoma 14 RC2(23A344)/Ventura13.6/Monterey 12.7 三版系统同时更新

macOS Sonoma 14 RC2(23A344)/macOS13.6/macOS 12.7 同时更新

冯诺伊曼体系结构和操作系统

欢迎来到Cefler的博客😁 🕌博客主页:那个传说中的man的主页 🏠个人专栏:题目解析 🌎推荐文章:题目大解析3 目录 👉🏻一、冯诺依曼体系结构概念常见的输入设备和输出设备内…

【数据结构】二叉树之堆的实现

🔥博客主页:小王又困了 📚系列专栏:数据结构 🌟人之为学,不日近则日退 ❤️感谢大家点赞👍收藏⭐评论✍️ 目录 一、二叉树的顺序结构 📒1.1顺序存储 📒1.2堆的性质…

MySQL查询表结构方法

MySQL查询数据库单个表结构代码 – 查询数据库表信息 SELECT​ COLUMN_NAME 列名,​ DATA_TYPE 字段类型,​ CHARACTER_MAXIMUM_LENGTH 长度,​ IS_NULLABLE 是否为空,​ IF(column_key PRI,Y,) 是否为主键,​ COLUMN_DEFAULT 默认值,​ COLUMN_COMMENT 备注FROM​ INFORMAT…

【数据结构】图的基本概念,图的存储结构(邻接矩阵;邻接表;十字链表;邻接多重表)

欢~迎~光~临~^_^ 目录 1、图的基本概念 2、图的存储结构 2.1邻接矩阵 2.2邻接表 2.3十字链表 2.4邻接多重表 2.5图的四种存储结构的对比 1、图的基本概念 图是由一组节点(通常称为顶点)和一组连接这些节点的边(通常称为边&#xff0…

Linux中sudo命令的添加和操作

使用 sudo分配权限 (1)修改/etc/sudoers 文件分配文件 # chmod 740 /etc/sudoers # vi /etc/sudoers 找到这行:root ALL(ALL) ALL, 在这行下面添加 xxx ALL(ALL) ALL (这里的xxx就是你的普通用户,而ruice就是我的普通用户 ) 编…

外汇天眼:外汇交易市场与股票交易市场优势对比!

在纽约证券交易所上市的股票大约有2800多只。纳斯达克证券交易所还列出了另外3,300多家股票。您将交易哪一个?有时间留在这么多公司的头上吗?在外汇交易中,有数十种货币交易,但是大多数市场参与者交易了七种主要货币对。难道七个主…