2.6 KiB
2.6 KiB
TCP2UART 项目需求说明
一、项目概述
基于 STM32F103R8T6 和 CH390D 实现双链路 TCP 串口透传设备。设备提供一条 TCP Server 链路和一条 TCP Client 链路,分别与两路 UART 做双向透明传输,并通过 UART1 进行参数配置。
当前项目实现路线已经固定为:
STM32CubeMX + HALbare-metallwIP RAW API + NO_SYS=1SEGGER RTT调试输出
不再采用 FreeRTOS 作为正式交付架构。
二、硬件平台
| 项目 | 说明 |
|---|---|
| 主控芯片 | STM32F103R8T6 |
| 以太网芯片 | CH390D |
| PCB 设计工具 | 立创 EDA |
| 串口通道 | UART1 + UART2 + UART3 |
说明:
UART1用于配置口UART2对应 TCP Server 透传链路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下直接构建
五、当前实现边界
基于 STM32F103R8T6 的 64KB Flash / 20KB SRAM 约束,当前交付版本约束如下:
- 使用静态 IP
- 当前构建不支持 DHCP
- 不使用
lwIP socket/netconn - 不使用
FreeRTOS
这不是降级,而是基于资源约束后的正式实现路线。
六、数据可靠性要求
- 目标是保证 TCP 数据与串口数据双向透传稳定工作
- 需要后续补充上板联调后的丢包率测试方案与结果
- 需要验证双链路同时工作时的稳定性
七、交付物
- 原理图及 PCB 设计文件
- STM32 固件源码
CubeMX工程与MDK-ARM工程- 使用说明文档
- 后续补充的透传与丢包测试结果
八、约束条件
- 通信协议为标准 TCP/IP
- 串口透传为纯数据透传,不解析上层协议
- 当前正式目标器件为
STM32F103R8T6 - 所有正式实现应服从
64KB Flash / 20KB SRAM约束