Files
TCP2UART/项目需求说明.md
T

2.6 KiB

TCP2UART 项目需求说明

一、项目概述

基于 STM32F103R8T6CH390D 实现双链路 TCP 串口透传设备。设备提供一条 TCP Server 链路和一条 TCP Client 链路,分别与两路 UART 做双向透明传输,并通过 UART1 进行参数配置。

当前项目实现路线已经固定为:

  1. STM32CubeMX + HAL
  2. bare-metal
  3. lwIP RAW API + NO_SYS=1
  4. SEGGER RTT 调试输出

不再采用 FreeRTOS 作为正式交付架构。

二、硬件平台

项目 说明
主控芯片 STM32F103R8T6
以太网芯片 CH390D
PCB 设计工具 立创 EDA
串口通道 UART1 + UART2 + UART3

说明:

  1. UART1 用于配置口
  2. UART2 对应 TCP Server 透传链路
  3. UART3 对应 TCP Client 透传链路

三、软件平台

项目 说明
开发环境 STM32CubeMX + HAL + MDK-ARM
执行模型 裸机主循环 + 中断驱动
协议栈 lwIP RAW API
调试输出 SEGGER RTT

四、核心功能需求

4.1 双链路 TCP 通信

  • Server 链路:设备作为 TCP Server,监听指定端口
  • Client 链路:设备作为 TCP Client,主动连接远程服务器
  • 两条链路共享同一个设备 IP 地址

4.2 串口透传

  • Server 链路数据 <=> UART2 双向透传
  • Client 链路数据 <=> UART3 双向透传
  • 仅透传 TCP Payload,不解析业务层协议

4.3 参数配置

  • 通过 UART1 配置网络与串口参数
  • 配置参数掉电保存
  • 支持设备复位后按保存配置生效

4.4 调试与维护

  • 调试输出统一走 SEGGER RTT
  • 工程需可在 MDK-ARM 下直接构建

五、当前实现边界

基于 STM32F103R8T664KB Flash / 20KB SRAM 约束,当前交付版本约束如下:

  1. 使用静态 IP
  2. 当前构建不支持 DHCP
  3. 不使用 lwIP socket/netconn
  4. 不使用 FreeRTOS

这不是降级,而是基于资源约束后的正式实现路线。

六、数据可靠性要求

  • 目标是保证 TCP 数据与串口数据双向透传稳定工作
  • 需要后续补充上板联调后的丢包率测试方案与结果
  • 需要验证双链路同时工作时的稳定性

七、交付物

  1. 原理图及 PCB 设计文件
  2. STM32 固件源码
  3. CubeMX 工程与 MDK-ARM 工程
  4. 使用说明文档
  5. 后续补充的透传与丢包测试结果

八、约束条件

  1. 通信协议为标准 TCP/IP
  2. 串口透传为纯数据透传,不解析上层协议
  3. 当前正式目标器件为 STM32F103R8T6
  4. 所有正式实现应服从 64KB Flash / 20KB SRAM 约束