CAN总线的拓扑类型和CAN收发器(原理讲解)

2024-03-06 14:36

本文主要是介绍CAN总线的拓扑类型和CAN收发器(原理讲解),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1:CAN收发器(原理讲解)

从原理上来讲CAN_H拉升电压,或CAN_L拉低电压的原理。

以上是TJA1145AT的俯瞰图,此芯片是NXP比较先进的CAN收发器,带SPI总线系统。

回到正题,CAN_H和CAN_L收发器是通过内部MOS管的导通或关闭,来实现总线上的不同电压。

 如图所示:

当Mos1和MOS2同时关闭时,Vcc-分压电阻-地的通路关闭,CAN_H与CAN_L电压相同,则显示隐性电压。

当当Mos1和MOS2同时开启时,,Vcc-分压电阻-地的通路闭合,经过电阻分压CAN_H电压升高,CAN_L电压降低,形成显性电压。

2:CAN总线常见拓扑结构

2.1直线型拓扑结构

如图所示,在CAN_H和CAN_L之间,分别连接两个120欧姆的电阻,形成闭环结构。然后再将总线上各个节点依次连接到总线上(注意:一般情况下,整车制造厂都会要求,所有节点CAN_H连接到总线上的线是长度一致,CAN_L连接到总线上的线是长度一致)。

此种拓扑结构简单,但是节点处,在高频信号下,容易产生信号反射问题(Layout布线(高频信号线)时,同样要求45°过弯,不能直角过弯一样的道理)。

2.2手拉手型拓扑结构

通常单个模块测试时,都是采用手拉手的结构。心细的朋友已经发现个问题

问题:我们通常采用手拉手结构,都是直接直接CAN_H和CAN_L之间,并联一个120欧姆的电阻,即可正常连接与通讯。为什么此图中需要在第一个节点和第二个节点之间都并联120欧姆的电阻。

答案:当总线上只存在两个节点时。只连接一个120欧姆电阻没有问题。当节点数量>=3时,就需要在两个任意节点上添加120Ω的电阻。

原因:两个准则

1:CAN总线(ISO11898必须是CAN总线闭环结构)。这里的闭环结构是指任意节点CAN_H和CAN_L之间必须形成闭环。

2:任意节点CAN_H和CAN_L之间,必须经过一个60欧姆的电阻。可以这样想象,电流从CAN_H流向CAN_L。必须经过经过一个60欧姆的电阻。

根据此准则,我们发现如果采用手拉手拓扑结构,只并联一个120欧姆的电阻,无法使得所有节点之间的通路都经过120欧姆,不符合60欧姆的需求。两个120欧姆电阻并联=120*120/240=60欧姆

3:T型拓扑结构

 4:星型拓扑

每个节点之间,都需要连接一个节点并联一个60欧姆的电阻。

这篇关于CAN总线的拓扑类型和CAN收发器(原理讲解)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/780365

相关文章

Redis主从复制的原理分析

《Redis主从复制的原理分析》Redis主从复制通过将数据镜像到多个从节点,实现高可用性和扩展性,主从复制包括初次全量同步和增量同步两个阶段,为优化复制性能,可以采用AOF持久化、调整复制超时时间、... 目录Redis主从复制的原理主从复制概述配置主从复制数据同步过程复制一致性与延迟故障转移机制监控与维

SpringCloud配置动态更新原理解析

《SpringCloud配置动态更新原理解析》在微服务架构的浩瀚星海中,服务配置的动态更新如同魔法一般,能够让应用在不重启的情况下,实时响应配置的变更,SpringCloud作为微服务架构中的佼佼者,... 目录一、SpringBoot、Cloud配置的读取二、SpringCloud配置动态刷新三、更新@R

Mysql 中的多表连接和连接类型详解

《Mysql中的多表连接和连接类型详解》这篇文章详细介绍了MySQL中的多表连接及其各种类型,包括内连接、左连接、右连接、全外连接、自连接和交叉连接,通过这些连接方式,可以将分散在不同表中的相关数据... 目录什么是多表连接?1. 内连接(INNER JOIN)2. 左连接(LEFT JOIN 或 LEFT

Redis主从复制实现原理分析

《Redis主从复制实现原理分析》Redis主从复制通过Sync和CommandPropagate阶段实现数据同步,2.8版本后引入Psync指令,根据复制偏移量进行全量或部分同步,优化了数据传输效率... 目录Redis主DodMIK从复制实现原理实现原理Psync: 2.8版本后总结Redis主从复制实

Redis的Hash类型及相关命令小结

《Redis的Hash类型及相关命令小结》edisHash是一种数据结构,用于存储字段和值的映射关系,本文就来介绍一下Redis的Hash类型及相关命令小结,具有一定的参考价值,感兴趣的可以了解一下... 目录HSETHGETHEXISTSHDELHKEYSHVALSHGETALLHMGETHLENHSET

Python中异常类型ValueError使用方法与场景

《Python中异常类型ValueError使用方法与场景》:本文主要介绍Python中的ValueError异常类型,它在处理不合适的值时抛出,并提供如何有效使用ValueError的建议,文中... 目录前言什么是 ValueError?什么时候会用到 ValueError?场景 1: 转换数据类型场景

C# dynamic类型使用详解

《C#dynamic类型使用详解》C#中的dynamic类型允许在运行时确定对象的类型和成员,跳过编译时类型检查,适用于处理未知类型的对象或与动态语言互操作,dynamic支持动态成员解析、添加和删... 目录简介dynamic 的定义dynamic 的使用动态类型赋值访问成员动态方法调用dynamic 的

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

hdu4407(容斥原理)

题意:给一串数字1,2,......n,两个操作:1、修改第k个数字,2、查询区间[l,r]中与n互质的数之和。 解题思路:咱一看,像线段树,但是如果用线段树做,那么每个区间一定要记录所有的素因子,这样会超内存。然后我就做不来了。后来看了题解,原来是用容斥原理来做的。还记得这道题目吗?求区间[1,r]中与p互质的数的个数,如果不会的话就先去做那题吧。现在这题是求区间[l,r]中与n互质的数的和

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]