1、RS-232

(1) 基本概念

  • RS-232接口符合美国电子工业联盟(EIA)制定的串行数据通信的接口标准,被广泛用于计算机串行接口外设连接,像有些老式PC机上就配置有RS232接口。RS232的工作方式是单端工作方式,这是一种不平衡的传输方式,收发端信号的逻辑电平都是相对于信号地而言的,RS232最初是DTE(数字终端设备)和DCE(数据通信设备)一对一通信,也就是点对点,一般是用于全双工传送,也可以用于半双工传送。
  • 采用负逻辑传送,规定逻辑“1”的电平为-5V~-15 V,逻辑“0”的电平为+5 V~+15 V。选用该电气标准的目的在于提高抗干扰能力,增大通信距离。RS -232的噪声容限为2V,接收器将能识别高至+3V的信号作为逻辑“0”,将低到-3 V的信号作为逻辑“1”。
  • 传输距离短,只有15米,实际应用可以达到50米,再长的距离就须加调制了。
  • RS232标准物理接口是25个引脚的,因为常用的是9个引脚,后来基本采用DB9连接器了。
    RS-232标准主要规定了信号用途、通讯接口和信号电平标准。如下图为常见的设备间串口通讯结构图。
  • Android与rs232通讯 rs232传输协议_嵌入式硬件

如上图所示,每个设备都有一个DB9接口,通过DB9接口连接RS-232标准的串口线进行数据传输。由于通过RS-232标准传输的电平信号到达设备后,不能直接被识别,所以会通过电平转换芯片(例如MAX3232、SP3232芯片等)转换成能识别的TTL电平信号,实现通讯。

相互通讯的两个设备间,一个设备发送数据,一个设备接收数据。一般情况下,发送数据的设备称为DTE,如计算机;接收数据的设备称为DCE,如调制解调器。

下面介绍下DB9接口。如下图为DB9标准的公头、母头接法(接线口以针式引出信号线为公头,以孔式引出信号线为母头)。

Android与rs232通讯 rs232传输协议_Android与rs232通讯_02


如上图,以公头为例,有9条信号线,其中,

  • RXD:用于接收DCE发来的数据信号,即输入;
  • TXD:用于发送DTE的信号,即输出。公头和母头的RXD和TXD应交叉连接;
  • GND:用于平衡设备双方的地电位,即共地。

其他信号线如DCD、DTR、DSR、RTS、CTS等,使用逻辑1表示有效信号,逻辑0表示无效信号。如DTE端的RTS信号线置1时,是为了告知DCE设备本机已准备好 接收数据,而置0则表示未准备就绪。

(2)通信方式

RS232 可做到双向传输,全双工通讯,最高传输速率 20kbps。

(3)与UART异同点

逻辑电平不同:UART是TTL电平,RS232是RS232电平,不能直接相连,需要电平转换芯片(MAX3232等)。

协议层完全相同:UART和RS232的协议层可以共享,没有较大区别。

(4)缺点

  • 接口电平值较高,易损坏接口电路的芯片;又因为与TTL电平不兼容故需使用电平转换电路方能与TTL电路连接。
  • 传输速率较低,大约为20Kbps;传输距离较短,大约为15米左右。
  • 接口由三根线TX、RX、GND组成,没有构成差分线形式,容易产生共地共模干扰,抗干扰能力弱。

2、RS-485

(1)基本概念

RS485总线传输协议是一种串行总线通信协议标准,RS485总线采用平衡发送,差分接收的结构设计,因此具有抑制共模干扰的能力。RS485总线的数据传输速率最高可达10Mbps,最远传输距离可达1000米左右。RS485不是点对点式的总线结构,而是分布式架构,其总线能够连接多达128个收发器。

RS-485采用平衡发送和差分接收,因此具有抑制共模干扰的能力。RS-485采用半双工工作方式,任何时候只能有一点处于发送状态,因此,发送电路须由使能信号加以控制。RS-485用于多点互连时非常方便,可以省掉许多信号线。应用RS-485可以联网构成分布式系统,其允许最多并联32台驱动器和32台接收器。在RS232或RS485设备联成的设备网中,如果设备数量超过2台,就必须使用RS485做通讯介质,RS485网的设备间要想互通信息只有通过“主(Master)”设备中转才能实现,这个主设备通常是PC,而这种设备网中只允许存在一个主设备,其余全部是从(Slave)设备。

RS-485 ( EIA-485 标准)是RS-422的改进,因为它增加了设备的个数,从10个增加到32个,同时定义了在最大设备个数情况下的电气特性,以保证足够的信号电压。有了多个设备的能力,你可以使用一个单个RS-485口建立设备网络。出色抗噪和多设备能力,在工业应用中建立连向PC机的分布式设备网络、其他 数据收集 控制器、HMI或者其他操作时,串行连接会选择RS-485。RS-485是RS-422的超集,因此所有的RS-422设备可以被RS-485控制。RS-485可以用超过4000英尺的线进行串行通行。

为改进RS232通信距离短、速率低的缺点,EIA在基于RS422的基础上制定了RS485接口标准。RS485是平衡发送和差分接收,因此具有抑制共模干扰的能力,它的最大传输距离为1200米,实际可达3000米,传输速率最高可达10Mbit/s。所以,一般在要求通信距离为几十米到上千米时,会广泛采用RS-485串行通信。

RS-485采用半双工工作方式,允许在简单的一对屏蔽双绞线上进行多点、双向通信,不过任何时候只能有一点处于发送状态,因此,发送电路须由使能信号加以控制。

与RS232不同的是,RS485的工作方式是差分工作方式,所谓差分工作方式,是指在一堆双绞线中,一条定义为A,一条定义为B。RS485采用差分信号负逻辑,+2V~+6V表示“0”,- 6V~- 2V表示“1”。RS485有两线制和四线制两种接线,四线制是全双工通讯方式,两线制是半双工通讯方式。

RS485和RS232一样都是基于串口的通讯接口,数据收发的操作是一致的,但是它们在实际应用中通讯模式却有着很大的区别,RS232接口为全双工数据通讯模式,而RS485接口为半双工数据通讯模式,数据的收发不能同时进行,为了保证数据收发的不冲突,在RS485中还有一个使能端,使能端是用于控制发送驱动器与传输线的切断与连接,可以认为是一个开关。当开关即使能端信号为1时,信号就输出,当使能端信号是0时,信号就无法输出。相应也要求软件上必须将收发的过程严格地分开。

RS-485与RS-422的不同还在于其共模输出电压是不同的,RS-485是-7V至+12V之间,而RS-422在-7V至+7V之间;RS-485满足所有RS-422的规范,所以RS-485的驱动器可以用在RS-422网络中应用。RS-485与RS-422一样,其最大传输距离约为1219米,最大传输速率为10Mbps。平衡双绞线的长度与传输速率成反比,在100Kbps速率以下,才可能使用规定最长的电缆长度。只有在很短的距离下才能获得最高速率传输。一般100米长双绞线最大传输速率仅为1Mbps。

RS485接口组成的半双工网络,一般是两线制(以前有四线制接法,只能实现点对点的通信方式,现很少采用),多采用屏蔽双绞线传输。这种接线方式为总线式拓扑结构在同一总线上最多可以挂接32个结点。在RS485通信网络中一般采用的是主从通信方式,即一个主机带多个从机。很多情况下,连接RS-485通信链路时只是简单地用一对双绞线将各个接口的“A”、“B”端连接起来。RS485接口连接器采用DB-9的9芯插头座,与智能终端RS485接口采用DB-9(孔),与键盘连接的键盘接口RS485采用DB-9(针)

(2) RS-485引脚定义

RS-485的两线制引脚定义:

序号

名称

作用

备注

1

Data-/B/485-

发送正

必连

2

Data/B/485+

接收正

必连

5

GND

地线

不连

9

+9V

电源

不连

RS-485的四线制引脚定义:

序号

名称

作用

备注

1

TDA-/Y

发送A

TXD+/A,必连

2

TDB+/Z

发送B

TXD-/B,必连

3

RDA-/A

接收A

RXD-,必连

4

RDB+/B

接收B

RXD+,必连

5

GND

地线

不连

RS485标准物理接口也是9个引脚的,对于引脚定义有不同的标识:

  • 英式标识为 TDA(-) 、TDB(+) 、RDA(-) 、RDB(+) 、GND
  • 美式标识为 Y 、Z 、 A 、 B 、 GND
  • 中式标识为 TXD(+)/A 、TXD(-)/B 、RXD(-) 、RXD(+)、GND
  • RS485两线一般定义为: “A、B"或"Date+、Date-” ,也就是我们即常说的485+、485- 。

具体还要根据厂家的使用信号针脚而定,有的RS485也可能使用了RTS或DTR等针脚。

其中支持RS485接口的芯片有(MAX481,MAX483,MAX485,MAX487,MAX1487等)。

(3)通信

在 RS485 通信网络中,通常会使用 485 收发器来转换 TTL 电平和 RS485 电平。各路节点连接到 485 收发器上,而收发器通过差分线连接到网络总线,串口控制器与收发器之间一般使用 TTL 信号传输,收发器与总线则使用差分信号来传输。发送数据时,串口控制器的 TX 信号经过收发器转换成差分信号传输到总线上,而接收数据时,收发器把总线上的差分信号转化成 TTL 信号通过 RX 引脚传输到串口控制器中。通常在这些节点中只能有一个主机,剩下的全为从机。在总线的起止端分别加了一个 120 欧的匹配电阻。

Android与rs232通讯 rs232传输协议_嵌入式硬件_03

(4)硬件设计

RS485 与RS422 均采用差分平衡传输的方式,所以他们的电平方式,一般采用A、B 引脚的方式。
电平定义:
以U = A - B 的电压值为划分依据
发送端:逻辑1:+2V ~ +6V;逻辑0:-6V ~ -2V
接收端:逻辑1:>= 200mv;逻辑0:<= -200mv
信号电平转换:
在单片机设计系统中,常把信号电平在TTL 与485 之间转换,获得良好的传输质量,并使MCU更好的处理信号。
下图是485通信的应用电路设计:

Android与rs232通讯 rs232传输协议_单片机_04

3V3与+5V是两组不共地的电源,一般用隔离型的DC-DC来实现。通过光耦隔离来实现信号的隔离传输,MAX485与MCU系统不共地,完全隔离则有效的抑制了高共模电压的产生,大大降低485的损坏率,提高了系统稳定性。但也存在电路体积过大、电路繁琐、分立器件过多,传输速率受光电器件限制等缺点,对整个系统的稳定性也有一定影响。

RS485_DIR:为控制位,控制发送还是接收数据;

  • 当RS485_DIR=1(高电平时),光耦电路U3截止,/RE=1(无效),DE=1(有效),即发送数据;
  • 当RS485_DIR=0 (低电平时),光耦电路U3导通,/RE=0(有效),DE=0(无效),即接收数据;

MAX485芯片管脚定义:

  • RO :串口接收端
  • DI : 串口传输端
  • /RE:485接收端
  • DE: 485发送端

(5) RS485通信缺点

  • RS485总线是一种常规的通信总线,它不能够做总线的自动仲裁,也就是不能够同时发送数据以避免总线竞争,所以整个系统的通信效率必然较低,数据冗余量较大,对于速度要求高的应用场所不适应用RS485总线。同时由于RS485总线上通常只有一台主机,所以这种总线方式是典型的集中—分散型控制系统。一旦主机出现故障,会使整个系统的通信限于瘫痪状态,因此做好主机的在线备份是一个重要措施。
  • RS485有两线制和四线制两种接线,四线制只能实现点对点的通信方式,现很少采用,现在多采用的是两线制接线方式,这种接线方式为总线式拓朴结构在同一总线上最多可以挂接32个结点。在RS485通信网络中一般采用的是主从通信方式,即一个主机带多个从机。很多情况下,连接RS-485通信链路时只是简单地用一对双绞线将各个接口的“A”、“B”端连接起来。而忽略了信号地的连接,这种连接方法在许多场合是能正常工作的,但却埋下了很大的隐患,有二个原因:
    a.共模干扰问题:RS-485接口采用差分方式传输信号方式,并不需要相对于某个参照点来检测信号,系统只需检测两线之间的电位差就可以了。但人们往往忽视了收发器有一定的共模电压范围,RS-485收发器共模电压范围为-7~+12V,只有满足上述条件,整个网络才能正常工作。当网络线路中共模电压超出此范围时就会影响通信的稳定可靠,甚至损坏接口。
    b.EMI问题:发送驱动器输出信号中的共模部分需要一个返回通路,如没有一个低阻的返回通道(信号地),就会以辐射的形式返回源端,整个总线就会像一个巨大的天线向外辐射电磁波。
  • 由于PC机默认的只带有RS232接口,有两种方法可以得到PC上位机的RS485电路:
    (1)通过RS232/RS485转换电路将PC机串口RS232信号转换成RS485信号,对于情况比较复杂的工业环境最好是选用防浪涌带隔离珊的产品。
    (2)通过PCI多串口卡,可以直接选用输出信号为RS485类型的扩展卡。
  • 因为采用两线制,数据的发送和接收都要用到这对差分信号线,发送和接收不能同时进行,所以只能采用半双工的方式工作。

(6)优点

RS485标准规定采用差分信号进行数据传输,两线间的电压差为+2v到+6v表示逻辑“1”,两线间的电压差为-2v到-6v表示逻辑“0”。使用差分信号能有效的减少噪音信号的干扰,延长通信距离,RS485的通信距离可以达到1500m,RS485接口信号的电平比RS232降低了,所以不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便地与TTL电路连接。

RS485采用两线制,这种接线方式为总线式拓扑结构,在同一总线上,可以同时存在多个节点。

由于RS-485是从RS-422基础上发展而来的,所以RS-485许多电气规定与RS-422相仿。如都采用平衡传输方式、都需要在传输线上接终接电阻等。RS-485可以采用二线与四线方式,二线制可实现真正的多点双向通信。RS-485总线,在要求通信距离为几十米到上千米时,广泛采用RS-485 串行总线标准。RS-485采用平衡发送和差分接收,因此具有抑制共模干扰的能力。加上总线收发器具有高灵敏度,能检测低至200mV的电压,故传输信号能在千米以外得到恢复。 RS-485采用半双工工作方式,任何时候只能有一点处于发送状态,因此,发送电路须由使能信号加以控制。RS-485用于多点互连时非常方便,可以省掉许多信号线。应用RS-485可以联网构成分布式系统,其允许最多并联32台驱动器和32台接收器。

RS-485使用该标准的数字通信网络能在远距离条件下以及电子噪声大的环境下有效传输信号。RS-485使得连接本地网络以及多支路通信链路的配置成为可能。
该标准允许连接多个收发器,即具有多站能力,这样可以利用单一的RS485接口方便地建立起一个设备网络。

3、RS-422

(1) 基本概念

RS-422是一系列的规定采用4线,全双工,差分传输,多点通信的数据传输协议。它采用平衡传输采用单向/非可逆,有使能端或没有使能端的传输线。和RS-485不同的是RS-422不允许出现多个发送端而只能有多个接收端。硬件构成上RS-422相当于两组RS-485,即两个半双工的RS-485构成一个全双工的RS-422。

RS-422接口的收与发是分开的,所以可以同时收与发(全双工),所以RS-422适用于两个站之间通信,星型网、环网,不可用于总线网。

RS422不同于RS-485串行接口标准、RS-422、RS-485和RS-232。数据信号采用差分传输,也称为均衡传输。它使用一对双绞线,这在早期的PC通信中很常见。

RS-422接口每个通道要用两条信号线,如果一条是逻辑“1”状态,另一条为逻辑“0”。电路由发送器、平衡连接电缆、电缆终端负载、接收器几部分组成。在电路中规定只许有一个发送器,可有多个接收器,因此通常采用点对点通讯方式。

RS422是一个双端线路传输信号。通过传输线驱动器,将逻辑电平转换为电位差,完成初始信息;通过传输线接收器,将电位差转换为逻辑电平,在终端实现信息接收。

RS-422四线接口由于采用单独的发送和接收通道,因此不必控制数据方向,各装置之间任何必须的信号交换均可以按软件方式(XON/XOFF握手)或硬件方式(一对单独的双绞线)。RS-422接口的最大传输距离为4000英尺(约1219米),最大传输速率为10Mb/s。其平衡双绞线的长度与传输速率成反比,在100kb/s速率以下,才可能达到最大传输距离。只有在很短的距离下才能获得最高速率传输。一般100米长的双绞线上所能获得的最大传输速率仅为1Mb/s。

Android与rs232通讯 rs232传输协议_单片机_05

RS-422接口标准全称是“平衡电压数字接口电路的电气特性”,它定义了接口电路的特性。实际上还有一根信号地线,共5根线。由于接收器采用高输入阻抗和发送驱动器比RS232更强的驱动能力,故允许在相同传输线上连接多个接收节点,最多可接10个节点。一个主设备(Master),其余为从设备(Slave),从设备之间不能通信,所以RS-422支持点对多的双向通信。接收器输入阻抗为4k,故发端最大负载能力是10×4k+100Ω(终接电阻)。

RS-422标准全RS-422接口需要一种接电阻,要求其阻值约等于传输电缆的特性阻抗。在短距离传输时可不需终接电阻,即一般在300米以下不需终接电阻。终接电阻接在传输电缆的最远端。

(2) 通信原理

RS-422有4根信号线:两根发送、两根接收。

Android与rs232通讯 rs232传输协议_mcu_06

RS422转RS232:

Android与rs232通讯 rs232传输协议_mcu_07

Android与rs232通讯 rs232传输协议_嵌入式硬件_08

支持RS422接口芯内片有(MAX488,MAX490,MAX489,MAX491等)。

(3)RS422 引脚定义

  • 英式标识为 TDA(-) 、TDB(+) 、RDA(-) 、RDB(+)、GND。
  • 美式标识为 Y 、Z 、 A 、 B 、 GND。
  • 中式标识为 TXD(+)/A 、TXD(-)/B 、RXD(-) 、RXD(+)、GND 。

序号

名称

作用

备注

1

GND

地线

2

TXA

发送正

TX+或A,必连

3

RXA

接收正

RX+或Y,必连

4

TXB

发送负

TX-或B,必连

5

RXB

接收负

RX-或Z, 必连

6

+9V

电源

不连

(4)RS-232/RS-422/RS-485区别

  • RS232是全双工的;RS485为两线制,半双工模式;RS422为4线制,全双工模式。
  • RS485与RS232仅仅是通讯的物理协议(即接口标准)有区别,RS485是差分传输方式,RS232是单端传输方式,但通讯程序没有太多的差别。PC机上已经配备有RS232,直接使用就可以,若使用RS485通讯,只要在RS232端口上配接一个RS232转RS485的转换头就可以,不需要修改程序。
  • RS232/RS422/RS485接口外观异同:一般都是DB9,也有其它的,具体得看里面的线才知道到底是RS232,RS422,RS485里的哪种。

Android与rs232通讯 rs232传输协议_单片机_09

管脚

RS232

RS485

RS422

1

DCD

DATA-

TX-

2

RXD

DATA+

TX+

3

TXD

/

RX+

4

DTR

/

RX-

5

GND

GND

GND

6

DSR

/

/

7

RTS

/

/

8

CTS

/

/

9

RI

/

/

  • 三者之间其它参数区别如下。

标准

RS-232

RS-422

RS-485

工作方式

单端

差分

差分

节点数

1收、1发

1发10收

1发32收

最大传输电缆长度

50英尺

4000英尺

4000英尺

最大传输速率

20Kbps

10Mbps

10Mbps

最大驱动输出电压

+/-25V

-0.25V~+6V

-7V~+12V

发送器输出信号电平(负载最小值)—负载

+/-5V~+/-15V

+/-2V

+/-1.5V

发送器输出信号电平(空载最大值)— 空载

+/-25V

+/-6V

+/-6V

RS-422和RS-485电路原理基本相同,都是以差动方式发送和接收,不需要数字地线。差动工作是同速率条件下传输距离远的根本原因,这正是二者与RS232的根本区别,因为RS232是单端输入输出,双工工作时至少需要数字地线。

RS-422通过两对双绞线可以全双工工作收发互不影响,而RS485只能半双工工作,收发不能同时进行,但它只需要一对双绞线。RS422和RS485在19kpbs下能传输1200米。

RS-422的电气性能与RS-485完全一样。主要的区别在于:RS-422有4根信号线:两根发送、两根接收;RS-485有两根信号线:发送和接收。

RS-422(EIA RS-422-AStandard)是Apple的Macintosh计算机的串口连接标准。RS-422使用差分信号,RS-232使用非平衡参考地的信号。差分传输使用两根线发送和接收信号,对比RS-232,它能更好的抗噪声和有更远的传输距离。在工业环境中更好的抗噪性和更远的传输距离是一个很大的优点。