🚌 CAN通信 · 30章
软件架构 & 代码实现
01
CAN协议基础
📡 总线起源 · 与RS485对比 · 物理层特性
02
CAN数据帧结构
📦 标准/扩展帧 · ID仲裁 · CRC校验
03
CAN错误处理机制
⚠️ 错误类型 · 主动/被动/总线关闭
04
CAN总线位定时与同步
⏱️ 位时间分段 · 采样点配置
05
CAN控制器硬件架构
🔩 SJA1000/MCP2515 · 验收滤波器
06
CAN收发器选型
⚡ TJA1050/SN65HVD230 · 隔离设计
07
STM32 CAN外设详解
🧩 bxCAN模式 · 过滤器组 · FIFO
08
CAN驱动层设计 (HAL库)
📟 HAL_CAN_Init · 回调函数机制
09
CAN驱动层设计 (LL库)
⚙️ 寄存器级操作 · 发送邮箱调度
10
CAN应用层协议设计
📋 自定义 vs J1939 vs CANopen
11
CANopen协议栈移植
📂 对象字典 · PDO/SDO · NMT
12
J1939协议栈实现
🚛 PGN/SPN · 多包传输 · 地址声明
13
CAN报文发送模块设计
📤 环形缓冲区 · 优先级队列 · 超时重传
14
CAN报文接收模块设计
📥 中断/DMA接收 · 去抖动 · 时间戳
15
CAN网络管理模块
💓 心跳报文 · 节点监控 · 离线恢复
16
CAN诊断协议 (UDS on CAN)
🩺 ISO 14229-1 · DTC读取
17
CAN Bootloader设计
📲 固件升级 · 安全校验 · Flash擦写
18
CAN总线负载率计算
📊 位时间利用率 · 峰值负载 · 余量
19
CAN总线实时性分析
⏳ WCRT · 优先级反转 · 抖动
20
多节点CAN通信同步
🕒 全局时间同步 · 时钟漂移补偿
21
CAN总线故障注入测试
🔌 短路/断路 · 位错误 · 反接测试
22
CAN总线信号质量分析
📈 眼图 · 共模电压 · 终端电阻
23
CAN上位机工具开发 (Python)
🐍 python-can · PCAN-USB · 可视化
24
CAN上位机工具开发 (C#)
🖥️ ZLG USBCAN-II · DBC解析
25
CAN与Ethernet网关设计
🌐 协议转换 · TCP/IP封装 · 延迟优化
26
CAN与LIN总线混合网络
🔗 LIN子网 · 网关路由 · 唤醒机制
27
CAN FD协议进阶
🚀 FD vs 2.0 · 速率切换 · 数据场扩展
28
CAN XL协议前瞻
🔮 XL vs FD · 数据场>2048B · 新物理层
29
车载CAN网络实战案例
🚗 BMS通信 · VCU/MCU · OTA升级
30
工业CAN网络实战案例
🏭 伺服驱动 · PLC/IO · EtherCAT共存