新闻中心

PRESS CENTER 纵横智控
你的位置: 首页 新闻 行业资讯
纵横智控

CAN总线协议是什么?CAN协议详解

2024-06-14 09:32:32 阅读: 发布人:纵横智控

CAN 总线协议是什么?

CAN 控制器局域总线是 Controller Area Network 的缩写,它的出现最初是为了取代汽车行业电子控制系统中不断增加的信号线,后来因为它具有高可靠性、实时性和灵活性,已经延伸使用到了工业与自动化等其他领域。CAN总线是一个单一的总线,所有的外围器件都可以被挂载到该总线,大致原理如下图:

边缘计算网关/物联网平台/网关模块/纵横智控



图中,120Ω的电阻可以匹配总线阻抗,吸收信号发射及回拨,提高了数据通信的抗干扰能力每一个节点都对应一个外围器件,每个外围器件要接入到CAN总线都需包含CAN 控制器和CAN收发器。其中,CAN控制器主要负责上层应用层信号和逻辑电平之间的转换,而CAN 收发主要负责逻辑电平和物理信号之间的转换。

边缘计算网关/物联网平台/网关模块/纵横智控


CAN 总线使用CAN_H 和 CAN_L两根线来连接各个单元,CAN 控制器通过判断这两根线上的电位差来得到总线电平(又称逻辑电平)。CAN 总线通过显性电平和隐性电平的变化,将数据发送出去。当总线上无节点传输数据时,会一直处于隐性状态。

显性电平(逻辑电平 0):CAN_H = 3.5 V,CAN_L = 1.5 V,电位差 = 2 V;

隐性电平(逻辑电平 1):CAN_H = CAN_L = 2 V,电位差 = 0 V。


边缘计算网关/物联网平台/网关模块/纵横智控



CAN 总线协议的通信过程

CAN 的通信过程简单来说,就是发送方通过使总线电平发生变化传递信息,接收方通过监听总线电平,将总线上的消息读入自己的接收器。


  1、发送过程

假设CAN总线处在隐性状态,并从节点1开始发送数据。上层应用层发送信号,假设CAN控制器转换成了逻辑电平 0,经由 TxD 发给 CAN 收发器,然后转换成对应的电压,这样就完成了 1 bit 数据的发送。


  2、接收过程

CAN是广播式地给当前局部网络的所有节点发送数据帧的,这样接收时总线上的每一个设备都会收到这一帧的数据。CAN 的帧格式是面向内容的编址方案,可以认为报文是通过内容寻址,也就是说,报文的内容隐式地确定其地址。


节点2:检查了内容发现不是发给自己的,直接过滤;


节点3:同样发现不是发给自己的,直接过滤;


节点4:读取这一帧数据;


节点4 的CAN收发器将总线上的差分电平转换成逻辑电平,随后再由CAN控制器转换成信号发送给上层。


CAN 通信帧

接下来我们要进一步了解每一个节点发送的一帧报文。其实CAN 通信帧有很多种,有用于数据传输的、远程控制的、错误通知等等。其中最为常用的就是用于传输数据的数据帧。

边缘计算网关/物联网平台/网关模块/纵横智控


边缘计算网关/物联网平台/网关模块/纵横智控

 下面来聊聊数据帧,数据帧可以根据仲裁段长度不同,分为标准帧、扩展帧。

1. 帧起始、帧结束

帧起始由一个显性位(低电平)组成,帧结束由7个隐形位(高电平)组成。


2. 仲裁段

表示该帧优先级的段,仲裁段的作用是解决多点竞争问题。每次可能有好几个设备同时要往总线发送数据,仲裁段包含帧ID,帧ID越小,优先级越高,优先级高拥有优先使用总线的权利。


3.控制段

表示数据的字节数及保留位的段。


4.数据段

为0-8字节,短帧结构,实时性好,适合汽车和工控领域。CAN-FD的数据段最高可以发送 64 字节。


5.CRC段

检查帧的传输错误的段。


6. ACK段

表示确认正常接收的段。任何节点如果准确无误地接收到帧,都要向总线上发送显性位(逻辑电平0),该显性位将掩盖发送节点输出的隐性位,使总线上表现为显性;如果发送节点检测应答位为隐性,那么说明没有节点收到有效帧。


CAN 总线有哪些特征?

1. 多主控制


CAN 总线没有主从之分,每个设备都可以主动发送数据,最先访问总线的单元获得发送权,剩余总线禁止发送数据。如果多个单元同时开始发送时,高优先级 ID(数据帧中的一个字段)的单元可获得发送权。


2.控制通信速度


根据整个网络的规模,可设定适合的通信速度。


在同一网络中,所有单元必须设定成统一的通信速度。即使有一个单元的通信速度与其它的不一样,此 单元也会输出错误信号,妨碍整个网络的通信。不同网络间则可以有不同的通信速度。


3.远程数据请求


可通过发送“遥控帧” 请求其他单元发送数据。


4. 具有错误检测、通知、恢复功能


所有的单元都可以检测错误(错误检测功能)。


检测出错误的单元会立即同时通知其他所有单元(错误通知功能)。


正在发送消息的单元一旦检测出错误,会强制结束当前的发送。强制结束发送的单元会不断反复地重新 发送此消息直到成功发送为止(错误恢复功能)。


5.系统的柔软性


与总线相连的单元没有类似于“地址”的信息。因此在总线上增加单元时,连接在总线上的其它单元的软硬件及应用层都不需要改变。


在实际应用中,正确读取这一协议的数据对于通信可靠性至关重要,通过上述内容的详细介绍,相信大家对CAN协议的相关知识有了更加深入的了解。


您可能感兴趣485转CAN协议



热门产品