Files
vd-analysis/docs/pd136ha-to-dld154v4b-delivery-alignment.md
T
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

395 lines
33 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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.
# PD136HA → DLD154V4B 交付对齐分析
> **日期**2026-09-11
> **依据**`reference/PD136HA_V3.14-20211116/`**HC32F003C4**,固件 V3.14 / 2021-11-16,源 `user/main.c`MCU 归属更正见 §2.3
>     `DLD154V4B/utilities/at32f421_freertos_demo/`AT32F421F8P7,固件 V4.36.40,源 `src/TaskLoop.c`
>     `models/PD136HA/analysis.md`、`models/DLD154V4B/analysis.md`
> **场景**:现场/客户在用 PD136HA,评估以 DLD154V4B 替换后的**灵敏度一致性、手感差异、配置迁移、异常行为**。
> **目标**:给出可直接用于现场重拨与交付话术的对照表,并把所有"不能靠文档定论"的点明确列为实测项。
---
## 0. 结论摘要
| # | 类别 | 结论 | 等级 |
|---|------|------|------|
| 1 | 灵敏度口径 | ✅ **两型号可直接比百分比**(同为 `Origin×表>>16` 归一,BASE 差异不影响口径) | — |
| 2 | 硬件前端电路 | ⚠ PD136HA = **CD4060 整形 + ÷32 分频**(Q5 引脚,图纸实测)后进 MCU;V4B = **直连原始振荡** → 阈值口径不变,但**雨天/金属路面边沿抖动风险上升**(见 §2) | 中 |
| 3 | 进入灵敏度 | ⚠ 4 档偏差**非单调**:档0 V4B 钝 **+108%**,档2 灵敏 **30%**,档1/3 偏差约 11% | 中 |
| 4 | 释放/滞回 | ⚠ V4B **滞回显著更强**(离开/进入比 15~48% vs PD136HA 50~67%)→ 释放略晚、更抗抖 | 中 |
| 5 | 脉冲宽 / 超时常量 | ✅ **500ms / 300s / 240s 逐字同源**,零对齐成本 | — |
| 6 | 输出延时档 | ⚠ PD136HA 有 4 档脉冲延时(0 / 0.6 / 1.6 / 3s),**V4B 无对应项** | 高 |
| 7 | 拨码迁移 | ✅ **SA_1/SA_2 语义一致,拨码位置可原样照搬**;但文档公式表述有误导(见 §8.3) | 低 |
| 8 | 判据强度 | ⚠ 单次越线 vs 3~5 次确认 → **高速车 / 短占压风险**,必须实测 | 高 |
| 9 | 上电就绪 | ⚠ 从 ~1s(闪灯 6 次约 4s) 变为 **6.3~11.3s**(低Q 10s | 中 |
| 10 | 线圈质量门 | 🔴 **替换最大风险**:V4B 有电感四级判定(含"恒判车"与"判为断开"),PD136HA 无 → **老线圈可能直接不工作** | 高 |
| 11 | 异常处理 | ✅ V4B 全面优于 PD136HA(断开**不断电自愈** vs 整机复位) | — |
---
## 1. 平台与量纲对齐(口径前提)
| 项 | PD136HA | DLD154V4B | 对齐含义 |
|---|---|---|---|
| MCU | **HC32F003C4**(M0+,用户确认;⚠ Keil 工程档位仍为 F005C6PA,重编译前须改) | AT32F421F8P7M4120MHz | — |
| 运行形态 | 裸机主循环 | FreeRTOS 多任务 | — |
| **归一化基数 BASE** | **32768**2^15 | **131072**2^17 | **差 4 倍** |
| 测量窗 | **21.85ms**12MHz 晶振**已确认**2026-09-11 | **1.09ms**131072 / 120MHz | 快 ~20× |
| CAPVD 消费节拍 | 21.8ms | **10ms** | 快 2.2× |
| 阈值公式 | `dlt = Origin × SensTable[SensLevel] >> 16` | `dlt = Origin × SensTable[SENS] >> 16` | **逐字同构** |
| **前端信号链** | 线圈 → 9015×2 振荡 → **CD4060 整形+分频** → P23 | 线圈 → 9015×2 振荡 → **直连** → PA7 | ⚠ 口径不变、抖动特性不同 → **§2** |
### 1.1 为什么 BASE 差 4 倍、百分比却可直接比
两型号的**相对阈值都等于"表值 / 65536"**,与 BASE 无关:
```
相对阈值 = dlt / Origin = (Origin × 表值 >> 16) / Origin ≈ 表值 / 65536
```
物理上 `CAPVD ≈ BASE × (f₀/f)`,故 `(Origin CAPVD)/Origin ≈ Δf/f`,阈值表直接就是 Δf/f 的千分位表达 —— **同一张表值在两型号上代表同一个频率偏移百分比**。因此:
- ✅ 对照表**直接比** `表值/65536`,**不要比表值本身**(162 vs 337 数字差一倍,实际只差在档0);
- BASE 唯一的影响是**绝对码值分辨率**:同一个 dlt,在 V4B 上的计数是 PD136HA 的 **2~4 倍**(如档3 进入 14 → 50 counts),量化误差小 3.6~8.3×;
- ⚠ **第三方应用**若直接读 `variation` 绝对值再除以固定基数,两型号会差 4 倍。详见 skill `loop-measure-base-alignment`×4 检查清单。
---
## 2. 硬件前端电路对齐(PD136HACD4060 分频 V4B:直接振荡)
> **口径来源**2026-09-11 老大逐字确认 ——「跟 PD132 一样,PD136 有用到 CD4060 接线圈,154V4 是直接接振荡线圈的电路」。
> 关联专项:`docs/hardware-loop-frontend-pd132t-vs-v4b.md`PD132T ↔ V4B 元件级对比)。
### 2.1 信号链对比
```
PD136HA(有 CD4060):
线圈(LP) ─→ 9015 PNP×2 振荡器 ─→ CD4060 施密特整形 + 分频 ─→ P23(AF3)
(与 PD132T/V4B 同构) **÷32**Q5 固定) TIM4_CHA 上升沿捕获
捕获时钟 = PCLK0/8
DLD154V4B(直连):
线圈(Loop) ─→ 9015 PNP×2 振荡器 ─→ PA7 ─→ TIM3_CH2 上升沿捕获(120MHz
(与 PD136HA 同构) 直连,无整形、无分频
```
两侧**振荡级同构**9015 PNP ×2 + 同族偏置/谐振网络),原始振荡波形质量相当 —— 前端差异**全部在信号链后级**。
### 2.2 ⭐ 关键结论:CD4060 分频**不改变**相对阈值口径
PD136HA 走**周期累积法**`Xn = 相邻上升沿计数差`(即振荡周期),`LPCNT = 32768 / Xn`,累积 `LPCNT` 个周期得 `CAPVD = ΣXn ≈ 32768`
分频比 N **同时进入分子与分母**
```
Xn_分频后 = N × Xn_原始
LPCNT = 32768 / Xn_分频后 = (32768 / Xn_原始) / N
CAPVD = LPCNT × Xn_分频后 = 32768 ← 与 N 无关
```
⇒ 分频**只改变 Xn 绝对值与测量窗长度**,不改变 BASE=32768,也不改变 `表值/65536` 的 Δf/f 口径。
⇒ §1「两型号百分比可直接比」的结论,**在两侧前端电路不同的前提下依然成立**。
### 2.3 ⭐ 分频比实测定案(2026-09-11 图纸取证):**÷32 —— CD4060 的 Q5 引脚**
> **口径升级**:老大 2026-09-11 追加确认 ——「**PD136 跟 PD132 接 CD4060 的电路是一样的,可参考 PD132 的分频比**」。
> 据此对仓内**已存在但此前未被引用的 PD132T 逻辑原理图**`models/PD132T/PD132T.A_Ver2.01-20210609_Logic.pdf`2 页纯矢量图)做了程序化像素取证 ⇒ **分频比从"反推值"变为"读出来的实测值"**。
**三重证据链**
| # | 证据 | 取证方法 | 结果 |
|---|---|---|---|
| ① | 图纸 U1 = **CD4060**16 脚,Q4/Q5/Q6/Q7/Q8/Q9/Q10/Q12/Q13/Q14 全画出),**10 个 Q 输出中只有 Q5pin 5)画了引出线** | 800dpi 灰度图**逐行横向游程扫描**:Q5 行有 476px 走线,其余已标注引脚**均只有 99px 引脚桩**(空脚) | **唯一引出 = Q5(÷32** |
| ② | 该走线网络标号 = **LP**,落到第 1 页 MCU **U2 pin 9 = CEX1/T1/P3.5** | 400/1200/2000dpi OCR 词框定位 + 逐段读图 | LP → **PCA 捕获脚** |
| ③ | 固件捕获配置 `CMOD=0x04`PCA 时钟取 Timer0 溢出)+ 捕获模式 + `CH/CL` | `PD132T_V3.01 USER/main.c` | **与 ② 的 P3.5/CEX1 完全吻合** |
**PD132 的分频比 = ÷32Q5 = 2⁵)** ⇒ PD136 与之同电路 ⇒ **PD136HA 沿用 ÷32**
**独立佐证(不依赖图纸)**PD136HA 的 Xn 窗 `400~2030` ÷ PD132L 的 `320~1620` = **1.25****恰好等于两者捕获时钟比 `1.5MHz / 1.2MHz`** ⇒ 两型号分频比 N 相同(若 N 不同,窗口比值不可能等于时钟比)。
**捕获时钟(三型号,含本轮勘误)**
| 型号 | 捕获时钟 | 寄存器依据 | 测量窗(32768 tick |
|---|---|---|---|
| PD132T**MA801** | **3MHz** = 12MHz/4 ✅**全链官方手册直证** | ① `AUXR=0xC0` ⇒ T0X12=T1X12=1 ⇒ 定时器按 **1 个时钟周期**计数(手册 §14:「AUXR.T0X12 和 AUXR.T1X12 用来设置定时器 0/1 的定时器率为 1 个时钟周期」;`0`=SYSCLK/12、`1`=SYSCLK);② `TMOD=0x12` + `TH0=TL0=252` ⇒ T0 8bit 自动重载,每 **4** 个 SYSCLK 溢出(= 作者注释「时钟/4」);③ `CMOD=0x04``CPS1:CPS0=10`**PCA 时钟 = 定时器 0 溢出**(手册编码表;作者原注「时钟源为定时器0溢出」同此);④ T1 `TH1/TL1=0x15A0`→60000 计数 = **5ms**ISR 注释「定时5ms」/「5*10=50ms」)⇒ SYSCLK = **12MHz 晶振** ✓ ⇒ PCA 捕获时钟 = 12M/4 | **10.92 ms** |
| PD132L | **1.2MHz** = 12MHz/10 | `TIM1_PSCRL=0x09`(10 分频)+ 外部 12MHz 晶振(`CLK_ECKR`/`CLK_SWR=0xB4``CLK_CKDIVR&=0xF8` 无分频) | 27.3 ms |
| PD136HA | **1.5MHz** = XTH(12MHz)/8 ✅**已确认** | `enCntClkDiv = AdtClkPClk0Div8`PCLK0/8+ `CLK_INIT()``XTH_CR \|= 0x07`(作者注释「**8-16MHZ**,最强驱动」)→ 直取 XTH、**无 PLL / 无 HCLK_PRS·PCLK_PRS 分频** ⇒ PCLK0 = XTH = **12MHz****用户确认 2026-09-11:外部晶振也是 12M**);`Delay_ms` 1330 次/ms 亦印证 ~12MHz | **21.85 ms** |
> ⚠ **本轮勘误**:专项文档 `hardware-loop-frontend-pd132t-vs-v4b.md` 旧记 PD132T 捕获时钟 **0.75MHz / 测量窗 43.7ms ⇒ 修正为 3MHz / 10.92ms**。
> 0.75MHz 系早期误按「T0 走 SYSCLK/4」(旧表写 `12M/4/4`)推算;实配 `AUXR=0xC0`T0x12=1 → T0 走 SYSCLK/1)⇒ PCA 时钟 = SYSCLK/4 = 3MHz,作者注释 `//溢出供PCA时钟,时钟/4` 亦指此,并被 T1 的 5ms 定时反证(60000 计数 ÷ 5ms = 12MHz = SYSCLK)。
> **该勘误不影响任何相对阈值结论**(§1/§3/§4 全部基于 `表值/65536`,与时钟无关)。
>
> ✅ **PD136HA 前端全链闭合(2026-09-11**:线圈 → 9015×2 振荡 → CD4060 整形 + **÷32Q5** → `LP` → P23 → ADTIM4`AdtClkPClk0Div8` = **1.5MHz**)。三块拼图分别来自:用户口径(CD4060 同 PD132 / 晶振 12M)、PD132T 图纸像素取证(÷32)、PD136HA 源码(`CLK_INIT` 无 PLL、`AdtClkPClk0Div8`)。
>
> ⚠ **别被 demo 板常量误导**`common/board_stkhc32f005.h:64` 写着 `#define SYSTEM_XTH (32*1000*1000u) ///< 32MHz` —— 那是 **STK 官方 demo 板**的晶振值,本产品**不用**`CLK_INIT()` 自配 XTH,注释档位 816MHz)。作者在 `Delay_ms` 旁自注的 `//12MHZ????` 那个问号,现已由硬件口径消除。
>
> 🔧 **MCU 归属更正(2026-09-11,用户口径 + 源码取证)**
>
> - **PD132T = Megawin(笙泉科技)MA801** —— 板上标记 MA801ASSFR 头 `USER/REG_MA801.H` 首行即 `/* for Megawin MA801 */`;其中 `sbit CEX1 = P3^5` ✓ **与图纸 LP→MCU pin9 完全吻合**。此前文档记「STC12C2052」系按寄存器地址相似所致的误判 —— **已更正,且 3MHz/10.92ms 结论不变**。
> - ✅ **MA801/MA802 官方手册已取得并逐条核对**`models/PD132T/MA801_MA802_Datasheet_A10.pdf`Megawin,版本 A10 / 2013-04**用户 2026-09-11 提供**)。三处关键定义**均为手册原文**:
> 1. `AUXR`0x8EH= `T0X12(b7) T1X12(b6) URM0X6 EADCI ESPI ENLVFI -- --`b7/b6 位定义 `0` = SYSCLK/12、`1` = **SYSCLK** ⇒ `0xC0` 使 T0/T1 均按 **1 个时钟周期**计数(§14 原文:「AUXR.T0X12 和 AUXR.T1X12 用来设置定时器 0/1 的定时器率为 1 个时钟周期」)
> 2. `CMOD`0xD9H)时钟源编码表 = `00: SYSCLK/12 / 01: SYSCLK/2 / **10: 定时器0溢出** / 11: ECI`,且 `CPS1:CPS0` 位于 **b2:b1**2 比特布局;**自校验**:手册示例 `CMOD=0x02 ⇒ 系统时钟/2` ✓)⇒ `0x04` ⇒ **Timer0 溢出** ✓ 与作者原注**逐字一致**
> 3. 器件特性:**1-T 80C51 内核**、**8KB Flash**、**256B RAM**、最大 25MHz、外部晶振 + 内置 IRCO(6MHz);§14.2.5 示例即写「SYSCLK = 12MHz 晶振」✓
> - ⇒ 原先依赖「同族手册 `MG82F6D17` + T1 侧反证」的**间接论证已全部升级为官方直证**,本链条不再有未取证环节 ✓
> - **PD136HA = HC32F003C4**(小华半导体 HDSC,用户确认)。⚠ 工程档位仍是 `HC32F005C6PA`Keil `<Device>`+ startup `hc32f005c6ua` ⇒ **重编译前须改器件档位**;实测固件 `Code=11148 RO=268 RW=88 ZI=608` ⇒ ROM≈11.1KB / RAM≈696BF003(16KB/2KB) 与 F005(32KB/4KB) 都装得下 ✓。Keil 工程 `<Cpu>… CLOCK(12000000) …` 亦**独立佐证 12MHz** ✓
> - ⚠ **双沿捕获的意外发现**PD132T `CCAPM1=0x31` = **CAPP+CAPN 双沿捕获**(旧稿写「下降沿捕获」**有误**),ISR 内 `loop1_Xn = 本次捕获 − 上次捕获` ⇒ **Xn 实为「半周期」**(对 50% 占空方波)。⇒ **PD132T 侧**(双沿 ⇒ 半周期)线圈频段按半周期重算 = 窗 406~2050 ⇒ **≈23.4~118kHz**(落在代码遗留注释 `//高频:48-1100,低频:22-550` 内,单位存疑)。⚠ **但 PD136HA/PD132L 是单沿捕获(Xn=整周期),其 400~2030 / 320~1620 解出的仍是 ≈23.6~120kHz —— 与 PD132T 同一频段**(判据常数 `C=32·f_cap/边沿系数` 同为 4.8×10⁷)。早前"两型号频段差 2×"的说法**已作废**,详见 `docs/pd132t-vs-pd136ha-comparison.md` §2.3。
> - **⚠ 灵敏度/偏差口径不受影响**`CAPVD/32768 = f_旧/f_新` 是**比值**,半/整周期因子同进分子分母相互约掉 —— 与 §2.2「分频比 N 被约掉」同理 ✓
**÷32 代入后,两族图纸读数完全自洽**:
| 型号 | 捕获时钟 | Xn 有效窗 | ⇒ 线圈频率窗(÷32) | 标称点(窗几何中值) | 线圈档 |
|---|---|---|---|---|---|
| PD132T | 3MHz | 406 ~ 2050 | **46.8 ~ 236.6 kHz** | **≈105 kHz** | **高频档** |
| PD132L | 1.2MHz | 320 ~ 1620 | 23.7 ~ 120 kHz | ≈53 kHz | **低频档** |
| PD136HA | 1.5MHz | 400 ~ 2030 | 23.6 ~ 120 kHz | ≈53 kHz | **低频档** |
⇒ 源码注释 `//高频:48-1100,低频:22-550`**PD132T 与 PD136HA 逐字相同**)读法随之成立:按 0.1kHz 读即 **高频档 4.8110 kHz / 低频档 2.255 kHz**(亦疑为「48–110 / 22–55」多打尾零),两族标称点 **105kHz / 53kHz** 分别落进各自频段内 ✓。
**设计解读**:**同一分频比(÷32)+ 同一套 Xn 窗常量,仅靠捕获时钟 2× 差(3MHz ↔ 1.5MHz)适配"高频/低频"两档线圈** —— Xn 窗对频段"绝对不变"(时钟与频段同比例缩放)是**有意为之**,这也解释了为何两型号窗常量几乎逐字相同。
> ⚠ **旧结论作废**:上一稿「÷32~÷128,Q6 最可能」的反推已被图纸实测取代 ⇒ **÷32(Q5)**;原「同血统 2× 提速」的解释修正为「**同分频比 + 时钟与线圈频段同比例缩放**」。
### 2.4 量化能力对比(前端差异的实质)
| 项 | PD136HACD4060 ÷32 | DLD154V4B(直连) | 含义 |
|---|---|---|---|
| 1 个 Xn 含 | **32 个原始周期**(硬件分频平均) | **1 个原始周期** | PD136HA 有硬件级平均 |
| 边沿质量 | CD4060 施密特整形 → CMOS 满摆幅、陡峭 | 模拟波形直接过零 | **V4B 过零时刻随幅值/谐波漂移** |
| 测量窗 | **21.85ms** | **1.09ms** | PD136HA 窗长 **20×** |
| 窗内原始周期(@53kHz 标称) | ≈1158 | ≈58 | **20×** |
| 快滤波等效平均 | τ87.4ms ÷ 21.85ms = 4 窗 → **≈4630 原始周期** | τ32ms ÷ 1.09ms = 29 窗 → **≈1700 原始周期** | PD136HA 平均厚 **2.7×** |
| 释放路径等效平均 | 与快滤波同一路径(**无独立慢滤波**) | τ117ms → **≈6200 原始周期** | V4B 释放反而厚 **1.34×** |
| 绝对码值粒度 | 1/32768 = 0.0031% | 1/131072 = **0.00076%** | V4B 计数细 **4×** |
| IIR 系数血缘 | α=64/256(代码内 `ALFA_CAP1=79` 分支**未启用** | α=`ALFA_CAP1=79`**现役** | **PD136HA 未启用的 79 = V4B 现役的 79** |
> ⚠ 上表"等效平均"为**推算值**(依赖 §2.3 的捕获时钟与 PD136HA 侧 ≈53kHz 标称线圈频率;V4B 侧窗内周期数按同一 f₀ 折算),用于量级比较,**不作为验收依据**。
**读法**PD136HA 靠"长窗 + 硬件分频平均"取干净信号;V4B 靠"短窗 + 4 倍细计数 + 后级 IIR(含独立慢滤波 / 低Q 平滑)"补回等效平均。两者在**稳态噪声量级**上可比(这正是 §1 百分比口径成立的前提),但**瞬态响应与边沿质量不等价**。
### 2.5 ⚠ 前端差异带来的替换风险(新增)
| 场景 | PD136HA(有整形) | V4B(直连) |
|---|---|---|
| 雨天 / 金属路面 / 车底盘高度变化 → 振荡幅值漂移 | 施密特整形出满摆幅方波,**过零时刻几乎不动** | 过零时刻**随幅值/谐波移动** → 基线抖动 |
| 后果 | 基线稳、释放判定"定住" | 释放点抖动(`hardware-loop-frontend-pd132t-vs-v4b.md` §5 记录的"HR0/2 保持 ~1s 假释放"属此类) |
**替换后现场重点观察**:雨天 / 金属板 / 大车慢速通过时的释放抖动。若复现,先确认 V4B 软件兜底(`RELEASE_ALFA=21` τ117ms + 进入 snap)是否够用,**再**考虑在 PA7 前加施密特(74HC14)—— **不建议未复现就改硬件**
---
## 3. 进入灵敏度对齐(Δf/f,正索引 0=最低灵敏 → 3=最高灵敏)
| 档 | PD136HA 表值 | Δf/f | ΔL/L | V4B 方案B 表值 | Δf/f | 偏差 | V4B PD132T 表值 | Δf/f |
|---|---|---|---|---|---|---|---|---|
| 0(低) | 162 | 0.2472% | 0.494% | 337 | **0.5142%** | **+108.0%** | 300 | 0.4578% |
| 1(中) | 81 | 0.1236% | 0.247% | 71 | 0.1083% | 12.3% | 60 | 0.0916% |
| 2(高) | 54 | 0.0824% | 0.165% | 38 | **0.0580%** | **29.6%** | 32 | 0.0488% |
| 3(最高) | 28 | 0.0427% | 0.085% | 25 | 0.0381% | 10.7% | 21 | 0.0320% |
> V4B 方案B`USE_PLANB_TABLE = 1`V4.06/07 定稿)为**当前编译生效**;PD132T 完全对齐表为备选。
**解读(现场最关心的两句)**
1. **档0 是最大的不一致点**V4B 需要 **2.08 倍** 的频率偏移才触发。现场若因**相邻车道串扰、金属路面、变频器干扰**而把 PD136HA 放在档0,换 V4B 后会**明显变钝**——高底盘车、摩托车、拖车尾部可能漏检。**这类现场换机后建议直接测试档1**(偏差仅 −12%)。
2. **档2"高"V4B 反而更灵敏 30%**:这是方案B 把档2 从 60 收到 38 的直接结果。若现场本来用档2 且环境干净,换机后**误触发概率会上升**(尤其广告杆落杆、机械震动,参见 V4B 分析 §3.5 的 V2.8 历史事故)。
3. 档3(出厂/常用最高档)两型号最接近(−10.7%),**默认档位替换风险最低**。
---
## 4. 释放与滞回对齐
| 档 | PD136HA 离开表值 | Δf/f | V4B 方案B 离开表值 | Δf/f | 偏差 | PD136HA 滞回带 | V4B 滞回带 | PD136HA 离/进 | V4B 离/进 |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 81 | 0.1236% | 51 | 0.0778% | 37.0% | 81 | 286 | 50.0% | **15.1%** |
| 1 | 54 | 0.0824% | 27 | 0.0412% | 50.0% | 27 | 44 | 66.7% | 38.0% |
| 2 | 32 | 0.0488% | 18 | 0.0275% | 43.8% | 22 | 20 | 59.3% | 47.4% |
| 3 | 18 | 0.0275% | 12 | 0.0183% | 33.3% | 10 | 13 | 64.3% | 48.0% |
**判定语义(防误读)**
- 进入线 = `Origin dlt_in`CAPVD 低于此线 → 判有车)
- 离开线 = `Origin dlt_out`(CAPVD 回到此线以上 → 判离开)
- **离开表值越小 ⇒ 离开线越高 ⇒ 要求恢复得越接近 Origin 才释放 ⇒ 滞回更强、释放更晚、抗抖更好。**
**解读**:V4B 的离开表全档都比 PD136HA **小 33~50%**,即**释放线整体抬高**。现场换机后典型手感是:
- **车尾释放略晚、绿灯熄灭稍慢** → 道闸"跟车释放"会晚一点(这通常是**好事**:防抖落、防半截车误释放);
- **档0 差异最大(离/进 15.1% vs 50%**V4B 档0 的滞回带 286 countsPD136HA 81**异常宽**,说明档0 在 V4B 上是"极钝的进入 + 较高的释放线"的组合,现场基本不具备可比性;
- V4B 另有 PD136HA **完全没有**的兜底:**低Q 环带超时 2.5s 强制释放**`REL_BAND_TIMEOUT_TICKS=250`,V4.36.30)—— 板停在触发-释放带回滞带内不再永久卡死。
---
## 5. 判据与滤波对齐(手感与抗扰)
| 项 | PD136HA | DLD154V4B |
|---|---|---|
| 进入判定 | **单次越线即判,无去抖** | `CAPVD < Origindlt` 连续 **3/4/5 次**(按 Q 档) |
| 进入确认耗时 | ≈1 个探测节拍 **~21.8ms** | **30~50ms**3~5×10ms+ IN_DELAY 500ms(时序标志) |
| 斜率限幅 | ❌ 无 | ✅ **单次变化 >5% 截断**(拒 EMI / 闪电尖峰) |
| 滤波 IIR | α=64/256 @21.8ms → **τ≈87.4ms** | α=79/256 @10ms**τ≈32ms**(低Q 释放另用 REL_ALFA=30 → τ≈85ms |
| 基线 | 256 窗滑动 ≈ **5.59s**,有车冻结 | 500 窗 ≈ **5s**,有车冻结 + 冻结超时 10s + 环境重校准 + 释放后降权补偿 |
| 离开判定 | 单次越线 | 简单滞回 **3~5 次防抖**(平坦性法 `#if` 禁用)+ 环带超时 2.5s |
| 拨码去抖 | 6 次 | 5 次 |
### 5.1 ⚠ 关键风险:高速车 / 短占压
PD136HA 是**单次越线**,等效响应 ~21.8msV4B 需 **30~50ms** 持续偏置,且进入前要过 **τ≈32ms** 的 IIR。
粗算:车长 1m 的线圈,**100km/h27.8m/s)占压约 36ms**。
| 车速 | 占压时间 | PD136HA(单次) | V4B 低Q5 次=50ms |
|---|---|---|---|
| 60km/h | 60ms | ✅ | ✅(临界) |
| 100km/h | 36ms | ✅ | ⚠ **可能漏检** |
| 120km/h | 30ms | ✅ | ⚠ 高风险 |
> **必须在现场实测**:用已知车速(或人工快速甩金属板)验证 V4B 高Q/低Q 两档的最小可检占压时间。若现场有高速道口,这是**是否可替换的硬门槛**。
---
## 6. 输出与时序对齐
| 项 | PD136HA | DLD154V4B | 结论 |
|---|---|---|---|
| 继电器 1RLY1 | `SET_PLUS(DIP7)` ? `VD_FLAG\|FLAG_OUT`(宽存在) : `FLAG_PLUSE`(脉冲) | `SET_PLUS(SW_3)` ? `VD_FLAG\|FLAG_OUT`(存在) : `FLAG_PLUSE`(脉冲) | ✅ **分支结构逐字同构** |
| 继电器 2RLY2 | `VD_FLAG` 存在输出,**无延时** | 存在输出(绿灯镜像) | ✅ 一致 |
| 脉冲宽 | `PLUSE_DELAY=10` ×50ms = **500ms** | `PULSE_DELAY=10` ×50ms = **500ms** | ✅ **同源同值** |
| IN_DELAY | 10 ticks(进入防抖计数已注释) | 500ms(时序标志,不影响继电器) | ✅ 等效 |
| **输出延时档** | **`DELAY_TIME[3SET_DLY]` = {0,12,32,60}×50ms = 0 / 0.6 / 1.6 / 3.0s**<br>作用于**脉冲输出的触发延时** | ❌ **无对应配置**(脉冲前固定 PULSE_DELAY=500ms | 🔴 **功能缺口** |
| 离开延时 | `OUT_DELAY=39`1.95s,相关计数已注释) | `SW_4=ON`**离开延时 500ms** | ⚠ 语义不同 |
| 安全复位 | DIP8 = 有限存在 | `SW_5` = 安全复位(触发复位) | ⚠ 需对照现场用途 |
> **§6 最高优先确认项**PD136HA 的延时档(0/0.6/1.6/3s)现场**是否在用**
> 若现场依赖 1.6s/3s 的脉冲延时(例如配合道闸缓冲、或错开相邻车道脉冲),**V4B 上无等效拨码**,需评估用上位机/时序改造替代 —— 这是替换前的**功能确认项**,不是性能项。
---
## 7. 超时与异常对齐(★ 同源常量,零成本)
| 项 | PD136HA | DLD154V4B | 结论 |
|---|---|---|---|
| 有限存在 | `HOLD_TIME = 5*1200 = 6000` @50ms = **300s****整机复位** | `HOLD_TIME = 6000` @50ms = **300s** | ✅ **数值逐字同源** |
| 安全复位(重学基线) | `LC_HOLD_TIME = 4*1200 = 4800` @50ms = **240s** → 重学基线 | `LC_HOLD_TIME = 4800` @50ms = **240s** | ✅ **数值逐字同源** |
| 看门狗 | WDT ≈ **820ms** | IWDT ≈ **1.64s**TMR15 ISR 计数 + 主循环 500ms 喂狗) | ⚠ 量级相同,V4B 更长 |
| 上电就绪 | 1s 延时 + LED 闪 **6 次**(≈4s),含继电器自检 | 判稳 ≈**1.3s** + 就绪巩固期 **5 / 7 / 10s**(按 Q 档,绿灯慢闪) | ⚠ **变长 1.5~3×** |
| 线圈断开 | `LOOP_OK=0`**整机复位**(反复复位) | 保持释放 + 黄灯快闪 + 四级电感监视 + **热切换自愈 ~6s(不断电)** | ✅ **V4B 显著更优** |
| 灵敏度拨码变更 | **整机复位** | **不重启**5 次去抖生效 | ✅ **V4B 更优** |
| 环境重校准 | ❌ 无 | ✅ 2s 预判 → 7s 补偿 → 2s 恢复 | ✅ V4B 更优 |
**两条"意外好消息"**`5*1200 / 4*1200``6000 / 4800` 是**同一组常量**50ms tick 下均为 300s / 240s)。这说明 PD136HA 与 V4B 虽分属两条血统(前者 PD132L 系 HC32 移植,后者 M1H 现代实现),却共享同一族**超时语义**——替换后这部分的现场预期**完全不用改**。
---
## 8. 拨码迁移对照
### 8.1 PD136HA 拨码定义(源码实测)
| 位 | 引脚 | 标签 | 功能 |
|---|---|---|---|
| bit5 | P32 | **SA2** | 灵敏度 |
| bit4 | P03 | **SA1** | 灵敏度 |
| bit3 | P24 | SW3 | `SET_HOLD` 有限存在 |
| bit2 | P25 | SW2 | `SET_PLUS` 输出模式 |
| bit1 | P26 | SW1 | `SET_DLY` 延时 bit1 |
| bit0 | P35 | SW0 | `SET_DLY` 延时 bit0 |
- 全部配置为 **`GpioPuEnable` 上拉** ⇒ 拨码**闭合(ON)= 引脚读出 0**
- 灵敏度 `SENS = swok & 0x30`;延时 `SET_DLY = swok & 0x03`(索引 **反序** `DELAY_TIME[3SET_DLY]`,即 DIP5-6 全 OFF → 3.0s
### 8.2 DLD154V4B 拨码定义
| 引脚 | 标签 | 功能 |
|---|---|---|
| PA0 | SA_1 | 灵敏度 |
| PA1 | SA_2 | 灵敏度 |
| PA2 | SW_3 | 输出模式 |
| PA3 | SW_4 | 离开延时 500ms |
| PA4 | SW_5 | 安全复位 |
- PA0~PA4 全部 `GPIO_PULL_UP``at32f421_board.c:275`)⇒ **同样 ON = 读出 0**
### 8.3 ✅ 灵敏度拨码语义:两型号一致,可原样照搬
| SA_2 | SA_1 | 档位 | 灵敏度 | PD136HA 进入 | V4B 方案B 进入 |
|---|---|---|---|---|---|
| ON | ON | 0 | 最低 | 0.2472% | 0.5142% |
| ON | OFF | 1 | 中 | 0.1236% | 0.1083% |
| OFF | ON | 2 | 高 | 0.0824% | 0.0580% |
| OFF | OFF | 3 | **最高** | 0.0427% | 0.0381% |
**结论**:**拨码位置无需换算,原样照搬到 V4B 即可得到同一档位语义**(同为"双 OFF = 最高灵敏")。两型号都是"SA_1 权重高于 SA_2"、都是上拉低有效,编码规则同构。
> ⚠ **文档表述待修正(非行为问题)**`DLD154V4B/docs/technical-spec.md:95` 与 `models/DLD154V4B/analysis.md:109 / :184` 写的 `SENS = 3-(sw&0x03)`(反码)与固件 `TaskLoop.c:632-642` 的 `switch` 分支**端点相反**(代码:mask 0x00→最低、0x03→最高)。该公式与 §8.3 表格(及 `product-manual.md:116-121`)不自洽。
> **30 秒实测即可定论**:单独翻转 SA_1(或 SA_2),看 DBG 打印的 `SENS` / `dlt` 变化方向;或万用表量 PA0/PA1 在 ON 时的电平。
### 8.4 ⚠ 输出模式(SW_3 / DIP7)极性
两型号结构**逐字同构**`SET_PLUS = 1 → RLY1 = 存在(宽)输出``SET_PLUS = 0 → RLY1 = 500ms 脉冲`
配合"ON = 读出 0"**拨到 ON → 脉冲输出;拨到 OFF → 存在输出**。
> `models/DLD154V4B/analysis.md` 与 `pd132t-to-v4b-delivery-alignment.md` 曾记为"代码注释与产品文档相反、待实测"。
> **本次源码核对结论:不是 bug,是变量命名误导** —— 变量名叫 `SET_PLUS` 但 `=1` 走的是"存在输出"分支;`product-manual.md:133`ON=脉冲输出)与代码**行为一致**。此条可从"待实测"降级为"已确认"。
---
## 9. 🔴 线圈质量门:替换的**最大**风险
PD136HA **没有**线圈电感质量判定;DLD154V4B 有**四级电感监视**(V4.36.37),且其中两级会**改变检测行为**:
| f 区间 | 电感(43nF | fault | 黄灯 | V4B 判定 |
|---|---|---|---|---|
| 18~125 kHz | 38µH~1.15mH | 0 | 灭 | 正常 |
| <18 kHz | L 偏大 | 1 | 一长一短 | 照常 |
| 125~156 kHz | 24~38µH | 1 | 一长一短 | 照常 |
| **156~171 kHz** | **20~24µH** | **2** | 一长两短 | 🔴 **恒判车(不随宏)** |
| **>171 kHz** | **<20µH 短路级** | **3** | 快闪 200ms | 🔴 **等同完全断开(出厂态)**:判定暂停 + 继电器保持释放 |
**现场影响**
- PD136HA 老线圈若**电感偏低(<38µH,即空场 f >125kHz** → 换 V4B 后**黄灯告警**
-**<24µHf >156kHz** → V4B **恒判车**,继电器可能常吸合 → **车道直接不放行**
-**<20µH** → 视为断开,**判定完全暂停**。
**替换前必须实测每路线圈的空场频率/电感**V4B 的 `EVT|coil_fault f:xx kHz L~xxx uH` 诊断可直接读)。这是**唯一一个"老设备能用、新设备不工作"级别的风险**,优先级高于所有灵敏度差异。
> 另注:V4B 另有**未解**问题 —— **23µH 悬停临界跳变极限环**(V4.36.40,代码未改,见 `models/DLD154V4B/analysis.md` §9)。若现场线圈恰落在 20~24µH 边缘,该风险与 §9 叠加。
---
## 10. V4B 先进点(可直接用于交付话术)
1. **抗扰**:斜率限幅 5% + 3~5 次确认 + IIR 快 2.7× → 对变频器/广告杆/闪电的鲁棒性显著优于单次判定的 PD136HA。
2. **线圈故障不停机**:断线/短路**不断电自愈约 6s**(热切换),PD136HA 是整机反复复位。
3. **拨码免断电**:灵敏度档位变更即时生效,PD136HA 需整机复位。
4. **环境自适应**:2s 预判 → 7s 补偿 → 2s 恢复的受控重校准(PD136HA 无),长时间温漂/金属板变化后可自动收敛。
5. **可诊断**DBG/EVT 串口输出 f、L、Origin、dlt、SENS、faultPD136HA 基本靠 LED 闪码。
6. **有限存在/安全复位语义完全同源**(300s / 240s),现场预期无需调整。
7. **分辨率**:同档 dlt 的计数是 PD136HA 的 2~4 倍,量化误差小 3.6~8.3×。
---
## 11. 待现场验证清单(替换前逐项打勾)
- [ ] **① 线圈电感**:每路线圈空场 f 是否落在 **18~125kHz**38µH~1.15mH)?<24µH 直接判定不可替换(§9)
- [ ] **② 最小可检占压**:用实测车速验证 V4B 高Q/低Q 档在 **100km/h(≈36ms 占压)** 下是否可靠触发(§5.1
- [ ] **③ 延时档用途**:现场是否使用 PD136HA 的 0.6/1.6/3s 脉冲延时?若在用,确认替代方案(§6)
- [ ] **④ 灵敏度档位**:现场当前 SA_1/SA_2 位置 → 按 §8.3 照搬;若为**档0**,必须复测灵敏度(V4B 钝 108%)
- [ ] **⑤ 拨码实测**:单翻 SA_1/SA_2 各一次,核对 `SENS/dlt` 方向与 §8.3 表格一致,并**顺手修正文档公式**(§8.3 注)
- [ ] **⑥ 上电就绪时间**:现场是否有"上电即可用"要求?低Q 线圈需 10s 巩固期(§7)
- [ ] **⑦ 输出模式**:确认 DIP7 / SW_3 位置与道闸期望(存在 vs 脉冲),并按 §8.4 极性核对
- [ ] **⑧ 相邻车道串扰**:若现场线距偏小,档1/档2 差值(−12% / −30%)会导致误触发倾向变化
- [ ] **⑨ 前端电路复核**:分频比**已定案 ÷32(CD4060 Q5**,依据 = PD132T 图纸(`models/PD132T/PD132T.A_Ver2.01-20210609_Logic.pdf`)+ 固件捕获脚三重互证(§2.3)。现场**可用示波器 5 分钟复核**:量 PD136HA 的 **P23** 方波频率应 = 线圈频率 ÷ 32(低频档线圈约 1.5~3.5kHz)。**晶振 12MHz 已确认**(用户 2026-09-11)⇒ PCLK0 = 12MHz、捕获时钟 1.5MHz、测量窗 21.85ms 全部落定,此项仅剩"物理量一遍"的确认价值。仍缺的是 **PD136HA 本体原理图**(影响谐振电容档位与"高频/低频"档位布线,**不影响分频比**)。另注意 CD4060 施密特整形的抗幅值漂移优势在 V4B 上消失(§2.5)
- [ ] **⑩ 器件档位与频段口径(2026-09-11 新增)**:① Keil 器件档位(HC32F005C6PA / startup C6UA)与实际芯片(**HC32F003C4**)不一致 ⇒ **重编译前先在 Keil 改正档位**,避免用错器件配置;② 现场量一次线圈频率(示波器接线圈两端,或量 P23)可**一次终结两个悬案**:P23 方波频率 = 线圈频率 ÷ 32 ✓,以及 Xn 的「半周期」口径下线圈标称是落 **23.4~118kHz** 还是 **46.8~236.6kHz**(后者意味着 Xn 为整周期,即 ISR 需另有整周判据)
---
## 12. 后续行动
- [ ] 修正 `DLD154V4B/docs/technical-spec.md:95``SENS = 3-(sw&0x03)` 表述(与代码/手册不一致)
- [ ] 修正 `models/DLD154V4B/analysis.md:109 / :184` 的同一处表述,并把 §8.4 的 `SW_3` 极性结论从"待实测"改为"已确认"
- [ ] `models/DLD154V4B/analysis.md` §3.5 的 `product-manual.md` 阈值数字为**方案A 时代**0.46/0.09/0.049/0.032%),现役方案B 实为 **0.5142/0.1083/0.0580/0.0381%** → 手册需同步
- [ ] 现场实测后回填 §11 结论,并补一份 `docs/pd136ha-to-dld154v4b-field-checklist.md`(可打印版)
- [ ] 将"线圈质量门(电感四级)作为替换前置门槛"写入交付流程
- [ ] **补 `models/PD136HA/` 原理图 PDF**(当前**缺失**PD132T / V4B / DLD154Pro 均有)。分频比已由 PD132T 图纸定案(÷32),此图纸仅剩**谐振电容档位 / 高频-低频档布线 / PA7 前的振荡级元件**待补证
- [x] ~~**同步修正 `docs/hardware-loop-frontend-pd132t-vs-v4b.md`**~~**已完成**`55a39f7`):① PD132T 捕获时钟 `0.75MHz → 3MHz`、测量窗 `43.7ms → 10.92ms`;② 分频输出脚 `Q7 或 Q8 → ÷32(Q5,图纸实测)`;③ §3/§4/§8 受影响的"平均层级/Xn 单位/等效平均"行;连带 5 份文档(含 `filter-coefficient-79-vs-64.md` 的调参依据勘误)
- [ ]`docs/cross-model-comparison.md` 总表中补入 **PD136HA 前端口径**一列(CD4060 ÷32 分频 vs 直连),使"前端电路"成为跨型号可比维度