- 自适应测量窗 2^19 (~8.74ms @60MHz), IIR 79/256 + 斜率限幅 5% - 稳定期 128 窗快速收敛; 基线跟踪窗 500 + 冻结保护(超时+稳定性双条件) - 进入确认 3 次; 平坦性三条件离开 (CN200910309382), 阈值按新幅值基准缩放 - 删除 FltHistoryManager/SecondOrderState/StageRangeConfig/二次判断/FUNCTION_A/B - 断线重连/有限存在超时: 全复位重建基线; 安全复位恢复启用; 灵敏度开关运行时生效 - BLE: loop_capvd 去掉 <<5, condition 改用 g_env_activity, variation 幅值基准 8x - 修复 update_moving_average window uint8 截断; 稳定期计数器改全局可复位 - FIRMWARE_VER 4.00 -> 4.20; 新增 README.md 与 docs/devlog.md
90 lines
3.8 KiB
Markdown
90 lines
3.8 KiB
Markdown
# 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
|