Files
vd-analysis/models/PD132T/analysis.md
T

108 lines
5.3 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.
# PD132T 车检器分析
> 型号: PD132T | 固件: V3.01 | 日期: 2021-06-23 | 平台: **MA801AS**8051 内核, Keil C51
> 原始代码: `vd_detector/reference/PD132T_V3.01-20210623/`USER/main.c 458 行)
> 说明: 文件头明确"**实现与 PD132L_V1.09 一样的功能**"——PD132L 的 8051 移植版,核心算法逐行对应。
## 1. 平台与工程
| 项 | 值 |
|----|-----|
| MCU | MA801AS(泉州,8051 内核) |
| 工具链 | Keil C51`.uvproj`,含 `STARTUP.A51` |
| 时钟 | `AUXR=0xC0`(内部时钟相关);Timer0 8bit 自动重装 252 给 PCA 提供时钟(÷4) |
| 看门狗 | **WDTCR**0x3C → ~1.05s);复位用 `ISPCR=0x20`ISP 软复位) |
| 调试 | 无 UART |
## 2. 硬件资源
| 引脚 | 功能 |
|------|------|
| PCA CEX1 | 线圈捕获(CCAPM1 下降沿 + 中断) |
| P1.6 | SOLA 继电器 A(脉冲/存在输出) |
| P1.7 | SOLB 继电器 B(存在输出) |
| P3.3 | LED_DET 检测指示灯 |
| P3.2 | LED_PWR 电源指示灯(**PD132L 没有** |
| P1.0 / P1.1 | SENS0 / SENS1 灵敏度拨码(**直接编码 0~3**) |
| P1.2 | SENUP 自动/手动离开阈值(≈L 的 SET_ASB |
| P1.3 | FLT 增强滤波 |
| P1.4 | PLUS 脉冲模式 |
| P1.5 | HOLD 有限存在 |
## 3. 检测算法(与 PD132L 对应)
### 3.1 频率测量
- PCA 捕获(CCAPM1=0x31 下降沿捕获 + 中断);Timer0 8bit 自动重装 252 作 PCA 时钟源(CMOD=0x04
- 每周期得 `Xn`;有效性窗口 **406 < Xn < 2050**(≈ PD132L 的 1.27 倍,捕获时钟不同)
- 归一化:`LPCNT = 32768 / Xn`,累加得 CAPVD ≈ 32768
### 3.2 滤波
- IIR`Flt_Reg = ALFA_CAP1(79)`FLT 开)/ `ALFA_CAP2(64)`(关),`Δ×Flt_Reg>>8` 双向
### 3.3 基线 / 3.4 进入离开 / 3.5 灵敏度表
- 与 PD132L **完全一致**100 次平均基线、`CAPVD < Origindlt` 进入、`> Origindlt` 离开(SET_ASB 语义同)、
`SensTable {300,60,32,21} / SensTable1 {60,32,21,14}` 相同
-**拨码低有效(电路反相,标贴与电平相反)**:标贴 ON → 电平 0;标贴 OFF → 电平 1(2026-08-28 用户确认)。
-**离开阈值受 SET_ASBSENUP)控制,看标贴位置**:标贴 **ON**(电平0, SET_ASB=0)→ 强制 `SensTable1[3]` = **恒 14**0.021% Δf/f);标贴 **OFF**(电平1, SET_ASB=1)→ 分档 `SensTable1[SensLevel] {60,32,21,14}`。**出厂默认标贴全 OFF = 分档**——DLD154V4B 替换对齐基准取决于现场 SENUP 标贴位置(V2.11
### 3.6 状态机/时序
- Timer1 5ms tick → 50ms 主节拍(TM1cnt≥10),脉冲 500ms、有限存在 HOLD_TIME=6000300s
- 有限存在超时 → `ISPCR=0x20` 软复位(对应 L 的 WWDG 复位)
- 线圈断开 → 继电器全断 + LED 快闪 6 次
## 4. 拨码与配置
| 位 | 开关 | 标贴 ON(电平0) | 标贴 OFF(电平1) |
|----|------|-----------------|-----------------|
| swok bit0-1 (P1.0-1) | SENS0/1 | 灵敏度档位 = 电平值(直接编码 0~3;标贴全 ON=0 低灵敏,全 OFF=3 高灵敏) | 同左 |
| swok bit2 (P1.2) | SENUP | 离开**恒 14**else | 离开**分档** {60,32,21,14}if |
| swok bit3 (P1.3) | FLT | **Flt_Reg=64**(慢/平滑=增强滤波开) | **Flt_Reg=79**(快) |
| swok bit4 (P1.4) | PLUS | 离开脉冲(else | 进入脉冲(if) |
| swok bit5 (P1.5) | HOLD | 无 HOLDelse | **HOLD 300s**if |
> ⚠ 拨码**低有效**(标贴 ON = 电平 0 = 位 0)。代码 `if(SET_X)` 为真(位=1)对应**标贴 OFF**;标贴 ON 走 else 分支。2026-08-28 用户确认,与电路一致。
去抖:连续 6 次一致生效;灵敏度变化 → `ISPCR=0x20` 复位
## 5. 参数速查表
| 参数 | 值 | 对比 PD132L |
|------|-----|------------|
| 归一化基数 | 32768 | 相同 |
| Xn 有效窗口 | 406 ~ 2050 | ≈1.27× |
| IIR 系数 | 79 / 64 | 相同 |
| 基线窗口 | 100 | 相同 |
| 灵敏度表 | {300,60,32,21}/{60,32,21,14} | 相同 |
| tick | 5ms → 50ms | 相同 |
| 脉冲宽 | 500ms | 相同 |
| 有限存在 | 300s | 相同 |
| 看门狗 | WDTCR 1.05s | L=IWDG 1.02s+WWDG |
| 上电延时 | 750ms | L=800ms |
## 5.1 时序/速率/周期速查(2026-08-27 补)
> 推导假设系统时钟 12MHz(MA801 内部,**待现场验证**);公式:测量节拍 = BASE/捕获时钟。
| 量 | 公式/值 | 数值 | 对比 PD132L |
|----|---------|------|------------|
| 捕获时钟 | Timer0(252) 溢出/4 = 12M/4/4 | **0.75 MHz** | L=1.2MHz |
| **测量节拍**CAPVD 更新) | 32768 / 0.75MHz | **43.7 ms** | L=27.3ms(慢 1.6×) |
| **基线更新周期** | 100 窗 × 43.7ms | **4.37 s** | L=2.73s |
| IIR 时间常数 τ | 43.7ms × 256/79 | **142 ms** | L=88ms |
| 进入响应 | 1 个测量节拍 | ~44 ms | L=27ms |
| 离开响应 | 1 节拍 + 脉冲 | ~44 ms + 500ms | 同结构 |
| 上电稳定 | delay_5ms(750) + LPCNT 学习 | ~1 s | 同 |
## 6. 与 PD132L 的差异要点
1. 平台:STM8S003F3 → MA801AS8051),TIM1 捕获 → PCA 捕获
2. **Xn 窗口 406/320=1.27、2050/1620=1.27**:捕获时钟比例,频率范围设计一致
3. 拨码:灵敏度 8 位组合(SA1/SA2)→ 6 位直接编码(P1.0-1);无 SW0
4. LED:单 LED → 双 LED+LED_PWR
5. 看门狗/复位:IWDG+WWDG 写序列 → WDTCR + ISPCR=0x20
6. 无 UART、无 IN_DELAY/OUT_DELAY 宏(L 定义但逻辑注释)