6c82bf61b8b9b03cd8528a13ffce3741b1f037ed
用户反馈: 烧 V4.36.42 后离开 3、4 秒才释放。
定位(46µH/113kHz 日志): 4 次离开全是 Car_OFF(band_timeout), 延迟 3.5~4.7s; RLN 正常
(有车态 = Origin−41, 说明 G1 生效、100ms 自激已消失) ⇒ 问题出在"正常释放路径被挡住"。
根因: G3 的 g_rel_hold_tick-- 误放 if(!loop1_VD_FLAG) 无车分支(原 :1308) ⇒ 有车期间永不递减
⇒ 首次 Car_In 后常驻 30 ⇒ g_rel_hold_tick==0 永假 ⇒ 正常释放被永久挡住, 只能等 2.5s 环带兜底
+ 平滑值抬升 ⇒ 3.5~4.7s。
修复: 倒计时移到 } else { 有车分支顶部 (TaskLoop.c:1531 后、#if USE_FLATNESS_EXIT 之前,
每 tick 必过且在释放判定之前); 误放旧行改注释留痕。REL_MIN_HOLD_TICKS 仍 30(300ms)。
单测: 8/8 全绿(场景 7 语义不变); 新增"镜像能力边界"警告 —— 镜像只验证算法语义, 验证不了固件内
执行路径/放置位置, 此类问题必须靠日志 Car_OFF 原因字段(band_timeout/FLAT/普通)暴露。
文档: devlog V2.80(+条目) / spec 头 V2.62 / manual 表 V2.19 / cmcng.h 4.36.42→4.36.43 REV 43
/ 分析稿 §13 返工记录。
待现场: 离开延迟回到 ~300ms 内; 缓慢接近/停边界仍不跳。
DLD154V4B — 单路车检器
硬件规格
| 项目 | 说明 |
|---|---|
| 产品型号 | DLD154V4B |
| 主控 MCU | AT32F421F8P7 |
| 内核 | ARM Cortex-M4 |
| 主频 | 120 MHz |
| Flash | 64 KB |
| SRAM | 16 KB |
| 线圈通道 | 1 路 |
| 调试接口 | TTL 电平 Tx |
IO 资源分配
拨码开关
| 引脚 | 标识 | 功能 | 说明 |
|---|---|---|---|
| PA0 | SA_1 | 灵敏度 bit0 | 与 SA_2 组合,4 级灵敏度 |
| PA1 | SA_2 | 灵敏度 bit1 | |
| PA2 | SW_3 | 存在/脉冲 | 0=存在输出,1=脉冲输出 |
| PA3 | SW_4 | 离开延时 | 0=无, 1=500ms |
| PA4 | SW_5 | 安全复位 | 0=正常,1=安全复位 |
继电器输出
| 引脚 | 标识 | 功能 | 说明 |
|---|---|---|---|
| PA5 | RLY2 | 继电器 2 | 方向/第二路输出 |
| PA6 | RLY1 | 继电器 1 | 存在/脉冲/主输出 |
线圈输入捕获
| 引脚 | 标识 | 外设 | 功能 |
|---|---|---|---|
| PA7 | LP | TIM3_CH2 | 线圈频率输入捕获 |
指示灯
| 引脚 | 标识 | 颜色 | 功能 |
|---|---|---|---|
| PB1 | LEDA | 红色 | 呼吸灯(系统运行指示) |
| PA9 | LEDB | 绿色 | 有车亮 / 无车灭 |
| PA10 | LEDC | 黄色 | 故障指示 |
IO 汇总表
| 引脚 | 功能 | 方向 | 外设 |
|---|---|---|---|
| PA0 | SA_1 (灵敏度) | IN | GPIO |
| PA1 | SA_2 (灵敏度) | IN | GPIO |
| PA2 | SW_3 (存在/脉冲) | IN | GPIO |
| PA3 | SW_4 (离开延时) | IN | GPIO |
| PA4 | SW_5 (安全复位) | IN | GPIO |
| PA5 | RLY2 (继电器2) | OUT | GPIO |
| PA6 | RLY1 (继电器1) | OUT | GPIO |
| PA7 | LP (线圈捕获) | IN | TIM3_CH2 |
| PA9 | LEDB (绿灯) | OUT | GPIO |
| PA10 | LEDC (黄灯) | OUT | GPIO |
| PB1 | LEDA (红灯) | OUT | TIM / GPIO |
功能逻辑
拨码开关
| SA_2 | SA_1 | 灵敏度 |
|---|---|---|
| 0 | 0 | 低 |
| 0 | 1 | 中 |
| 1 | 0 | 高 |
| 1 | 1 | 最高 |
- SW_3:0 = 存在输出(继电器保持),1 = 脉冲输出(继电器吸合后释放)
- SW_4:0 = 无离开延时(直接输出脉冲),1 = 离开延时 500ms
- SW_5:拨到 ON 触发安全复位(所有输出关闭,频率重新学习)
指示灯
| 状态 | LEDA (红) | LEDB (绿) | LEDC (黄) |
|---|---|---|---|
| 正常运行、无车 | 呼吸 | 灭 | 灭 |
| 有车 | 呼吸 | 亮 | 灭 |
| 线圈故障(断开/短路) | 呼吸 | 灭 | 亮 |
| 安全复位中 | 快闪 | 灭 | 灭 |
继电器输出模式
存在输出(SW_3=0): 有车时 RLY1 吸合,无车释放。 脉冲输出(SW_3=1): 车辆进入时 RLY1 吸合 500ms 后释放。
目录结构
DLD154V4B/
├── src/ # 源代码
├── inc/ # 头文件
│ └── bsp_pins.h # 引脚定义
├── lib/ # 库文件
│ ├── HAL/ # AT32F421 标准外设库
│ └── CMSIS/ # ARM CMSIS-Core
├── docs/ # 文档
└── tools/ # 辅助工具
开发环境
- IDE: Keil MDK / AT32 IDE
- 调试器: SWD (PA13/PA14)
文档
| 文档 | 说明 |
|---|---|
| 产品发布说明 | V1.6 发布:特性、技术规格、版本历程 |
| 产品手册 | 面向用户:功能说明、安装指南、故障排查 |
| 技术规格书 | 面向工程:算法详解、IO 分配、电气参数、通信协议 |
| 开发日志 | 版本历史和设计决策记录 |
| 参考分析 | M1H (STC12C5202) + TLD-110 (P87LPC762) 算法分析 |
Languages
C
99.6%
Assembly
0.4%