3762c03bb4
新增(均已通过主机侧单测与构建,**台架存在未定位的间歇性回归,见下**): - App/algo/sample_ring.c/h:按语义通道的采样环缓冲(2 周波 = 40 点), 整帧压入 + 帧计数,供 L2 按窗取数。 - App/algo/phasor.c/h:全周傅氏相量层,覆盖规划 §3.2 的 L2-1/2/3/6/7—— 系数表按 docs/算法/傅氏算法详解.md §2.3 预乘 √2/N(fAmSQ 直接即有效值); 5 个数据驱动实例(IA/UA/UN 基波 + IA 二/五次谐波);暴力滑动窗; 计算区/使用区双区原子切换。 - test/host/phasor/:主机侧单测(52/52 PASSED,无需桩)——系数表逐项复核、 幅值/有效值/相位、直流与谐波抑制、任意次谐波提取、频率敏感性(±2Hz≤3%)、 环缓冲时序与回绕、实例层与双区交换。 - 集成:adc_task 每拍压帧 + 重算(v2.4);app_main 调 phasor_init(); Keil 工程挂 phasor.c/sample_ring.c(App/algo 已在 IncludePath)。 验证: - 主机单测 52/52 PASSED。 - @build 0 错误 0 警告;内存快照已刷新(RW_IRAM1 89,320→90,936 B)。 - 台架:L2 链路数据正常(ring=10001、skip=0、回读一致、相量日志可见), 但 10 次运行中 3 次出现 UI 任务看门狗停喂(mask=0x67 缺 TASK_WD_UI) → IWDG 复位;改动前基线 6 次运行 0 次。属**未定位的间歇性回归**。 未完成:定位并修复该间歇性复位;L2 文档状态与登记簿条目尚未按结论更新。
App/algo/ — 采集与算法层(L1 / L2)
自研代码,属
docs/算法/继电保护功能复现规划.md§2.1 分层中的 L1(采集与预处理) 与 L2(相量计算,拟)。原则:算法与 I/O 分离——本层不碰寄存器、不碰任务调度, 只做"数"(码值 → 工程量)与"相量"(工程量 → 复相量),从而可成为主机侧单元测试 (L0.5)的天然适格对象(落实登记簿 A-4)。
现有模块
| 文件 | 层 | 职责 |
|---|---|---|
adc_input.c/h |
L1 | ADC 输入层:① 语义通道映射(L1-4)——UA/UB/UC/UN/IA/IB/IC/IN/温度 → 物理通道,消费侧按语义取数、不写死下标;② STM32 ADC1 9 通道软件触发顺序扫描(L1-3);③ TPAFE5160 原子快照消费 |
关键约定
- 语义映射的唯一权威口径是
docs/硬件平台/ADC通道映射说明.md(V0.1 有 13/17 路被置换, 网名编号 ≠ 通道号)。V0.1 上 8 路电气量分属两片转换器(硬件缺陷 N-18):UA/UN/IA在 TPAFE5160、UB/UC/IB/IC/IN在 STM32 ADC1。V0.2 改版只改映射表内容,本层 API 与上层语义不动。 - 取数一律经
adc_input_raw()(按语义),禁止在消费侧直接索引驱动缓冲或写死下标。 - 本层不做跨转换器的相位 / 功率 / 功率因数 / 矢量类运算(V0.1 硬件缺陷 N-18 限制)。
相关文档
- 通道映射权威口径:
docs/硬件平台/ADC通道映射说明.md - 分层与路线图:
docs/算法/继电保护功能复现规划.md(§2.1 分层、§3.1 L1 清单) - 采样节拍:
docs/子系统设计/ADC采样节拍设计说明.md