如何接好CAN的“地”
工业现场CAN环境复杂多变,工程师面对信号的杂、乱、差却是束手无策,追根溯源对于信号的各种地你接对了吗?
本文引用地址: http://www.21ic.com/app/rf/201711/743012.htm
CAN总线以其高可靠性、实时性、灵活性以及严谨的数据处理机制等特点,在工业现场和汽车行业得到广泛应用,但随着环境干扰以及节点数目的增加等对CAN总线的稳定性提出更高的要求,而面对电源地、信号地、屏蔽地、外壳地不同的接地方式又该如何处理呢?
如图1分别是电源地、信号地、屏蔽地以及大地四种不同地的常见符号。
图1 四种接地符号
Ø 电源地概念:
电源地也为供电地,是为保证供电电源形成完整的电流回路设置的供电地,即GND。
Ø 电源地处理:
与单电源供电的负极相连。
图2 CAN收发器电源地(GND)接线
Ø 信号地概念:
信号地也称为隔离地,为使电子设备工作时有一个统一的参考电位,避免有害电磁场的干扰,使设备稳定可靠的工作,设备中的信号电路统一参考地,即CAN-GND;
Ø 信号地处理:
许多实际应用中,设计者常直接将每个节点的参考地接于本地的大地,作为信号的返回地,看似正常可靠的做法,却存在极大的隐患!
信号地(CAN-GND)正确的接法主要分为两种:
单屏蔽层线缆:如果线缆是单屏蔽层,信号地理想接法是使用专门的信号线将所有节点信号地连接,起到参考地的作用。但如果缺少信号地线,亦可将所有节点信号地都连接到屏蔽层,但这样屏蔽效果亦差强人意。
图 3 带有屏蔽层双绞线
图 4 含信号地线双绞线连接方式
图 5 信号地与屏蔽层连接方式
双屏蔽层线缆:当使用双层屏蔽电缆时,需要将所有节点信号地连接到内屏蔽层,若使用非屏蔽线进行数据传输时,请保持信号地管脚悬空处理。
图 6 双屏蔽层信号地处理方式
所有节点信号地接到屏蔽层或者双屏蔽层的内层后,屏蔽层处理方式注意为单点接地,不可多点接地,否则会在信号地线上形成地环流。
另外,单点接地时为了加大供电地和信号地之间的隔离电阻,阻止共地阻抗电路耦合产生的电磁干扰,注意采用隔离浮地设计,通过阻容方式将屏蔽层与外壳隔离。
图 7 未进行单点接地处理的报文受到电磁干扰
Ø 屏蔽地概念:
屏蔽地(CAN-Shield)也可理解为CAN屏蔽层,部分场合也标为FG。导体外部有导体包裹的导线叫屏蔽线,包裹的导体叫屏蔽层,一般为编织铜网或铜泊(铝),屏蔽层需要接地处理,保证外来的干扰信号可被该层导入大地。
图8 单屏蔽层和双屏蔽层电缆剖析
Ø 屏蔽地处理:
当使用双层屏蔽电缆时,CAN-Shield连接到外屏蔽层和DB9连接器的屏蔽壳。并且,使用DB9针式连接器时外屏蔽层会被连接到pin 5以保证当使用没有屏蔽连接的连接器时,可靠的接地。
多节点总线同样要求屏蔽地采用单点接地,防止形成回路,并且为浮地设计。
如下图9所示处理方式,CTM1051模块3脚为屏蔽地,5脚为信号地。
图9 双屏蔽层线中信号地、屏蔽地处理方式
Ø 外壳地概念:
静电的电荷集聚在物体的表面,一旦遇到可以释放的回路就可以形成电流。有时候产生的电压非常高,特别是在干燥的环境里。电子产品的外壳地就是用来快速地将电荷释放到大地。
Ø 外壳地处理:
外壳接地既是对人体安全的保护,也是防干扰的一种手段,因为一般情况下机壳是金属的,是非常好的屏蔽体,绝大部分辐射干扰都可以阻挡在机壳之外。通过地线引入的干扰(也叫共阻抗干扰),处理方法一般采用地线隔离技术,在外壳接地时接入阻抗,加入滤波等。
图10 信号地、屏蔽地、外壳接地连接推荐电路
Ø 改进方案建议
如果您在使用CAN总线进行调试时,遇到过偶尔通信出错,或者接收不到数据,再者一直正常使用的总线,突然出现大范围的错误,或者节点损坏。
如果您还是在使用单纯的CAN收发器,那么请换成隔离CAN收发器吧!致远的CTM隔离模块内部包含隔离DC-DC、信号隔离电路、CAN总线收发电路、基础的总线防护等。
隔离收发器可将总线和控制电路进行电气隔离,将高压阻挡在控制系统之外,可以有效地保证操作人员的人身及系统安全。不仅如此,隔离可以抑制由接地电势差、接地环路引起的各种共模干扰,保证总线在严重干扰和其它系统级噪声存在的情况下不间断、无差错运行。
图11 CAN隔离收发器推荐设计电路
随机推荐
- for、for..in、forEach、$.each等循环性能测试
var num = 10000000,arr = []; for(i=0;i<num;i++){ arr[i] = i+2; } //1) 使用 for 循环 function test1() ...
- Ubuntu下卸载QT5.7.1再重装
/**** 卸载QT5.7.1 *****/ .首先找到QT安装文件的位置,例如我的在/home/ttwang/software/qt5.7.1 .终端输入命令进入该目录,输入命令: ./Mainte ...
- 使用servicestack连接redis
引言:作为少有的.net架构下的大型网站,stackoverflow曾发表了一篇文章,介绍了其技术体系,原文链接http://highscalability.com/blog/2011/3/3/sta ...
- Data Encryption Errors After Restoring Microsoft Dynamics CRM Database
If you’re seeing an error similar to the one above, you’ve probably done a database backup and resto ...
- LeetCode 545----Boundary of Binary Tree
Given a binary tree, return the values of its boundary in anti-clockwise direction starting from roo ...
- LeetCode 544----Output Contest Matches
During the NBA playoffs, we always arrange the rather strong team to play with the rather weak team, ...
- 风云2号云图Mosaic Dataset处理
# ---------------------------------------------------------------------------# -*- coding: utf-8 -*- ...
- Linux 启动脚本及chkconfig命令之自启动服务
有时我们会碰到这样的情况,系统启动的时候报一大堆无法连接mysql的错误,问题在mysql数据库还没有启动的时候已经启动了一些需要连接mysql数据库的服务.这样我们就得修改启动顺序,把需要连接mys ...
- redis mysql验证 redis_mysql_check.py
# coding:utf-8 import pymysql import redis import sys def con_mysql(sql): db = pymysql.connect(host= ...
- 如何忽略.gitignore文件的提交
1.默认的.gitignore文件无法忽略,如果想要忽略可以把.gitignore里面的文件转移到项目下面的 .git/info/exclude 里面, 2..gitignore可以直接使用插件,参照 ...