# DLD154Pro 技术规格书 > 单路线圈蓝牙车辆检测器 | 固件版本: V3.02 | 硬件版本: V3.01 > 本文档面向工程开发、系统集成及故障深度分析 --- ## 1. 系统架构 ### 1.1 硬件架构 ``` ┌──────────────────────────────────────┐ 线圈 ───────────────┤ PA9 (TMR0) CH591R (RISC-V) │ │ 输入捕获 60MHz / 28KB ├── PB22 (GPIO) ──── 绿灯 光耦 ───────────────┤ PB10 (GPIO) │ │ ├── PB23 (PWM11) ─── 红灯 (呼吸) RS485 ──────────────┤ PA14 TX / PA15 RX / PA13 RE (UART0) │ │ ├── PA8 (GPIO) ──── 继电器 RLY1 BLE ────────────────┤ 2.4GHz 无线 │ │ ├── PA12 (GPIO) ──── 调频电容 (33nF) └──────────────────────────────────────┘ ``` ### 1.2 软件架构 ``` Main_Circulation (无 RTOS, 裸机轮询) ├── vd1_task() — 每 ~8.74ms 执行 (MEASUREMENT_BASE 测量窗) │ ├── IIR 滤波 (ALFA_CAP1=79/256, τ≈24ms) │ ├── 斜率限幅 (MAX_SLOPE_RATE=5%) │ ├── 基线跟踪 (WINDOW_ORIGIN=500 滑动平均, ~4.4s) │ ├── 进入确认 (ENTRY_CONFIRM=3 次) │ ├── 离开检测 (滞回 + 平坦性三条件 CN200910309382) │ └── 冻结超时恢复 (FREEZE_TIMEOUT=1000, ~8.7s + ±2% 稳定性检查) ├── TMR0 ISR — 线圈频率捕获 (下降沿→下降沿周期) ├── TMR1 ISR — 5ms 系统 tick (LED 驱动 + 继电器输出 + 光耦扫描) ├── opt_input_poll() — 光耦输入处理 (7 种输出模式融合) ├── rs485_700bs_poll() — RS485 700BS 从机协议 ├── poll_dbn_ble() — BLE 命令处理 └── LEDB PWM 呼吸灯 (PWM11, 硬件自主) ``` --- ## 2. 电气参数 | 参数 | 最小值 | 典型值 | 最大值 | 单位 | 备注 | |------|--------|--------|--------|------|------| | 供电电压 (VDD) | 10 | 12 / 24 | 30 | V | 宽压输入 | | 功耗 | — | 0.5 | 2 | W | 含继电器吸合 + BLE | | 工作温度 | -40 | — | +85 | °C | 工业级 | | 存储温度 | -55 | — | +125 | °C | — | | 线圈电感范围 | 50 | 200 | 1000 | μH | 超出范围可工作但精度下降 | | 线圈频率范围 | 20 | 80 | 200 | kHz | 含 33nF 调频电容 | | 线圈 Q 值 | 5 | — | — | — | 过低导致振荡不稳定 | | 继电器触点电压 | — | — | 250 | VAC | 单刀双掷 (SPDT) | | 继电器触点电流 | — | — | 3 | A | — | | GPIO 输出电压 | 0 | 3.3 | 3.6 | V | CMOS 电平 | | GPIO 输出电流 | — | — | 12 | mA | 单引脚最大 | | BLE 工作频率 | — | 2.4 | — | GHz | BLE 4.2 | | BLE 发射功率 | — | 0 | — | dBm | 典型 | | ESD 防护 | ±2 | — | — | kV | HBM | --- ## 3. IO 引脚分配 ### 3.1 完整引脚表 | 引脚 | 标识 | 功能 | 方向 | 外设 | 初始状态 | 备注 | |------|------|------|------|------|---------|------| | **PA9** | **LP** | **线圈频率捕获** | IN | **TMR0** | — | **核心输入,下降沿→下降沿** | | PA8 | RLY1 | 继电器输出 | OUT | GPIO PP | 0 (释放) | 单刀双掷,低电平有效 | | PA12 | FLEVEL | 线圈调频 | OUT | GPIO PP | L (33nF) | 0=接33nF(低频), 1=0nF(高频) | | PA14 | UART0_TX | RS485 发送 | OUT | UART0 | — | 700BS / Modbus | | PA15 | UART0_RX | RS485 接收 | IN | UART0 | — | 700BS / Modbus | | PA13 | UART0_RE | RS485 方向控制 | OUT | GPIO PP | RX (接收) | 高=发送, 低=接收 | | PB10 | IN_1 | 光耦输入 | IN | GPIO IN_PU | — | 外部雷达 / 复位信号 | | PB22 | LEDA | 绿灯 | OUT | GPIO PP | 0 (灭) | 有车亮 / 无车灭,低有效 | | PB23 | LEDB | 红灯 | ALT | PWM11 | — | 呼吸灯,低有效 | | PA0–7 | — | — | — | — | — | 预留/未分配 | ### 3.2 无物理拨码开关 DLD154Pro **没有物理 DIP 开关**。所有配置参数(灵敏度、输出模式、延时、协议选择等)通过 **BLE 小程序** 管理,持久化存储在 DataFlash 中。 | 配置项 | 管理方式 | Flash 地址 | |--------|---------|-----------| | 灵敏度等级 | BLE 小程序 | Loop_Cng_Unit.sensitvity | | 输出模式 (0–6) | BLE 小程序 | Loop_Cng_Unit.direction_mode[3:0] | | 功能码 (协议/光耦功能) | BLE 小程序 | Loop_Cng_Unit.direction_mode[7:4] | | 存在时间 (有限/永久) | BLE 小程序 | Loop_Cng_Unit.exist_mode | | 离开延时 | BLE 小程序 | Loop_Cng_Unit.delay_time | | 频率档位 (高/低) | BLE 小程序 | Loop_Cng_Unit.loopFreq_Level | | RS485 地址 | BLE 小程序 | Addr_RS485_ID_Offset (0x14) | | RS485 波特率 | BLE 小程序 | Addr_RS485_Baud_Offset (0x11) | | 蓝牙空闲超时 | BLE 小程序 | ADDR_BT_Close_TIMEOUT_Offset (0x10) | --- ## 4. 检测算法 ### 4.1 频率测量 #### 4.1.1 硬件链路 DLD154Pro **不使用** CD4060 外部分频芯片。线圈直接驱动 PA9 (TMR0),利用 CH591R 内置 TMR0 的下降沿→下降沿周期捕获。 | 对比项 | M1H/TLD-110 | DLD154V4B | DLD154Pro | |--------|-------------|-----------|-----------| | 外部分频 | CD4060 Pin5 (÷32) | **无(直连)** | **无(直连)** | | MCU 内部分频 | 无 | TIM3 DIV_2 (÷2) | **TMR0 无分频** | | 总分频比 | ÷32 | ÷2 | **÷1** | | MCU 主频 | — | 120MHz | **60MHz** | | MEASUREMENT_BASE | — | 131072 (2^17) | **524288 (2^19)** | | 测量窗口 | — | ~2.2ms | **~8.74ms** | > **设计要点**:DLD154Pro 升高 MEASUREMENT_BASE 以补偿更低的主频和无内部分频,使归一化 Value ≈ 524288,保持与 DLD154V4B 一致的百分比阈值语义。 #### 4.1.2 捕获流程 ``` 线圈边沿 → PA9 (TMR0 下降沿→下降沿捕获) │ ▼ TMR0 ISR: CAPDAT = TMR0 捕获寄存器 (相邻下降沿周期) Xn = CAPDAT (TMR0 直接给出,无需手动计算边沿差) │ ▼ LPCNT = MEASUREMENT_BASE / Xn (自适应窗口) CapSum += Xn CapCnt++ │ CapCnt >= LPCNT ? YES → Value = CapSum (≈ MEASUREMENT_BASE = 524288) CapCnt = CapSum = 0 loop1_CAP_OK = 1 (通知 vd1_task) ``` #### 4.1.3 关键常量 ```c #define MEASUREMENT_BASE 524288L // 2^19 // 无内部分频 (TMR0 直读) ``` | 线圈频率 | Xn @60MHz | LPCNT | 测量窗口 | Value 范围 | |---------|-----------|-------|---------|-----------| | 50 kHz | 1200 | 436 | 8.7 ms | ~523200 | | 80 kHz | 750 | 700 | 8.7 ms | ~525000 | | 100 kHz | 600 | 873 | 8.7 ms | ~523800 | | 150 kHz | 400 | 1310 | 8.7 ms | ~524000 | | 200 kHz | 300 | 1747 | 8.7 ms | ~524100 | > 自适应 LPCNT 使不同频率下 Value 归一化到 ~524288,百分比阈值直接适用,无需频率补偿。 ### 4.2 IIR 滤波 ```c #define ALFA_CAP1 79 // IIR α = 79/256 ≈ 0.31 (@8.74ms → τ≈24ms) // get_flt_value(): 一阶 IIR CAPVD = (|Value - CAPVD| * ALFA_CAP1) >> 8 ``` | 参数 | 值 | 说明 | |------|-----|------| | α | 79/256 ≈ 0.31 | 指数平滑系数 | | τ | ~24ms @8.74ms tick | 3 次更新达 63% | | 噪声抑制 | 良好 | 单次野值影响 < 31% | **斜率限幅**:单次 Value 变化 >5% → 截断,过滤 EMI/闪电尖峰: ```c #define MAX_SLOPE_RATE 5 // 单次最大变化 5% int32_t raw_delta = (int32_t)Value - (int32_t)CAPVD; int32_t max_step = (int32_t)(CAPVD * MAX_SLOPE_RATE / 100); if (max_step < 100) max_step = 100; // 最小限幅防止锁死 // clamp: raw_delta ∈ [−max_step, +max_step] uint32_t clamped_value = CAPVD + raw_delta; CAPVD = get_flt_value(clamped_value, CAPVD); ``` ### 4.3 检测判据 #### 4.3.1 灵敏度表 ```c // 4 级灵敏度 (MAX_LOOP_SENS_AMOUNT=4) const uint16_t SensTable[4] = {108, 54, 28, 14}; // 进入阈值 const uint16_t SensTable1[4] = { 81, 32, 16, 12}; // 离开阈值(滞回) ``` | 等级 | sens_in | ΔL/L 进入 | sens_out | ΔL/L 离开 | 迟滞比 | 适用场景 | |------|---------|----------|----------|----------|--------|---------| | 低 (0) | 108 | **0.330%** | 81 | **0.247%** | 1.33 | 大车 / 强干扰环境 | | 中 (1) | 54 | **0.165%** | 32 | **0.098%** | 1.69 | 普通轿车(默认) | | 高 (2) | 28 | **0.085%** | 16 | **0.049%** | 1.75 | 摩托车 / 安静环境 | | 最高 (3) | 14 | **0.043%** | 12 | **0.037%** | 1.17 | 超高灵敏度 | > **ΔL/L 换算**:`ΔL/L_entry = 2 × sens_in / 65536`。物理依据:线圈振荡 f∝1/√L,dT/T ≈ dL/(2L)。 > > ⚠ 第四档 (sens=14) 信噪比余量仅约 2:1(20°C 温漂 ≈0.1% 感量偏移),仅推荐摩托车/小型车辆检测场景,需确保线圈安装质量。 #### 4.3.2 进入检测 ```c #define ENTRY_CONFIRM 3 // 连续 3 次低于阈值才判定有车 dlt_ORG = (Origin * SensTable[SENS]) >> 16; // = Origin × sens / 65536 if (CAPVD < Origin - dlt_ORG) { if (++loop1_entry_cnt >= ENTRY_CONFIRM) { loop1_VD_FLAG = 1; loop1_FLAG_IN = 1; loop1_entry_cnt = 0; } } else { loop1_entry_cnt = 0; // 恢复则重置 } ``` **进入响应时间**:3 次确认 × 8.74ms + 500ms IN_DELAY = **~530ms**。 #### 4.3.3 离开检测(滞回 + 平坦性) ##### 离开滞回 有车状态下,使用更小的离开阈值 `SensTable1`: ```c dlt_ORG = (Origin * SensTable1[SENS]) >> 16; if (CAPVD > Origin - dlt_ORG) { // 高于离开阈值 if (++loop1_cnt_release >= 3) { // 连续 3 次确认 loop_release_common(); // VD_FLAG=0, FLAG_OUT=1 } } else { loop1_cnt_release = 0; // 回落立即重置 } ``` ##### 平坦性离开判定(专利 CN200910309382) 基于**中山大学专利**,解决大车通行时频率多峰导致的多次误触发。三条件同时满足才判定离开: ``` ① |f − f_b| < dlt_ORG (频率回归基频) ② |f'| < Δ2 (一阶导数近零,Δ2 = max_slope / K1) ③ |f''| < Δ3 (二阶导数近零,Δ3 = max_slope_rate / K2) ``` Δ2、Δ3 从车辆进入后的**第一上升坡面**动态计算(避免固定阈值的不适应性)。 | 常量 | 值 | 含义 | |------|-----|------| | K1, K2 | 8 | 动态阈值除数(专利推荐值) | | FLAT_CONFIRM_CNT | 3 | 平坦确认次数 | > 算法源码位于 `peripheral_main.c:vd1_task()`,编译宏 `USE_FLATNESS_EXIT` 控制。 ### 4.4 基线跟踪 #### 4.4.1 跟踪规则 ```c // 仅无车 → 跟踪基线 if (!loop1_VD_FLAG) { int32_t dev = CAPVD - Origin; if (dev < dlt_ORG * 4) { // CAPVD 未显著偏离 → 正常跟踪 loop1_freeze_cnt = 0; update_moving_average(&ORG_SUM, &ORG_CNT, &Origin, CAPVD, WINDOW_ORIGIN); } // 偏离 > 4× 阈值 → 冻结 + 超时恢复(见 4.4.3) } // 有车时冻结基线 (仿 TLD-110) ``` #### 4.4.2 两阶段基线更新 | 阶段 | 窗口 | 周期 | 用途 | |------|------|------|------| | 稳定期 (`!g_loop_stable`) | 100 | **~0.9s** | 绕过 IIR/限幅,快速收敛 | | 正常运行 | 500 (WINDOW_ORIGIN) | **~4.4s** | 强噪声抑制,稳定跟踪 | 稳定期 CAPVD 直接赋值为 raw Value(不经过 IIR),实现开机 ~1.1s 内基线就绪。 #### 4.4.3 冻结超时恢复 | 常量 | 值 | 说明 | |------|-----|------| | 冻结触发阈值 | dlt_ORG × 4 | CAPVD 偏离 Origin 的倍数 | | FREEZE_TIMEOUT | 1000 | ~8.7s (1000 × 8.74ms) | | FREEZE_STABILITY_RATE | 2 | 稳定性窗口:参考值的 ±2% | ```c if (dev < dlt_ORG * 4) { /* 正常范围: 跟踪 + 清零冻结 */ loop1_freeze_cnt = 0; update_moving_average(...); } else { /* 异常偏高: 冻结 + 稳定性验证 */ if (loop1_freeze_cnt == 0) loop1_freeze_ref = CAPVD; // 记录冻结起始值 else if (|CAPVD - freeze_ref| > freeze_ref * 2 / 100) reset(freeze_cnt, freeze_ref); // 波动 >±2% → 重新计时 if (++loop1_freeze_cnt >= FREEZE_TIMEOUT) { // 8.7s 连续稳定 Origin = CAPVD; // 接受为新基线 } } ``` --- ## 5. 时序状态机 ### 5.1 状态转移 ``` IN_DELAY=10(500ms) OUT_DELAY(delay_time×100ms) [空闲] ──有车──→ [进入延时] ──超时──→ [有车确认] ──车辆离开──→ [离开延时] ↑ │ │ ┌────────────┘ └──脉冲结束───── [脉冲输出] ←──超时── [离开延时] ←──────────────┘ PLUSE_DELAY=10(500ms) ``` ### 5.2 时序参数 | 参数 | Tick (50ms) | 时间 | 说明 | |------|------------|------|------| | IN_DELAY | 10 | **500 ms** | 进入确认防抖 | | OUT_DELAY | delay_time × 2 | **可配** | 离开延时 (delay_time=5 → 500ms) | | PLUSE_DELAY | 10 | **500 ms** | 脉冲输出宽度 | | HOLD_TIME | exist_mode × 20 × 5 | **可配** | 有限存在超时 (exist_mode × 5s) | | LC_HOLD_TIME | 4 × 1200 | **~4 min** | 安全复位超时 | | STABLE_SAMPLES | 128 tick | **~1.1 s** | 上电稳定期 | | FREEZE_TIMEOUT | 1000 | **~8.7 s** | 基线冻结超时 | > **Tick 来源**:TMR1 每 5ms 中断一次,`TM1cnt` 计数到 10 后触发 vd1_task(50ms 周期)。 ### 5.3 输出模式 (脉冲/存在) DLD154Pro 仅一个继电器,支持存在输出和脉冲输出两种模式: | 模式 | output_mode 值 | 行为 | |------|---------------|------| | 存在输出 | 0 | 有车持续吸合,离开后延时释放 | | 进入脉冲 | 1 | 确认有车→吸合 500ms→释放 | | 离开脉冲 | 2 | 车辆离开+延时→吸合 500ms→释放 | --- ## 6. 输出融合模式 ### 6.1 7 种融合模式 DLD154Pro 支持通过光耦输入 (PB10) 接入外部雷达/车检器信号,并按融合模式组合继电器输出。 | 模式值 | 名称 | 继电器吸合条件 | 适用场景 | |--------|------|--------------|---------| | 0 | 地感**或**光耦 | coil OR opto | 互补冗余,任一触发即吸合(默认) | | 1 | 人车混行防砸 | 有车后 coil OR opto,离场 3s 窗口内光耦有效 | 混合交通流防砸人 | | 2 | ETC 模式 | 有车后 coil OR opto,光耦断开 500ms 防抖才释放 | ETC 专用 | | 3 | 地感**且**光耦 | coil AND opto | 双确认,防地感误触 | | 4 | 仅地感 | 线圈有车 | 纯线圈场景 | | 5 | 仅光耦 | 光耦输入有效 | 纯雷达,地感只做背景监控 | | 6 | 光耦复位 | 仅地感(光耦用于远程复位) | 带远程复位功能 | ### 6.2 人车混行防砸 (模式 1) 状态机 ``` IDLE (仅线圈检测) │ 线圈检测到车 ▼ ARMED (线圈 || 光耦) │ 两者均释放 ▼ WINDOW (3s 防砸窗口) │ 光耦触发 → 继电器吸合,窗口复位 │ 线圈上线 → 回到 ARMED │ 3s 超时无触发 → 回到 IDLE,落杆 ``` ### 6.3 ETC 模式 (模式 2) 状态机 ``` IDLE (仅线圈检测) │ 线圈检测到车 ▼ ARMED (线圈 || 光耦) │ 两者均释放 ▼ DEBOUNCE (500ms 防抖) │ 线圈/光耦重新触发 → 回到 ARMED │ 500ms 超时 → 回到 IDLE,落杆 ``` ### 6.4 光耦防抖 所有非复位模式共用 3 样本多数表决消抖(等效 ~30ms),防止光耦信号抖动。 --- ## 7. 指示灯状态机 ### 7.1 驱动架构 ``` TMR1 ISR (每 5ms) ├── 红灯 PB23 — PWM11 呼吸(硬件自主,~1.9s 周期) ├── 绿灯 PB22 — 有车亮 / 无车灭 / 稳定期慢闪 200ms └── (无黄灯 — Pro 采用双色 LED 方案) ``` ### 7.2 绿灯行为表 | 状态 | 绿灯行为 | 说明 | |------|---------|------| | 上电初始化/稳定期 | **慢闪** (200ms 亮/200ms 灭) | 基线学习中 | | 线圈断开 | **灭** | 等待恢复 | | 正常运行,无车 | **灭** | 就绪 | | 正常运行,有车 | **亮** | 车辆检测中 | | 光耦参与模式 (非 LOOP_ONLY/LOOP_X_RESET) | 跟随 `relay1_state` | 与实际继电器状态一致 | ### 7.3 红灯行为 呼吸灯 (PWM11),始终运行,指示系统正常工作。**非复位模式下光耦有信号时加速至 ~0.5s 周期**(DUTY_STEP=32),便于现场判断光耦输入是否正常。无光耦信号时 ~1.9s 周期(DUTY_STEP=8)。 --- ## 8. 上电稳定期 ```c #define STABLE_SAMPLES 128 // ~1.1s (@8.74ms × 128) if (!g_loop_stable) { loop1_CAPVD = loop1_Value; // 绕过 IIR,直接赋值 update_moving_average(..., 100); // 小窗口快速收敛 loop1_stable_cnt++; if (loop1_stable_cnt >= STABLE_SAMPLES) g_loop_stable = 1; // 启用检测 return; // 跳过进入/离开判断 } ``` 稳定期间绕过 IIR 和斜率限幅,用 100 窗口快速建立基线。绿灯持续慢闪。 --- ## 9. 线圈故障处理 ### 9.1 断开/重连状态保持 | 断开前 | 断开期间 | 重连后 | 检测结果 | |--------|---------|--------|---------| | 有车 | 绿灯灭,继电器释放 | 车还在 | CAPVD < Origin−dlt → VD_FLAG=1 ✓ | | 有车 | 绿灯灭 | 车离开 | cnt_release→3 → VD_FLAG=0 ✓ | | 无车 | 绿灯灭 | 车进入 | CAPVD < Origin−dlt → VD_FLAG=1 ✓ | 断开时保留 `VD_FLAG`,仅关断继电器。重连时 `CAPVD=0` 触发首个样本直锁 Value,跳过 IIR 预热。 ### 9.2 有限存在超时 当 `hold_time > 0` 时,有车超过指定时间 → 整通道复位重建基线(等效安全复位),而非简单 FLAG_OUT。 --- ## 10. 通信协议 ### 10.1 接口总览 | 接口 | 物理层 | 协议 | 用途 | |------|--------|------|------| | BLE | 2.4GHz | DBN BLE 私有协议 | 参数配置 + 主动上报 | | RS485 | UART0 半双工 | 700BS / Modbus RTU | 工业总线接入 | ### 10.2 BLE 协议 **帧格式**: ``` Magic | Addr/Sub | Len | CMD | Data | XOR | SUM 1B | 1B | 1B | 1B | xx | 1B | 1B ``` **主要命令**: | 命令码 | 功能 | |--------|------| | 0x10 | 获取设备信息 | | 0x23 | 设置车检器参数 | | 0x24 | 读取车检器参数 | | 0x31 | 读写 RS485 波特率/地址/蓝牙超时 | | 0x8A | 读写灵敏度列表 | | 0xC0 | 设备主动上报传感信息 | | 0xC5 | 主动上报使能配置 | | 0x6D | 设备复位 | ### 10.3 RS485 700BS 协议 | 参数 | 值 | |------|-----| | 波特率 | 9600 (默认) | | 数据位 | 8N1 | | 地址范围 | 1–247 | | 帧格式 | 主机 3 字节 (STX ADDR XOR), 从机 3–9 字节变长 | | 心跳 | 空闲 5s / 故障(线圈断开) 1s / 事件(car_state 翻转)立即 | **命令集**: | 命令 | 功能 | 回复 | |------|------|------| | 0xFA | 查询有车+线圈状态 | F5 DATA XOR | | 0x1B | 查询线圈频率 | 14 Fre1-3 ADDR XOR | | 0x2C | 复位初始化线圈 | 无回复 | | 0x3D | 查询虚拟拨码 (DIP1-5) | 32 DATA ADDR XOR | > DLD154Pro 无物理拨码,0x3D 返回 BLE 配置的等效值。 ### 10.4 RS485 Modbus RTU 协议 | 参数 | 值 | |------|-----| | 波特率 | 9600 (默认), 可配 19200/38400/57600/115200 | | 数据位 | 8N1 | | 从机地址 | 1–247 (默认 1) | | 支持功能码 | 0x02 (DI), 0x03 (HR), 0x04 (IR), 0x06 (写单), 0x10 (写多), 0x11 (报告 ID) | | 协议选择 | `g_function_mode` bit0 (BLE 设置) | > 详细寄存器映射见 `docs/rs485-modbus-protocol.md`。RS485 地址/波特率在 Modbus 侧只读,通过 BLE 小程序修改。 --- ## 11. Flash 存储布局 | 地址 | 宏 | 大小 | 内容 | |------|-----|------|------| | 0x00 | — | 4B | 魔数 (0x33 0xBB 0xC3 0x3C) | | 0x04 | — | 7B | Loop_Cng_Unit 参数 | | 0x10 | ADDR_BT_Close_TIMEOUT_Offset | 1B | 蓝牙空闲超时 (分钟) | | 0x11 | Addr_RS485_Baud_Offset | 3B | RS485 波特率 (LE32) | | 0x14 | Addr_RS485_ID_Offset | 1B | RS485 从机地址 | | 0x20 | Addr_Sens_Array_In | 16B | 灵敏度进入阈值 (4×uint16\_t LE) | | 0x30 | Addr_Sens_Array_Out | 16B | 灵敏度离开阈值 (4×uint16\_t LE) | 出厂默认:灵敏度=中(1),存在模式,延时=500ms,高频,RS485 ID=1,波特率=9600,蓝牙超时=0(不关闭)。 --- ## 12. 版本历史 | 版本 | 日期 | 说明 | |------|------|------| | V3.02 | 2026-07-31 | Modbus RTU 协议实现 + 主动上报;0x2C/HR 0x0012 复位改为 `SYS_ResetExecute()` MCU 全复位;`g_loop_cut_amount` 累加修复;RS485 初始化时序调整 | | V3.01 | 2026-07-28 | 光耦输出模式完整实现 (6 种融合逻辑 + 状态机);LEDA 同步继电器状态 | | V3.00 | 2026-07-21 | 项目初始化:从 DLD110SV4 复制基线 + 硬件适配 (CH591R) | --- ## 13. 相关文档 | 文档 | 路径 | |------|------| | 产品说明书 | `docs/product-manual.md` | | 硬件资源说明 | `docs/DLD154Pro硬件资源.md` | | RS485 700BS 协议 | `docs/rs485-700bs-protocol.md` | | RS485 Modbus 协议 | `docs/rs485-modbus-protocol.md` | | 开发日志 | `docs/devlog.md` |