Files
vd-analysis/models/DLD154V4B/analysis.md
T
wangfq 6c27acb7c0 sync(DLD154V4B): 快照 V2.8 → V4.36.40 (2026-09-09)
analysis.md 全面刷新:
- 平台: AT32F421+FreeRTOS, IWDT 1.64s, 版本体系 4.36.x REV
- 测频: 120MHz tick 口径修正 (f=240000*LPCNT/CAPVD), 测量窗 1.09ms (旧稿 2.18ms 误)
- 滤波: ALFA_CAP1=79 + 斜率限幅 + 进入/释放确认按Q档(3/4/5) + 低Q 释放平滑 REL_ALFA=30
- 基线: 判稳 0.1%/2窗/5s兜底 + 就绪巩固期 Q 分级 5/7/10s + 环境重校准 2s/7s/2s
  + 释放后冻结1s+降权2s*1/5 + 真空EMA(min(Origin,EMA), 门控>1dlt) + cast bug 治本
- 判据: 低Q 环带超时 2.5s + 带回×1.8 + 灵敏度表方案B {337,71,38,25}/{51,27,18,12}
- 电感四分: 18~125k正常 / 出窗一长一短 / 156~171k可用级一长两短恒判车
  / >171k短路级快闪 + COIL_UNDER_MIN_AS_OPEN 默认1等同断开
- 新增 §8 V4.30~V4.36 演进 (低Q治理链6机理 + 电感分级拍板链)
- 硬件: 产品口径 C_eff=43nF (三极管库存板), 0Ω 板 68 仅实验

配套: README 版本索引, cross-model-comparison 参数行 (测量窗/基线/灵敏度表/确认数)
hardware-loop-frontend 2.18ms→1.09ms 勘误, delivery-alignment 加现状更新注
2026-09-09 13:35:48 +08:00

19 KiB
Raw Blame History

DLD154V4B 车检器分析

型号: DLD154V4B | 固件: V4.36.402026-09-09 刷新;此前快照 V4.29 / V2.8| 平台: AT32F421F8P7Cortex-M4, 120MHz, FreeRTOS 源码: vd_detector/DLD154V4B/utilities/at32f421_freertos_demo/TaskLoop.c 1797 行 + main.c 304 行) 原理图: models/DLD154V4B/DLD154V4_Ver4.01-20251021_Logic.pdf(本仓附件,2026-09-03 由 Ver3.00 更新) 硬件变更: 见文末(2026-09-03R19 拆 + R27 补焊 0Ω 的实验板;产品仍用三极管库存板 R19 在 / R27 空,C_eff=43nF 硬件前端对比: docs/hardware-loop-frontend-pd132t-vs-v4b.md(直连 vs PD132T CD4060 分频) 血缘:M1H 的现代实现——灵敏度表/映射/IIR 系数继承,M4 优化(快 tick/确认/斜率限幅)是 8051 时代做不到的增量。

1. 平台与工程

MCU AT32F421F8P7Cortex-M4 @120MHz, 64KB Flash
RTOS FreeRTOSloop_task_function 主任务)
工具链 Keil MDK / AT32 标准库
版本体系 4.36.x REV 修订号制V2.35 引入):MAIN/SUB 产品定,小功能/参数/文档只 bump REV;启动打印 fw:4.36.x main=4 sub=36 rev=x hw:3.00
看门狗 IWDT ≈1.64sV2.10 新增,TMR15 ISR 5ms 递增 + 主循环 poll_wdg 500ms 双保险喂狗)
通信 无 RS485TTL 调试口 9600 8N1DBG 周期 2s + EVT 事件)

固件演进:V4.23 判稳/呼吸 → V4.24 环境重校准 → V4.25 黄灯预判锁存 → V4.26 电感量监视+补偿提速 → V4.27 频率测量 4 倍修正 → V4.28/29 C_eff 标定 → V4.30~V4.36 低Q 释放/卡死治理链 + 电感分级产品化语义(详见 §8)。 详细见 DLD154V4B 仓 docs/devlog.mdV2.77)。

2. 硬件资源

引脚 功能
PA7 LP 线圈捕获(TIM3_CH2,输入 DIV_2 = 每 2 信号沿捕获一次;计数器 tick=120MHz
PA0 / PA1 SA1 / SA2 灵敏度拨码
PA2 SW3 存在/脉冲模式
PA3 SW4 离开延时开关
PA4 SW5 安全复位
PA5 / PA6 RLY2 默认输出(绿灯镜像此路) / RLY1 拨码可选脉冲继电器
PA9 / PA10 / PB1 LEDA 绿 / LEDC 黄 / 红灯(TMR14 PWM 呼吸)

振荡回路(原理图 Ver4.01):固定 33nF + 拨码经 R27 0Ω(实验板)/ 三极管电路 R19(产品库存板) 接通第二颗 33nF → 两级频率(名义 66nF 低频 / 33nF 高频)。⚠ 固件无法读档位(拨码不引 IO)。

产品电容口径(重要):产品 = 三极管库存板(R19 在 / R27 空),低频档实测 C_eff≈43nF41.3~45.5V4.34 基准); 0Ω 实验板 C_eff≈68(仅机理验证,不用于产品计算)。高频档(33nF)实测 C_eff≈34.4。

3. 检测算法

3.1 频率测量

  • TIM3_CH2 输入捕获(PA7):计数器 tick = 120MHzsclkAPB1÷1),通道输入 DIV_2(每 2 信号沿捕获 1 次)
  • ⚠ V4.27 修正(2026-09-03):旧实现 calc_freq 按 60MHz 假设且未补偿 DIV_2 → f 打印/估算低 4 倍(示波器 30.23kHz vs 打印 7kHz);修正后 f_kHz = 240000×LPCNT/CAPVD(等效 240000/Xn
  • 归一化:LPCNT = MEASUREMENT_BASE(131072) / XnBASE=2^17),累加 LPCNT 个周期得 Value ≈ 131072
  • 测量窗 ≈ 131072/(120MHz tick) = 1.09 msValue=Σ Xn 计数,1 计数=1/120M s
  • 强制断开期(fault3Xn/Value 仍由 TMR3 捕获 ISR 实时更新,而 Origin 只在 vd1_task 更新(停摆即冻结)——V4.36.40 热切换修复的关键依据

3.2 滤波(M4 优化,区别于参考型号)

  • IIRALFA_CAP1=79 @10ms → τ≈32ms
  • 斜率限幅:单次变化 >5% 截断(拒绝 EMI/闪电尖峰)
  • 进入/释放确认按 Q 档V4.36.8Q∝1/f 代理):进入 ENTRY_CONFIRM 高Q(f≤80k)=3 / 中Q(80~100k)=4 / 低Q(f>100k)=5 释放 REL_CONFIRM 高3 / 中4 / 低5(低Q 抖动大,多样本防假进入/输出抖落)
  • 低Q 释放平滑V4.36.19/26):REL_ALFA=30 @10ms → τ≈85ms,独立 IIR 仅用于低Q 释放判定(复刻打印降采样平均效应抗抖)
  • 释放慢滤波 RELEASE_ALFA=21 @10ms → τ≈117ms(对齐 PD132T α79@43.7ms

3.3 基线

  • 正常:WINDOW_ORIGIN=500 滑动平均(500×10ms = 5s),有车冻结
  • 上电判稳(V4.23 重写):窗口 100 样本≈1s,窗口均值漂移 ≤ 0.1%STABLE_ORIGIN_PPT=1)连续 2 窗 → settle_cnt++ 判稳 =(≥128 样本 && ≥2 窗)|| ≥500 样本兜底(STABLE_MAX_SAMPLES=500, 5s);退出/重新初始化清零 → 杜绝二次稳定期 1 样本瞬判
  • 就绪巩固期 Q 分级V4.36.36):判稳完成(Loop stable)后绿灯按 Q 档继续慢闪—— 高Q 5sREADY_HOLD_HI=1000/ 中Q 7s1400/ 低Q 10s2000),5ms tick 递减。 目的:低Q 线圈上电自检完(绿灯灭)立刻压板易绿灯常亮,巩固期内 Origin/EMA/滤波真实多收敛 5~10s
  • 冻结超时FREEZE_TIMEOUT=1000(10s)+ ±2% 稳定性窗口,持续偏高且稳定才强制更新基线
  • 环境重校准(V4.24/31,受控替换)dev > +4×dlt 高位判定为疑似环境变化后:
    1. 黄灯预判锁存 ENV_WARN_WAIT=2002s)→ 常亮;回摆/目标靠近不灭
    2. 冻结等待 ENV_RESYNC_WAIT=7007sV4.31 拍板 预判2s+补偿7s+恢复2s;回摆清零)
    3. 学习窗 200tick2s)空闲均值 ×3 + settle 语义(漂移 ≤0.1%),预算 ENV_LEARN_MAX_TICKS=300030s)放弃
    4. 空闲原子替换 Originenv_resync_apply+ 清冻结三件套;ENV_RECOVER_WAIT=2002s)空闲确认后解除预判
  • 释放后 Origin 分级补偿V4.36.26/32,仿 PD132T 慢采样等效): 释放后全冻结 1sREL_ORIGIN_FREEZE_TICKS=100)→ 残余缓离窗口不入均值窗; 之后 降权 2s ×1/5ORIGIN_LOWLEARN_TICKS=200,均值窗 500→2500 样本 / 25s 窗,ORIGIN_LOWLEARN_MULT=5) ——切断"残余低值样本拉低 Origin → 释放线下降 → cycle 正反馈"
  • 真空 EMA 重锚 B3V4.36.31/33/35):VACUUM_EMA_ALFA=128(τ≈1.28s)跟踪无车真空; 判定参考 vac_ref = min(Origin, EMA),但仅当 OriginEMA > 1×dltVAC_REF_DELTA_DLT=1,真锚错)才用 EMA 锚低 ——防金属板悬停感应边缘快速拉低 EMA 导致触发线漂移。 ⚠ V4.36.31 cast bugV4.36.35 治本)(uint32_t)(负差)/128 = +3355万/样本(C 语义:负转无符号爆炸); 修复 = 有符号先除 g += (uint32_t)(_ema_d/128)V4.36.34 的"偏差>25% 自愈重置"保留为最后防线

3.4 进入/离开

  • 进入:CAPVD < Origin dlt(按 Q 档 3/4/5 次确认),dlt = Origin×SensTable[SENS]>>16
  • 离开:简单滞回 3 次防抖V2.9 起默认,(Origindlt)<CAPVDcnt_release≥3);平坦性三条件(CN200910309382)代码保留在 #if USE_FLATNESS_EXIT 内,默认禁用(现场实测不理想,2026-08-28)
  • 离开阈值 dlt_rel = Origin×SensTable_1[SENS]>>16
  • 低Q 环带超时兜底(V4.36.30,时间回滞替代空间回滞):板停在触发-释放回滞带内不再永久卡死—— CAPVD > 进入线 持续 REL_BAND_TIMEOUT_TICKS=2502.5s)→ 强制释放
  • 低Q 释放带回加宽(V4.36.28):REL_BAND_LO_MULT=180dlt_rel×1.823→41 counts@SENS3),回滞 = 4941 = 8 counts

3.5 灵敏度表

USE_PLANB_TABLE = 1  (方案BV4.06 定稿,实际编译)
SensTable[4]   = {337,  71,  38,  25}   // 进入(调深;V4.07 SENS=0 回调 357→337
SensTable_1[4] = { 51,  27,  18,  12}   // 释放(调浅;等比 ×25/21 ×12/14

USE_PLANB_TABLE = 0  PD132T 完全对齐表,备选)
SensTable[4]   = {300,  60,  32,  21}   // V2.11:全档与 PD132T 一致
SensTable_1[4] = { 60,  32,  21,  14}
  • SENS = 3-(sw&0x03)(拨码反码,与 M1H 一致);拨码去抖:连续 5 次一致才生效
  • ⚠ V2.8SENS=3 最高档 10→20、9→14——现场广告杆落杆误触发(机械/电磁扰动越过 0.015% 阈值)
  • ⚠ V2.11:全档对齐 PD132T(客户现场替换需求);V4.06 起方案B 现场调校(SENS=3 实测接近 PD132T

3.6 线圈电感量监视(V4.26 → V4.36.37 四分)

  • 判据:默认低频档口径,空场频率合理窗 18~125kHzV4.36.9/18/25 收敛:20120 → 18125
  • 条件:仅稳定 + 无车 + 未断开时判(无车主路径调用,Origin 反推空场 f;车压/自检不判);越界/恢复均 5s 防抖COIL_FAULT_HOLD_TICKS=500V4.36.21 自 1s 加长)
  • 四分级语义V4.36.25 三分 → V4.36.37 方案A 分级):
f 区间 电感(43nF fault 黄灯 判定
18~125k 38µH~1.15mH 0 正常
f<18k L 偏大 1 一长一短 照常
125~156k 24~38µH 1 一长一短 照常
156~171k 20~24µH 2 一长两短V4.36.38 恒判车(不随宏)
f>171k <20µH 短路级 3 快闪 200ms(同真断开) 宏=0 判车 / 宏=1 等同断开
  • 宏与阈值:
    • COIL_L_MIN_UH=24COIL_L_MIN_F_KHZ=156f@24µH=156.7k
    • COIL_L_SHORT_UH=20COIL_L_SHORT_F_KHZ=171f@20µH=171.6kV4.36.37 新增)
    • COIL_UNDER_MIN_AS_OPEN默认 1(V4.36.39 用户拍板出厂态)——短路级=完全断开态(判定暂停 + 继电器保持释放 + 绿灯灭 + 黄灯快闪 + 专职恢复监测);0 保留"仅快闪提示、判定照常"
  • 诊断:EVT|coil_fault f:xx kHz L~xxx uH ...EVT|coil_ok ...
  • L 估算V4.28/29/34):L_uH = 2.533e7/(f_kHz² × COIL_CAL_C_NF),产品宏 43(三极管库存板;0Ω 板 68 仅实验)
  • 热切换恢复(V4.36.40 修复):短路级强制断开期 vd1_task 停摆 → Origin/LPCNT 冻结 → 旧 recover 用冻结值判 f 永远 >171k → 换正常线圈也不恢复(只能断电)。 修复:recover 改用 TMR3 捕获 ISR 实时 Xnf=240000/Xn)判回窗,连续 5s → 实时置档 → ISR 停压 LOOP_OK → 主循环上升沿自动发起重连确认(100ms)→ 无车判稳门控 → Origin 判稳重建 → 正常线圈 fault 归 0。换线圈不断电约 6s 自愈

3.7 指示逻辑

  • 红灯TMR14 PWM 呼吸(PB1,暗→暗 2520ms60ms/步)
  • 绿灯= RLY2PA5odt 镜像(吸合亮/释放灭,V4.36.10 由 RLY1 改默认继电器); 自检/判稳/就绪巩固期慢闪(!LOOP_OK || g_reconn_stab || fault==3 || !stable || ready_hold>0
  • 黄灯优先级链V4.36.38 现行,1>4>2>1'>3>灭):
    1. 快闪 200ms!LOOP_OK(断开/从未接)或 g_reconn_stab(重连判稳中)或 fault==3 短路级
    2. 常亮:环境异常预判/重校准学习(g_env_warn/g_env_resync 锁存)
    3. 一长两短900/300/100/300/100/700ms6 相):fault==2 可用级(20~24µH
    4. 一长一短(900/300/100/700ms4 相):fault==1 出窗(L 偏大 / 24~38µH
    5. N 短闪(80ms 亮/200ms 灭 ×N≤31.2s 间隔):断开史
  • 现场判读口诀:一长两短=偏低但能用(照常判车);一长一短=出窗仍可用;快闪=真断开或 <20µH 短路级

4. 时序/速率/周期速查(2026-09-09 V4.36.40 刷新)

V4B 是混合节拍架构,与所有参考型号的单节拍不同:

说明
检测主循环 10 ms FreeRTOS vTaskDelay(10)vd1_task 由 CAP_OK 门控
测量窗 1.09 ms 131072/120MHzCAPVD 原始值节拍)
CAPVD 更新节拍 10 ms IIR 消费节拍(vd1_task 在 10ms 循环跑)
基线更新周期 5 s500 窗) 稳定期 ~1.3s 判稳(128 样本 + 2 窗漂移 ≤0.1%
IIR 时间常数 τ 32 ms 10ms × 256/79(低Q 释放平滑另用 REL_ALFA=30 → τ≈85ms
时序状态机 tick 50 ms TMR15 ISR 5ms×10(进入/离开/脉冲/超时)
进入确认 35×10ms = 3050ms 按 Q 档(高3/中4/低5 + 时序 IN_DELAY 500ms
离开判定 简单滞回 3~5 次防抖(平坦性 #if 禁用) 按 Q 档 + OUT_DELAY 500msSW4=ON
低Q 环带超时兜底 2.5 s CAPVD>进入线持续 → 强制释放(V4.36.30)
释放后 Origin 补偿 冻结 1s + 降权 2s×1/5 V4.36.26/32
真空 EMA τ≈1.28 s V4.36.31(α=1/128
脉冲宽 500 ms PULSE_DELAY=10 @50ms
有限存在 300 s HOLD_TIME=6000 @50ms
安全复位 240 s LC_HOLD_TIME=4800 @50ms
环境重校准 2s 预判 → 7s 补偿 → 2s 恢复 ENV_WARN/RESYNC/RECOVER 200/700/200 + 学习 3×200tick,预算 30s
就绪巩固期 5s / 7s / 10s 按 Q 档(高/中/低),绿灯慢闪,V4.36.36
线圈监视防抖 5 s 500×10mscoil_monitor,仅稳定无车判)
重连确认窗 100 ms 载波连续恢复计数(V4.36.2
重连起振抑制 200 / 300 / 1500 ms 按 Q 档(高/中/低,V4.36.7/11
重连判稳门控 600ms 无漂移 / 5s 兜底 V4.36.15(值稳定才放行)
有车断开继电器保持 1000 ms RELAY_HOLD_MSV4.36.3/7
DBG 周期打印 2 s 含 f_kHz + L_uHC_eff 标定后)
看门狗 IWDT ≈1.64s TMR15 ISR 计数 + 主循环 poll_wdg 500ms 喂狗

5. 拨码与配置

DIP 引脚 ON=1 OFF=0
SA_1/SA_2 PA0/PA1 灵敏度低位/高位 SENS = 3-(sw&0x03)
SW_3 PA2 脉冲输出 存在输出
SW_4 PA3 离开延时 500ms 无延时
SW_5 PA4 安全复位 正常运行

拨码去抖:连续 5 次一致才生效。 频率档位(33/66nF)不在 DIP 内,由板载拨码直控电容(不引 MCU IO)→ 固件按默认低频档标定。 ⚠ 拨码不重启检测器(无复位电路联动)——电感分级变更后靠自动恢复机制收敛,无需断电。

6. 与 M1H 的血缘对比(同血统两代)

特征 M1H (2008) DLD154V4B
平台 STC12C5202 (8051, ~12MHz) AT32F421 (M4, 120MHz) + FreeRTOS
归一化基数 32768 1310722^17,快 4 倍精度)
测量窗 32.8ms 1.09ms(快 30×;V4.27 修正 120M tick 口径)
CAPVD 节拍 32.8ms 10ms(快 3.3×)
基线 100 窗 3.28s(有车也跟踪) 500 窗 5s(有车冻结 + 冻结超时 + 环境重校准 + 释放后分级补偿)
灵敏度表 {216,108,36,10}/{108,72,18,9} 方案B {337,71,38,25}/{51,27,18,12}(现场调校);PD132T 对齐表 {300,60,32,21}/{60,32,21,14}
IIR ALFA 79 @32.8ms τ=106ms ALFA 79 @10ms τ=32ms(快 3.3×)
进入 单次越线 3~5 次确认(按Q档) + 斜率限幅
离开 简单阈值 简单滞回 3~5 次防抖 + 环带超时兜底
产品自诊断 断开编码 / 电感四分监视(18~125k)+ L 粗估 + 短路级等同断开 + 热切换自愈
看门狗 WDT_CONTR IWDT ≈1.64sV2.10 双保险)
时序 tick 50ms 检测 10ms + 时序 50ms(混合)

7. 设计特点

  1. 混合节拍是本型号最大特色:检测(IIR/基线/判据)在 10ms 快循环,时序状态机(进入/离开/脉冲/超时)在 50ms tick——两者解耦,响应快且时序参数与 M1H 直接对齐
  2. 基线多重保护:有车冻结 + 冻结超时(10s)+ 稳定性检查(±2%)+ 受控环境重校准(2s 预判/7s 补偿/30s 放弃)+ 释放后冻结 1s + 降权 2s——比参考型号多三层自适应
  3. 低Q 专项治理V4.30~V4.36,见 §8):环带超时兜底、真空 EMA 重锚、释放平滑、带回加宽、确认分档——23µH 级低Q 线圈从"偶发锁死 75s"到"全程可控释放"
  4. 平坦性离开判定(专利 CN200910309382)是参考型号没有的——V2.9 起默认关闭(现场实测不理想),切回简单滞回(与 154Pro 一致),代码保留可开
  5. 黄灯人机接口完整V4.23~V4.38):快闪 > 环境学习锁存 > 一长两短(可用级) > 一长一短(出窗)> 断开史 N 短闪 > 灭——现场 10s 级可判故障类型与"能不能用"
  6. 自诊断带校准V4.26~V4.40):电感监视基于真实频率(V4.27 修正 4 倍)+ 标定等效电容(产品 C_eff=43)+ 四分语义 + 短路级等同断开(默认开)+ 热切换不断电自愈

8. V4.30~V4.36 演进(2026-09-04 ~ 09-09,低Q 治理链 + 产品化语义)

8.1 低Q 释放/卡死治理链(机理编号)

机理 现象 药方(版本)
1 Origin 学高锚错 V4.36.26 释放后冻结 500ms + τ85ms
2 差 1~2 counts 脆断 V4.36.28 REL_BAND_LO_MULT 150→180(带回 41
3 板深停触发区 V4.36.29 容差 4已撤,太易释放)→ V4.36.30 环带超时 2.5s 兜底
4 Origin 学到搁置位 V4.36.31/33 真空 EMA 重锚min(Origin,EMA),门控 >1×dlt
5 残余缓离拉低 Origin V4.36.32 冻结 1s + 降权 2s×1/5(仿 PD132T 慢采样)
6 EMA cast 爆炸 V4.36.34 钳位+自愈(掩盖)→ V4.36.35 有符号先除治本(uint32)负差/128=+3355万

诊断字段(V4.36.27/34):DBG 行含 QLO/RSM/RLN/RCN/VEM/SUMADR 每 10s 打 &VEM &ORGSUM &Origin &RSM

8.2 电感分级产品化语义(用户拍板链)

版本 变更 决策
V4.36.20~23 最低电感量 20 → 25 → 24µH 频率上限 171 → 153 → 156kHz
V4.36.24 COIL_UNDER_MIN_AS_OPEN 双模式 0=仅快闪 / 1=完全断开
V4.36.25 电感三分:窗回 125k125~156k 一长一短;>156k 快闪 修正误归正常
V4.36.37 方案A 分级降级(用户选 A fault2 = 156~171k 保判车 + 独立黄灯;fault3 = >171k 短路级才等同断开
V4.36.38 fault2 黄灯 疾闪 100ms → 一长两短(用户定) 与一长一短同家族、"两短"区分
V4.36.39 宏默认 0 → 1(用户拍板) 短路级出厂即等同断开,客户无需编译期开宏
V4.36.40 热切换死锁修复 recover 用实时 Xn 判回窗;换线圈不断电 ~6s 自愈

语义要点:不误杀 20~24µH 的"低但可用"线圈(照常判车+一长两短提示);<20µH 真短路级才停判(不可靠输出风险)。


2026-09-03 硬件变更:拨码电容开关旁路三极管(原理图 Ver4.01)

准确改动(用户确认):

  • R19 取下(拆除)
  • R27 补焊 0Ω(原空贴)
  • 效果 = 拨码开关不再经过三极管电路,通过 0Ω 电阻直接控制第二颗 33nF 电容

原因/效果2026-09-03 现场标定):

  • 原电路(拨码经三极管控电容):低频档(66nF 名义)实测等效谐振电容 C_eff≈43nF(2 台 5 组反推),第二颗 33nF 只等效并入 ~8.6nF
  • 旁路后(0Ω 直控):C_eff=68.1~68.9nF(均值 68.4)≈ 名义 66nF,电容全量并入
  • 产品决策(V4.34:产品基准回到三极管库存板——COIL_CAL_C_NF=43,0Ω 改动仅作机理验证(库存板存量消化优先)
  • 33nF(高频)档标定 34(两板一致)