🚗 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模拟器 电池电压采集 绝缘检测 充电握手协议