🙌秋名山码民的主页
😂oi退役选手,Java、大数据、单片机、IoT均有所涉猎,热爱技术,技术无罪
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
获取源码,添加WX
目录
- 前言
- 一、CAN总线概述
- 二、CAN总线物理层
- 三、CAN总线协议层
- 最后
前言
首先明确一个概念,关于MCU中通信总线和通信协议,通信总线是一种用于连接各种外设和模块的物理接口,它可以传输数据和控制信息。通信协议则是指在通信总线上传输数据时所遵循的规则和约定,以确保不同设备之间能够正确地交换信息,我们也可以把他叫做通信总线协议。
系列文章,主要讲解以下几个总线协议,读者可以按需选择:
- UART和USART
- RS232、RS485总线
- IIC总线
- SPI总线
- CAN总线
- USB总线
一、CAN总线概述
CAN总线是控制器局域网络(Controller Area Network)的缩写,它是一种现代的通信协议和物理层总线标准,最初由德国的Bosch公司开发。CAN总线广泛应用于汽车、工业控制系统、航空航天领域以及其他需要可靠的实时通信的领域。CAN网络的消息是广播式的,即在同一时刻网络上所有节点侦测的数据是一致的,它是一种基于消息广播模式的串行通信总线。
can总线的优势:
包括高可靠性、实时性强、抗干扰能力强、通信效率高等优点。它可以支持多个节点之间的通信,并且能够在通信过程中自动进行错误检测和纠正,因此非常适合用于对通信质量要求较高的场合。
二、CAN总线物理层
CAN总线的物理层定义了在CAN总线上进行数据传输时所使用的电气和物理特性。根据CAN总线物理层的标准,有两种常见的物理层实现方式:
-
CAN高/低速物理层:CAN总线的高/低速物理层适用于不同的通信速率要求。在高速物理层中,数据传输速率可达到最高1 Mbps;而在低速物理层中,数据传输速率通常为10 Kbps或者更低。
-
差分信号传输:CAN总线采用差分信号传输,即每个信号线都是成对出现的,一个为CAN_H(高电平),另一个为CAN_L(低电平)。这种差分传输方式可以提供较强的抗干扰能力,使得CAN总线能够在电磁干扰较强的环境中正常工作。
此外,CAN总线还有一些其他的物理层实现方式,如光纤CAN和无线CAN等。不同的应用场景可能需要不同的物理层实现方式,以满足其特定的通信需求。
三、CAN总线协议层
CAN总线协议层是指在CAN总线上进行数据传输时所采用的通信规则和协议。CAN总线协议层主要包括以下几个方面:
-
帧格式:CAN总线使用两种不同的帧格式,分别是标准帧和扩展帧。标准帧包含11位标识符,而扩展帧包含29位标识符,允许更多的消息标识符,以支持更大规模的网络和更多的节点。
-
通信方式:CAN总线采用基于事件的通信方式,节点之间可以根据消息的优先级进行通信,而无需主从节点的概念。这种通信方式使得CAN总线能够实现实时性较强的数据交换。
-
错误处理:CAN总线协议层定义了一套完善的错误处理机制,包括重发机制、错误帧标识和错误状态报告等,以确保数据传输的可靠性和稳定性。
-
数据帧和远程帧:CAN总线支持数据帧和远程帧。数据帧用于实际的数据传输,而远程帧用于请求其他节点发送特定的数据帧,从而实现数据的请求和响应。
-
过滤和屏蔽:CAN总线协议层支持过滤和屏蔽机制,可以根据标识符对接收到的消息进行过滤和筛选,从而只处理感兴趣的消息。
最后
如果本文对你有所帮助,还请三连支持一下博主!