Files
wangfq f876c36d05 docs: 新增 PD132T ↔ PD136HA 同血统两代对比分析(8051 → Cortex-M0+)
- 新文件 docs/pd132t-vs-pd136ha-comparison.md(12 节 + 2 附录,~29KB / 376 行)
-  关键发现:两型号覆盖同一线圈频段 ≈23.4~118kHz
  · PD132T = 3MHz 双沿捕获(Xn = 半周期);PD136HA = 1.5MHz 单沿(Xn = 整周期)
  · 判据常数 C = 32·f_cap/边沿系数,两者同为 4.8×10^7 ⇒ 窗口常量几乎逐字相同(406~2050 vs 400~2030)
- 灵敏度重标定量化:档位一一映射偏差 −46%~+69% ⇒ 跨代不可按档位号照搬;
  给出双向换算表(PD132T 档1 → PD136HA 档2:进入 −10% / 离开 0%,为最佳匹配)
- 时间维对比:节拍 10.92→21.85ms、IIR τ 29.6~38→76~87ms、基线 100→256(1.09→5.59s)
  ⇒ 设计取向由「响应优先」转为「抗扰优先」(代价:进出响应与最小可检占压约慢 2×)
- 异常策略对比:PD132T「降级维持」(断继电器+闪灯,不复位)vs PD136HA「主动自愈」(整机复位 + LC_HOLD 240s 重学基线)
- 修正旧口径:front-end §8 与对齐报告 §2.3 的「两型号线圈频段差 2×」改为「同一频段」
  (早前把 PD132T 的半周期口径与 PD136HA 的整周期口径直接相比所致)
- README 索引 + 两份 models/analysis.md 交叉链接;表格校验 0 异常(14 文件)
2026-09-11 08:54:18 +08:00

117 lines
7.6 KiB
Markdown
Raw Permalink 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 直连)
> 双型号对比: `docs/pd132t-vs-pd136ha-comparison.md`(与 PD136HA 同血统两代对比,2026-09-11
> 说明: 文件头明确"**实现与 PD132L_V1.09 一样的功能**"——PD132L 的 8051 移植版,核心算法逐行对应。
## 1. 平台与工程
| 项 | 值 |
|----|-----|
| MCU | **Megawin MA801**(笙泉科技,**1-T 80C51 内核**、8KB Flash、256B RAM、max 25MHz;板上标记 MA801AS。官方手册 `MA801_MA802_Datasheet_A10.pdf`A10 / 2013-04)。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)。
>
> ✅ **2026-09-11 官方手册直证(Megawin MA801/MA802 手册 A10,用户提供)**:① `AUXR`0x8EHb7=T0X12、b6=T1X12`1` ⇒ **SYSCLK** 作定时器时钟(§14「定时器率为 1 个时钟周期」);② `CMOD`0xD9H`CPS1:CPS0` 位于 **b2:b1**,编码 `10 = 定时器0溢出`(手册示例 `CMOD=0x02 ⇒ SYSCLK/2` 自校验 ✓);③ 器件 = 1-T 80C51 / 8KB Flash / 256B RAM。⇒ 上述推导**不再依赖同族手册代理或反证**,全部官方直证 ✓
> **连带影响**:IIR τ、基线更新周期、进入/离开响应三行同步勘误;**线圈频率窗结论不受影响**(N×f_cap 乘积不变:旧 ÷128×0.75MHz = 新 ÷32×3MHz = 96MHz)。
> 详见 `docs/pd136ha-to-dld154v4b-delivery-alignment.md` §2.3。
| 量 | 公式/值 | 数值 | 对比 PD132L |
|----|---------|------|------------|
| 捕获时钟 | Timer0(252) 溢出/4T0 走 SYSCLK`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 定义但逻辑注释)