wangfq eaec1bd1bd docs(DLD110SV4): 新增蓝牙小程序接口协议文档 (依据 dbn_ble_srv.c)
- 与 DLD154Pro 三处关键差异: 拨码灵敏度/3档表/无0x31
- §1 BLE 服务: 0xFFE0, Char1(0xFFE1 RW)/Char4(0xFFE4 Notify), 设备名 DLD110S
- §2-3 帧格式/分包: Magic(8F/7F)+Header+Len+CMD+Data+XOR+SUM; 14B 写死分包
- §4-5 命令: 0x10/0x1F/0x23/0x24/0x8A/0x92/0xC5 逐字段
- §6 主动上报 0xC0: type=5 线圈动态
- §7 坑清单: 拨码灵敏度不生效/3档/0x24偏移7=g_function_mode/0xC5超时疑bug
- devlog 置顶 2026-08-25 条目
2026-08-25 17:05:36 +08:00

DLD110SV4 单线圈蓝牙车辆检测器

硬件规格

项目 参数
MCU 沁恒 CH591R (RISC-V, BLE 5.1)
主频 60MHz (PLL)
Flash 192KB (BLE OTA 三段式布局, 应用区 28KB)
RAM 32KB (应用可用约 18KB, BLE 协议栈常驻)
通道数 1 路环形线圈
对外接口 BLE (小程序读写参数 / OTA / 状态上报)、双继电器
指示灯 红色电源灯 (硬件直连)、绿色状态灯 LEDA
灵敏度 滑动开关 3 级 + BLE 可配置灵敏度表

IO 资源分配

线圈测量

引脚 标识 外设 功能
PA9 LP TMR0 线圈信号输入捕获 (FallEdge_To_FallEdge)
PA12 F1 / FLEVEL_H GPIO 调频电容 33nF (0=接入)
PA13 F2 / FLEVEL_L GPIO 调频电容 10nF (0=接入)

频率档位 (loopFreq_Level): 高频 / 中高 / 中低 / 低频, 由两只电容组合切换。

输出与指示

引脚 标识 功能
PA8 RLY1 功能继电器: 存在 / 进入脉冲 / 离开脉冲 (output_mode 配置)
PB23 RLY2 存在继电器
PB22 LEDA 绿灯: 有车亮 / 无车灭; 稳定期 200ms 快闪; 断线 150ms 快闪

滑动开关

引脚 标识 功能
PA14 KEY_SA1 灵敏度选择 (与 SA2 组合出 3 级)
PA15 KEY_SA2 灵敏度选择

SA1=1/SA2=1 → 0 档(低); SA1=0/SA2=1 → 1 档(中); SA1=1/SA2=0 → 2 档(高)。

检测算法 (V2.0, 移植自 DLD154V4B)

  • 自适应测量窗: LPCNT = 2^19 / Xn, 测量窗时长 ~8.74ms @60MHz, 与线圈频率无关, Value = ΣXn ≈ 524288
  • 一阶 IIR α=79/256 + 斜率限幅 5% (拒绝 EMI 瞬态尖峰)
  • 稳定期: 上电/复位后 128 窗 (~1.1s) 小窗口(100)快速收敛, 绕过滤波
  • 基线跟踪: 窗口 500 (~4.4s); 冻结保护: CAPVD 偏离 4×阈值时暂停跟踪, 持续 ~8.7s 且波动 ±2% 以内才强制接受新基线 (温漂/换线圈自适应, 慢速进车不误吸收)
  • 进入判定: CAPVD < Origin - Origin×sens_in/65536, 连续 3 次确认
  • 离开判定: 平坦性三条件 (幅值回归 + 一阶平坦 + 二阶平坦, 专利 CN200910309382), 滞回阈值 sens_out
  • 有限存在超时 / 线圈断开重连: 全复位重建基线, 继电器保持释放
  • 安全复位: loopSafe_Timeout 非 0 时, 有车持续超时后重新初始化基线

工程结构

DLD110SV4/
├── BLE/
│   ├── DLD110S_Peripheral_28K/   # 主应用 (检测算法 + BLE DBN 服务)
│   │   ├── APP/
│   │   │   ├── peripheral_main.c # 主流程 + 检测算法 + TMR0/TMR1 ISR
│   │   │   ├── dbn_ble_srv.c     # DBN BLE 协议服务 (小程序对接)
│   │   │   ├── peripheral.c      # BLE 外设角色管理
│   │   │   └── storage.c         # 参数存储 (EEPROM)
│   │   ├── Profile/              # GATT Profile
│   │   ├── Startup / Ld          # 启动文件 / 链接脚本
│   │   └── DLD110S_Peripheral_28K.wvproj
│   ├── 592OnlyUpdateApp_IAP_28K/     # OTA IAP 引导
│   ├── 592OnlyUpdateApp_JumpIAP_28K/ # 跳转 IAP
│   ├── HAL/                      # MCU / RTC / KEY / LED
│   └── LIB/                      # CH59x BLE ROM 库
├── SRC/                          # StdPeriphDriver / RVMSIS / Startup / Ld
├── docs/                         # 硬件资源文档 / CH592 datasheet / devlog
└── tools/

开发环境

  • IDE: MounRiver Studio (wvproj)
  • 调试串口: UART0 (PA14 TX, 仅 DEBUG 编译, 230400bps; 与 KEY_SA1 复用)
  • 版本: 见 APP/include/cmcng.h (FIRMWARE_VER)

文档

  • docs/DLD110SV4硬件资源.md — 硬件 IO 说明
  • docs/devlog.md — 开发日志
  • docs/CH592DS1.PDF — CH592/591 datasheet
S
Description
DLD110SV4B 单线圈蓝牙车检器 (CH591R, BLE OTA)
Readme
2.4 MiB
Languages
C 97.5%
Assembly 1.5%
Linker Script 1%