如何接好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隔离收发器推荐设计电路
随机推荐
- Laravel 多域名共享session
在网站开发中会涉及登陆的问题,在登陆的过程中为了方便用户体验,我们需要用户在主域名登陆,在其他域名下也要保持登陆状态: 在config/session.php中: 更新网站配置缓存即可
- Ubuntu下编译opencv 和Ubuntu使用ffmpeg实现音频、视频的抽取
一.使用Ubuntu编译opencv (前提是Ubuntu内已经正确配置了opencv,个人采用opencv3.2) g++ 1.cpp -o 1 `pkg-config --cflags --lib ...
- 2018-10-13 21:30:51 conversion of number systems
2018-10-13 21:30:51 c language 二进制.八进制和十六进制: 1) 整数部分 十进制整数转换为 N 进制整数采用“除 N 取余,逆序排列”法. 十进制数字 36926 转 ...
- 在Fragment里面调用getActivity()报null
看友盟的错误日志发现又出现了NullPointerException,然后去看代码,发现只有是上下文有空的可能,但是因为以前已经发生过这种情况所以上下文我都是在创建Fragment对象的时候从Acti ...
- linux 压缩解压命令zip、gz、tar.gz、bz2、tar.bz2、.tar.xz
linux压缩格式:.gz windows压缩格式:.zip .rar默认情况下,windows和linux都支持zip格式,都不需要安装额外软件. .zip格式 压缩zip /usr/bin/zip ...
- zookeeper应用 - 监控
服务器端:监听zk上父节点的子节点变化 package monitor; import java.util.List; import java.util.concurrent.CountDownLat ...
- PSP软件开发过程
1. 引言 这是为了编写psp系统的软件需求分析,主要按照提供的相关需求和功能. 1.1 项目风险 风险承担者包括: 任务提出者:承担任务不能完全按照想象的做出,投入等: 软件开发者:可能不能按时交付 ...
- Sql语法高级应用之三:存储过程
一.存储过程概述 SQL Server中的存储过程是使用T_SQL编写的代码段.它的目的在于能够方便的从系统表中查询信息,或者完成与更新数据库表相关的管理任务和其他的系统管理任务.T_SQL语句是SQ ...
- 教你如何获取ipa包中的开发文件
教你如何获取ipa包中的开发文件 1. 从iTunes获取到ipa包 2. 修改ipa包然后获取里面的开发文件
- [UI] 精美UI界面欣赏[1]
精美UI界面欣赏[1]