UDS-ECU程序刷写

news/2025/1/10 15:11:00/文章来源:https://www.cnblogs.com/bliss-/p/18664030

一、功能介绍

UDS(unified diagnostic services)统一诊断服务主要是针对汽车上对ECU进行诊断服务规范,下图是UDS在OSI分层中的具体规范,基于UDS的刷写应用逻辑体现在应用层的ISO14229规范。

汽车诊断是指通过诊断工具访问汽车上支持UDS的ECU进行故障访问、故障清除等,UDS还可以写入ECU的出厂信息和程序刷写。

此文主要是针对基于UDS的刷写功能介绍

二、名词解释

物理寻址:给指定唯一标识符的设备发送数据,在刷写流程中主要是指待刷写设备

功能寻址:给一类标识符设备发送数据,比如升级时给总线其他设备发送静默指令

DTC:诊断故障码

DID:数据标识符,在当前刷写流程的预编程阶段读取ECU信息时使用,比如不同的DID区分汽车转速、里程、冷却液温度等

会话模式:UDS客户端与服务端在不同的模式下数据访问权限不一样,主要有默认模式、编程模式以及扩展模式

肯定响应和否定响应:客户端对服务端发起请求时,服务端对客户端的响应类型包含肯定响应和否定响应,比如刷写流程中诊断仪对ECU发起的进入扩展会话指令,ECU可以可以给出肯定或者否定响应

指纹:固件刷写的当前信息,如日期、设备ID、刷写地点等

FlashDriver:擦除程序,autosar规范中规定程序存储器的驱动代码不能在应用程序中,防止程序运行过程中的缺陷导致应用程序代码被改变,所以程序刷写前需要将擦除程序提前下载在ram指定位置中,引导程序通过指定地址调用擦除程序进行刷写的擦除和写入操作

三、刷写流程

按照刷写流程分为三部分:

3.1 预编程

预编程是刷写前的一些准备工作比如会话切换、安全访问等

  1. 进入默认会话,功能寻址,建立通讯为进入扩展会话做准备,这里是不确定之前在什么会话模式下,为了稳定接下来进入扩展会话提前进入的默认会话
  2. 进入扩展会话,功能寻址,进入扩展会话以便后面的信息访问及其他指令
  3. 读取ECU信息,物理寻址,通过DID读取ECU的指纹、生产日期、厂商信息等
  4. DTC设置,功能寻址,这里是将总线上可能影响后续升级的DTC设置为关闭,被关闭的DTC不报故障信息做存储本地处理
  5. 禁止一般报文,功能寻址,禁止网络管理类、应用类报文,保证总线刷写的稳定性

3.2 编程

  1. 进入编程会话,物理寻址,让待刷写设备进入编程会话准备后续的程序刷写
  2. 读取ECU信息,物理寻址,读取待刷写ECU的设备信息
  3. 安全访问
    1. 安全访问请求种子,物理寻址,请求待刷写ECU的种子信息,种子是一个固定长度的随机数
    2. 安全访问发送密钥,物理寻址,诊断设备将上一步获取到的种子通过指定算法计算出密钥,再将密钥发送给ECU,ECU校验密钥的完整性。
  1. 写入指纹信息,物理寻址,记录当前刷写的信息,比如日期、刷写ID等
  2. 写入擦写程序,物理寻址,将FlashDriver驱动程序下载到ECU的RAM中,以便后续程序刷写的擦除和写入操作
  3. 检查编程完整性,物理寻址,检查上一步的擦写程序是否正确下载
  4. 擦除程序,物理寻址,使用5下载的擦写程序对待升级程序的存储逻辑块进行存储以便后续的程序写入
  5. 写入待刷写程序,物理寻址,将待刷写的程序通过擦写程序驱动写入7中擦除的指定地址,通过34、36、37三个服务对擦写文件进行写入,具体的流程见ISO15765中的连续帧写入
  6. 检查编程完整性,物理寻址,对8下载写入的刷写程序进行完整性校验
  7. 检查编程兼容性,物理寻址,验证整个下载是否成功

3.3 后编程

  1. 复位,功能寻址,刷写完成后对整车ECU进行复位
  2. 进入扩展会话,功能寻址,复位后ECU进入扩展会话,以便后续的刷写”恢复“操作 ·1
  3. 安全访问,物理寻址,更新ECU的访问等级
  4. 写入配置参数,物理寻址,向刷写的ECU写入钥匙信息等参数
  5. 报文控制,功能寻址,恢复ECU的应用报文和网络管理报文
  6. DTC设置,功能寻址,恢复ECU的DTC为打开
  7. 清除ECU故障,功能寻址,清除刷写过程中的故障

四、待补充

1、连续帧的传输流程(ISO15765)

2、UDS刷写上位机的QT实现

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

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

相关文章

主体分割技术,提升图像信息提取能力

在智能设备普及和AI技术进步的推动下,用户对线上互动的质量、个性化以及沉浸式体验的追求日益增强。例如,对于热衷于图片编辑或视频制作的用户来说,他们需要一种快速而简便的方法来将特定主体从背景中分离出来。 HarmonyOS SDK 基础视觉服务(Core Vision Kit)提供主体分割…

qt 实现窗口置顶,qtdesigner创建的widget窗口集成程序里的用法

参考 https://blog.csdn.net/Larry_Yanan/article/details/123518788 .ui文件如下新建的ui文件,编译一下就会生成对应的 ui_xxx.h 文件,文件内就有对应的 namespace Ui 声明的变量,这个变量要在mainwindow.h中声明,然后在mainwindow.cpp中new出来,具体使用如下 mainwindow…

如何在市场推广活动中实现精准的任务分配?5个项目管理技巧

一、引言 随着市场竞争的加剧和消费者需求的多样化,企业对市场推广活动的要求越来越高。市场推广活动不仅需要创意和精准的目标定位,还需要高效的执行和完善的管理。在这种背景下,如何通过有效的活动管理来提升推广活动的执行力,已成为市场团队面临的一个巨大挑战。 市场推…

Android编译 - 证书介绍

前言全局说明一、说明 1.1 环境: Android1.2 简介 在Android系统中,每个APK文件必须有一个有效的数字证书来证明其来源和完整性。当需要修改APK后再次发布时,原有的签名将不再有效,因此需要重新签名。二、证书工具 2.1 路径: android/build/tools/releasetools/sign_target…

域名解析的QPS防护值是什么?

在当今数字化的时代,互联网已经渗透到生活的方方面面,而域名解析作为互联网运行的关键环节之一,起着至关重要的作用。其中,域名解析的QPS防护值更是保障网络稳定、安全与高效的一个重要指标。 一、QPS 防护值的定义与内涵 QPS,即Queries Per Second,意为每秒查询次数。域…

远程开机详细教程

要实现远程开机,被控端必须满足以下条件: 1.目前仅支持windows系统实现远程开机 2.被控端所在局域网内,需要有另一台设备保持todesk在线 如:其他电脑、iPhone、iPad、Android 设备(手机、平板)、家人的手机(充当辅助开机设备) 如图,辅助开机设备需显示在线,离线状态无法发…

CH585的SPI驱动WS2812

目录 链接: https://pan.baidu.com/s/1Su5dgmVWLre5kH2fYiGwQQ?pwd=wch6 CH573系列/583系列/592系列MCU,在使用SPI模拟WS2812波形时,MISO-PA15引脚上的实时电平,会影响MOSI-PA14引脚上的空闲电平状态,故建议SPI驱动WS2812的场景下,固定PA15的电平,不要接其他外设。异常场…

企业微信客服系统-实现对接微信客服接口与分配客服功能-实现GPT回复功能

企业微信客服是有对外的接口的,可以将用户发过来的消息传递给我们系统(注意,这里说的是企业微信客服,不是企业微信员工,也不是个人微信,这三个不是一回事)。并且,我们系统还可以实现,多个微信客服入口,分配到多个我们客服坐席,客服不在线时,可以分配给别人。微信客…

异地多活架构如何设计:活好你也好【转】

异地多活是分布式系统架构设计的一座高峰,当业务系统走到需要考虑异地多活这一步,其体量和复杂度都会达到很高的水准。接入层、逻辑层、数据层的三层架构,基本上是每个业务都会拥有的基础架构形态,而三层架构的关键在于数据层,本文将从数据层切入探讨异地多活对于基础架构…

一文告诉你什么是WBS——附应用方案

通过这些,结合板栗看板使用WBS可以极大地提高项目管理的效率和透明度,确保项目按时完成并达到预期目标。一、定义与原理 WBS(Work Breakdown Structure),即工作分解结构,是一种项目管理方法,它将一个复杂的项目或任务按照一定的原则分解成更小、更具体的部分,以便于管理…