## 总结架构设计 ![系统架构.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#模式一:标准%20SPI(Single%20SPI,1%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中调试代码 |