CAN总线OBD通信协议实战
📘 30章 · 从入门到实战
01
CAN总线基础
CAN总线起源 · 物理层特性 · 差分信号原理
02
CAN协议帧结构
标准帧与扩展帧 · 数据帧/远程帧/错误帧/过载帧/帧间隔
03
CAN总线仲裁机制
CSMA/CA原理 · 位仲裁过程 · 优先级判定规则
04
CAN总线错误处理
错误类型 · 错误状态机 · 位/填充/CRC/格式/应答错误
05
CAN总线位时序
位时间组成 · 同步段/传播段/相位缓冲段 · 采样点设置
06
CAN控制器与收发器
SJA1000/MCP2515/TJA1050 · 硬件电路设计要点
07
OBD协议概述
OBD起源与发展 · OBD-II标准 · 协议栈ISO 15765-4
08
OBD物理层与数据链路层
ISO 9141-2 / 14230-4 / 15765-4 CAN物理层差异
09
OBD诊断服务(上)
服务ID概述 · 服务10 (模式$01) 请求当前动力总成数据
10
OBD诊断服务(中)
服务20 (模式$02) 冻结帧 · 服务30 (模式$03) 排放DTC
11
OBD诊断服务(下)
服务40 (模式$04) 清除/复位 · 服务50 (模式$05) 氧传感器监测
12
OBD诊断故障码(DTC)
DTC结构 (P0xxx/P1xxx) · 格式 · 常用码解读
13
OBD PID协议
PID结构 · 常用PID (转速/车速/冷却液温度) 请求与解析
14
ISO 15765-2 (ISO-TP)
单帧/多帧传输 · 流控制帧 · 连续帧 · 时间参数
15
CAN总线OBD报文结构
CAN ID分配 (功能/物理寻址) · 7E0/7E8/7DF等
16
OBD请求与响应流程
请求报文构造 · 响应解析 · 超时处理 · 重试机制
17
Python-CAN库入门
python-can安装 · 总线配置 · 发送与接收基础报文
18
Python实现OBD连接
初始化CAN总线 · 发送OBD请求 · 接收并解析响应
19
Python解析OBD数据(上)
发动机转速(0x0C) · 车速(0x0D) · 冷却液温度(0x05)
20
Python解析OBD数据(下)
进气歧管压力(0x0B) · 氧传感器电压(0x14) · 燃油系统状态(0x03)
21
Python实现DTC读取
请求DTC (服务$03) · 解析DTC码 · 清除DTC (服务$04)
22
Python实现冻结帧数据读取
请求冻结帧 (服务$02) · 解析冻结帧 · 应用场景
23
Python实现连续数据监控
定时轮询PID · 数据记录 · 实时曲线 (matplotlib)
24
Python实现OBD模拟器
模拟ECU响应 · 测试诊断逻辑 · 自动化测试
25
实战项目(一)采集器设计
硬件选型 · 软件架构 · 数据存储 (SQLite)
26
实战项目(二)采集器实现
Python代码 · 多线程采集 · 异常处理
27
实战项目(三)采集器优化
数据压缩 · 断点续传 · 远程上传 (MQTT)
28
CAN总线OBD故障诊断实战
常见通信故障排查 · 总线错误/地址冲突/超时 · CAN分析仪
29
CAN总线OBD安全与法规
安全风险 (重放/篡改) · EOBD/OBD-II · 合规性设计
30
CAN总线OBD进阶与展望
CAN FD与OBD · 车载以太网 · 远程诊断与OTA