跳转到内容

CAN转USB工具文档

目前有两种外观版本,功能、通信方式、AT 指令及使用方法完全一致,区别仅在于外观与接口结构。本文档两种版本通用。

CAN调试工具排针版实物图 CAN调试工具端子版实物图

CAN USB CDC 调试适配器通过 USB CDC 虚拟串口与计算机进行通信,将计算机侧数据转换为 CAN 总线数据,同时可将 CAN 总线接收的数据通过 USB CDC 发送至计算机。

可使用 在线串口工具 进行调试,也可以使用 手机 APP 进行现场调试。

主要功能包括:

  • CAN 与 USB CDC 双向透传;
  • AT 指令配置与状态查询;
  • CAN FD 通信兼容经典 CAN 通信;
  • 标准 CAN ID 发送与接收过滤;
  • NORMAL、LOOPBACK、LISTEN 三种工作模式;
  • 配置保存、读取及恢复默认参数;
  • 支持固件升级。

CAN 调试工具接口与接线示意

使用 USB 数据线将设备连接至计算机。

设备正常枚举后,计算机系统中应出现一个 USB CDC 虚拟串口。

CAN 接口至少应连接:

设备接口 总线连接
CANH CANH
CANL CANL
GND GND / 共参考地

标准点到点测试时,应根据实际总线拓扑在总线两端设置终端电阻,通常为每端 120 Ω。

注意:
CAN 接口为非隔离接口。设备与其他 CAN 节点之间应具有可靠的公共地参考。


设备首次使用且不存在有效保存配置时,使用以下默认参数:

参数 默认值
CAN 类型 Classic CAN
CAN 仲裁速率 1000000 bit/s
TX ID 0x123
RX ID ALL
工作模式 NORMAL
FD 0
DBR 2000000 bit/s
BRS 1

设备上电后会自动读取已保存配置。


首次连接建议依次执行:

AT+
AT+HELP
AT+CFG?
AT+STATUS?

每条指令均必须以 CRLF 结束。

正常情况下:

  • AT+ 返回 OK;
  • AT+HELP 返回固件版本及当前有效指令;
  • AT+CFG? 返回当前配置;
  • AT+STATUS? 返回控制器状态、统计及诊断信息。

所有 AT 指令均必须使用 CRLF 结束:

0x0D 0x0A

标准形式:

AT+指令\r\n

串口助手必须实际发送回车和换行,而不仅是在界面中换行显示。


返回值 含义
OK 指令执行成功
OK:QUEUED 发送数据已进入发送队列
ERROR:ARG 参数无效
ERROR:UNKNOWN 未知指令
ERROR:CAN_INIT CAN 初始化失败

OK:QUEUED 仅表示 AT+SEND 数据已经进入发送队列,不表示 CAN 总线已经实际完成发送。应使用 AT+STATUS? 查看实际发送统计。


指令 功能
AT+ 连通性测试
AT+HELP 查看固件版本和当前有效指令
AT+CFG? 查询当前运行配置
AT+STATUS? 查询控制器状态、错误及统计
AT+CANBR=125000 设置 CAN 仲裁速率
AT+FD=0 选择经典 CAN
AT+FD=1 选择 CAN FD
AT+DBR=1000000 设置 FD 数据相位速率
AT+BRS=0 FD 不切换数据相位速率
AT+BRS=1 FD 切换到数据相位速率
AT+TXID=123 设置原始透传发送 ID
AT+RXID=ALL 接收全部标准 ID
AT+RXID=321 仅接收指定标准 ID
AT+MODE=NORMAL 正常工作模式
AT+MODE=LOOPBACK 内部回环模式
AT+MODE=LISTEN 监听模式
AT+SEND=123,HEX,... 发送十六进制 CAN 数据
AT+SEND=123,STR,... 发送字符串 CAN 数据
AT+FRAMELOG=0 关闭 CDC 帧日志
AT+FRAMELOG=1 开启 CDC 帧日志
AT+SAVE 保存当前配置
AT+LOAD 读取保存的配置
AT+DEFAULT 恢复当前运行配置为默认值
AT+UPFW 进入 CDC 固件升级接收状态
指令 参数范围
AT+CANBR 125000 / 250000 / 500000 / 1000000
AT+FD 0 / 1
AT+DBR 1000000 / 2000000 / 4000000
AT+BRS 0 / 1
AT+TXID 标准 ID:000~7FF
AT+RXID ALL 或标准 ID:000~7FF
AT+MODE NORMAL / LOOPBACK / LISTEN
AT+FRAMELOG 0 / 1
AT+SEND 单次最多 64 字节

AT+FD=0

选择经典 CAN 通信。

与普通 CAN 节点通信时,应使用该设置。


AT+FD=1

选择 CAN FD 通信。

普通 CAN 节点不能接收 CAN FD 数据帧,因此使用 FD 时必须确认通信对端支持 CAN FD。

设备不会自动检测对端能力。


支持:

1000000
2000000
4000000

例如:

AT+DBR=2000000

AT+BRS=0

FD 帧的数据阶段继续使用仲裁速率。

AT+BRS=1

FD 帧进入数据阶段后切换至 DBR 设置的速率。


例如设置:

AT+FD=1
AT+CANBR=1000000
AT+DBR=2000000
AT+BRS=1

双方必须保持匹配的 CAN FD 模式及仲裁 / 数据相位配置。

若需要测试 BRS=0,直接发送:

AT+BRS=0

固件会自动处理 CAN 状态切换。两端均设置完成后即可进行通信测试。

BRS=0 时,FD 数据阶段使用仲裁速率;此时配置中的 DBR 可以保留,但不会用于该帧的数据相位切换。


AT+MODE=NORMAL

正常 CAN 总线收发模式,用于实际通信。


AT+MODE=LOOPBACK

控制器内部回环测试模式。

适用于验证控制器及软件配置,但:

内部回环成功不能证明外部 CAN 收发器、CANH / CANL 接线及总线终端电阻正常。


AT+MODE=LISTEN

监听模式。

该模式仅用于监听总线,不主动发送数据,也不向总线提供 ACK。

因此,在验证实际 CAN 双向通信时,不应仅使用 LISTEN 模式。


AT+TXID=123

设置 USB 原始数据透传时使用的标准 CAN 发送 ID。

标准 ID 范围:

000 ~ 7FF

例如:

AT+TXID=321

表示普通 USB 透传数据使用 0x321 发送。

AT+SEND 指令中的 ID 仅作用于本次发送,不会修改全局 TXID。


AT+RXID=ALL

接收全部符合当前接收路径条件的数据帧。


AT+RXID=321

设置接收过滤,只接收指定标准 ID。


格式:

AT+SEND=ID,HEX,数据

示例:

AT+SEND=123,HEX,0102030405060708

表示发送:

项目 内容
ID 0x123
数据长度 8 字节
数据 01 02 03 04 05 06 07 08

单次 AT+SEND 最多发送 64 字节。


格式:

AT+SEND=ID,STR,字符串

示例:

AT+SEND=123,STR,thank you

字符串按实际字节内容发送,不会转换成十六进制文本。


例如:

AT+SEND=123,HEX,01020304

返回:

OK:QUEUED

表示数据已进入发送队列。

随后建议执行:

AT+STATUS?

通过 TX_OK 等统计确认实际发送结果。


非 AT 数据会根据当前 CAN 配置自动进入原始透传路径。

经典 CAN 模式下,单个 CAN 数据帧最多 8 字节;CAN FD 模式下,单个数据帧最多 64 字节。

超过单帧长度的数据会连续拆分发送,不添加额外填充字节。

例如:

  • 经典 CAN:10 字节 → 8 + 2;
  • FD:65 字节 → 64 + 1;
  • FD:100 字节 → 64 + 32 + 4。

CAN 接收到的数据会通过 USB CDC 输出连续的原始数据载荷。

USB 输出不包含:

  • CAN ID;
  • DLC;
  • 自动换行;
  • 原始 CAN 帧边界。

例如收到:

ID = 321
DATA = 11 22 33 44

USB CDC 输出为:

11 22 33 44

AT+SAVE

将当前运行配置保存到设备内部非易失性存储器。

仅执行参数修改指令不会自动永久保存。


AT+LOAD

读取已经保存的配置。

如果不存在有效保存记录,则使用默认参数。


AT+DEFAULT

将当前运行配置恢复为默认值。

该操作默认只修改当前运行参数,不会自动永久保存。

如果需要永久恢复默认值,应继续执行:

AT+SAVE

组合操作:

AT+DEFAULT
AT+SAVE

可使用 在线串口工具 的 YMODEM 功能进行固件升级。

CAN 调试工具固件升级示意

固件升级过程中:

  1. 保持 USB 连接稳定;
  2. 不要断开设备电源;
  3. 不要重复插拔 USB;
  4. 不要继续发送其他 AT 指令;
  5. 使用与型号及硬件版本匹配的官方升级文件;
  6. 按升级工具提示完成传输及重启。