Files
vd-analysis/docs/methodology.md
T
wangfq 694c86ba48 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)
2026-08-27 17:55:28 +08:00

88 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 车检器参考代码分析方法论
拿到一份新车型参考代码时的标准拆解流程。按此模板逐节分析,保证各型号文档结构一致、可横向对比。
## 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/XnBASE 是多少(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