vFlash是简单易用的Bootloader刷写上位机工具,可以刷写一个或多个ECU。vFlash支持多种总线通信,如CAN/CAN FD、FlexRay、LIN、Ethernet/DoIP。除常规数据之外,vFlash还可以刷写压缩加密数据文件。
刷写数据的压缩、加密
在ISO 14229-1中,请求下载服务(SID=0x34)定义了可以刷写压缩、加密格式的数据。刷写压缩文件可以隐性地增加带宽,增加刷写工具传输到ECU的字节数,减少刷写时间。为了提高刷写数据的安全性和保密性,可以对刷写数据进行加密。
ISO 14229-1:2020中定义0x34服务的请求报文格式如表1所示:
表1 0x34服务请求报文定义
其中参数“dataFormatIdentifier”是一个字节的数据,高四位(bit4-bit7)定义数据是否需要压缩的参数“compressionMethod”,低四位(bit0-bit3)定义数据是否需要加密的参数“encryptingMethod”。如果下载数据既非压缩也非加密,那么此参数为0x00。用非0x00的值表示下载数据需要压缩或加密,或者二者兼而有之。
下载数据是否需要压缩、加密,对于参数“addressAndLengthFormatIdentifier”和“memoryAddress”没有影响。
参数“memorySize”定义需要刷写数据的大小,这个值将和通过TransferData(0x36)服务传输的数据大小进行比较。
当下载的数据是压缩数据时,由整车厂来定义“memorySize”代表的是压缩数据的大小还是未压缩数据的大小。不同的定义对于Bootloader的代码实现也不相同。
如果“memorySize”代表压缩数据的大小,那么当0x36(TransferData)服务传输压缩数据后,ECU将接收到的压缩数据解压并写入Flash。当刷写数据传输完成后,vFlash会发送RequestTransferExit(0x37)服务,ECU会比较传输的压缩数据与“memorySize”定义的数据大小是否一致。如果一致,ECU认为数据已下载完成,发送肯定响应。反之,发送否定响应。
如果“memorySize”代表非压缩数据的大小,那么0x36(Transf【78个搞.钱.项.目】erData)服务传输的压缩数据一般是小于“memorySize”的值。这时ECU将接收到的压缩数据解压,并计算所有解压数据大小的总和。当刷写数据传输完成后,vFlash会发送RequestTransferExit(0x37)服务,ECU会比较解压后数据的大小与“me【68 个.副.业项.目】morySize”参数是否一致。如果一致,ECU认为数据已下载完成,发送肯定响应。反之,发送否定响应。
vFlash中功能的应用
vFlash需要依赖vFlash Template定义的刷写序列、功能和属性等。vFlash Template的定义依据各个整车厂和供应商提供的刷写需求规范。因此如果需要刷写压缩、加密文件,前提条件是vFlash Template需要支持此功能。
处理压缩数据功能
(Compression)
vFlash提供两种处理压缩数据的方式:“Pre-Compression”是vFlash直接传输已经压缩过的数据,使用者不需要给vFlash提供压缩算法;“Live-Compression”是由vFlash来压缩数据,并将压缩后的数据传输给ECU,用户需要给vFlash提供压缩算法。
Pre-Compression
在vFlash Template定义并激活此种方式,如图1所示:
在图中1处加载刷写所用的压缩文件,vFlash会自动获取压缩文件数据的大小;在图中2处“Compression Type”选择“Pre-Compression”(如果vFlash Template只支持Pre-Compression一种方式,那么此项不需修改);在图中3处“Compression Method”填入非零的值,如0x1;此时在图中4处“Uncompressed Memory Size”属性被激活如何给压缩包加密,可以手动填写非压缩数据的大小,或者加载非压缩文件,由vFlash计算非压缩数据的大小。
图1 Pre-Compression功能界面
Live-Compression
与Pre-Compression不同的是压缩数据的工作由vFlash来完成,所以需要用户提供压缩算法文件供vFlash使用。
在vFlash Template定义并激活此种方式,如图2所示:
在图中1处加载刷写所用的非压缩文件;在图中2处“Compression Type”选择“Live-Compression”;在图中3处“Library“选择压缩算法文件,压缩算法需要与Bootloader代码中实现的压缩算法一致。选择的压缩算法文件的API需要与使用的vFlash Template中的定义一致。在图中4处“Compression Method”填入非零的值,如0x1。
图2 Live-Compression功能界面
处理加密数据功能
(Encrytion)
如果需要下载加密数据文件,可以如图3所示如何给压缩包加密,在Datablocks处添加加密的数据文件;“Encryption Method”输入非零值,如0x1;”Unencrypted Memory Size”可以加载未加密的数据文件,如果出于对数据保密的需要,不能提供未加密数据文件,那么也可以手动输入未加密数据文件的大小。
图3 Encryption功能界面
刷写界面
当vFlash工程配置完成之后,刷写过程如图4所示,可以显示刷写流程、刷写进度、刷写的数据流、刷写文件的解析等。
图4 刷写界面
结语
随着ECU软件功能复杂性的提高,软件数量的增加,ECU软件和数据的下载更新愈发重要,Bootloader已成为必不可少的功能软件。为了完成ECU软件的更新,高效易用的刷写工具是必备的。vFlash用户界面设计精简,不需要使用者具有太多专业的知识。利用不同的vFlash Template可以实现对于不同Bootloader刷写规范的支持。当ECU支持的总线的传输速率不高的情况下(如CAN总线),需要传输的数据量又很大时,压缩文件是一个很好的选择。在ECU的研发、生产和售后阶段都会涉及软件和数据的刷写更新,为了提高刷写文件的安全性和保密性,通常会选择加密文件,以防止数据被篡改和不合规的使用。vFlash不仅可以稳定高效地完成数据传输,还可以根据使用者的刷写规范提供不同的功能。
我知道你在看哟
———END———
限 时 特 惠: 【萌 心云学 堂】每日持续更新海量各大内部创业教程, 点击查看详情
站 长 微 信: 929444
本站内容均转载于互联网,并不代表副业库立场!如若本站内容侵犯了原著者的合法权益,可联系我们进行处理!
拒绝任何人以任何形式在本站发表与中华人民共和国法律相抵触的言论!