CANOpen系列教程03 _CAN收发器功能、原理及作用

描述

1写在前面

前面文章是从大方向介绍了CAN网络,让大家对CAN网络有一定的认识。本文将范围缩小,讲述整个CAN网络其中的一个CAN收发器。如下图标记出来的部分:

CANopen

本文结合众多初学者容易产生的疑问来讲述CAN收发器相关的知识点,大概有如下几点:

什么是CAN收发器?

CAN总线差分信号

CAN收发器芯片和485芯片差异

2

什么是CAN收发器?

CAN收发器在整个CAN网络中所处的位置如上图所示。CAN收发器就是一块类似232或485的转换芯片,它的主要功能是将CAN控制器的TTL信号转换成CAN总线的差分信号。

2.1 什么CAN控制器TTL信号?

现在的CAN控制器一般都与MCU集成在一起,其发送和接收TTL信号就是MCU引脚(高或低)信号。

以前还有独立的CAN控制器,一个CAN网络节点会包含三块芯片:MCU芯片、CAN控制器、CAN收发器。现在是将前两者集成在一起了(看文章开篇图片)。

3

CAN总线差分信号

CAN总线信号从CAN收发器出来,为「两线」「差分」信号,用隐形代表逻辑1,显性代表逻辑0。

CANopen

1.CAN收发器两线

芯片引脚CAN_H、CAN_L

2.CAN_H和CAN_L电压

电压的大小根据芯片型号而定,一般常见的CAN收发芯片有3.3V和5V两种芯片。

如上图,为5V CAN收发芯片,在逻辑0和逻辑1时电压情况:

逻辑0时:

显性,CAN_H=3.5V,CAN_L=1.5V;

逻辑1时:

隐性,CAN_H=2.5V,CAN_L=2.5V;

当然,3.3V电压芯片的总线电压原理类似。而实际应用中,总线电压并非绝对的像上面说的3.5V、2.5V、1.5V这种电压,会受到导线电阻、外界干扰等影响。

3.隐性和显性

学过生物都知道,基因有隐性和显性。隐性的基因实际存在,但不会表现出来。有显性的基因就会表现出来。

这里CAN总线隐性信号和显性信号道理一样,当总线两种信号都有时,总线表现出来的就是显性信号。

提示:我们这里说的显性和隐性信号,指的是总线传输的bit位信号。

所以,CAN总线平时空闲表现为隐性状态。如果想要发送的信号为隐性位,那么总线才会呈现出来隐性。否则,只要其它有一个节点发送显性信号,你这个节点发送出来的隐性信号就无效。

4.CAN收发器R引脚

CAN收发器R引脚就是与CAN控制器接收相连的引脚。如下图:

CANopen

R引脚的信号是表示总线当前的信号,用于控制器实时监测总线信号。主要两个目的:

A.监测其它节点发送出来的信号:别人给它发送数据;

B.监测自身节点发送出去的信号:自己发送是否失败。就像上面说的,自己发送一个隐形信号,结果监测出来是显性信号,那就说明是别人在发送数据。

4

CAN收发器芯片和485芯片差异

CAN通信和485通信一样,属于半双工。但是,为什么CAN总线相比485通信不管在速度和稳定性上都具有明显优势呢?

4.1 总线利用率

CAN收发器工作原理与485具有较大差异。从上面的差分信号可以看得出来,两种芯片同时存在,只有显性信号有效,而不会影响总线传输。简单来说就是CAN总线具有自动仲裁功能,这样就提高了总线的利用率。

RS485总线是一种常规的通信总线,它不能够做总线的自动仲裁,也就是不能够同时发送数据以避免总线竞争,所以整个系统的通信效率必然较低,数据冗余量较大,对于速度要求高的应用场所不适应用RS485总线。

提示:

CAN总线没有被发送出去的隐性信号,会由CAN控制器后续发送出去。这里牵涉到CAN总线优先级的问题,后续进一步讲述。

当然,CAN相比485具有明显优势,主要原因还是在于CAN控制器。

4.2 可以不使用CAN收发器吗?

UART可以直接通过TX连接对方的RX引脚,利用TTL信号进行通信,那么CAN也可以吗?

答案:单向传输可以,双向传输就不行。

原因很简单,上面说了,CAN控制器会实时监测发送出去的信号是否正确。也就是说TX要与RX信号一致才行,否则CAN控制器认为你发送失败。

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

全部0条评论

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

×
20
完善资料,
赚取积分