🚗 CAN 底层驱动 · 30章
📘 手把手教学 · 从入门到实战
01
CAN总线概述
CAN协议起源
CAN总线特点
CAN与RS485对比
CAN应用领域
02
CAN物理层
差分信号原理
CAN_H与CAN_L电平
总线拓扑结构
终端电阻作用
03
CAN协议层
数据帧格式
远程帧
错误帧
过载帧
帧间隔
04
CAN总线仲裁
CSMA/CA机制
位仲裁原理
优先级判定
非破坏性仲裁
05
CAN错误处理
位错误
填充错误
CRC错误
错误状态机
错误恢复机制
06
CAN控制器硬件
SJA1000/MCP2515
寄存器映射
Normal/Loopback/Sleep
07
STM32 bxCAN外设
bxCAN特性
主控时钟配置
CAN引脚映射
过滤器组原理
08
CAN驱动初始化
GPIO复用功能
时序参数BS1/BS2/SJW
波特率设置
09
CAN过滤器配置
列表模式与掩码模式
32位与16位过滤器
过滤器组分配
10
CAN发送驱动
发送邮箱机制
发送请求TXRQ
发送优先级
发送完成中断
11
CAN接收驱动
接收FIFO 0/1
接收中断使能
报文读取流程
溢出处理
12
CAN中断服务函数
中断向量表配置
中断标志位清除
中断嵌套处理
实时性优化
13
CAN状态寄存器解析
TEC/REC计数
错误状态指示
总线关闭恢复
14
CAN回环测试
Loopback模式配置
自发自收验证
数据一致性检查
15
CAN通信协议设计
ID分配策略
标准帧/扩展帧
DBC文件解析
信号打包与解包
16
CAN数据链路层封装
发送函数封装(阻塞/非阻塞)
接收回调函数
超时处理
17
CAN多节点通信
多主发送冲突处理
数据同步机制
心跳报文设计
18
CAN网络管理
节点状态监控
离线检测
网络唤醒Wake-up
19
CAN诊断协议 (UDS)
ISO 14229-1概述
诊断会话控制
DID读写
例程控制
20
CAN标定协议 (CCP/XCP)
标定协议基础
DAQ与STIM模式
A2L文件解析
21
CAN驱动移植
STM32→GD32/AT32
寄存器差异处理
HAL库与LL库适配
22
CAN驱动性能优化
中断频率控制
DMA传输
双缓冲技术
CPU负载评估
23
CAN总线故障排查
示波器抓波形
总线利用率计算
短路/断路/终端电阻缺失
24
CAN与CAN FD对比
CAN FD帧格式
数据场扩展64字节
速率切换BRS位
CRC增强
25
CAN FD驱动实现
FD控制器配置
TDC发送延迟补偿
FD与经典CAN兼容性
26
CANopen协议栈移植
对象字典
PDO/SDO通信
NMT状态机
心跳生产者/消费者
27
J1939协议栈移植
PGN/SPN定义
多包传输BAM/CMDT
地址声明
网络管理
28
CAN上位机开发
USB-CAN工具二次开发
PCAN/ZLGCAN
Python-can库
数据可视化
29
CAN驱动自动化测试
测试用例设计(边界值/异常值)
HIL测试环境搭建
覆盖率分析
30
综合项目实战
基于CAN的BMS模拟器
电池电压采集
绝缘检测
充电握手协议