CAN协议简介:从基础到高级应用

文章目录

    • 引言
    • 一、CAN协议概述
      • 1.1 基本特性
      • 1.2 典型应用场景
    • 二、物理层解析
      • 2.1 信号规范
      • 2.2 网络拓扑
    • 三、数据链路层机制
      • 3.1 帧类型对比
      • 3.2 非破坏性仲裁
      • 3.3 错误处理机制
    • 四、帧结构详解
      • 4.1 标准数据帧结构
      • 4.2 扩展帧结构
    • 五、高级特性
      • 5.1 CAN FD协议增强
      • 5.2 报文过滤机制
    • 六、同步与定时
      • 6.1 位时间组成
      • 6.2 同步规则
    • 七、开发实践要点
    • 结语

引言

在现代工业控制和汽车电子领域,CAN(Controller Area Network)协议凭借其高可靠性、实时性和灵活性,成为分布式系统的首选通信方案。本文将深入解析CAN协议的核心技术原理,帮助读者全面理解这一经典总线协议的工作机制。

一、CAN协议概述

1.1 基本特性

  • 多主架构:所有节点平等,可主动发起通信
  • 差分信号传输:采用CAN_H/CAN_L双绞线,抗干扰能力强
  • 非破坏仲裁:基于优先级的冲突解决机制
  • 高可靠性:CRC校验、错误检测与重传机制

1.2 典型应用场景

  • 汽车电子(ECU通信)
  • 工业自动化(PLC网络)
  • 医疗设备(生命支持系统)
  • 航空航天(机载系统)

二、物理层解析

2.1 信号规范

信号状态 CAN_H电压 CAN_L电压 差分电压
显性电平 3.5V 1.5V 2V
隐性电平 2.5V 2.5V 0V

显性电平(逻辑0)具有总线仲裁优先权

2.2 网络拓扑

  • 总线型结构,最大支持110个节点
  • 终端电阻配置(120Ω×2)
  • 传输距离与速率关系:
    • 1Mbps → 40m
    • 125kbps → 500m

三、数据链路层机制

3.1 帧类型对比

帧类型 标识符长度 数据长度 主要用途
标准数据帧 11位 0-8字节 常规数据传输
扩展数据帧 29位 0-8字节 复杂网络扩展
远程帧 11/29位 无数据 数据请求
错误帧 错误通知
过载帧 流量控制

3.2 非破坏性仲裁

仲裁流程

  1. 节点同时发送ID,高位优先比较
  2. 遇到显性电平(0)时,发送隐性电平(1)的节点退出发送
  3. 最小ID(二进制值)获得最高优先级

示例
节点A发送ID:0x12A(二进制 000100101010)
节点B发送ID:0x12B(二进制 000100101011)
在第10位比较时,A发送0,B发送1 → A胜出

3.3 错误处理机制

  • 错误检测

    • CRC校验(15位多项式)
    • 位填充校验(每5个相同位插入相反位)
    • 格式校验
  • 错误类型

    • 位错误
    • 填充错误
    • CRC错误
    • 格式错误
    • ACK错误
  • 错误计数器

    • 发送错误计数器(TEC)
    • 接收错误计数器(REC)
    • 错误状态转换:
      • 主动错误 → 被动错误 → 总线关闭

四、帧结构详解

4.1 标准数据帧结构

[SOF][11位ID][RTR][控制段][数据段][CRC][ACK][EOF]
  • SOF:帧起始(显性电平)
  • 控制段:包含DLC(数据长度代码)
  • CRC:15位校验码+隐性界定符
  • ACK:发送显性,接收节点拉低确认

4.2 扩展帧结构

[SOF][11位基ID][SRR][IDE][18位扩展ID][RTR][控制段][数据段][CRC][ACK][EOF]
  • SRR:替代远程请求位(隐性)
  • IDE:标识符扩展位(显性)

五、高级特性

5.1 CAN FD协议增强

  • 数据段可变速率(最高5Mbps)
  • 数据长度扩展(最大64字节)
  • 改进CRC算法(21位多项式)

5.2 报文过滤机制

  • 验收过滤器类型:
    • 单过滤器(精确匹配)
    • 范围过滤(起始ID-结束ID)
    • 掩码过滤(指定关注位)

示例掩码配置

// 只接收ID低4位为0x0A的帧
FilterId = 0x0000000A;
FilterMask = 0x0000000F; 

六、同步与定时

6.1 位时间组成

时间段 作用 典型比例
同步段(SYNC) 总线电平跳变同步 1 Tq
传播段(PROP) 补偿物理延迟 2 Tq
相位缓冲段1 时钟调整(延长) 3 Tq
相位缓冲段2 时钟调整(缩短) 2 Tq

Tq(Time Quantum)= 1/(波特率预分频)

6.2 同步规则

  • 硬同步:SOF下降沿重新校准
  • 再同步:数据流中的下降沿调整

七、开发实践要点

  1. 终端电阻配置:总线两端必须接120Ω电阻
  2. 接地处理:采用单点接地,避免地环路
  3. EMC设计
    • 双绞线节距<100mm
    • 避免与电源线平行走线
  4. 诊断工具
    • CANalyzer/CANoe
    • PCAN-USB
    • BusMaster

结语

CAN协议经过30余年发展,已形成完整的协议家族(CAN 2.0/FD/CANopen等),在实时性要求严苛的领域持续发挥重要作用。理解其底层机制不仅有助于故障诊断,更能为高可靠性系统设计提供坚实基础。随着CAN SIC(信号改进)和CAN XL等新标准的发展,这一经典协议仍在不断进化,继续引领工业通信技术的发展潮流。

你可能感兴趣的:(嵌入式硬件,学习,笔记,嵌入式硬件,物联网)