Files
vd-analysis/models/M1H/analysis.md
T
wangfq 1e71ece576 docs(vd-analysis): 四型号补时序/速率/周期速查 + 对比总表时序行
用户反馈: 分析需量化时序/速率/周期, 光有窗口数没有更新周期等于没量化。

每型号新增 §5.1 时序速查:
- 测量节拍 (CAPVD 更新) = BASE/捕获时钟: M1H 32.8ms / PD132L 27.3ms /
  PD132T 43.7ms (12MHz 假设, 待现场验证)
- 基线更新周期 = 窗口×节拍: 3.28s / 2.73s / 4.37s
- IIR τ = 节拍×256/ALFA: 106ms / 88ms / 142ms
- TLD-110 门控 32.8ms/61.7ms, QT 一次性学习无滑动平均 (静态原理)

对比总表加 5 行时序维度; 标注 12MHz 推导假设
2026-08-27 18:10:37 +08:00

4.9 KiB
Raw Blame History

M1H 车检器分析

型号: M1H | 固件: V1.00 | 日期: 2008-12-02 | 平台: STC12C52028051 内核, Keil C51 原始代码: vd_detector/reference/M1H code/M1H.c 379 行 + STARTUP.A51 血缘:DLD154V4B 的直接祖先——灵敏度表 {216,108,36,10}、SENS=3-(sw&0x03)、ALFA_CAP1=79 与 V4B 完全同源。

1. 平台与工程

MCU STC12C52028051 内核,1T
工具链 Keil C51.lnp/.M51/STARTUP.A51
时钟 AUXR=0xC0(内部时钟相关)
看门狗 WDT_CONTR0x3C → ~1.05s);复位 ISP_CONTR=0x20ISP 软复位)
通信

2. 硬件资源

引脚 功能
PCA CEX0 线圈捕获(CCAPM0=0x31 下降沿 + 中断)
P1.7 / P1.6 SOLA / SOLB 双继电器
P3.4 / P3.3 LED_GREEN / LED_RED
P1.0 / P1.1 SENS0 / SENS1 灵敏度拨码
P1.2 HOLD 有限存在拨码
P1.5 RELAY/PLUS 脉冲模式拨码
P3.1 DLY 延时拨码(TXD 复用)

3. 检测算法

3.1 频率测量

  • PCA 捕获(CCAPM0 下降沿→下降沿测周期);Timer0 8bit 自动重装 253 作 PCA 时钟源(CMOD=0x04
  • 每周期得 Xn;归一化 LPCNT = 32768/XnBASE=2^15),累加 LPCNT 个周期得 CAPVD≈32768

3.2 滤波

  • IIRFlt_Reg = ALFA_CAP1(79) 固定ALFA_CAP2=64 定义了但 main 恒用 79,无增强滤波开关)
  • Δ×Flt_Reg>>8 双向

3.3 基线

  • 无车 100 次滑动平均:ORG_CNT==100 → Origin = ORG_SUM/100
  • 有车也跟踪VD1_TASK 里 ORG 更新在 !VD_FLAG 分支,但注意 M1H 的 !VD_FLAG 分支是"无车"——与 PD132 一致)

3.4 进入/离开

  • 进入:CAPVD < Origin dlt_ORGdlt = Origin×SensTable[SensLevel]>>16
  • 离开:CAPVD > Origin dlt_ORGdlt = Origin×SensTable1[SensLevel]>>16始终用当前档,无"固定最高档"逻辑)

3.5 灵敏度表(DLD154V4B 同源)

SensTable[4]  = {216, 108, 36, 10}   // 进入 (Δf/f: 0.33%…0.015%)
SensTable1[4] = {108,  72, 18,  9}   // 离开(滞回)
  • SENS = 3-(swok&0x03):拨码反码——00→3(最高)11→0(最低)
  • 与 DLD154V4B 的 SENS = 3-(sw&0x03)SensTable {216,108,36,10} 逐字一致

3.6 状态机/时序

  • Timer1 5ms tick → 50ms 主节拍(TM1cnt>10
  • 进入:FLAG_IN → INCNT > IN_DELAY(10=500ms) → 结束
  • 离开:FLAG_OUT → SET_DLY ? 立即转 PLUSE : OUTCNT > OUT_DELAY(38=1.9s) → FLAG_PLUSE
  • 脉冲:PLUSECNT > PLUSE_DELAY(19=950ms)
  • 有限存在:HOLD_TIME=5×1100=5500 tick=275s → ISP 复位
  • 继电器:SOLA = VD_FLAG|FLAG_OUT(存在);SOLB = SET_PLUS ? (VD_FLAG|FLAG_OUT) : FLAG_PLUSE

4. 拨码与配置

开关 含义
swok bit7 (P3.1/TXD) SET_DLY 离开延时开关(ON=立即脉冲,OFF=1.9s 延时)
swok bit5 (P1.5) SET_PLUS 脉冲输出模式
swok bit2 (P1.2) SET_HOLD 有限存在
swok bit0-1 SENS0/1 灵敏度(反码 3-(sw&0x03)

去抖:连续 6 次一致(swcnt>5)生效;上电 LED_GREEN 闪 8 次×500ms

5. 参数速查表

参数
归一化基数 32768 (2^15)
IIR 系数 79(固定)
基线窗口 100
灵敏度表 {216,108,36,10} / {108,72,18,9}
tick 5ms → 50ms
进入延时 500ms (IN_DELAY=10)
离开延时 0 / 1.9s (SET_DLY/OUT_DELAY=38)
脉冲宽 950ms (PLUSE_DELAY=19)
有限存在 275s (HOLD_TIME=5500)
看门狗 WDT_CONTR 1.05s + ISP_CONTR

5.1 时序/速率/周期速查(2026-08-27 补)

推导假设晶振 12MHzSTC12C5202 12T 兼容模式),待现场验证;公式:测量节拍 = BASE/捕获时钟。

公式/值 数值
捕获时钟 Timer0(253) 溢出/4 = 12M/3/4 1.0 MHz
测量节拍CAPVD 更新) 32768 / 1.0MHz 32.8 ms
基线更新周期 100 窗 × 32.8ms 3.28 s
IIR 时间常数 τ 32.8ms × 256/79 106 ms
进入响应 1 个测量节拍(无确认机制) ~33 ms
离开响应 1 节拍 + OUT_DELAY 0 / ~1.9 s
上电稳定 LED 闪 8 次×500ms + QT 学习 ~4 s

6. 与 DLD154V4B 的血缘关系

特征 M1H DLD154V4B
灵敏度表 {216,108,36,10}/{108,72,18,9} V2.8 起 SENS=3 改 20/14
灵敏度映射 SENS=3-(sw&0x03)
IIR ALFA_CAP1=79 @10ms τ≈32ms
基线 100 次平均(有车也跟踪) 500 窗(有车冻结)
进入确认 无(单次越线) 3 次确认
斜率限幅 5%
平台 STC12C5202 (8051, ~12MHz) AT32F421 (M4, 120MHz)
归一化 32768 131072 (2^17)

M1H 是整个 DLD 产品线算法血统的源头:V4B 保留了灵敏度表/映射/IIR 系数,M4 优化(更快 tick、确认机制、斜率限幅)是 8051 时代做不到的增量。