refactor: 输出融合模式枚举重排,出厂默认模式0(地感或光耦)

枚举值重新分配:
  旧: 0=复位 1=仅地感 2=仅光耦 3=或 4=且 5=混行 6=ETC
  新: 0=或   1=且     2=混行   3=ETC 4=仅地感 5=仅光耦 6=复位

涉及:
- storage.h: 枚举顺序重排
- peripheral_main.c: 注释号同步; LED区间判断改用精确比较; 工厂默认direction_mode=0x00
- 三份文档: 融合模式表/示例/默认值全部同步
This commit is contained in:
wangfq
2026-07-29 18:46:35 +08:00
parent c22d55236f
commit 8a01a5e769
6 changed files with 83 additions and 52 deletions
+28
View File
@@ -4,6 +4,34 @@
---
## 2026-07-29 — 输出融合模式枚举重排
### 变更
枚举值重新分配,将高频使用的融合模式前置:
```
旧: 0=复位 1=仅地感 2=仅光耦 3=或 4=且 5=混行 6=ETC
新: 0=或 1=且 2=混行 3=ETC 4=仅地感 5=仅光耦 6=复位
```
### 涉及文件
| 文件 | 变更 |
|------|------|
| `storage.h` | `DLD_OUTPUT_MODE` 枚举顺序重排 |
| `peripheral_main.c` | 注释号同步更新 (0→6, 1→4, 2/3/4→0/1/5, 5/6→2/3); L1279 `>= RADAR_ONLY` 区间判断→精确 `!=LOOP_ONLY && !=LOOP_X_RESET` 比较; 工厂默认 `direction_mode=0x04` (仅地感) |
| `docs/technical-spec.md` | §6 融合模式表 + 状态机标题 |
| `docs/product-manual.md` | §4.6 融合模式表 |
| `docs/rs485-modbus-protocol.md` | V1.3→V1.4: §3.3 默认值、§4.3/4.4 示例、§6.5 表格、复位注释 |
| `docs/devlog.md` | 本条目 |
### 影响
- 已有测试设备的 flash 配置 (`direction_mode` 低 4 位) 需要重新设置,旧值与新模式语义不兼容
- 代码逻辑(命名常量比较)不受影响,仅枚举值和注释变更
---
## 2026-07-29 — 发布 V3.01 版本文档:技术规格书 + 产品说明书
### 文档产出
+8 -8
View File
@@ -170,15 +170,15 @@ DLD154Pro 支持通过光耦输入接入外部雷达/车检器的干接点信号
| 模式 | 名称 | 继电器吸合条件 | 适用场景 |
|------|------|--------------|---------|
| 0 | 光耦复位 | 仅地感(光耦用于远程复位) | 需要远程复位功能 |
| 1 | **仅地感** | 线圈有车 | 纯线圈场景(默认,未接光耦时也用此模式 |
| 2 | 仅光耦 | 光耦输入有效 | 纯雷达,地感做背景监控 |
| 3 | 地感**或**光耦 | 任一触发 | 互补冗余,提高检测可靠性 |
| 4 | 地感**且**光耦 | 两者同时触发 | 双确认,防地感误触(行人/拖车) |
| 5 | **人车混行防砸** | 有车后任一触发,离场 3s 窗口内光耦有效 | 混合交通防砸人 |
| 6 | **ETC 模式** | 有车后任一触发,光耦断开 500ms 防抖才释放 | ETC 车道 |
| 0 | 地感**或**光耦 | 任一触发 | 互补冗余,提高检测可靠性(默认) |
| 1 | 地感**且**光耦 | 两者同时触发 | 双确认,防地感误触(行人/拖车 |
| 2 | **人车混行防砸** | 有车后任一触发,离场 3s 窗口内光耦有效 | 混合交通防砸人 |
| 3 | **ETC 模式** | 有车后任一触发,光耦断开 500ms 防抖才释放 | ETC 车道 |
| 4 | 地感 | 线圈有车 | 纯线圈场景 |
| 5 | 仅光耦 | 光耦输入有效 | 纯雷达,地感做背景监控 |
| 6 | 光耦复位 | 仅地感(光耦用于远程复位) | 需要远程复位功能 |
**人车混行防砸 (模式 5) 工作原理:**
**人车混行防砸 (模式 2) 工作原理:**
1. 平常状态只用线圈检测,屏蔽光耦(防行人误触)
2. 线圈检测到车、继电器吸合后,光耦信号也参与(人或雷达都能续吸)
3. 车离开线圈+雷达区域后,保留 **3 秒防砸窗口**——期间光耦检测到人立即吸合
+21 -20
View File
@@ -82,7 +82,7 @@
| 0x0007 | Variation Lo | int16 | | 变化量,低 16 位 |
| 0x0008 | FW Version | uint16 | 1 寄存器 | 固件版本,高字节=主版本,低字节=子版本。例 `0x0300` = v3.00 |
| 0x0009 | HW Version | uint16 | 1 寄存器 | 硬件版本。例 `0x0301` = v3.01 |
| 0x000A | Freq Sens | uint16 | 1 寄存器 | 当前灵敏度等级 (0=低, 1=中, 2=高, 3=高) |
| 0x000A | Freq Sens | uint16 | 1 寄存器 | 当前灵敏度等级 (0=低, 1=中, 2=高, 3=高) |
| 0x000B | Condition | uint16 | 1 寄存器 | 环境活跃度 (0=安静, 1–100=嘈杂) |
| 0x000C | DIP Virtual | uint16 | 1 寄存器 | 虚拟拨码(700BS 兼容): bit[7:4]=function_mode, bit[3:0]=fusion_mode |
@@ -96,7 +96,7 @@
| 地址 | 名称 | 范围 | 默认 | R/W | 说明 |
|------|------|------|------|-----|------|
| 0x0000 | Sensitivity | 03 | 1 | R/W | 灵敏度等级 (0=低, 1=中, 2=高, 3=高) |
| 0x0000 | Sensitivity | 03 | 1 | R/W | 灵敏度等级 (0=低, 1=中, 2=高, 3=高) |
| 0x0001 | Fusion Mode | 06 | 0 | R/W | 输出组合模式(见 §6.5) |
| 0x0002 | Hold Time | 0255 | 0 | R/W | 有限存在时间 (×5s), 0=永久存在 |
| 0x0003 | Output Delay | 0255 | 10 | R/W | 离开延时 (×50ms), 例 10=500ms |
@@ -148,7 +148,7 @@
```
>>> 01 03 00 00 00 05 84 09 (读 5 个: 灵敏度/融合模式/存在时间/延时/频率档)
<<< 01 03 0A 00 01 00 00 00 00 00 0A 00 00 XX XX
→ 灵敏度=1(中), 融合模式=0(地感), 永久存在, 延时=500ms, 高频
→ 灵敏度=1(中), 融合模式=0(地感或光耦), 永久存在, 延时=500ms, 高频
```
### 4.4 写单个寄存器 — 功能码 0x06
@@ -160,11 +160,11 @@
<<< 01 06 00 00 00 02 88 32
```
修改融合模式为"地感或雷达"
修改融合模式为"地感或光耦"
```
>>> 01 06 00 01 00 03 99 F5 (写 0x0001=3, 地感或雷达)
<<< 01 06 00 01 00 03 99 F5
>>> 01 06 00 01 00 00 D9 F6 (写 0x0001=0, 地感或光耦)
<<< 01 06 00 01 00 00 D9 F6
```
### 4.5 批量写寄存器 — 功能码 0x10
@@ -242,12 +242,12 @@ DLD154Pro 算法移植后,`MEASUREMENT_BASE = 524288 (2^19)`CH591R@60MHz
| 灵敏度值 | SensTable 进入 | ΔL/L 进入 | SensTable1 离开 | ΔL/L 离开 |
|---------|---------------|-----------|----------------|-----------|
| 3 (高) | 14 | **0.043%** | 12 | 0.037% |
| 2 (高) | 28 | **0.085%** | 16 | 0.049% |
| 1 (中) | 54 | **0.165%** | 32 | 0.098% |
| 3 (高) | 14 | **0.043%** | 12 | 0.037% |
| 2 (高) | 28 | **0.085%** | 16 | 0.049% |
| 1 (中) | 54 | **0.165%** | 32 | 0.098% |
| 0 (低) | 108 | **0.330%** | 81 | 0.247% |
ΔL/L 越大越不灵敏。高灵敏度 (3) 适合摩托车/安静环境,低灵敏度 (0) 适合强干扰环境。
ΔL/L 越大越不灵敏。高灵敏度 (3) 适合摩托车/安静环境,低灵敏度 (0) 适合强干扰环境。
> ⚠ 第 3 档 (sens=14) 信噪比余量仅约 2:120°C 温漂 ≈0.1% 感量偏移),仅推荐摩托车/小型车辆检测场景,需确保线圈安装质量。
@@ -264,19 +264,19 @@ DLD154Pro 算法移植后,`MEASUREMENT_BASE = 524288 (2^19)`CH591R@60MHz
| 值 | 模式 | 继电器吸合条件 | 适用场景 |
|----|------|--------------|---------|
| 0 | 光耦复位 + 地感 | 线圈有车(光耦用于远程复位) | 需要远程复位功能 |
| 1 | 地感 | 线圈有车 | 纯线圈场景(默认,未接光耦时也用此模式 |
| 2 | 仅光耦 | 光耦输入有效(雷达有车) | 纯雷达,地感只做背景监控 |
| 3 | 地感 **或** 光耦 | 线圈 OR 雷达 | 互补冗余,任一触发即吸合 |
| 4 | 地感 **且** 光耦 | 线圈 AND 雷达 | 双确认,防地感误触(如行人/拖车 |
| 5 | 人车混行防砸 | 有车后 coil OR opto,离场 3s 窗口内光耦有效 | 混合交通流防砸人 |
| 6 | ETC 模式 | 有车后 coil OR opto,光耦断开 500ms 防抖才释放 | ETC 专用逻辑 |
| 0 | 地感 **或** 光耦 | 线圈 OR 雷达 | 互补冗余,任一触发即吸合 |
| 1 | 地感 **且** 光耦 | 线圈 AND 雷达 | 双确认,防地感误触(如行人/拖车 |
| 2 | 人车混行防砸 | 有车后 coil OR opto,离场 3s 窗口内光耦有效 | 混合交通流防砸人 |
| 3 | ETC 模式 | 有车后 coil OR opto,光耦断开 500ms 防抖才释放 | ETC 专用逻辑 |
| 4 | 地感 | 线圈有车 | 纯线圈场景(默认,未接光耦时也用此模式 |
| 5 | 仅光耦 | 光耦输入有效(雷达有车) | 纯雷达,地感只做背景监控 |
| 6 | 光耦复位 | 线圈有车(光耦用于远程复位) | 需要远程复位功能 |
**模式 5(人车混行防砸)状态机**:IDLE(仅线圈检测)→ 线圈有车 → ARMED(线圈||光耦)→ 两者均释放 → WINDOW(3s 防砸窗口,光耦触发即续吸,连续进入持续防砸)→ 3s 超时 → IDLE。
**模式 2(人车混行防砸)状态机**:IDLE(仅线圈检测)→ 线圈有车 → ARMED(线圈||光耦)→ 两者均释放 → WINDOW(3s 防砸窗口,光耦触发即续吸,连续进入持续防砸)→ 3s 超时 → IDLE。
**模式 6ETC)状态机**:IDLE(仅线圈检测)→ 线圈有车 → ARMED(线圈||光耦)→ 两者均释放 → DEBOUNCE(500ms 防抖,期间触发即回 ARMED)→ 超时 → IDLE。
**模式 3ETC)状态机**:IDLE(仅线圈检测)→ 线圈有车 → ARMED(线圈||光耦)→ 两者均释放 → DEBOUNCE(500ms 防抖,期间触发即回 ARMED)→ 超时 → IDLE。
> **注意**:当光耦配置为复位功能(`function_mode` bit1=1)时,`fusion_mode` 无效,继电器仅由线圈检测结果驱动。模式 0 下光耦输入低电平 ≥400ms 后上升沿触发 `SYS_ResetExecute()` 芯片全复位。
> **注意**:当光耦配置为复位功能(`function_mode` bit1=1)时,`fusion_mode` 无效,继电器仅由线圈检测结果驱动。模式 6 下光耦输入低电平 ≥400ms 后上升沿触发 `SYS_ResetExecute()` 芯片全复位。
### 6.6 实现要点(待编码时参考)
@@ -328,6 +328,7 @@ DLD154Pro RS485 同时支持 700BS 协议(`g_fm_700bs_disable=0`)和 Modbus
| 版本 | 日期 | 作者 | 变更 |
|------|------|------|------|
| V1.4 | 2026-07-29 | wangfq | 枚举重排: 融合模式值重新分配 (0=或,1=且,2=混行,3=ETC,4=仅地感,5=仅光耦,6=复位); 默认融合模式 0→4(仅地感); 修正所有示例和说明文本 |
| V1.3 | 2026-07-29 | wangfq | 修正: 灵敏度档位 3→4 (范围 03, 默认 1); MEASUREMENT_BASE 131072→524288; Origin 窗口 100→500; 融合模式 5/6 待定义→已实现+状态机; 命令示例数值对齐实际硬件; 700BS 标注为已完成; 版本号 FW 3.00→3.01 |
| V1.2 | 2026-07-22 | wangfq | 700BS 兼容: +DI Freq Low/High Fault, +DI Init Flag, +IR DIP Virtual, +HR Device Reset(0x00FF), +HR Init Flag Clear(0x00FE); +§7 700BS 兼容对照表 |
| V1.1 | 2026-07-22 | wangfq | 修正: CAPVD/Origin/Variation 扩展为 32-bit (×2 寄存器); Output Mode 删除脉冲模式(仅存在输出); 新增 Fusion Mode(输出组合模式 0-6); direction_mode 字段重构说明 |
+9 -9
View File
@@ -363,15 +363,15 @@ DLD154Pro 支持通过光耦输入 (PB10) 接入外部雷达/车检器信号,
| 模式值 | 名称 | 继电器吸合条件 | 适用场景 |
|--------|------|--------------|---------|
| 0 | 光耦复位 + 地感 | 仅地感 (光耦用于复位) | 带远程复位功能 |
| 1 | 地感 | 线圈有车 | 纯线圈场景 (默认) |
| 2 | 仅光耦 | 光耦输入有效 | 纯雷达,地感只做背景监控 |
| 3 | 地感**或**光耦 | coil OR opto | 互补冗余,任一触发即吸合 |
| 4 | 地感**且**光耦 | coil AND opto | 双确认,防地感误触 |
| 5 | 人车混行防砸 | 有车后 coil OR opto,离场 3s 窗口内光耦有效 | 混合交通流防砸人 |
| 6 | ETC 模式 | 同"或",光耦断开后 500ms 防抖才释放 | ETC 专用 |
| 0 | 地感**或**光耦 | coil OR opto | 互补冗余,任一触发即吸合(默认) |
| 1 | 地感**且**光耦 | coil AND opto | 双确认,防地感误触 |
| 2 | 人车混行防砸 | 有车后 coil OR opto,离场 3s 窗口内光耦有效 | 混合交通流防砸人 |
| 3 | ETC 模式 | 有车后 coil OR opto,光耦断开 500ms 防抖才释放 | ETC 专用 |
| 4 | 地感 | 线圈有车 | 纯线圈场景 |
| 5 | 仅光耦 | 光耦输入有效 | 纯雷达,地感只做背景监控 |
| 6 | 光耦复位 | 仅地感(光耦用于远程复位) | 带远程复位功能 |
### 6.2 人车混行防砸 (模式 5) 状态机
### 6.2 人车混行防砸 (模式 2) 状态机
```
IDLE (仅线圈检测)
@@ -386,7 +386,7 @@ WINDOW (3s 防砸窗口)
│ 3s 超时无触发 → 回到 IDLE,落杆
```
### 6.3 ETC 模式 (模式 6) 状态机
### 6.3 ETC 模式 (模式 3) 状态机
```
IDLE (仅线圈检测)