RS485总线详解
- 前言
- 一、常见接口划分
- 二、RS485概述
- (一)简介
- (二)接口/引脚图
- 三、RS485总线详解
- (一)RS485总线概述
- (二)差分传输:
- (三)原理图
- (三)RS485与RS232的区别
- 四、应用详解
- (一)接口结构
- (二)与RS-422对照表
- (三)拓扑结构
- (四) RS-485收发器
- (五)真值表
- 1.对于发送器
- 2.对于接受器
- (六)RS-485数据链路
- 参考链接
前言
前面有讲过协议,具体参考FPGA学习笔记(Day12)SingalTap使用&&Uart串口通信
本次详细了解介绍。
RS485:en置0;
一、常见接口划分
物理层:接口类型、电平标准
串口电平标准:
- TTL电平的串口(3.3V)
- RS232电平的串口(+5 ~ +12V为低电平,-12~-5V为高电平)
串口按电气标准分包括:
- RS-232-C:TXD/RXD/GND、15米/9600bps
- RS-422: TX+/TX-…/RX+/RX-/GND
- RS485:A/B/G、1200米/9600bps
二、RS485概述
本模块参考RS485基本知识
(一)简介
485协议规定两条线上电压差值为多少表示0或者1,电压通过仪表可以测量得到,所以说RS-485是硬件层协议。
485的接收端可能是另外一个MCU,MCU管脚只接受TTL电平,需要将两条线的差分电压转换为TTL电平。
基本电平转换:TTL电平 转 485电平 485电平 转 TTL电平 给MCU
RS485原理:由于485电平和TTL电平标准定义不通,需要电平转换芯片来实现两者间的数据交换。
(二)接口/引脚图
三、RS485总线详解
(一)RS485总线概述
RS-485采用平衡式发送和差分接收方式实现通信,由于传输线通常使用双绞线,又是差分输入,所以有极强的抗共模干扰能力,RS485采用半双工工作方式,支持多点数据通信。总线网络拓扑一般采用终端匹配的总线型结构,即一条总线将各个节点串接起来,不支持环形或星型网络,如果需要使用星型结构就必须适用485中继器或485集线器。RS-485 总线一般支持32个节点,如果特质的485芯片可以达到128或256个节点最大支持400个节点。
RS485收发芯片(电平转换芯片)可以理解为两部分:驱动器和接收器
(二)差分传输:
-
- 发送端在两条信号线上传输辐值相等,相位相反的电信号,接收端在对接收的两条信号线做减法运算,这样就能获得信号翻倍的信号。
-
- 一般情况下 不需要增加终端电阻,通信距离超过300米的情况下在开始端和结束端增加终端电阻
-
- 隔离虽能有效抑制高共模电压,但在总线还会存在浪涌冲击,电源线与485短路的情况,通常在总线端采取保护措施, 在A,B,两端各串一个热敏电阻,在AB接口与热敏电阻中间设有TVS瞬变抑制二极管。
- 没有故障时,热敏电阻接近零,不影响正常通讯
- 当误接220V时,热敏电阻变的无穷大,相当于通讯回路和外面断开
- 当故障消失后,热敏电阻阻值降到零,又可以正常使用。
- 隔离虽能有效抑制高共模电压,但在总线还会存在浪涌冲击,电源线与485短路的情况,通常在总线端采取保护措施, 在A,B,两端各串一个热敏电阻,在AB接口与热敏电阻中间设有TVS瞬变抑制二极管。
-
- 由于RS-485是半双工通信,收发转换是需要一定的时间,所以一般在收发转换之间和每发送完一帧数据之后,都要有相应的延时,如果出现收发不正常或第一帧数据之后就出现误码现象,则可以适当的增加一下延时时间。
(三)原理图
-
- 异步通信数据以字节的方式传送,在每一个字节传送之前,先要通过一个低电平起始位实现握手。
-
- 为防止干扰信号误触RO(接收器输出)产生负跳变,使接收端MCU进入接收状态,建议RO外接10kΩ的上拉电阻。
-
- 电源旁路电容,作用是给485芯片提供一个干净的电源,使它稳定的工作。
- 电源旁路电容,作用是给485芯片提供一个干净的电源,使它稳定的工作。
(三)RS485与RS232的区别
RS485和RS232一样都是基于串口的通讯接口,数据收发的操作是一致的,所以使用的是同样WinCE的底层驱动程序。但是它们在实际应用中通讯模式却有着很大的区别,RS485接口为半双工数据通讯模式,而RS232接口为全双工数据通讯模式,数据的收发不能同时进行,为了保证数据收发的不冲突,硬件上是通过方向切换来实现的,相应也要求软件上必须将收发的过程严格地分开。
RS485接口组成的半双工网络,一般是两线制(以前有四线制接法,只能实现点对点的通信方式,现很少采用),多采用屏蔽双绞线传输。这种接线方式为总线式拓扑结构在同一总线上最多可以挂接32个结点。在RS485通信网络中一般采用的是主从通信方式,即一个主机带多个从机。
RS-485接口的最大传输距离标准值为4000英尺(约1219米),实际上可达3000英尺,另外RS-232接口在总线上只允许连接1个收发器,即单站能力。而RS-485接口在总线上是允许连接多达128个收发器。即具有多站能力,这样用户可以利用单一的RS-485接口方便地建立起设备网络。
四、应用详解
本模块参考RS485简介
(一)接口结构
现在很多的RS-485转换器都是兼容RS-422的,所以看到很多转换器上面的信号都是T/R+、T/R-,即对应RS-485的A+和B-。
(二)与RS-422对照表
对于DB9针型的母头,RS-485有如下的接线定义示意,Pin6~Pin9为N/A不接。
(三)拓扑结构
RS485有两线制和四线制两种接线,四线制只能实现点对点的通信方式,现很少采用,多采用的是两线制接线方式,这种接线方式为总线拓扑结构,在同一总线上最多可以挂接32个节点。
RS-485总线同I2C,也是主从模式,支持点对点单从机模式,也支持多从机模式,不支持多主机模式。
(四) RS-485收发器
RS-485是差分传输,如果用单片机控制RS-485接口的设备,需要用到收发器,这一点和CAN总线是类似的,如下是一个MCU控制一个RS-485的图示
收发器内部是一个接收器(上半部分)加一个发送器(下半部分),下面简单说说收发器的原理,便于理解MCU是如何和485设备通信的。
信号 | 简介 |
---|---|
A、B | 总线 |
R | 接收器输入 |
RE ‾ \overline{\text{RE}} RE | 接收器使能信号 |
DE | 发送器使能信号 |
D | 发送器输出 |
对于使能信号,字母上面加一横的为低电平有效(如上图 RE ‾ \overline{\text{RE}} RE),不加的为高电平有效(如DE)
(五)真值表
1.对于发送器
- 当驱动器使能引脚DE为逻辑高时,差分输出A和B遵循数据输入D处的逻辑状态。D处的逻辑高导致A转为高,B转为低。在这种情况下,定义为VOD=VA-VB的差分输出电压为正。当D为低时,输出状态反转,B变高,A变低,VOD为负。
- 当DE低时,两个输出都变成高阻抗。在这种情况下,与D处的逻辑状态是不相关的。
2.对于接受器
- 当接收器使能引脚RE逻辑低时,接收器被激活。当定义为VID=VA–VB的差分输入电压为正且高于正输入阈值VIT+时,接收机输出R变高。当VID为负且低于负输入阈值VIT-,接收机输出R变低。如果VID在VIT+和VIT-之间,则输出不确定。
- 当RE为逻辑高或悬空时,接收机输出为高阻抗,VID的大小和极性无关。
(六)RS-485数据链路
上面讲到的RS-485收发器的工作原理,下面简单描述RS-485的数据链路,可以先看一下通俗易懂的UART协议帧格式
主机发送给从机或者从机发送给主机,都会占用到A和B线,所以RS-485多用在半双工模式。
主机的GPIO会控制RS-485收发器的DE管脚,设置发送模式,从UART TXD线向RS-485收发器的数据(D或DI)线发送一个字节,收发器将在A和B线上将单端UART位流转换为差分位流,数据离开收发器后,主机立即将收发器的模式切换为接收模式。
从机和主机是类似的,从机控制RS-485收发器的/RE管脚,设置为接收模式,接收主机发送的比特流,将其转换为单端信号,通过从机的UART RXD线接收,当从机准备好响应时,它按主机原来的方式进行发送,而主机变为接收。
参考链接
RS-485通讯协议
RS485基本知识
RS485简介