博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RS232解读
阅读量:5107 次
发布时间:2019-06-13

本文共 5434 字,大约阅读时间需要 18 分钟。

RS-232是个人计算机上的通讯接口之一,由电子工业协会(Electronic Industries Association,EIA) 所制定的异步传输标准接口。通常 RS-232 接口以9个接脚 (DB-9) 或是25个接脚 (DB-25) 的型态出现,一般个人计算机上会有两组 RS-232 接口,分别称为 COM1 和 COM2。

  RS-232-C 

  RS-232-C是美国电子工业协会EIA(Electronic Industry Association)制定的一种串行物理接口标准。RS是英文“推荐标准”的缩写,232为标识号,C表示修改次数。RS-232-C总线标准设有25条信号线,包括一个主通道和一个辅助通道。在多数情况下主要使用主通道,对于一般双工通信,仅需几条信号线就可实现,如一条发送线、一条接收线及一条地线。 

  RS-232-C标准规定的数据传输速率为每秒50、75、100、150、300、600、1200、2400、4800、9600、19200波特。 

  RS-232-C标准规定,驱动器允许有2500pF的电容负载,通信距离将受此电容限制,例如,采用150pF/m的通信电缆时,最大通信距离为15m;若每米电缆的电容量减小,通信距离可以增加。传输距离短的另一原因是RS-232属单端信号传送,存在共地噪声和不能抑制共模干扰等问题,因此一般用于20m以内的通信。 

  串行通信接口标准经过使用和发展,目前已经有几种。但都是在RS-232标准的基础上经过改进而形成的。所以,以RS-232C为主来讨论。RS-323C标准是美国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-232-C 

  RS-232C标准(协议)的全称是EIA-RS-232C标准,其中EIA(Electronic Industry Association)代表美国电子工业协会,RS(recommeded standard)代表推荐标准,232是标识号,C代表RS232的最新一次修改(1969),在这之前,有RS232B、RS232A。。它规定连接电缆和机械、电气特性、信号功能及传送过程。常用物理标准还有有RS-232-C、RS-422-A、RS-423A、RS-485。 这里只介绍RS-232-C(简称232,RS232)。 例如,目前在IBM PC机上的COM1、COM2接口,就是RS-232C接口。 

  1.电气特性 
  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双向电平转换。 

  2、连接器的机械特性: 

  连接器:由于RS-232C并未定义连接器的物理特性,因此,出现了DB-25、DB-15和DB-9各种类型的连接器,其引脚的定义也各不相同。下面分别介绍两种连接器。 

  (1)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机及以后,已不支持。 

  (2)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。 

  3、RS-232C的接口信号 

  RS-232C规标准接口有25条线,4条数据线、11条控制线、3条定时线、7条备用和未定义线,常用的只有9根,它们是 

  (1)联络控制信号线: 

  数据装置准备好(Data set ready-DSR)——有效时(ON)状态,表明MODEM处于可以使用的状态。 

  数据终端准备好(Data set ready-DTR)——有效时(ON)状态,表明数据终端可以使用。 

  这两个信号有时连到电源上,一上电就立即有效。这两个设备状态信号有效,只表示设备本身可用,并不说明通信链路可以开始进行通信了,能否开始进行通信要由下面的控制信号决定。 在PC的串口中,这两个信号可以通过程序单独控制ON/OFF,有时想用RS232做其他的事情,可以尝试一下。

  请求发送(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状态),通知终端,已被呼叫。 

  (2)数据发送与接收线: 

  发送数据(Transmitted data-TxD)——通过TxD终端将串行数据发送到MODEM,(DTE→DCE)。 

  接收数据(Received data-RxD)——通过RxD线终端接收从MODEM发来的串行数据,(DCE→DTE)。 

  (3)地线 

  有两根线SG、PG——信号地和保护地信号线,无方向。 

  上述控制信号线何时有效,何时无效的顺序表示了接口信号的传送过程。例如,只有当DSR和DTR都处于有效(ON)状态时,才能在DTE和DCE之间进行传送操作。若DTE要发送数据,则预先将DTR线置成有效(ON)状态,等CTS线上收到有效(ON)状态的回答后,才能在TxD线上发送串行数据。这种顺序的规定对半双工的通信线路特别有用,因为半双工的通信才能确定DCE已由接收方向改为发送方向,这时线路才能开始发送。 

  2个数据信号:发送TXD;接收RXD。 

  1个信号地线:SG。 

  6个控制信号: 

  数传机(即modem)准备好,Data Set Ready.

        数据终端(DTE,即微机接口电路,如Intel8250/8251,16550)准备好,Data Terminal Ready。

  DTE请求DCE发送(Request To Send)。

  DCE允许DTE发送(Clear To Send),该信号是对RTS信号的回答。

  DCD数据载波检出,Data Carrier Detection当本地DCE设备(Modem)收到对方的DCE设备送来的载波信号时,使DCD有效,通知DTE准备接收, 并且由DCE将接收到的载波信号解调为数字信号, 经RXD线送给DTE。

  振铃信号 Ringing当DCE收到交换机送来的振铃呼叫信号时,使该信号有效,通知DTE已被呼叫。

 

总结:RS-232数据接发方式为全双工,不过传输距离较短,一般为15m,不能应用于数据传输距离较长的系统中。

RS232缺点:由于RS-232-C接口标准出现较早,难免有不足之处,主要有以下四点: 

(1) 接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL 电平不兼容故需使用电平转换电路方能与TTL电路连接。 
(2) 传输速率较低,在异步传输时,波特率为20Kbps。 
(3) 接口使用一根信号线和一根信号返回线而构成共地的传输形式, 这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。 
(4) 传输距离有限,最大传输距离标准值为50英尺,实际上也只能用在50米左右。

 

附 DB-9功能说明

针脚
信号
定义
作用
1
DCD
载波检测
Received Line Signal Detector(Data Carrier Detect)
2
RXD
接收数据(基本通信功能信号)
Received Data
3
TXD
发送数据(基本通信功能信号)
Transmit Data
4
DTR
数据终端准备好(PC端可以由程序单独控制电平)
Data Terminal Ready
5
SGND
信号地(基本通信功能信号)
Signal Ground
6
DSR
数据准备好(端口打开时自动切换电平,实测10V)
Data Set Ready
7
RTS
请求发送(PC端可以由程序单独控制电平)
Request To Send
8
CTS
清除发送
Clear To Send
9
RI
振铃提示
Ring Indicator

                注:两个串口连接时,接收数据针脚与发送数据针脚相连,彼此交叉,信号地对应相接即可。

 

转载于:https://www.cnblogs.com/dhaichen/p/4830865.html

你可能感兴趣的文章
使用word发布博客
查看>>
面向对象的小demo
查看>>
微服务之初了解(一)
查看>>
GDOI DAY1游记
查看>>
收集WebDriver的执行命令和参数信息
查看>>
数据结构与算法(三)-线性表之静态链表
查看>>
mac下的mysql报错:ERROR 1045(28000)和ERROR 2002 (HY000)的解决办法
查看>>
MyBaits动态sql语句
查看>>
HDU4405(期望DP)
查看>>
拉格朗日乘子法 那些年学过的高数
查看>>
vs code 的便捷使用
查看>>
Spring MVC @ResponseBody返回中文字符串乱码问题
查看>>
用户空间与内核空间,进程上下文与中断上下文[总结]
查看>>
JS 中的跨域请求
查看>>
JAVA开发环境搭建
查看>>
mysql基础语句
查看>>
Oracle中的rownum不能使用大于>的问题
查看>>
cassandra vs mongo (1)存储引擎
查看>>
Visual Studio基于CMake配置opencv1.0.0、opencv2.2
查看>>
遍历Map对象
查看>>