用户反馈: 分析需量化时序/速率/周期, 光有窗口数没有更新周期等于没量化。 每型号新增 §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 推导假设
124 lines
4.9 KiB
Markdown
124 lines
4.9 KiB
Markdown
# M1H 车检器分析
|
||
|
||
> 型号: M1H | 固件: V1.00 | 日期: 2008-12-02 | 平台: **STC12C5202**(8051 内核, 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 | STC12C5202(8051 内核,1T) |
|
||
| 工具链 | Keil C51(`.lnp`/`.M51`/`STARTUP.A51`) |
|
||
| 时钟 | `AUXR=0xC0`(内部时钟相关) |
|
||
| 看门狗 | **WDT_CONTR**(0x3C → ~1.05s);复位 `ISP_CONTR=0x20`(ISP 软复位) |
|
||
| 通信 | 无 |
|
||
|
||
## 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/Xn`(**BASE=2^15**),累加 LPCNT 个周期得 CAPVD≈32768
|
||
|
||
### 3.2 滤波
|
||
|
||
- IIR:`Flt_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_ORG`,`dlt = Origin×SensTable[SensLevel]>>16`
|
||
- 离开:`CAPVD > Origin − dlt_ORG`,`dlt = 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 补)
|
||
|
||
> 推导假设晶振 12MHz(STC12C5202 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 时代做不到的增量。
|