个人计算机上的class="tags" href="/tags/TongXun.html" title=通讯>通讯接口之一c;由电子工业协会(Electronic Industries Associationc;EIA) 所制定的异步传输标准接口。通常 RS-232 接口以9个引脚 (DB-9) 或是25个引脚 (DB-25) 的型态出现c;一般个人计算机上会有两组 RS-232 接口c;分别称为 COM1 和 COM2。
RS-232-C是美国电子工业协会EIA(Electronic Industry Association)制定的一种串行color: #136ec2;">物理接口标准。RS是color: #136ec2;">英文“推荐标准”的缩写c;232为标识号c;C表示修改次数。color: #136ec2;">RS-232-C总线标准设有25条信号线c;包括一个主通道和一个辅助通道。
在多数情况下主要使用主通道c;对于一般双工通信c;仅需几条信号线就可实现c;如一条发送线、一条接收线及一条地线。
RS-232-C标准规定的color: #136ec2;">数据传输速率为每秒50、75、100、150、300、600、1200、2400、4800、9600、19200color: #136ec2;">波特。
RS-232-C标准规定c;驱动器允许有2500pF的电容负载c;通信距离将受此电容限制c;例如c;采用150pF/m的通信电缆时c;最大通信距离为15m;若每米电缆的电容量减小c;通信距离可以增加。传输距离短的另一原因是RS-232属单端信号传送c;存在共地噪声和不能抑制共模干扰等问题c;因此一般用于20m以内的通信。
在多数情况下主要使用主通道c;对于一般双工通信c;仅需几条信号线就可实现c;如一条发送线、一条接收线及一条地线。
RS-232C 标准规定的数据传输速率为每秒150、300、600、1200、2400、4800、9600、19200波特。
RS-232C 标准规定c;驱动器允许有2500pF的电容负载c;通信距离将受此电容限制c;例如c;采用150pF/m的通信电缆时c;最大通信距离为15m;若每米电缆的电容量减小c;通信距离可以增加。传输距离短的另一原因是RS-232属单端信号传送c;存在共地噪声和不能抑制共模干扰等问题c;因此一般用于20m以内的通信。
color: #136ec2;">串行通信接口标准经过使用和发展c;目前已经有几种。但都是在RS-232标准的基础上经过改进而形成的。所以c;以RS-232C为主来讨论。RS-232C标准是美国EIA(电子工业联合会)与BELL等公司一起开发的1969年公布的通信协议。它适合于数据传输速率在0~20000b/s范围内的通信。这个标准对串行color: #136ec2;">通信接口的有关问题c;如信号线功能、电器特性都作了明确规定。由于通行设备厂color: #136ec2;">商都生产与RS-232C制式兼容的通信设备c;因此c;它作为一种标准c;目前已在微机通信接口中广泛采用。
在讨论RS-232C接口标准的内容之前c;先说明两点:
首先c;RS-232-C标准最初是远程通信连接color: #136ec2;">数据class="tags" href="/tags/ZhongDuan.html" title=终端>终端设备DTE(Data Terminal Equipment)与数据通信设备DCE(Data Communication Equipment)而制定的。因此这个标准的制定c;并未考虑color: #136ec2;">计算机系统的应用要求。但目前它又广泛地被借来用于计算机(更准确的说c;是color: #136ec2;">计算机接口)与class="tags" href="/tags/ZhongDuan.html" title=终端>终端或外设之间的近端连接标准。显然c;这个标准的有些规定及和计算机系统是不一致的c;甚至是相矛盾的。有了对这种背景的了解c;我们对RS-232C标准与计算机不兼容的地方就不难理解了。
其次c;RS-232C标准中所提到的“发送”和“接收”c;都是站在DTE立场上c;而不是站在DCE的立场来color: #136ec2;">定义的。由于在计算机系统中c;往往是CPU和color: #136ec2;">I/O设备之间传送信息c;两者都是DTEc;因此双方都能发送和接收。
EIA-RS-232C 对电器特性、color: #136ec2;">逻辑电平和各种信号线功能都作了规定。
在TxD和RxD上:
逻辑1(MARK)=-3V~-15V
逻辑0(SPACE)=+3~+15V
在RTS、CTS、DSR、DTR和DCD等控制线上:
信号有效(接通c;ON状态c;正电压)=+3V~+15V
信号无效(断开c;OFF状态c;负电压)=-3V~-15V
以上规定说明了RS-323C标准对逻辑电平的定义。对于数据(信息码):逻辑“1”(传号)的电平低于-3Vc;逻辑“0”(空号)的电平高于+3V;对于控制信号;接通状态(ON)即信号有效的电平高于+3Vc;断开状态(OFF)即信号无效的电平低于-3Vc;也就是当传输电平的color: #136ec2;">绝对值大于3V时c;电路可以有效地检查出来c;介于-3~+3V之间的电压无意义c;低于-15V或高于+15V的电压也认为无意义c;因此c;实际工作时c;应保证电平在±(3~15)V之间。
EIA RS-232C 与TTL转换:EIA RS-232C 是用正负电压来表示逻辑状态c;与TTL以高低电平表示逻辑状态的规定不同。因此c;为了能够同计算机接口或class="tags" href="/tags/ZhongDuan.html" title=终端>终端的TTL器件连接c;必须在EIA RS-232C 与TTL电路之间进行电平和逻辑关系的变换。实现这种变换的方法可用分立元件c;也可用集成电路color: #136ec2;">芯片。目前较为广泛地使用集成电路转换器件c;如MC1488、SN75150芯片可完成TTL电平到EIA电平的转换c;而MC1489、SN75154可实现EIA电平到TTL电平的转换。MAX232芯片可完成TTL←→EIA双向电平转换。
连接器:由于RS-232C并未定义连接器的物理特性c;因此c;出现了DB-25、DB-15和DB-9各种类型的连接器c;其引脚的定义也各不相同。下面分别介绍两种连接器。
(1)DB-25: PC和XT机采用DB-25型连接器。DB-25连接器定义了25根信号线c;分为4组:
①异步通信的9个电压信号(含信号地SG)2c;3c;4c;5c;6c;7c;8c;20c;22
②color: #136ec2;">20mA电流环信号 9个(12c;13c;14c;15c;16c;17c;19,23c;24)
③空6个(9c;10c;11c;18c;21c;25)
④保护地(PE)1个c;作为设备接地端(1脚)
注意c;20mA电流环信号仅IBM PC和color: #136ec2;">IBM PC/XT机提供c;至AT机及以后c;已不支持。
(2)DB-9:
在AT机及以后c;不支持20mA电流环接口c;使用DB-9连接器c;作为提供多功能I/O卡或主板上COM1和COM2两个串行接口的连接器。它只提供异步通信的9个信号。DB-25型连接器的引脚分配与DB-25型引脚信号完全不同。因此c;若与配接DB-25型连接器的color: #136ec2;">DCE设备连接c;必须使用专门的电缆线。
电缆长度:在通信速率低于20kb/s时c;RS-232C 所直接连接的最大物理距离为15m(50英尺)。
最大直接传输距离说明:RS-232C标准规定c;若不使用MODEMc;在码元畸变小于4%的情况下c;DTE和DCE之间最大传输距离为15m(50英尺)。可见这个最大的距离是在码元畸变小于4%的前提下给出的。为了保证码元畸变小于4%的要求c;接口标准在电气特性中规定c;驱动器的负载电容应小于2500pF。
RS-232C 的功能特性定义了25芯标准连接器中的20根信号线c;其中2条地线、4条数据线、11条控制线、3条定时信号线c;剩下的5根线作备用或未定义。常用的只有10根c;它们是:
(1)联络控制信号线:
数据发送准备好(Data set ready-DSR)——有效时(ON)状态c;表明MODEM处于可以使用的状态。
color: #136ec2;">数据class="tags" href="/tags/ZhongDuan.html" title=终端>终端准备好(Data class="tags" href="/tags/TERMINAL.html" title=terminal>terminal ready-DTR)——有效时(ON)状态c;表明数据class="tags" href="/tags/ZhongDuan.html" title=终端>终端可以使用。
这两个信号有时连到电源上c;一上电就立即有效。这两个设备状态信号有效c;只表示设备本身可用c;并不说明通信链路可以开始进行通信了c;能否开始进行通信要由下面的控制信号决定。
请求发送(Request to send-RTS)——用来表示DTE请求DCE发送数据c;即当class="tags" href="/tags/ZhongDuan.html" title=终端>终端要发送数据时c;使该信号有效(ON状态)c;向MODEM请求发送。它用来控制MODEM是否要进入发送状态。
允许发送(Clear to send-CTS)——用来表示DCE准备好接收DTE发来的数据c;是对请求发送信号RTS的响应信号。当MODEM已准备好接收class="tags" href="/tags/ZhongDuan.html" title=终端>终端传来的数据c;并向前发送时c;使该信号有效c;通知class="tags" href="/tags/ZhongDuan.html" title=终端>终端开始沿发送数据线TxD发送数据。
这对RTS/CTS请求应答联络信号是用于color: #136ec2;">半双工MODEM系统中发送方式和接收方式之间的切换。在全双工系统中c;因配置双向通道c;故不需要RTS/CTS联络信号c;使其变高。
接收线信号检出(Received Line detection-RLSD)——用来表示DCE已接通通信链路c;告知DTE准备接收数据。当本地的MODEM收到由通信链路另一端(远地)的MODEM送来的载波信号时c;使RLSD信号有效c;通知class="tags" href="/tags/ZhongDuan.html" title=终端>终端准备接收c;并且由MODEM将接收下来的载波信号解调成数字两数据后c;沿接收数据线RxD送到class="tags" href="/tags/ZhongDuan.html" title=终端>终端。此线也叫做数据载波检出(Data Carrier dectection-DCD)线。
振铃指示(Ringing-RI)——当MODEM收到交换台送来的振铃呼叫信号时c;使该信号有效(ON状态)c;通知class="tags" href="/tags/ZhongDuan.html" title=终端>终端c;已被呼叫。
(2)数据发送与接收线:
发送数据(Transmitted data-TxD)——通过TxDclass="tags" href="/tags/ZhongDuan.html" title=终端>终端将串行数据发送到MODEMc;(DTE→DCE)。
接收数据(Received data-RxD)——通过RxD线class="tags" href="/tags/ZhongDuan.html" title=终端>终端接收从MODEM发来的串行数据c;(DCE→DTE)。
(3)地线 : GND、Sig.GND——保护地和信号地c;无方向。
上述控制信号线何时有效c;何时无效的顺序表示了接口信号的传送过程。例如c;只有当DSR和DTR都处于有效(ON)状态时c;才能在DTE和DCE之间进行传送操作。若DTE要发送数据c;则预先将DTR线置成有效(ON)状态c;等CTS线上收到有效(ON)状态的回答后c;才能在TxD线上发送串行数据。这种顺序的规定对半双工的color: #136ec2;">通信线路特别有用c;因为半双工的通信才能确定DCE已由接收方向改为发送方向c;这时线路才能开始发送。
2个数据信号:发送TXD;接收RXD。
1个信号地线:SG。
6个控制信号:
DSR 数传发送准备好c;Data Set Ready。
DTR 数据class="tags" href="/tags/ZhongDuan.html" title=终端>终端准备好c;Data Terminal Ready。
RTS DTE请求DCE发送(Request To Send)。
CTS DCE允许DTE发送(Clear To Send)c;该信号是对RTS信号的回答。
DCD 数据载波检测(Data Carrier Detection)c;当本地DCE设备(Modem)收到对方的DCE设备送来的载波信号时c;使DCD有效c;通知DTE准备接收c; 并且由DCE将接收到的载波信号解调为color: #136ec2;">数字信号c; 经RXD线送给DTE。
RI 振铃信号(Ringing)c;当DCE收到对方的DCE设备送来的振铃呼叫信号时c;使该信号有效c;通知DTE已被呼叫。
由于color: #136ec2;">RS232接口标准出现较早c;难免有不足之处c;主要有以下四点:
(1)接口的信号电平值较高c;易损坏接口电路的芯片c;又因为与TTL电平不兼容故需使用电平转换电路方能与TTL电路连接。
(2)传输速率较低c;在异步传输时c;波特率≤20Kbps。
(3)接口使用一根信号线和一根信号返回线而构成共地的传输形式c;这种共地传输容易产生共模干扰c;所以抗噪声干扰性弱。
(4)传输距离有限c;最大传输距离标准值为50英尺(实际≤15米)。
在工程当中经常会用到232口c;一般是圆头8针与D型9针两种串口。在一定的条件下c;必须要自己制作一个相应的"圆头或者是D型的"232串口。
RS232C串口通信接线方法(三线制)
首先c;串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连c;两个串口相连或一个串口和多个串口相连
同一个串口的接收脚和发送脚直接用线相连对9针串口和25针串口c;均是2与3直接相连;
两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口)
DB9-DB9
2-3,3-2,5-5
DB25-DB25
2-3,3-2,7-7
DB9-DB25
2-3,3-2,5-7
上面是对微机标准串行口而言的c;还有许多非color: #136ec2;">标准设备c;如接收GPS数据或电子罗盘数据c;只要记住一个原则:接收数据针脚(或线)与发送数据针脚(或线)相连c;彼此交叉c;信号地对应相接。
8针圆形串口接线:2"逻辑地"c;4"TXD",7"RXD"。
9针D型串口:2"RXD“c;3”TXD“c;5"逻辑地"。
RS-422有4根信号线:两根发送(Y、Z)、两根接收(A、B)。由于RS-422的收与发
是分开的所以可以同时收和发(全双工)。
RS-485有2根信号线:发送和接收都是A和B。由于RS-485的收与发是共用两根线所
以不能够同时收和发(半双工)。
1 频蔽地线
2 发送数据 TXD
3 接收数据 RXD
4 请求发送RTS
5 允许发送 CTS
6 数据准备好 DSR
7 信号地 SG
8 载波检测 DCD
9 发送返回(+)
10 未定义
11 数据发送(-)
12~17 未定义
18 数据接收(+)
19 未定义
20 数据class="tags" href="/tags/ZhongDuan.html" title=终端>终端准备好 DTR
21 未定义
22 振铃 RI
23~24 未定义
25 接收返回(-)
Pin 1 Protective Ground
Pin 2 Transmit Data
Pin 3 Received Data
Pin 4 Request To Send
Pin 5 Clear To Send
Pin 6 Data Set Ready
Pin 7 Signal Ground
Pin 8 Received Line Signal Detector
(Data Carrier Detect)
Pin 20 Data Terminal Ready
Pin 22 Ring Indicator
异步数据格式通常用诸如"8N1","7E1"等等表示.前者表示8个数据位,没有校验位,1个终止位.后者表示7个数据位,偶校
验位,1个终止位.
什么是全双工和单双工
全双工表示机器可以同时既发送数据又可以接收数据,有两个独立的数据通道(一进一出).
当双工表示机器不能在发送数据的同时又接收数据.通常这意味这仅仅有一个数据通道在使用.这并不意味RS-232的
信号不能使用,而是class="tags" href="/tags/TongXun.html" title=通讯>通讯联接仅能使用不支持全双工操作的其它的标准,而不是RS-232.
流量控制
当在两个串行接口之间传输数据时通常有需要调节数据流量.这可能需要对之间的串行class="tags" href="/tags/TongXun.html" title=通讯>通讯联接,某个串行接口或者某个
存储介质实行一些限制.对于异步数据通常有两种方法.
一是软件流量控制.使用特殊的字符去标志数据流的开始(XON,DC1,八进制的021或结束(XOFF,DC3,八进制的023).这些
字符可以在ASCC中找到定义.然而当传输文本信息时这些字符拥有自身的含义,不能被使用.
另一种是硬件流量控制,用RS232的CTS和RTS信号代替特殊字符用于控制.当接收方准备接收更多的数据时,设置CTS为
Space电压,反之设成Mark电压.对应的,当发送方准备发送更多的数据时,设置RTS为space电压.由于硬件的流量控制使用
独立的一套信号,比软件的实现更快,因为作同样的工作,后者需要发送或接收多位信息.另外,并不是所有的硬件或操作系
统都支持CTS/RTS流量控制.
什么时中断/Break?
一般而言,一个接收或者传输数据的信号直到一个新的字符被传送之前一直保持mark电压.如果信号过了很长时间后才被降
低到space电压,通常时1/4到1/2秒,那么我们称这种状态为break./if the class="tags" href="/tags/SIGNAL.html" title=signal>signal is dropped to the space voltage for
a long period of time,.../
Break有时被用来重置class="tags" href="/tags/TongXun.html" title=通讯>通讯线路或者改变诸如Modem的class="tags" href="/tags/TongXun.html" title=通讯>通讯设备的工作模式.第三章的"如何操作Modem"将更深入地谈论这个
问题.
同步class="tags" href="/tags/TongXun.html" title=通讯>通讯
与异步数据不同的是,同步数据是一种恒定的位流.为了从class="tags" href="/tags/TongXun.html" title=通讯>通讯线上读出数据,机器必须发送或者接收一个普通的位作为时钟
以达到发送端和接收端的同步.
对于同步,机器必须标志数据的起始位置.实现它的最普通的方法时使用类似串行数据链路控制SDLC或者高速数据链路控制
HDLC之类的数据包协议.
每一个协议定义了固定的位顺序以表示数据包的开始和结束,同时也定义了被用来表示没有数据时使用的位顺序.机器根据这些
位顺序可以知道数据包的开始位.
因为同步协议不使用每个字符的同步位,所以它们一般能比异步class="tags" href="/tags/TongXun.html" title=通讯>通讯提高至少25%的性能,适合远程网络和两个以上的串行接口
的配置.
尽管同步协议拥有速度优势,但大多数RS232硬件仍然由于额外的硬件和必要的软件而没有支持它.