通信协议学习-485通信(2)

2.RS-485通信总线标准

RS-485标准采用平衡式发送和差分接收方式实现通信,由于传输线通常使用双绞线,又是差分传输,所以有极强的抗共模干扰的能力。RS-485采用半双工工作方式,支持多点数据通信。

总线网络拓扑一般采用终端匹配的总线型结构,即采用一条总线将各个节点串接起来,不支持环形或星型网络,如果需要使用星型结构,就必须使用485中继器或485集线器。RS-485总线一般最大支持32个节点,如果使用特制的485芯片,可以达到128个或256个节点,最大的可以支持到400个节点。

3.RS-485电路设计原理

TTL,RS-485两者之间的电平标准定义不通,需要电平转换芯片来实现两者间的数据交换。图三是一般RS-485电平转换芯片引脚数及其定义,或者称为RS-485收发芯片。
图3
RS-485收发芯片(电平转换芯片)可以理解成两部分,分别为驱动器和接收器。

驱动器输出是差分输出,DE管脚上的逻辑高电平将使能驱动器差分输出,如果DE为逻辑低电平,则驱动器输出呈现高阻态,将发送端与输出A,B断开。

表 1驱动器输出真值表

在这里插入图片描述
通过该真值表可知,在发送时,/RE的电平高低就无所谓了DE是高电平时,

那么DI为1,A>B,驱动器发送器输出1,

DI为0时,B>A,驱动器发送器输出0。

而当DE为低电平时,则输出高阻态,也就是隔开了DI与A,B之间的关系。

RS-485接收器输入时差分输入,/RE来使能接收器,当/RE为低电平时,接收器使能。

表 2接收器输出真值表
在这里插入图片描述
差分传输:发送端在两条信号线上传输幅值相等,相位相反电信号,接收端在对接收的两条线信号做减法运算,这样就获得幅值翻倍的信号。

特别注意:千万不要以为RS-485的逻辑“1”是B>A,逻辑“0”就是A>B。

正确理解:分两种情况驱动器(发送器)和接收器,

对于驱动器(发送器),逻辑“1”(正)是A>B,AB之间电压为+(2~6)V;

逻辑“0”(负)是A<B,AB之间电压为-(2~6)V。

而对于接收器,则逻辑“1”(正)则是B>A,BA之间电压不小于200mV;

逻辑“0”(负)则是A>B,BA之间电压小于-200mV;
即正负逻辑,电压绝对值都大于200mV。

由于RS-485芯片特性,接收器的检测灵敏度为±220mV,当A,B端的电位差绝对值小于200mV时,输出为不稳定,如果在总线上所有发送器被禁止时,接收器输出逻辑“0”,这会误认为通信帧的起始引起工作不正常,解决这个问题的办法就是人为的地使A端电位高于B端电位,这样Rxd的电平在485总线不发送期间(总线悬浮时)呈现唯一的高电平,MCU就不会被误中断而收到乱字符,通常在485电路的A,B输出端加接上拉、下拉电阻,提供网络失效保护,提高RS-485节点与网络的可靠性。
图4
一般情况下不需要增加终端电阻,只有在485通信距离超过300米的情况下,要在485通信的开始端和结束端增加终端电阻。

隔离虽然能够有效的抑制高共模电压,但总线上还会存在浪涌冲击、电源线与485线短路等潜在危害,所以一般会在总线端采取一定的保护措施。

通常在RS-485通讯接口的A,B通讯线上各串接一个热敏电阻,在热敏电阻与RS-485通讯接口之间的A,B通讯线和地之间分别设有TVS瞬变抑制二极管。

没有故障时,热敏电阻接近零,不影响正常通讯,当误接220V时,热敏电阻变的无穷大,相当于通讯回路和外面断开,当故障消失后,热敏电阻阻值降到零,又可以正常使用。

由于RS-485是半双工通信,收发转换是需要一定的时间,所以一般在收发转换之间和每发送完一帧数据之后,都要有相应的延时,如果出现收发不正常或第一帧数据之后就出现误码现象,则可以适当的增加一下延时时间。

异步通信数据以字节的方式传送,在每一个字节传送之前,先要通过一个低电平起始位实现握手。为防止干扰信号误触RO(接收器输出)产生负跳变,使接收端MCU进入接收状态,建议RO外接10kΩ的上拉电阻。

电源旁路电容,作用是给485芯片提供一个干净的电源,使它稳定的工作。

发布了16 篇原创文章 · 获赞 16 · 访问量 1348

猜你喜欢

转载自blog.csdn.net/sinat_41653350/article/details/102979532