- 用户提供 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 异常
116 lines
7.4 KiB
Markdown
116 lines
7.4 KiB
Markdown
# PD132T 车检器分析
|
||
|
||
> 型号: PD132T | 固件: V3.01 | 日期: 2021-06-23 | 平台: **Megawin MA801**(笙泉科技,8051 内核, Keil C51;板上标记 MA801AS,SFR 头 `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 < Origin−dlt` 进入、`> Origin−dlt` 离开(SET_ASB 语义同)、
|
||
`SensTable {300,60,32,21} / SensTable1 {60,32,21,14}` 相同
|
||
- ⚠ **拨码低有效(电路反相,标贴与电平相反)**:标贴 ON → 电平 0;标贴 OFF → 电平 1(2026-08-28 用户确认)。
|
||
- ⚠ **离开阈值受 SET_ASB(SENUP)控制,看标贴位置**:标贴 **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=6000(300s)
|
||
- 有限存在超时 → `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 | 无 HOLD(else) | **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`(0x8EH)b7=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) 溢出/4;T0 走 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 → MA801AS(8051),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 定义但逻辑注释)
|