CAN总线网络在应用时,工程师常常会建议总线支线不要太长,那么为什么CAN总线支线不能太长,如果某些环境下必须使用长支线又该怎么办呢?

CAN网络的拓扑种类

控制器局域网CAN(Controller Area Network),是国际上应用最广泛的现场总线之一,最初是由德国Bosch公司设计的,为解决现代汽车中众多控制单元、测试仪器之间的实时数据交换而开发一种串行通信协议。CAN网络的拓扑结构主要有线形拓扑、星形拓扑、树形拓扑和环形拓扑等。

线形结构如下图所示,其特点是一条主干总线,在总线上分出支线到各个节点,其优点在于布线施工简单,阻抗匹配规则固定,接线比较方便,缺点是拓扑不够灵活,在一定程度上影响通讯距离;

星形拓扑如下图所示,其特点是每个节点通过中央设备连到一起,优点是容易扩展,缺点是一旦中央设备出故障会导致总线集体故障,而且分支线长不同,阻抗匹配复杂,可能需要通过一些中继器或集线器进行扩展;

树形拓扑如下图所示,其特点是分支比较多,且分支长度不同,优点是布线方便,缺点是网络拓扑复杂,阻抗匹配困难,通讯中极易出现问题,必须加一些集线器设备;

环形拓扑如下图所示,其特点是将CAN总线头尾相连,形成环状,优势是线缆任意位置断开,总线都不会出现问题,缺点是信号反射严重,无法用于高波特率和远距离传输。

虽然CAN总线可以有多种网络拓扑,但在实际应用当中比较推荐使用线形拓扑,且在IOS-11898-2中有高速CAN物理层规范,其中推荐的CAN网络拓扑也是线形拓扑,下面就针对线形拓扑网络CAN支线过长问题进行分析。

支线过长带来的问题

在讲CAN支线之前,我们来看一个CAN的波形图,如下图所示,大家仔细查看CAN波形图,会发现CAN波形上存在明显的上升沿和下降沿台阶现象,因为台阶的存在,从而引起波特率变化,导致接收节点采样出错(也称位宽错误)。

边沿台阶出现的源头主要是CAN节点的分支,分支过长形成的反射就变强,将会导致位宽度失调的错误。ISO11898中只规定1M波特率下分支不超过0.3米,支线过长会直接导致总线阻抗匹配问题发生,阻抗匹配是指信号源或者传输线跟负载之间达到一种适合的搭配,阻抗匹配主要为了调整负载功率和抑制信号反射,所以一旦阻抗匹配出现问题,就出现了上图中的上升沿和下降沿的台阶。

解决支线过长的办法

如果我们的总线存在支线过长的问题,那么该怎么办呢?我们下面提供几种解决方案:

1、减小分支长度

在CAN网络布局的根源上解决问题的方式就是减少CAN节点的分支长度,从而降低信号反射,保证位宽的稳定性。如上图波形实验中,其它条件不变,只将分支长度减少为20cm,此时并没有看到边沿台阶的出现。由此可见,减少分支长度是消除边沿台阶的最直接方式。

2、长分支上加适当电阻

在网络布局无法改变,分支引起的信号反射必须存在的情况下。最实用的方法就是在长分支末端加上电阻,消除信号反射。同样的在上述实验中,在分支节点处加上一个200Ω的电阻,其它条件不变进行通信实验。下图为实验的CAN波形图,此时可以看到边沿台阶已被消减,但是加了电阻之后差分电压变小,注意差分电压不得小于0.9V。这里值得一提的是:阻值大于500Ω的电阻吸收反射的能力很弱,所以在末端挂电阻的时候应小于500Ω。

3、增加CAN中继器或集线器

当然很多场合是在出现了问题之后才发现支线过长,当重新布线或更改节点本身都无法操作的情况下,我们也有解决方案,那就是在过长的支线上增加CAN中继器,典型的如致远电子CANBridge,甚至可以支持不同波特率的CAN网络的连接。

更多的方法可以参考往期推送的微信文章《【CAN总线冷知识】边沿台阶是怎么来的?》。

所以无论是标准规定,还是现场实际应用,都告诉我们要保证CAN总线网络良好运行,其支线长度不能过长,为了CAN保证CAN网络的健康,请大家一定要规范使用。

转自:ZLG立功科技一致远电子

推荐阅读:

1.什么是工业互联网?

2.MDK-ARM V5.28的Bug被修复了吗?

长按识别图中二维码关注

为什么CAN总线支线长度不能太长?相关推荐

  1. 如何解决动态查询语句太长,大于数据库字符的最大长度

    上周,在写sql server2005数据库存储过程的时候,用到了动态查询语句,但是由于语句太长,定义的变量最长为varchar(8000),在字符串大于8000的时候,数据库会做截断,进而在执行动态 ...

  2. 成功解决源路径太长,源文件名长度大于文件系统支持的长度。请尝试将其移动到具有较短路径名称的位置,或者在执行此操作前尝试将其重命名为较短的名称

    成功解决源路径太长,源文件名长度大于文件系统支持的长度.请尝试将其移动到具有较短路径名称的位置,或者在执行此操作前尝试将其重命名为较短的名称 目录 解决问题 解决思路 解决方法 解决问题

  3. 运维手册——Mysql索引字段长度太长报错

    声明:这是我在大学毕业后进入第二家互联网公司学习的内容 背景 Mysql执行Create Table语句时报错 Specified key was too long; max key length i ...

  4. oracle insert汉字出错,Oracle数据库之Oracle批量插入数据SQL语句太长出错:无效的主机/绑定变量名...

    本文主要向大家介绍了Oracle数据库之Oracle批量插入数据SQL语句太长出错:无效的主机/绑定变量名,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. Oracle数据库,用 ...

  5. php 长文本_php字符串太长怎么办

    php字符串太长的解决办法:首先截取长度等于0或大于等于本字符串的长度,则返回字符串本身:然后如果截取长度为负数,那么截取长度就等于字符串长度减去截取长度:最后如果截取长度的绝对值大于字符串本身长度, ...

  6. URL 路径长度限制(错误:指定的文件或文件夹名称太长)

    本节讨论 URL 的构成.SharePoint 2010 构建 URL 的方式.URL 的编码和加长以及作为其他 URL 中的参数传递的方式. SharePoint URL 的构成 SharePoin ...

  7. 海鸥表表带太长了怎么拆_表带安装,表带太长了,怎么拆解和安装?

    表带太长了,怎么拆解和安装? 1.准备拆表带前请看清楚表带背面的箭头. 2.有箭头的带粒是可拆卸的. 3.拧松拆带器把手,将表带放入表槽,并保持拆带器的钢针对准针孔,如图二,且拆带器的钢针顺着箭头的指 ...

  8. iOS中Safari浏览器select下拉列表文字太长被截断的处理方法

    网页中的select下拉列表,文字太长的话在iOS的Safari浏览器里会被自动截断,显示成下面这种: 安卓版的浏览器则没有这个问题. 如何让下拉列表中的文字在iOS的Safari浏览器里显示完整呢? ...

  9. ORA-06550 PLS-00172 字符串太长 超过3W 处理方式

    问题 描述 帖子 通过sql插入clob数据(数据库对应字段类型为clob), 在执行insert语句时(待插入的字符串有2W多), 总是报错如下: 不是说clob支持4G大小么? 有些资料说是sql ...

  10. jwt token 太长_理解 JWT 鉴权的应用场景及使用建议

    JWT 介绍 JSON Web Token(JWT)是一个开放式标准(RFC 7519),它定义了一种紧凑(Compact)且自包含(Self-contained)的方式,用于在各方之间以JSON对象 ...

最新文章

  1. ipv6的rip配置
  2. Mschart图表制作
  3. 京东五星电器送扫地机器人_京东五星电器联手打造互联网小家电“孵化器”
  4. 马丁 福勒 Martin Fowler 关于依赖注入和反转控制的区别
  5. 拥有这个证书的医务人员恭喜了,国家正式通知……
  6. Golang的GC和内存逃逸
  7. 省地县级联操作 http://www.popub.net/script/pcas.html
  8. 在linux添加驱动程序,linux下静态/动态加载驱动的两种方式
  9. 7个大一C语言必学的程序 / C语言经典代码大全
  10. python2.7读取txt文件_python如何读取txt文件
  11. ERP系统成本计算方法大揭秘?
  12. 解决执行hive语句时出现虚拟内存不够的问题
  13. 写点感想2:车载毫米波雷达产品研发架构
  14. 用python暴力破解压缩包密码
  15. excel自动调整列宽_办公软件操作技巧012:如何调整excel表格的行高与列宽
  16. 关于值班表的前端显示
  17. 【微服务架构】一文读懂单片到微服务架构的模式和最佳实践
  18. 【专题5: 硬件设计】 之 【16.二极管/三极管的钳位功能】
  19. python学习之对excel文件的操作
  20. EasyAR-Web手把手基于官方demo的实现

热门文章

  1. 01-SA8155 QNX 虚拟机Hypervisor
  2. 模型的参数verbose用法详解
  3. R语言epiDisplay包的tableStack函数基于分组变量生成统计分析表(包含描述性统计分析、假设检验、不同数据使用不同的统计量和假设检验方法)、自定义设置iqr参数指定需要计算分位数的变量
  4. .NETZ 原理分析 .NETZ - .NET Executables Compressor .NETZ compresses the Microsoft .NET Framework execu
  5. 生活不易!一个月薪 12000 的北京程序员的真实生活 !
  6. wifi文件传输linux,wifi挂载Linux文件系统
  7. [iOS] 组件化之一:MGJRouter的简单实用
  8. springboot bootcdn使用
  9. FTL介绍 -- FTL映射
  10. dhcp服务器在作用,dhcp的作用是什么?dhcp优缺点