当前位置: 首页 > news >正文

江协科技 CAN总线入门课程(CAN简介硬件电路)

首先,我们将CAN总线协议的特点与之前学习过的主流通信协议进行对比如下:

接下来首先看CAN的硬件电路,下面这两个图就是CAN总线的电路接法,左图为闭环CAN总线,是高速CAN的接法;右图为开环CAN总线,是低速CAN的接法。

每个设备通过CAN收发器挂载在CAN总线网络上,CAN收发器就是一个芯片,主要实现电平转换、输出驱动和输入采样这几个功能;
CAN控制器引出的TXRXCAN收发器相连,CAN收发器引出的CAN_HCAN_L分别与总线的CAN_HCAN_L相连。最下面的两根线就是串连各个节点的CAN总线,CAN总线里走的是差分信号,一般会用双绞线为载体,避免干扰;
高速CAN使用闭环网络,CAN_HCAN_L两端添加120Ω的终端电阻,其主要作用有两个:1.防止回波反射,尤其是高频信号、远距离传输的场景,回波反射是不能忽略的问题;2.在没有设备操作时,将两根差分线的电压收紧,使其电压一致,意思就是在没有设备操作总线的情况下,电阻就像一根弹簧一样,会将两根线的弹簧拉到同一水平。因为CAN总线是差分信号,有两根线,所以两边的终端电阻可以将两根线收紧至电压一致状态,代表的就是默认的1状态,并且这两个电阻的阻值并不大,所以这个收紧的速度是非常快的,使得CAN总线支持的最大速率也比较快。所以当某个设备想发送0时,它就会操作总线,把总线“拉开”,使其呈现0状态,当设备想要发送1时,就不去碰总线,总线在终端电阻的收缩下自动归位默认状态1;一定要注意,当设备想发送1时,它无需对总线进行任何操作,因为总线的默认状态就是1。这就是高速CAN的电路以及高速CAN如何发送0和1的操作方式。
低速CAN使用开环网络,CAN_HCAN_L其中一端添加2.2kΩ的终端电阻
现在来看一下它的具体规定:首先,高速CAN的规定是电压差为0V时表示逻辑1(隐性电平),电压差为2V时表示逻辑0(显性电平),这里注意一下,逻辑1又称隐性电平,逻辑0又称显性电平,这个定义是反直觉的,为什么要这样定义呢?我们对照下面的图来理解一下。
当CAN_H和CAN_L对地(相对于GND)的电压都为2.5V时,两线电压相等,电压差为0V,表示当前CAN总线处于逻辑1的状态,当CAN_H对地电压3.5V,CAN_L对地电压1.5V时,两线电压差为2V,表示当前CAN总线处于逻辑0的状态,比如CAN总线想发送101的数据流,那么CAN总线就会呈现出两线收紧、两线张开、两线收紧这样的状态。当然这里,逻辑表示和差分表示完全等效,CAN总线里,实际传输的是差分电平,而在STM32的引脚以及常见的时序画法里会出现逻辑电平表示。显性和隐性,表示的是总线的状态,两线收紧,没有电压差,是默认状态,所以叫隐性;两线张开,产生电压差,是需要设备干预的状态,所以叫显性。这样定义显性隐性是符合常识的。在和逻辑电平的对应上,因为电路约定俗成的习惯,就是默认状态为高电平1,所以默认的隐性电平就和逻辑1绑定了,显性和0绑定。另外,显性电平和隐性电平同时出现时,总线会表现出显性电平状态,这也能对应电路中,0强于1的规定。这就是1对应隐性,0对应显性的设计原因。
        这些就是高速CAN的电平标准定义,之后继续是低速CAN的电平规定,电压差为-1.5时表示逻辑1(隐性电平),电压差为3V时表示逻辑0(显性电平),在规定上其实和高速CAN差不多,但是低速CAN传输距离更远,考虑到线路会有压降,所以把1和0电平电压的差距加大了,也就是1和0变化的行程更长了,这样即使有一些压降,也能明显地区分出1和0的电平差异。同时我们也看出低速CAN默认的逻辑1,隐性电平,CAN_H和CAN_L的电压并不相等,所以对应其电路,总线两端就不能用终端电阻闭合连在一起。
接着简单看一下CAN收发器的内部框图,刚才我们提到,每个CAN设备,都得通过CAN收发器挂载在总线上,那CAN收发器有什么用,可以干哪些工作呢?我们看一下下面这个框图就知道了。这里介绍的CAN收发器型号是TJA1050,是一个高速CAN的收发器
该芯片的TXD和RXD与设备的CAN控制器相连,CAN_H和CAN_L与CAN总线相连,Vref是参考电压输出,可以不用;S用来选择是高速模式还是静默模式。再看一下芯片内部,首先右边CANH和CANL就是CAN总线,左侧的接收器可以时刻检测总线电压差,如果总线有电压差就输出1,如果总线没有电压差就输出0,这个1和0通过两个场效应管的输出驱动器输出到RXD引脚,这两个管就当作是电子开关,右边为1时,上管断开,下管导通,输出0;右边为0时,上管导通,下管断开,输出1。最终整体上看,当CAN总线有电压差时,输出RXD引脚为低电平,表示显性电平;当CAN总线没有电压差时,输出RXD引脚为高电平,表示隐性电平。所以RXD这一块就是输入部分,那么上面TXD这一块就是输出部分了,当TXD给1时,后面的驱动器就会让后面两个场效应管都断开,相当于不对总线进行任何操作,总线在外边终端电阻的收紧作用下呈现默认的隐性;当TXD给0时,后面的驱动器就会让后面的两个场效应管都导通,上面的Vcc将CANH电压拽高,下面的GND将CANL的电压拽低,这样两线就会分开,产生电压差,总线呈现显性电平0的状态这就是发送0的操作
http://www.dtcms.com/a/418570.html

相关文章:

  • 每周资讯 | 腾讯《三角洲行动》周年庆登双榜TOP1;腾讯首款生活模拟游戏《粒粒的小人国》曝光
  • 做网站 业务流程图网站成立时间
  • 第四部分:VTK常用类详解(第96章 vtkCaptionActor2D标题演员类)
  • 数据可视化 | Violin Plot小提琴图Python实现 数据分布密度可视化科研图表
  • STM32H743-ARM例程11-PWM
  • 网站建设的功能和目标郑州网站建设企业
  • 网站与手机app是一体吗wordpress 中文建站
  • unzip-6.0-21.el7.x86_64.rpm怎么安装?CentOS 7手动安装rpm包详细步骤
  • Go 的切片原理
  • GDAL 的内置矢量工具集ogr的详解使用
  • ppt制作软件模板网站wordpress 邮件投稿
  • Git - git status 观察记录(初始化本地仓库、初始暂存、初始提交、修改文件、第二次暂存、第二次提交)
  • 帝国网站管理系统安装山西省住房和城乡建设部网站
  • 怎么选择昆明网站建设长沙县星沙人才招聘网
  • 【C++】AVL详解
  • SQLE:一个全方位的SQL质量管理平台
  • 基于51单片机智能台灯无线WIFI控制LED灯亮灭亮度APP设计
  • postgres linux 环境psql 中文乱码处理
  • “静态前端 + Serverless API”** 架构做视频站
  • 推广做网站联系方式如何找人帮我做网站推广
  • 基于定制开发开源AI智能名片S2B2C商城小程序的文案信息传达策略研究
  • 使用 Python 将 PDF 拆分为图片
  • 菠菜彩票网站怎么建设外贸先做网站还是开公司
  • @EnableWebMvc 的核心影响
  • C# WPF使用线程池运行Action方法
  • 计算机视觉(opencv)——基于 dlib 关键点定位
  • 快递网站模版广安发展建设集团有限公司门户网站
  • AWS中的离线计算(大数据大屏项目)
  • 功能体=数据定义+算法
  • 机器学习之逻辑回归(梯度下降,Z标准化,0-1归一化)