- 三级降采样链:捕获级(Xn,6.25kHz)→ 窗级(Value/CAPVD,92Hz)→ 基线级(Origin,0.92Hz) - PD132T @100kHz:Xn=480tick=**160µs**(÷32 后信号的半周期 = 16 个线圈周期)/ Value = 68×160µs = **10.880ms** / Origin = 100 窗 = **1.088s** - PD136HA @100kHz:Xn = **320µs**(整周期 = 32 个线圈周期)/ Value = **21.760ms** / Origin = 256 窗 = **5.571s** - τ 换算成"窗"后与型号无关:τ/T = 256/α ⇒ α79 = 3.24 窗、α64 = 4.0 窗 - Origin 是**块平均**(`ORG_SUM/100`;PD136HA `>>8`),非滑动平均 ⇒ 基线跟踪粒度 = 1 个块; 有车期间 ORG_SUM 清零 + ORG_CNT 停止 ⇒ 冻结 + 重新累计 - 上电首个 Origin 只有**单窗样本**(92Hz 单点),需 1.09s / 5.57s 才变块平均 ⇒ 学习/静默期长度的根本依据 - 响应链三段:①窗内平均 ≤1 窗 ②IIR ≈ τ·ln(Δ/(Δ−阈值)) ③输出级 50ms tick(PD132T 进入确认 = 0) - 精化跨型号表 PD132T「进入确认」表述(无 IN_DELAY 判定,而非"已注释");表格校验 0 异常
14 KiB
跨型号参数对比总表
各型号参考代码的核心参数横向对比。数值量纲以各型号归一化基数为准,横向比较必须先换算口径(Δf/f = 表值/65536——阈值代码 Origin×表>>16 的分母;Origin 在 Δf/f 分子分母约掉,与归一化基数无关)。
参与型号
| 型号 | 平台 | 版本 | 文档 |
|---|---|---|---|
| PD132L | STM8S003F3 | V1.09 | models/PD132L/analysis.md |
| PD132T | Megawin MA801(1-T 80C51,8KB/256B;板上标记 MA801AS) | V3.01 | models/PD132T/analysis.md |
| M1H | STC12C5202 (8051) | V1.00 | models/M1H/analysis.md |
| DLD154V4B | AT32F421 (M4) | V4.36.40 | models/DLD154V4B/analysis.md |
| DLD154Pro | CH591R/CH592 (RISC-V) | V3.05 | models/DLD154Pro/analysis.md |
| PD136HA | HC32F003C4 (M0+;⚠ 工程档位仍标 F005C6PA) | V3.14 | 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);深占压(频偏 −5%)再 +5.3%。Δf/f 口径不受影响(Value/Origin = Xn₁/Xn₀精确,余数完全约掉)。公式/数值表/位宽约束(INT8U LPCNT⇒ 需Xn>129)见 measurement-window-quantization.md。IIR 系数 79/64 的量化对比(α/τ/阶跃响应/噪声抑制/单频衰减/模拟验证)见 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 官方手册直证(AUXRb7/b6 = T0X12/T1X12 ⇒ 定时器按 1 个时钟周期计数;CMODCPS1: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 §5.4。
测频路线(周期累积法为统一范式)
纳入对比表的型号(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 代码时要当"平行实现"看,它的差异(量纲/基线/滞回)恰是各家独立取舍。
跨型号通用结论
- 灵敏度表不能照搬数值:必须按各自归一化基数/测量方式换算 Δf/f 后再比较
- 离开阈值语义三派:TLD-110 相邻档滞回 / M1H-PD132 同档滞回表 / PD132 可固定最高档
- 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×) - 拨码编码随硬件重排:组合位 / 直接编码 / 反码(M1H SENS=3-(sw&0x03))各不相同
- M1H 是 DLD 产品线算法血统源头(灵敏度表/映射/IIR 全部继承),分析新 DLD 型号前先读 M1H
- 跨型号对比先算判据常数
C = 32·f_cap/边沿系数:可立刻判定两型号是否覆盖同一线圈频段(本轮据此查明 PD132T/PD136HA 窗口常量近乎相同的真正原因);捕获沿必须实测/查源码确认,不能从窗口常量反猜 - 异常策略差异常大于灵敏度差异: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