• 680查看
  • 0回复

[底层软件] UDS 0x31 0x34 0x36 0x37 刷写数据流程

[复制链接]


该用户从未签到

发表于 27-4-2024 09:19:30 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


编程流程如下:

    1、10服务切换到编程模式,这里要注意,正确的方式是App段程序回复0x78 NRC,接下来跳转到boot段程序,最后由Boot段程序来回复10 02的肯定响应。错误的方式是由App段回复10 02的肯定响应,再进行跳转。

    2、27服务,解锁,通过安全验证。

    3、31服务,擦除Flash。ECU肯定响应,擦除成功。

    4、34服务,请求数据下载,ECU回复确认最大块大小。

    5、36服务,开始传输数据。每个块传输完成后,ECU肯定响应。判断是否还有更多块需要下载。最多可以支持255个块。

    6、37服务,请求退出传输。ECU肯定响应。

    7、31服务,校验APP段程序,检查编程一致性/完整性。ECU肯定响应。校验成功。

    8、若有更多块需要下载,重新执行31(擦除Flash区域)-34-36-37-31(校验)服务。若无,往下执行。

    9、11服务,ECU复位。之后应直接跳转到新下载的APP段程序中。


34/36/37服务流程图:

UDS 0x31 0x34 0x36 0x37 刷写数据流程w1.jpg

例程控制服务(0x31服务)

主要用于对主机厂定义的一些特定程序的控制操作(启动程序、停止程序、请求运行结果),本软件设计,0x31服务用于内存擦除和检查数据有效性(CRC32校验)

擦除内存服务格式:

Tester:31 01 FF 00

用于对此次升级要用到的内存空间进行擦除操作。一般用于请求APP数据下载(34服务)之前。

检查数据有效性服务格式:

Tester:31 01 02 02 Checksum(4byte)

一般用于对升级数据中的每个块信息的CRC校验;ECU会将接收到的数据进行CRC计算,并与诊断仪计算发送过来的CRC进行比对;确保数据的准确性。

请求下载服务(0x34服务)

这个服务主要是用来给ECU下载数据的,本次应用在bootloader中,程序下载工具会发起下载请求,设置内存起始地址和内存大小,以完成ECU程序的升级。

Tester:34 00 44 MemoryAddress(4byte)MemorySize(4byte)

数据传输服务(0x36服务)

Tester:36 BlockSequenceCounter(1byte) Data

BlockSequenceCounter被ECU用来监测并处理传输错误,初始值是1,随后每次服务请求 其值递增1。当传输块编号达到255(FFh)时,要求传输块编号从0继续。数据写入Flash,等到接收完一个Block,就是使用0x31服务进行数据校准。

退出数据传输服务(0x37服务)

服务格式:

Tester:37

ECU:77


该用户从未签到

发表于 12-3-2025 03:12:15 | 显示全部楼层
针对您提供的UDS刷写数据流程,汽车工程师的回复如下:

此流程为典型的ECU编程流程,遵循UDS(统一诊断服务)标准。流程中涉及的服务代码和步骤均十分专业且准确。具体流程包括切换编程模式、解锁、擦除Flash、请求数据下载、数据传输及请求退出等步骤。每一步都需要严格操作,确保ECU编程的准确性和稳定性。操作过程中需特别关注安全验证及响应的确认,避免错误操作导致的不良后果。此流程适用于大多数ECU编程场景,但具体实现可能因车型和ECU型号不同而有所差异。建议在实际操作中严格遵循相关手册和规定。

[内容由汽车工程师之家人工智能总结,欢迎免费使用,见贴尾]
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 12-3-2025 03:12:16 | 显示全部楼层
针对您提供的UDS刷写数据流程,汽车工程师的专业回复如下:

该编程流程为典型的ECU刷写流程,涵盖了从切换到编程模式、安全验证、擦除Flash、数据下载到完成刷写的各个步骤。在实际操作中,需严格按照此流程进行,确保每一步操作正确无误。

具体流程简述如下:

1. 通过10服务切换到编程模式,注意响应的NRC值需正确。
2. 使用27服务进行解锁及安全验证。
3. 利用31服务擦除Flash,并得到ECU的肯定响应。
4. 采用34服务请求数据下载,确认最大块大小。
5. 通过36服务开始数据传输,每块传输完毕后需得到ECU的肯定响应。
6. 最后使用37服务请求退出编程模式,完成整个刷写流程。

操作过程中务必细致谨慎,确保每一步操作无误,避免对ECU造成损害。

[内容由汽车工程师之家人工智能总结,欢迎免费使用,见贴尾]
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 12-3-2025 03:12:16 | 显示全部楼层
针对您提供的UDS刷写数据流程,汽车工程师的回复如下:

此流程为典型的ECU编程流程,遵循UDS(统一诊断服务)标准。具体步骤如下:

1. 通过服务10切换到编程模式,确保响应正确,避免操作错误导致ECU异常。
2. 使用服务27进行解锁及安全验证。
3. 采用服务31擦除Flash,确认擦除成功。
4. 利用服务34请求数据下载,并得到ECU确认的最大块大小。
5. 使用服务36开始数据传输,每块传输完毕后需得到ECU的肯定响应,同时判断是否有更多块需下载。
6. 最后通过服务37请求退出编程模式,完成整个编程流程。

操作时需严格遵循流程,确保数据传输的正确性和ECU的安全性。遇到问题应及时诊断并处理。

希望以上回复能够满足您的要求。

[内容由汽车工程师之家人工智能总结,欢迎免费使用,见贴尾]
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 12-3-2025 03:12:16 | 显示全部楼层
针对您提供的UDS刷写数据流程,以下是汽车工程师专业的回复:

按照UDS标准,刷写数据流程专业且严谨。流程如下:

1. 通过10服务切换至编程模式,确保App段程序回复0x78 NRC,并由Boot段程序响应10 02肯定响应。
2. 利用27服务进行解锁及安全验证。
3. 使用31服务擦除Flash,待ECU肯定响应后确认擦除成功。
4. 借助34服务请求数据下载,并等待ECU回应最大块大小。
5. 启动36服务进行数据块传输。每块传输完毕后,需等待ECU的肯定响应,并判断是否有更多块待下载,最大支持255块。
6. 最后,使用37服务请求退出编程模式,确保ECU安全退出并重启。

整个流程需细致操作,确保每一步正确无误,以保证ECU数据刷写的准确性和安全性。

[内容由汽车工程师之家人工智能总结,欢迎免费使用,见贴尾]
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 12-3-2025 03:12:16 | 显示全部楼层
针对您提供的UDS刷写数据流程,以下是汽车工程师专业的回复:

此流程为典型的ECU编程流程,遵循UDS(统一诊断服务)协议。流程中涉及的服务代码如0x31、0x34等代表不同的操作。详细流程如下:

1. 使用服务切换至编程模式以完成ECU应用的初始配置;确认模式切换后,再跳转至Boot段进行响应确认。
2. 完成安全验证服务解锁功能以确保安全性。
3. 执行擦除Flash操作并确认擦除成功。
4. 请求数据下载并获取ECU确认的最大块大小。
5. 开始数据传输,每块传输完成后需确认是否还有更多数据块需要下载。最多支持传输255个块。
6. 完成数据传输后请求退出编程模式并重启ECU。整个流程应确保操作准确无误以保证数据安全与完整性。如存在操作错误可能导致ECU故障甚至报废风险。执行过程中务必遵循相关安全规范与操作指南。

[内容由汽车工程师之家人工智能总结,欢迎免费使用,见贴尾]
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 12-3-2025 03:12:15 | 显示全部楼层
针对您提供的UDS刷写数据流程,汽车工程师的回复如下:

尊敬的论坛用户,关于UDS刷写数据流程,编程步骤描述清晰且专业。从切换到编程模式、解锁、擦除Flash、请求数据下载到开始传输数据,每一步都是关键操作。在操作过程中需注意以下几点:

1. 切换编程模式时,需严格按照服务10的响应进行,确保流程正确。
2. 在解锁和擦除Flash等关键步骤中,确保安全验证和操作的肯定响应,避免出错。
3. 数据传输时,需判断还有多少块需要下载,并注意最多支持255个块。
4. 完成数据传输后,使用服务37请求退出编程模式,确保ECU恢复正常工作状态。

遵循此流程,可以确保刷写数据的准确性和ECU的稳定性。感谢您的分享。若有其他疑问或需要进一步的技术支持,欢迎随时交流。

[内容由汽车工程师之家人工智能总结,欢迎免费使用,见贴尾]
回复 支持 反对

使用道具 举报



该用户从未签到

 楼主| 发表于 12-3-2025 03:12:15 | 显示全部楼层
针对您提供的UDS刷写数据流程,汽车工程师的回复如下:

此流程为典型的ECU编程流程,基于UDS(统一诊断服务)协议。为确保操作正确与安全,请遵循以下步骤进行:

1. 使用10服务切换至编程模式,确保响应正确,避免误操作。
2. 通过27服务进行安全验证,确保ECU解锁。
3. 使用31服务擦除Flash,确保擦除成功。
4. 34服务请求数据下载,并得到ECU确认的最大块大小。
5. 使用36服务开始数据传输,每块传输后均得到ECU肯定响应。注意检查是否还有更多块需下载,支持最多255块。
6. 完成数据传输后,使用相应服务请求退出编程模式。

操作时应严格按照流程进行,确保每一步操作都获得ECU的肯定响应,以确保编程的准确性和安全性。

[内容由汽车工程师之家人工智能总结,欢迎免费使用,见贴尾]
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 12-3-2025 03:12:15 | 显示全部楼层
根据您提供的UDS刷写数据流程编程步骤,我可以为您回复如下专业性的帖子:

关于UDS 0x31 0x34 0x36 0x37刷写数据流程,其编程流程如下:

1. 通过10服务将系统切换至编程模式,确保App段程序回复0x78 NRC,随后跳转至boot段程序,由Boot段程序回应10 02的肯定响应。
2. 利用27服务进行解锁操作,并通过安全验证。
3. 使用31服务擦除Flash内存,待ECU确认擦除成功。
4. 发起34服务请求,下载数据,ECU将回应确认最大块大小。
5. 通过36服务开始数据传输。每完成一块数据的传输,都会得到ECU的肯定响应,需判断是否有更多数据块需下载,最大支持255个数据块。
6. 最后,使用37服务请求退出编程模式。

此流程需严谨操作,确保每一步的正确执行,以保证刷写数据的准确性和ECU的安全性。任何疏漏可能导致严重后果。

[内容由汽车工程师之家人工智能总结,欢迎免费使用,见贴尾]
回复 支持 反对

使用道具 举报

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 19-8-2025 02:23 , Processed in 0.358427 second(s), 42 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.