如何接好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隔离收发器推荐设计电路
随机推荐
- <Android 基础(二十五)> Frame Animation
简介 Frame Animation, 逐帧动画,通过定义一系列的Drawable对象来实现动画效果,可以用来作为视图的背景. Frame Animation在代码中体现为AnimationDrawa ...
- 葡萄城报表介绍:Java 报表
一.Java 报表定义 Java 是一门面向对象编程语言,不仅吸收了 C++ 语言的各种优点,还摒弃了 C++ 里难以理解的多继承.指针等概念,因此 Java 语言具有功能强大和简单易用两个特征.Ja ...
- python学习笔记之——文件I/O
1.print打印到屏幕 print "打印到屏幕" 2.读取读取键盘输入 (1)raw_input函数 raw_input([prompt]) 函数从标准输入读取一个行,并返回一 ...
- Pwn with File结构体之利用 vtable 进行 ROP
前言 本文以 0x00 CTF 2017 的 babyheap 为例介绍下通过修改 vtable 进行 rop 的操作 (:-_- 漏洞分析 首先查看一下程序开启的安全措施 18:07 haclh@u ...
- request对象方法
1.html <html> <head> <meta http-equiv="Content-Type" content="text/htm ...
- Pig store用法举例
store:将数据存储到HDFS等文件系统里 将数据保存到/data目录 store data into '/data'; 以逗号为分隔符 store data into '/data' usin ...
- zookeeper应用 - FIFO 队列 分布式队列
使用ZooKeeper实现的FIFO队列,这个队列是分布式的. package fifo; import java.util.Collections; import java.util.List; i ...
- Datastage重启服务
使用DS开发job时,偶尔一个Job出现卡死现象,导致工作不能进展下去,有时候需要重启datastage服务才可以. DataStage在正常运行时候有以下两个主要的进程: (1)dsrpcd(DS的 ...
- Oracle EBS AP银行显示不全
- linux下指定源下载
我们默认使用yun 安装的时候 使用的 是外国的网站进行下载的 那么下载肯定是慢的 我们可以更改为国内的站点进行下载的 比如临时更改为国内的站点进行下载 pip install -i +你的源 p ...