1、RS232的历史
RS232是美国电子工业协会(Electronic Industries Association ,EIA)于1962年颁布的通信标准,其全称是:DTE和DCE的电气/机械接口标准。“DTE”是英文“Data Terminal Equipment ”的缩写,翻译为“数据终端设备”,比如计算机;“DCE”是英文“Data Circuit-terminating Equipment”的缩写,翻译为“数据电路端接设备”。也有将其写作“Data Communication Equipment”,翻译为“数据通信设备”,比如调制解调器。“RS232”名称中的“RS”是“Recommand Standard”的缩写,表示“推荐标准”。“232”是标识号。早期的RS232是为了实现计算机、程控电话、调制解调器之间通信而制定的标准,后来经过多次改版,成了一种通用的串行通信标准。
RS232的改版信息如下:
◆1969年C版本(RS232-C);
◆1986年D版本(RS232-D);
◆1991年E版本(RS232-E);
◆1997年F版本(RS232-F);
目前,在工业自动化领域,RS232多用于触摸屏、读卡器、扫码枪、打印机等设备与PLC之间的通信。
2、RS232的接口
在F版本之前,RS232使用25针串行接口,分为公头(Male)和母头(Female)两种,公头用于DTE设备,母头用于DCE设备,如下图所示:

实物如下图所示:

图片针脚定义见下面的表格:


25针串口针脚太多,用起来比较繁琐。为了简化RS232串口,在F版本中定义了9针串口,同样包括公头(用于DTE)和母头(用于DCE)两种,如下图所示:

针脚定义见下面的表格:

PLC被视为DTE设备,其RS232串口为公头。比如S7-1200的串口模块CM1241 RS232其串口为公头,如下图所示:

对于DTE和DTC的通信,可以使用直连的方式,如下图所示:

对于两个DTE(比如PLC和扫码枪)之间的通信,应采用交叉连接的方式。可以将所有引脚相互连接,如下图所示:

可以采用最小连接的方式,仅使用三根线,将双方的TxD和RxD互连,GND互连,如下图所示:

这种DTE直接连接,不经过DCE的连接也称为“ null modem”连接,这类电缆称为“null modem”电缆或交叉电缆。
3、RS232的电气信号
RS232接收-发送端的电信号是相对于公共地线(GND)的电压信号。当电压差值在+3V~+15V之间表示逻辑“0”,当电压差值在-3V~-15V之间表示逻辑“1”,电压差值在-3V~+3V之间没有定义。3V是最小的可检测电压信号,实际使用时期望电压差的绝对值在5V~15V之间,即:发送数据时,发送端驱动器输出正电压信号+5V~+15V,表示逻辑“0”;负电压信号-5V~-15V表示逻辑1。接收数据时,只要是检测到大于3V的电信号,即将其视为有效信号。
4、RS232的电平转换芯片
单片机的引脚输出的是TTL电平,需要使用专用的转换芯片(TI公司的MAX3232或者ST公司的ST3232等)将其转换为RS232电平。
5、RS232的数据传输
数据传输涉及的第一个概念是波特率。我们知道串行通信的传输是一位接着一位的,其传输单位为:位(bit)。因此,波特率的定义就是在单位时间内传输的位的个数。国际公用的单位时间为秒(s),因此波特率的单位为:bit/s(b/s),也写作bps(bit per second)。
波特率有一定的选择范围(并非任意值),常见的波特率有:9600,38400,56000,115200等。还有很多其它的值,通信双方约定好相同的波特率即可。
RS232是一种点对点的通信,其数据帧由起始位、数据位、校验位、停止位四部分组成。
◆起始位:长度1,数据值等于逻辑0,表示开始发送数据;
◆数据位:长度8或7,表示实际发送的数据;
◆校验位:长度0(无校验)或1(奇校验或偶校验);
◆停止位:长度1、1.5或者2,数据值等于逻辑1,表示数据帧发送结束;
假设某RS232通信设置数据位=7,奇校验,停止位=2,则帧和逻辑值如下图所示:

接下来昌晖仪表做一个计算。
假设某RS232通信设置波特率=9600,数据位=8,无校验(=0),停止位=1。请问该通信参数下,每秒钟可传输多少个字节的数据?
答:根据参数可知,该通信的帧长度=1+8+1=10 位(bit),在该帧中传输了一个字节(8位)。因此对于9600的波特率,每秒钟最多可传输实际数据=9600/10=960字节。