RS-232(又称EIA RS-232)是常用的串行通信接口标准之一,由美国电子工业协会(EIA)联合贝尔系统公司、调制解调器厂家及计算机终端生产厂家于1970年共同制定。
它具有信号线少、灵活的波特率选择、采用负逻辑传送和传送距离较远等特点。
接口引脚
通常 RS-232 接口以9个引脚 (DB-9) 或是25个引脚 (DB-25) 的型态出现,一般个人计算机上会有两组 RS-232 接口,分别称为 COM1 和 COM2。
RS232接口按标准使用25针连接器,但绝大多数设备只使用其中9个信号,所以常用9针连接器
1 -CD:(carrier detected)载波检测,当本地调制解调器接受到来自对方的载波信号时,从该引脚向数据终端设备提供有效信号,该引脚也缩写为DCD
2-RXD(received data)
3-TXD(transmitted data)
4-DTR(data terminal ready) 通常数据终端设备一加电,该信号就有效,表明数据终端设备准备就绪
5-GND
6-DSR(data set ready) 通常表示数据通信设备已接通电源连到通信线路上,并处在数据传输方式,而不是处于测试方式或断开状态,DTR和DSR也可用做数据终端设备与数据通信设备间的联络信号,如应答数据接收
7-RTS(request to send) 当数据终端设备准备好发送出数据时,发出有效的RTS信号,用于通知数据通信设备准备接收数据
8-CTS(clear to send) 当数据通信设备准备接收数据时,发出有效的CTS信号来响应RTS信号,用于通知数据终端设备已经准备接收数据
9-RI(ring indicator)当调制解调器接受到对方的拨号信号时,该引脚信号作为电话铃响的指示,保持有效
接口的电子特性
传输电平信号接口的信号电平值较高(信号“1”为“-3V至-15V”,信号“0”为“3至15V”),易损坏接口电路的芯片,又因为与TTL电平(0~“<0.8v”,1~“>2.0V”)不兼容故需使用电平转换电路方能与TTL电路连接。另外接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。
通信距离
RS232传输距离有限,最大传输距离标准值为15米,且只能点对点通讯,最大传输速率最大为20kB/s。
能否支持多点通讯
RS232:RS232接口在总线上只允许连接1个收发器,不能支持多站收发能力,所以只能点对点通信,不支持多点通讯。
流控
流控的概念源于 RS232 这个标准,在 RS232 标准里面包含了串口、流控的定义。RS232 中的“RS”是Recommend Standard 的缩写,即”推荐标准“之意,它并不像 IEEE-1284、IEEE-1394 等标准,是由“委员会定制”。因而,不同的厂商在做 RS232 时,多少会有不同,流控也都会存在差异。
1.为什么需要流控
当两台设备进行串口通信,假如他们对数据的处理速度不同。如果接收端数据缓冲区已满,则此时继续发送来的数据就会丢失。使用流控机制时,当接收端数据处理能力饱和时,就发出“不再接收”的信号,发送端就停止发送,直到接收端处理能力释放,发送“可以继续发送”的信号给发送端时,发送端才继续发送数据。
2.硬件流控
硬件流控一般通过CTS(Clear to Send)和RTS(Request To Send)两个引脚来实现,如下图:
A如果想要发送数据给B的话,A会使得RTS(Request To Send)引脚有效,表明其想要“请求发送”数据给作为接收设备的B,而A接着就会去检测对应的来自B的CTS引脚,直到CTS有效,才会真正开始发送数据。并且,接下来,在发送每个字符之前,都会去检测对应的CTS是否有效,如果有效,才会继续传输对应的数据,如果发现CTS无效,那么就不能发生数据了。
对于上述CTS一直有效的情况下,A就一直发送数据给B,到了最后数据发送完之后,再把RTS设置为无效,表示数据已经发送完了。
这就是整个单个的数据发送流程。
3.软件流控
软件流控是以特殊的字符来代表从机已经不能再接收新的数据了,基本的流程就是从机在接收数据很多的时候或主动给发送端发送一个特殊字符,当发送端接收到这个特殊字符后就不能再发送数据了。
软件流控很容易实现,因此硬件流控使用已经很少了,了解即可,不必深入研究