CAN总线通信详解 (超详细配34张高清图)

如题所述

第1个回答  2024-04-04
CAN总线通信,一种在80年代末由Bosch引领的革新,旨在简化汽车电子控制系统的复杂信息交换。这个革命性的协议在1993年正式成为国际标准,分为高速ISO11898(125kbps-1Mbps)和低速ISO11519-2(125kbps以下),以实时性、抗干扰性和高效数据传输著称。CAN总线采用双绞线传输,通过差分信号确保强健性,无需主从设备的严格区分,支持闭环(120欧电阻,高达1Mbit/s,40米内高效)和开环(2.2k欧电阻,125kbit/s,可达1000米)两种结构。

CAN通信的核心是CAN控制器和收发器组成的节点,它们通过电压差(ISO11898的0附近隐性,2V附近显性,ISO11519-2的负隐性与大于2V的显性)来编码逻辑。图1-6深入解析了CAN网络的构建、总线架构、节点配置和电压表现的差异。

STM32F407平台采用TJA1040 CAN收发器,这款芯片专为闭环网络设计,具备实时性、多主机通信、差分信号传输、非破坏性仲裁、广播功能等特性。位时序与波特率控制精准,如图7所示,通过同步段、位段1和位段2确保同步和数据准确性,适应不同频率的调整。

CAN控制器自动调整时序,通过NBT的3个时间长度来设定总线波特率,协议结构遵循ISO/OSI模型,包括传输、数据链路和物理层。有多种标准规格,数据帧、遥控帧、错误帧、过载帧和帧间隔等五种帧类型各司其职,如数据帧传输信息、遥控帧请求、错误帧报错等。

错误处理机制严谨,错误帧以1位显性位和8位隐性位的界定符报告,过载帧则以6位显性位和8位隐性位标识。数据帧和遥控帧的构成各有特色,帧间隔则是总线空闲的3位隐性位,确保通信的有序进行。

优先级策略灵活,根据空闲状态、连续显性位的多寡、帧类型和ID格式来决定发送顺序。错误检测机制包括位错误、填充错误、CRC错误、格式错误和ACK错误等五类,错误发生时,节点会主动或被动输出错误标志,并可能重发错误帧。

位时序设计允许自定义,通过NRZ方式实现发送和接收的同步,硬件同步仅在帧开始时进行,而再同步则在检测边沿误差时进行,确保数据传输的稳定。最后,学习CAN通信的深入理解,可以参考瑞萨电子的入门书籍,以及王维波等人编写的《STM32 Cube 高效开发教程》。

通过这些详细的讲解,我们对CAN总线通信的原理、结构、操作和错误处理机制有了全面的认识,这将为在实际项目中应用CAN技术提供坚实的基础。
相似回答