Files
TCP2UART/AT固件使用手册.md
T

6.9 KiB
Raw Blame History

TCP2UART AT 固件使用手册

1. 文档范围

本文档定义 TCP2UART 项目的最终 AT 外部协议。

本文档只描述最终协议模型,不保留任何历史展开式实例字段,不包含测试记录,不讨论旧版兼容命令。

适用对象:

  • 上位机开发人员
  • 联调与测试人员
  • 固件接口实现人员

2. 设备与接口

  • 主控:STM32F103R8T6
  • 以太网芯片:CH390D
  • 配置口:USART1
  • 数据口:USART2USART3

职责划分:

  • USART1AT 配置口
  • USART2 / USART3:业务数据口,可工作于普通透传或 MUX 透传模式

3. 最终协议模型

本项目最终控制协议由三部分组成:

  1. MUX:全局数据承载模式开关
  2. NET:全局静态网络配置记录
  3. LINK[idx]:按索引组织的链路配置记录

约束如下:

  • 设备只有一张网卡,因此本地网络参数只配置一次
  • DHCP 不属于最终协议范围
  • 所有 AT 文本命令必须以 \r\n 结尾
  • DSTMASK=0x00 时,MUX 数据口中的系统控制帧进入 AT 解析路径,其控制文本同样必须以 \r\n 结尾

4. MUX 帧格式

MUX=1 时,数据口使用如下帧格式:

SYNC | LEN_H | LEN_L | SRCID | DSTMASK | PAYLOAD | TAIL

字段定义:

  • SYNC:帧起始标记,建议固定为 0x7E
  • LEN_H / LEN_LPAYLOAD 长度,高字节在前
  • SRCID:单字节源端点 ID
  • DSTMASK:单字节目标端点位图
  • PAYLOAD:负载数据
  • TAIL:帧结束标记,建议固定为 0x7F

规则:

  • DSTMASK != 0x00:业务数据帧
  • DSTMASK = 0x00:系统控制帧
  • 系统控制帧的 PAYLOAD 为 AT 文本,必须以 \r\n 结束

5. 统一端点编码

UARTTCP 逻辑实例统一进入同一套编码空间:

端点 编码
C1 0x01
C2 0x02
UART2 0x04
UART3 0x08
S1 0x10
S2 0x20

说明:

  • SRCID 必须为单一端点值
  • DSTMASK 可以是一个或多个端点编码按位或的结果
  • DSTMASK=0x00 保留给系统控制帧

6. AT 命令总则

6.1 命令结尾

所有 AT 命令均必须以 \r\n 结尾。

例如:

AT\r\n
AT+MUX?\r\n
AT+NET=192.168.1.100,255.255.255.0,192.168.1.1,02:00:00:00:00:01\r\n

6.2 持久化规则

参数设置成功后只写入当前运行配置,不会自动写入 Flash。

若要掉电保持,必须执行:

  1. AT+SAVE\r\n
  2. AT+RESET\r\n

6.3 响应风格

  • 成功:OK
  • 需要保存后生效时,允许追加提示文本
  • 失败:ERROR: <reason>

7. 默认配置

7.1 MUX 默认值

MUX = 0

7.2 NET 默认值

NET = 192.168.1.100,255.255.255.0,192.168.1.1,02:00:00:00:00:01
LINK0 = 1,8080,0.0.0.0,0,U0
LINK1 = 0,8081,0.0.0.0,0,U1
LINK2 = 1,9001,192.168.1.200,9000,U1
LINK3 = 0,9002,192.168.1.201,9001,U0

固定索引映射:

  • 0 = S1
  • 1 = S2
  • 2 = C1
  • 3 = C2

UART 记号约定:

  • U0 = USART2
  • U1 = USART3

8. AT 命令定义

8.1 测试设备在线

命令:

AT\r\n

返回:

OK

8.2 查询摘要

命令:

AT+?\r\n
AT+QUERY\r\n

推荐返回格式:

+NET:IP=192.168.1.100,MASK=255.255.255.0,GW=192.168.1.1,MAC=02:00:00:00:00:01
+LINK:0,EN=1,LPORT=8080,RIP=0.0.0.0,RPORT=0,UART=U0
+LINK:1,EN=0,LPORT=8081,RIP=0.0.0.0,RPORT=0,UART=U1
+LINK:2,EN=1,LPORT=9001,RIP=192.168.1.200,RPORT=9000,UART=U1
+LINK:3,EN=0,LPORT=9002,RIP=192.168.1.201,RPORT=9001,UART=U0
+MUX:0
+MAP:UART2=0x04,UART3=0x08,C1=0x01,C2=0x02,S1=0x10,S2=0x20
+BAUD:U0=115200,U1=115200
OK

8.3 MUX 类命令

设置 MUX

AT+MUX=1\r\n

参数:

  • 0:普通透传模式
  • 1MUX 透传模式

查询:

AT+MUX?\r\n

返回示例:

+MUX:1
OK

8.4 NET 类命令

设置 NET

AT+NET=192.168.1.100,255.255.255.0,192.168.1.1,02:00:00:00:00:01\r\n

字段顺序:

IP,MASK,GW,MAC

查询:

AT+NET?\r\n

返回示例:

+NET:IP=192.168.1.100,MASK=255.255.255.0,GW=192.168.1.1,MAC=02:00:00:00:00:01
OK
AT+LINK=0,1,8080,0.0.0.0,0,U0\r\n
AT+LINK=2,1,9001,192.168.1.200,9000,U1\r\n

字段顺序:

IDX,EN,LPORT,RIP,RPORT,UART

字段说明:

  • IDX:实例索引,固定为 0..3
  • EN0/1
  • LPORT:本地端口
  • RIP:对端 IP
  • RPORT:对端端口
  • UARTU0/U1

说明:

  • ServerClient 共用同一条 LINK 记录模型
  • ServerRIP/RPORT 可作为允许接入的对端约束或预设对端信息
  • ClientRIP/RPORT 表示远端目标地址与端口
AT+LINK=0\r\n

返回示例:

+LINK:0,EN=1,LPORT=8080,RIP=0.0.0.0,RPORT=0,UART=U0
OK
AT+LINK?\r\n

返回示例:

+LINK:0,EN=1,LPORT=8080,RIP=0.0.0.0,RPORT=0,UART=U0
+LINK:1,EN=0,LPORT=8081,RIP=0.0.0.0,RPORT=0,UART=U1
+LINK:2,EN=1,LPORT=9001,RIP=192.168.1.200,RPORT=9000,UART=U1
+LINK:3,EN=0,LPORT=9002,RIP=192.168.1.201,RPORT=9001,UART=U0
OK

9. 保存与复位命令

9.1 保存配置

AT+SAVE\r\n

成功返回:

OK: Configuration saved

9.2 软件复位

AT+RESET\r\n

返回:

OK: Resetting...

9.3 恢复默认值

AT+DEFAULT\r\n

返回:

OK: Defaults restored

10. 常见错误返回

场景 返回
未知命令 ERROR: Unknown command
非法端口 ERROR: Invalid port
非法波特率 ERROR: Invalid baudrate
非法 IP 地址 ERROR: Invalid IP format
非法掩码 ERROR: Invalid mask format
非法网关 ERROR: Invalid gateway format
非法远端 IP ERROR: Invalid remote IP format
非法 MAC ERROR: Invalid MAC format
非法 SRCID / DSTMASK ERROR: Invalid route field
Flash 保存失败 ERROR: Save failed

11. 推荐配置流程

AT+NET=192.168.1.123,255.255.255.0,192.168.1.1,02:00:00:00:00:01\r\n
AT+LINK=0,1,10001,0.0.0.0,0,U1\r\n
AT+LINK=1,1,10003,0.0.0.0,0,U1\r\n
AT+LINK=2,1,20001,192.168.1.201,10002,U0\r\n
AT+MUX=1\r\n
AT+SAVE\r\n
AT+RESET\r\n

12. 故障排查建议

12.1 发送 AT 没有返回

优先检查:

  1. 是否连接到 USART1
  2. 串口参数是否为 115200 8N1
  3. 是否严格使用 \r\n 作为命令结尾
  4. 接线是否正确
  5. 设备是否正常上电运行

12.2 设置成功但重启后参数丢失

检查是否漏掉以下步骤:

  1. AT+SAVE\r\n
  2. AT+RESET\r\n

13. 相关文件