docs(V4B): 注释同步 — 全部 疾闪 → 一长两短 (用户指出残留)
TaskLoop.c/h 现役注释 5 处 + tests 4 处 (180/983/997/1004/84 + 6/103/104/127) 代码本体 V4.36.38 已是一长两短 6 相, 注释滞后同步 devlog V2.77 / spec V2.59 (历史版本行保留当时变更记录) 语法0 error, 4测试全绿
This commit is contained in:
@@ -2151,6 +2151,7 @@ if (dev >= dlt_ORG × 4) {
|
||||
|
||||
| 版本 | 时间 | 说明 |
|
||||
|------|------|------|
|
||||
| V2.77 | 2026-09-08 | 注释同步: TaskLoop.c/h + tests 全部 疾闪 → 一长两短 (V4.36.38 现役描述, 历史版本行保留变更记录) |
|
||||
| V2.76 | 2026-09-08 | V4.36.40 热切换修复: fault3 强制期 Origin/LPCNT 冻结 → recover 改 TMR3 实时 Xn 判回窗(240000/Xn); 恢复后 LOOP_OK 回位自动发起重连确认+判稳重建 Origin, 换线圈不断电 ~6s 自愈 |
|
||||
| V2.75 | 2026-09-08 | V4.36.39: COIL_UNDER_MIN_AS_OPEN 默认 0→1 (用户拍板) —— L<20µH 短路级出厂等同断开 |
|
||||
| V2.74 | 2026-09-08 | V4.36.38: fault2 可用级黄灯 疾闪100ms → 一长两短(900/300/100/300/100/700ms 6相, 用户定) |
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# DLD154V4B 技术规格书
|
||||
|
||||
> 单路线圈车辆检测器 | 固件版本: V4.36.40 | 文档版本: V2.58
|
||||
> 单路线圈车辆检测器 | 固件版本: V4.36.40 | 文档版本: V2.59
|
||||
> 本文档面向工程开发、系统集成及故障深度分析
|
||||
|
||||
---
|
||||
@@ -862,3 +862,4 @@ DLD154V4B V1.4 起实现该专利的整数化版本,用于大车通行时的
|
||||
| V2.56 | 2026-09-08 | V4.36.38: fault2 可用级黄灯指示 疾闪100ms → **一长两短** (900/300/100/300/100/700ms 循环, 用户定节奏) |
|
||||
| V2.57 | 2026-09-08 | V4.36.39: COIL_UNDER_MIN_AS_OPEN 默认值 0→1 (用户拍板) —— L<20µH 短路级出厂即等同断开(判车停+继电器释放+绿灯灭) |
|
||||
| V2.58 | 2026-09-08 | V4.36.40 热切换修复: recover 恢复判定改 TMR3 实时 Xn(240000/Xn) —— 原 calc_freq_khz(冻结Origin,LPCNT) 永不回窗致换线圈死锁; 恢复后自然走重连+判稳重建 Origin |
|
||||
| V2.59 | 2026-09-08 | 注释同步: 代码/测试全部 疾闪 → 一长两短 (V2.55~58 历史版本行保留当时变更记录) |
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*
|
||||
* 验证对象: TaskLoop.c coil_monitor() (V4.26 拍板规格)
|
||||
* 默认低频档口径(43nF 三极管板, V4.36.37 方案A 分级):
|
||||
* g_coil_fault: 0=正常 1=出窗一长一短(f<18k 或 125<f≤156k) 2=156~171k 疾闪(L20~24µH, 恒判车)
|
||||
* g_coil_fault: 0=正常 1=出窗一长一短(f<18k 或 125<f≤156k) 2=156~171k 一长两短(L20~24µH, 恒判车)
|
||||
* 3=f>171k 短路级 L<20µH → 断开级快闪(宏 COIL_UNDER_MIN_AS_OPEN 功能随动)
|
||||
* 防抖: 越界/恢复均连续 COIL_FAULT_HOLD_TICKS(500tick=5s) 才置位/清除
|
||||
* (V4.36.21 加长, 下限判定重要防误检瞬态冲高)
|
||||
@@ -100,8 +100,8 @@ static void test_boundaries(void)
|
||||
run_ticks(125, 500); assert(g_coil_fault == 0); /* 边界 125 正常(窗内) */
|
||||
run_ticks(126, 500); assert(g_coil_fault == 1); /* 126 → L偏小出窗, 一长一短级 */
|
||||
run_ticks(156, 500); assert(g_coil_fault == 1); /* 156 → 出窗但仍≥24µH, 一长一短级 */
|
||||
run_ticks(157, 500); assert(g_coil_fault == 2); /* 157 → 156~171k 可用级, 疾闪 */
|
||||
run_ticks(171, 500); assert(g_coil_fault == 2); /* 171 → 边界仍可用级疾闪 (f@20µH=171.6k) */
|
||||
run_ticks(157, 500); assert(g_coil_fault == 2); /* 157 → 156~171k 可用级, 一长两短 */
|
||||
run_ticks(171, 500); assert(g_coil_fault == 2); /* 171 → 边界仍可用级一长两短 (f@20µH=171.6k) */
|
||||
run_ticks(172, 500); assert(g_coil_fault == 3); /* 172 → L<20µH 短路级, 断开级快闪 */
|
||||
printf("4. 边界 17/18/125/126/156/157/171/172 OK\n");
|
||||
}
|
||||
@@ -124,6 +124,6 @@ int main(void)
|
||||
test_recover();
|
||||
test_boundaries();
|
||||
test_jitter_no_alarm();
|
||||
printf("\nALL PASS (合理窗18~125kHz; 126~156=一长一短; 157~171=疾闪L20~24µH恒判车; >171=L<20µH短路级快闪; 防抖 5s)\n");
|
||||
printf("\nALL PASS (合理窗18~125kHz; 126~156=一长一短; 157~171=一长两短L20~24µH恒判车; >171=L<20µH短路级快闪; 防抖 5s)\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
#define ENV_WARN_WAIT 200 // 环境预判 (V4.31): dev>+4dlt 高位连续 ~2s → 黄灯预判锁存(回摆保持)
|
||||
#define ENV_RECOVER_WAIT 200 // 恢复确认 (V4.31): 新基线替换后 环境空闲连续 ~2s 才解除预判, 黄灯灭
|
||||
#define COIL_F_OK_MIN_KHZ 18 // 线圈频率合理窗 (V4.36.18): 默认低频档口径, <18kHz → L偏大 (≈双 250µH+ 大线圈放行)
|
||||
#define COIL_L_MIN_UH 24 // V4.36.23/25: 出窗偏小指示阈值 µH (对应 COIL_L_MIN_F_KHZ=156): L<此值 → 黄灯疾闪 100ms(独立节奏), 判定恒照常
|
||||
#define COIL_L_MIN_UH 24 // V4.36.23/25/38: 出窗偏小指示阈值 µH (对应 COIL_L_MIN_F_KHZ=156): L<此值 → 黄灯一长两短(可用级), 判定恒照常
|
||||
#define COIL_L_SHORT_UH 20 // V4.36.37: 真短路级阈值 µH (方案A 分级): L<20µH(f>171k) → 断开级快闪(200ms, 与真断开同款), COIL_UNDER_MIN_AS_OPEN 作用于此级
|
||||
#define COIL_L_SHORT_F_KHZ 171 // V4.36.37: f@20µH=171.6k 取 171: f>此值 → L<20µH 短路级
|
||||
#define COIL_UNDER_MIN_AS_OPEN 1 // V4.36.24/37/39: L<20µH(f>171k, 短路级) 是否视为线圈断开完全状态(方案A 作用域从 156k 移到 171k):
|
||||
|
||||
@@ -177,7 +177,7 @@ uint32_t g_stab_base = 0; // V4.36.15: 步进比较基准 CAPVD
|
||||
uint8_t g_release_need = 3; // V4.36.8: 释放确认样本数 (按Q档, 高3/中4/低5)
|
||||
uint8_t g_fault_phase = 0;
|
||||
uint16_t g_fault_tick = 0;
|
||||
uint8_t g_coil_fault = 0; // V4.26/25/37: 电感量异常 0=正常 1=出合理窗→一长一短(f<18k L偏大 / 125k<f≤156k L偏小) 2=156<f≤171k L20~24µH→疾闪100ms(恒判车) 3=f>171k L<20µH短路级→断开级快闪(宏=1 等同断开)
|
||||
uint8_t g_coil_fault = 0; // V4.26/25/37/38: 电感量异常 0=正常 1=出合理窗→一长一短(f<18k L偏大 / 125k<f≤156k L偏小) 2=156<f≤171k L20~24µH→一长两短(可用级, 恒判车) 3=f>171k L<20µH短路级→断开级快闪(宏=1 等同断开)
|
||||
uint16_t g_coil_bad_cnt = 0; // V4.26: 电感异常防抖计数 (V4.36.21: 500tick=5s 置位/清除, 宏 COIL_FAULT_HOLD_TICKS)
|
||||
|
||||
/*===========================================================================
|
||||
@@ -980,7 +980,7 @@ static uint32_t coil_l_uH(uint32_t f_khz)
|
||||
* 拍板规格: 默认低频档口径, 空场频率合理窗 20~120kHz, 出界即判定电感量不合理
|
||||
* (黄灯"一长一短"告警, 见 poll_yellow_led 模式5)
|
||||
* 调用点保证: 仅稳定 + 无车空闲 + 未断开时执行 (车压/自检/断开不判)
|
||||
* g_coil_fault: 0=正常 1=出窗一长一短 2=156~171k疾闪(可用级) 3=f>171k短路级(断开级快闪)
|
||||
* g_coil_fault: 0=正常 1=出窗一长一短 2=156~171k一长两短(可用级) 3=f>171k短路级(断开级快闪)
|
||||
* 防抖: 越界/恢复均连续 COIL_FAULT_HOLD_TICKS(500tick=5s, V4.36.21) 才置位/清除 — 下限判定重要, 加长防误检
|
||||
*===========================================================================*/
|
||||
static void coil_monitor(void)
|
||||
@@ -994,14 +994,14 @@ static void coil_monitor(void)
|
||||
/* V4.36.25/37 四分语义 (43nF, 方案A 分级):
|
||||
* f<18k → want=1 L偏大 → 一长一短
|
||||
* 125k<f≤156k → want=1 L偏小(出窗) → 一长一短
|
||||
* 156k<f≤171k → want=2 L 20~24µH 低于下限可用级 → 疾闪100ms(与断开区分), 判定恒照常
|
||||
* 156k<f≤171k → want=2 L 20~24µH 低于下限可用级 → 一长两短(V4.36.38, 与断开区分), 判定恒照常
|
||||
* f>171k → want=3 L<20µH 短路级 → 断开级快闪(200ms), COIL_UNDER_MIN_AS_OPEN 决定功能 */
|
||||
if (f_khz < COIL_F_OK_MIN_KHZ)
|
||||
want = 1; /* L 偏大 */
|
||||
else if (f_khz > COIL_L_SHORT_F_KHZ)
|
||||
want = 3; /* L<20µH 短路级 → 断开级快闪 */
|
||||
else if (f_khz > COIL_L_MIN_F_KHZ)
|
||||
want = 2; /* 156~171k L20~24µH → 疾闪(可用级) */
|
||||
want = 2; /* 156~171k L20~24µH → 一长两短(可用级) */
|
||||
else if (f_khz > COIL_F_OK_MAX_KHZ)
|
||||
want = 1; /* L 偏小(出合理窗, 不低于下限) → 一长一短 */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user