标题：RS-232-C
简介
RS-232-C是EIA发表的，是RS-232-B的修改版。本来是为连接模拟通信线路中的调制解调器等DCE及电传打印机等DTE拉接口而标准化的。现在很多个人计算机也用RS-232-C作为输入输出接口，用RS-232-C作为接口的个人计算机也很普及。
特点
RS-232-C的如下特点：采用直通方式，双向通信，基本频带，电流环方式，串行传输方式，DCE-DTE间使用的信号形态，交接方式，全双工通信。RS-232-C在ITU建议的V.24和V.28规定的25引脚连接器在功能上具有互换性。RS-232-C所使用的连接器为25引脚插入式连接器，一般称为25引脚D-SUB。DTE端的电缆顶端接公插头，DCE端接母插座。RS-232-C所用电缆的形状并不固定，但大多使用带屏蔽的24芯电缆。电缆的最大长度为15m。使用RS-232-C在20K位/秒以下的任何速率都能进行数据传输。
内容
串行通信接口标准经过使用和发展，目前已经有几种。但都是在 RS-232标准的基础上经过改进而形成的。所以，以RS-232C为主来讨论。RS-232C标准是美国EIA（电子工业联合会）与BELL等公司一起开发的1969年公布的通信协议。它适合于数据传输速率在0～20000b/s范围内的通信。这个标准对串行通信接口的有关问题，如信号线功能、电器特性都作了明确规定。由于通信设备厂商都生产与RS-232C制式兼容的通信设备，因此，它作为一种标准，目前已在微机通信接口中广泛采用。
在讨论RS-232C接口标准的内容之前，先说明两点：
首先，RS-232-C标准最初是远程通信连接数据终端设备DTE(Data Terminal Equipment）与数据通信设备DCE（Data Communication Equipment）而制定的。因此这个标准的制定，并未考虑计算机系统的应用要求。但目前它又广泛地被借来用于计算机（更准确的说，是计算机接口）与终端或外设之间的近端连接标准。显然，这个标准的有些规定及和计算机系统是不一致的，甚至是相矛盾的。有了对这种背景的了解，我们对RS-232C标准与计算机不兼容的地方就不难理解了。
其次，RS-232C标准中所提到的“发送”和“接收”，都是站在DTE立场上，而不是站在DCE的立场来定义的。由于在计算机系统中，往往是CPU和I/O设备之间传送信息，两者都是DTE，因此双方都能发送和接收。
详细介绍
综述RS -232C标准（协议）的全称是EIA-RS-232C标准，其中EIA(Electronic Industry Association）代表美国电子工业协会，RS（recommended standard）代表推荐标准，232是标识号，C代表RS232的最新一次修改（1969），在这之前，有RS232B、RS232A。它规定连接电缆和机械、电气特性、信号功能及传送过程。常用物理标准还有有EIA-RS-232-C、EIA-RS-422-A、 EIA-RS-423A、EIA-RS-485。这里只介绍EIA-RS-232-C（简称232，RS232）。例如，目前在IBM PC机上的COM1、COM2接口，就是RS-232C接口。
电气特性EIA-RS-232C对电器特性、逻辑电平和各种信号线功能都作了规定。
在TxD和RxD上：逻辑1(MARK)=-3V～-15V
逻辑0(SPACE)=+3～+15V
在RTS、CTS、DSR、DTR和DCD等控制线上：
信号有效（接通，ON状态，正电压）=+3V～+15V
信号无效（断开，OFF状态，负电压）=-3V～-15V
以上规定说明了RS-323C标准对逻辑电平的定义。对于数据（信息码）：逻辑“1”（传号）的电平低于-3V，逻辑“0”（空号）的电平高于+3V；对于控制信号；接通状态（ON）即信号有效的电平高于+ 3V，断开状态（OFF）即信号无效的电平低于-3V，也就是当传输电平的绝对值大于3V时，电路可以有效地检查出来，介于-3～+3V之间的电压无意义，低于-15V或高于+15V的电压也认为无意义，因此，实际工作时，应保证电平在±（3～15）V之间。
EIA -RS-232C与TTL转换：EIA-RS-232C是用正负电压来表示逻辑状态，与TTL以高低电平表示逻辑状态的规定不同。因此，为了能够同计算机接口或终端的TTL器件连接，必须在EIA-RS-232C与TTL电路之间进行电平和逻辑关系的变换。实现这种变换的方法可用分立元件，也可用集成电路芯片。目前较为广泛地使用集成电路转换器件，如MC1488、SN75150芯片可完成TTL电平到EIA电平的转换，而MC1489、SN75154可实现EIA电平到TTL电平的转换。MAX232芯片可完成TTL←→EIA双向电平转换，图1显示了1488和1489的内部结构和引脚。MC1488 的引脚⑵、（4,5）、（9,10）和（12,13）接TTL输入。引脚3、6、8、11输出端接EIA-RS-232C。MC1498的14的1、 4、10、13脚接EIA输入，而3、6、8、11脚接TTL输出。具体连接方法如图2所示。图中的左边是微机串行接口电路中的主芯片UART，它是 TTL器件，右边是EIA-RS-232C连接器，要求EIA高电压。因此，RS-232C所有的输出、输入信号都要分别经过MC1488和MC1498 转换器，进行电平转换后才能送到连接器上去或从连接器上送进来。
连接器的机械特性连接器：由于RS-232C并未定义连接器的物理特性，因此，出现了DB-25、DB-15和DB-9各种类型的连接器，其引脚的定义也各不相同。下面分别介绍两种连接器。
⑴DB-25：PC和XT机采用DB-25型连接器。DB-25连接器定义了25根信号线，分为4组：
①异步通信的9个电压信号（含信号地SG）2，3，4，5，6，7，8，20，22
②20mA电流环信号 9个（12，13，14，15，16，17，19,23，24）
③空6个（9，10，11，18，21，25）
④保护地（PE）1个，作为设备接地端（1脚）
DB-25型连接器的外形及信号线分配如图3所示。注意，20mA电流环信号仅IBM PC和IBM PC/XT机提供，至AT机及以后，已不支持。⑵DB-9连接器
在AT 机及以后，不支持20mA电流环接口，使用DB-9连接器，作为提供多功能I/O卡或主板上COM1和COM2两个串行接口的连接器。它只提供异步通信的 9个信号。DB-25型连接器的引脚分配与DB-25型引脚信号完全不同。因此，若与配接DB-25型连接器的DCE设备连接，必须使用专门的电缆线。
电缆长度：在通信速率低于20kb/s时，RS-232C所直接连接的最大物理距离为15m（50英尺）。
最大直接传输距离说明：RS -232C标准规定，若不使用MODEM，在码元畸变小于4%的情况下，DTE和DCE之间最大传输距离为15m（50英尺）。可见这个最大的距离是在码元畸变小于4%的前提下给出的。为了保证码元畸变小于4%的要求，接口标准在电气特性中规定，驱动器的负载电容应小于2500pF。
RS-232C的接口信号RS-232C规标准接口有25条线，4条数据线、11条控制线、3条定时线、7条备用和未定义线，常用的只有9根，它们是：
⑴联络控制信号线：
数据装置准备好（Data set ready-DSR）——有效时（ON）状态，表明MODEM处于可以使用的状态。
数据终端准备好（Data Terminal Ready-DTR）——有效时（ON）状态，表明数据终端可以使用。
这两个信号有时连到电源上，一上电就立即有效。这两个设备状态信号有效，只表示设备本身可用，并不说明通信链路可以开始进行通信了，能否开始进行通信要由下面的控制信号决定。
请求发送（Request to send-RTS）——用来表示DTE请求DCE发送数据，即当终端要发送数据时，使该信号有效（ON状态），向MODEM请求发送。它用来控制MODEM是否要进入发送状态。
允许发送（Clear to send-CTS）——用来表示DCE准备好接收DTE发来的数据，是对请求发送信号RTS的响应信号。当MODEM已准备好接收终端传来的数据，并向前发送时，使该信号有效，通知终端开始沿发送数据线TxD发送数据。
这对RTS/CTS请求应答联络信号是用于半双工MODEM系统中发送方式和接收方式之间的切换。在全双工系统中作发送方式和接收方式之间的切换。在全双工系统中，因配置双向通道，故不需要RTS/CTS联络信号，使其变高。
接收线信号检出（Received Line detection-RLSD）——用来表示DCE已接通通信链路，告知DTE准备接收数据。当本地的MODEM收到由通信链路另一端（远地）的 MODEM送来的载波信号时，使RLSD信号有效，通知终端准备接收，并且由MODEM将接收下来的载波信号解调成数字两数据后，沿接收数据线RxD送到终端。此线也叫做数据载波检出（Data Carrier dectection-DCD）线。
振铃指示（Ringing-RI）——当MODEM收到交换台送来的振铃呼叫信号时，使该信号有效（ON状态），通知终端，已被呼叫。
⑵数据发送与接收线：
发送数据（Transmitted data-TxD）——通过TxD终端将串行数据发送到MODEM，（DTE→DCE）。
接收数据（Received data-RxD）——通过RxD线终端接收从MODEM发来的串行数据，（DCE→DTE）。
⑶地线
有两根线SG、PG——信号地和保护地信号线，无方向。
上述控制信号线何时有效，何时无效的顺序表示了接口信号的传送过程。例如，只有当DSR和DTR都处于有效（ON）状态时，才能在DTE和DCE之间进行传送操作。若DTE要发送数据，则预先将DTR线置成有效（ON）状态，等CTS线上收到有效（ON）状态的回答后，才能在TxD线上发送串行数据。这种顺序的规定对半双工的通信线路特别有用，因为半双工的通信才能确定DCE已由接收方向改为发送方向，这时线路才能开始发送。
2个数据信号：发送TXD；接收RXD。
1个信号地线：SG。
6个控制信号：
DSR??数传机（即modem）准备好，Data Set Ready.
DTR??数据终端（DTE，即微机接口电路，如Intel8250/8251,16550）准备好，Data Terminal Ready。
RTS??DTE请求DCE发送（Request To Send）。
CTS??DCE允许DTE发送（Clear To Send），该信号是对RTS信号的回答。
DCD??数据载波检出，Data Carrier Detection当本地DCE设备（Modem）收到对方的DCE设备送来的载波信号时，使DCD有效，通知DTE准备接收， 并且由DCE将接收到的载波信号解调为数字信号， 经RXD线送给DTE。
RI??振铃信号 Ringing当DCE收到交换机送来的振铃呼叫信号时，使该信号有效，通知DTE已被呼叫。
一、远距离通信
第1和第2中情况是属于远距离通信（传输距离大于15m的通信）的例子，故一般要加调制解调器MODEM，因此使用的信号线较多。注意：在以下各图中，DTE信号为RS-232-C信号，DTE与计算机间的电平转换电路未画出。
1、采用Modem(DCE）和电话网通信时的信号连接：
若在双方MODEM之间采用普通电话交换线进行通信，除了需要2～8号信号线外还要增加RI（22号）和DTR（20号）两个信号线进行联络.
DSR、DTR：数传机（DCE）准备好、数据终端（DTE）准备好，只表示设备本身可用。
首先，通过电话机拔号呼叫对方，电话交换台向对方发出拔号呼叫信号，当对方DCE收到该信号后，使RI（振铃信号）有效，通知DTE，已被呼叫。当对方“摘机”后，两方建立了通信链路。
若计算机要发送数据至对方，首先通过接口电路（DTE）发出RTS（请求发送）信号。此时，若DCE（Modem）允许传送，则向DTE回答CTS（允许发送）信号。一般可直接将RTS/CTS接高电平，即只要通信链路已建立，就可传送信号。（RTS/CTS可只用于半双工系统中作发送方式和接收方式的切换。
当DTE获得CTS信号后，通过TXD线向DCE发出串行信号，DCE（Modem）将这些数字信号调制成模拟信号（又称载波信号），传向对方。
计算机向DTE“数据输出寄存器”传送新的数据前，应检查Modem状态和数据输出寄存器为空。当对方的DCE收到载波信号后，向对方的DTE发出DCD信号（数据载波检出），通知其DTE准备接收，同时，将载波信号解调为数据信号，从RXD线上送给DTE，DTE通过串行接收移位寄存器对接收到的位流进行移位，当收到1个字符的全部位流后，把该字符的数据位送到数据输入寄存器，CPU可以从数据输入寄存器读取字符。
2、采用专用电话线通信：在通信双方的MODEM之间采用电话线进行通信，则只要使用2～8号信号线进行联络与控制。不需要电话机、振铃信号RI和DTR信号.
二、近距离通信：
当通信距离较近时，可不需要Modem，通信双方可以直接连接，这种情况下，只需使用少数几根信号线。最简单的情况，在通信中根本不需要RS-232C的控制联络信号，只需三根线（发送线、接收线、信号地线）便可实现全双工异步串行通信，即是这里要讨论的第一种情况。
无Modem时，最大通信距离按如下方式计算：
RS-232C标准规定：当误码率小于4%时，要求导线的电容值应小于2500PF。对于普通导线，其电容值约为170PF/M。则允许距离L=2500PF/（170PF/M）=15M
这一距离的计算，是偏于保守的，实际应用中，当使用9600bps，普通双绞屏蔽线时，距离可达30~35米。
1、零Modem 的最简连线（3线制）
图3是零MODEM方式的最简单连接（即三线连接），图中的2号线与3号线交叉连接是因为在直连方式时，把通信双方都当作数据终端设备看待，双方都可发也可收。在这种方式下，通信双方的任何一方，只要请求发送RTS有效和数据终端准备好DTR有效就能开始发送和接收。
⑴RTS与CTS互联：只要请求发送，立即得到允许
⑵DTR与DSR互联：只要本端准备好，认为本端立即可以接收（DSR、数传机准备好）。
2、零Modem标准连接：
如果想在直接连接时，而又考虑到RS-232C的联络控制信号，则采用零MODEM方式的标准连接方法，其通信双方信号线安排如下1-2-3-4-5顺序所演示的那样。
无Modem的标准联线（7线制）如图所示：
从中可以看出，RS-232C接口标准定义的所有信号线都用到了，并且是按照DTE和DCE之间信息交换协议的要求进行连接的，只不过是把DTE自己发出的信号线送过来，当作对方DCE发来的信号，因此，又把这种连接称为双叉环回接口。
双方的握手信号关系如下（注：甲方乙方并未在图中标出）：
⑴当甲方的DTE准备好，发出DTR信号，该信号直接联至乙方的RI（振铃信号）和DSR（数传机准备好）。即只要甲方准备好，乙方立即产生呼叫（RI）有效，并同时准备好（DSR）。尽管此时乙方并不存在DCE（数传机）。
⑵甲方的RTS和CTS相连，并与乙方的DCD互连。即：一旦甲方请求发送（RTS），便立即得到允许（CTS），同时，使乙方的DCD有效，即检测到载波信号。
⑶甲方的TXD与乙方的RXD相连，一发一收。
RS-232-C标准主要是DTE和DCE之间的连接定义，内容包括接口的电气特性、机械特性等。RS-232-C的插头分为DCE端和DTE端。传统的RS-232-C接口标准有22根线，采用标准25芯D型插头座。后来的PC上使用简化了的9芯D型插座，在单片机应用中25芯插头座已很少采用。这两种类型中，25芯定义与9芯相关的RS-232-C串行标准接口信号定义见表1。虽然表1中9芯D型插头座没有定义保护地，但金属外壳设备的保护地不应没有，这里显然可以借用1或9。遇到接RS-232电缆的情况时，最用万用表量一下。用握手线了。数据的发送流程是这样的：在发送数据之前，发送端要给出请求发送信号CTS。接着接收端发出数据终端准备好信号DTR，发送端的DSR接收到对方的DTR以后，开始在TXD上送出数据。和调制解调器相连，通过电话线传输数据时，必须使用握手线，RS-232-C信号定义中的数据载波检测（DCD）、振铃指示等就是用于这一目的的。
表1 RS-232接口信号定义
简写符DTE
25芯（公）DCE
25芯（母）DTE
9芯（公） DCE
9芯（母）信号方向 信号功能解释 PG11 ---保护地TXD2332DTE->DCE发送数据 Transmit DataRXD3223DTE<-DCE接收数据 Receive DataRTS4578DTE->DCE请求发送 Require to SendCTS5487DTE<-DCE清除请求 Clear to SendDSR62064DTE<-DCE数据装置就绪 Data Set ReadyGND7755GND信号地 GroundDCD8811In接收线信号检测 Data Carry DetectedDTR20646DTE->DCE数据终端准备好 Data Terminal ReadyRI222299In振铃指示
串行通信协议RS-232标准⑵
表2 RS-232电气特性
驱动器输出电平（3kΩ~7kΩ）逻辑1：-5V~-15V
逻辑0：+5V~+15V不带负载时的驱动器输出电平-25V~+25V驱动器时的输出阻抗>300Ω输出短路电流<0.5A驱动器转换速率<30V/μs接收器输入阻抗3kΩ~7kΩ接收器输入电压的允许范围-25V~+25V输入开路时接收器的输出逻辑1输入经300Ω接地时接收器的输出逻辑1+3V输入时接收器的输出逻辑0-3V输入时接收器的输出逻辑1最大负载电容2500pF