Files
vd-analysis/models/PD132T/analysis.md
T
wangfq 01d574c4a9 docs: MCU 归属更正(PD132T=Megawin MA801 / PD136HA=HC32F003C4)+ 双沿捕获⇒Xn 半周期口径
- 用户口径 + 源码取证:PD132T 用 USER/REG_MA801.H(首行 for Megawin MA801;sbit CEX1=P3^5 ✓ 与图纸 LP→pin9 吻合),
  此前「STC12C2052」系按寄存器地址相似的误判 ⇒ 已更正;3MHz/10.92ms 结论不变
  · CMOD=0x04 作者原注「时钟源为定时器0溢出」+ Megawin 手册 CPS 表(CPS[2:0]=010⇒T0 溢出)两法互证(对 2/3 比特布局分歧免疫)
  · AUXR=0xC0 无 MA801 专册直证,由 T1 0x15A0=60000 计数=5ms 反证定时器输入 12MHz ⇒ 1T 生效
- PD136HA 实际芯片 = HC32F003C4(用户确认,小华 HDSC);工程档位 F005C6PA/startup C6UA 不一致 ⇒ 重编译前须改;
  实测 Code=11148 RO=268 RW=88 ZI=608 ⇒ ROM≈11.1KB / RAM≈696B;Keil <Cpu> CLOCK(12000000) 独立佐证 12MHz
- PD132T CCAPM1=0x31 实为双沿捕获(旧稿「下降沿」有误)⇒ ISR 的 Xn 是半周期 ⇒ 线圈绝对频段重算
  (PD132T ≈23.4~118kHz / PD136HA·PD132L ≈11.8~60kHz);Δf/f 为比值口径 ⇒ 灵敏度结论不受影响
- 同步 6 文件(报告 §2.3 更正块 + §11⑩、前端专项、PD132T/PD136HA 分析稿、跨型号表、README);表格校验 0 异常
2026-09-11 08:42:41 +08:00

114 lines
6.8 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 | 平台: **Megawin MA801**(笙泉科技,8051 内核, Keil C51;板上标记 MA801ASSFR 头 `USER/REG_MA801.H`
> 原始代码: `vd_detector/reference/PD132T_V3.01-20210623/`USER/main.c 458 行)
> 原理图: `models/PD132T/PD132T.A_Ver2.01-20210609_Logic.pdf`(本仓附件,2026-09-01 归档)
> 硬件前端对比: `docs/hardware-loop-frontend-pd132t-vs-v4b.md`CD4060 分频 vs V4B 直连)
> 说明: 文件头明确"**实现与 PD132L_V1.09 一样的功能**"——PD132L 的 8051 移植版,核心算法逐行对应。
## 1. 平台与工程
| 项 | 值 |
|----|-----|
| MCU | **Megawin MA801**(笙泉科技,8051 内核;板上标记 MA801AS。SFR 头 `USER/REG_MA801.H` 首行即 `/* for Megawin MA801 */`;此前文档误记「STC12C2052」,系按寄存器地址相似所致,2026-09-11 用户口径更正) |
| 工具链 | Keil C51`.uvproj`,含 `STARTUP.A51` |
| 时钟 | `AUXR=0xC0`(内部时钟相关);Timer0 8bit 自动重装 252 给 PCA 提供时钟(÷4) |
| 看门狗 | **WDTCR**0x3C → ~1.05s);复位用 `ISPCR=0x20`ISP 软复位) |
| 调试 | 无 UART |
## 2. 硬件资源
| 引脚 | 功能 |
|------|------|
| PCA CEX1 | 线圈捕获(`CCAPM1=0x31` = **CAPP\|CAPN 双沿捕获** + ECCF 中断;`sbit CEX1 = P3^5` ✓ 与图纸 LP→MCU pin9 吻合) |
| 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` = **CAPP+CAPN 双沿捕获** + 中断。⚠ 旧稿写"下降沿"有误);Timer0 8bit 自动重装 252 作 PCA 时钟源(`CMOD=0x04; //时钟源为定时器0溢出` 作者原注)
- 每周期得 `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(已确认,2026-09-11**;公式:测量节拍 = BASE/捕获时钟。
>
> ⚠ **2026-09-11 勘误(捕获时钟 0.75MHz → 3MHz**:旧稿按「T0 走 SYSCLK/4」推算 0.75MHz 无寄存器依据。实配 `TH0=TL0=252`4 分频溢出)+ `AUXR=0xC0`T0x12=1 ⇒ T0 走 SYSCLK/1+ `CMOD=0x04`PCA 时钟取 T0 溢出),作者注释即 `//溢出供PCA时钟,时钟/4`;并由 **T1 `TH1/TL1=0x15A0`60000 计数)⇒ ISR 注释「定时5ms」反证 SYSCLK=12MHz** ✓ ⇒ **PCA 捕获时钟 = SYSCLK/4 = 3MHz,测量节拍 10.92ms**(若晶振为 11.0592MHz 则 11.85ms)。
> **连带影响**:IIR τ、基线更新周期、进入/离开响应三行同步勘误;**线圈频率窗结论不受影响**(N×f_cap 乘积不变:旧 ÷128×0.75MHz = 新 ÷32×3MHz = 96MHz)。
> 详见 `docs/pd136ha-to-dld154v4b-delivery-alignment.md` §2.3。
| 量 | 公式/值 | 数值 | 对比 PD132L |
|----|---------|------|------------|
| 捕获时钟 | Timer0(252) 溢出/4T0 走 SYSCLK/1`AUXR=0xC0` → T0x12=1)⇒ 12M/4 | **3 MHz**(勘误) | L=1.2MHz |
| **测量节拍**CAPVD 更新) | 32768 / 3MHz | **10.92 ms**(勘误) | L=27.3ms**快 2.5×** |
| **基线更新周期** | 100 窗 × 10.92ms | **1.09 s**(勘误) | L=2.73s(慢 2.5×) |
| IIR 时间常数 τ | 10.92ms × 256/79 | **35.4 ms**(精确 29.6ms | L=88ms |
| 进入响应 | 1 个测量节拍 | ~11 ms(勘误) | L=27ms |
| 离开响应 | 1 节拍 + 脉冲 | ~11 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 定义但逻辑注释)