feat(V4B): V4.36.9 — 频率窗上限 115→125kHz

COIL_F_OK_MAX_KHZ 125 (43nF板口径 ≈38µH 起)
test_coil_range 边界 125/126 全绿; 语法0 error
spec V2.25 / manual 故障表 / devlog V2.43
This commit is contained in:
wangfq
2026-09-04 10:54:12 +08:00
parent 6a0a39f8ee
commit c7adcc6397
6 changed files with 25 additions and 15 deletions
+9
View File
@@ -4,6 +4,14 @@
--- ---
## 2026-09-03 — 频率窗上限 115→125kHz(固件 V4.36.9
> **固件版本:V4.36.9**cmcng.hFIRMWARE_VER="4.36.9"REV=9)。devlog 修订 V2.43。
`COIL_F_OK_MAX_KHZ` 115 → **125**:线圈频率合理窗 **20~125kHz**(43nF 板口径 L≈38µH 起)。
演进链:120@68nF实验 → 92@68nF → 92@43nF(过严) → 108 → 115 → **125**
test_coil_range 边界 125/126 全绿;spec V2.25 / manual 故障表已同步。
## 2026-09-03 — 进入/释放确认按 Q 档分档(固件 V4.36.8) ## 2026-09-03 — 进入/释放确认按 Q 档分档(固件 V4.36.8)
> **固件版本:V4.36.8**cmcng.hFIRMWARE_VER="4.36.8"REV=8)。devlog 修订 V2.42。 > **固件版本:V4.36.8**cmcng.hFIRMWARE_VER="4.36.8"REV=8)。devlog 修订 V2.42。
@@ -1703,6 +1711,7 @@ if (dev >= dlt_ORG × 4) {
| 版本 | 时间 | 说明 | | 版本 | 时间 | 说明 |
|------|------|------| |------|------|------|
| V2.43 | 2026-09-03 | V4.36.9 频率窗上限 115→125kHz (20~125kHz, 43nF≈38µH起) |
| V2.42 | 2026-09-03 | V4.36.8 进入/释放确认按Q档(高3/中4/低5样本), dlt已比例化无需分档 | | V2.42 | 2026-09-03 | V4.36.8 进入/释放确认按Q档(高3/中4/低5样本), dlt已比例化无需分档 |
| V2.41 | 2026-09-03 | V4.36.7 参数: RELAY_HOLD 1s; Q抑制 高200/中300/低400ms | | V2.41 | 2026-09-03 | V4.36.7 参数: RELAY_HOLD 1s; Q抑制 高200/中300/低400ms |
| V2.40 | 2026-09-03 | V4.36.6 高Q 抑制窗 0→100ms(短兜底), 分档终值 100/200/400ms | | V2.40 | 2026-09-03 | V4.36.6 高Q 抑制窗 0→100ms(短兜底), 分档终值 100/200/400ms |
+1 -1
View File
@@ -179,7 +179,7 @@ DLD154V4B 是一款基于 ARM Cortex-M4 微控制器的**单通道环形线圈
| 故障类型 | 红灯 | 绿灯 | 黄灯 | 说明 | | 故障类型 | 红灯 | 绿灯 | 黄灯 | 说明 |
|---------|------|------|------|------| |---------|------|------|------|------|
| 线圈断开(当前) | 呼吸 | 灭 | **快闪** (200ms) | 检查线圈连接。**断开前有车:继电器保持 RELAY_HOLD_MS=500ms 后仍断才释放**(防瞬时断开误释放,宏可调) | | 线圈断开(当前) | 呼吸 | 灭 | **快闪** (200ms) | 检查线圈连接。**断开前有车:继电器保持 RELAY_HOLD_MS=500ms 后仍断才释放**(防瞬时断开误释放,宏可调) |
| 线圈电感量不合理(V4.26/V4.33) | 呼吸 | 灭(无车) | **一长一短** (300ms亮/100ms灭/100ms亮/700ms灭 循环) | 空场频率出 20~115kHz(默认低频档):L偏大(f<20k)/L偏小(f>115k),检查线圈匝数/尺寸 | | 线圈电感量不合理(V4.26/V4.33/V4.36.9 | 呼吸 | 灭(无车) | **一长一短** (300ms亮/100ms灭/100ms亮/700ms灭 循环) | 空场频率出 20~125kHz(默认低频档):L偏大(f<20k)/L偏小(f>125k),检查线圈匝数/尺寸 |
| 线圈重连,断开 1 次 | 呼吸 | 正常 | **1 短闪** + 1.2s 灭 | 发生过 1 次断开,已恢复 | | 线圈重连,断开 1 次 | 呼吸 | 正常 | **1 短闪** + 1.2s 灭 | 发生过 1 次断开,已恢复 |
| 线圈重连,断开 2 次 | 呼吸 | 正常 | **2 短闪** + 1.2s 灭 | 发生过 2 次断开,已恢复 | | 线圈重连,断开 2 次 | 呼吸 | 正常 | **2 短闪** + 1.2s 灭 | 发生过 2 次断开,已恢复 |
| 线圈重连,断开 3+ 次 | 呼吸 | 正常 | **3 短闪** + 1.2s 灭 | 多次断开,建议检查接头 | | 线圈重连,断开 3+ 次 | 呼吸 | 正常 | **3 短闪** + 1.2s 灭 | 多次断开,建议检查接头 |
+4 -3
View File
@@ -1,6 +1,6 @@
# DLD154V4B 技术规格书 # DLD154V4B 技术规格书
> 单路线圈车辆检测器 | 固件版本: V4.36.8 | 文档版本: V2.24 > 单路线圈车辆检测器 | 固件版本: V4.36.9 | 文档版本: V2.25
> 本文档面向工程开发、系统集成及故障深度分析 > 本文档面向工程开发、系统集成及故障深度分析
--- ---
@@ -506,7 +506,7 @@ void poll_green_led(void) {
|--------|------|------|------|---------| |--------|------|------|------|---------|
| 1 | `g_disconnect_active == 1``!g_loop_power_up_state` | **快闪** | 200ms 亮 / 200ms 灭 | 线圈当前断开中 / 从无线圈上电 | | 1 | `g_disconnect_active == 1``!g_loop_power_up_state` | **快闪** | 200ms 亮 / 200ms 灭 | 线圈当前断开中 / 从无线圈上电 |
| 4 | `g_env_warn``g_env_resync` | **常亮** | — | 环境异常预判/重校准学习(V4.24/25/31;预判 2s 锁存、累计 7s 触发学习、替换后空闲 2s 灭) | | 4 | `g_env_warn``g_env_resync` | **常亮** | — | 环境异常预判/重校准学习(V4.24/25/31;预判 2s 锁存、累计 7s 触发学习、替换后空闲 2s 灭) |
| 5 | `g_coil_fault`V4.26/32/36 | **一长一短** | 长亮 300ms / 灭 100ms / 短亮 100ms / 灭 700ms 循环 | 电感量不合理:1=L偏大(f<20kHz) 2=L偏小(f>115kHz) | | 5 | `g_coil_fault`V4.26/32/36/9 | **一长一短** | 长亮 300ms / 灭 100ms / 短亮 100ms / 灭 700ms 循环 | 电感量不合理:1=L偏大(f<20kHz) 2=L偏小(f>125kHz) |
| 3 | `g_disconnect_count == 1` | **1 短闪** | 80ms 亮 / 200ms 灭 → 1.2s 灭(循环) | 断开 1 次,已恢复 | | 3 | `g_disconnect_count == 1` | **1 短闪** | 80ms 亮 / 200ms 灭 → 1.2s 灭(循环) | 断开 1 次,已恢复 |
| 3 | `g_disconnect_count == 2` | **2 短闪** | 同上 | 断开 2 次 | | 3 | `g_disconnect_count == 2` | **2 短闪** | 同上 | 断开 2 次 |
| 3 | `g_disconnect_count >= 3` | **3 短闪** | 同上 | 断开 3+ 次 | | 3 | `g_disconnect_count >= 3` | **3 短闪** | 同上 | 断开 3+ 次 |
@@ -627,7 +627,7 @@ if (!g_loop_stable) {
| 线圈断开 | `loop1_RF_FLAG == 0` 持续 | 黄灯快闪 / 继电器释放 | | 线圈断开 | `loop1_RF_FLAG == 0` 持续 | 黄灯快闪 / 继电器释放 |
| 线圈短路 | Xn 持续为 0 或极小 | 黄灯快闪 / 继电器释放 | | 线圈短路 | Xn 持续为 0 或极小 | 黄灯快闪 / 继电器释放 |
| 电感量不合理(L偏大) | 空场 f 持续 < 20 kHz(默认低频档,V4.26 | 黄灯**一长一短**g_coil_fault=1/ 持续监视 1s 防抖 | | 电感量不合理(L偏大) | 空场 f 持续 < 20 kHz(默认低频档,V4.26 | 黄灯**一长一短**g_coil_fault=1/ 持续监视 1s 防抖 |
| 电感量不合理(L偏小) | 空场 f 持续 > 115 kHz | 黄灯**一长一短**g_coil_fault=2/ 持续监视 1s 防抖 | | 电感量不合理(L偏小) | 空场 f 持续 > 125 kHz | 黄灯**一长一短**g_coil_fault=2/ 持续监视 1s 防抖 |
### 10.2 黄灯编码设计 ### 10.2 黄灯编码设计
@@ -790,3 +790,4 @@ DLD154V4B V1.4 起实现该专利的整数化版本,用于大车通行时的
| V2.22 | 2026-09-03 | **V4.36.6 高Q 档抑制窗 0→100ms**:高Q(≤80kHz 大L) 增加 100ms 短兜底窗(覆盖起振/插头瞬态),分档完整为 高Q 100ms/中Q 200ms/低Q 400ms | | V2.22 | 2026-09-03 | **V4.36.6 高Q 档抑制窗 0→100ms**:高Q(≤80kHz 大L) 增加 100ms 短兜底窗(覆盖起振/插头瞬态),分档完整为 高Q 100ms/中Q 200ms/低Q 400ms |
| V2.23 | 2026-09-03 | **V4.36.7 参数调整**RELAY_HOLD_MS 500→**1000**(有车断开继电器保持);抑制窗 高Q 100→**200** / 中Q 200→**300** / 低Q 400 不变 → 分档 200/300/400ms | | V2.23 | 2026-09-03 | **V4.36.7 参数调整**RELAY_HOLD_MS 500→**1000**(有车断开继电器保持);抑制窗 高Q 100→**200** / 中Q 200→**300** / 低Q 400 不变 → 分档 200/300/400ms |
| V2.24 | 2026-09-03 | **V4.36.8 Q 档判定参数**:进入确认 ENTRY_CONFIRM 按 Q 档(高3/中4/低5 样本)+ 释放确认同表分档——低Q 抖动大防假进入/输出抖落;dlt 已比例化无需分档;update_q_confirm_need 每样本按空场 f 更新 | | V2.24 | 2026-09-03 | **V4.36.8 Q 档判定参数**:进入确认 ENTRY_CONFIRM 按 Q 档(高3/中4/低5 样本)+ 释放确认同表分档——低Q 抖动大防假进入/输出抖落;dlt 已比例化无需分档;update_q_confirm_need 每样本按空场 f 更新 |
| V2.25 | 2026-09-03 | **V4.36.9 COIL_F_OK_MAX_KHZ 115→125**:频率合理窗 20~125kHz43nF 板口径 ≈38µH 起) |
+8 -8
View File
@@ -2,8 +2,8 @@
* test_coil_range.c — 线圈电感量合理范围监视 gcc 隔离单测 (DLD154V4B V4.26) * test_coil_range.c — 线圈电感量合理范围监视 gcc 隔离单测 (DLD154V4B V4.26)
* *
* 验证对象: TaskLoop.c coil_monitor() (V4.26 拍板规格) * 验证对象: TaskLoop.c coil_monitor() (V4.26 拍板规格)
* 默认低频档口径(43nF 三极管板): 空场频率合理窗 20~115kHz, 出界即判定电感量不合理 * 默认低频档口径(43nF 三极管板): 空场频率合理窗 20~125kHz, 出界即判定电感量不合理
* g_coil_fault: 0=正常 1=L偏大(f<20kHz) 2=L偏小(f>115kHz) * g_coil_fault: 0=正常 1=L偏大(f<20kHz) 2=L偏小(f>125kHz)
* 防抖: 越界/恢复均连续 100tick(=1s) 才置位/清除 (调用点=稳定无车空闲) * 防抖: 越界/恢复均连续 100tick(=1s) 才置位/清除 (调用点=稳定无车空闲)
* *
* 镜像宏与固件一致 (改 COIL_* 时同步此处!) * 镜像宏与固件一致 (改 COIL_* 时同步此处!)
@@ -14,7 +14,7 @@
#include <stdint.h> #include <stdint.h>
#define COIL_F_OK_MIN_KHZ 20 #define COIL_F_OK_MIN_KHZ 20
#define COIL_F_OK_MAX_KHZ 115 #define COIL_F_OK_MAX_KHZ 125
#define COIL_DEF_C_NF 66 #define COIL_DEF_C_NF 66
static uint8_t g_coil_fault = 0; static uint8_t g_coil_fault = 0;
@@ -86,11 +86,11 @@ static void test_boundaries(void)
{ {
g_coil_fault = 0; g_coil_bad_cnt = 0; g_coil_fault = 0; g_coil_bad_cnt = 0;
run_ticks(19, 100); assert(g_coil_fault == 1); /* 19 → 偏大 */ run_ticks(19, 100); assert(g_coil_fault == 1); /* 19 → 偏大 */
run_ticks(62, 100); assert(g_coil_fault == 0); /* 20~115 正常 */ run_ticks(62, 100); assert(g_coil_fault == 0); /* 20~125 正常 */
run_ticks(20, 100); assert(g_coil_fault == 0); /* 边界 20 正常 */ run_ticks(20, 100); assert(g_coil_fault == 0); /* 边界 20 正常 */
run_ticks(115, 100); assert(g_coil_fault == 0); /* 边界 115 正常 */ run_ticks(125, 100); assert(g_coil_fault == 0); /* 边界 125 正常 */
run_ticks(116, 100); assert(g_coil_fault == 2); /* 116 → 偏小 */ run_ticks(126, 100); assert(g_coil_fault == 2); /* 126 → 偏小 */
printf("4. 边界 19/20/115/116 OK\n"); printf("4. 边界 19/20/125/126 OK\n");
} }
static void test_jitter_no_alarm(void) static void test_jitter_no_alarm(void)
@@ -111,6 +111,6 @@ int main(void)
test_recover(); test_recover();
test_boundaries(); test_boundaries();
test_jitter_no_alarm(); test_jitter_no_alarm();
printf("\nALL PASS (窗口 20~115kHz, 防抖 1s)\n"); printf("\nALL PASS (窗口 20~125kHz, 防抖 1s)\n");
return 0; return 0;
} }
@@ -56,7 +56,7 @@
#define ENV_WARN_WAIT 200 // 环境预判 (V4.31): dev>+4dlt 高位连续 ~2s → 黄灯预判锁存(回摆保持) #define ENV_WARN_WAIT 200 // 环境预判 (V4.31): dev>+4dlt 高位连续 ~2s → 黄灯预判锁存(回摆保持)
#define ENV_RECOVER_WAIT 200 // 恢复确认 (V4.31): 新基线替换后 环境空闲连续 ~2s 才解除预判, 黄灯灭 #define ENV_RECOVER_WAIT 200 // 恢复确认 (V4.31): 新基线替换后 环境空闲连续 ~2s 才解除预判, 黄灯灭
#define COIL_F_OK_MIN_KHZ 20 // 线圈频率合理窗 (V4.26): 默认低频档口径, <20kHz → L偏大 #define COIL_F_OK_MIN_KHZ 20 // 线圈频率合理窗 (V4.26): 默认低频档口径, <20kHz → L偏大
#define COIL_F_OK_MAX_KHZ 115 // 线圈频率合理窗 (V4.36): >115kHz → L偏小 (43nF板口径, ≈44µH; 放行 ~48µH 小线圈) #define COIL_F_OK_MAX_KHZ 125 // 线圈频率合理窗 (V4.36/9): >125kHz → L偏小 (43nF板口径, ≈38µH)
#define COIL_CAL_C_NF 43 // 标定等效谐振电容 nF (V4.34): 三极管库存板 低频档(66nF名义, R19在/R27空)实测 C_eff≈43 (41.3~45.5; 0Ω板68仅实验口径, 产品不用) #define COIL_CAL_C_NF 43 // 标定等效谐振电容 nF (V4.34): 三极管库存板 低频档(66nF名义, R19在/R27空)实测 C_eff≈43 (41.3~45.5; 0Ω板68仅实验口径, 产品不用)
// 旧43 = 5.1K电阻旧板带病特性(三极管开关未饱和导通, 第二颗33nF未全量并入), 作废 // 旧43 = 5.1K电阻旧板带病特性(三极管开关未饱和导通, 第二颗33nF未全量并入), 作废
#define COIL_CAL_C_NF_33 34 // 高频档(33nF名义)标定值: 实测 C_eff≈34.4 (33.8~35.0, 3组) — 用33nF档时改 COIL_CAL_C_NF 为34 #define COIL_CAL_C_NF_33 34 // 高频档(33nF名义)标定值: 实测 C_eff≈34.4 (33.8~35.0, 3组) — 用33nF档时改 COIL_CAL_C_NF 为34
+2 -2
View File
@@ -14,11 +14,11 @@
#define __CMCNG_H__ #define __CMCNG_H__
#define PRODUCT_MODEL "DLD154" #define PRODUCT_MODEL "DLD154"
#define FIRMWARE_VER "4.36.8" // 主.子.修订 (2026-09-03 起: 小改动只增 REV; MAIN/SUB 由产品定) #define FIRMWARE_VER "4.36.9" // 主.子.修订 (2026-09-03 起: 小改动只增 REV; MAIN/SUB 由产品定)
#define HARDWARE_VER "3.00" #define HARDWARE_VER "3.00"
#define FIRMWARE_VER_MAIN 4 #define FIRMWARE_VER_MAIN 4
#define FIRMWARE_VER_SUB 36 #define FIRMWARE_VER_SUB 36
#define FIRMWARE_VER_REV 8 #define FIRMWARE_VER_REV 9
#define HARDWARE_VER_MAIN 3 #define HARDWARE_VER_MAIN 3
#define HARDWARE_VER_SUB 0 #define HARDWARE_VER_SUB 0