2023年12月2日发(作者:)
内部资料,注意保密
天津易博达动力科技有限公司
天津易博达动力科技有限公司
2013.3.19
内部资料,注意保密
天津易博达动力科技有限公司
版本号
描述
初版创建
发布人
王丽丽
发布日期
2013-03-20
备注
目录
1 MDF文件简介 ................................................................................................................... 3
1.1
大纲 ................................................................................................................... 3
1.2 缩写 ..................................................................................................................... 3
2 MDF文件版本 .................................................................................................................. 3
2.1历史版本 .................................................................................................................. 3
2.2
3
版本命名规则 ........................................................................................................... 3
MDF通用块格式 (3.1版本) .................................................................................................... 4
3.1 数据类型的定义 ......................................................................................................... 4
3.2
MdF各个模块详细说明 .................................................................................................... 5
3.21
ID块 ............................................................................................................... 5
3.22
HD块 ............................................................................................................... 5
3.23
TX块 ............................................................................................................... 5
3.24
DG块 ............................................................................................................... 6
3.25
CG块 ............................................................................................................... 6
3.26
CN块 ............................................................................................................... 6
3.27 CC块 .............................................................................................................. 7
3.28 关于链接地址的计算公式 .............................................................................................. 8
内部资料,注意保密
天津易博达动力科技有限公司
1 MDF文件简介
MDF文件是用来记录、交换和测量分析的,the Measure Data Format (简称MDF)被用于汽车工业中。MDF文件主要提供了以下三方面的信息:
1) 汽车工业方面不同工具之间的交换
2) 数据的简洁描述
3) 对于不固定文件长度的通用文件信息的快速存取
本文档是用来详细说明3.1版本的MDF文件。
1.1 大纲
第二章提供了一个历史的MDF格式和描述了约定和更新格式扩展。第三章指定文件的结构以及各种MDF块类型。第四章描述了数据的结构块和展示了如何读信号值。
1.2 缩写
ASAM Association for Standardization of Automation and Measuring Systems
标准化协会的自动化和测量系统
CCBLOCK Channel Conversion BLOCK 通道转换块
CDBLOCK Channel Dependency BLOCK 通道数据块
CEBLOCK Channel Extension BLOCK 通道扩展块
CGBLOCK Channel Group BLOCK 通道组块
CNBLOCK Channel BLOCK 通道信息块
DGBLOCK Data Group BLOCK 数据组块
HDBLOCK Header BLOCK 头信息块
IDBLOCK Identification BLOCK MDF文件识别块
LSB Least Significant Bit 最低有效位
MDF Measure Data Format 测量数据格式
MSB Most Significant Bit 最高有效位
NIL NIL pointer (0x00000000) 空指针
PRBLOCK Program BLOCK 程序块
TRBLOCK Trigger Block 触发块
TXBLOCK Text BLOCK 文本块
2 MDF文件版本
自1991年MDF文件创建以来,MDF格式已经扩展了几次。本章提供了一个简短的MDF文件格式发展历史的几次重大改变和指令如何处理未来的更新。
2.1历史版本
MDF是 1991年向量Informatik GmbH与罗伯特博世两家公司在合作VS100工具时创建的。 自那时以来,该格式只是在较小的细节上进行了扩展,例如支持新的数据类型为字符串,字段名称,新ASAM兼容信号转换规则。在过去的几年,MDF已经发展成在汽车领域用于测量数据的准标准文件格式,。
MDF文件格式的几次重要修改:
年份
1991
1996
2000
2000
2001
2002
2005
2006
版本
2.03
2.11
2.12
2.13
2.15
3.00
3.01
3.10
描述
第一个官方发布的MDF版本
新的转换类型(CCBLOCK):ASAM-MCD2文本
新的转换类型(CCBLOCK):ASAM-MCD2文本表
新字段(CNBLOCK): “长信号名称”
新的扩展类型(CEBLOCK):向量可以阻止
新数据类型(CNBLOCK):“字符串”和“字节数组”
新的转换类型(CCBLOCK):“日期”和“时间”
新的转换类型(CCBLOCK):ASAM-MCD2文本范围表
新字段(CNBLOCK):“显示名称”和“附加字节偏移量”
在CDBLOCK n维的依赖
新的信号数据类型(CNBLOCK)来定义一个特定的字节顺序为整数和浮点信号值(可以不同于默认的字节顺序)允许跨越边界的字节整数信号的位偏移量> 0
2.2 版本命名规则
MDF版本号由三个数字组成,一个主版本号,一个小版本号和修订号。通常只有主要和次要版本号,如V3.1版本,由主版本号的“3”与次要版本号的“1”组成。在IDBLOCK,额外的修订号是附加的。对于当前的版本,例如, 版本字符串 读作“3.10”的,必须理解为V3.1 ,修订号“0” (而不是作为次要版本号“10”!)。三位数的限制意味着次要版本号和修订号两个必须都不能超过9个。
在MDF文件格式的每一个变化必须导致更高的版本号,即三位数由主修、辅修和修订号必须大于前面的版本(如,310 > 301即版本3.10和3.01)。
元素 描述 内部资料,注意保密
天津易博达动力科技有限公司
在使用一些比较旧的工具进行数据计算时,MDF文件格式的变化,可能导致错误,需要改变主版本号。一个评估MDF文件的工具 ,有一个更高的主要版本号比支持的是什么工具应该拒绝读取文件并生成一个警告或错误消息。
在使用一些比较旧的工具进行数据计算时,MDF文件格式的变化,可能不会导致错误, 但是旧的工具的解释可能错过在新MDF版本中的新功能/信息存储,通常它会简单地忽略他们,生成一条警告消息,只需要改变小版本号。
MDF文件格式的变化,不会影响一个比较旧的工具的解释,可以仅仅是通过改变修订号来实现。
3 MDF通用块格式 (3.1版本)
识别块
IDBlock
头信息块 测量文件评论文本块
IDBlock
TXBlock
datagroup1
Data
records1
PRBlock
TXBlock
DGBlock
CGBlock
CNBlock
TXBlock
CGBlock
TRBlock
CNBlock
Datagroup2
Data records2
CNBlock
CGBlock
CNBlock
CEBlock
CDBlock
TXBlock
TXBlock
CCBlock
TRBlock
DGBlock
CGBlock
CNBlock
TXBlock
CNBlock
TXBlock
3.1 数据类型的定义
数据类型
格式
CEBlock
CCBlock
CGBlock
内部资料,注意保密
天津易博达动力科技有限公司
CHAR
UINT8
UINT16
UINT32
1个字节代表一个字符(C数据类型:字符)。存储的字符串可能会或可能不会被终止了零字节。
8位无符号整数
16位无符号整数(通常写作WORD)
32位无符号整数(DWORD)
布尔变量,存储为16位。如果内容!= 0值为真,如果内容= = 0那么假
符合IEEE 754浮点数,双精度(64位)
除了IDBLOCK和HDBLOCK是可选的。
32位有符号整数, 在这个文件用作字节位置。如果一个链接是零(对应于0),这意味着相应的块不存在和链接不能取消引用。记住,所有的块
3.2 MdF各个模块详细说明
MDF由9个必须块和两个非必须块组成。必须存在的9个块,分别是识别块、头信息块、文本块、数据组块、数据块、通道组块、通道块、通道转换块、通道扩展块。另外的两个非必须块,分别为程序块和触发块。CD块即数据块记录时间和信号数据,CE块长度固定128字节。其他各个块的说明如下:
3.21 ID块
固定长度 共64字节,地址为0x0000~0x003F
名称
Id_Kenn
Id_vers
Id_prog
Id_order
数据类型
CHAR(BYTE)
CHAR(BYTE)
CHAR(BYTE)
UNIT16(WORD)
数据长度
8个字节
8个字节
8个字节
1个字
值
“MDF ”即MDF后跟5个空格
版本号,比如3.10
程序识别标识符,比如MCD_6.1
用于此文件的默认的字节顺序 (可以否决了在CNBLOCK的价值信号)
0 =小端字节序(英特尔顺序)
任何其他值=大端字节序(摩托罗拉顺序)
Id_float UNIT16(WORD) 1个字
用于此文件的默认的浮点格式 (可以否决了在CNBLOCK的价值信号)
0 =浮点格式符合IEEE 754标准
1 =浮点格式符合g浮子(VAX架构)(过时的)
2 =浮点格式符合d浮子(VAX架构)(过时的)
Id_ver
Id_res
UNIT16(WORD)
UNIT16(WORD)
1个字
1个字
2个字节
30个字节
MDF版本,比如310
保留的
保留的
保留的
Id_check[2] CHAR(BYTE)
Id_fill{30} CHAR(BYTE)
请注意,两个默认是字节顺序和默认的浮点格式,适用于完整的文件,即所有的值(整型、浮点)有相应的解释。唯一的例外是,信号值可以用不同的格式存储在数据块。在这种情况下,格式指定的信号数据类型的默认格式CNBLOCK否决。
例如,完整的文件可以使用小端字节序(英特尔)作为默认的字节顺序;然而一个信号在数据块存储在大端字节序(摩托罗拉)字节顺序。在这种情况下当从一个记录的数据块读信号值,字节必须在解读大端字节序(摩托罗拉)秩序,即在一个英特尔系统字节必须交换。
3.22 HD块
固定长度164个字节,地址为0x0040~0x00E3
名称
hd_id
hd_length
hd_dgblock
hd_txblock
hd_prblock
hd_ndg
hd_date
hd_time
hd_name
hd_division
hd_project
hd_subject
3.23 TX块
TXBLOCK块含有一个对测量数据文件的可选的评论,通道组或信号,或一个信号的长名字。文本的长度取决于块大小。除了时间信号外,其他每个信号都含有一个文本块,块的大小不固定。但头信息块指向的文本块长度固定,大小为5个字节,地址为0x00E4~0x00E8
注意:一个文件的可能储备空间, 在其保留的范围允许修改评论,而不需要重写整个MDF文件。
数据类型
CHAR(BYTE)
UNIT16(WORD)
LINK(DWORD)
LINK(DWORD)
LINK(DWORD)
UNIT16(WORD)
CHAR(BYTE)
CHAR(BYTE)
CHAR(BYTE)
CHAR(BYTE)
CHAR(BYTE)
CHAR(BYTE)
数据长度
2个字节
2个字节
1个双字
1个双字
1个双字
1个字
10个字
8个字节
32个字节
32个字节
32个字节
32个字节
HD
HD块的长度即164
指向第一个数据组块(DGBLOCK)的地址
指向测量文件评论文本(TXBLOCK) 的指针( 允许NIL)
指向程序块(PRBLICK)的指针 (允许NIL)
值
数据组块的数量
文件创建日期,使用"DD:MM:YYYY" 这种格式
文件创建时间,使用"HH:MM:SS " 这种格式
作者的名字(可为空值)
组织或部门的名称
项目名称(可为空值)
测量对象比如车辆信息(可为空值) 内部资料,注意保密
天津易博达动力科技有限公司
3.24 DG块
长度固定为24个字节
名称
dg_id
dg _length
dg_dgblock
dg_cgblock
dg_trblock
dg_data
dg_ncg
数据类型
CHAR(BYTE)
UNIT16(WORD)
LINK(DWORD)
LINK(DWORD)
LINK(DWORD)
LINK(DWORD)
UNIT16(WORD)
数据长度
2个字节
1个字
1个双字
1个双字
1个双字
1个双字
1个字
DG
DG块的长度即24
指向下一个数据组块(DGBLOCK)的地址
指向第一个通道组块的指针( 允许NIL)
指向触发块的指针 (允许NIL)
指向数据块的指针 (允许NIL)
记录ID在数据块的数量
0 =数据记录没有记录ID
1 =在每个数据记录之前记录ID(UINT8)
2 =每一个数据记录之前和之后,记录ID(UINT8)
值
dg_nid
3.25 CG块
长度固定为26字节。
名称
cg_id
cg_length
cg_cgblock
cg_cnblock
cg_txblock
cg_ident
cg_ncn
cg_nbyte
cg_ncyc
3.26 CN块
长度固定为228字节。
名称
cn_id
cn_length
cn_cnblock
cn_ccblock
cn_ceblock
cn_cdblock
cn_txblock
cn_type
UNIT32(DWORD) 1个双字 保留的
数据类型
CHAR(BYTE)
UNIT16(WORD)
LINK(DWORD)
LINK(DWORD)
LINK(DWORD)
UNIT16(WORD)
UNIT16(WORD)
UNIT16(WORD)
UNIT32(DWORD)
数据长度
2个字节
1个字
1个双字
1个双字
1个双字
1个字
1个字
1个字
1个双字
CG
值
HD块的长度即26
指向下一个通道组块(CGBLOCK)的地址
指向第一个通道的指针( 允许NIL)
指向通道组评论文本块的指针 (允许NIL)
记录ID, 即如果DGBLOCK定义了一些的记录ID那么记录标识符的值> 0
信号的数量(冗余信息)
没有记录ID的数据记录的长度
在数据块中数据记录的循环次数
数据类型
CHAR(BYTE)
UNIT16(WORD)
LINK(DWORD)
LINK(DWORD)
LINK(DWORD)
LINK(DWORD)
LINK(DWORD)
UNIT16(WORD)
数据长度
2个字节
1个字
1个双字
1个双字
1个双字
1个双字
1个双字
1个字
CN
值
CN块的长度即228
指向该通道组块的下一个信号的指针( 允许NIL)
指向指向该信号的通道转换块(CCBLOCK) 的指针( 允许NIL)
指向指向该信号的通道扩展块(CEBLOCK) 的指针( 允许NIL)
指向该信号的指针依赖块的指针
指向指向该信号的文本块(TXBLOCK) 的指针( 允许NIL)
通道类型
0 =数据通道
1 =为这组所有信号的时间通道 (在每个通道组,恰好一个通道必须被定义为时间通道)
cn_name CHAR(BYTE) 32个字节
短的信号名称,比如名称asam mcd信号的第一个31个字符(文本结束应该显示0)。如果这个名字是超过31个字符,完整的名称包含在TXBLOCK引用字段“长信号名称”(见下文)。在这种情况下,短信号名称应该忽略支持长名。注意:一个信号的名称结合其来源的信息(CEBLOCK)应在MDF文件中应该是独特的,因为这个名字可能被用作标识符为评价程序。
cn_desc
cn_val_sbit
CHAR(BYTE) 128个字节
信号描述
起始偏移量即在数据记录中用来确定信号的第1位比特。起始偏移量是一个 “字节偏移”和一个“位偏移”的结合。可能有一个必须添加到字节偏移的“附加字节偏移量”(见下文)。(总)字节偏移量应用于纯记录数据,比如没有记录ID,并指向包含少量的信号值的第一个字节。该位偏移是用来确定信号值的字节内的LSB。
UNIT16(WORD) 1个字
cn_val_nbit
cn_val_type
UNIT16(WORD) 1个字
UNIT16(WORD) 1个字
比特数,在一个数据记录用于信号值的编码
信号数据类型 内部资料,注意保密
天津易博达动力科技有限公司
注: IDBLOCK使用,0 - 3中定义的默认字节顺序
0 =无符号整数
1 =符号整数(二进制补码)
2 = IEEE 754浮点格式浮子(4字节)
3= IEEE 754浮点格式双(8/10字节)
4
5
6
= VAX浮点格式(f浮子)
= VAX浮点格式(g浮子)
= VAX浮点格式(d浮动)
7
8
=字符串(空终止)
=字节数组(max。8191字节,常数记录长度!)
9 =无符号整数
10 =符号整数(二进制补码)
11 = IEEE 754浮点格式浮子(4字节)
12 = IEEE 754浮点格式双(8/10字节)
13 =无符号整数
14 =符号整数(二进制补码)
15 = IEEE 754浮点格式浮子(4字节)
16 = IEEE 754浮点格式双(8/10字节)
0—3
Idbolck默认的字节顺序
4—6过时的
9—12 大端字节序(摩托罗拉)字节顺序
13—16小端字节序(英特尔)字节顺序
cn_val_minmaxok BOOL(WORD) 1个字
值范围的有效标志:
真=对这个信号发生在给定的时间范围两个最小和最大原始值,是已知的和存储在接下来的两个字段
错误=下面的两个字段的最小和最大信号值是无效的
cn_val_min
cn_val_max
cn_val_raster
REAL(长度为8个字节)
REAL(长度为8个字节)
REAL(长度为8个字节)
1
1
1
每个信号的最小值
每个信号的最大值
虚拟时间通道的采样率 单元[s]
可以用来定义一个所谓的“虚拟时间通道”,比如一个时间通道,其中的比特数等于零。在这种情况下,时间戳不存储在数据记录,但由记录指数和采样率来决定。注意:不使用价值渠道或实时通道。
cn_tx_longname
cn_txl_display
cn_val_sbyte
LINK(DWORD)
LINK(DWORD)
UNIT16(WORD)
1
1
1
包含asam mcd长信号名称的指向TXBLOCK的链接指针
包含信号的显示名称的指向TXBLOCK的指针 (允许NIL)
在数据记录中信号的额外字节偏移量(默认值:0)。
3.27 CC块
长度固定为62字节。
名称
cc_id
cc_length
cc_phy_minmaxok
cc_phy_min
cc_phy_max
cc_phy_unit
cc_frm_id
数据类型
CHAR(BYTE)
BOOL(WORD)
REAL(8个字节)
REAL(8个字节)
CHAR(BYTE) 20个字节 物理单元
转换类型(公式标识符)
0 =参数、线性
1 =表格与插值
2 =表格
数据长度
2个字节
1个字
1
1
CC
值
CC块的长度即62
指向第一个数据组块(DGBLOCK)的地址
最小物理信号值
UNIT16(WORD) 1个字
最大物理信号值
UNIT16(WORD) 1个字 内部资料,注意保密
天津易博达动力科技有限公司
6 =多项式函数
7 =指数函数
8 =对数函数
9 =合理转换公式
10 = ASAM-MCD2文本公式
11 = ASAM-MCD2文本表,(COMPU_VTAB)
12 = ASAM-MCD2文本范围表(COMPU_VTAB_RANGE)
132 =日期(基于7字节日期数据结构)
133 =时间(基于6字节时间数据结构)
65535 = 1:1转换公式(Int =》)
cc_frm_npar UNIT16(WORD) 1个字
关于额外的转换数据的大小信息(可选)转换类型0、6、7、8、9:数量的参数
转换类型1、2、11、12:数量的值对转换类型10:字符数
… ….. variable
额外的转换数据(可选)
参数(类型0,6,7,8,9)或表(类型1、2、11、或12)或文本(类型10),这取决于转换公式标识符。看到公式具体块补充。
3.28 关于链接地址的计算公式
(1)当只有一个数据组块时:
[0]=sum+418*channel+126
[0]= sum+418*channel+100
[0]= sum+418*channel+150
[0]= sum+418*(channel-1)+290
(2)当有2个数据组块时:
[0]=sum+418*(channel-1)+342
[0]= sum+418*(channel-1)+316
[0]= sum+418*(channel-1)+366
[0]= sum+418*(channel-1)+88
注:sum为所有txblock的总长度,channel为总的信号数,这些是根据现有的MDF文件自己总结的,用于初始化链接地址。
发布评论