feat(vd-analysis): 车检器分析仓库初始化 + PD132L/PD132T 分析
- README: 仓库说明 + 型号索引 + 新增型号流程
- docs/methodology.md: 参考代码分析方法论模板 (10 节)
- docs/cross-model-comparison.md: PD132L vs PD132T 对比总表
- models/PD132L/analysis.md: STM8S003F3 V1.09 完整分析
- models/PD132T/analysis.md: MA801AS V3.01 完整分析 (L 的 8051 移植版)
核心结论: 两型号检测算法逐行对应 (32768 基数/79·64 IIR/100 基线/
{300,60,32,21} 灵敏度表), 差异在平台(PCA vs TIM1)/Xn窗口(1.27×)/
拨码编码(组合位 vs 直接)/看门狗(WDTCR vs IWDG+WWDG)
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
# 跨型号参数对比总表
|
||||
|
||||
各型号参考代码的核心参数横向对比。**数值量纲以各型号归一化基数为准,横向比较必须先换算口径**(Δf/f = 表值/基数)。
|
||||
|
||||
## 参与型号
|
||||
|
||||
| 型号 | 平台 | 版本 | 文档 |
|
||||
|------|------|------|------|
|
||||
| PD132L | STM8S003F3 | V1.09 | [models/PD132L/analysis.md](../models/PD132L/analysis.md) |
|
||||
| PD132T | MA801AS (8051) | V3.01 | [models/PD132T/analysis.md](../models/PD132T/analysis.md) |
|
||||
| M1H | STC12C5202 (8051) | — | 待归档 |
|
||||
| TLD-110 | P87LPC762 (8051) | — | 待归档 |
|
||||
|
||||
## PD132L vs PD132T(2026-08-27 首版)
|
||||
|
||||
| 维度 | PD132L (STM8) | PD132T (MA801) | 差异说明 |
|
||||
|------|--------------|----------------|---------|
|
||||
| MCU/工具链 | STM8S003F3 / IAR | MA801AS / Keil C51 | 移植关系(T 文件头明示) |
|
||||
| 捕获外设 | TIM1 输入捕获 (PSC=9 ÷10) | PCA (Timer0 重装252 ÷4) | 平台差异 |
|
||||
| **归一化基数** | **32768 (2^15)** | 32768 | 相同 |
|
||||
| Xn 有效窗口 | 320 ~ 1620 | 406 ~ 2050 | ≈1.27×(捕获时钟比) |
|
||||
| IIR 系数 | 79 / 64 | 79 / 64 | 相同 |
|
||||
| 基线窗口 | 100 | 100 | 相同 |
|
||||
| 进入判据 | CAPVD < Origin−dlt | 同 | 相同 |
|
||||
| 离开判据 | CAPVD > Origin−dlt(SET_ASB 选档/固定最高档) | 同 | 相同 |
|
||||
| 灵敏度表 | {300,60,32,21}/{60,32,21,14} | 同 | **完全相同** |
|
||||
| tick / 主逻辑 | 5ms / 50ms | 5ms / 50ms | 相同 |
|
||||
| 脉冲宽 | 500ms | 500ms | 相同 |
|
||||
| 有限存在 | 300s (HOLD_TIME=6000) | 300s | 相同 |
|
||||
| 灵敏度拨码 | SA1/SA2 组合位 (0x0C) | P1.0-1 直接 0~3 | **编码方式不同** |
|
||||
| 功能开关位 | 高位分布 + SW0 | 低位 P1.2-5,无 SW0 | 位序不同 |
|
||||
| 看门狗 | IWDG 1.02s + WWDG | WDTCR 1.05s | 平台差异 |
|
||||
| 复位触发 | WWDG_CR 写序列 | ISPCR=0x20 | 平台差异 |
|
||||
| LED | 单(LEDA) | 双(DET+PWR) | T 多电源灯 |
|
||||
| 继电器 | PD4/PD3 | P1.6/P1.7 | 引脚不同,功能同 |
|
||||
| 上电延时 | 800ms | 750ms | 略差 |
|
||||
| UART | 有(未启用) | 无 | — |
|
||||
|
||||
## 跨型号通用结论
|
||||
|
||||
1. **灵敏度表不能照搬数值**:PD132 的 {300,60,32,21} 是 32768 基数的绝对计数;DLD 系 {216,108,36,10}/{108,54,28,14} 是 65536 基数。换算 Δf/f 后再比较:PD132 SENS=0 ≈ 0.92% vs DLD154V4B SENS=0 ≈ 0.33%——PD132 最低档更不灵敏。
|
||||
2. **离开阈值语义**:PD132 默认固定最高档(SensTable1[3]),DLD 系用当前档滞回——两种设计哲学。
|
||||
3. **Xn 窗口跨平台按捕获时钟缩放**:PD132L→T 是 1.27 倍,移植必须重算。
|
||||
4. **拨码编码随硬件重排**:组合位(SA1/SA2 → 0x0C 位)vs 直接编码(P1.0-1 → 0~3)。
|
||||
|
||||
## 待补型号
|
||||
|
||||
- [ ] M1H(STC12C5202, 8051, C 语言, 2008)
|
||||
- [ ] TLD-110(P87LPC762, 8051, 汇编, 2003-2006)
|
||||
- [ ] 其他新参考代码
|
||||
@@ -0,0 +1,87 @@
|
||||
# 车检器参考代码分析方法论
|
||||
|
||||
拿到一份新车型参考代码时的标准拆解流程。按此模板逐节分析,保证各型号文档结构一致、可横向对比。
|
||||
|
||||
## 0. 平台识别(先做,决定后续所有数值解读)
|
||||
|
||||
| 检查项 | 方法 |
|
||||
|--------|------|
|
||||
| MCU 型号 | 头文件/工程名(如 `iostm8s003f3.h`、`REG_MA801.H`) |
|
||||
| 工具链 | 工程文件类型:`.ewp`=IAR、`.uvproj`=Keil、`.uvprojx`=Keil5、`.mpy`=MounRiver 等 |
|
||||
| 架构 | 8051(`.A51` 启动)/ STM8 / Cortex-M / RISC-V |
|
||||
| 主频/时钟 | 晶振配置代码(`CLK_SWR`/`OSCCON` 等)、PLL 设置 |
|
||||
| 代码规模 | 核心文件行数、有无 UART/协议 |
|
||||
|
||||
## 1. 硬件资源
|
||||
|
||||
- 引脚分配:线圈捕获脚、继电器、LED、拨码、通信口
|
||||
- 线圈调频:电容档(FLEVEL 引脚、档位数、电容值——**以实测反推为准,代码注释可能过时**)
|
||||
- 看门狗:类型(IWDG/WWDG/WDTCR)、超时时间、喂狗位置
|
||||
|
||||
## 2. 频率测量(核心第一步)
|
||||
|
||||
| 检查项 | 关注点 |
|
||||
|--------|--------|
|
||||
| 捕获外设 | TIM 输入捕获 / PCA / 门控计数 / 外部中断计时 |
|
||||
| 捕获边沿 | 上升/下降/双边沿,周期法还是频率法 |
|
||||
| 时钟分频 | PSC 值、捕获时钟 = 主频/分频 |
|
||||
| 周期有效性窗口 | Xn 上下限(对应频率范围)——**跨平台移植必须按捕获时钟比例缩放** |
|
||||
| 归一化 | LPCNT = BASE/Xn?BASE 是多少(32768/131072/524288…)→ 决定灵敏度表量纲 |
|
||||
|
||||
## 3. 滤波
|
||||
|
||||
- IIR 系数(如 `ALFA_CAP1=79` → α=79/256≈0.31)
|
||||
- 多档滤波(增强滤波开关切换系数)
|
||||
- 滤波生效位置(CAPVD 还是 Value)
|
||||
|
||||
## 4. 基线跟踪
|
||||
|
||||
- 滑动平均窗口(100/500…)、更新节拍
|
||||
- 有车冻结逻辑、冻结超时/稳定期检查
|
||||
- 上电稳定期(STABLE_SAMPLES、绕过滤波)
|
||||
|
||||
## 5. 检测判据
|
||||
|
||||
- 进入:`CAPVD < Origin − dlt`?(负向/正向)
|
||||
- 离开:滞回表选择(当前档 / 固定最高档)
|
||||
- 平坦性/确认机制(连续 N 次)
|
||||
- 斜率限幅/防抖
|
||||
|
||||
## 6. 灵敏度表
|
||||
|
||||
- 表值 + 归一化基数 → 换算 Δf/f 和 ΔL/L(**口径必须标注**:`Δf/f = SensTable/BASE`,`ΔL/L ≈ −2×`)
|
||||
- 档位数、默认档、拨码映射
|
||||
- ⚠ 跨型号照搬灵敏度表 = 基数不同量纲错位(如 PD132 32768 基数的 {300,60,32,21} 不能直接对到 65536 基数的产品)
|
||||
|
||||
## 7. 状态机与时序
|
||||
|
||||
- 进入/离开/脉冲标志转移(FLAG_IN→IN_PLUSE→FLAG_OUT→FLAG_PLUSE)
|
||||
- tick 时长(5ms/10ms/50ms)、脉冲宽度、延时参数
|
||||
- 有限存在(HOLD)超时行为
|
||||
|
||||
## 8. 异常处理
|
||||
|
||||
- 线圈断开检测(RF_FLAG/Xn 窗口失败)→ 继电器/指示灯行为
|
||||
- 看门狗复位触发源(超时/灵敏度变化/断开)
|
||||
- 上电自检流程
|
||||
|
||||
## 9. 参数速查表(输出格式)
|
||||
|
||||
| 参数 | 值 | 说明 |
|
||||
|------|-----|------|
|
||||
| 归一化基数 | | |
|
||||
| 捕获时钟 | | |
|
||||
| 测量窗 | | |
|
||||
| IIR 系数 | | |
|
||||
| 基线窗口 | | |
|
||||
| 灵敏度表 | | |
|
||||
| tick/脉冲 | | |
|
||||
| 看门狗 | | |
|
||||
|
||||
## 10. 移植注意事项(跨型号/跨平台)
|
||||
|
||||
1. **Xn 窗口按捕获时钟缩放**(PD132L 320-1620 vs PD132T 406-2050 ≈ 1.27 倍)
|
||||
2. **灵敏度表按归一化基数换算**,禁止照搬数值
|
||||
3. **电容档以实测反推为准**(代码注释可能错)
|
||||
4. 拨码编码位序各型号不同(组合位 vs 直接编码),移植时按硬件重排
|
||||
5. 看门狗/复位方式随平台变化(WWDG 写序列 vs ISPCR)
|
||||
Reference in New Issue
Block a user