- 本课程为精品课,您可以登录eeworld继续观看:
- 1.3 实施 RS-485 传输的最佳实践
- 登录
- 课程目录
- 课程笔记
[音乐播放]
欢迎观看高精度实验室视频。
在本系列中,我们将讨论实施
RS-485 传输的最佳实践。
这些主题包括网络拓扑、端接、
外部失效防护和接地。
三种常见的拓扑分别是
星形网络、环形网络和包含
星形网络的主干,它们各有各的不足。
之所以不推荐使用星形网络和包含
星形网络的主干,是因为它们故意延长了
主传输线路中
存根的长度。
之所以不推荐使用环形网络,
是因为附近的连接点产生的反射更容易导致
预期接收器的信号完整性下降,
还有可能反射回发送器中。
如果必须使用上述任何一种拓扑,
则应大幅降低数据速率,以确保
能够可靠地进行通信。
RS-485 标准建议使用菊花链
拓扑来连接节点。
在这种拓扑中,所使用的驱动器、
接收器和收发器都通过短网络存根
连接到主电缆干线。
可以将接口总线设计为
进行全双工或半双工传输。
菊花链拓扑的一种替代方案是
使用接线盒。
采用这种方案时,应当尽量减少存根链路,
从而减少反射。
如果必须使用一种不完美的网络拓扑,
最好在每个连接点处插入一个中继器节点。
此图表中的存根长度被定义为 T 连接点,
从此连接点引出的三条线与器件引脚相交。
对于菊花链拓扑,这种情况发生在 PCB 板上:
两条传输连接线和一些迹线连接到
RS-485 收发器。
对于采用接线盒的方法,这种情况
发生在主传输线上,
连接线连接到器件引脚。
由于菊花链拓扑允许生成
小得多的存根,因此有助于减少
向主传输线路的反射,这是这种拓扑
成为优先选择的主要原因。
采用接线盒的方法也可能非常有效。
不过理想情况下,应当最大限度缩短
存根的长度,以减少反射。
当无法将存根缩短到合理的
长度时,可能需要降低数据速率
以便能够可靠地进行通信。
这是一般经验法则,并非严格的规定。
可以使用所提供的公式
计算允许的存根最大长度。
tr 是 RS-485驱动器的上升时间,
可以在器件的数据表中找到此值。
此值介于 VCC 的 10%到 VCC 的 90% 之间。
V 为信号速度,
是传输介质或电缆介电材料的
一个函数。
通常可以在传输电缆的
数据表中找到此信息。
此测量值以光速的
系数百分比表示。
c 是光速的常数。
使用与传输电缆的特性阻抗 z 零
相等的电阻器,将总线的两个最远点
端接。
端接电阻应当尽可能
匹配,而且不会降到 60 欧姆以下,
如果计算中包含收发器的负载,则端接电阻
不应降到 54 欧姆以下。
外部失效防护电阻器可以帮助处于总线空闲、
短路和开路状态的接收器提高抗噪能力。
视频的下方提供了关于如何计算失效防护电阻器和
端接电阻器值的应用手册链接。
如何才能知道RS-485 收发器
是否具有内置的失效防护功能?
有两种检查方法。
第一种方法是查看数据表的封面。
封面上通常包含这一信息。
第二种方法是查看电气参数 v 输入阈值。
可以检查正负号。
带有失效防护偏置功能的收发器的
阈值通常不会以接近于 0 伏的值
为中心。
来自失效防护偏置接收器的值应当是
负值。
请注意,有些新型号RS-485 收发器的
电路使用的 v 输入阈值以接近于 0 伏的值
为中心,但依然能够提供
失效防护偏置。
不过,这种检查方法依然
适用于大多数RS-485 接收器。
即使我的收发器都具有失效防护偏置
功能,我是否也应当提供外部偏置?
不必如此,因为当传输线路处于
短路、空闲或开路状态时,所有收发器
仍会将 rx 保持在
逻辑高电平状态。
如果使用了外部偏置,
接收器的抗噪能力可能会增强。
不过,外部偏置功能的缺点是
功耗会增大,这是因为
电流始终通过一个路径从 VCC 流向
带有失效防护偏置电阻器的接地端。
如果我的一个收发器具有失效防护功能,
是否就意味着我的网络不会失效?
如果收发器具有内部失效防护偏置功能,
那么在大多数情况下,此功能只会应用于该接收器,
而不会顺延到网络中的其他节点。
这不同于外部偏置,后者
即使处于单个节点中,也会应用于
整个网络。
但早期的部分收发器有一些
例外情况。
是否应该将失效防护偏置网络
放到我的所有接收器节点上?
外部失效防护偏置网络最好
只放在一个节点上。
如果将它放到每一个节点上,则需要高得多的
上拉电阻和下拉电阻。
这样做的缺点是,上拉强度和下拉强度
现在都是所安装节点数量的一个函数。
在 RS-485 系统中,可以通过几种
不同的方式完成接地。
在示例 A 中,系统容易受到高接地
电位差的影响。
如果接地电位差
大于器件的限值,器件可能会停止工作
甚至损坏。
在示例 B 中,如果存在高接地电位差,
则可能形成大量的回路电流,
这些电流可能会作为共模噪声
耦合到数据线路中。
RS-485 标准推荐使用示例 C。
增加串联电阻可降低回路电流,
但仍然可能存在噪声。
将 RS-485 系统接地时,接地电位差不得
超过收发器的共模规格,
RS-485 标准中的这一规格介于
-7 伏到 +12 伏之间。
有些收发器甚至支持 -20 伏到 +25 伏的
更高电压。
当出现非常大的接地电位差时,
应当使用
隔离式 RS-485 收发器。
课程介绍
共计3课时,24分6秒
猜你喜欢
换一换
推荐帖子
- TI SensorTag创意设计视频集
- TI SensorTag创意设计视频集 这里汇集了EEWORLD 资深工程师将一个小小的SensorTag魔术般的演绎出种种场景的:车载电子、智能家居、无人机、可穿戴设备...... 这里包含的不仅仅是科技、前言、炫酷,还有满满生活的温馨以及工程师们最本真的乐趣,对“挖掘”与“实践”...
-
EEWORLD社区
无线连接
- 【TI首届低功耗设计大赛】智能手表之U/COSIII实时操作系统移植
- 添加u/cosIII所需的文件,如下图 建立任务主要代码如下: #include "app.h" #include "gui_desktop.h" #include "sim908.h" #include #include "wm.h" #include "gui_common.h" #include "rtc.h" #include "i2c_ee.h" #incl...
-
zhanghuichun
微控制器 MCU
- Sensortag 【智能风铃】 第五弹 上手usb dongle
- 既然要和Sensortag通信,自然要用到usb dongle了 这次设计的是PC端的上位机程序通过usb dongle和Sensortag通信,获取到Sensortag的运动状态及测量到的温度、湿度、气压等信息后,实时体现在模拟出的风铃上 从淘宝上买到了usb dongle后,插到USB口,安装驱动等不在话下 接着启动BLE Device Monitor,选择usb...
-
anqi90
无线连接
- 问一个关于SysCtlDelay(SysCtlClockGet() / (1000 * 3));问题
- 是不是任何晶振情况下,SysCtlDelay(SysCtlClockGet() / (1000 * 3));都是延时1MS 还有如果主频是 ROM_SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN |SYSCTL_XTAL_16MHZ); //系统时钟设置 16M 那么是否可以直接写Sy...
-
QIHAO74
微控制器 MCU