车载软件架构——车载诊断软件框架

news2025/1/10 3:26:54

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。

老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师:

人们会在生活中不断攻击你。他们的主要武器是向你灌输对自己的怀疑:你的价值、你的能力、你的潜力。他们往往会将此伪装成客观意见,但无一例外的是,他们想让你怀疑自己。

本文主要讲述如下内容:

-> 1、车载功能安全诊断框架技术要求

-> 2、诊断框架技术学习

开门见山,正文开始。

对于车载安全,对于工程师就会提到功能安全与软件架构,可以从 如下两个方案考虑:

-> 符合功能安全的软件架构;

-> 功能安全软件架构.

这两个维度去看待它们之间的关系。

对于符合功能安全的车载软件架构,从软件开发角度看当下软件架构设计过程对功能安全的符合性,也就是软件架构设计过程需要满足ISO 26262提出的各种要求:

-> 标记方法;

-> 设计原则;

-> 设计要素要求;

-> 安全分析要求;

-> 错误探测机制要求;

-> 错误处理机制以及设计验证方法等,

软件架构层面的安全分析主流策略是软件FMEA(Failure Mode and Effects Analysis)和 软件 DFA(Dependent Failure Analysis)。

对于功能安全软件架构,重点是从嵌入式软件系统角度看对系统级功能安全的支撑。基于电动汽车安全架构的思想,私下认为 “分层监视思想” 、“安全措施” 和 “诊断框架” 是 “功能安全软件架构” 的核心,“,本文接下来内容主要围绕诊断框架进行说明。

无论我们使用的基础软件开发平台是 AUTOSAR CP、AP 或者是非 AUTOSAR,功能安全软件架构的设计思路是类似的,这里基于 AUTOSAR CP 进行说明。

一、车载功能安全诊断框架技术要求

对于功能安全,车载诊断架构检测预期风险,是其中重要一环:

结合 FTTI(故障容忍时间间隔,fault tolerant time interval)理解故障诊断过程。从故障发生到产生可能危害之间的这段时间就是FTTI时间,此期间主要有诊断测试、故障响应过程,并且希望在产生可能危害之前进入安全状态。诊断测试过程需要考虑诊断测试触发、故障确认(去抖)等,故障响应过程需要考虑进入合理的操作模式(如:Fail safe, Fail operational, Emergency operation 等)、故障存储等。

综上,车载诊断框架的核心设计需要考虑覆盖诊断测试、故障响应过程。主要的功能安全诊断框架技术要求有:

-> 1、故障统一管理:对车载软件多层监视框架各故障监视层上报的故障进行状态统一管理——保证数据一致性;

-> 2、故障响应时间要求:故障检出到进入安全状态需满足故障容忍时间间隔的要求——故障触发后与后续功能降级的执行动作保持紧密绑定;

-> 3、独立性要求:片上安全机制与功能存在共因问题,需支持独立性监视(MCU 片外监视)——对于软件对片上硬件监视提出更高的要求;

-> 4、多样化要求:软件架构须满足框架设计通用化和支持安全策略多样化;

-> 5、诊断测试时机:上下电,周期,条件触发——这些条件需要在规范中明确定义并释放给响应的功能实现方;

-> 6、故障去抖/延时检查:需支持安全机制的去抖测试功能,至少支持基于时间和基于计数去抖算法——这些消抖策略在AUTOSAR DEM模块都是现成的策略‘

-> 7、诊断事件和功能解耦:诊断事件和功能独立管理,之间存在映射关系——Diagnostic event、DTC和功能映射关系;

-> 8、故障存储:支持故障信息非易失存储——在对应的代码配置工具中,定义DTC、DTC Status、快照信息等与芯片内存地址一一对应。

二、诊断框架技术学习

在对诊断框架技术展开之前,有两个方面的思考点供参考:

1:根据需求确定车载诊断测试的时机

a. 车载ECU控制器上电时:结合一个典型应用需求进行说明。安全机制(safety mechanism)和对应的功能构成了双点,为了降低潜伏多点故障失效率,一般在系统启动阶段(上电时),安全机制需要做自检。此点共能对于具备车载操作系统的多核ECU更是如此!此处也需要注意,在多处理器系统中还需要考虑诊断测试同步问题。

b. 车载ECU控制器运行时:一般分周期性诊断测试和条件诊断测试。诊断周期的定义需要考虑 FDTI(fault detection time interval)的约束,而条件诊断测试一般是发生状态迁移时或在激活某个功能前对功能进行的诊断,此点有点类似于事件触发。

c. 车载ECU控制器下电时:选择执行一些比较耗时的测试,而测试结果一般放在下一次启动时处理。因此测试结果需要存储在一个掉电非易失内存中!!!

2:进行分组诊断测试

为了便于诊断管理(包括诊断触发和故障响应等),根据临界故障 / 非临界故障,诊断测试时机等因素进行分组。上电时如果检出临界故障(Critical fault),此处我在做平台级车载软件AUTOSAR研究时,此处就是就是一个非常重要的点,现在车载控制器多核多系统的状态,比如:核故障(Core Fault)、易失性存储器测试故障(Ram Test Fault)等,这时故障响应可以选择处在一个静默状态处理(如:MCU处在连续复位状态)。

对于车载三层监视框架:

-> Level 1(function level);

-> Level 2(function monitoring level)位于ASW(application software,既软件上层应用SWC) 层;

-> Level 3(controller monitoring level) 位 于BSW(basic software) 层。

车载软件诊断框架,位于BSW层,主要覆盖诊断测试、故障响应过程,具体内容如下:

(1)、车载软件架构AUTOSAR中,BswM、 EcuM 主要负责上下电管理(State Management Module),在 STARTUP、UP、SHUTDOWN 阶段分别进行上电时、运行时、下电时的诊断测试;

(2)、ASW-Level 1覆盖功能输入/输出的诊断了,ASW-Level 2(E-Gas Level2)一般实现为 ASW-Level1 功能的冗余算法,实现 ASW-Level1 ASIL 等级的分解;

(3)、Test Manager 负责对软件库安全机制的诊断测试触发及相应测试结果的收集;

(4)、AUTOSAR DEM模块收集车载Level1/2/3的测试结果,诊断事件去抖,标记故障码及通过NvM进行故障信息存储(主要存储DTC、状态位、快照信息等)。FIM 根据DEM诊断测试结果(去抖后)标记已配置的功能,功能软件(ASW-Level1)根据标记来决定对功能的抑制。

三者作为一个机动性平台,保证车辆基本的共能安全。

在这里插入图片描述

搁笔分享完毕!

愿你我相信时间的力量

做一个长期主义者!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue2+AntdesignVue a-input使用颜色选择器

不需要任何插件即可实现颜色选择器 a-input type设置为color即可 回调函数

vue进阶-消息的订阅与发布

📖vue基础学习-组件 介绍了嵌套组件间父子组件通过 props 属性进行传参。子组件传递数据给父组件通过 $emit() 返回自定义事件,父组件调用自定义事件接收子组件返回参数。 📖vue进阶-vue-route 介绍了路由组件传参,两种方式&…

Spring MVC异步上传、跨服务器上传和文件下载

一、异步上传 之前的上传方案,在上传成功后都会跳转页面。而在实际开发中,很多情况下上传后不进行跳转,而是进行页面的局部刷新,比如:上传头像成功后将头像显示在网页中。这时候就需要使用异步文件上传。 1.1 JSP页面 …

PT:report_timing实用技巧

report_timing -start_end_pair 默认report_timing -to 会报告到endpoint最差一条violation path。 用report_timing -max_path X就会报告到endpoint的X条path,每组startpoint /endpoint只报告最差的一条(在X范围内有多少报多少,下面同理)。 用report…

Android 生成pdf文件

Android 生成pdf文件 1.使用官方的方式 使用官方的方式也就是PdfDocument类的使用 1.1 基本使用 /**** 将tv内容写入到pdf文件*/RequiresApi(api Build.VERSION_CODES.KITKAT)private void newPdf() {// 创建一个PDF文本对象PdfDocument document new PdfDocument();//创建…

什么是从人类反馈中强化学习(RLHF)?

自从OpenAI公司发布ChatGPT以来,人们对大型语言模型(LLM)的这一重大进步感到兴奋。虽然ChatGPT与其他最先进的大型语言模型大小相同,但其性能要高得多,并且承诺支持新的应用程序或颠覆取代原有的应用程序。 ChatGPT的惊人表现背后的主要原因…

NAT—网络地址转换

目录 静态NAT 动态NAT NAPT—easy IP 多对多的NAPT 端口映射—高级用法 NAT—网络地址转换 IPV4地址不够用 NAT ABC—三类地址中截取了一部分地址(并且让这部分地址可以重复使用)—私网地址 A类地址中:10.0.0.0-10.255.255.255 (…

3. 学习分类 - 基于图像大小进行分类

3.1 设置问题 根据图片的尺寸,把图片分为纵向图像和横向图像。这种把图像分成两种类别的问题,就是二分类问题。 纵向图片示例: 横向图片示例: 这样就有了两个训练数据: 增加训练数据,并在图像中表示出来…

mac批量修改文件名为不同名字

mac批量修改文件名为不同名字怎么弄?很多小伙伴通过私信向我求助,用什么方法可以在mac电脑上批量修改文件名称,将大量文件修改成不同的名称。这可能是一项比较麻烦的操作,在电脑上进行过批量重命名的小伙伴都知道,一般…

汉服小姐姐【InsCode Stable Diffusion美图活动一期】

一、 Stable Diffusion 模型在线使用地址:https://inscode.csdn.net/inscode/Stable-Diffusion 二、模型版本及相关配置: 模型:majicmixRealistic_v6 Lora:hanfu_ming 采样迭代步数(steps): 40 采样方法&am…

SCB后备保护器——保护电器的后备力量

在现代社会中,电力设备已经成为了不可或缺的一部分,而在使用电力设备的过程中,由于各种原因,电力设备可能会受到电涌的影响,从而导致设备损坏或者火灾事故的发生。为了有效保护电力设备的安全稳定运行,研发…

数据科学分析全流程步骤

知识图谱以结构化的“知识”来存储与表示海量数据,作为承载底层海量知识并支持上层智能应用的重要载体,它在智能时代中扮演了极其重要的角色。然而,由于知识图谱高度结构化的特点,我们常常需要构建结构化查询语句(SPAR…

卷积神经网络(CNN)原理详解

近些年人工智能发展迅速,在图像识别、语音识别、物体识别等各种场景上深度学习取得了巨大的成功,例如AlphaGo击败世界围棋冠军,iPhone X内置了人脸识别解锁功能等等,很多AI产品在世界上引起了很大的轰动。 而其中 卷积神经网络&am…

微服务 云原生:gRPC 客户端、服务端的通信原理

gRPC Hello World protoc 是 Protobuf 的核心工具,用于编写 .proto 文件并生成 protobuf 代码。在这里,以 Go 语言代码为例,进行 gRPC 相关代码编写。 下载 protoc 工具:https://github.com/protocolbuffers/protobuf/releases&a…

饭堂人群密度检测之Pythton

完整资料进入【数字空间】查看——baidu搜索"writebug" 一、饭堂人群密度检测 二、选题背景 在这个人工智能快速发展的时代,智能交通、智能机器人等人工智能化产品不断出现。作为人工智能的重要分支,计算机视觉起到了重要作用。它通过一系列的…

面试题更新之-使用 base64 编码的优缺点

文章目录 base64 编码是什么?使用 base64 编码的优缺点 base64 编码是什么? Base64编码是一种将二进制数据转换为ASCII字符的编码方式。它将三个字节的二进制数据分割成四组,每组6个比特,然后将这些6个比特转换为可打印的ASCII字…

前端学习——Web API (Day5)

BOM操作 Window对象 BOM 定时器-延时函数 案例 <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport&q…

XSS 攻击的检测和修复方法

XSS 攻击的检测和修复方法 XSS&#xff08;Cross-Site Scripting&#xff09;攻击是一种最为常见和危险的 Web 攻击&#xff0c;即攻击者通过在 Web 页面中注入恶意代码&#xff0c;使得用户在访问该页面时&#xff0c;恶意代码被执行&#xff0c;从而导致用户信息泄露、账户被…

Docker 部署 Jenkins (一)

Docker 部署 Jenkins (一) 一. 安装 jenkins $ mkdir -p /home/tester/data/docker/jenkins $ vim jenkins:lts-jdk11.sh./jenkins:lts-jdk11.sh 内容 #! /bin/bash mkdir -p /home/tester/data/docker/jenkins/jenkins_homesudo chown -R 1000:1000 /home/tester/data/dock…

解决Spring Data JPA查询存在缓存问题及解决方案

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…