RS-232 接口,RS-232 接口是什么意思_第1页
RS-232 接口,RS-232 接口是什么意思_第2页
RS-232 接口,RS-232 接口是什么意思_第3页
RS-232 接口,RS-232 接口是什么意思_第4页
RS-232 接口,RS-232 接口是什么意思_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

WordRS-232接口,RS-232接口是什么意思

(RS)-232(接口),RS-232接口是什么意思

(电缆)长度限制

RS-232的最初标准建议将电缆长度限制在50ft以内,对于≤20000b/s的数据传输速度,可以使用任何类型的电缆。后来的标准是在接收器规定了一个最大的(电容)2500pF。这个数值包括了接收器的电容、电缆中(连接器)之间的动态电容以及导线与电缆屏蔽之间,或者在非屏蔽电缆中,导线和地线之间的电容。电容限制了回转速度,或者在输出切换的时候的电压变化速度。一个较高的电容导致一个较低的回转速度和较慢的跃迁。一个较高的电容还意味着一个电压变化需要更大的(电流)来对电容充电,因此驱动器总的电能消耗要更大一些。在导线之间的电容还能导致干扰。如果想要使用一个超出了电容限制的连接,可能仍旧能够进行通信,但是以更低的波特率。利用短电缆及相应的更小的电容,如果发送和接收端硬件都支持更高的速度,则可以比20000b/s更快的速度进行通信。

5.1)非屏蔽电缆

对于非屏蔽电缆,计算非屏蔽电缆的电缆长度的公式如下:

??电缆长度=(2500—接收器输入电容)/(电缆电容×1.5)?

?

电缆长度的单位是ft,输入电容的单位是pF,电缆电容的单位是pF/ft。

带状电缆的典型电容是15pF/ft,假定接收器的输人电容是100pF,电缆最长可以达到106ft((2500—100)/(15×1.5))。一个单根非屏蔽双绞线的典型电容是12pF/ft。仍然假定输入电容为100pF,则最大电缆长度为133ft。

5.2)屏蔽电缆

为电缆增加屏蔽缩短了最大长度,但是屏蔽有时对于阻止噪声混入电缆或者从电缆中“溢出”是需要的。对于屏蔽的双绞线,建议将导线到导线电容乘以3以便把导线到屏蔽的电容考虑在内。

?

因此计算屏蔽导线的电缆长度的公式如下:

?

电缆长度=(2500—接受器输入电容)/(电缆电容×3)

?

电缆长度的单位为ft,输入电容的单位是pF,电缆电容的单位是pF/ft。

这就将屏蔽双绞线电缆的最大长度削减到66ft。

5.3)双绞线

为了减少干扰,可以对RS-232使用双绞线电缆和多个接地线。每一根(信号线)应和一个接地线绞在一起。

5.4)电缆测试结果

RS-232-C标准规定,在码元畸变小于4%的情况下,传输电缆长度应为50英尺(约15米),其实这个4%的码元畸变是很保守的,在实际应用中往往按码元畸变10-20%的范围工作的,所以最大距离会远超过15米。

美国DEC(公司)曾在允许码元畸变为10%得出下面实验结果。其中1号电缆为屏蔽电缆,型号为DECP.NO.9107723,内有三对双绞线,每对由22#AWG组成,其外覆以屏蔽网。2号电缆为不带屏蔽的电缆。型号为DECP.NO.9105856-04是22#AWG的四芯电缆。DEC公司的实验结果

波特率bps

1号电缆传输距离(米)

2号电缆传输距离(米)

110

1500

900

300

1500

900

1200

900

900

2400

300

150

4800

300

75

9600

75

75

6.串口通信功能的实现

(单片机)实现串口通讯一般使用(UART)接口或利用GPIO口模仿异步串行通讯数据格式,外加驱动芯片连接RS-232口。

在PC机上一般直接调用WindowAPI中的一系列标准的串口通信函数,来实现异步串行通讯,控制RS-232口。一般常用VC++或VB来编程。常用的串口通信函数:

CreatFile()函数:实现串口初始化并打开串口;

Re(ad)File()函数:接收串口传递过来的二进制流并返回数据到接收缓冲区中

Wri(te)File()函数:把应用程序发出的指令送到发送缓冲区以供串口接收

1.打开串口

以下程序用于以同步方式打开串口COM1;

HANDLEhCom;

DWORDdwErrorHcomm="CreateFile"(“COM1”,GENERIC_READ|GENERIC_WRITE

,0,NULL,OPEN_EXISTING,0,NULL);

(if)(hComm==(HANDLE)0Xffff)

{

dwError=GetLastError();

MessageBox(dwError);

}

2.配置串口

配置串口是通过改变设备控制块DCB(DeviceControlBlock)的成员变量值来实现的,程序实现如下:

DCBdcb

dcb.BaudRate=9600;//波特率为9600bps

dcb.ByteSize=8;//数据位8位

dcb.Parity=EVENPARTTY;//有校验

dcb.StopBits=ONESTOPRTT;//一个停止位

SetCommState(hCom,

3.数据读写

对串口进行读写与对文件进行读写所用的函数相同,具体为可采用查询、同步、异步或事件驱动等方法对串口进行读写所用函数如下所示:

bReadStatus=ReadFile(hCom,buffer,length,

if(!bReadStatus)

{

if(GetLastError()=ERROR_IO_PENDING)

{

W(ai)tForSingleObject(m_lpOverlapped,hEvent,1000);

return((char)length);

}

return0;

}

//写入函数程序为:

bWriteStatus=WriteFile(hCom,buffer,length,

return((char)length);

}

return0;

}

4.程序的编制

用VC++进行程序的编制首先要对串口进行初始化,设定端口,通信速率和校验方式,并在使用前打开串口,程序部分如下:

{

Cdialog::OnInitDialog();//TODAddextraini(TI)alizaTIonhere

m_comm.SetCommPort(1);//选择串口1

if(!m_comm.GetPortOpen())

m_comm.SetPortOpen(TRUE);//打开串口1

m_comm.SetSetTIngs(“9600,n,8,1”);//设置串口参数

m_comm.SetRThreshold(1);

m_comm.SetInputMode(1);//设置二进制模式

returnTRUE;

}

除了串口的位置和基本串口参数(数据传输速率9600bps,1位开始位,8位数据位,1位停止位,一位奇偶校验)设置外,为了实现实时数据采集功能,接受数据的读写要尽可能的快速,则设置RTHreshold=1即接收缓冲区收到一个字节产生OnComm事件InputLen=1每次读取一个字节。如果PC上位机在一定时间内不能将数据处理完,接收缓冲区会滞留数据,数据会产生丢失现象,我们必须对接受缓冲区进行适当的设置。RS-232的缺陷及改进

由于RS-232标准开发较早,使用的是当时流行的DTL技术,随着技术的进步,越老越显露出其局限。

7.1)RS-232的缺陷

1)

接口的信号为DTL电平,电压值较高,易损坏接口(电路)的芯片,又因为与TTL

电平不兼容故需使用电平转换电路方能与TTL电路连接。

2)传输速率较低,在异步传输时,波特率为20Kbps(现在已发展到超过115.2Kbps)。

3)接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。

4)传输距离有限,最大传输距离标准值为50英尺(约15米),实际上也只能

用在50米左右。

5)接口为一对一连接

7.2)RS-422/485接口

为弥补其技术缺陷,后来又在其基础上发展了其他一些串行接口标准,最常见的是422/485:

RS-422(EIA-422):

标准全称是“平衡电压数字接口电路的电气特性”,收发都使用差分信号,为四线接口,还有一根信号地线(一定要接地,要求通信双方的地电位差小于1V),共5根线(+发、-发、+收、-收、地),一般使用双绞线传输差分信号,因此有良好的抗共模干扰能力。采用单独的发送和接收通道,为全双工方式,支持点对多的双向通信,允许在相同传输线上连接多个接收节点,最多可接10个节点,即一个主设备(Master),其余为从设备(Salve),从设备之间不能通信。

RS-422多节点构成网络。网络拓扑一般采用终端匹配的总线型结构,不支持环形或星形网络。发送驱动器A、B之间的正电平在+2~+6V,是一个逻辑状态,负电平在-2~-6V,是另一个逻辑状态。接收端A比B高200mV以上即认为是逻辑"1",A比B低200mV以上即认为是逻辑"0"。

接收器输入(阻抗)为4k。RS-422需要一终接电阻,终接电阻接在传输电缆的最远端,要求其阻值约等于传输电缆的特性阻抗。在矩距离传输时(一般在300米以下)可不需终接电阻。

RS-422的最大传输距离为4000英尺(约1200米),最大传输速率为10Mb/s,其平衡双绞线的长度与传输速率成反比。在100kb/s速率以下,才可能达到最大传输距离;只有在很短的距离下才能获得最高速率传输,一般100米长的双绞线上所能获得的最大传输速率仅为1Mb/s。

(RS-485)(EIA-485):

RS-485是从RS-422基础上发展而来的,许多电气规定与RS-422相仿,但一般采用二线方式,使用屏蔽双绞线,共有三条信号线(+A、-B、地),是半双工多点双向通信,总线上可接到32个设备。

RS-485接收器最小输入阻抗为12k。需要2个终接电阻,在传输线的两端,其阻值要求等于传输电缆的特性阻抗。

为了安全起见,建议通信机器的外壳接大地。RS-422/485光隔转换器的所有外接(电源)的“地”必须全部连在一起但不要与(计算机)外壳地相连,因为电源“地”同时也是RS-485或RS-422的信号“地”。当通信距离超过100米时建议最好使用光电隔离的通信接口转换器。RS-485的国际标准并没有规定RS485的接口连接器标准。

7.3)RS-422/485的电缆长度:

在使用RS422/485接口时,对于特定的传输线径,从发生器到负载其数据信号传输所允许的最大电缆长度是数据信号速率的函数,这个长度数据主要是受信号失真及噪声等影响所限制。

下图所示的最大电缆长度与信号速率的关系曲线是使用24AWG铜芯双绞电话电缆(线

径为0。51mm),线间旁路电容为52.5pF/m,终端负载(电阻)为100欧

时所得出。(曲线引自GB11014-89附录A)。

由图中可知,当数据信

号速率降低到90Kbit/S以下时,假定最大允许的信号损失为6dBV时,

则电缆长度被限制在1200M。实际上,图中的曲线是很保守的,在实

用时是完全可以取得比它大的电缆长度。

当使用不同线径的电缆。则取得的最大电缆长度是不相同的。例

如:当数据信号速率为600Kbit/S时,采用24AWG电缆,由图可知最

大电缆长度是200m,若采用19AWG电缆(线径为0.91mm)则电缆长

度将可以大于200m;

若采用28AWG

电缆(线径为0.32mm)则电缆

长度只能小于200m。RS-485的远距离通信建议采用屏蔽电缆,并且将屏蔽层作为地线。

7.4)RS-422/485接口与RS-232对比的优势:

1)

逻辑“1”以两线A、B间的电压差为+2~+6

V表示,逻辑“0”以两线间的电压差为-2~-6V表示,电平与TTL电平兼容,可方便与TTL

电路连接。

2)数据最高传输速率为10Mbps

3)

接口是采用平衡驱动器和差分接收器的组合,抗共模干能力增强,即抗噪声干扰性好。

4)接口的最大传输距离标准值为1200米(9600bps时),实际上可达

3000米

5)接口可为总线方式,允许连接多达128个(收发器),具有多站能力,可方便地建立起设备网络。

虽然RS-422/485接口有如此对的优势,但RS-232仍是最普遍使用的串行通讯接口标准,这可能与PC机的普遍使用分不开,而RS-422/485往往只局限在一些特殊场合,主要是工业控制方面,比如需要总线式连接多个设备或需要长距离、高速度传输的地方,而且也往往使用RS-232转RS-422/485接口实现。

3.

RS-232的互连

如果需要连接不同类型的连接器,可以使用不同配置的(适配器)和电缆,或者自己制作适配器和电缆。所有的RS-232输出和输入必须能够承受任何其他RS-232信号,包括接地信号的(短路)而不受损坏。

4.1)直连

在连接的两端都有相同类型的连接器的时候,要连接DTE和DCE,电缆可直接连接对应的每一根导线,引脚1到引脚1,引脚2到引脚2等等。

4.2)9到25针直连

如果连接一个9针和一个25针的连接器,使用如图所示的9到25针(或相反)的适配器。

4.3)全握手连接(交互连接)

DTE与DTE之间连接,允许硬件握手,常用于计算机之间的互连。数据和握手信号输出连接到它们在另一台设备上的相应的输入。

4.4)循环回送连接

在一个循环回送连接中,握手信号输出循环回送给自身设备的相应输入,这在一台设备要求有握手信号而另一台不提供握手信号的时候就很有用处。如图所示:

数据线正常连接,但是握手信号输出循环回送到它们相应的输入,RTS、CTS、DSR和CD连接到一起。在这种方式下,无论什么时候只要DTE声明了RTS,也会出现DCE声明CTS、DSR和CD。一个变化是连接RTS和CTS,以及将DTR连接到DSR和CD。但是,使用这种类型的连接如果接收设备不能跟上发送速度就会导致数据错误。

4.5)不使用硬件握手连接

3根导线连接。连接交换RD和TD线,因此每个TD连接到对应的RD。如图所示。

4.6)串行打印机连接

串行打印机通常配置成DTE,因此TD和RD必须在连接到一台PC机的时候交换。另外,很多打印机使用DTR作为握手信号,而有的PC(软件)假定CTS为握手信号。出现这种情况,电缆或者一个适配器必须将这台打印机的DTR,而不是RTS,连接到PC机的CTS。

4.7)串口(测试)常用的环回方式

3.

RS-232接口的信号

现在的RS-232接口常用于异步(Asynchronous)串行通讯,实际上也可以用于同步(Synchronous)串行通讯。

3.1)RS-232接口信号引脚及定义

数据传输分别使用(PI)N2和PIN3,DSR指示DCE(如MODEM)已启动,而DTR指示DTE(如计算机)已启动,DCD指示远端MODEM已接收到良好的载波信号。

DTE发出的RTS和DCE发出的CTS用于控制。在多数异步传输方式下,RTS和CTS在通讯过程中保持不变。然而在DTE连接在多点传输线上时,RTS用来打开和关闭MODEM的载波,因为多点传输线上在某个时间只能有一个发送者,以使多终端共用一对电话线。每当一个DTE要发送数据,就使RTS有效,MODEM于是发出载波,一般要等待几毫秒使载波稳定,然后使CTS有效。DTE在收到CTS后开始发送数据。当DTE完成发送数据,就使RTS无效,MODEM于是使CTS无效并关闭载波。

(时钟)信号(PIN15、17和24)仅用于同步通讯(synchronouscommunications)。MODEM从数据码流中取出稳定的时钟信号并发给DTE。注意,即使波特率相同时,发送和接收的时钟信号也不一定相同。

RS232DB25

3.2)PC机常用的RS-232接口信号引脚及定义

IBM制造PC机时将RS-232简化成了DB-9连接器,后来成为事实标准。

旧式的PC机有些带有DB-25针插座的串口连接器(一般为COM2),为公头插座(或称MALE),这与常见的DB-25的(并口)连接器不同,DB-25的并口使用25芯孔插座(也称为母头或FEMALE)。

3.3)信号电平及电平转换

在RS-232-C中任何一条信号线的电压均为负逻辑关系。即:逻

辑“1”为-5—

-15V;逻辑“0”为

+5—

+15V。噪声容限为2V,即

要求接收器能识别低至+3V的信号作为逻辑“0”,高到-3V的信号

作为逻辑“1”

。+3V到-3V之间称为死区,为抵抗线路噪声的干扰。但不同的设备有可能使用不同的电平门限,比如CCITTV.10定义死区为+0.3Vto-0.3V。也有的接收机把门限设为1V或更低。

辑“1”表示"idle"状态(也称OFF或MARK),逻辑“0”表示"active"状态(也称ON或SPACE)。

这种信号方式源于当时主要使用的DTL电平,与现在数字电路常用的TTL电平不同,不能直接相连,中间需要加电平转换电路。

RS-232-C规定了25条引线,实际中有许多是很少使用的,如PC机一般只有9条引线,3条输出5条输入,因PC机有+12V和

-12V电源,常用的电平转换芯片为SN75185、GD75232等芯片,也有单独的驱动芯片MC1488、SN75188和接收芯片MC1489、SN75189。而DCE((数据通信)设备)方有3条输入5条输出线,需使用对应驱动芯片SN75196、GD75323,但往往DCE只有5V单电源,这时一般使用内带电荷泵的芯片MAX207、SN65C3238、SN65C3243等,甚至也有使用3.3V单电源的芯片。

一些情况下,设备与PC机连接的RS-232接口,不使用控制信号,仅使用三条接口线RXD、TXD、GND(如单片机通过UART连接PC机),也只有单电源,使用内带电荷泵的单路收发芯片,MAXIM、TI、SIPEX、ST等公司都有这种芯片。

3.4)信号格式

RS-232最常使用异步串行传输,每个数据包含有7或8bit数据位和起始位start,停止位stop,校验位parity(可选用,也可用于指示位)。传输数据的样值如图所示:起始位(低有效,通常在+3v到+15v之间),紧接着数据位(7或8bit),校验位(根据协议选用),由停止位结束(通常返回逻辑高,电压在-3v到-15v之间)。注意:RS-232使用负逻辑。

3.5)串口鼠标

早期PC机使用串口鼠标,以标准的RS-232-C输出信号(+-12V)作为输入。鼠标取用RS-232-C的输出线的电流(大约10mA),并发送计算机RS-232-C接收芯片可以识别的电平信号。鼠标一般输出信号为+-5V或0-5V,有些输出+-12V。鼠标电路一般使用+5V电压,一般从DTR和RTS线产生(MCU)使用的正电源,而负电源一般取自TD,典型的机械鼠标需要4只(红外)(LED)做移动检测,一般使用(二极管)从DTR和RTS线取电,然后通过电阻加到4只LED上。鼠标总体需要10mA电流,工作电压6-15V。

鼠标能够正常工作,RTS和DTR线必须为正电压,DTR-DSR和RTS-CTS之间不要连接。当DTR正常,鼠标要发一个包含字母"M"(ascii77)的字节来识别自身。而冷启动后,RTS一般设为负电压,这时需要把RTS转换为正,称为反转RTS。要完成RTS电压的反转,负脉冲宽度至少为100ms。

串口鼠标使用格式为1200bps,7databits,1stop-bit,发送的数据包为3字节长度,每次鼠标状态改变(移动或按键的按压与释放)都要向计算机发送数据。数据格式如下:

bit7

bit6

bit5

bit4

bit3

bit2

bit1

bit0

byte1

X

1

LB

RB

Y7

Y6

X7

X6

byte2

X

0

X5

X4

X3

X2

X1

X0

byte3

X

0

Y5

Y4

Y3

Y2

Y1

Y0

字节1(byte1)首先发出,然后是其他2个字节。字节1的bit6用做同步数据包。

LB是左键的状态(1表示按下),RB是右键的状态(1表示按下);X7-X0表示从上次数据包发出后沿X方向移动的距离,Y7-Y0表示从上次数据包发出后沿Y方向移动的距离。

用X表示的位,在使用7bits数据和2bits停止位格式时为0;而使用8bits数据和1bits停止位格式时为1。最安全的方式是使用7bits数据和1bits停止位的接收格式。

3.6)信号规格表

系统分类:接口电路

|

用户分类:信号接口

|

标签:RS-232DB25DB-9

|

来源:整理

|

点击查看原文

发表评论阅读全文(1589)|回复(0)

发表于2021/12/2214:06:38

2

25pinD-SUB

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论