四步掌握CAN节点隔离设计

  “隔离”是模块为CAN节点设备提供可靠数据传输的首要保障,通常隔离模块的“隔离”是指模块上电后,能为节点提供信号隔离及电源隔离,隔离电压等级以2500VDC、3500VDC为主。本文将从CAN隔离模块的前级电源保护、后级接地、总线保护电路以及实际组网四个层面出发,全方面的介绍模块的使用细节,帮助大家搭建稳定、可靠的CAN总线网络。

  1.前级电源保护

  模块的初级接口是面对控制信号部分,供电电源通常与CAN控制器或MCU保持一致,这种情况下电源端口建议增加10μF滤波电容。有些应用是模块的电源和总线一起传输过来,比如20个节点中每个节点的电源和CAN信号线一起布线,节点共用一个电源,或模块没有单独的稳压供电电源,这种情况必须为模块电源增加TVS保护及滤波电容,并且确保电源与信号共地,如下图1所示。

  

  图1 电源保护

  2.后级接地

  一般在短距离,干扰小的场合,可将CAN收发器的CANG悬空处理。但在实际现场应用中CAN总线组网绝大多数采用屏蔽双绞线,此时需要对屏蔽层接地。若接地节点为金属机壳,且该节点的初级系统已经接地,这种情况下CAN端口的屏蔽层应该通过一个1000pF电容接地,电容耐压值大于模块隔离耐压。电路示意如图2所示。

  

  图2 CAN端口接地示意图

  3.总线保护电路

  模块CAN接口面对总线,需要更高的浪涌及静电防护等级。CTM系列模块CAN接口裸机可承受±4kV静电及共模±2kV浪涌。若需要更高的等级可以增加浪涌防护电路。常用的有以下两种保护电路,图3、图4中的TVS管等效结电容约为500~1000pF。

  

  图3 桥式保护电路

  

  图4 普通保护电路

  图3为桥式电路,特点是等效节点电容小,测量各线之间电容小于20pF,该电路适用于CAN总线节点数较多,通信速率较高的场合。

  图4所示的普通电路等效节点电容则更大,测量各线之间电容为800pF左右,该电路适用于低速通信场合。

  共模电感:对总线共模干扰大,设备EMI要求高的场合,尤其是汽车行业的应用总线采用51μH的共模电感可有效解决问题。加入共模电感带来的问题便是引入谐振干扰。当收发器的总线信号上升下降时间较短时,共模电感与总线分布电容产生谐振,影响通讯,比如在CAN FD应用场合,这种谐振会影响总线的正常通讯。图5为CTM5MFD模块采用ID段1Mbps,数据段2Mbps速率通讯,加入保护电路的波形,其中绿色为加入共模电感的波形,粉红色为无共模电感的波形。

  

  图5 浪涌电路加入电感波形对比

  除了总线分布参数带来的影响外,模块本身的CAN差分信号也会影响谐振电压幅值。CAN收发器满足以下两个条件,可有助于降低谐振电压幅值。

  1)CANH、CANL信号要同步,且对称性好;

  2)CANH、CANL构成的差分电压信号上升、下降斜率小;

  4.实际组网

  通用CAN隔离模块多数有显性超时保护,模块的最低波特率被限制为40kbps,模块组网时最大通信距离应为1公里。当总线通信最大波特率确定后,组网的总线长度及分支长度应不超过表1限制。

  

  表1 不同波特率下的网络长度

  普通应用组网可参考CTM系列隔离收发器数据手册中已经给出的推荐组网方式,即采用单层屏蔽双绞线。下面给出采用双层屏蔽双绞线的参考组网方式。这种方式为三线传输方式,传输效果及抗干扰性最好。组网时双绞线外屏蔽层单点接大地,内屏蔽层及双绞线连接每个收发器的CANG 、CANH、CANL,每个CAN节点的CANG通过1000pF电容接设备机壳。

  

  图6 三线传输组网示意图

四步掌握CAN节点隔离设计的更多相关文章

  1. 四步走查智能硬件异常Case

    此文已由作者于真真授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 相比于软件,智能硬件产品由于涉及硬件和软件两个端的状态,其异常case要更加错综复杂.由于硬件产品的迭代更新 ...

  2. JAVA EE企业级开发四步走完全攻略 [转]

    http://bbs.51cto.com/thread-550558-1.html 本文是J2EE企业级开发四步走完全攻略索引,因内容比较广泛,涉及整个JAVA EE开发相关知识,这是一个长期的计划, ...

  3. C#中四步轻松使用log4net记录本地日志

    在这里,记录我在项目中使用log4net记录本地日志的步骤.在不会之前感觉很难,很神秘,一旦会了之后其实没那么难.其实所有的事情都是一样的,下面我就分享一下我使用log4Net的经验. 第一步:首先从 ...

  4. Python四步实现决策树ID3算法,参考机器学习实战

    一.编写计算历史数据的经验熵函数 from math import log def calcShannonEnt(dataSet): numEntries = len(dataSet) labelCo ...

  5. 在深谈TCP/IP三步握手&四步挥手原理及衍生问题—长文解剖IP

    如果对网络工程基础不牢,建议通读<细说OSI七层协议模型及OSI参考模型中的数据封装过程?> 下面就是TCP/IP(Transmission Control Protoco/Interne ...

  6. C#中四步轻松使用log4net记录本地日志(WPF有点小区别)

    在这里,记录我在项目中使用log4net记录本地日志的步骤.在不会之前感觉很难,很神秘,一旦会了之后其实没那么难.其实所有的事情都是一样的,下面我就分享一下我使用log4Net的经验. 第一步:首先从 ...

  7. 关于pythoh面向过程开发人员三步转面向对象的补充,再加一步,四步走战略。转面向对象也可以有固定公式。

    前言: oop非常非常非常重要.搞不懂oop,就玩不了python,就算能写也一定是写代码时候喜欢靠猜瞎猫碰死老鼠写得心很虚.为什么这么说呢,我也是从面向过程编程到死走过来的,一路def到死,一看到有 ...

  8. 只需十四步:从零开始掌握 Python 机器学习(附资源)

    分享一篇来自机器之心的文章.关于机器学习的起步,讲的还是很清楚的.原文链接在:只需十四步:从零开始掌握Python机器学习(附资源) Python 可以说是现在最流行的机器学习语言,而且你也能在网上找 ...

  9. 【JAVA EE企业级开发四步走完全攻略】

    本文是J2EE企业级开发四步走完全攻略索引,因内容比较广泛,涉及整个JAVA EE开发相关知识,这是一个长期的计划,单个发blog比较零散,所以整理此索引,决定以后每发一季JAVA EE blog后会 ...

随机推荐

  1. H5学习入门

    [块级标签与行级标签的区别] 1.块级标签: 默认宽度100%(独占一行) 自动换行(右边不能有任何东西) 可以使用css设置宽度高度   2.行级标签: 内容宽度,由内容撑开(内容多宽,宽度就占多宽 ...

  2. pair

    pair的类型: pair 是 一种模版类型.每个pair 可以存储两个值.这两种值无限制.也可以将自己写的struct的对象放进去.. 功能:pair将一对值组合成一个值,这一对值可以具有不同的数据 ...

  3. CSS3D动画制作一个3d旋转的筛子

    希望这个demo能让大家理解CSS3的3d空间动画(其实是个假3D) 首先给一个3d的解剖图,x/y/z轴线轴线已经标出 下面附上添加特效的动画旋转 可以根据demo并参考上面解剖图进行理解 < ...

  4. MVP 模式简单易懂的介绍方式

    为什么用Android MVP 设计模式? 当项目越来越庞大.复杂,参与的研发人员越来越多的时候,MVP 模式 的优势就充分显示出来了. MVP 模式是 MVC 模式在 Android 上的一种变体, ...

  5. Android Viewpager+Fragment实现滑动标签页

    ViewPager 结合Fragment实现一个Activity里包含多个可滑动的标签页,每个标签页可以有独立的布局及响应. 主页布局 <?xml version="1.0" ...

  6. web 应用请求乱码问题

    背景 作为非西欧语系的国家,总是要处理编码问题 使用java编码解码 @Test public void coderTest() throws UnsupportedEncodingException ...

  7. windows 设置CapsLock键开启大写后使用shift键取消大写

    1.打开控制面板——>时钟.语言和区域——>更改键盘或其它输入法——>更改键盘——>高级键设置——>要关闭Caps Lock 2.ok

  8. BASE_DIR 拼接文件路径

    # C:/Disk_D/pycharm_stu/macboy/blog/views/tt.py 当前文件绝对路径 BASE_DIR = os.path.dirname(os.path.dirname( ...

  9. 回归JavaScript基础(八)

    主题:引用类型包装类.单体内置对象的介绍. 对于我们开发人员来说,JavaScript有种引用类型一定很陌生!那就是基本包装类型:Boolean.Number和String.这也不是我们的错,主要这些 ...

  10. Typescript 基础知识

    Typescript 就是 Javascript 的超集,所以首先你要知道 Javascript 基础知识 类型注解 类型注解在TypeScript中是记录函数或变量约束的简便方法. // 布尔值 l ...