什么是CAN总线通信?CAN总线工作原理

接口/总线/驱动

1116人已加入

描述

什么是CAN总线

CAN总线是一种高性能、高可靠性的串行通讯协议总线,主要用于实时应用的场合,如汽车中的各种不同元件之间的通信。CAN总线采用双绞线来传输信号,具有高性能、高可靠性、实时性等优点。同时,CAN总线具有完整性的串行数据通讯、提供实时支持、传输速率高达1Mb/s、11位的寻址以及检错能力等特点。在汽车行业中,CAN总线已经成为国际上应用最广泛的现场总线之一,广泛应用于汽车和其他自动化领域中。

CAN总线工作原理

CAN总线的工作原理基于广播方式,通过标识符来识别数据是否发送给自己的,并使用差分信号传输来保证可靠性和实时性。

CAN总线数据传输原理,从一个节点向其他节点发送数据。当一个节点发送数据时,该节点的CPU将将要发送的数据和标识符发送给本节点的CAN芯片,并使其进入准备状态。一旦该CAN芯片收到总线分配,就变为发送报文状态,该CAN芯片将要发送的数据组成规定的报文格式发出。此时,网络中的其他节点都处于接收状态,所有节点都要先对其进行接收,通过检测来判断该报文是否是发给自己的。(CAN总线通信实现CAN报文带ID标识教程

CAN总线使用差分信号传输,通过在CANH和CANL上传输差分信号来表示数字信号。差分信号传输方式具有抗干扰能力强和可靠性高的优点(如何提高CAN总线抗干扰能力?)。在同一系统中标识符是唯一的,不可能有两个站发送具有相同标识符的报文。当几个站同时竞争总线读取时,这种配置十分重要。当一个站要向其他站发送数据时,该站的CPU将要发送的数据和自己的标识符传送给本站的CAN芯片,并处于准备状态;当它收到总线分配时,转为发送报文状态。CAN芯片将数据根据协议组织成一定的报文格式发出,这时网上的其他站处于接收状态。一张图看懂CAN总线的原理:

数据传输


图1

根据图1中简单来说CAN总线就如两根黄线,通信的原理就好比开一个电话会议,大家都同时拨进来,然后有各种不同的状态,比如:一个人说话,其他人听;或者多个人同时想发言,但也会让其中一个人先说,其他人听;还有一个人要求另一个人来说;还有些掉线了,卡顿了等等。

为了确保每次电话会议针对上述情况正确有效地进行,我们需要一些每个人都应该遵守的规则或协议。CAN总线通信与这种电话会议形式既有相似之处,也有不同之处。那究竟什么是CAN总线通信

CAN总线架构简介

CAN总线是一种用于不同控制单元之间数据传输的导线。CAN总线协议是ISO国际标准化的串行通信协议,由两个系列组成:ISO-11898和ISO-11519。其定义有:

·ISO-11898定义了通信速率为125 kbps ~1Mbps 的高速CAN通信标准,属于闭环总线,传输速率可达1Mbps,总线长度 ≤ 40米,如图2。

·ISO11519定义了通信速率为10~125 kbps 的低速CAN通信标准,属于开环总线,传输速率为40kbps时,总线长度可达1000米,如图2。

数据传输


图2

CAN总线的应用

CAN总线会有终端电阻,一般来说都是120欧姆,实际上在设计的时候,也是两个60欧姆的电阻串起来的,而总线上一般有两个120欧姆的节点。CAN总线终端电阻的作用有三个:

1、提高干扰防护能力,快速消除高频低能量信号;

2、确保总线快速进入隐藏状态,这样寄生电容器的能量可以更快地耗散;

3、通过将它们放置在总线两端以减少反射能量来提高信号质量。

数据传输

图3

在学习CAN总线时,经常会看到CAN总线的电平分为显性电平与隐性电平,那么什么是显性的和隐性的呢?显式和隐式逻辑0与逻辑1之间的对应关系是什么?CAN通信逻辑0和1,显式和隐式。

电信号的传输是通过区分高电压和低电压来进行的,就像CAN通信一样。CAN总线的两条信号线是CAN高(CAN_H)和CAN低(CAN_L)。关于CAN的逻辑0和逻辑1以及CAN总线的显式和隐式方面,编制了以下图表,以使每个人都能清楚地理解。

数据传输

如下图4 所示:

数据传输

图4

注 1:在实际开发中,两条线路的电压都以默认值波动,这也是使用差动传输减少误差和噪声干扰的优点;

注 2:CAN总线采用“线路和”规则进行总线套利,即如果同时发送多个CAN信号,有些发送1,有些发送0,只要有0,则当前总线为0(1&0=0)。因此,总线上的显式平面由逻辑“0”表示,而隐式平面则由逻辑“1”表示;

虽然差分信号有较好的抗干扰能力,但是长距离信号传输时,我们通常会采用双绞线进行数据传输,以此来从物理上减弱噪声对信号传输过程中的耦合。

数据传输

图5 消除电容耦合

数据传输

图6 消除电感耦合

数据传输

图7 消除对外界的干扰

CAN信号传输

上述的电位差(差分电平)与逻辑电平是通过CAN收发器实现的。在传输过程中,CAN控制器将CPU传输的信号转换为逻辑电平。CAN收发器接收到逻辑电平后,将其转换为差分电平并输出到CAN总线。

数据传输

图9 CAN信号发送

在接收过程中,CAN收发器发送CAN_H和CAN_L线路上传输的差电平被转换为逻辑电平并输出到CAN控制器,然后CAN控制器将逻辑电平转换为相应的信号并发送到CPU。

数据传输

图10 CAN信号接收

简单地说,这意味着变送器通过CAN收发器改变总线电平,并将其信息传输到CAN总线。接收器通过监测总线电平将总线上的信息读取到自己的CAN收发器中。

如上所示,CAN总线有两种架构,两种形式的CAN信号,以及发送和接收CAN信号的两个过程。

CAN总线的拓扑结构包括CAN总线、CAN收发器和设备节点。其中,用来传输CAN总线信号的媒介叫做CAN总线,由CAN_H和CAN_L两根线组成;连接CAN总线和设备节点,用来转换逻辑电平和物理信号的单元电路叫做CAN收发器;通过CAN收发器连接在总线上的设备叫做设备节点。此外,不同的CAN标准仅物理层不同,传输介质和传输速率也有所不同。

审核编辑:黄飞

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分