- docs/img/family-overview.{svg,png}(tools/plot_family_overview.py)
面板A 窗长/τ 条形;面板B 检测延迟 vs Δf/f(六型号按各自档0 判据);
归一化延迟表(@1.1× / @2× / @10× 判据)+ 进入确认与口径脚注
关键:@10×(强信号) 全部=1 窗 ⇒ 8.2/8.7/10.0/10.9/21.9/27.3ms;@1.1×(近阈值) 7~9 窗 ⇒ M1H 57ms ~ PD136HA 197ms
- docs/img/sens-alignment-pd132t-pd136ha.{svg,png}(tools/plot_sens_alignment.py)
四档 进入/离开 双段条形 + 同档偏差(−46%~+69%) + 最近档映射 + 换型 4 步 + 两端档无对应警示
- 待实测清单新增 ⑧ 弱信号复测(0.10% 车:PD132T 档1 ≈76ms 应检出 / PD136HA 档1 应检不到)
- 文档接入:cross-model-comparison.md 新增「六型号总览图」节;comparison §5.4 嵌入对齐图;measurement doc §10 加指引
- README tools 段补 3 个绘图脚本;表格校验 0 异常(16 文件)
117 lines
14 KiB
Markdown
117 lines
14 KiB
Markdown
# 跨型号参数对比总表
|
||
|
||
各型号参考代码的核心参数横向对比。**数值量纲以各型号归一化基数为准,横向比较必须先换算口径**(Δ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 80C51,8KB/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 MHz(12M/10,PSC=9) | **3 MHz**(12M/4 ✅官方手册直证) | **1.5 MHz**(PCLK0/8) | 120 MHz(IP 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}**(方案B,V4.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%**(方案B;PD132T 对齐表 0.46%~0.032% 为备选) | **0.165%~0.021%** |
|
||
| 进入确认 | **有:`IN_DELAY=10`**(≈0.6s) | 无 | 无(无 `IN_DELAY` 判定,进入脉冲立即;仅脉冲定时用 `OUTCNT`) | 无(单次,去抖已注释) | **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 | 50ms(5ms×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** |
|
||
|
||
> ⚠ **测量节拍是区间,不是定值**(2026-09-11 补):`LPCNT = ⌊BASE/Xn₀⌋` 是**整数除法且学习后冻结**,窗长 = `⌊BASE/Xn₀⌋·Xn₁` 个 tick ⇒ **上表中"测量节拍 / 基线更新周期 / IIR 时间常数"三行数值均为标称上限**。站点实际值 = 标称 × `(BASE−r₀)/BASE` × `f₀/f_now`(`r₀ = BASE mod Xn₀`):100kHz 站点 **−0.39%**、60kHz 站点 **−2.34%**、带内最差 **−6.2%**(Xn₀=2049);深占压(Δf/f +5%,频率升高)窗长再 **−4.8%**。**Δf/f 口径不受影响**(`Value/Origin = Xn₁/Xn₀` 精确,余数完全约掉)。公式/数值表/位宽约束(`INT8U LPCNT` ⇒ 需 `Xn>129`)见 [measurement-window-quantization.md](measurement-window-quantization.md)。
|
||
>
|
||
> 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)`;**PD132T:MA801 官方手册直证**(`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 前身 M1H(8.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%(方案B,V4.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。
|
||
|
||
## 六型号总览图(窗长 / τ / 检测延迟,2026-09-11 新增)
|
||
|
||

|
||
|
||
(矢量版 `docs/img/family-overview.svg`;生成脚本 `tools/plot_family_overview.py`,型号参数内置、改数即重出。图中延迟为「判据越线」口径,不含输出级 50ms 节拍与进入确认——确认时间见面板脚注)
|
||
|
||
**说明**:面板 A 的条形与面板 B 的曲线全部按本文口径计算(窗长 = `⌊BASE/Xn⌋·Xn/f_cap` 标称值;τ = 节拍×256/α;延迟由 `CAPVD_n = Δf/f·[1−(1−α/256)^n]` 反解 `n`)。**归一化(按各自档0 判据的 1.1×/2×/10× 倍数)后,六型号的差异只剩「窗长 × τ」两件事**:@10×(强信号)全部 = 1 窗 ⇒ 10.9 / 21.9 / 27.3 / 8.2 / 8.7 / 10.0 ms;@1.1×(近阈值)= 7~9 窗 ⇒ PD136HA 196.7ms 与 PD132L 191.2ms 最慢、M1H 57.3ms 与 DLD154Pro 61.2ms 最快。
|
||
|
||
## 测频路线(周期累积法为统一范式)
|
||
|
||
纳入对比表的型号(M1H / PD132L / PD132T / PD136HA / DLD154V4B / DLD154Pro)**全部采用周期累积法**:
|
||
|
||
```
|
||
累加固定数量周期(周期域,LPCNT=⌊BASE/Xn₀⌋,**学习后冻结**)
|
||
⇒ 窗长 = LPCNT·Xn₁ 个 tick(≤ BASE tick,**按站点线圈频率浮动 0 ~ −6.2%**,深占压再 +5%)
|
||
⇒ 但比值口径精确:Value/Origin = Xn₁/Xn₀(floor 余数约掉)
|
||
```
|
||
|
||
> 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**(判据常数 C:PD132T/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 下降沿)说明,如需可再源码复核
|
||
- [ ] ⚠ **PD136HA 恢复/替代频率窗口检查**:其 `// if(Xn>400 && Xn<2030)` 被注释 ⇒ 8 位 `LPCNT` 失去保护(`Xn<129` 时截断 ⇒ 异常线圈可能报"堵车"而非"故障"),且丢失"线圈异常 → 故障"路径。见 `measurement-window-quantization.md` §5
|