Quantex GmbH
您的地区:欧洲

J2534 第 2 版日志格式

最后修改:

说明

J2534 库采用紧凑、易于解析的日志格式。每一行表示一次操作或一条带数据的消息。该格式针对自动分析进行了优化,能够完整重现汽车诊断过程中的操作序列。

日志文件结构

# v2 2026-01-10 02:00:18
  0 I j0 open 192.168.12.3 > ok 4ms
 10 I j0 conn ISO15765 500000 > 1 9ms
  6 I j0 wr 1 100 1 > 1 5ms
	[6A8]10C0 0.000 2
  5 I j0 rd 1 2000 10 > 1 4ms
	[688]61C0 2240.300 2
...

来自应用程序的记录

应用程序可以通过 PassThruWriteToLog 函数向日志中添加自定义记录:

  0 I pt_lib open param: 192.168.12.3, type:1
  0 I pt_lib open param: 192.168.12.3, name:sd0;n192.168.12.3

来自应用程序的记录使用标识符 pt_lib 代替设备编号。

操作行格式

DELTA LEVEL DEVICE COMMAND PARAMS > RESULT DURATION
  0 I j0 open 192.168.12.3 > ok 4ms
 10 I j0 conn ISO15765 500000 > 1 9ms
  5 I j0 disc 1 > ok 4ms
  4 I j0 close > ok 3ms
位置 字段 说明
0 DELTA 距上一次操作的增量时间,单位毫秒(3 个字符,右对齐)
1 LEVEL 日志级别:I(Info)、E(Error)、W(Warning)、D(Debug)
2 DEVICE 设备编号(j0、j1、…… j15),应用程序记录则为 pt_lib
3 COMMAND 命令名称
4+ PARAMS 输入参数(参见下方命令表)
- > 分隔符
-2 RESULT 结果/输出值
-1 DURATION 操作时长(Nms)

数据行格式

  [CAN_ID]DATA TIMESTAMP LEN FLAGS
位置 字段 说明
- \t 制表符缩进
0 [CAN_ID] 方括号内的 CAN 标识符
1 DATA 数据字节(hex,无空格)。LEN=0 时为空
2 TIMESTAMP 设备时间戳,单位为秒.毫秒(SSSS.mmm)
3 LEN 数据长度,单位字节
4 FLAGS 以 | 符号分隔的标志(可选)

如果协议与通道的协议不同,则会将其添加到 FLAGS 中。

示例:

  [688]61B05646375244 2240.300 8
  [688]61B05646375244 2240.300 8 RX_START
  [6A8] 2240.281 0 INT|TX_DONE
  [612:F1]037F2212 2240.300 4 CAN
  [612:F1]037F2212 2240.300 4 INT|CAN

结果码

结果 说明
ok 成功(STATUS_NOERROR
N 实际读取/写入的消息数量
  • 0 = 缓冲区为空(代替文本错误码 ERR_BUFFER_EMPTY,不属于错误)
  • 小于请求数量 = 已超时(代替文本错误码 ERR_TIMEOUT,不属于错误)
ERR_XXX 文本错误码 ERR_XXX = 操作执行错误(ERR_INVALID_CHANNEL_IDERR_DEVICE_NOT_CONNECTED 等)
"文本" 带引号的文本字符串(例如调用 PassThruGetLastError 命令时返回的最后一次错误的描述)

命令参考

连接与连接管理

命令 参数(位置 3+) 结果 说明
open address ok/ERR 打开与设备的连接
close - ok/ERR 关闭连接
conn protocol baud channel 按协议连接通道
disc channel ok/ERR 断开通道

连接类型:

消息读取与写入

命令 参数 结果 说明
rd channel timeout num num 或 ERR 读取消息
wr channel timeout num num 或 ERR 写入消息

参数:

结果:

rd 的日志级别:

 26 I j0 wr 1 100 1 > 1 6ms
	[6A8]10C0 0.000 2
  6 I j0 rd 1 2000 10 > 10 5ms
	[6A8] 2240.281 0 INT|TX_DONE
	[688] 2240.294 0 RX_START
 15 W j0 rd 1 0 10 > 0 2ms
 62 W j0 rd 1 50 10 > 2 62ms
	[7DF] 2.489 0 INT|TX_DONE
	[7E8]4100BE1FA813 2.489 6
 41 E j0 rd 1 2000 10 > ERR_INVALID_CHANNEL_ID 0ms

过滤器

命令 参数 结果 说明
flt+ channel [protocol] type mask pattern [flow] filter_id 设置过滤器
flt- channel filter_id ok/ERR 删除过滤器

参数:

过滤器类型:

 13 I j0 flt+ 1 FLOW FFFFFFFF 688 6A8 > 0 3ms
  3 I j0 flt+ 1 ISO15765 FLOW FFFFFFFF 000007E8 000007E0 > 0 0ms
139 I j0 flt- 1 0 > ok 3ms

周期性消息

命令 参数 结果 说明
per+ channel interval msg_id 启动周期性消息
per- channel msg_id ok/ERR 停止周期性消息

参数:

 50 I j0 per+ 1 100 > 0 5ms
	[6A8]3E00 0.000 2
150 I j0 per- 1 0 > ok 3ms

per+ 之后的数据行显示周期性消息的内容(与 wr 相同的格式)。

IOCTL 命令

命令 参数 结果 说明
io channel ioctl_id [params] [result] IOCTL 操作

GET_CONFIG - 读取协议配置参数

DELTA LEVEL DEVICE io channel GET_CONFIG > PARAM:value|PARAM:value|... Nms

示例:

200 I j0 io 1 GET_CONFIG > P2_CAN:2000|P3_MIN:45|ISO15765_BS:8 8ms

SET_CONFIG - 设置协议配置参数

DELTA LEVEL DEVICE io channel SET_CONFIG PARAM:value|PARAM:value|... > ok Nms

示例:

 10 I j0 io 1 SET_CONFIG P2_CAN:2000|P3_MIN:45|ISO15765_WFT_MAX:0 > ok 10ms

常用参数: DATA_RATE、LOOPBACK、P1_MAX、P3_MIN、P4_MIN、W0-W5、TIDLE、TWUP、PARITY、ISO15765_BS、ISO15765_STMIN、BS_TX、STMIN_TX、ISO15765_WFT_MAX、ISO15765_PAD_VALUE、J1962_PINS、CAN_MIXED_FORMAT、FD_CAN_DATA_PHASE_RATE、 HS_CAN_TERMINATION、N_CR_MAX 等。

READ_VBATT - 读取电池电压(针脚 16)

DELTA LEVEL DEVICE io 0 READ_VBATT > voltage Nms

结果: 电压,格式为 X.X(伏特,保留一位小数)。

示例:

 10 I j0 io 0 READ_VBATT > 12.3 5ms

READ_PIN_V - 读取 J1962 接口指定针脚上的电压

DELTA LEVEL DEVICE io 0 READ_PIN_V pin > voltage Nms

参数:

示例:

 10 I j0 io 0 READ_PIN_V 16 > 12.3 5ms

5BAUD_INIT - 用于 ISO9141/ISO14230 的 5 波特初始化

DELTA LEVEL DEVICE io channel 5BAUD_INIT in_addr > out_keybytes Nms

参数:

示例:

 30 I j0 io 1 5BAUD_INIT 33 > 8F6F 2850ms

FAST_INIT - 用于 ISO14230 (KWP2000) 的快速初始化

DELTA LEVEL DEVICE io channel FAST_INIT [tx_msg] > [rx_msg] Nms

参数(可选):

示例:

 10 I j0 io 1 FAST_INIT 8121F181 > 83F11061 85ms
 10 I j0 io 1 FAST_INIT > ok 75ms

缓冲区清除命令

DELTA LEVEL DEVICE io channel IOCTL_NAME > ok Nms
命令 说明
CLEAR_TX_BUFFER 清除 TX 缓冲区
CLEAR_RX_BUFFER 清除 RX 缓冲区
CLEAR_PERIODIC_MSGS 清除周期性消息
CLEAR_MSG_FILTERS 清除消息过滤器
CLEAR_FUNCT_MSG_LOOKUP_TABLE 清除功能消息查找表

示例:

 10 I j0 io 1 CLEAR_RX_BUFFER > ok 2ms
 10 I j0 io 1 CLEAR_MSG_FILTERS > ok 3ms

REQ_CONN - TP2.0 连接请求

DELTA LEVEL DEVICE io channel REQ_CONN addr > ok Nms

参数: addr - 逻辑地址(hex)

示例:

 10 I j0 io 1 REQ_CONN 01 > ok 150ms

其他命令

命令 参数 结果 说明
ver - fw dll api 读取 DLL 版本
rd_ver - ver:FW:XX;HW:XXXXXXXX;SN:X 读取设备固件版本
volt pin voltage ok/ERR 设置编程电压
err - error_text 获取最后一次错误的描述

示例:

  0 I j0 rd_ver > ver:FW:81;HW:0000FF05;SN:0 16ms
300 I j0 err > "Channel not connected" 0ms

CAN ID 格式

类型 格式 示例
11 位标准 [XXX] [612]
29 位扩展 [XXXXXXXX] [18DA00F1]
11 位 + 扩展地址 [XXX:XX] [612:F1]
29 位 + 扩展地址 [XXXXXXXX:XX] [18DA00F1:F1]

当存在 EXT_ADDR 标志时显示扩展地址。

标志参考

接收标志 (RX)

标志 说明
INT 0 内部/loopback(TX_MSG_TYPE)。1=来自适配器的回显,0=来自总线
RX_START 1 分段消息的开始(START_OF_MESSAGE
RX_BREAK 2 检测到连接中断(RX_BREAK
TX_DONE 3 发送成功完成(TX_SUCCESS
TX_FAIL 9 发送错误(TX_FAILED
PAD_ERR 4 ISO15765 填充错误(ISO15765_PADDING_ERROR
EXT_ADDR 7 扩展寻址模式(ISO15765_ADDR_TYPE
EXT29 8 29 位 CAN ID(CAN_29BIT_ID
FD 20 CAN FD 帧(FD_CAN_FORMAT
BRS 19 CAN FD 比特率切换(FD_CAN_BRS
ESI 21 CAN FD 错误状态指示(FD_CAN_ESI

发送标志 (TX)

标志 说明
NO_DONE 0 不等待 TX 确认(ISO15765_NO_TXDONE
NO_RESP 1 不等待应答(ISO15765_NO_RESP
PAD 6 使用 ISO15765 填充(ISO15765_FRAME_PAD
EXT_ADDR 7 扩展寻址模式(ISO15765_ADDR_TYPE
EXT29 8 使用 29 位 CAN ID(CAN_29BIT_ID
P3_ONLY 9 仅等待 P3 min(WAIT_P3_MIN_ONLY
SW_HV 10 SW-CAN 高压发送(SW_CAN_HV_TX
FD 20 CAN FD 帧(FD_CAN_FORMAT
BRS 19 CAN FD 比特率切换(FD_CAN_BRS

支持的协议

名称 协议 ID 说明
CAN 5 Raw CAN
ISO15765 6 ISO 15765-2(CAN 传输)
ISO9141 3 ISO 9141-2(K-Line)
ISO14230 4 ISO 14230(KWP2000)
J1850VPW 1 J1850 VPW
J1850PWM 2 J1850 PWM
FD_CAN 0x8011 CAN FD
FD_ISO15765 0x8012 通过 CAN FD 的 ISO 15765
完整的协议列表请参见 SAE J2534-1 和 J2534-2 规范。

完整日志示例

# v2 2026-01-10 02:00:18
  0 I j0 open 192.168.12.3 > ok 4ms
  7 I j0 conn ISO15765_PS 500000 > 1 6ms
  6 I j0 flt+ 1 FLOW FFFFFFFF 688 6A8 > 0 3ms
  4 I j0 io 1 SET_CONFIG J1962_PINS:0308 > ok 8ms
  9 I j0 wr 1 100 1 > 1 6ms
	[6A8]21B0 0.000 2
  6 I j0 rd 1 2000 10 > 2 5ms
	[6A8] 2240.281 0 INT|TX_DONE
	[688] 2240.294 0 RX_START
  5 I j0 rd 1 2000 10 > 1 12ms
	[688]61B0564637524452464A46394C353632303836 2240.300 23
 20 I j0 wr 1 0 1 > 1 2ms
	[6A8]1081 0.000 2
 50 I j0 rd 1 2000 10 > 2 48ms
	[6A8] 2240.350 0 INT|TX_DONE
	[688]5081 2240.355 2
 40 I j0 io 1 CLEAR_RX_BUFFER > ok 2ms
  8 I j0 flt- 1 0 > ok 3ms
  9 I j0 disc 1 > ok 4ms
  4 I j0 close > ok 3ms

日志解读

  1. j0 open 192.168.12.3 - 通过 LAN 打开连接
  2. j0 conn ISO15765_PS 500000 > 1 - 连接 ISO15765_PS 通道,获得 channel_id=1
  3. j0 flt+ 1 FLOW ... - 设置流控制过滤器
  4. j0 io 1 SET_CONFIG - 设置协议参数(连接到引脚 3 和 8)
  5. j0 wr 1 100 1 - 向通道 1 写入 1 条消息,超时 100 毫秒
    • [6A8]21B0 - CAN ID 6A8,使用 21B0 命令请求识别数据
  6. j0 rd 1 2000 10 > 2 - 读取最多 10 条消息,获得 2 条(存在 ERR_TIMEOUT 但未显示)
    • [6A8] ... INT|TX_DONE - 来自适配器的应答 | 发送完成(包发送成功的消息不带数据,len=0)
    • [688] ... RX_START - 分段应答的开始
  7. j0 rd ... > 1 - 读取,获得 1 条消息
    • [688]61B0... - 应答数据,23 字节
  8. j0 io 1 CLEAR_RX_BUFFER - 清除 RX 缓冲区
  9. 继续执行 flt-、disc、close

开发者提示

说明: 第 2 版格式与第 1 版不向后兼容。请检查日志文件头以确定版本。