RS232是什么?


Published on November 22, 2014 by doobom

rs232 what-is-it

0 min READ

RS-232是美国电子工业联盟(EIA)制定的串行数据通信的接口标准,原始编号全称是EIA-RS-232(简称232,RS232)。它被广泛用于计算机串行接口外设连接。

RS-232C标准,其中EIA(Electronic Industry Association)代表美国电子工业联盟,RS(Recommended standard)代表推荐标准,232是标识号,C代表RS232的第三次修改(1969年),在这之前,还有RS232B、RS232A。

目前的最新版本是由美国电信工业协会(TIA, Telecommunications Industry Association,由 EIA 所分出的一个组织)所发布的 TIA-232-F,它同时也是美国国家标准 ANSI/TIA-232-F-1997 (R2002),此标准于 2002 年受到再确认。 在 1997 年由 TIA/EIA 发布当时的编号则是 TIA/EIA-232-F 与 ANSI/TIA/EIA-232-F-1997。 在此之前的版本是 TIA/EIA-232-E。

它规定连接电缆和机械、电气特性、信号功能及传送过程。其他常用电气标准还有EIA-RS-422-A、EIA-RS-423A、EIA-RS-485。 目前在IBM PC机上的COM1、COM2接口,就是RS-232C接口。RS-232对电气特性、逻辑电平和各种信号线功能都作了规定。

由于 RS-232-C 的重大影响,即使自 IBM PC/AT 开始改用 9 针连接器起,目前已几乎不再使用 RS-232 中规定的 25 针连接器,但大多数人仍然普遍使用 RS-232C 来代表此一接口。

RS-232是现在主流的串行通信接口之一。 由于RS232接口标准出现较早,难免有不足之处,主要有以下四点: (1)接口的信号电平值较高,易损坏接口电路的芯片。RS232接口任何一条信号线的电压均为负逻辑关系。即:逻辑“1”为-3— -15V;逻辑“0”:+3— +15V ,噪声容限为2V。即要求接收器能识别高于+3V的信号作为逻辑“0”,低于-3V的信号作为逻辑“1”,TTL电平为5V为逻辑正,0为逻辑负 。与TTL电平不兼容故需使用电平转换电路方能与TTL电路连接。 (2)传输速率较低,在异步传输时,波特率为20Kbps;因此在51CPLD开发板中,综合程序波特率只能采用19200,也是这个原因。 (3)接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。 (4)传输距离有限,最大传输距离标准值为50英尺,实际上也只能用在15米左右。

接口定义

RS232 针脚定义

RS232 针脚定义(图片来自网络)

1 DCD 载波检测

2 RXD 接收数据

3 TXD 发送数据

4 DTR 数据终端准备好

5 SGND 信号地线

6 DSR 数据准备好

7 RTS 请求发送

8 CTS 清除发送

9 RI 振铃提示

在RS-232标准中,字符是以一串行的比特串来一个接一个的串行(serial)方式传输,优点是传输线少,配线简单,传送距离可以较远。最常用的编码格式是异步起停(asynchronous start-stop)格式,它使用一个起始比特后面紧跟7或8 个数据比特(bit),然后是可选的奇偶校验比特,最后是一或两个停止比特。所以发送一个字符至少需要10比特,带来的一个好的效果是使全部的传输速率,发送信号的速率以10划分。一个最平常的代替异步起停方式的是使用高级数据链路控制协议(HDLC)。

在RS-232标准中定义了逻辑1和逻辑0电压级数,以及标准的传输速率和连接器类型。信号大小在正的和负的3-15v之间。RS-232规定接近0的电平是无效的,逻辑1规定为负电平,有效负电平的信号状态称为传号marking,它的功能意义为OFF,逻辑0规定为正电平,有效正电平的信号状态称为空号spacing,它的功能意义为ON。根据设备供电电源的不同,±5、±10、±12和±15这样的电平都是可能的。

mark和space是从电传打字机中来的术语。电传打字机原始的通信是一个简单的中断直流电路模式,类似与圆转盘电话拨号的中的信号。Marking状态是指电路是断开的,spacing状态就是指电路是接通的。一个space就表明有一个字符要开始发送了,相应的停止的时候,停止位就是marking。当线路中断的时候,电传打字机不打印任何有效字符,周期性的连续收到全0信号

串行通信在软件设置里需要做多项设置,最常见的设置包括波特率(Baud Rate)、奇偶校验(Parity Check)和停止位(Stop Bit)。

波特率(又称鲍率):是指从一设备发到另一设备的波特率,即每秒钟多少比特bits per second (bit/s)。典型的波特率是300, 1200, 2400, 9600, 15200, 19200等bit/s。一般通信两端设备都要设为相同的波特率,但有些设备也可以设置为自动检测波特率。

奇偶校验(Parity:是用来验证数据的正确性。奇偶校验一般不使用,如果使用,那么既可以做奇校验(Odd Parity)也可以做偶校验(Even Parity)。奇偶校验是通过修改每一发送字节(也可以限制发送的字节)来工作的。如果不作奇偶校验,那么数据是不会被改变的。在偶校验中,因为奇偶校验位会被相应的置1或0(一般是最高位或最低位),所以数据会被改变以使得所有传送的数位(含字符的各数位和校验位)中“1”的个数为偶数;在奇校验中,所有传送的数位(含字符的各数位和校验位)中“1”的个数为奇数。奇偶校验可以用于接受方检查传输是否发送生错误——如果某一字节中“1”的个数发生了错误,那么这个字节在传输中一定有错误发生。如果奇偶校验是正确的,那么要么没有发生错误要么发生了偶数个的错误。如果用户选择数据长度为8位,则因为没有多余的比特可被用来作为同比特,因此就叫做“无位元(Non Parity)”。

停止位:是在每个字节传输之后发送的,它用来帮助接受信号方硬件重同步。

RS-232在传送数据时,并不需要另外使用一条传输线来传送同步信号,就能正确的将数据顺利传送到对方,因此叫做“异步传输”,简称UART(Universal Asynchronous Receiver Transmitter),不过必须在每一笔数据的前后都加上同步信号,把同步信号与数据混和之后,使用同一条传输线来传输。比如数据11001010被传输时,数据的前后就需加入Start(Low)以及Stop(High)等两个比特,值得注意的是,Start信号固定为一个比特,但Stop停止比特则可以是1、1.5或者是2比特,由使用RS-232的传送与接收两方面自行选择,但需注意传送与接受两者的选择必须一致。 在串行通信软件设置中D/P/S是常规的符号表示。8/N/1(非常普遍)表明8bit数据,没有奇偶校验,1bit停止位。数据位可以设置为7、8或者9,奇偶校验位可以设置为无(N)、奇(O)或者偶(E),奇偶校验可以使用数据中的比特(bit),所以8/E/1就表示一共8位数据位,其中一位用来做奇偶校验位。停止位可以是1、1.5或者2位的(1.5是用在波特率为60wpm的电传打字机上的)。

流量控制:当需要发送握手信号或数据完整性检测时需要制定其他设置。公用的组合有RTS/CTS, DTR/DSR或者XON/XOFF(实际中不使用连接器管脚而在数据流内插入特殊字符)。

接受方把XON/XOFF信号发给发送方来控制发送方何时发送数据,这些信号是与发送数据的传输方向相反的。XON信号告诉发送方接受方准备好接受更多的数据,XOFF信号告诉发送方停止发送数据直到知道接受方再次准备好。XON/XOFF一般不赞成使用,推荐用RTS/CTS控制流来代替它们。 XON/XOFF是一种工作在终端间的带内方法,但是必须两端都支持这个协议,而且在突然启动的时候会有混淆的可能。 XON/XOFF可以工作于3线的接口。RTS/CTS最初是设计为电传打字机和调制解调器半双工协作通信的,每次它只能一方调制解调器发送数据。终端必须发送请求发送信号然后等到调制解调器回应清除发送信号。尽管RTS/CTS是通过硬件达到握手,但它有自己的优势。

本文摘自:百度百科

想了解更详细的内容,可以参考:百度百科维基百科