首页/外设速查/CAN
🚌

CAN 控制器局域网

通信外设
汽车与工业现场总线的王者:差分、多主、仲裁,抗干扰强、可靠性高。
🧩 核心原理
📈 时序 / 工作过程图
CAN 标准帧结构(11位ID)SOF → 仲裁场 → 控制场 → 数据场 → CRC → ACK → EOFEOF总线空闲(隐性)显性位仲裁:ID 小的优先级高(显性0 覆盖 隐性1)· 数据段 0-8 字节 · 1Mbps@40m
⚙️ 配置 / 使用要点
  1. 使能 CAN + GPIO 复用(RX/TX)
  2. 配置波特率:分频 + 位时间(BRP/TS1/TS2/SJW)
  3. 配置滤波器:接收ID过滤
  4. 配置邮箱发送/ FIFO 接收 + 中断
🛠️ 项目示例
CAN 发送一帧报文(ID=0x123,2字节数据)
CAN_TxHeaderTypeDef th = {0};
th.ExtId = 0;                          // 标准帧
th.StdId = 0x123;
th.IDE = CAN_ID_STD;
th.RTR = CAN_RTR_DATA;                 // 数据帧
th.DLC = 2;                            // 2字节
uint8_t data[2] = {0x01, 0x02};
uint32_t mailbox;
HAL_CAN_AddTxMessage(&hcan1, &th, data, &mailbox);
// 发送完成中断回调:HAL_CAN_TxMailbox0CompleteCallback
❓ 面试高频
CAN仲裁原理?
显性位(0)覆盖隐性位(1),多个节点同时发送时逐位比较ID,ID小的在仲裁场获胜,高优先级先发
CAN和RS485区别?
CAN差分+多主+仲裁+错误检测(硬件级可靠);RS485一主多从半双工,可靠性靠协议层
为什么CAN能传1km?
低速(如125kbps)时信号边沿宽松,可传更远;速率与距离成反比
位时间是什么?
1位=同步段+传播段+相位缓冲段1/2+采样点,通过分频和位时间配出目标波特率
✅ 自查清单 (点击勾选,本地保存)
0/0
会画CAN帧结构
理解ID仲裁原理
知道显性/隐性电平
会配置波特率与滤波器
知道速率-距离关系