Value Table(数值表)和Byte Order(字节顺序)是数据库的两项重要内容,下面分别介绍给大家。
1. Value Table
Value Table(数值表) 用来文字化地指定信号和环境变量的值所代表的含义。例如,1代表On状态,0代表Off状态。
打开CANdb++编辑器,在工具栏上,单击Value Table 图标进入 Value Tables界面,在空白处右击,选择New,创建一个名为Vtsin_MCU_Status的Value Table,在Value Descriptions选项卡中,单击ADD按钮,增加两个数值,如图1所示。
图1 Value Table设定
Value Table(数值表)创建完毕后,可以将对应的信号或环境变量关联到数值表。根据前面的内容创建一个节点MCU,创建报文MCUState,并创建一个OnOff信号之关联。双击信号OnOff,在Descriptions选项卡中,将Value Table选择为刚才创建的数值表。如图2所示。
图2 设置信号OnOff的数值表
2. Byte Order
数据中信号的Byte Order(字节顺序)分为Motorola和Intel两种格式(也称大端模式和小端模式),两种格式的字节顺序如下:
MSB:最高有效字节;LSB:最低有效字节。
位排列顺序在两种形式下是一致的,如下:
msb:最高有效位;lsb:最低有效位。
现以一个车辆的马达速度信号为例,来看两者的区别:
(1)Intel格式如图Layout图如图3所示:
图3 Intel格式下马达速度信号的Layout图
此时的设置数据长度和起始位及数据格式如图4、图5所示:
图4 Intel格式下的格式及数据长度设置
图5 Intel格式下的数据起始位设置
(2)若使用Motorola格式,上面的速度数据仍占用相同的字节,则设置如下图6更改:
图6 Motorola格式设置
起始位设置如图7
图7Motorola格式起始位设置
再来看这时的Layout图,如图8所示。
图8 Motorola格式下马达速度信号的Layout图
对比图3图7可以看到,虽然种格式存储空间一样,但低字节的起始位,两者却是不一样的。从而导致设置时,数据的起始位是不同的。
本部分主要给大家讲了Value Table(数值表)和Byte Order(字节顺序),其中数据顺序中需要重点掌握Motorola格式和Intel格式的区别,不知通过上面的讲解,您弄明白了没有?