波特率配置
V6 固件的波特率配置分为两类:
使用入口 |
配置方式 |
是否写入固件 Flash |
|---|---|---|
USB CDC串口协议 |
通过 USB CDC串口发送 |
是 |
SPI 协议 |
使用固件保存的配置;需要先通过 USB CDC串口 |
是 |
SocketCAN(gs_usb) |
Linux 主机通过 |
否 |
USB CDC串口协议和 SPI 协议使用同一组固件保存的 CAN/FDCAN 与 RS485 参数。SocketCAN 直接使用 Linux SocketCAN 的运行时配置,不读取也不写入这组持久化参数。
出厂默认值
项目 |
默认值 |
|---|---|
经典 CAN 波特率 |
|
CAN FD 仲裁段波特率 |
|
CAN FD 数据段波特率 |
|
RS485 参数 |
|
RS485 工作模式 |
SANPO |
RS485 参数字段依次为:baud,stop,parity,bits。其中 parity=0 表示无校验,bits=8 表示 8 数据位。
RS485 原始数据透传由 AT+RS485RAW 单独控制,只影响当前运行状态,不写入固件 Flash。设备重新上电后会自动恢复为非透传的 RT 封装帧模式。
正式收发 CAN/CAN FD/RS485 数据前,应先通过 USB CDC串口 AT+ 指令查询或配置波特率,确认固件保存值和现场总线参数一致。即使使用默认值,也建议先使用查询命令确认当前固件保存值。
USB CDC 和 SPI 波特率
设置 CAN/FDCAN 波特率:
AT+SETFDCAN=<arb_baud>,<data_baud>
查询当前固件保存的 CAN/FDCAN 波特率:
AT+SETFDCAN?
返回格式:
FDCAN:<arb_baud>,<data_baud>
arb_baud 同时用于经典 CAN 和 CAN FD 仲裁段;data_baud 用于 CAN FD 数据段。
字段 |
支持值 |
|---|---|
|
|
|
|
设置 RS485 参数:
AT+SETRS485=<baud>,<stop>,<parity>,<bits>
查询当前固件保存的 RS485 参数:
AT+SETRS485?
返回格式:
RS485:<baud>,<stop>,<parity>,<bits>
字段 |
支持值 |
|---|---|
|
|
|
|
|
|
|
|
AT+SETFDCAN 和 AT+SETRS485 配置成功后返回 OK。配置会写入固件 Flash,下次上电继续使用;如果设置值与当前保存值一致,固件会重新应用运行时外设参数,但不会追加写入 Flash。
USB CDC串口工具中设置的“串口波特率”只作为虚拟串口连接参数,不会同步修改 CAN/FDCAN/RS485 总线波特率。
SocketCAN 波特率
SocketCAN 的波特率由 Linux 主机配置,只对当前运行中的 canX 生效,不写入固件 Flash。设备重新上电、重新插拔或重新枚举后,上位机应重新执行 ip link 配置。
经典 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
查看当前 SocketCAN 配置:
ip -details link show can0
正常情况下可以看到 bitrate、dbitrate、fd on 等信息。
USB CDC串口/SPI 和 SocketCAN 共用同一组物理 FDCAN 控制器。同一条 CAN 总线如果同时被多种入口配置,最后一次配置会决定当前实际 CAN 时序。
恢复默认配置
如需擦除通信配置区并恢复默认通信参数,可以发送:
AT+CFGERASE
执行成功后返回 OK,并立即恢复:
项目 |
恢复值 |
|---|---|
CAN/FDCAN |
|
RS485 |
|
RS485 工作模式 |
SANPO |
SPI 模式 |
|
RS485 原始数据透传通道 |
|
AT+CFGERASE 只擦除通信配置区,不擦除批量指令数据。