Files
vd-analysis/docs/cross-model-comparison.md
T
wangfq 0c05726699 docs(cross-model): 总表审计复核 —— M1H 捕获时钟勘误(1.0MHz→4MHz/8.19ms)+ 新增捕获沿/捕获时钟/判据常数三行
- 新增 3 行(关键):**捕获沿 / 周期口径** · **捕获时钟 f_cap** · **判据常数 C = 32·f_cap/边沿系数**
-  判据常数揭示:PD132T(3MHz 双沿)与 PD136HA(1.5MHz 单沿)的 C 同为 4.8×10⁷
  ⇒ 两者覆盖同一线圈频段 23.4~118kHz;PD132L(1.2MHz 单沿)C=3.84×10⁷ ⇒ 窗口 0.8× 自洽
- ⚠ M1H 勘误(同类错误):原 1.0MHz/32.8ms 沿用了与 PD132T 同源、**已被 MA801 官方手册证伪**的
  「T0 走 SYSCLK/4」捷径 ⇒ 正确 = **4MHz / 8.19ms**(基线 0.82s、τ 22~27ms、主节拍 60ms)
  三条自洽反证:① AUXR=0xC0 无其他解释 ② HOLD 5500×60ms=330s(≈PD132T 300s;12T 读法 66min 不合理)
  ③ IN_DELAY=10 ≈0.6s 进入确认(12T 读法 7.2s 不合理)。**仍待 STC12C5202 手册 AUXR 位定义落锤**(已入「待补证」)
- ⚠ M1H 记录纠错:「进入确认 无」有误 —— 代码有 `IN_DELAY=10` / `OUT_DELAY=38`(≈0.6s / 2.28s,SET_DLY 可跳过)
- 其他更新:PD136HA 21.8→21.85ms、基线 +LC_HOLD 240s 重学、PD132T 双系数 τ 35.4/43.7ms、SENUP 离开阈值特例、
  PD132T tick 升级为官方手册直证、同源行补「PD132T↔PD136HA 前端同构(÷32)」、
  结论#3 改为按 `f_cap/边沿系数` 缩放、新增结论 #6(先算判据常数)/#7(异常策略差异)
- 同步修订 models/M1H/analysis.md(数值 + 时间常量 + 前后矛盾两处)
- 表格校验 0 异常(14 文件)
2026-09-11 09:13:44 +08:00

104 lines
12 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.
# 跨型号参数对比总表
各型号参考代码的核心参数横向对比。**数值量纲以各型号归一化基数为准,横向比较必须先换算口径**(Δf/f = **表值/65536**——阈值代码 `Origin×表>>16` 的分母;Origin 在 Δf/f 分子分母约掉,**与归一化基数无关**)。
## 参与型号
| 型号 | 平台 | 版本 | 文档 |
|------|------|------|------|
| PD132L | STM8S003F3 | V1.09 | [models/PD132L/analysis.md](../models/PD132L/analysis.md) |
| PD132T | **Megawin MA801**1-T 80C518KB/256B;板上标记 MA801AS | V3.01 | [models/PD132T/analysis.md](../models/PD132T/analysis.md) |
| M1H | STC12C5202 (8051) | V1.00 | [models/M1H/analysis.md](../models/M1H/analysis.md) |
| DLD154V4B | AT32F421 (M4) | **V4.36.40** | [models/DLD154V4B/analysis.md](../models/DLD154V4B/analysis.md) |
| DLD154Pro | CH591R/CH592 (RISC-V) | V3.05 | [models/DLD154Pro/analysis.md](../models/DLD154Pro/analysis.md) |
| PD136HA | **HC32F003C4** (M0+;⚠ 工程档位仍标 F005C6PA) | V3.14 | [models/PD136HA/analysis.md](../models/PD136HA/analysis.md)PD132L 同源移植版) |
> TLD-110 分析见 `models/TLD-110/analysis.md`2006 门控计数法参考,2026-08-27 起**不再纳入对比总表**)。
## 六型号核心参数对比(首版 2026-08-27**2026-09-11 复核更新**
| 维度 | M1H | PD132L | PD132T | PD136HA | DLD154V4B | DLD154Pro |
|------|-----|--------|--------|---------|-----------|-----------|
| 年代 | 2008 | 2020 | 2021 | 2021 | 2026 | 2026 |
| MCU | STC12C5202 | STM8S003F3 | **Megawin MA801**1-T 80C51 | **HC32F003C4** (M0+) | AT32F421 (M4) | CH591R/CH592 (RISC-V) |
| 语言/系统 | C | C | C | C | C + FreeRTOS | C + BLE(TMOS) |
| 通道 | 1 | 1 | 1 | 1 | 1 | 1 |
| 测频方式 | PCA 周期捕获 | TIM1 周期捕获 | PCA 周期捕获 | ADTIM4 周期捕获 | TIM3 周期捕获 | TMR0 下降沿捕获 |
| **捕获沿 / 周期口径** | **双沿**`CCAPM0=0x31` 同 PD132T 结构)⇒ **Xn=半周期** | 下降沿(TIM1_CC3)⇒ 整周期 | **双沿**`CCAPM1=0x31`)⇒ **Xn=半周期** | **单沿**`AdtHwTrigCHxARise`)⇒ 整周期 | 直连振荡,**1 Xn = 1 原始周期** | 下降沿(TMR0)⇒ 整周期 |
| **捕获时钟 f_cap** | **4 MHz**(T0 溢出 12M/3;⚠ 待手册确认) | 1.2 MHz12M/10PSC=9 | **3 MHz**12M/4 ✅官方手册直证) | **1.5 MHz**PCLK0/8 | 120 MHzIP tick 8.33ns | 60 MHz(实测配置) |
| **判据常数 `C=32·f_cap/边沿系数`** | ⚠ 待核(前端分频未取证;若同 ÷32 ⇒ 6.4×10⁷) | 3.84×10⁷ | **4.8×10⁷** | **4.8×10⁷** | N/A(直连:1 Xn = 1 线圈周期) | N/A(同左) |
| 归一化基数 | 32768 | 32768 | 32768 | 32768 | 131072 (2^17) | **524288 (2^19)** |
| 测量窗 | **8.19ms**(⚠ 勘误,待手册确认) | 27.3ms | **10.92ms**(勘误) | 21.85ms | **1.09ms(硬)**/10ms(软) | **8.74ms** |
| IIR 系数 | 79(固定) | 79/64 | 79/64 | 79/64(实际 64 | 79 + 斜率限幅 5% | 79 + 斜率限幅 5% |
| 基线 | 100 平均(有车也跟踪) | 100 平均(有车冻结) | 100 平均(有车冻结) | 256 平均(有车冻结+**LC_HOLD 240s 重学**) | 500 平均+冻结超时/环境重校准/释放后补偿 | **500 平均+冻结超时/稳定性双条件** |
| 灵敏度表 | {216,108,36,10} | {300,60,32,21} | {300,60,32,21} | {162,81,54,28} | **{337,71,38,25}**(方案BV4.06 起) | {108,54,28,14} |
| 离开表 | 同表 | {60,32,21,14} | {60,32,21,14} | {81,54,32,18} | **{51,27,18,12}**(方案B | {81,32,16,12} |
| 阈值换算 | Origin×表/65536 | Origin×表/65536 | Origin×表/65536 | Origin×表/65536 | Origin×表/65536 | Origin×表/65536 |
| 档位 Δf/f | 0.33%~0.015% | **0.46%~0.032%** | **0.46%~0.032%** | 0.247%~0.043% | **0.514%~0.038%**(方案BPD132T 对齐表 0.46%~0.032% 为备选) | **0.165%~0.021%** |
| 进入确认 | **有:`IN_DELAY=10`**(≈0.6s | 无 | 无(IN/OUT_DELAY 已注释,同 PD132L) | 无(单次,去抖已注释) | **3~5 次(按Q档)** | **3 次** |
| 离开判定 | 简单阈值(`SET_DLY` 可跳过确认) | 简单阈值 | 简单阈值(`SENUP` 可固定离开阈值=14) | 简单阈值+脉冲延迟 | **简单滞回 3~5 次防抖 + 低Q 环带超时 2.5s**(平坦性 #if 禁用) | **简单滞回 3 次防抖**(平坦性 #if 禁用) |
| 灵敏度表可配 | 编译期 | 编译期 | 编译期 | 编译期 | 编译期 | **运行时可配(BLE 写 Flash** |
| 时序 tick | **60ms**T1 溢出 5.46ms ×11;⚠ 勘误) | 50ms | 50ms5ms×10 ✅手册直证) | 5ms?×10=50ms(⚠ 待实测) | 检测 10ms + 时序 50ms | **检测 8.74ms + 时序 5ms/50ms** |
| 看门狗 | WDT_CONTR | IWDG+WWDG | WDTCR | WDT 820ms | **IWDT ~1.64s**V2.10 双保险喂狗) | **WWDG 558ms** |
| **测量节拍**CAPVD 更新) | **8.19 ms**(⚠ 勘误) | **27.3 ms** | **10.92 ms**(勘误) | **21.85 ms** | **10 ms** | **8.74 ms** |
| **基线更新周期** | **0.82 s**100 窗;⚠ 勘误) | **2.73 s** | **1.09 s**(勘误) | **5.59 s**256 窗) | **5 s**500 窗) | **4.37 s**500 窗) |
| IIR 时间常数 τ | **22~27 ms**(⚠ 勘误) | 88 ms / 109 ms | **35.4 / 43.7 ms**(α79/α64;精确 29.6 / 38.0 | 87 ms(精确 76.0 | 32 ms | **28 ms** |
> IIR 系数 79/64 的量化对比(α/τ/阶跃响应/噪声抑制/单频衰减/模拟验证)见 [filter-coefficient-79-vs-64.md](filter-coefficient-79-vs-64.md)2026-08-28 新增;**2026-08-31 v2 扩展:时间常数公式详解 + 释放路径影响 + 方案 A 案例**)。
> ⚠ **时序数值来源(2026-09-11 复核)**DLD154Pro 为 60MHz 实测配置(8.74ms);DLD154V4B 为实测/代码确认(10ms tick,τ=32ms);PD132 系(L/T/136HA**全部基于 12MHz 晶振** —— PD136HA:用户确认 + `CLK_INIT()` 直取 XTH + Keil `<Cpu> CLOCK(12000000)`**PD132TMA801 官方手册直证**`AUXR` b7/b6 = T0X12/T1X12 ⇒ 定时器按 1 个时钟周期计数;`CMOD` `CPS1:CPS0=10` ⇒ PCA 时钟 = 定时器 0 溢出);PD132L:代码注释。公式:测量节拍 = BASE / 捕获时钟。
>
> ⚠ **M1H 捕获时钟已勘误为 4 MHz**(原表 1.0MHz/32.8ms 沿用了与 PD132T 同源、**已被官方手册证伪**的"T0 走 SYSCLK/4"捷径):`AUXR=0xC0`(⇒ T0 走 SYSCLK=12MHz+ `TH0=TL0=253`8bit 自动重装,每 **3** 个时钟溢出)⇒ PCA 时钟 = **4MHz** ⇒ 测量窗 **8.19ms**、基线 **0.82s**、τ **22~27ms**、主节拍 = T1 溢出 5.46ms × 11 = **60ms**。三条自洽反证:① `AUXR=0xC0` 的 b7/b6 在 STC 1T 系列即 T0x12|T1x12(该写入无其他解释);② T1 重装 0(65536 计数)⇒ HOLD 5500 tick = **330s**(与 PD132T 的 300s 同设计目标;12T 读法为 66min,不合理);③ `IN_DELAY=10` ⇒ **≈0.6s 进入确认**12T 读法 7.2s,不合理)。**最终以 STC12C5202 手册 `AUXR` 位定义落锤**(见"待补证")。
>
> 归一化基数三代三变(32768→131072→524288):V4B 是参考型号 32768 的 4 倍 ⇒ 测量窗 1.09ms(硬)较 PD132L 27.3ms 快 **25×**、较 PD136HA 快 **20×**、较 M4 前身 M1H8.19ms)快 7.5×(V4.27 修正 120MHz tick 口径)、绝对精度高 4 倍;154Pro 是 V4B 的 4 倍(60MHz 下 8.74ms 软件测量节拍)。
> ⚠ 灵敏度表**数值不可跨型号直接比较**:各型号归一化基数/测量方式不同(32768 基数 ×65536 比例)。统一换算成 Δf/f 后:M1H 最灵敏档 0.015%PD132 0.032%**V4B 0.038%(方案BV4.06 起;PD132T 对齐表 0.032% 保留为备选 `USE_PLANB_TABLE=0`**154Pro 0.021%(⚠ 2026-08-28 修正:PD132 曾误用基数 32768 当分母算成 0.064%,正确分母是代码 `>>16` 的 65536)。
> ⚠ **同族内档位同样不可照搬**PD132T ↔ PD136HA 一一映射偏差 **46%~+69%**(两端档差异最大:PD132T 最钝档 0.458% 无对应档;其最高灵敏档 0.032% 亦比 PD136HA 最高档钝 1/3)。跨代必须按 Δf/f 换算后现场复测,见 [pd132t-vs-pd136ha-comparison.md](pd132t-vs-pd136ha-comparison.md) §5.4。
## 测频路线(周期累积法为统一范式)
纳入对比表的型号(M1H / PD132L / PD132T / PD136HA / DLD154V4B / DLD154Pro**全部采用周期累积法**:
```
累加固定数量周期(周期域,LPCNT=BASE/Xn)→ 受周期抖动影响,LPCNT 自适应归一化
```
> TLD-110(2006,门控计数法)是唯一例外,已移出对比表,见 `models/TLD-110/analysis.md`。
DLD 产品线(154V4B/154Pro/960Loop/110S)继承 M1H 血统,且 154Pro 是 V4B 的直接移植(同源);PD132 系(L/T/136HA)独立同路,其中 PD136HA 是 PD132L 的 HC32 同源移植。
### 同源 / 同路 / 不同路(辨析)
> 参考代码之间有三种关系,**别把"框架相似"当"血统继承"**
| 关系 | 含义 | 例 |
|------|------|-----|
| **同源** | 明确继承/移植关系,细节连续 | M1H → DLD154V4B(灵敏度表/映射/IIR 全继承);**DLD154V4B → DLD154Pro**(文件头明示"算法移植自 V4B TaskLoop V2.0"IIR/斜率限幅/稳定期/500 窗基线/冻结/进入 3 次全继承,但基数重定标 131072→524288、离开降级简单滞回、灵敏度表改运行时可配);PD132L → PD132T(文件头明示"实现与 L 一样");**PD132L → PD136HA**(工程名 PD132L-HD、文件头明示"硬件用 PD132L_V1.02/替换 PD132LA_V1.06"LPCNT/IIR/基线/滞回全继承,但灵敏度表与基线窗口独立改动;**PD132T ↔ PD136HA 前端同构**:同 9015×2 振荡 + CD4060 **÷32(Q5)**,换代只换 MCU |
| **同路不同源** | 独立开发撞出相似算法框架(周期累积+IIR+滑动平均+相对阈值是行业主流范式),但细节各取 | M1H vs PD132:灵敏度表 {216,...} vs {300,...}、基线有车也跟踪 vs 有车冻结、离开始终当前档 vs 可固定最高档 |
| **不同路** | 测频原理根本不同 | TLD-110 门控计数 vs 周期累积(已移出对比表) |
**判断依据**:文件头声明(PD132T 认 PD132L)、灵敏度表数值、基线/离开策略细节。看 PD132 代码时要当"平行实现"看,它的差异(量纲/基线/滞回)恰是各家独立取舍。
## 跨型号通用结论
1. **灵敏度表不能照搬数值**:必须按各自归一化基数/测量方式换算 Δf/f 后再比较
2. **离开阈值语义三派**TLD-110 相邻档滞回 / M1H-PD132 同档滞回表 / PD132 可固定最高档
3. **Xn 窗口按 `f_cap / 边沿系数` 缩放**(不是只按时钟):PD132L(1.2MHz 单沿)→PD132T(3MHz **双沿**) = (3/1.2)/2 = 1.25 ≈ 实测 1.27×;PD132L→PD136HA(1.5MHz 单沿) = 1.25×**PD132L/T/136HA 覆盖同一线圈频段 ≈23.4~118kHz**(判据常数 CPD132T/PD136HA 同为 4.8×10⁷、PD132L 3.84×10⁷ 故窗口 0.8×)
4. **拨码编码随硬件重排**:组合位 / 直接编码 / 反码(M1H SENS=3-(sw&0x03))各不相同
5. M1H 是 DLD 产品线算法血统源头(灵敏度表/映射/IIR 全部继承),分析新 DLD 型号前先读 M1H
6. **跨型号对比先算判据常数** `C = 32·f_cap/边沿系数`:可立刻判定两型号是否覆盖同一线圈频段(本轮据此查明 PD132T/PD136HA 窗口常量近乎相同的真正原因);**捕获沿必须实测/查源码确认**,不能从窗口常量反猜
7. **异常策略差异常大于灵敏度差异**:PD132T「降级维持」(断输出告警、不复位)vs PD136HA「主动自愈」(整机复位 / 240s 重学基线)—— 复位会中断输出,道闸/会车场景必须配控制器侧超时
## 待补型号
- [ ] 其他新参考代码(CH592EVT / CH32V208 等 SDK 类不算车检器型号,不归档)
## 待补证(2026-09-11 审计新增)
- [ ] **M1H 的 `AUXR` 位定义**STC12C5202 手册)—— 为 M1H 捕获时钟 4MHz/8.19ms 落锤。另两种读法(1MHz/32.8ms、333kHz/98.4ms)已被自洽性检验排除,但需手册证据
- [ ] **M1H 前端分频比**(是否同为 9015×2 + CD4060 ÷32)—— 决定其判据常数 C 与线圈频段换算;若同 ÷32 则 C = 6.4×10⁷
- [ ] **PD136HA 的 TIM1 实际 tick**`ARR=0xF159` 与注释「5ms」不自洽,反推 82.4ms)—— 决定其 500ms / 300s / 240s 秒数的授权
- [ ] **PD132T「双沿 ⇒ 半周期」现场确认**(示波器量线圈频率或 P23)—— 确认线圈频段落 23.4~118kHz
- [ ] **PD132L 捕获沿**已由 `models/PD132L/analysis.md`(TIM1_CC3 下降沿)说明,如需可再源码复核