-
-
- 选择标定数据页(SELECT_CAL_PAGE)
-
该命令的功能取决于ECU的内部实现。执行该命令后,先前设置的MTA0地址将会自动指向由该命令激活的标定页,SELECT_CAL_PAGE命令的CRO数据场结构,如下所示。
位 置 | 类 型 | 描 述 |
0 | 字节 | 命令代码=0x11(SELECT_CAL_PAGE) |
1 | 字节 | 命令序号=CTR |
2~7 | 字节 | 无效 |
针对SELECT_CAL_PAGE命令返回DTO的数据场结构,如下所示。
位 置 | 类 型 | 描 述 |
0 | 字节 | Packet ID:0xFF |
1 | 字节 | 命令返回代码=ERR |
2 | 字节 | 命令序号=CTR |
3~7 | 字节 | 无效 |
例如,主设备向从设备发送SET_MTA命令,再发送SELECT_CAL_PAGE命令,当前CTR为0x23,如下所示。
byte | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
0x11 | 0x23 | -- | -- | -- | -- | -- | -- |
从设备返回TDO,包括确认代码ERR(0x00)、CTR(0x23),如下所示。
byte | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
0xFF | 0x00 | 0x23 | 0x10 | 0x11 | 0x12 | 0x13 | -- |
执行该命令后,先前SET_MTA命令设置的MTA0地址自动指向当前被激活的标定页的首地址。
byte | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
0xFF | 0x00 | 0x23 |
-
-
- 获取DAQ列表大小(GET_DAQ_SIZE)
-
该命令用来获取某个特定DAQ列表大小,即其中ODT列表的个数,并清空当前DAQ列表内的数据,为下次DAQ通信做准备。如果GET_DAQ_SIZE命令还对DAQ列表不存在或不可用,从设备返回的ODT列表个数为0。同时该命令还对DAQ列表进行初始化并中止该DAQ列表当前的通信。
当要同时对多个ECU进行DAQ操作时,可在GET_DAQ_SIZE命令中加入该DAQ列表对应的CAN ID标识符(该DAQ列表所在ECU的DTO_ID)。该项为可选功能,如果给出的ID号不可得,则返回一个错误代码。GET_DAQ_SIZE命令的CRO数据场结构如下所示。
位 置 | 类 型 | 描 述 |
0 | 字节 | 命令代码=0x14(GET_DAQ_SIZE) |
1 | 字节 | 命令序号=CTR |
2 | 字节 | DAQ列表序号(#0,#1…) |
3 | 字节 | 无效 |
4~7 | 字节 | 该DAQ列表,其所对应的DTO的CAN ID标识符 |
针对GET_DAQ_SIZE命令返回DTO的数据场结构如下所示。
位 置 | 类 型 | 描 述 |
0 | 字节 | Packet ID:0xFF |
1 | 字节 | 命令返回代码=ERR |
2 | 字节 | 命令序号=CTR |
3 | 字节 | DAQ列表大小(ODT列表书) |
4 | 字节 | DAQ列表的第一个PID号 |
5~7 | 字节 | 无效 |
通过下式可计算出DAQ列表中某个ODT的PID号:
PID=First PID of DAQ list + ODT number(DAQ列表中的第一个PID号+ODT数目)
例如,主设备先向从设备发送GET_DAQ_SIZE命令,当前CTR为0x23,DAQ列表的序号为0x03,CAN ID号为0x01020304,如下所示。
byte | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
0x14 | 0x23 | 0x03 | -- | 0x01 | 0x02 | 0x03 | 0x04 |
从设备返回TDO,包括确认代码ERR(0x00)、CTR(0x23)、DAQ列表的第一个PID号(0x08)以及列表的大小(总共有10个ODT,每个ODT为7个字节),如下所示。
byte | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
0xFF | 0x00 | 0x23 | 0x10 | 0x08 | -- | -- | -- |
-
-
- 设置DAQ列表指针(GET_DAQ_PTR)
-
在进行DAQ模式通信前,必须先对DAQ列表进行配置,将数据写入到相应DAQ列表的ODT元素中。SET_DAQ_PTR命令用来为写入DAQ列表数据设置入口地址指针。SET_DAQ_PTR命令的CRO数据场结构如下所示。
位 置 | 类 型 | 描 述 |
0 | 字节 | 命令代码=0x15(SET_DAQ_PTR) |
1 | 字节 | 命令序号=CTR |
2 | 字节 | DAQ列表序号(#0,#1…) |
3 | 字节 | ODT序号(#0,#1…) |
4 | 字节 | 该ODT中的第几个元素(0,1…) |
5~7 | 字节 | 无效 |
针对SET_DAQ_PTR命令返回DTO的数据场结构如下所示。
位 置 | 类 型 | 描 述 |
0 | 字节 | Packet ID:0xFF |
1 | 字节 | 命令返回代码=ERR |
2 | 字节 | 命令序号=CTR |
3~7 | 字节 | 无效 |
例如,主设备先向从设备发送SET_DAQ_PTR命令,当前CTR为0x23,DAQ列表的序号为0x03,ODT序号为0x05,将指针设置到该ODT中的第2个元素,如下所示。
byte | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
0x15 | 0x23 | 0x03 | 0x05 | 0x02 | -- | -- | -- |
从设备返回TDO,包括确认代码ERR(0x00)、CTR(0x23),如下所示。
byte | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
0xFF | 0x00 | 0x23 | -- | -- | -- | -- | -- |
-
-
- 写入DAQ列表(WRITE_DAQ)
-
在DAQ通信前,需要对DAQ列表进行配置,将所需要上传的数据事先写入DAQ列表的ODT列表中,该条命令的功能就是将数据写入DAQ列表,先前由SET_DAQ_PTR命令所定义的地址即为该命令的数据写入地址。在WRITE_DAQ命令中,一次写入的数据称为一个DAQ元素。写入的DAQ元素大小可为:1字节、2字节(1字)、4字节(长整型/浮点型)。由于一个ODT列表最多只能存储7字节的数据,因此对于长整型或浮点型,ECU必须保证上传时DAQ列表中数据的完整性与连贯性。WRITE_DAQ命令的CRO数据场结构如下所示。
位 置 | 类 型 | 描 述 |
0 | 字节 | 命令代码=0x16(WRITE_DAQ) |
1 | 字节 | 命令序号=CTR |
2 | 字节 | DAQ元素大小(可为1,2,4字节) |
3 | 字节 | DAQ元素的地址偏移 |
4~7 | 字节 | DAQ元素的地址 |
针对WRITE_DAQ命令返回DTO的数据场结构如下所示。
位 置 | 类 型 | 描 述 |
0 | 字节 | Packet ID:0xFF |
1 | 字节 | 命令返回代码=ERR |
2 | 字节 | 命令序号=CTR |
3~7 | 字节 | 无效 |
例如,主设备向从设备发送WRITE_DAQ命令,当前CTR为0x23写入DAQ元素的大小为2字节,写入元素的地址偏移为0x01,地址为0x02004200,如下所示。
byte | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
0x16 | 0x23 | 0x02 | 0x01 | 0x02 | 0x00 | 0x42 | 0x00 |
从设备返回TDO,包括确认代码ERR(0x00)、CTR(0x23),如下所示。
byte | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
0xFF | 0x00 | 0x23 | -- | -- | -- | -- | -- |