Files
STM32F4-Base/docs/架构设计/硬件规格与能力边界.md
T
wandering1 aed842e1f2 Merge branch 'v2-on-ui' into task/archsplit-sw-hw
# Conflicts:
#	docs/架构设计/软件架构与运行时规格.md
2026-10-30 13:32:52 +08:00

90 lines
7.2 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# STM32F4-Base 硬件规格与能力边界(V0.1)
> **文档定位**:全仓**硬件规格(V0.1)**与**硬件能力边界**的权威表档。
> 来源链:`docs/产品需求/产品需求设计文档.md` v1.9 原 §3/§4 → 《系统架构与硬件规格》
> →(2026-10-30 按"软件 / 硬件不混排"拆分)本档 = 硬件侧;软件运行时架构与工具链 / 工程约束见
> [`软件架构与运行时规格.md`](软件架构与运行时规格.md)。
> 与 [`docs/架构设计/项目架构总览.md`](项目架构总览.md) 的分工:总览是**叙述性全景**,
> 本档是**完整口径表**——**引脚分配表**与**硬件能力边界表(H1~H5)**以**本档为准**,
> 两处冲突以本档为准并回改总览。
> **硬件口径**:V0.1(`docs/硬件平台/V0.1_网表详细分析报告.md` + `Inc/main.h`)。
> **版本**:v1.0 **日期**:2026-10-30
## 1. 主控与内存
| 项 | 值 | 说明 |
|---|---|---|
| MCU | STM32F407ZGTx | Cortex-M4(FPU),LQFP144 |
| 主频 | 168 MHz | HSE 8 MHz → PLL M=4 / N=168 / P=2 |
| Flash | 1 MB(0x08000000) | 片内 |
| SRAM | 192 KB(128 KB 主 SRAM1+SRAM2 + 64 KB CCM) | 链接器映射 128 KB 主 SRAM;CCM 用于 FreeRTOS 堆(任务栈) |
> RTOS / 工具链 / CubeMX 版本属软件侧事实,见
> [`软件架构与运行时规格.md`](软件架构与运行时规格.md) §6.1。
## 2. 外设与引脚分配
> **权威来源**:V0.1 网表分析报告 + `Inc/main.h`(代码已迁移至 V0.1)。下表为 **V0.1 硬件**的引脚。
| 外设 | 接口 | 引脚 | 说明 |
|---|---|---|---|
| **CH395F 以太网** | SPI2 | PB12 CS / PB13 SCK / PB14 SDO / PB15 SDI | 10/100M 以太网控制器;PHY 强制 100M 全双工;**SPI 分频系数必须为 8**(PCB 设计约束) |
| **GD5F2GQ5UE NAND** | SPI1 | PE0 CS / PB3 SCK / PB4 MISO / PB5 MOSI / PB8 WP / PE1 HOLD | 256 MB SPI NAND(2 Gbit) |
| **TPAFE5160 ADC** | 并行 16 位 | PG0~PG15 数据 / **PC6 FRSTDATA** / **PC7 BUSY**(EXTI) / **PC8 RD** / **PC9 CONVST** / **PA8 OS2** / **PA11 OS1** / **PA12 OS0** | 高精度多通道 ADC |
| **SD2506 RTC** | I2C1 | PB6 SCL / PB7 SDA | 提供墙钟基准与日志时间戳 |
| **USART1(U5 直连 TTL)** | UART | PA9 TX / PA10 RX | **700000 8N1 → 屏板链路**(TTL 直连、无 DE,`../产品需求/产品需求设计文档.md` §5.16.2);PA10 双向均已接线;日志已迁 UART5 |
| **UART4(RS-485)** | UART | PC10 TX / PC11 RX / **PA15 DE** | 半双工通信(V0.1 轮换后 RS485#4 = UART4,`../硬件平台/V0.1_网表详细分析报告.md` §4.2) |
| **USART2(RS-232 #3)** | UART | PD5 TX / PD6 RX | 经 U10 隔离 → U13 TPT3232E → CN1;固件目前未占用(日志实际走 UART5/RS232#1) |
| **UART5(RS-232 #1)** | UART | PC12 TX / PD2 RX | 经 U9 隔离 → U13 → CN1;**日志口**(115200,`/serial-boot-test` 采集通道;台架端子 `../子系统设计/屏板链路设计说明.md` §3.2) |
| **状态 LED ×6** | GPIO | PC5 / PB0 / PB1 / PB2 / PF11 / PF12 | **低电平点亮** |
| SWD | — | PA13 SWDIO / PA14 SWCLK | V0.1 已修复 V0.0 的 SWCLK 引脚缺陷 |
| 调试口 | — | CN2(XH-3A,1=SWDIO/2=SWCLK/3=GND) | V0.1 由 H2 排针改为 XH 端子 |
> ⚠️ **V0.0 / V0.1 差异**:V0.1 相比 V0.0 做了**接口裁剪(删 8080 LCD 与 8 键)+ U17 大面积引脚重排 +
> ADC 前端通道置换(17 路中 13 路变化)+ 调试口改型**。固件 BSP 与 ADC 通道映射表**必须按 V0.1 重映射**;
> 详见 `docs/硬件平台/V0.1_网表详细分析报告.md`。
## 3. 存储器件
| 器件 | 容量 | 组织 | 软件栈 |
|---|---|---|---|
| GD5F2GQ5UE | 2 Gbit(256 MB) | 2048 块 × 64 页 × 2048 B | FatFS(FAT32)→ dhara FTL(磨损均衡 / 坏块管理 / GC)→ NAND 驱动 |
| SD2506 | — | I2C1 | RTC(时间/温度/电池诊断) |
> 本档只留**器件口径**。软件栈细则——BBT 保留块池(顶部 4 块、不交给 dhara 管理)、
> FatFs 严格 8.3 短名与两条 `f_write` 陷阱、单写者纪律(`defaultTask` 拥有存储、
> `netTask` 只读 RAM 配置副本)——以 [`STM32F4-Base存储架构说明.md`](STM32F4-Base存储架构说明.md)
> 与 [`软件架构与运行时规格.md`](软件架构与运行时规格.md) §2 为准。
## 4. 硬件版本与兼容性
| 版本 | 状态 | 说明 |
|---|---|---|
| V0.0 | 历史 | 含 8080 LCD、8 按键;存在 2 处设计缺陷(SWCLK 引脚错误致 SWD 不通、ADC17 落在非 ADC 引脚) |
| **V0.1** | **当前** | 架构与 V0.0 一致;裁剪 LCD/按键、U17 引脚重排、修复上述 2 处缺陷;固件已迁移 |
| V0.2 | 规划关注 | 新增关注项:VCAP 电容值未标注、PC13/14/15 子板 LED 3 mA 限流、SPI1 无法双落点 |
## 5. V0.1 硬件能力边界(对产品的硬约束)
下列五条是**硬件事实**,不是软件缺陷;需求档 §5 的功能范围与 需求档 §9 的"等条件"项均由它们推导:
| # | 约束 | 具体内容 | 产品影响 | 解除条件 |
|---|---|---|---|---|
| H1 | **双转换器无共同采样触发** | 8 路电气量分属 TPAFE5160(16 位、8 通道同步、±5 V 双极性)与 STM32 ADC1(12 位、顺序扫描、0~3.3 V 单极性)两片;两片无共同触发,STM32 侧 9 通道一轮约 67 µs | 跨转换器的**相位 / 功率 / 功率因数 / 对称分量 / 三相同时刻判据**一律不成立 → 方向元件、PT/CT 断线、三相过流、零序过流延后 | **V0.2 硬件**:8 路电气量全部接 TPAFE(与备用路对调串联电阻,料号不变,走线级改动);固件只改映射表内容 |
| H2 | **STM32 侧无中点偏置** | 单极性 0~3.3 V,交流量负半周削顶 | `UB/UC/IB/IC/IN` 无有效值/相量,只能读码值**监视**;104 对应点恒置 IV | V0.2 补偏置 |
| H3 | **无出口继电器与开入回路** | 无跳闸/告警出口、无硬压板与开入遥信 | 保护动作只体现为**遥信 + 日志 + SOE**;104 遥控 `YK1~4/13/14` 否定确认 | 开入开出独立立项 + 硬件 |
| H4 | **无本地屏与按键** | 160×160 单色屏仅存在于远端客户端 | UI 以 TCP :7003 推流 + 远端按键回注(`../产品需求/产品需求设计文档.md` §8) | 产品形态即如此,不解除 |
| H5 | **无 SDIO** | SDIO 固定引脚组被 TPAFE/UART 占用 | FatFs 卷只能落 SPI NAND(当前设计不受影响) | 不解除 |
> **量纲口径**(由 H1/H2 派生):在端子/子板变比确认与两点标定完成前,遥测与保护读数的单位是
> **ADC 引脚电压**(`eng=0`),不是二次值;此时 `ADC_CAL_F_VALID` 未置位,
> **保护判据整体停走**(`../产品需求/产品需求设计文档.md` §5.12)。这是刻意设计,不是"保护不动作"的缺陷。
---
> **编号换算(原《系统架构与硬件规格》合档 → 本档)**:旧档号记裸号、不带 § 以免与本档编号混淆——
> 2.1(除 RTOS / 工具链 / CubeMX 三行)→§1、2.2→§2、2.3→§3、2.4→§4、2.5 的 SDIO 行→§5 H5、2.6→§5;
> 旧 2.5 其余五条工程约束(CubeMX 生成文件、生成区外定制、`osKernelStart`、BOM / 编码、新源文件)→
> [`软件架构与运行时规格.md`](软件架构与运行时规格.md) §6.2。全仓旧号引用已按本表重定向;
> 换算只留此注,正文不再出现旧号。