ECU刷写流程之压缩刷写技术解析

news/2024/9/20 20:36:22

背景

 

 

在现代汽车电子技术中,ECU(电子控制单元)的软件升级是一项关键任务。为了提高数据传输的效率和安全性,压缩刷写技术应运而生。通过数据压缩传输,我们可以有效地增加带宽利用率,减少刷写工具与ECU之间的数据传输量,从而显著缩短ECU升级时间。此外,为了加强数据的安全性和保密性,数据传输还可以进行加密处理。在ISO14229-1规范中,请求下载服务(SID=0x34)和请求文件传输服务(0x38)定义了数据可以基于压缩和加密的方式进行传输。本文以请求下载服务为例重点介绍数据压缩部分。

 

1.ISO14229-1:2020规范中定义请求下载服务(0x34)的请求报文格式

 

 

根据ISO14229-1:2020规范,请求下载服务(0x34)允许数据通过压缩和加密的方式进行传输。在该服务的请求报文格式中,”dataFormatIdentifier“是一个关键的参数,大小为1个字节,其中高四位(bit4-bit7)为参数”compressionMethod“,定义数据是否需要压缩, 其中低四位(bit0-bit3)为参数”encryptingMethod“,定义数据是否需要加密。若下载的数据既不需要压缩也不需要加密,则该参数值为0x00,若使用非0x00的值,则表示下载数据需要进行压缩、加密,或二者兼有。如”dataFormatIdentifier“此值为0x10,表示下载数据需要压缩不需要加密,如”dataFormatIdentifier“此值为0x11,表示下载数据需要压缩也需要加密。

 

值得注意的是,下载数据的压缩与加密需求并不影响参数”addressAndLengthFormatIdentifier

 

“和”memoryAddress“,但会影响”memorySize“参数,该参数定义了需要刷写数据的大小,这个大小将与通过TransferData(0x36)服务传输的数据大小进行比较。

 

当下载的数据是压缩数据时,由OEM来定义”memorySize“代表的是压缩数据的大小还是压缩前数据的大小。不同的定义对于刷写流程的实现代码也不相同。

 

若”memorySize“代表压缩数据的大小,那么当TransferData(0x36)服务将压缩数据传输完成后,ECU将根据“memorySize”参数来判断数据是否下载完成,ECU会比较传输的压缩数据与”memorySize“参数定义的数据大小是否一致,并相应地发送肯定或否定响应。

 

若”memorySize“代表非压缩数据的大小,那么TransferData(0x36)服务传输的压缩数据大小一般小于”memorySize“的值。这时ECU将接收到的压缩数据解压,并计算所有解压后数据大小的总和。在压缩数据传输完成后,ECU会比较解压后的数据大小与”memorySize“参数定义的数据大小是否一致,并相应地发送肯定或否定响应。

 

当然,对于”memorySize“代表压缩数据的大小还是非压缩数据大小,数据传输完成后ECU判断下载数据是否正确的方法各OEM定义也不尽相同。

 

2.压缩前后刷写文件比对

 

软件刷写是指将软件程序烧录或者通过UDS刷写传输到ECU芯片内存的特定地址段,然后ECU就会运行该软件程序,去实现其特有的功能。常用的ECU刷写文件格式有:.hex,.s19和.bin等。压缩刷写文件是通过特定的压缩算法制作而成。

 

压缩前:

 

 

刷写文件分3个逻辑块,各块起始地址、结束地址、长度为:

 

Block0:起始地址:0x80138020 结束地址:0x801FFFDF 长度:0xC7FC0

Block1:起始地址:0x80300020 结束地址:0x804FFFDF 长度:0x1FFFC0

Block2:起始地址:0xA0078020 结束地址:0xA0137FFF 长度:0xBFFE0

压缩后:

 

 

压缩后刷写文件仍分3个逻辑块,各块起始地址、结束地址、长度为:

Block0:起始地址:0x80138020 结束地址:0x8015E60E 长度:0x265EF

Block1:起始地址:0x80300020 结束地址:0x80448DD7 长度:0x148DB8

Block2:起始地址:0xA0078020 结束地址:0xA00AD0F6 长度:0x350D7

 

可以发现,压缩前后的刷写文件逻辑块数量未变化,起始地址未变化,各逻辑块的数据长度变小了,对应的结束地址也产生了变化。

 

每个逻辑块独立压缩:

对于压缩前刷写文件中分为多个逻辑块,在压缩之后的逻辑块数量未发生变化的情况可称之为“每个逻辑块独立压缩”。与之不同,也存在“整体压缩”的方式。

整体压缩:

压缩前:

 

 

刷写文件分3个逻辑块,各块起始地址、结束地址、长度为:

Block0:起始地址:0x8FC0060 结束地址:0x9194FFF 长度:0x1D4FA0

Block1:起始地址:0x91C0000 结束地址:0x91D9EBF 长度:0x19EC0

Block2:起始地址:0x9200000 结束地址:0x9237FFF 长度:0x38000

压缩后:

 

 

压缩后刷写文件只有1个逻辑块,无起始地址。

 

对于“整体压缩方式”,刷写流程中内存擦除(EarseMemmory)服务和0x34(RequestDownload)服务中起始地址等信息由ECU供应商或者OEM定义。

 

3.压缩刷写日志分析

 

非压缩刷写日志:

 

 

压缩刷写日志:

 

 

通过分析刷写日志,我们可以发现压缩刷写与非压缩刷写的主要区别在于:

1).请求下载服务(SID=0x34)指令参数(dataFormatIdentifier)不同。

非压缩:刷写工具发送:34 00 44 A0 07 80 00 00 10 00 01

压缩:刷写工具发送:34 10 44 A0 07 80 00 00 03 50 F7

其中10代表:使用压缩数据;00代表:使用非压缩数据。

2).请求下载服务(SID=0x34)指令参数(memorySize)不同。

非压缩刷写:刷写工具发送:34 00 44 A0 07 80 00 00 10 00 01

压缩刷写:刷写工具发送:34 10 44 A0 07 80 00 00 03 50 F7

非压缩刷写中请求下载服务(SID=0x34)中memorySize大小大于压缩刷写中的memorySize大小,如果最大块长度值一致,则对于后续数据传输服务(SID=0x36)的个数,压缩刷写则要小于非压缩刷写。

如日志中压缩刷写与非压缩刷写最大块长度值皆为0xFFF,可计算出:

非压缩刷写后续数据传输服务(SID=0x36)的个数为257个;

压缩刷写后续数据传输服务(SID=0x36)的个数为54个;

数据传输服务(SID=0x36)的个数越少,则所需数据传输的时间也就越少,这也就是压缩刷写可以提升刷写效率的主要原因。

 

 

总结

 

 

随着ECU软件功能的日益复杂,提高ECU软件升级效率变得尤为重要,Bootloader作为一项必不可少的功能软件,其高效的刷写方式是实现ECU软件更新的关键。目前,北汇信息已经完成压缩刷写测试方案的落地,期待与感兴趣的朋友进行交流合作。

 

参考文献:

【1】ISO14229-1:2020

 

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

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

相关文章

利用深度循环神经网络对心电图降噪

具体的软硬件实现点击 http://mcu-ai.com/ MCU-AI技术网页_MCU-AI 我们提出了一种利用由长短期记忆 (LSTM) 单元构建的深度循环神经网络来降 噪心电图信号 (ECG) 的新方法。该网络使 用动态模型 ECG 生成的合成数据进行预训 练,并使用来自 Physionet PDB 心电图信 号数据库的真…

手机里的照片如何压缩变小?教你4个图片压缩方法

图片压缩怎么弄?有时候图片太大,会占用比较多的储存位置,而且分享需要的时间也会比较长;甚至会因为图片过大而上传失败,今天给大家分享4个手机也适用的方法,让你轻松压缩图片,简单又快速! 方法一、QQ 直接使用我们常用到的社交软件QQ来压缩图片是一个非常不错的选择! …

centos7设置固定IP

详情见链接Vmware虚拟机Linux配置固定IP地址(详细版)_虚拟机固定ip-CSDN博客

易基因: WGBS等揭示梨驯化和改良过程中DNA甲基化对果实成熟的作用机制 | 作物育种

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 梨(Pyrus ssp.,蔷薇科杏仁核亚科)是世界上最重要的温带水果作物之一。与野生梨相比,栽培梨的果实在许多形态特征上表现出显著变化,包括果实大小、含糖量和核细胞含量。野生梨和栽培梨之间的比较分析可以深…

3SRB2508-ASEMI三相整流桥3SRB2508

3SRB2508-ASEMI三相整流桥3SRB2508编辑:ll 3SRB2508-ASEMI三相整流桥3SRB2508 型号:3SRB2508 品牌:ASEMI 封装:SGBJ-5 最大重复峰值反向电压:800V 最大正向平均整流电流(Vdss):25A 功率(Pd):大功率 芯片个数:5 引脚数量:5 类型:整流扁桥、整流桥 正向浪涌电流:400A …

共和花园点菜

云在青天水在瓶

基于UltraScale架构的XCVU3P-3FFVC1517E XCVU3P-2FFVC1517I XCVU3P-1FFVC1517E高性能 FPGA概述

Virtex UltraScale+ 器件是基于 14nm/16nm FinFET 节点的高性能 FPGA,支持 3D IC 技术和多种计算密集型应用。概述 Virtex UltraScale+ 器件是基于 14nm/16nm FinFET 节点的高性能 FPGA,支持 3D IC 技术和多种计算密集型应用。AMD 第三代 3D IC 使用堆叠硅片互联 (SSI) 技术打…

GoldenDB安装

适用于如下场景:一台服务器上快速安装GoldenDB分布式数据库,默认创建一个2分片的数据库实例。 配置要求: 服务器环境:Kylin-Server-10-SP2-Release 步骤:(新环境忽略2、3、4) 1、以root用户登录服务器、服务器环境需要配好IP地址 2、执行以下代码,获取需清理的用户(此…