From 163b933715d96e2849d7f04dd5b36d983fcf4b57 Mon Sep 17 00:00:00 2001
From: Wanderingss <1624155937@qq.com>
Date: Fri, 6 Nov 2026 17:41:11 +0800
Subject: [PATCH] =?UTF-8?q?docs:=20=E6=95=B0=E6=8D=AE=E5=8F=AF=E4=BF=A1?=
=?UTF-8?q?=E4=B8=8E=20ADC=20=E9=80=9A=E9=81=93=E6=98=A0=E5=B0=84=E5=8F=AA?=
=?UTF-8?q?=E7=95=99=E7=8E=B0=E7=8A=B6=EF=BC=8C=E6=B8=85=E5=8E=86=E5=8F=B2?=
=?UTF-8?q?=E4=B8=8E=E6=82=AC=E7=A9=BA=E5=BC=95=E7=94=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
数据可信.md 与 ADC通道映射说明.md 按「只写现状」口径重写:
删历史沿革、推理过程与已删小节的残留指针,保留现行判据。
- 数据可信:§2.7 删「当时的证据」六行表;§4.6.1 标题改「范围与
幅度上限」、四行改现状陈述;§4.6.2 删轮次名历史映射注;§4.6.3
段文件行去过程语;删节尾孤立排程段;§4.4 负零点段收成现状结论。
- 数据可信:把「系数合法带」从已删的 §8 风险表搬回 §4.1(代码头注释
仍指向它,属搬回不是新发明)。
- 数据可信:行号纠错 adc_task.c:382 -> :425、protect_task.c:245 ->
:268,逐个 grep 核对。
- 跨文档与代码:12 处指向已删 §4.6.4/§4.6.5/§8/§9/§10 的悬空引用改到
现存小节或内联结论,涉 6 处 App 源文件头注释与 6 篇文档。
- 两个 SVG 生成器文案同步重跑,产物同笔提交。
check_doc_links --all 通过(221 篇);pre-commit 全绿。
---
App/algo/README.md | 6 +-
App/algo/adc_cal.c | 2 +-
App/algo/adc_cal.h | 4 +-
App/protocol/iec104/iec104_pts.c | 8 +-
App/protocol/iec104/iec104_pts.h | 2 +-
App/task/adc_task.c | 2 +-
docs/images/ADC直流标定与交流验证.svg | 29 +--
docs/images/数据可信台阶.svg | 17 +-
docs/任务规划/README.md | 2 +-
docs/任务规划/数据可信.md | 245 +++++-------------
docs/内存管理/RAM使用分析与优化方案.md | 4 +-
docs/内存管理/RAM预算台账.md | 2 +-
docs/子系统设计/IEC104上行设计说明.md | 3 +-
docs/子系统设计/故障录波设计说明.md | 4 +-
docs/测试说明/专项验证/ADC前端注入验证流程.md | 8 +-
docs/硬件平台/ADC通道映射说明.md | 175 ++++---------
.../arch_diagram/gen_data_trust_dc_ac_svg.py | 25 +-
.../arch_diagram/gen_data_trust_ladder_svg.py | 18 +-
18 files changed, 181 insertions(+), 375 deletions(-)
diff --git a/App/algo/README.md b/App/algo/README.md
index 06efd851..44f11b6b 100644
--- a/App/algo/README.md
+++ b/App/algo/README.md
@@ -108,7 +108,7 @@ ADC 引脚电压 V)+ `adc_health_rail_watch()` ×9(「采样通道自检」
V0.2 改版与本目录 `adc_input` 映射表同步改。
- 三态可用性 `adc_cal_flags()`:VALID(已按变比标定,二次值成立——端子变比确认与两点标定前恒 0)
/ CLIPPED(运行期按来源派生,V0.2 后自动清零)。**消费者判「能不能信」只许查它**,
- `adc_cal_apply()` 不返回可用性(「数据可信」§8 风险表)。
+ `adc_cal_apply()` 不返回可用性(「数据可信」§4.2 三态可用性表)。
- 合法带哨兵:k ∉ ROM×[0.5,2.0] 或 |b| > 8192 → 折算回退 ROM + 每通道每开机一条
`[ERR]` + VALID 被压制(**即便文件位图说已标定**);这层兜底同时挡坏文件与坏标定。
- `adc_cal_set()` / `adc_cal_two_point()`:整定与两点公式的算术核已齐备(单测还原合成
@@ -118,8 +118,8 @@ ADC 引脚电压 V)+ `adc_health_rail_watch()` ×9(「采样通道自检」
### 3.9 `meas.c` / `.h` — 遥测快照发布(全周傅氏相量发布侧,「数据可信」波次)
- **唯一发布者 = adcTask**:`phasor_run()`/`freq_run()` 同拍、200 ms **tick 经过**分频
- 调 `meas_tick()`(非拍计数——idle/skip 拍拉长名义节拍)。docs/任务规划/数据可信.md §8
- 风险表"快照双写"行 = 评审判据:全仓 `meas_tick` 调用点数须为 1;iec104Task /
+ 调 `meas_tick()`(非拍计数——idle/skip 拍拉长名义节拍)。`docs/任务规划/数据可信.md` §4.5
+ 定"唯一发布者 = `adc_task`" = 评审判据:全仓 `meas_tick` 调用点数须为 1;iec104Task /
uiTask 只读。
- 值口径(第二轮「遥测快照发布」的 A-lite 裁决):**基波有效值瞬时透传**,与 phasor 使用区
**同拍同核逐位相等**(单测钉死);**不做** 4 点平均 / 谐波方和根——按
diff --git a/App/algo/adc_cal.c b/App/algo/adc_cal.c
index fdb4e436..f770862b 100644
--- a/App/algo/adc_cal.c
+++ b/App/algo/adc_cal.c
@@ -290,7 +290,7 @@ uint32_t adc_cal_flags(adc_semantic_t sem) {
}
/* CLIPPED 由**来源**派生(R5:STM32 侧单极性无偏置 → 负半周削顶)——
* V0.2 改版(8 路全接 TPAFE,消除双转换器无共同采样触发)后本位自动恒 0,无需改码,
- * 对应「数据可信」§10「页面与 104 绑定零改动」的要求 */
+ * 对应「数据可信」§4.2 三态可用性表「页面与 104 绑定零改动」的要求 */
if (s_rom_k_stm32((unsigned)sem) != 0) {
f |= ADC_CAL_F_CLIPPED;
}
diff --git a/App/algo/adc_cal.h b/App/algo/adc_cal.h
index c5caeb52..278d45db 100644
--- a/App/algo/adc_cal.h
+++ b/App/algo/adc_cal.h
@@ -62,7 +62,7 @@ extern "C" {
#define ADC_CAL_K_Q16_TPAFE (10000000L)
#define ADC_CAL_K_Q16_STM32 (52800000L)
-/* 系数合法带(「数据可信」§8 风险表):k 必须落在板级 ROM 系数的 ×[0.5, 2.0]
+/* 系数合法带(「数据可信」§4.1 尾注):k 必须落在板级 ROM 系数的 ×[0.5, 2.0]
* 区间内;带宽用 ROM 值移位实现(>>1 / <<1),不设独立宏防两处真相 */
/* 零点偏移幅值上限(码值):超此即判文件损坏/异常标定,回退 ROM 并留痕 */
@@ -188,7 +188,7 @@ int adc_cal_set(adc_semantic_t sem, int32_t k_q16, int32_t b_codes);
* v_lo_uv/v_hi_uv - 两点实测电压(µV,v_hi > v_lo,端子/引脚域均可) int32_t
* p_k_q16 / p_b - 输出:系数(Q16)与零点偏移(码值) int32_t *
* 返 回 值:0 - 成功;-1 - 参数/斜率非法;-2 - 零点越 ±ADC_CAL_B_MAX(先查前端,
- * 不得用系数凑错斜率,「数据可信」§8 风险表) int
+ * 不得用系数凑错斜率,「数据可信」§4.1 尾注) int
* 限定条件:无(纯整数运算,主机侧可直接单测)
* 函数说明:k = (v_hi−v_lo)×65536/(c_hi−c_lo)(四舍五入),b = v_lo×65536/k − c_lo;
* 实测注入未做(台架待跑),本函数即「公式齐备」的交付物
diff --git a/App/protocol/iec104/iec104_pts.c b/App/protocol/iec104/iec104_pts.c
index c3e092e7..8b19bca6 100644
--- a/App/protocol/iec104/iec104_pts.c
+++ b/App/protocol/iec104/iec104_pts.c
@@ -61,8 +61,8 @@ typedef struct {
* 频率点不适用"额定百分比"(额定附近 0.5 Hz 与旧值同量级,维持 0.5 并随
* 运行参数段可调)。自 104 改读快照起本表**只作工厂默认载体**:生效死区 =
* App/algo/run_par.c 的 [run_par] 引擎副本(运行参数段真源收编,本层不再存副本);削顶五路不再 sem=-1 绑死,而是绑快照槽、由品质 CLIPPED
- * 驱动线上 IV——V0.2 削顶消失后点位零改动自动启用(docs/任务规划/
- * 数据可信.md §10 的「双转换器无共同采样触发」行)。
+ * 驱动线上 IV——V0.2 削顶消失后点位零改动自动启用(口径见 docs/任务规划/
+ * 数据可信.md §4.2 三态可用性表)。
* ⚠ 过渡期(eng=0 引脚电压域,两点标定完成前):上送值本身非二次值,死区
* 数字按本域偏保守(迟报不漏报);标定落地后复核(「数据可信」§2.3 表
* 第 2 行)。判定 = 死区连续 2 点确认(104 改读快照),见 iec104_pts.h COV 说明。 */
@@ -176,8 +176,8 @@ uint32_t iec104_pts_yc_ioa(uint8_t idx) {
* 入口参数:q16 - 源侧品质(低字节与线上同值;高字节为 MEAS_QDS_CLIPPED 域内位)
* 返 回 值:线上 QDS 字节 uint8_t
* 函数说明:CLIPPED(硬件削顶,104 无对应位)映射为 IV——「削顶通道 104 恒
- * IV」口径(docs/任务规划/数据可信.md §8 风险表「削顶通道被当成可测」
- * 行)改由快照品质驱动,不再靠点表绑死 -1;OV/NT/IV 透传,其余高位丢弃。
+ * IV」口径(docs/任务规划/数据可信.md §4.2 三态可用性表)
+ * 改由快照品质驱动,不再靠点表绑死 -1;OV/NT/IV 透传,其余高位丢弃。
*/
static uint8_t s_q_map(uint16_t q16) {
uint8_t w = (uint8_t)(q16 & (uint16_t)(IEC104_QDS_OV | IEC104_QDS_NT
diff --git a/App/protocol/iec104/iec104_pts.h b/App/protocol/iec104/iec104_pts.h
index 64435fc1..6fe8da91 100644
--- a/App/protocol/iec104/iec104_pts.h
+++ b/App/protocol/iec104/iec104_pts.h
@@ -9,7 +9,7 @@
* 测频与遥测快照(App/algo/meas.h,「数据可信」104 改读快照与频率点绑定):电气 8 路绑快照槽,
* 有效性由快照品质驱动——V0.1 削顶路(docs/算法/继电保护功能复现规划.md
* §1.6)快照置 CLIPPED → 本层映射为线上 IV(V0.2 后自动启用,绑定零
- * 改动,见 docs/任务规划/数据可信.md §10「双转换器无共同采样触发」行);0x401d 绑频率源,
+ * 改动,见 docs/任务规划/数据可信.md §4.2 三态可用性表);0x401d 绑频率源,
* freq_valid()==0 → IV;
* - YX:IOA 1~33(§1.5 表(3));双点 = 开关位置类(YX1~4,本期无硬件 → IV),
* 保护动作类 YX15~23 映射 prot_elm 状态,闭锁类 YX31~33 映射 prot_set;
diff --git a/App/task/adc_task.c b/App/task/adc_task.c
index 49dd80a8..ef0b9c48 100644
--- a/App/task/adc_task.c
+++ b/App/task/adc_task.c
@@ -443,7 +443,7 @@ void adc_task_func(void *arg) {
/* 测频与遥测快照发布(「数据可信」这一项,道D,M5):200 ms tick 经过分频。
* 唯一发布者 = 本任务(全仓 meas_tick 调用点数 = 1 为评审判据,
- * 「数据可信」§8 风险表"快照双写"行);只在**压环成功的真新帧拍**发布
+ * 「数据可信」§4.5 定"唯一发布者 = adc_task");只在**压环成功的真新帧拍**发布
* ——idle/skip 拍压环未推进,发布 = 重复旧窗。品质注入唯一源 =
* adc_cal_flags()(§4.2 三态表;纯读,每 200 ms 才跑一遍)。 */
if ((uint32_t)(now - s_meas_ms) >= MEAS_PERIOD_MS) {
diff --git a/docs/images/ADC直流标定与交流验证.svg b/docs/images/ADC直流标定与交流验证.svg
index 551f8ea4..521bb375 100644
--- a/docs/images/ADC直流标定与交流验证.svg
+++ b/docs/images/ADC直流标定与交流验证.svg
@@ -1,7 +1,7 @@
diff --git a/docs/images/数据可信台阶.svg b/docs/images/数据可信台阶.svg
index 41721214..6e35391f 100644
--- a/docs/images/数据可信台阶.svg
+++ b/docs/images/数据可信台阶.svg
@@ -1,8 +1,8 @@