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概述

本模块参考RS485基本知识

(一)简介

485协议规定两条线上电压差值为多少表示0或者1,电压通过仪表可以测量得到,所以说RS-485是硬件层协议。

485的接收端可能是另外一个MCU,MCU管脚只接受TTL电平,需要将两条线的差分电压转换为TTL电平。

基本电平转换:TTL电平 转 485电平 485电平 转 TTL电平 给MCU

RS485原理:由于485电平和TTL电平标准定义不通,需要电平转换芯片来实现两者间的数据交换。


(二)接口/引脚图

RS485总线详解-编程知识网

三、RS485总线详解

(一)RS485总线概述

RS-485采用平衡式发送和差分接收方式实现通信,由于传输线通常使用双绞线,又是差分输入,所以有极强的抗共模干扰能力,RS485采用半双工工作方式,支持多点数据通信。总线网络拓扑一般采用终端匹配的总线型结构,即一条总线将各个节点串接起来,不支持环形或星型网络,如果需要使用星型结构就必须适用485中继器或485集线器。RS-485 总线一般支持32个节点,如果特质的485芯片可以达到128或256个节点最大支持400个节点。

RS485收发芯片(电平转换芯片)可以理解为两部分:驱动器和接收器

(二)差分传输:

    1. 发送端在两条信号线上传输辐值相等,相位相反的电信号,接收端在对接收的两条信号线做减法运算,这样就能获得信号翻倍的信号。
    1. 一般情况下 不需要增加终端电阻,通信距离超过300米的情况下在开始端和结束端增加终端电阻
    1. 隔离虽能有效抑制高共模电压,但在总线还会存在浪涌冲击,电源线与485短路的情况,通常在总线端采取保护措施, 在A,B,两端各串一个热敏电阻,在AB接口与热敏电阻中间设有TVS瞬变抑制二极管。
      • 没有故障时,热敏电阻接近零,不影响正常通讯
      • 当误接220V时,热敏电阻变的无穷大,相当于通讯回路和外面断开
      • 当故障消失后,热敏电阻阻值降到零,又可以正常使用。
    1. 由于RS-485是半双工通信,收发转换是需要一定的时间,所以一般在收发转换之间和每发送完一帧数据之后,都要有相应的延时,如果出现收发不正常或第一帧数据之后就出现误码现象,则可以适当的增加一下延时时间。

(三)原理图

    1. 异步通信数据以字节的方式传送,在每一个字节传送之前,先要通过一个低电平起始位实现握手。
    1. 为防止干扰信号误触RO(接收器输出)产生负跳变,使接收端MCU进入接收状态,建议RO外接10kΩ的上拉电阻。
    1. 电源旁路电容,作用是给485芯片提供一个干净的电源,使它稳定的工作。
      RS485总线详解-编程知识网

(三)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-。
RS485总线详解-编程知识网

(二)与RS-422对照表

对于DB9针型的母头,RS-485有如下的接线定义示意,Pin6~Pin9为N/A不接。
RS485总线详解-编程知识网

(三)拓扑结构

RS485有两线制和四线制两种接线,四线制只能实现点对点的通信方式,现很少采用,多采用的是两线制接线方式,这种接线方式为总线拓扑结构,在同一总线上最多可以挂接32个节点。

RS-485总线同I2C,也是主从模式,支持点对点单从机模式,也支持多从机模式,不支持多主机模式。
RS485总线详解-编程知识网

(四) RS-485收发器

RS-485是差分传输,如果用单片机控制RS-485接口的设备,需要用到收发器,这一点和CAN总线是类似的,如下是一个MCU控制一个RS-485的图示
RS485总线详解-编程知识网
  收发器内部是一个接收器(上半部分)加一个发送器(下半部分),下面简单说说收发器的原理,便于理解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处的逻辑状态是不相关的。

RS485总线详解-编程知识网

2.对于接受器

  • 当接收器使能引脚RE逻辑低时,接收器被激活。当定义为VID=VA–VB的差分输入电压为正且高于正输入阈值VIT+时,接收机输出R变高。当VID为负且低于负输入阈值VIT-,接收机输出R变低。如果VID在VIT+和VIT-之间,则输出不确定。
  • 当RE为逻辑高或悬空时,接收机输出为高阻抗,VID的大小和极性无关。
    RS485总线详解-编程知识网

(六)RS-485数据链路

上面讲到的RS-485收发器的工作原理,下面简单描述RS-485的数据链路,可以先看一下通俗易懂的UART协议帧格式
RS485总线详解-编程知识网
主机发送给从机或者从机发送给主机,都会占用到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简介