创建工程

This commit is contained in:
2026-06-03 21:53:25 +08:00
parent 5f33329cfd
commit 37199970c9
41 changed files with 5742 additions and 0 deletions

144
raw/DTU/硬件设计.md Normal file
View File

@@ -0,0 +1,144 @@
## 总结架构设计
![系统架构.png](https://lsky.bitnasdaq.vip/UFlQlJ.png)
## 1. 时钟功能设计
### 需求分析
根据 [3.5 时间同步功能FUN-004](站所终端项目需求.md#3.5%20时间同步功能FUN-004)
* `FUN-004-03`: **正常供电守时:** 无外部授时信号时,依靠内部高精度时钟源(如温补晶振 TCXO实现守时24h 守时误差≤1s。
* `FUN-004-03`:**电源中断守时:** 主电源失电切换至后备电源(蓄电池 / 超级电容)期间,守时功能不中断;后备电源耗尽后,时钟芯片应保留时间信息至少 72h可选配置纽扣电池实现永久时钟保持
### 时钟模块选择 SD2506API-G
![简介](硬件设计/元器件/时钟芯片_SD2506API-G.md.md#简介)
详见:[[硬件设计/元器件/时钟芯片_SD2506API-G.md]]
## 2. 网络功能设计
[经过比较功能的稳定性与设计的便利性](网络方案设计.md),准备采用硬件 TCP/IP 协议栈的方案:
![网络硬件方案.png](https://lsky.bitnasdaq.vip/6mXmvY.png)
* STM32F407ZET6 22.5
* CH395F 8.5
* RTL8305NBI-CG 7
* 带网络变压器的 RJ45 网口 HY911105AE 淘宝 8.5
## 3. 存储功能设计
根据 [3.6 存储功能FUN-006](站所终端项目需求.md#3.6%20存储功能FUN-005),计划选取 [GD5F2GQ5UE SPI NAND Flash 芯片](元器件/存储芯片.md#GD5F2GQ5UE%20SPI%20NAND%20Flash%20芯片)作为DTU项目的存储芯片。计算首先使用简单的 [标准 SPI](../../../../知识库/嵌入式/通信/SPI%20通信.md#模式一:标准%20SPISingle%20SPI1%20线)通信方式与主控芯片连接。
| 需求指标 | DTU 要求 | GD5F2GQ5UE 参数 | 满足度 |
| ------ | ------------ | ----------------------- | ------ |
| 接口类型 | SPI/QSPI | 支持标准 SPI、双 SPI、四路 SPI | ✅ 完全满足 |
| 最高时钟频率 | ≥50MHz | 104MHz | ✅ 超额满足 |
| 数据传输速率 | ≥100Mbits/s | Quad I/O 模式下 416Mbits/s | ✅ 超额满足 |
| 页写入时间 | ≤500μs | 典型 300μs | ✅ 完全满足 |
| 块擦除时间 | ≤5ms | 典型 3ms | ✅ 完全满足 |
| 存储空间 | ≥256MB标准款 | 2Gb | ✅ 完全满足 |
| 擦写寿命 | ≥10 万次 | 10 万次 (SLC 架构) | ✅ 完全满足 |
| 工作温度范围 | 户外:-40℃~+70℃ | 工业级:-40℃~+85℃ | ✅ 完全满足 |
## 4. 模拟量采样设计
为了满足`FUN-001-01:交流工频模拟量采集`
### 需求分析
1. `FUN-001-01:交流工频模拟量采集`采样频率适配工频 50Hz工频采样范围 45Hz~55Hz频率测量误差≤0.02Hz
2. `FUN-001-01:交流工频模拟量采集`测量精度1.2 倍标称值范围内,电压/电流引用误差≤0.5%,有功 / 无功功率、功率因数引用误差≤1%
3. 支持谐波分析、功率方向判断
4. 满足分合闸回路录波、绝缘异常录波等扩展功能
5. 准确还原短路、接地、断线等故障的暂态波形细节
6. 故障录波、故障处理、事件顺序记录 (SOE) 分辨率≤2ms
电力系统标准工频$f₀=50\text{Hz}$,采样率与每周期采样点数的关系为:
**N每周期点数= 采样率(SPS) ÷ 工频(Hz)**
建议采样率为6400SPS = 128点/周波,这是兼顾精度、算力和成本的最优平衡点。
#### 1. 频率误差需求
测量相邻两个**基波过零点**的时间间隔T频率f=1/T。误差来源于**ADC离散采样的量化误差**——真实过零点必然落在两个采样点之间,最大时间误差为**半个采样周期**。
- 采样周期:$T_s = \frac{1}{f_s} = \frac{1}{6400} \approx 156.25\ \mu s$
- 半周期(相邻过零点间隔):$T_{1/2} = \frac{1}{2f_0} = 10\ ms$
- 半周期最大量化误差:$\Delta T_{max} = \frac{T_s}{2} \approx 78.125\ \mu s$
- 频率绝对误差:$\Delta f = f_0 \times \frac{\Delta T_{max}}{T_{1/2}} = 50 \times \frac{78.125\ \mu s}{10\ ms} \approx 0.0039\ Hz$
不同采样率的过零检测误差对比:
| 采样率 (SPS) | 每周期点数 | 采样周期 (μs) | 最大频率误差 (Hz) | 是否满足≤0.02Hz |
| --------- | ----- | --------- | ----------- | ----------- |
| 6400 | 128 | 156.25 | 0.0039 | ✅ 余量充足 |
| 3200 | 64 | 312.5 | 0.0078 | ✅ 余量一般 |
| 1600 | 32 | 625 | 0.0156 | ✅ 余量极小 |
| 800 | 16 | 1250 | 0.0312 | ❌ 不满足 |
实际工况的误差叠加
* 电网谐波3/5/7 次谐波占比可达 10%
* 电磁干扰(电快速瞬变、浪涌等)
* ADC 非线性、温漂、噪声
* 频率波动45Hz~55Hz
这些因素会使实际误差放大**3~5 倍**
- 1600SPS实际误差≈0.0156×4≈0.0624Hz**超过0.02Hz要求**
- 6400SPS实际误差≈0.0039×4≈0.0156Hz**仍满足要求**
#### 2. 测量精度误差需求
**功率因数引用误差≤1%分析:**
相位检测精度直接决定**功率测量精度**和**功率方向判断正确性**。
相位误差与功率误差的关系:$P = UI\cos\phi$
对相位求导得相对误差:
$$
\left| \frac{\Delta P}{P} \right| = |\tan\phi| \times \Delta\phi \quad (\Delta\phi单位弧度)
$$
最恶劣工况:功率因数 $\cos\phi=0.5$(感性/容性负载),此时$\tan\phi=\sqrt{3}\approx1.732$。代入得允许的最大相位误差1%
$$
\Delta\phi_{max} \leq \frac{0.01}{1.732} \approx 0.00577\ 弧度 \approx 0.331^\circ
$$
终端采用**同步采样 + 基波 DFT**计算相位,量化噪声导致的基波相位误差标准差为:
$$
\sigma_\phi = \frac{1}{\sqrt{12} \times N} \quad (弧度)
$$
其中N为每周期采样点数量化噪声均匀分布方差为 $q^2/12$
| 采样率 (SPS) | 每周期点数 N | 相位误差标准差 (弧度) | 相位误差标准差 (度) | 是否满足≤0.331° |
| --------- | ------- | ------------ | ----------- | ----------- |
| 6400 | 128 | 0.00226 | 0.129 | ✅ 余量充足 |
| 3200 | 64 | 0.00451 | 0.258 | ✅ 余量不足 |
| 1600 | 32 | 0.00902 | 0.517 | ❌ 不满足 |
**电压/电流引用误差 ≤0.5% 分析**
每周波 N 点同步采样,理想条件下:
* 电压 / 电流 RMS 误差 ∝ **1/N²**
* 功率误差 ∝ **1/N**
6400 SPS = **128 点 / 周波**误差远远的小于0.5%。
### 芯片选型
根据前面的分析 TPAFE5160 芯片满足上述需求。
![简介](硬件设计/元器件/AD采样芯片_TPAFE5160.md#简介)
## 主控芯片连接方案设计 STM32F407ZGT6
### ADC 引脚使用
| ADC 通道号 | ADC1 | ADC2 | ADC3 | 对应 IO 口 | 连接节点 |
| ------- | ---- | ---- | ---- | ------- | ----- |
| 0 | ✅ | ✅ | ✅ | PA0 | ADIN1 |
| 1 | ✅ | ✅ | ✅ | PA1 | ADIN2 |
| 2 | ✅ | ✅ | ✅ | PA2 | ADIN3 |
| 3 | ✅ | ✅ | ✅ | PA3 | ADIN4 |
| 4 | ✅ | ✅ | ❌ | PA4 | ADIN5 |
| 5 | ✅ | ✅ | ❌ | PA5 | ADIN6 |
| 6 | ✅ | ✅ | ❌ | PA6 | ADIN7 |
| 7 | ✅ | ✅ | ❌ | PA7 | ADIN8 |
| 8 | ✅ | ✅ | ❌ | PB0 | |
| 9 | ✅ | ✅ | ❌ | PB1 | |
### UART 引脚使用
| UART编号 | STM32 UART | TX | RX |
| -------- | ---------- | ---- | ---- |
| ST_UART0 | USART1 | PA9 | PA10 |
| ST_UART1 | USART2 | PD5 | PD6 |
| ST_UART2 | USART3 | PB10 | PB11 |
| ST_UART3 | USART4 | PC10 | PC11 |
| ST_UART4 | USART5 | PC12 | PD2 |
### SPI 引脚使用
| UART编号 | STM32 UART | SCK | MISO | MOSI |
| ------ | ---------- | ---- | ---- | ---- |
| GD | SPI1 | PB3 | PB4 | PB5 |
| CH395F | SPI2 | PB13 | PB14 | PB15 |
| | | | | |
### IIC 引脚使用
| IIC 编号 | STM32 I2C | SCK | MISO | MOSI |
| ------ | --------- | --- | ---- | ---- |
| SD | SPI1 | PB3 | PB4 | PB5 |
| | | | | |
| | | | | |
| | | | | |
## 启动模式设置Flash 启动)
BOOT0 和 (PB2/BOOT1) 用于设置 STM32 的启动方式本项目选用Flash 启动 J-Link 下载程序,因此 BOOT0 直接接地就好了。
| 138 BOOT0 | 48 BOOT1 | 启动模式 | 说明 |
| --------- | -------- | -------- | -------------- |
| 0 | X | Flash 启动 | 程序正常从 flash 运行 |
| 1 | 0 | 系统存储器 | 用于串口下载代码 |
| 1 | 1 | SRAM 启动 | 用于在SRAM中调试代码 |