批量指令离线自动执行

V6 支持在开发板本地保存一组 CAN、CAN FD 和 RS485 指令,并按设定周期和次数自动执行。该功能适合电机批量初始化、循环测试、离线动作片段和生产测试。

AT+ 控制指令通常通过 USB CDC串口工具发送。命令表为便于阅读只列出命令主体;实际发送时,只输入命令主体,并把发送结束符设置为 CRLF

命令总览

命令

说明

AT+VER

查询固件版本

AT+STAT?

查询运行统计

AT+SETFDCAN=<arb_baud>,<data_baud>

设置 FDCAN 波特率;arb_baud 同时作为经典 CAN 波特率

AT+SETFDCAN?

查询当前固件保存的 FDCAN 波特率,返回 FDCAN:<arb_baud>,<data_baud>

AT+SETRS485=<baud>,<stop>,<parity>,<bits>

设置 RS485 参数

AT+SETRS485?

查询当前固件保存的 RS485 参数,返回 RS485:<baud>,<stop>,<parity>,<bits>

AT+SPIMODE?

查询当前 SPI 模式

AT+SPIMODE=SHORT

切换 SPI 到 23 字节短模式

AT+SPIMODE=LONG

切换 SPI 到 73 字节长模式

AT+RS485RAW?

查询当前是否处于 RS485 原始数据透传模式

AT+RS485RAW=1

开启 RS485 原始数据透传模式

AT+RS485RAW=0

关闭 RS485 原始数据透传模式,恢复 SANPO RT 封装帧模式

AT+RS485RAWCH?

查询 RS485 原始数据透传目标通道

AT+RS485RAWCH=<0~4>

设置 RS485 原始数据透传目标通道,0 表示全部

AT+CFGERASE

擦除通信配置区,并恢复出厂通信默认值

AT+BATBEGIN=<id>,<name>

创建或覆盖一个批次

AT+BATADD=<id>,<idx>,<proto>,<ch>,<delay_ms>,<hex_payload>

添加短 payload 指令

AT+BATADDX=<id>,<idx>,<proto>,<ch>,<delay_ms>,<total_len>,<seq>,<off>,<hex_part>

添加长 payload 分片

AT+BATADDEND=<id>,<idx>,<crc16>

结束分片上传并校验

AT+BATCOMMIT=<id>

提交并持久化批次

AT+BATRUN=<id>,<mode>,<period_ms>,<repeat>

运行批次

AT+BATSTOP

停止当前批次

AT+BATLIST?

查询批次列表

AT+BATREAD=<id>,<idx>

读取批次条目

AT+BATDEL=<id>

删除批次

AT+BATSTAT?

查询批量执行状态

AT+BATAUTOSET=<id>,<mode>,<period_ms>,<repeat>

设置上电自动执行

AT+BATAUTOCLR

清除上电自动执行

AT+BATAUTO?

查询上电自动执行配置

通信配置区擦除

AT+RS485RAW 只控制当前运行时是否开启 RS485 原始数据透传,不写入 COMMCFG 配置区。固件上电默认使用非透传的 SANPO RT 封装帧模式,重新上电后会自动恢复为非透传模式。

AT+SETFDCANAT+SETRS485AT+SPIMODEAT+RS485RAWCHAT+BATAUTOSET/BATAUTOCLR 会追加写入 Flash 的 COMMCFG 配置区。正常使用不需要手动擦除。

当出现以下情况时,可以发送:

AT+CFGERASE
  • 多次修改配置后返回 ERR,5,表示 COMMCFG 配置区空间不足。

  • 需要恢复出厂通信参数。

  • 需要清除持久化的 SPI 模式、RS485 原始数据透传通道或上电自动执行配置。

AT+CFGERASE 只擦除 COMMCFG 配置区,不会擦除 SECINFO 授权信息,也不会擦除已经保存的批量指令数据。执行成功后返回 OK,并立即恢复运行时默认值:CAN/FDCAN 为 AT+SETFDCAN=1000000,5000000,SPI 为 SHORT,RS485 原始数据透传模式为关闭,RS485 原始数据透传通道为 0,RS485 为 4000000,1,0,8。如果仍需要 SPI LONG 或其他波特率,需要重新发送对应 AT+ 指令。

字段定义

字段

说明

id

批次编号

idx

批次内条目序号,从 1 开始

proto

协议类型

ch

目标通道,0 表示当前设备侧全部同类通道

delay_ms

执行该条目前的延时

mode

1=ONCE2=PERIODIC

repeat

重复次数,0 表示持续运行

proto 定义

proto

含义

Payload

1

经典 CAN 标准帧

CANID(2B) + Len(1B) + Data(0~8B)

2

经典 CAN 扩展帧

CANID(4B) + Len(1B) + Data(0~8B)

3

RS485

Data(0~68B)

4

CAN FD 标准帧

CANID(2B) + 数据长度编码(1B) + Data(0~64B)

5

CAN FD 扩展帧

CANID(4B) + 数据长度编码(1B) + Data(0~64B)

经典 CAN 的 Len 是真实字节长度,范围 0~8

CAN FD 的“数据长度编码”不是直接字节数。

数据长度编码

真实数据长度

0x00

0

0x01

1

0x02

2

0x03

3

0x04

4

0x05

5

0x06

6

0x07

7

0x08

8

0x09

12

0x0A

16

0x0B

20

0x0C

24

0x0D

32

0x0E

48

0x0F

64

波特率配置

V6 使用 AT+SETFDCAN=<arb_baud>,<data_baud> 统一配置 CAN/FDCAN:

  • 经典 CAN 标准帧和扩展帧使用 arb_baud

  • CAN FD 仲裁段使用 arb_baud

  • CAN FD 数据段使用 data_baud,当前支持 20000005000000

  • 配置会写入 Flash,下次上电继续使用。

  • USB CDC串口的 Line Coding 只保留为主机侧串口属性,不会同步修改 CAN/FDCAN/RS485 参数。

SPI 模式说明

AT+SPIMODE 只影响 SPI 固定帧长度,不影响 USB CDC串口协议。

模式

总线长度

支持

SHORT

23 字节

SPI 经典 CAN、SPI RS485

LONG

73 字节

SPI 经典 CAN、SPI CAN FD、SPI RS485

切换 SPI 模式后,SPI 主机应停止当前 SPI 交易,等待至少 10 ms,再按新模式长度发起通信。

长度与分片

  • AT+BATADD 适合短 payload。

  • CAN FD 和较长 RS485 payload 建议使用 AT+BATADDX 分片上传。

  • AT+BATADDEND 使用 CRC16-CCITT 校验完整 payload。

使用示例

AT+SETFDCAN=1000000,5000000
AT+SPIMODE=LONG
AT+BATBEGIN=1,fd_test
AT+BATADD=1,1,5,1,10,000001230A01020304050607081112131415161718
AT+BATCOMMIT=1
AT+BATRUN=1,1,0,1

错误码

错误码

含义

1

参数格式错误

2

状态错误

3

参数超范围

4

CRC 校验失败

5

存储空间不足

6

批次不存在

7

队列忙

8

Flash 读写错误