@@ -0,0 +1,265 @@
# PD136HA → DLD154V4B 交付对齐分析
> **日期**: 2026-09-11
> **依据**: `reference/PD136HA_V3.14-20211116/`( HC32F005,固件 V3.14 / 2021-11-16,源 `user/main.c`)
> `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 | 进入灵敏度 | ⚠ 4 档偏差**非单调**:档0 V4B 钝 * * +108%**,档2 灵敏 * * − 30%**,档1/3 偏差约 − 11% | 中 |
| 3 | 释放/滞回 | ⚠ V4B **滞回显著更强 ** (离开/进入比 15~48% vs PD136HA 50~67%)→ 释放略晚、更抗抖 | 中 |
| 4 | 脉冲宽 / 超时常量 | ✅ **500ms / 300s / 240s 逐字同源 ** ,零对齐成本 | — |
| 5 | 输出延时档 | ⚠ PD136HA 有 4 档脉冲延时(0 / 0.6 / 1.6 / 3s),**V4B 无对应项** | 高 |
| 6 | 拨码迁移 | ✅ **SA_1/SA_2 语义一致,拨码位置可原样照搬 ** ;但文档公式表述有误导(见 §7.3) | 低 |
| 7 | 判据强度 | ⚠ 单次越线 vs 3~5 次确认 → **高速车 / 短占压风险 ** ,必须实测 | 高 |
| 8 | 上电就绪 | ⚠ 从 ~1s(闪灯 6 次约 4s) 变为 **6.3~11.3s ** (低Q 10s) | 中 |
| 9 | 线圈质量门 | 🔴 **替换最大风险 ** :V4B 有电感四级判定(含"恒判车"与"判为断开"),PD136HA 无 → **老线圈可能直接不工作 ** | 高 |
| 10 | 异常处理 | ✅ V4B 全面优于 PD136HA(断开**不断电自愈** vs 整机复位) | — |
---
## 1. 平台与量纲对齐(口径前提)
| 项 | PD136HA | DLD154V4B | 对齐含义 |
|---|---|---|---|
| MCU | HC32F005( M0+) | AT32F421F8P7( M4, 120MHz) | — |
| 运行形态 | 裸机主循环 | FreeRTOS 多任务 | — |
| **归一化基数 BASE ** | **32768 ** ( 2^15) | **131072 ** ( 2^17) | **差 4 倍 ** |
| 测量窗 | ≈21.8ms( 12MHz 假设,⚠待实测) | **1.09ms ** ( 131072 / 120MHz) | 快 ~20× |
| CAPVD 消费节拍 | 21.8ms | **10ms ** | 快 2.2× |
| 阈值公式 | `dlt = Origin × SensTable[SensLevel] >> 16` | `dlt = Origin × SensTable[SENS] >> 16` | **逐字同构 ** |
### 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. 进入灵敏度对齐(Δ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%),**默认档位替换风险最低**。
---
## 3. 释放与滞回对齐
| 档 | 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 counts( PD136HA 81) **异常宽**,说明档0 在 V4B 上是"极钝的进入 + 较高的释放线"的组合,现场基本不具备可比性;
- V4B 另有 PD136HA **完全没有**的兜底:**低Q 环带超时 2.5s 强制释放 ** ( `REL_BAND_TIMEOUT_TICKS=250` ,V4.36.30)—— 板停在触发-释放带回滞带内不再永久卡死。
---
## 4. 判据与滤波对齐(手感与抗扰)
| 项 | PD136HA | DLD154V4B |
|---|---|---|
| 进入判定 | **单次越线即判,无去抖 ** | `CAPVD < Origin− dlt` 连续 **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 次 |
### 4.1 ⚠ 关键风险:高速车 / 短占压
PD136HA 是**单次越线**,等效响应 ~21.8ms; V4B 需 **30~50ms ** 持续偏置,且进入前要过 **τ≈32ms ** 的 IIR。
粗算:车长 1m 的线圈,**100km/h( 27.8m/s)占压约 36ms**。
| 车速 | 占压时间 | PD136HA(单次) | V4B 低Q( 5 次=50ms) |
|---|---|---|---|
| 60km/h | 60ms | ✅ | ✅(临界) |
| 100km/h | 36ms | ✅ | ⚠ **可能漏检 ** |
| 120km/h | 30ms | ✅ | ⚠ 高风险 |
> **必须在现场实测**:用已知车速(或人工快速甩金属板)验证 V4B 高Q/低Q 两档的最小可检占压时间。若现场有高速道口,这是**是否可替换的硬门槛**。
---
## 5. 输出与时序对齐
| 项 | PD136HA | DLD154V4B | 结论 |
|---|---|---|---|
| 继电器 1( RLY1) | `SET_PLUS(DIP7)` ? `VD_FLAG\|FLAG_OUT` (宽存在) : `FLAG_PLUSE` (脉冲) | `SET_PLUS(SW_3)` ? `VD_FLAG\|FLAG_OUT` (存在) : `FLAG_PLUSE` (脉冲) | ✅ **分支结构逐字同构 ** |
| 继电器 2( RLY2) | `VD_FLAG` 存在输出,**无延时** | 存在输出(绿灯镜像) | ✅ 一致 |
| 脉冲宽 | `PLUSE_DELAY=10` × 50ms = **500ms ** | `PULSE_DELAY=10` × 50ms = **500ms ** | ✅ **同源同值 ** |
| IN_DELAY | 10 ticks(进入防抖计数已注释) | 500ms(时序标志,不影响继电器) | ✅ 等效 |
| **输出延时档 ** | * * `DELAY_TIME[3− SET_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` = 安全复位(触发复位) | ⚠ 需对照现场用途 |
> **§5 最高优先确认项**: PD136HA 的延时档(0/0.6/1.6/3s)现场**是否在用**?
> 若现场依赖 1.6s/3s 的脉冲延时(例如配合道闸缓冲、或错开相邻车道脉冲),**V4B 上无等效拨码**,需评估用上位机/时序改造替代 —— 这是替换前的**功能确认项**,不是性能项。
---
## 6. 超时与异常对齐(★ 同源常量,零成本)
| 项 | 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 现代实现),却共享同一族**超时语义**——替换后这部分的现场预期**完全不用改**。
---
## 7. 拨码迁移对照
### 7.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[3− SET_DLY]` ,即 DIP5-6 全 OFF → 3.0s)
### 7.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 **
### 7.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→最高)。该公式与 §7.3 表格(及 `product-manual.md:116-121`)不自洽。
> **30 秒实测即可定论**:单独翻转 SA_1(或 SA_2),看 DBG 打印的 `SENS` / `dlt` 变化方向;或万用表量 PA0/PA1 在 ON 时的电平。
### 7.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=脉冲输出)与代码**行为一致**。此条可从"待实测"降级为"已确认"。
---
## 8. 🔴 线圈质量门:替换的**最大**风险
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µH( f >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 边缘,该风险与 §8 叠加。
---
## 9. 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、fault, PD136HA 基本靠 LED 闪码。
6. **有限存在/安全复位语义完全同源 ** (300s / 240s),现场预期无需调整。
7. **分辨率 ** :同档 dlt 的计数是 PD136HA 的 2~4 倍,量化误差小 3.6~8.3×。
---
## 10. 待现场验证清单(替换前逐项打勾)
- [ ] * * ① 线圈电感**:每路线圈空场 f 是否落在 **18~125kHz ** ( 38µH~1.15mH)?<24µH 直接判定不可替换(§8)
- [ ] * * ② 最小可检占压**:用实测车速验证 V4B 高Q/低Q 档在 **100km/h(≈36ms 占压) ** 下是否可靠触发(§4.1)
- [ ] * * ③ 延时档用途**:现场是否使用 PD136HA 的 0.6/1.6/3s 脉冲延时?若在用,确认替代方案(§5)
- [ ] * * ④ 灵敏度档位**:现场当前 SA_1/SA_2 位置 → 按 §7.3 照搬;若为**档0**,必须复测灵敏度(V4B 钝 108%)
- [ ] * * ⑤ 拨码实测**:单翻 SA_1/SA_2 各一次,核对 `SENS/dlt` 方向与 §7.3 表格一致,并**顺手修正文档公式**(§7.3 注)
- [ ] * * ⑥ 上电就绪时间**:现场是否有"上电即可用"要求?低Q 线圈需 10s 巩固期(§6)
- [ ] * * ⑦ 输出模式**:确认 DIP7 / SW_3 位置与道闸期望(存在 vs 脉冲),并按 §7.4 极性核对
- [ ] * * ⑧ 相邻车道串扰**:若现场线距偏小,档1/档2 差值(−12% / −30%)会导致误触发倾向变化
---
## 11. 后续行动
- [ ] 修正 `DLD154V4B/docs/technical-spec.md:95` 的 `SENS = 3-(sw&0x03)` 表述(与代码/手册不一致)
- [ ] 修正 `models/DLD154V4B/analysis.md:109 / :184` 的同一处表述,并把 §7.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% ** → 手册需同步
- [ ] 现场实测后回填 §10 结论,并补一份 `docs/pd136ha-to-dld154v4b-field-checklist.md` (可打印版)
- [ ] 将"线圈质量门(电感四级)作为替换前置门槛"写入交付流程