Files
vd-analysis/models/PD132T/analysis.md
T
wangfq 382a23594c docs(MA801): 官方手册直证 —— PD132T 捕获时钟 3MHz/10.92ms 全链闭环,间接论证升级为直证
- 用户提供 Megawin MA801/MA802 官方手册(CN vA10 / 2013-04),归档为 models/PD132T/MA801_MA802_Datasheet_A10.pdf
- 三处关键定义均为手册原文:
  · AUXR(0x8EH) b7=T0X12 b6=T1X12(0=SYSCLK/12,1=SYSCLK)⇒ 0xC0 使 T0/T1 按 1 个时钟周期计数(§14)
  · CMOD(0xD9H) CPS1:CPS0 位于 b2:b1,编码 10 = 定时器0溢出(手册示例 CMOD=0x02⇒SYSCLK/2 自校验)
  · 器件 = 1-T 80C51 / 8KB Flash / 256B RAM / max 25MHz
- ⇒ 0xC0(T0 走 SYSCLK)+ TMOD=0x12 & TH0=252(每 4 周期溢出)+ CMOD=0x04(T0 溢出)= PCA 3MHz;T1 5ms 反证 SYSCLK=12MHz
- 文档中「同族手册 MG82F6D17 代理 + T1 侧反证」的间接论证全部改写为官方直证;4 文件同步;表格校验 0 异常
2026-09-11 08:47:41 +08:00

116 lines
7.4 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**(笙泉科技,**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 定义但逻辑注释)