merge: task/archsplit-sw-hw 合入 v2-on-ui
任务 archsplit(2 个提交)经 task-worktree 回收: - Merge branch 'v2-on-ui' into task/archsplit-sw-hw - docs(架构设计): 系统架构与硬件规格拆为软件与硬件两档,软硬件分治
This commit is contained in:
@@ -137,7 +137,7 @@
|
|||||||
|
|
||||||
## 硬件引脚
|
## 硬件引脚
|
||||||
|
|
||||||
- **完整引脚表(含 SD2506 I2C1、SWD、调试口)→ `docs/架构设计/系统架构与硬件规格.md` §2.2**(权威,V0.1 口径;勿在本文重复抄表)
|
- **完整引脚表(含 SD2506 I2C1、SWD、调试口)→ `docs/架构设计/硬件规格与能力边界.md` §2**(权威,V0.1 口径;勿在本文重复抄表)
|
||||||
- ⚠ **网名 `AINn` ≠ 板级 `ADCn` ≠ 转换器通道号**(17 路里 13 路置换)→ 取数**必须查** `docs/硬件平台/ADC通道映射说明.md`(TPAFE `buf[2]=IA`/`buf[5]=UN`/`buf[6]=UA`;网名 ADC17=PC4 用 `ADC_CHANNEL_14`,**不是** `ADC_CHANNEL_12`)
|
- ⚠ **网名 `AINn` ≠ 板级 `ADCn` ≠ 转换器通道号**(17 路里 13 路置换)→ 取数**必须查** `docs/硬件平台/ADC通道映射说明.md`(TPAFE `buf[2]=IA`/`buf[5]=UN`/`buf[6]=UA`;网名 ADC17=PC4 用 `ADC_CHANNEL_14`,**不是** `ADC_CHANNEL_12`)
|
||||||
- ⚠ **8 路电气量被分给两片转换器是 V0.1 硬件缺陷,不是有意分配**(跨转换器无共同采样触发 → 无同一时刻性、相位不确定)→ V0.1 上**禁止**跨转换器做相位/功率/功率因数/矢量运算;**V0.2 须把 8 路全接 TPAFE**(登记簿条目「双转换器无共同采样触发」)
|
- ⚠ **8 路电气量被分给两片转换器是 V0.1 硬件缺陷,不是有意分配**(跨转换器无共同采样触发 → 无同一时刻性、相位不确定)→ V0.1 上**禁止**跨转换器做相位/功率/功率因数/矢量运算;**V0.2 须把 8 路全接 TPAFE**(登记簿条目「双转换器无共同采样触发」)
|
||||||
|
|
||||||
|
|||||||
+4
-3
@@ -13,7 +13,7 @@ docs/
|
|||||||
├── README.md 本索引(阅读顺序 + 全量清单)
|
├── README.md 本索引(阅读顺序 + 全量清单)
|
||||||
├── 任务规划/ 统一待办(README 单一入口 + 6 个职责文件)
|
├── 任务规划/ 统一待办(README 单一入口 + 6 个职责文件)
|
||||||
├── 产品需求/ 产品需求设计文档(需求基线)+ 参考产品复刻明细(逐项差额)
|
├── 产品需求/ 产品需求设计文档(需求基线)+ 参考产品复刻明细(逐项差额)
|
||||||
├── 架构设计/ 全局架构与设计方法论(含 系统架构与硬件规格:位表/引脚权威)
|
├── 架构设计/ 全局架构与设计方法论(含 软件架构与运行时规格 / 硬件规格与能力边界:位表与引脚权威)
|
||||||
├── 子系统设计/ 各功能子系统的设计说明
|
├── 子系统设计/ 各功能子系统的设计说明
|
||||||
├── 算法/ 傅氏算法与继电保护算法专题
|
├── 算法/ 傅氏算法与继电保护算法专题
|
||||||
├── 网络/ BSD Socket API 使用与内部实现
|
├── 网络/ BSD Socket API 使用与内部实现
|
||||||
@@ -41,7 +41,7 @@ docs/
|
|||||||
|
|
||||||
| 顺序 | 文档 | 读它能得到什么 |
|
| 顺序 | 文档 | 读它能得到什么 |
|
||||||
|:---:|---|---|
|
|:---:|---|---|
|
||||||
| 1 | [`产品需求设计文档.md`](产品需求/产品需求设计文档.md) | 产品定位·用户·场景、优先级总览、功能/非功能需求、接口规范、UI 规格、路线图与验收判据(架构与硬件规格见 [`系统架构与硬件规格.md`](架构设计/系统架构与硬件规格.md),复刻逐项差额见 [`参考产品复刻明细.md`](产品需求/参考产品复刻明细.md)) |
|
| 1 | [`产品需求设计文档.md`](产品需求/产品需求设计文档.md) | 产品定位·用户·场景、优先级总览、功能/非功能需求、接口规范、UI 规格、路线图与验收判据(运行时架构见 [`软件架构与运行时规格.md`](架构设计/软件架构与运行时规格.md)、硬件规格见 [`硬件规格与能力边界.md`](架构设计/硬件规格与能力边界.md),复刻逐项差额见 [`参考产品复刻明细.md`](产品需求/参考产品复刻明细.md)) |
|
||||||
| 2 | [`项目架构总览.md`](架构设计/项目架构总览.md) | 六层分层、启动时序、存储/网络/UI 三栈、目录组织 |
|
| 2 | [`项目架构总览.md`](架构设计/项目架构总览.md) | 六层分层、启动时序、存储/网络/UI 三栈、目录组织 |
|
||||||
| 3 | [`项目启动顺序管理.md`](架构设计/项目启动顺序管理.md) | Event Flags 就绪屏障(取代魔法延时)的任务启动模型 |
|
| 3 | [`项目启动顺序管理.md`](架构设计/项目启动顺序管理.md) | Event Flags 就绪屏障(取代魔法延时)的任务启动模型 |
|
||||||
| 4 | [`项目部署环境要求.md`](环境与部署/项目部署环境要求.md) | 开发机/目标板/现场部署的完整环境核对清单 |
|
| 4 | [`项目部署环境要求.md`](环境与部署/项目部署环境要求.md) | 开发机/目标板/现场部署的完整环境核对清单 |
|
||||||
@@ -72,7 +72,8 @@ docs/
|
|||||||
| 文档 | 内容 |
|
| 文档 | 内容 |
|
||||||
|---|---|
|
|---|---|
|
||||||
| [`项目架构总览.md`](架构设计/项目架构总览.md) | 系统全景:六层分层、启动时序、存储·网络·UI 栈、目录组织 |
|
| [`项目架构总览.md`](架构设计/项目架构总览.md) | 系统全景:六层分层、启动时序、存储·网络·UI 栈、目录组织 |
|
||||||
| [`系统架构与硬件规格.md`](架构设计/系统架构与硬件规格.md) | 就绪位表 / 线程通信机制表 / 启动时序图 / V0.1 引脚表与硬件未确认项(H1~H3)——**位表、机制表、时序图、引脚表以本档为准**(自产品需求档拆出) |
|
| [`软件架构与运行时规格.md`](架构设计/软件架构与运行时规格.md) | 六层分层表 / 任务模型 / 就绪位表 / 启动时序图 / 线程通信机制表 / 工具链与工程约束——**位表、机制表、时序图以本档为准**(自产品需求档拆出,2026-10-30 再按软/硬拆分) |
|
||||||
|
| [`硬件规格与能力边界.md`](架构设计/硬件规格与能力边界.md) | 主控与内存 / V0.1 引脚分配表 / 存储器件 / 硬件版本兼容 / 能力边界 H1~H5 与量纲口径——**引脚表与能力边界表以本档为准** |
|
||||||
| [`STM32F4-Base存储架构说明.md`](架构设计/STM32F4-Base存储架构说明.md) | GD5F2GQ5UE SPI NAND 之上的三层存储软件栈(FTL / dhara / FatFs) |
|
| [`STM32F4-Base存储架构说明.md`](架构设计/STM32F4-Base存储架构说明.md) | GD5F2GQ5UE SPI NAND 之上的三层存储软件栈(FTL / dhara / FatFs) |
|
||||||
| [`项目启动顺序管理.md`](架构设计/项目启动顺序管理.md) | CMSIS-RTOS v2 Event Flags 就绪屏障(`SYS_EVT_NET_READY` 等) |
|
| [`项目启动顺序管理.md`](架构设计/项目启动顺序管理.md) | CMSIS-RTOS v2 Event Flags 就绪屏障(`SYS_EVT_NET_READY` 等) |
|
||||||
| [`图形绘制流程.md`](架构设计/图形绘制流程.md) | 文档配图规范:SVG 生成器 / Mermaid 选型与检查清单 |
|
| [`图形绘制流程.md`](架构设计/图形绘制流程.md) | 文档配图规范:SVG 生成器 / Mermaid 选型与检查清单 |
|
||||||
|
|||||||
+12
-9
@@ -8,8 +8,9 @@
|
|||||||
> ARM+DSP 双核 + VxWorks 配电保护测控装置)的**逐模块复刻**;差异只允许来自物理不可移植项
|
> ARM+DSP 双核 + VxWorks 配电保护测控装置)的**逐模块复刻**;差异只允许来自物理不可移植项
|
||||||
> (§3.2)。能力基线与逐项明细已独立成档:
|
> (§3.2)。能力基线与逐项明细已独立成档:
|
||||||
> [`参考产品复刻明细.md`](参考产品复刻明细.md)(能力清单、点表/定值/元件/规约逐项差额)。
|
> [`参考产品复刻明细.md`](参考产品复刻明细.md)(能力清单、点表/定值/元件/规约逐项差额)。
|
||||||
> **配套权威档**:运行时架构与硬件规格(引脚表、就绪位表、启动时序、硬件能力边界)→
|
> **配套权威档**:运行时架构(就绪位表、启动时序、线程通信)→
|
||||||
> [`../架构设计/系统架构与硬件规格.md`](../架构设计/系统架构与硬件规格.md)。
|
> [`../架构设计/软件架构与运行时规格.md`](../架构设计/软件架构与运行时规格.md);硬件规格与
|
||||||
|
> 能力边界(引脚表、H1~H5)→ [`../架构设计/硬件规格与能力边界.md`](../架构设计/硬件规格与能力边界.md)。
|
||||||
> **事实来源**:本文所有数值与结论均取自仓库内**受管事实源**(代码、`.ioc`、`.map`、网表分析
|
> **事实来源**:本文所有数值与结论均取自仓库内**受管事实源**(代码、`.ioc`、`.map`、网表分析
|
||||||
> 报告与各模块设计文档),凡与其它文档冲突处,以本文标注的权威来源为准。
|
> 报告与各模块设计文档),凡与其它文档冲突处,以本文标注的权威来源为准。
|
||||||
> **阅读前提**:建议先读 [`docs/README.md`](../../docs/README.md)(文档索引)。
|
> **阅读前提**:建议先读 [`docs/README.md`](../../docs/README.md)(文档索引)。
|
||||||
@@ -30,8 +31,8 @@
|
|||||||
**不含**(各有权威档,本文不重复):
|
**不含**(各有权威档,本文不重复):
|
||||||
|
|
||||||
- 代码实现细节 → 各模块设计文档(`docs/子系统设计/`、`docs/算法/`、`docs/网络/`);
|
- 代码实现细节 → 各模块设计文档(`docs/子系统设计/`、`docs/算法/`、`docs/网络/`);
|
||||||
- 运行时架构与硬件规格(分层/任务/就绪位/启动时序/引脚/硬件边界)→
|
- 运行时架构(分层/任务/就绪位/启动时序)→ [`../架构设计/软件架构与运行时规格.md`](../架构设计/软件架构与运行时规格.md);
|
||||||
[`../架构设计/系统架构与硬件规格.md`](../架构设计/系统架构与硬件规格.md);
|
- 硬件规格与能力边界(引脚/硬件边界)→ [`../架构设计/硬件规格与能力边界.md`](../架构设计/硬件规格与能力边界.md);
|
||||||
- 参考产品能力基线与复刻逐项明细 → [`参考产品复刻明细.md`](参考产品复刻明细.md);
|
- 参考产品能力基线与复刻逐项明细 → [`参考产品复刻明细.md`](参考产品复刻明细.md);
|
||||||
- 测试用例步骤 → `docs/测试说明/`;未闭环事项逐条跟踪 → [`docs/任务规划/README.md`](../任务规划/README.md)。
|
- 测试用例步骤 → `docs/测试说明/`;未闭环事项逐条跟踪 → [`docs/任务规划/README.md`](../任务规划/README.md)。
|
||||||
|
|
||||||
@@ -67,7 +68,8 @@
|
|||||||
| **固有 / 运行 / 保护定值** | 三类参数:只读身份信息、可整定的运行参数、可整定的保护定值(§5.13) |
|
| **固有 / 运行 / 保护定值** | 三类参数:只读身份信息、可整定的运行参数、可整定的保护定值(§5.13) |
|
||||||
| **软压板** | 软件投退开关(全局软压板 = 保护总投入,可经 104 遥控投退) |
|
| **软压板** | 软件投退开关(全局软压板 = 保护总投入,可经 104 遥控投退) |
|
||||||
| **遥测死区** | 遥测变化上送门槛;本产品按"连续 2 个新测量点越限才确认" |
|
| **遥测死区** | 遥测变化上送门槛;本产品按"连续 2 个新测量点越限才确认" |
|
||||||
| **架构硬件档** | [`docs/架构设计/系统架构与硬件规格.md`](../架构设计/系统架构与硬件规格.md) 的简称(本文与复刻明细档共用此简称) |
|
| **软件架构档** | [`docs/架构设计/软件架构与运行时规格.md`](../架构设计/软件架构与运行时规格.md) 的简称(本文与复刻明细档共用此简称) |
|
||||||
|
| **硬件规格档** | [`docs/架构设计/硬件规格与能力边界.md`](../架构设计/硬件规格与能力边界.md) 的简称(本文与复刻明细档共用此简称) |
|
||||||
| **复刻明细档** | [`docs/产品需求/参考产品复刻明细.md`](参考产品复刻明细.md) 的简称 |
|
| **复刻明细档** | [`docs/产品需求/参考产品复刻明细.md`](参考产品复刻明细.md) 的简称 |
|
||||||
| **CLS100** | 参考产品(配电保护测控装置,ARM + DSP 双核 / VxWorks),仅作能力对照,非本产品代次 |
|
| **CLS100** | 参考产品(配电保护测控装置,ARM + DSP 双核 / VxWorks),仅作能力对照,非本产品代次 |
|
||||||
|
|
||||||
@@ -220,7 +222,7 @@ flowchart LR
|
|||||||
|---|---|---|---|---|
|
|---|---|---|---|---|
|
||||||
| X1 | 双核 ARM + DSP 分工 | OMAP-L138(ARM 跑通信/HMI,DSP 跑保护) | 单核 Cortex-M4F 按任务划分承担 | 芯片形态 |
|
| X1 | 双核 ARM + DSP 分工 | OMAP-L138(ARM 跑通信/HMI,DSP 跑保护) | 单核 Cortex-M4F 按任务划分承担 | 芯片形态 |
|
||||||
| X2 | 实时操作系统与工具链 | VxWorks 5.x + CCS | FreeRTOS V10.3.1 + Keil ARMCC | 平台形态 |
|
| X2 | 实时操作系统与工具链 | VxWorks 5.x + CCS | FreeRTOS V10.3.1 + Keil ARMCC | 平台形态 |
|
||||||
| X3 | 一次设备接口 | KO / KI 板卡(出口、开入、硬压板) | V0.1 无该硬件(架构硬件档 §2.6 H3) | 硬件缺失 |
|
| X3 | 一次设备接口 | KO / KI 板卡(出口、开入、硬压板) | V0.1 无该硬件(硬件规格档 §5 H3) | 硬件缺失 |
|
||||||
| X4 | 独立计量通道 | 专用计量芯片(电度) | 无(跨转换器无同刻,§4.6 H1) | 硬件缺失 |
|
| X4 | 独立计量通道 | 专用计量芯片(电度) | 无(跨转换器无同刻,§4.6 H1) | 硬件缺失 |
|
||||||
|
|
||||||
> **X1~X4 是范围外项的全部。** 除此以外**不存在"参考有、我们决定不做"的能力**—
|
> **X1~X4 是范围外项的全部。** 除此以外**不存在"参考有、我们决定不做"的能力**—
|
||||||
@@ -457,7 +459,7 @@ flowchart LR
|
|||||||
- `1k 串联 + 1k 到地` 是**源阻抗匹配、不是分压**:`ADCn` 节点只有 {串阻、滤波电容、转换器引脚},
|
- `1k 串联 + 1k 到地` 是**源阻抗匹配、不是分压**:`ADCn` 节点只有 {串阻、滤波电容、转换器引脚},
|
||||||
「1k 到地」接在差分负端(`ADC7_GND` → R32 → AGND),故 AINn↔引脚变比 **1:1**。
|
「1k 到地」接在差分负端(`ADC7_GND` → R32 → AGND),故 AINn↔引脚变比 **1:1**。
|
||||||
- 芯片手册 ±10 V 档的 LSB(305.18 / 1611.3 µV/码)是**另一回事**,不可与本板变比混用。
|
- 芯片手册 ±10 V 档的 LSB(305.18 / 1611.3 µV/码)是**另一回事**,不可与本板变比混用。
|
||||||
- 剩余未知量只有**子板/端子板变比**,因此系数只能推到"µV/码 @ 引脚"(架构硬件档 §2.6 量纲口径)。
|
- 剩余未知量只有**子板/端子板变比**,因此系数只能推到"µV/码 @ 引脚"(硬件规格档 §5 量纲口径)。
|
||||||
- 拓扑图 [`docs/images/ADC前端电路.svg`](../images/ADC前端电路.svg)。
|
- 拓扑图 [`docs/images/ADC前端电路.svg`](../images/ADC前端电路.svg)。
|
||||||
|
|
||||||
### 5.10 RS-485 采集(FR-RS485)⬜ 冻结
|
### 5.10 RS-485 采集(FR-RS485)⬜ 冻结
|
||||||
@@ -525,7 +527,7 @@ flowchart LR
|
|||||||
> 不要把它误读成"元件没动作"。
|
> 不要把它误读成"元件没动作"。
|
||||||
|
|
||||||
- **未复刻的元件**(建接口不使能,等条件):三相完整过流(B/C 相)、零序过流、方向/功率类、
|
- **未复刻的元件**(建接口不使能,等条件):三相完整过流(B/C 相)、零序过流、方向/功率类、
|
||||||
PT/CT 断线、涌流制动、重合闸、故障隔离——原因见架构硬件档 §2.6 的 H1/H2,属需求档 §9.1.1「三相与同期」,
|
PT/CT 断线、涌流制动、重合闸、故障隔离——原因见硬件规格档 §5 的 H1/H2,属需求档 §9.1.1「三相与同期」,
|
||||||
解除条件为 V0.2 硬件。
|
解除条件为 V0.2 硬件。
|
||||||
- 判据:`[PROT] elm` 边沿日志与 104 变位一致;未使能元件不误动。
|
- 判据:`[PROT] elm` 边沿日志与 104 变位一致;未使能元件不误动。
|
||||||
|
|
||||||
@@ -1778,7 +1780,8 @@ docs/任务规划/UI补齐.md §5);原「当前执行 6 项」(记录 5
|
|||||||
| 主题 | 文档 |
|
| 主题 | 文档 |
|
||||||
|---|---|
|
|---|---|
|
||||||
| 文档索引 | [`docs/README.md`](../../docs/README.md) |
|
| 文档索引 | [`docs/README.md`](../../docs/README.md) |
|
||||||
| 系统架构与硬件规格(本文拆出的运行时架构与引脚/量纲权威) | [`docs/架构设计/系统架构与硬件规格.md`](../架构设计/系统架构与硬件规格.md) |
|
| 软件架构与运行时规格(本文拆出的就绪位表/启动时序/线程通信权威) | [`docs/架构设计/软件架构与运行时规格.md`](../架构设计/软件架构与运行时规格.md) |
|
||||||
|
| 硬件规格与能力边界(本文拆出的引脚表与 H1~H5/量纲权威) | [`docs/架构设计/硬件规格与能力边界.md`](../架构设计/硬件规格与能力边界.md) |
|
||||||
| 参考产品复刻明细(能力基线与逐项差额) | [`docs/产品需求/参考产品复刻明细.md`](参考产品复刻明细.md) |
|
| 参考产品复刻明细(能力基线与逐项差额) | [`docs/产品需求/参考产品复刻明细.md`](参考产品复刻明细.md) |
|
||||||
| 项目全景架构 | [`docs/架构设计/项目架构总览.md`](../../docs/架构设计/项目架构总览.md) |
|
| 项目全景架构 | [`docs/架构设计/项目架构总览.md`](../../docs/架构设计/项目架构总览.md) |
|
||||||
| 存储架构 | [`docs/架构设计/STM32F4-Base存储架构说明.md`](../../docs/架构设计/STM32F4-Base存储架构说明.md) |
|
| 存储架构 | [`docs/架构设计/STM32F4-Base存储架构说明.md`](../../docs/架构设计/STM32F4-Base存储架构说明.md) |
|
||||||
|
|||||||
@@ -5,8 +5,9 @@
|
|||||||
> 原「复刻缺口明细」各节(v1.9 编号 2.5 与 9.4~9.13)拆出:本文 §1 = 复刻基线,
|
> 原「复刻缺口明细」各节(v1.9 编号 2.5 与 9.4~9.13)拆出:本文 §1 = 复刻基线,
|
||||||
> 本文 §2~§11 = 各专题逐项明细。
|
> 本文 §2~§11 = 各专题逐项明细。
|
||||||
> **范围口径、缺口清单与排期(需求档 §3 / 需求档 §9.1~需求档 §9.3)仍在需求档**;本档只放明细。
|
> **范围口径、缺口清单与排期(需求档 §3 / 需求档 §9.1~需求档 §9.3)仍在需求档**;本档只放明细。
|
||||||
> 本档「**需求档**」= [`产品需求设计文档.md`](产品需求设计文档.md);「架构硬件档」=
|
> 本档「**需求档**」= [`产品需求设计文档.md`](产品需求设计文档.md);「软件架构档」=
|
||||||
> [`../架构设计/系统架构与硬件规格.md`](../架构设计/系统架构与硬件规格.md)。
|
> [`../架构设计/软件架构与运行时规格.md`](../架构设计/软件架构与运行时规格.md);「硬件规格档」=
|
||||||
|
> [`../架构设计/硬件规格与能力边界.md`](../架构设计/硬件规格与能力边界.md)。
|
||||||
> 判定纪律:所有参考能力数字一律从参考工程源码常量表实测
|
> 判定纪律:所有参考能力数字一律从参考工程源码常量表实测
|
||||||
> (`Scatter_P_HV03.01_SV01.01`),不做估计。
|
> (`Scatter_P_HV03.01_SV01.01`),不做估计。
|
||||||
|
|
||||||
@@ -582,7 +583,7 @@ tTimer_NoUI 无压无流判据(CN_
|
|||||||
| `RlyCommSam` | 录波 / 采样 | 保护通信采样(跨装置采样同步) | 多装置差动类保护不可能 | 通信 + 对时 |
|
| `RlyCommSam` | 录波 / 采样 | 保护通信采样(跨装置采样同步) | 多装置差动类保护不可能 | 通信 + 对时 |
|
||||||
|
|
||||||
> **唯一"现在就能做"的是 `MusterRecov`(总复归)**:它不依赖任何硬件,只把各元件的
|
> **唯一"现在就能做"的是 `MusterRecov`(总复归)**:它不依赖任何硬件,只把各元件的
|
||||||
> 保持态与出口标志清一遍。本产品已有 `prot_elm_request_reset` 单字请求标志(架构硬件档 §1.5),
|
> 保持态与出口标志清一遍。本产品已有 `prot_elm_request_reset` 单字请求标志(软件架构档 §5),
|
||||||
> 接上即可。其余 36 个模块都至少依赖定值载体、开入、出口、事件码四者之一。
|
> 接上即可。其余 36 个模块都至少依赖定值载体、开入、出口、事件码四者之一。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -0,0 +1,89 @@
|
|||||||
|
# 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。全仓旧号引用已按本表重定向;
|
||||||
|
> 换算只留此注,正文不再出现旧号。
|
||||||
@@ -1,15 +1,15 @@
|
|||||||
# STM32F4-Base 系统架构与硬件规格
|
# STM32F4-Base 软件架构与运行时规格
|
||||||
|
|
||||||
> **文档定位**:全仓**系统运行时架构**与**硬件规格(V0.1)**的权威表档——自
|
> **文档定位**:全仓**系统运行时架构(软件侧)**与**工具链 / 工程约束**的权威表档。
|
||||||
> `docs/产品需求/产品需求设计文档.md` v1.9 的原 §3/§4 拆出(需求与验收口径仍在需求档)。
|
> 来源链:`docs/产品需求/产品需求设计文档.md` v1.9 原 §3/§4 → 《系统架构与硬件规格》
|
||||||
|
> →(2026-10-30 按"软件 / 硬件不混排"拆分)本档 = 软件侧;硬件侧见
|
||||||
|
> [`硬件规格与能力边界.md`](硬件规格与能力边界.md)。需求与验收口径仍在需求档。
|
||||||
> 与 [`docs/架构设计/项目架构总览.md`](项目架构总览.md) 的分工:总览是**叙述性全景**,
|
> 与 [`docs/架构设计/项目架构总览.md`](项目架构总览.md) 的分工:总览是**叙述性全景**,
|
||||||
> 本档是**完整口径表**——就绪屏障位表(bit0~8)、线程间通信机制表、启动时序图、
|
> 本档是**完整口径表**——就绪屏障位表(bit0~8)、线程间通信机制表、启动时序图以
|
||||||
> 引脚分配表、硬件能力边界表以**本档为准**,两处冲突以本档为准并回改总览。
|
> **本档为准**,两处冲突以本档为准并回改总览。
|
||||||
> **硬件口径**:V0.1(`docs/硬件平台/V0.1_网表详细分析报告.md` + `Inc/main.h`)。
|
> **版本**:v1.0 **日期**:2026-10-30
|
||||||
|
|
||||||
## 1. 系统运行时架构
|
## 1. 六层分层架构
|
||||||
|
|
||||||
### 1.1 六层分层架构
|
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@@ -29,7 +29,9 @@
|
|||||||
| ⑥ 内核 / HAL | `Middlewares/`、`Drivers/STM32F4xx_HAL_Driver/`、`Drivers/CMSIS/` | 任务调度、外设 HAL、启动 | FreeRTOS V10.3.1 · STM32 HAL · CMSIS |
|
| ⑥ 内核 / HAL | `Middlewares/`、`Drivers/STM32F4xx_HAL_Driver/`、`Drivers/CMSIS/` | 任务调度、外设 HAL、启动 | FreeRTOS V10.3.1 · STM32 HAL · CMSIS |
|
||||||
| ⑦ 硬件 | — | STM32F407ZGTx @168MHz | SPI1 / SPI2 / I2C1 / UART4 / USART1 / DMA / GPIO / TIM7 |
|
| ⑦ 硬件 | — | STM32F407ZGTx @168MHz | SPI1 / SPI2 / I2C1 / UART4 / USART1 / DMA / GPIO / TIM7 |
|
||||||
|
|
||||||
### 1.2 运行时任务模型
|
> 表中硬件行只到"层"口径;**器件与引脚级规格见 [`硬件规格与能力边界.md`](硬件规格与能力边界.md)**。
|
||||||
|
|
||||||
|
## 2. 运行时任务模型
|
||||||
|
|
||||||
**九个** FreeRTOS 任务(`Src/freertos.c` 创建,任务体在 `App/task/`、`App/sync/`):
|
**九个** FreeRTOS 任务(`Src/freertos.c` 创建,任务体在 `App/task/`、`App/sync/`):
|
||||||
|
|
||||||
@@ -56,7 +58,7 @@
|
|||||||
> 否则 DMA 乒乓缓冲整体旋转 2 格(表象与"映射表写错"一致)。证据见
|
> 否则 DMA 乒乓缓冲整体旋转 2 格(表象与"映射表写错"一致)。证据见
|
||||||
> [`docs/子系统设计/ADC采样节拍设计说明.md`](../子系统设计/ADC采样节拍设计说明.md) §4.5。
|
> [`docs/子系统设计/ADC采样节拍设计说明.md`](../子系统设计/ADC采样节拍设计说明.md) §4.5。
|
||||||
|
|
||||||
### 1.3 就绪屏障(Event Flags)
|
## 3. 就绪屏障(Event Flags)
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@@ -79,7 +81,7 @@
|
|||||||
> `osFlagsWaitAny|osFlagsNoClear`。命令位(bit4~8)表达"请做一件事",必须**恰好被消费一次**(消费型等待)。
|
> `osFlagsWaitAny|osFlagsNoClear`。命令位(bit4~8)表达"请做一件事",必须**恰好被消费一次**(消费型等待)。
|
||||||
> 历史事故:就绪位被先到的等待者消费,导致 `ftpTask` 的 `WaitAll(bit0|bit1)` 永不成立、21 端口从未监听(静默)。
|
> 历史事故:就绪位被先到的等待者消费,导致 `ftpTask` 的 `WaitAll(bit0|bit1)` 永不成立、21 端口从未监听(静默)。
|
||||||
|
|
||||||
### 1.4 启动时序
|
## 4. 启动时序
|
||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
sequenceDiagram
|
sequenceDiagram
|
||||||
@@ -119,75 +121,31 @@ sequenceDiagram
|
|||||||
> **顺序铁律**:① 配置段注册必须**先于** `cfg_file_load`(否则 FTP 上传的段不生效);
|
> **顺序铁律**:① 配置段注册必须**先于** `cfg_file_load`(否则 FTP 上传的段不生效);
|
||||||
> ② `adc1_disable()` 必须在挂 DMA 之前;③ `osKernelStart` 之前禁调任何内核 API(含 `osDelay` / 队列)。
|
> ② `adc1_disable()` 必须在挂 DMA 之前;③ `osKernelStart` 之前禁调任何内核 API(含 `osDelay` / 队列)。
|
||||||
|
|
||||||
### 1.5 线程间通信
|
## 5. 线程间通信
|
||||||
|
|
||||||
| 机制 | 对象 | 用途 |
|
| 机制 | 对象 | 用途 |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| Event Flags | `sys_evtHandle` | 启动就绪屏障 + 命令位(§1.3) |
|
| Event Flags | `sys_evtHandle` | 启动就绪屏障 + 命令位(§3) |
|
||||||
| Message Queue | `netMsgQueue`(深度 8,`net_msg_t`) | 所有 CH395F 操作经队列**串行化**到 netTask 执行,保证 SPI 单线程访问 |
|
| Message Queue | `netMsgQueue`(深度 8,`net_msg_t`) | 所有 CH395F 操作经队列**串行化**到 netTask 执行,保证 SPI 单线程访问 |
|
||||||
| 双区 + 序号(无锁) | `phasor` 相量区、`meas` 遥测快照 | 写侧填满计算区后单字节翻转活跃索引;读者先取索引再整份拷贝,`seq` 判"是否换帧" |
|
| 双区 + 序号(无锁) | `phasor` 相量区、`meas` 遥测快照 | 写侧填满计算区后单字节翻转活跃索引;读者先取索引再整份拷贝,`seq` 判"是否换帧" |
|
||||||
| SPSC 环(无锁) | `soe_store`(深度 8) | protectTask 只投递动作边沿,defaultTask 排空落盘——**保护路径零 NAND I/O** |
|
| SPSC 环(无锁) | `soe_store`(深度 8) | protectTask 只投递动作边沿,defaultTask 排空落盘——**保护路径零 NAND I/O** |
|
||||||
| 脏位 + 事件位 | `prot_set` / `run_par` / `comm` | 写入方置脏;104 侧 peek 后投递事件位,配置属主(defaultTask)落盘,失败保留脏位下轮重试 |
|
| 脏位 + 事件位 | `prot_set` / `run_par` / `comm` | 写入方置脏;104 侧 peek 后投递事件位,配置属主(defaultTask)落盘,失败保留脏位下轮重试 |
|
||||||
| 单字请求标志 | `prot_elm_request_reset()` | 跨上下文复归请求(104 遥控 YK11 在 iec104Task 落请求,protectTask 下一拍消费) |
|
| 单字请求标志 | `prot_elm_request_reset()` | 跨上下文复归请求(104 遥控 YK11 在 iec104Task 落请求,protectTask 下一拍消费) |
|
||||||
|
|
||||||
---
|
## 6. 工具链与工程约束
|
||||||
|
|
||||||
## 2. 硬件规格
|
> 本节收**构建与运行环境事实**。SDIO 无能力属硬件事实,见
|
||||||
|
> [`硬件规格与能力边界.md`](硬件规格与能力边界.md) §5 的 H5。
|
||||||
|
|
||||||
### 2.1 主控与内存
|
### 6.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 | FreeRTOS V10.3.1(CMSIS-RTOS2) | HAL 时基 TIM7,tick = 1 ms;NVIC 4 位抢占,外设中断优先级 ≥5 |
|
| RTOS | FreeRTOS V10.3.1(CMSIS-RTOS2) | HAL 时基 TIM7,tick = 1 ms;NVIC 4 位抢占,外设中断优先级 ≥5 |
|
||||||
| 工具链 | Keil MDK-ARM v5(ARMCC v5) | 工程锁 `uAC6=0`,**不支持 armclang** |
|
| 工具链 | Keil MDK-ARM v5(ARMCC v5) | 工程锁 `uAC6=0`,**不支持 armclang** |
|
||||||
| CubeMX | 6.17.0 + STM32Cube FW_F4 V1.28.3 | 与 `.ioc` 记录一致,再生成须用此组合 |
|
| CubeMX | 6.17.0 + STM32Cube FW_F4 V1.28.3 | 与 `.ioc` 记录一致,再生成须用此组合 |
|
||||||
|
|
||||||
### 2.2 外设与引脚分配
|
### 6.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`。
|
|
||||||
|
|
||||||
### 2.3 存储器件
|
|
||||||
|
|
||||||
| 器件 | 容量 | 组织 | 软件栈 |
|
|
||||||
|---|---|---|---|
|
|
||||||
| GD5F2GQ5UE | 2 Gbit(256 MB) | 2048 块 × 64 页 × 2048 B | FatFS(FAT32)→ dhara FTL(磨损均衡 / 坏块管理 / GC)→ NAND 驱动 |
|
|
||||||
| SD2506 | — | I2C1 | RTC(时间/温度/电池诊断) |
|
|
||||||
|
|
||||||
- **BBT 持久化**:坏块表存于保留块池(顶部 4 块),不交给 dhara 管理。
|
|
||||||
- **单写者纪律**:`defaultTask` 拥有存储;`netTask` 只读 RAM 配置副本,不触卷。
|
|
||||||
- **FatFs 约束**:`FF_USE_LFN=0`(严格 8.3 文件名);`FF_FS_REENTRANT=1` + `ffsystem.c` 互斥钩子(超时 1 s);`FF_FS_NORTC=0`(`get_fattime` 直引用墙钟)。
|
|
||||||
|
|
||||||
### 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 无法双落点 |
|
|
||||||
|
|
||||||
### 2.5 平台约束
|
|
||||||
|
|
||||||
| 约束 | 内容 |
|
| 约束 | 内容 |
|
||||||
|---|---|
|
|---|---|
|
||||||
@@ -195,21 +153,10 @@ sequenceDiagram
|
|||||||
| **生成区外的定制** | 仅限 `Src/iwdg.c` 延后启动、4 个 Fault Handler 实体(`scripts/check_cubemx_survival.py` 审计兜底) |
|
| **生成区外的定制** | 仅限 `Src/iwdg.c` 延后启动、4 个 Fault Handler 实体(`scripts/check_cubemx_survival.py` 审计兜底) |
|
||||||
| **`osKernelStart` 前** | 禁止任何 FreeRTOS / CMSIS-RTOS API 调用 |
|
| **`osKernelStart` 前** | 禁止任何 FreeRTOS / CMSIS-RTOS API 调用 |
|
||||||
| **BOM / 编码** | 部分源文件带 BOM(`Drivers/BSP/UI/*`、`App/task/ui_task.c`、`App/cfg/cfg_file.c`、`Lib/lv_conf.h`),被工具改写丢 BOM 会导致 ARMCC 按 CP936 解码、中文字面量编译失败 |
|
| **BOM / 编码** | 部分源文件带 BOM(`Drivers/BSP/UI/*`、`App/task/ui_task.c`、`App/cfg/cfg_file.c`、`Lib/lv_conf.h`),被工具改写丢 BOM 会导致 ARMCC 按 CP936 解码、中文字面量编译失败 |
|
||||||
| **SDIO** | V0.1 主板 SDIO 固定引脚组被 TPAFE/UART 全部占用 → **无 SDIO 能力**(当前设计不受影响,FatFs 卷在 SPI NAND 上) |
|
|
||||||
| **新源文件** | 必须双端注册(Keil `.uvprojx` + `simulator/CMakeLists.txt`),否则不参与编译 |
|
| **新源文件** | 必须双端注册(Keil `.uvprojx` + `simulator/CMakeLists.txt`),否则不参与编译 |
|
||||||
|
|
||||||
### 2.6 V0.1 硬件能力边界(对产品的硬约束)
|
---
|
||||||
|
|
||||||
下列五条是**硬件事实**,不是软件缺陷;需求档 §5 的功能范围与 需求档 §9 的"等条件"项均由它们推导:
|
> **编号换算(原《系统架构与硬件规格》合档 → 本档)**:旧档号记裸号、不带 § 以免与本档编号混淆——
|
||||||
|
> 1.1→§1、1.2→§2、1.3→§3、1.4→§4、1.5→§5;旧 2.1 的 RTOS / 工具链 / CubeMX 三行与旧 2.5 五条工程约束
|
||||||
| # | 约束 | 具体内容 | 产品影响 | 解除条件 |
|
> (除 SDIO 行)并入 §6。全仓旧号引用已按本表重定向;换算只留此注,正文不再出现旧号。
|
||||||
|---|---|---|---|---|
|
|
||||||
| 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)。这是刻意设计,不是"保护不动作"的缺陷。
|
|
||||||
@@ -4,8 +4,10 @@
|
|||||||
"规划": "docs/算法/继电保护功能复现规划.md",
|
"规划": "docs/算法/继电保护功能复现规划.md",
|
||||||
"需求档": "docs/产品需求/产品需求设计文档.md",
|
"需求档": "docs/产品需求/产品需求设计文档.md",
|
||||||
"产品需求设计文档": "docs/产品需求/产品需求设计文档.md",
|
"产品需求设计文档": "docs/产品需求/产品需求设计文档.md",
|
||||||
"架构硬件档": "docs/架构设计/系统架构与硬件规格.md",
|
"软件架构档": "docs/架构设计/软件架构与运行时规格.md",
|
||||||
"系统架构与硬件规格": "docs/架构设计/系统架构与硬件规格.md",
|
"软件架构与运行时规格": "docs/架构设计/软件架构与运行时规格.md",
|
||||||
|
"硬件规格档": "docs/架构设计/硬件规格与能力边界.md",
|
||||||
|
"硬件规格与能力边界": "docs/架构设计/硬件规格与能力边界.md",
|
||||||
"复刻明细档": "docs/产品需求/参考产品复刻明细.md",
|
"复刻明细档": "docs/产品需求/参考产品复刻明细.md",
|
||||||
"复刻明细": "docs/产品需求/参考产品复刻明细.md",
|
"复刻明细": "docs/产品需求/参考产品复刻明细.md",
|
||||||
"V0.0": "docs/硬件平台/V0.0_网表详细分析报告.md"
|
"V0.0": "docs/硬件平台/V0.0_网表详细分析报告.md"
|
||||||
|
|||||||
Reference in New Issue
Block a user