锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

通信教程 | CAN总线协议基础原理

时间:2023-07-24 17:07:00 can总线的传感器

关注 星标公众,不要错过精彩的内容

1d922e958eed371855fe1875ba2c709e.gif

视频号 | strongerHuang

微信公众号|strongerHuang

本文说的CAN即总线,也是协议。所以,我们经常听到CAN也经常听到总线CAN协议。

CAN协议和CANOpen协议是两套不同的协议。分为软硬件层次,CAN该协议属于硬件协议,CANOpen属于软件协议

本文将概述CAN网络,让大家对CAN总线协议有一个全局的概念,再到底层的CAN总线协议知识。

1CAN网络

CAN网络可以理解为多个CAN设备连接在同一条CAN总线上组合成的网络,其中的CAN我们称设备为节点。CAN网络拓扑结构如下图所示:

如上图所示,一个CAN节点主要包括三类:MCU应用程序、CAN控制器、CAN收发器

1.MCU应用程序

MCU我将应用程序分为三部分:业务逻辑代码、协议层代码、底层驱动代码

A.业务逻辑代码:这取决于项目的需要,也很容易理解。例如,我读取传感器数据并进行相应的逻辑处理。

B.协议层代码:比如后续要讲述的CANOpen。

C.底层驱动代码:配置CAN控制收发代码的总线相应参数。

2.CAN控制器

CAN控制器的内部结构相当复杂,一般现在CAN控制器与处理器集成

事实上,对于编程师来说,它只不过是一些控制、状态、配置和其他寄存器。

例如,我们看到了一些STM32芯片带有CAN,也就是说CAN控制器已集成STM在32芯片中,我们只需要编程寄存器。

3.CAN收发器

CAN收发器:将CAN收发引脚(CAN_TX和CAN_RX)的TTL信号转换成CAN总线电平信号

PS:你可以把CAN总线通信认为是UART通过485通信:CAN控制器就如UART控制器,和CAN收发器就像485转换芯片。

2ISO标准化的CAN协议

写这一章的主要目的是让每个人都知道CAN总线位于OSI所在层次。

1.ISO/OSI基本参考模型

【注】

ISO:International Standardization Organization国际标准化组织;

OSI:Open Systems Interconnection开放式系统间互联;

2.CAN在OSI模型中的定义

【注】

LLC:Logical Link Control逻辑链路控制;

MAC:Medium Access Control媒介访问控制;

从上图可以看出CAN总线底部硬件的内容(CAN主要位于控制器和收发器OSI第一层和第二层。

3概述CAN总线协议

CAN总线协议:确保通信(收发)数据在CAN一套协议可以在总线上稳定传输。

CAN总线协议有很多内容。为了方便初学者的理解,本文将对其进行大致描述CAN总线协议详细介绍后续文章CAN总线协议的内容。

1.总线信号

CAN总线为「两线」「差分」信号,用隐形代表逻辑1,显性代表逻辑0。如下图所示:

2.优先级

假设在某个时刻,一个设备(节点)发0到总线,一个设备发1到总线。那么总线会出现什么现象呢?

答:最后总线呈现为显性,也就是0。

3.位时序

位时序逻辑将监控串行总线,实施采样并调整采样点。调整采样点时,需要在起始位边同步,然后在后续边同步。

简单地说,是对的bit采样的目的是提高数据传输的稳定性。STM32中底层驱动代码就需要进行位时序编程,在STM以下时序图也将在参考手册中找到:

4.帧的类型和格式

帧有很多种:

数据帧:用于发送单元向接收单元传送数据的帧。

遥控帧:用于接收单位的相同方向 ID 发送单元要求数据帧。

错误帧:当检测到错误时,将错误帧通知其他单元。

过载帧:用于接收单元通知其尚未做好接收准备的帧。

帧间隔:用于将数据帧和遥控帧与前帧分离。

数据帧和遥控帧有两种格式:标准格式和扩展格式。标准格式有11个标志符ID,扩展格式有29个位置ID。

5.位填充

位填充是为防止突发错误而设置的功能。当相同的电平持续时 5 位时则添加一个位的反型数据。如下图:

6.类型错误

CAN总线协议有很多内容,初学者可以先了解这些,希望对你有所帮助。

------------END------------

关注微信官方账号后台回复『通信教程』『单片机』阅读更多相关文章。

回复“加群按规定加入技术交流组,回复1024查看更多内容。

点击“阅读原文”查看更多分享

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章