设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
控制专题
›
『数控/电机控制/运动控制/工业总线』
›
CANOpen系列教程03_CAN收发器功能、原理及作用 ...
返回列表
发新帖
CANOpen系列教程03_CAN收发器功能、原理及作用
[复制链接]
8807
|
0
|
2024-3-15 09:30:10
|
显示全部楼层
|
阅读模式
置顶公众号,不错过每一条消息!
本教程由作者strongerHuang于2018年09月原创发布。
标签:CAN、 CANOpen、 CanFestival
版权所有:禁止商用
申明:该文档仅供个人学习使用,转载请公众号联系作者授权。
1写在前面
前面文章是从大方向介绍了CAN网络,让大家对CAN网络有一定的认识。本文将范围缩小,讲述整个CAN网络其中的一个CAN收发器。如下图标记出来的部分:
本文结合众多初学者容易产生的疑问来讲述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。
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控制器接收相连的引脚。如下图:
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控制器认为你发送失败。
5
说明
1.该文档部分文字来自网络,仅供个人学习使用,版权所有,禁止商用。
2.本文由我一个人编辑并整理,难免存在一些错误。
3.本文收录于公众号「strongerHuang」,关注微信公众号回复【CANOpen系列教程】即可查看全系列教程。
6最后
若觉得文章对你有帮助,记得给我点赞、分享。(点赞是作者更新文章的动力)
扫描下面二维码、关注,在底部菜单中查看更多精彩内容!
长按识别图中二维码关注
赞赏是对作者的认可与支持!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
阿蚊在线
回复楼主
返回列表
『数控/电机控制/运动控制/工业总线』
『机器视觉/AI/IoT/机器人论坛』
『高级语言/组态软件/触摸屏』
『操作系统xp/xin7/win10/linux』