CAN总线布线规范

  摘要:今天的CAN总线已从汽车电子慢慢渗透入工业自动化,医疗,铁路等众多领域。据我们的数据统计,客户在使用CAN总线时约80%的问题均是由总线布局布线不合理导致,今天我们就来扒一扒CAN总线的布局布线规范。
  所谓磨刀不误砍柴功,合理的总线布局布线等于成功的一半,那么总线布线时如何选取导线?如何选取布线拓扑结构呢?
  一、 导线选型
  1、 导线类型
  CAN总线布线时必须采用双绞线,且需采用特征阻抗约120Ω的双绞线,在通信距离较长或电磁环境恶劣的情况下最好用屏蔽双绞线,这样可以有效抑制电磁干扰,保证可靠的通信。
  2、 线长与直流电阻
  当客户的通信距离较长时就不得不考虑线路损耗了,如果使用的线缆太细,导线的直流电阻太大。那么在总线起始端发出的信号在经历漫长的路途之后到达末端的节点时信号将大幅衰减,最终导致通信失败。那么线长和传输线截面积,线长与通信波特率又有什么关系呢?我们总结如下图1所示。
  CAN总线布线规范
  图1传输线相关参数推荐值
  二、布线拓扑结构
  1、“手牵手”式连接
  在直线型拓扑中,由于分支存在一定的长度以及分支长度的积累会造成总线上阻抗不连续,继而产生信号反射的现象,所以直线型拓扑中最常用的是手牵手连接方式。如图 2所示,为了保证通信的可靠性,起始端和末端的节点都需要加120Ω的终端电阻,不可只接一端或两端均不接。
  CAN总线布线规范
  图2手牵手连接方式接线图
  2、T型分支式连接
  在大多数的工业现场、轨道机车中,由于整体线缆非常多均需要使用接线排,方便后期维护。所以CAN总线上的节点分支不可避免,只能尽量减小分支长度,如图 3。
  CAN总线布线规范
  图3 T型分支结构图
  这个分支长度在最高波特率1M时最好在0.3m以内,我们可以推断在其他波特率条件下如果分支长度满足小于0.3m,那么总线通信可以稳定运行。
  在某些场合无法做到这么短的分支怎么办呢?我们可以根据不同的波特率,选择不同的分支长度。如图4可知,随着波特率的增加,分支约束越来越严格,相反如果想增加分支的长度那么波特率必须降低以获得稳定的通信。
  CAN总线布线规范
  图 4 波特率与分支长度的关系
  3、星型拓扑
  CAN总线布线规范
  图 5 等长星型连接
  如图 5所示,若采用等长星型拓扑进行接线可以不使用集线器设备,适当调整每个节点的终端电阻即可实现组网。
  R=N×60Ω
  N:分支数量
  R:每个分支的终端电阻
  注意每个节点必须加终端电阻,不能在星型网络的中心加任何电阻。
  在现实应用中很多场合无法做到等长星型连接,这个时候我们需要使用CAN集线器来进行分支,如图6所示。
  CAN总线布线规范
  图 6 集线器用于复杂的分支网络
  使用集线器布线灵活性很大,可以根据需要任意分支,少了很多约束条件。

CAN总线布线规范

出处:周立功致远电子 发布于:2015-10-14 | 6343 次阅读

  摘要:今天的CAN总线已从汽车电子慢慢渗透入工业自动化,医疗,铁路等众多领域。据我们的数据统计,客户在使用CAN总线时约80%的问题均是由总线布局布线不合理导致,今天我们就来扒一扒CAN总线的布局布线规范。
  所谓磨刀不误砍柴功,合理的总线布局布线等于成功的一半,那么总线布线时如何选取导线?如何选取布线拓扑结构呢?
  一、 导线选型
  1、 导线类型
  CAN总线布线时必须采用双绞线,且需采用特征阻抗约120Ω的双绞线,在通信距离较长或电磁环境恶劣的情况下最好用屏蔽双绞线,这样可以有效抑制电磁干扰,保证可靠的通信。
  2、 线长与直流电阻
  当客户的通信距离较长时就不得不考虑线路损耗了,如果使用的线缆太细,导线的直流电阻太大。那么在总线起始端发出的信号在经历漫长的路途之后到达末端的节点时信号将大幅衰减,最终导致通信失败。那么线长和传输线截面积,线长与通信波特率又有什么关系呢?我们总结如下图1所示。
  CAN总线布线规范
  图1传输线相关参数推荐值
  二、布线拓扑结构
  1、“手牵手”式连接
  在直线型拓扑中,由于分支存在一定的长度以及分支长度的积累会造成总线上阻抗不连续,继而产生信号反射的现象,所以直线型拓扑中最常用的是手牵手连接方式。如图 2所示,为了保证通信的可靠性,起始端和末端的节点都需要加120Ω的终端电阻,不可只接一端或两端均不接。
  CAN总线布线规范
  图2手牵手连接方式接线图
  2、T型分支式连接
  在大多数的工业现场、轨道机车中,由于整体线缆非常多均需要使用接线排,方便后期维护。所以CAN总线上的节点分支不可避免,只能尽量减小分支长度,如图 3。
  CAN总线布线规范
  图3 T型分支结构图
  这个分支长度在最高波特率1M时最好在0.3m以内,我们可以推断在其他波特率条件下如果分支长度满足小于0.3m,那么总线通信可以稳定运行。
  在某些场合无法做到这么短的分支怎么办呢?我们可以根据不同的波特率,选择不同的分支长度。如图4可知,随着波特率的增加,分支约束越来越严格,相反如果想增加分支的长度那么波特率必须降低以获得稳定的通信。
  CAN总线布线规范
  图 4 波特率与分支长度的关系
  3、星型拓扑
  CAN总线布线规范
  图 5 等长星型连接
  如图 5所示,若采用等长星型拓扑进行接线可以不使用集线器设备,适当调整每个节点的终端电阻即可实现组网。
  R=N×60Ω
  N:分支数量
  R:每个分支的终端电阻
  注意每个节点必须加终端电阻,不能在星型网络的中心加任何电阻。
  在现实应用中很多场合无法做到等长星型连接,这个时候我们需要使用CAN集线器来进行分支,如图6所示。
  CAN总线布线规范
  图 6 集线器用于复杂的分支网络
  使用集线器布线灵活性很大,可以根据需要任意分支,少了很多约束条件。

CAN总线布线规范的更多相关文章

  1. PCB主线布线规范—高速线之DDR2

    一.DDR2时钟线走线规则a)时钟线包括 MEM_CLKOUT#0.MEM_CLKOUT0.MEM_CLKOUT#1.MEM_CLKOUT1,MEM_CLKOUT#2.MEM_CLKOUT2: MEM ...

  2. PCB布线规范

    模拟电路和数字电路PCB设计的不同点 http://linear.eefocus.com/module/forum/thread-593593-1-1.html 合集   PCB给种设计资料 http ...

  3. Altium Designer 总线式布线

    1.常规布线:不详细说了,是个人就知道怎么弄.需要说明的是在布线过程中,可按小键盘的*键或大键盘的数字2键添加一个过孔:按L键可以切换布线层:按数字3可设定最小线宽.典型线宽.最大线宽的值进行切换. ...

  4. openrisc 之 Wishbone总线学习笔记——总线互联

    一,总线命名规范 1,wishbone总线接口信号都是高电平有限 2,wishbone接口信号都是以 _i ,或者是 _o 结束.i表示输入, o表示输出. ()表示该信号为总线信号,总线位宽可以大于 ...

  5. 【转】认识物理I/O构件- 主机I/O总线

    在数据离开系统内存总线后,它通常传输到另一条总线,即主机I/O总线.在今天的产品中,最常见的主机I/O总线是PCI总线,但也存在着几种其他的总线,如S -总线,EIS A总线及VME总线.主机I/O总 ...

  6. vxi总线

    20世纪80年代后期,仪器制造商发现GPIB总线和VME总线产品无法再满足军用测控系统的需求了.在这种情况下,HP.Tekronix等五家国际著名的仪器公司成立了VXIbus联合体,并于1987年发布 ...

  7. AD各种布线方法总结

    1.常规布线:不详细说了,是个人就知道怎么弄.需要说明的是在布线过程中,可按小键盘的*键或大键盘的数字2键添加一个过孔:按L键可以切换布线层:按数字3可设定最小线宽.典型线宽.最大线宽的值进行切换. ...

  8. PCB布线经验

      查看: 3645|回复: 11    [经验] PCB设计经验(1)——布局基本要领 [复制链接]     ohahaha 927 TA的帖子 0 TA的资源 纯净的硅(中级) 发消息 加好友 电 ...

  9. Altium_Designer-各种布线总结

    1.常规布线:不详细说了,是个人就知道怎么弄.需要说明的是在布线过程中,可按小键盘的*键或大键盘的数字2键添加一个过孔:按L键可以切换布线层:按数字3可设定最小线宽.典型线宽.最大线宽的值进行切换. ...

随机推荐

  1. 在windows上搭建redis集群(redis-cluster)

    一 所需软件:Redis.Ruby语言运行环境.Redis的Ruby驱动redis-xxxx.gem.创建Redis集群的工具redis-trib.rb 二 安装配置redis redis下载地址   ...

  2. JavaScript之Array

    JavaScript是一门非常灵活的动态语言,涵盖的内容也挺多,<JavaScript高级程序设计>看了也有两遍,但是在实际开发的时候,还是有很多东西记不清,然后还得去翻书,特别是一些Ar ...

  3. Spring Boot--01错误处理

    package com.smartmap.sample.ch1.controller.view; import java.io.IOException; import java.util.Collec ...

  4. Java实验案例(接口)

    实验任务 任务一:设计实现发声接口 任务二:动物乐园 实验内容 任务一:设计实现发声接口 任务目的: 理解并掌握如何定义接口 掌握接口的实现方式 任务描述: 设计和实现一个Soundable接口,该接 ...

  5. button的OnClickListener的三种实现方法

    onclick事件的定义方法,分为三种,分别为在xml中进行指定方法:在Actitivy中new出一个OnClickListenner():实现OnClickListener接口三种方式. 代码分别如 ...

  6. 那些年vue踩过的坑

    1.前言 学习Vue前端框架已经一个月了,作为一个web刚入门的菜鸟,在学习的过程中,网上有些技术博客往往没有什么可以借鉴的地方,在这里 我特意将我从开始一直到登录的过程记录下来.希望看到我的文章的朋 ...

  7. is_palindrome 回文递归

    # coding=utf-8def is_palindrome(n,start,end): if start>end: return 1 else: return is_palindrome(n ...

  8. 【Python】Java程序员学习Python(六)— 流程控制、异常处理

    和Java语言一样,Python也有基本的流程控制,简单了解下即可. 一.流程控制的元素 条件 条件就是布尔值或者布尔值的表达式,要么是True要么是False. 代码块 在Python中,代码块不是 ...

  9. windows 命令行使用p4

    首先,p4的命令行真的恶心,要不是非要用我一定换成git(逃) 参考网站:https://www.perforce.com/manuals/v15.1/cmdref/p4_add.html 全程尝试各 ...

  10. leetCode题解之求二叉树最大深度

    1.题目描述 Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along t ...