Files
LLMWiki/raw/DTU/硬件设计.md
2026-06-03 21:55:02 +08:00

145 lines
8.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
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.
## 总结架构设计
![系统架构.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中调试代码 |