串行通信的基础知识- RS-232C / RS-422A / 485

Contents

什么是串行通信?

使用1根或2根收发数据的传输线路,一位接一位地连续收发数据的通信方式。由于能够以少的信号线连接,故具有抑制线材、中转装置的成本等的好处。

Sender registers 110011001 Receiver registers ・・・・11001

串行通信的规格

RS-232C、RS-422A、RS-485是EIA(Electronic Industries Association:美国电子工业协会)的通信规格。其中,在通信规格中,无论何种用途,RS-232C都是普及得最广的,在计算机上也属于标准配置,常被用于连接调制解调器、鼠标。在传感器、调节器中,也有许多配置这些接口且可通过通信控制的产品。

RS-232C

在计算机上标准配置等,应用最广泛的串行通信规格。也叫“EIA-232”。除了规定各信号线的目的、时机外,还规定了连接器(D-SUB 25芯或者D-SUB 9芯)。目前正通过添加信号线等修订规格,正式名称为“ANSI/EIA-232-E”。然而,现在依然一般叫做“RS-232C”。

RS-422A

RS-232C具有传输距离短,传输速度慢等缺点,RS-422A是改良这些缺点形成的规格。也叫“EIA-422A”。虽然规定了各信号线的目的、时机,但没有规定连接器。众多支持EIA-422A的产品主要采用D-SUB 25芯或者D-SUB 9芯。

RS-485

这是改良RS-422A连接数量少的缺点而形成的规格。也叫“EIA-485”。RS-485是相对RS-422A向上兼容的规格。虽然规定了各信号线的目的、时机,但没有规定连接器。众多支持EIA-422A的产品主要采用D-SUB 25芯或者D-SUB 9芯。

参数 RS-232C RS-422A RS-485
传输模式 单向传输 多点
单向传输
多点
多路传输
最大连接数量 1个驱动器
1个接收器
1个驱动器
10个接收器
32个驱动器
32个接收器
最大传输速度 20Kbps 10Mbps 10Mbps
最大线缆长度 15m 1200m 1200m
工作模式 单端 (非平衡型) 差动(平衡型) 差动(平衡型)
连接示意图
特点 短距离
全双工
1:1的连接
长距离
全双工 半双工
1:N的连接
长距离
全双工 半双工
N:N的连接

信号配置与连接器

RS-232C 也规定了使用的连接器、信号配置,实现了标准化。右表说明了D-SUB9芯的信号配置和信号线。

1 (Data Carrier Detect)DCD 2 (Receive Data) RXD 3 (Transmit Data) TXD 4 (Data Terminal Ready) DTR 5 (Signal ground)SG 6 DSR(Data Set Ready) 7 RTS(Request to Send) 8 CTS(Clear to Send) 9 RI (Ring Indicator)

芯号 信号名 说明
1 DCD Data Carrier Detect 载波检测
2 RxD Received Data 接收数据
3 TxD Transmitted Data 发送数据
4 DTR Data Terminal Ready 数据终端就绪
5 SG Signal Ground 信号接地或者公共回线
6 DSR Data Set Ready 数据集就绪
7 RTS Request To Send 发送请求
8 CTS Clear To Send 发送许可
9 RI Ring Indicator 被呼叫指示
CASE FG Frame Ground 保养接地或者地线

连接方法

由于RS-232C颁布了连接器、信号配置的规格,市面上有众多符合规格的线缆出售。但是,装置有以下几种,需要根据连接的装置区别使用直连线缆和交叉(反转)线缆。

装置的种类

DCE

Data Communication Equipment(数据通信装置)。是指调制解调器、打印机、绘图机那样的被动工作的装置。

DTE

Data Terminal Equipment(终端装置)。是指计算机那样的主动工作的装置。

交叉线缆连接⑴

DCE ⇔ DCE (Crossover cable)

交叉线缆连接⑵

DCE ⇔ DCE (Crossover cable)

直连线缆连接

DCE ⇔ DTE (Straight cable)

半双工通信与全双工通信

全双工通信
发送和接收有各自的传输路线,能够同时进行收发的方式。
半双工通信
使用1条传输线路,切换发送和接收进行通信的方式。因此,不能同时通信。

非同步通信与同步通信

由于串行通信使用1根信号线,一位接一位地发送数据,因此接收端要正确接收数据,必须把握发送端以多大的速度一位接一位地发送。RS-232C规定的通信方式有“同步通信”和“非同步(异步)通信”规格。在计测和控制上使用的外围设备一般使用前述全双工通信和非同步通信。

同步通信
与对方装置发送的时钟或者己方发生的时钟同步,收发数据的方式。依据发送端为每位数据附加的同步信号,进行通信。虽然数据传输效率高,但缺点是通信步骤复杂。
非同步通信 异步通信
与彼此与己方发生的时钟同步,收发数据的方式。如果传输速度的设置不一致,就不能正常通信。也就是说,无论发送端还是接收端,都要首先决定一秒传输几位数据,分别产生频率与该通信速度相符的同步信号。 由于非同步通信在1根数据线上一位接一位地收发数据,如果不首先设置彼此的通信条件,就不能正常通行。让计算机(控制器)端结合外围设备端设置是通常的设置方法。
通信速度
指定一秒发送几位。单位为bps(bit Per Second),从300、600、1200、2400、4800、9600、19200等中选择。使设置与时机匹配,这样数据的分隔一致,就能够正常收发数据。为此,为1个数据(1个字节)附加起始位,取得正确的时机。

3 segments: 101 2 segments: 11

结束位长度
设置表示数据终止的位的长度。通常从1位、1.5位、2位中选择。起始位被固定为1位,不用设置。
数据位长度
指定一个数据由几位构成。虽然长度因使用的设备而异,但通常英文字母和数字符号指定7位,1个字节的二进制数据指定8位。
奇偶校验的设置
这是检查数据错误的功能,从“偶校验(EVEN)”、“奇校验(ODD)”、“无奇偶校验(NONE)”中选择。
奇偶校验的详细情况
由发送端为数据附加“1”或者“0”的奇偶校验位,若是EVEN将“1”凑成偶数个发送,若是ODD将“1”凑成奇数个发送。对于采用EVEN的,接收端检查数据位中的“1”的个数是不是偶数;对于采用ODD的,接收端检查数据位中的“1”的个数是不是奇数,以此判断数据是否正常。

10001 Ones are even Send 10101 Comm error (bit inversion) Receive 10101 1 Ones are odd = Failed

握手信号(流量控制)
在设备之间收发数据时,如果接收端不处于接收状态,发送数据可能会丢失,为此,在通信中确认彼此的状态很重要。握手信号(流量控制)是确保通信可靠性的功能,由发送端向接收端发送“数据发送中”的信号,接收端接收该信号,从信号线上读入数据。并向发送端返回“已接收数据”的信号。也就是说,能够一边确认彼此的数据收发状态,一边传输数据。
软件握手信号(XON/XOFF流量控制)
如果接收端的接收缓冲区剩余空间已不多,向发送端发送“XOFF代码”,请求临时中断发送。在剩余空间足够时,发送“XON代码”,向发送端请求继续发送的控制方法。
硬件握手信号
不发送软件流量控制的XON/XOFF代码,而自动地接通/断开控制线路(RTS或者DTR)。需要分别将RTS信号与CTS信号或者DTR信号与DSR信号互相连接起来。

To PageTop