refactor: 完成R8裸机lwIP移植并更新文档

This commit is contained in:
2026-03-30 18:08:54 +08:00
parent 68c64959c7
commit 9efa2cdc59
24 changed files with 1845 additions and 3619 deletions
+63 -27
View File
@@ -2,58 +2,94 @@
## 一、项目概述
基于 STM32F103 单片机和 FreeRTOS 开发一款具有双网口通信功能的 TCP 串口透传设备,实现网络数据与串口数据之间的双向透明传输
基于 `STM32F103R8T6``CH390D` 实现双链路 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(后续大批量生产可用 GD32 替代) |
| 以太网芯片 | CH390D |
| PCB 设计工具 | 立创 EDA(避免 AD 版权纠纷) |
| 串口通道 | 2 UART |
| 主控芯片 | `STM32F103R8T6` |
| 以太网芯片 | `CH390D` |
| PCB 设计工具 | 立创 EDA |
| 串口通道 | `UART1 + UART2 + UART3` |
说明:
1. `UART1` 用于配置口
2. `UART2` 对应 TCP Server 透传链路
3. `UART3` 对应 TCP Client 透传链路
## 三、软件平台
| 项目 | 说明 |
|------|------|
| 开发环境 | STM32CubeMX + HAL |
| 操作系统 | FreeRTOS |
| 协议栈 | 标准 TCP/IP 协议 |
| 开发环境 | `STM32CubeMX + HAL + MDK-ARM` |
| 执行模型 | 裸机主循环 + 中断驱动 |
| 协议栈 | `lwIP RAW API` |
| 调试输出 | `SEGGER RTT` |
## 四、核心功能需求
### 4.1 双链路 TCP 通信
- **Server 链路**:设备作为 TCP Server,监听指定端口,等待外部客户端连接
- **Client 链路**:设备作为 TCP Client,主动连接远程服务器
- 两条链路共享**同一个对外 IP 地址**
- `Server` 链路:设备作为 TCP Server,监听指定端口
- `Client` 链路:设备作为 TCP Client,主动连接远程服务器
- 两条链路共享同一个设备 IP 地址
### 4.2 串口透传
- **Server 链路数据** <==> **UART2** 双向透传
- **Client 链路数据** <==> **UART3** 双向透传
- 仅透传 TCP 数据区(Payload),无需解析串口协议
- `Server` 链路数据 <=> `UART2` 双向透传
- `Client` 链路数据 <=> `UART3` 双向透传
- 仅透传 TCP Payload,不解析业务层协议
### 4.3 参数配置
- 支持通过 **UART1** 串口命令修改设备 IP 地址等网络参数
- 配置参数掉电保存
- 通过 `UART1` 配置网络与串口参数
- 配置参数掉电保存
- 支持设备复位后按保存配置生效
### 4.4 数据可靠性
### 4.4 调试与维护
- 确保 TCP 数据与串口数据双向传输不丢包
- 提供丢包率测试方案及测试数据
- 调试输出统一走 `SEGGER RTT`
- 工程需可在 `MDK-ARM` 下直接构建
## 五、交付物
## 五、当前实现边界
1. 原理图及 PCB 设计文件(立创 EDA 格式)
2. STM32 固件源码(CubeMX 工程 + HAL 库 + FreeRTOS
3. 丢包测试方案及测试工具/数据
基于 `STM32F103R8T6``64KB Flash / 20KB SRAM` 约束,当前交付版本约束如下:
1. 使用静态 IP
2. 当前构建不支持 DHCP
3. 不使用 `lwIP socket/netconn`
4. 不使用 `FreeRTOS`
这不是降级,而是基于资源约束后的正式实现路线。
## 六、数据可靠性要求
- 目标是保证 TCP 数据与串口数据双向透传稳定工作
- 需要后续补充上板联调后的丢包率测试方案与结果
- 需要验证双链路同时工作时的稳定性
## 七、交付物
1. 原理图及 PCB 设计文件
2. STM32 固件源码
3. `CubeMX` 工程与 `MDK-ARM` 工程
4. 使用说明文档
5. 后续补充的透传与丢包测试结果
## 、约束条件
## 、约束条件
- 通信协议标准 TCP/IP
- 串口透传纯数据透传,不解析上层协议
- 硬件尺寸及供电参数由甲方提供
1. 通信协议标准 TCP/IP
2. 串口透传纯数据透传,不解析上层协议
3. 当前正式目标器件为 `STM32F103R8T6`
4. 所有正式实现应服从 `64KB Flash / 20KB SRAM` 约束