当前位置:网站首页 > 编程语言 > 正文

vbf是什么类型的游戏(vbf是什么意思)



VBF(Versatile Binary Format)是主机厂常用的一种固件发行文件格式,包括沃尔沃、福特、吉利等均采用此格式。

VBF文件包含三部分:VBF版本段、文件头段、数据段。

  1. VBF版本段:表明当前VBF文件使用的版本号。版本号使用ASCII码存储;
  2. 文件头段:文件头段包含通用信息,例如使用说明、安装信息等。文件头使用ASCII存储;
  3. 数据段:数据段为实际写入ECU的数据信息。使用二进制格式存储;

VBF文件格式概览如下:

Name Description Type Data VBF版本段 VBF版本号 Text vbf_version=2.7; 文件头段 头信息 Text n bytes,ASCII 数据段 Block 1 Start address 4 bytes,binary Length 4 bytes,binary Data n bytes,binary Checksum 2 bytes,binary Block 2 Start address 4 bytes,binary Length 4 bytes,binary Data n bytes,binary Checksum 2 bytes,binary .. .. .. Block n Start address 4 bytes,binary Length 4 bytes,binary Data n bytes,binary Checksum 2 bytes,binary
描述 字符 16进制 水平Tab HT 09 换行 LF 0A 垂直Tab VT 0B 换页 FF 0C 回车 CR 0D 空格 SPACE 20 9.不允许出现非打印字符;
  • vbf_version=2.7;
  • vbf_version = 2.7 ;
    VBF版本部分后必须紧跟文件头部分。BVF版本部分和文件头部分可以包含空白字符(见2.2章节8)

description标识符是可选的,用来简短的介绍文件。
description值需满足如下要求:

  1. 最多16行
  2. 每行最多80字节
  3. 每行都包含在引号(")中,并以逗号(,)结束,如果该行是最后一行,则以右括号(})后跟分号(;)结束
  4. 引号内的空白不会被忽略
  5. 无论是单行还是多行,所有描述行都应包含在大括号内
  6. 行内不允许使用引号(")

正确示例:

  1. description = {"Created:2022-03-14"};
  2. description = {"created by xxx",
    "sop xxxx"
    };




sw_part_number标识符为必选,用来识别汽车制造商的软件组件(VBF文件)的零部件号。
sw_part_number值需满足如下条件:
1.必须用引号包含
2.最多20个字节
3.不允许空白符和注释










正确示例:

  1. sw_part_number = "";

sw_version标识符为必选,用来识别汽车制造商的软件组件(VBF文件)的版本号。
sw_version值需满足如下条件:
1.必须用引号包含
2.最多4个字节
3.不允许空白符和注释
4.应只包含大写字符A-Z(不能出现数字)













正确示例:

  1. sw_part_number = "";

sw_part_type标识符为必选,用来指明ECU软件类型。
sw_part_type无需使用双引号包围,且仅允许使用下表中的值。

合法值 描述 CARCFG Car configuration CUSTOM Customer parameters DATA Data or parameters(i.e.,calibrations) EXE Executable SBL Secondary Bootloader SIGCFG Signal configuration PBL Primary Bootloader SSBL Special SBL which has the possibility to replace the PBL TEST Test program,(i.e.production test,diagnostics) FBL Flashable Bootloader CERT Certificate PWD Password for certificate APP Application file MAP Map file used for navigation ESS ECU Software Structure SIGNED Digital Signature file VARIANT_INFO Settings file(for offboard tool settings)

当sw_part_type值为SBL或SSBL时,不允许使用标识符erase
正确示例:

  1. sw_part_type = EXE;
  2. sw_part_type = APP;

sw_current_part_number标识符为可选,用来识别汽车制造商的软件组件(VBF文件)的零部件号。该标识符值仅用于进行差分软件升级(delta software update)时,已安装的软件零部件号应匹配此值。此字段仅适用于软件升级且压缩类型为"delta"的软件升级时使用。
sw_current_part_number值需满足如下条件:
1.必须用引号包含
2.最多20个字节
3.不允许空白符和注释










正确示例:

  1. sw_current_part_number = "";

sw_current_version标识符为可选。当使用差分软件升级(delta software update)时,用来标识期望在当前ECU中已安装的汽车制造商的软件组件(VBF文件)的版本号。该字段仅在软件升级且压缩类型为delta时使用。
sw_current_version值需满足如下条件:
1.必须用引号包含
2.最多4个字节
3.不允许空白符和注释
4.应只包含大写字符A-Z(不能出现数字)













正确示例:

  1. sw_current_version = "ABC";

data_format_identifier标识符为可选,以非零值出现在头信息中。该字段表明数据的压缩和加密方式,字段的合法值范围为0x00到0xFF,其中高半个字节代表数据压缩方式,低半个自交代表数据加密方式。当该标识符未出现在头信息中,表明即不做压缩,也不做加密。

正确示例:

  1. data_format_identifier = 0x10; //压缩方式为#1,不加密
  2. data_format_identifier = 0x21; //压缩方式为#2,加密方式为#1

ecu_address标识符为必选,用来指明ECU的物理目标地址。该字段值被划分为3个不分:Domain ID,Network ID、ECU ID。ecu_address取决于ECU在网络拓扑中的位置。
ecu_address共2个字节,16个bit。bit 0-3为ECU ID,bit 4-7为Network ID,bit 8-11为Domain ID。

正确示例:

  1. ecu_address = 0x 1234; //Domain ID:0x2,Network ID:0x3,ECU ID:0x4

erase标识符为可选,指示在软件下载操作发生之前需要擦除的内存范围。擦除起始地址和长度不需要与flash扇区起始地址和长度匹配。擦除长度可以跨越多个Flash扇区,也可以在单个Flash扇区内。erase标识符值需使用大括号包含2个值,第一个值为起始地址,第二个值为长度。起始地址和长度的范围均为0x00000000到0xFFFFFFFF。

正确示例:

  1. erase = {{0x00001000,0x00003FFF}};
  2. erase = {{0x00001000,0x00003FFF},
    {0x000060FF,0x00000500}
    };




call标识符在sw_part_type为SBL或SSBL时是必选,在sw_part_type为TEST时是可选的。在sw_part_type为其他值是,不允许使用call标识符。
call标识符指示ECU内存里预定义的可执行函数的起始地址,其实地址为4个字节,范围在0x00000000到0xFFFFFFFF。

正确示例:

  1. sw_part_type = SBL;
    call=0x00001000;

  2. sw_part_type = SSBL;
    call=0x00001000;

verification_block_start标识符为可选的,指示需要进行签名的原始数据(未压缩前)的起始地址。该标识符值为4个字节。
正确示例:
1.verification_block_start = 0x00001000;




verification_block_length标识符为可选的,指示需要进行签名的的原始数据(未压缩和加密前)的长度。该标识符值为4个字节。
正确示例:
1.verification_block_length = 0x00001000;




verification_block_length标识符为可选的,指示需要进行签名的的原始数据(未压缩和加密前)的哈希值。该标识符值长度依据HASH算法确定。
正确示例:
1.verification_block_length = 0xABCDEFABCDEF;




sw_signature标识符为可选的,代表签名值。该标识符值的长度需根据签名算法确定。

sw_signature_dev标识符为可选的,代表测试和开发阶段的签名值。该标识符值的长度需根据签名算法确定。使用开发阶段密钥对后续会发布的软件进行签名,形成签名值并存储在该标识符中。

file_checksum标识符为必选,长度为4个字节。checksum目的是在尝试下载前,进行文件完整性的校验。checksum使用CRC32算法,计算数据部分的所有数据,包括所有data block的start address、length、 checksum。
checksum满足如下规范:

  • 32 bit CRC,多项式为0x04C11DB7(x^32 + x^26 + x^23 + x^22 + x^16 + x^12 + x^11 + x^10 + x^8 + x^7 + x^5 + x^4 + x^2 + x^1 + 1)
  • 初始值为0xFFFFFFFF
  • 位反转

若没有data blocks,则file_checksum为0xFFFFFFFF。

正确示例:
1.file_checksum = 0x;

parameter_settings标识符为可选的,用于定义和携带off-board工具所需的配置。

数据段 Block 1 Start address 4 bytes,binary Length 4 bytes,binary Data n bytes,binary Checksum 2 bytes,binary Block 2 Start address 4 bytes,binary Length 4 bytes,binary Data n bytes,binary Checksum 2 bytes,binary .. .. .. Block n Start address 4 bytes,binary Length 4 bytes,binary Data n bytes,binary Checksum 2 bytes,binary
到此这篇vbf是什么类型的游戏(vbf是什么意思)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 上一章返回目录下一章怎么弄(上一章返回目录下一章怎么弄出来)2025-08-28 14:36:04
  • 本机状态信息(显示本机信息)2025-08-28 14:36:04
  • ddpm模型跟dpm区别(ddm模型 g)2025-08-28 14:36:04
  • ipv6单播地址包括哪两种类型(ipv6单播地址包括哪两种类型的)2025-08-28 14:36:04
  • jflash下载程序步骤 序列号(jflash怎么烧录程序)2025-08-28 14:36:04
  • ip138查询本机(iphone查本机号码是哪几个键)2025-08-28 14:36:04
  • c1517-001故障码(c11a071故障码)2025-08-28 14:36:04
  • 游戏分类标准表(游戏分类的标准是什么多选题专技)2025-08-28 14:36:04
  • spss25永久许可证代码(spss20永久许可证代码)2025-08-28 14:36:04
  • 网页聊天平台哪个好(网页聊天平台哪个好用)2025-08-28 14:36:04
  • 全屏图片