通信参数配置

V6 的 USB 串口协议和 SPI 协议使用固件中保存的 CAN、CAN FD 和 RS485 参数;Linux SocketCAN 使用 Linux 当前设置的参数。两者配置方式不同。

接入方式

配置位置

重新上电后

USB 串口 / SPI

通过 USB 串口发送 AT+ 命令

已保存参数继续生效

SocketCAN

Linux ip link

需要重新配置 canX

发送 AT+ 命令时使用文本模式,并把发送结束符设置为 CRLF。不要把字符 \r\n 当作普通文本发送。

出厂默认值

项目

默认值

经典 CAN

1 Mbps

CAN FD 仲裁段

1 Mbps

CAN FD 数据段

5 Mbps

RS485

4 Mbps、1 个停止位、无校验、8 个数据位

SPI

SHORT,23 字节

RS485 RAW 回包

关闭

RS485 RAW 目标

0,当前 MCU 的两路 RS485

设置 CAN 和 CAN FD

AT+SETFDCAN=<仲裁段波特率>,<数据段波特率>

第一个参数同时用于经典 CAN 和 CAN FD 仲裁段;第二个参数只用于 CAN FD 数据段。

参数

支持值

仲裁段

1000000500000250000125000100000

数据段

2000000300000040000005000000

四档 CAN FD 数据段波特率都使用精确位时序,误差为 0%。通常优先使用设备出厂默认的 5 Mbps;只有总线上的全部设备都使用相同设置时再切换到其他档位。

例如,设置经典 CAN/CAN FD 仲裁段为 1 Mbps、CAN FD 数据段为 5 Mbps:

AT+SETFDCAN=1000000,5000000

成功返回:

OK

查询当前值:

AT+SETFDCAN?

示例返回:

FDCAN:1000000,5000000

设置会同时应用到当前 MCU 的两路 CAN/CAN FD,并保存到 Flash。

设置 RS485

AT+SETRS485=<波特率>,<停止位>,<校验>,<数据位>

参数

支持值

波特率

12004000000

停止位

12

校验

0 无校验;1 奇校验;2 偶校验

数据位

89

例如,设置为宇树电机常用的 4 Mbps、8-N-1:

AT+SETRS485=4000000,1,0,8

查询当前值:

AT+SETRS485?

示例返回:

RS485:4000000,1,0,8

设置会同时应用到当前 MCU 的两路 RS485,并保存到 Flash。

设置 SPI 长度

AT+SPIMODE?
AT+SPIMODE=SHORT
AT+SPIMODE=LONG

模式

每次 SPI 传输

用途

SHORT

23 字节

经典 CAN;最多 18 字节 RS485 数据

LONG

73 字节

经典 CAN、CAN FD;最多 68 字节 RS485 数据

切换成功后返回 OK,并保存到 Flash。SPI 主机应停止当前传输,等待至少 10 ms,再使用新的固定长度通信。

SocketCAN 参数

SocketCAN 由 Linux 配置。经典 CAN 示例:

sudo ip link set can0 down
sudo ip link set can0 type can bitrate 1000000
sudo ip link set can0 up

CAN FD 示例:

sudo ip link set can0 down
sudo ip link set can0 type can bitrate 1000000 dbitrate 5000000 fd on
sudo ip link set can0 up

查看结果:

ip -details link show can0

SocketCAN、USB 串口和 SPI 最终使用同一组物理 CAN 控制器。如果多种入口同时重新配置同一接口,最后一次设置决定实际总线参数。正式控制时,建议同一条 CAN 总线只使用一种上位机入口。

恢复通信默认值

AT+CFGERASE

成功后返回 OK,并恢复本页列出的出厂默认通信参数。该命令会清除已保存的 CAN/CAN FD、RS485、SPI 模式、RAW 目标和上电自动执行设置,但不会删除离线批次内容,也不会删除出厂识别信息。

如果多次修改配置后返回 ERR,5,也可以使用该命令清理通信配置区,然后重新设置需要的参数。

常见问题

现象

处理方法

修改电脑端 USB 串口波特率后,总线速度没有变化

这是正常现象;USB 是虚拟串口,请使用本页的 AT+ 命令

设置命令没有返回

确认使用文本发送,并以 CRLF 结尾

设置返回 ERR,1ERR,3

检查参数数量和取值范围

设置返回 ERR,5

配置区空间不足;执行 AT+CFGERASE 后重新设置

SocketCAN 重插后不能通信

重新执行 ip link 配置