Files
vd-analysis/models/DLD154V4B/analysis.md
T

119 lines
6.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.
# DLD154V4B 车检器分析
> 型号: DLD154V4B | 固件: V2.8V2.0 架构)| 平台: **AT32F421F8P7**Cortex-M4, 120MHz, FreeRTOS
> 源码: `vd_detector/DLD154V4B/utilities/at32f421_freertos_demo/`TaskLoop.c 914 行 + main.c
> **血缘:M1H 的现代实现**——灵敏度表/映射/IIR 系数继承,M4 优化(快 tick/确认/斜率限幅)是 8051 时代做不到的增量。
## 1. 平台与工程
| 项 | 值 |
|----|-----|
| MCU | AT32F421F8P7Cortex-M4 @120MHz, 64KB Flash |
| RTOS | FreeRTOSloop_task_function 主任务) |
| 工具链 | Keil MDK / AT32 标准库 |
| 看门狗 | **IWDT ≈1.64s**V2.10 新增,双保险喂狗) |
| 通信 | 无 RS485TTL 调试口 9600 8N1 |
## 2. 硬件资源
| 引脚 | 功能 |
|------|------|
| PA7 | LP 线圈捕获(TIM3_CH2DIV_2 → 捕获时钟 60MHz |
| PA0 / PA1 | SA1 / SA2 灵敏度拨码 |
| PA2 | SW3 存在/脉冲模式 |
| PA3 | SW4 离开延时开关 |
| PA4 | SW5 安全复位 |
| PA5 / PA6 | RLY2 辅助 / RLY1 主继电器 |
| PA9 / PA10 / PB1 | LEDA 绿 / LEDC 黄 / 红灯(TMR14 PWM 呼吸) |
## 3. 检测算法
### 3.1 频率测量
- TIM3_CH2 输入捕获(PA7),捕获时钟 60MHzDIV_2
- 归一化:`LPCNT = MEASUREMENT_BASE(131072) / Xn`**BASE=2^17**),累加 LPCNT 个周期得 Value ≈ 131072
- 测量窗 ≈ 131072/60MHz = **2.18 ms**
### 3.2 滤波(M4 优化,区别于参考型号)
- IIR`ALFA_CAP1=79` @10ms**τ≈32ms**
- **斜率限幅**:单次变化 >5% 截断(拒绝 EMI/闪电尖峰)
- **进入确认**:连续 3 次低于阈值才判有车(ENTRY_CONFIRM=3
### 3.3 基线
- 正常:`WINDOW_ORIGIN=500` 滑动平均(500×10ms = **5s**),有车冻结
- 稳定期:100 窗 + `STABLE_SAMPLES=128`(1.28s),绕过 IIR/斜率限幅直锁
- **冻结超时**`FREEZE_TIMEOUT=1000`(10s)+ ±2% 稳定性窗口,持续偏高且稳定才强制更新基线
### 3.4 进入/离开
- 进入:`CAPVD < Origin dlt`3 次确认),`dlt = Origin×SensTable[SENS]>>16`
- 离开:**简单滞回 3 次防抖**(V2.9 起默认,`(Origindlt)<CAPVD``cnt_release≥3`);平坦性三条件(CN200910309382)代码保留在 `#if USE_FLATNESS_EXIT` 内,**默认禁用**(现场实测不理想,2026-08-28
- 离开阈值 `dlt = Origin×SensTable_1[SENS]>>16`V2.11 起分档 {60,32,21,14},对齐 PD132T SENUP 标贴 OFF=出厂默认)
### 3.5 灵敏度表(M1H 继承,V2.8/V2.11 调整)
```
SensTable[4] = {300, 60, 32, 21} // 进入 (Δf/f: 0.46%…0.032%, V2.11 全档与 PD132T 完全一致)
SensTable_1[4] = { 60, 32, 21, 14} // 离开分档(V2.11 与 PD132T SensTable1 完全一致;原 {108,72,18,14}
```
- `SENS = 3-(sw&0x03)`(拨码反码,与 M1H 一致)
- ⚠ V2.82026-08-27):SENS=3 最高档 10→20、9→14——现场广告杆落杆误触发(落杆机械/电磁扰动越过 0.015% 阈值)
- ⚠ V2.112026-08-28):① 进入表 216/108/36/20→**300/60/32/21**0.33%/0.16%/0.055%/0.031%→0.458%/0.092%/0.049%/0.032% Δf/f)——PD132T 客户现场替换,**全档完全一致**;② 离开表 {108,72,18,14}→{60,32,21,14}(与 PD132T SensTable1 完全一致,SENUP 标贴 OFF=出厂默认态;若现场 SENUP 拨 ON 需改恒 14 表)
## 4. 时序/速率/周期速查(2026-08-27
> V4B 是**混合节拍**架构,与所有参考型号的单节拍不同:
| 量 | 值 | 说明 |
|----|-----|------|
| 检测主循环 | **10 ms** | FreeRTOS vTaskDelay(10)vd1_task 由 CAP_OK 门控 |
| 测量窗 | 2.18 ms | 131072/60MHzCAPVD 原始值节拍) |
| **CAPVD 更新节拍** | **10 ms** | IIR 消费节拍(vd1_task 在 10ms 循环跑) |
| **基线更新周期** | **5 s**500 窗) | 稳定期 1s100 窗) |
| IIR 时间常数 τ | **32 ms** | 10ms × 256/79 |
| 时序状态机 tick | **50 ms** | TMR15 ISR 5ms×10(进入/离开/脉冲/超时) |
| 进入确认 | 3×10ms = 30ms | + 时序 IN_DELAY 500ms |
| 离开判定 | 简单滞回 3 次防抖(平坦性 #if 禁用,V2.9 起) | + OUT_DELAY 500msSW4=ON |
| 脉冲宽 | 500 ms | PULSE_DELAY=10 @50ms |
| 有限存在 | **300 s** | HOLD_TIME=6000 @50ms |
| 安全复位 | **240 s** | LC_HOLD_TIME=4800 @50ms |
| 上电稳定 | 1.28 s | STABLE_SAMPLES=128 × 10ms |
| 看门狗 | IWDT ≈1.64sV2.10 | 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 次一致才生效。
## 6. 与 M1H 的血缘对比(同血统两代)
| 特征 | M1H (2008) | DLD154V4B |
|------|-----------|-----------|
| 平台 | STC12C5202 (8051, ~12MHz) | AT32F421 (M4, 120MHz) + FreeRTOS |
| 归一化基数 | 32768 | **131072**2^17,快 4 倍精度) |
| 测量窗 | 32.8ms | **2.18ms**(快 15×) |
| CAPVD 节拍 | 32.8ms | 10ms(快 3.3×) |
| 基线 | 100 窗 3.28s(有车也跟踪) | 500 窗 5s(有车冻结 + 冻结超时) |
| 灵敏度表 | {216,108,36,10}/{108,72,18,9} | {300,60,32,21}/{60,32,21,14}V2.11 全档与 PD132T 一致) |
| IIR | ALFA 79 @32.8ms τ=106ms | ALFA 79 @10ms **τ=32ms**(快 3.3×) |
| 进入 | 单次越线 | **3 次确认 + 斜率限幅** |
| 离开 | 简单阈值 | **简单滞回 3 次防抖**(平坦性 #if 禁用,V2.9 起) |
| 看门狗 | WDT_CONTR | **IWDT ≈1.64s**V2.10 双保险) |
| 时序 tick | 50ms | 检测 10ms + 时序 50ms(混合) |
## 7. 设计特点
1. **混合节拍**是本型号最大特色:检测(IIR/基线/判据)在 10ms 快循环,时序状态机(进入/离开/脉冲/超时)在 50ms tick——两者解耦,响应快且时序参数与 M1H 直接对齐
2. **基线三重保护**:有车冻结 + 冻结超时(10s)+ 稳定性检查(±2%)——比参考型号多一层环境自适应
3. **看门狗 V2.10 补齐**:此前"无看门狗"是全产品线例外项;V2.10 新增 IWDT(超时≈1.64sTMR15 ISR 计数 + 主循环 poll_wdg 双保险喂狗,对齐 154Pro WWDG 方案)——与 154Pro 的 WWDG 558ms / 960 的 IWDG 策略对齐
4. 平坦性离开判定(专利 CN200910309382)曾用于解决大车多峰频率曲线误触发,是参考型号没有的——**V2.9 起默认关闭**(现场实测不理想),切回简单滞回 3 次防抖(与 154Pro 一致),代码保留可开