串口通讯RS232RS422RS485详解.docx
《串口通讯RS232RS422RS485详解.docx》由会员分享,可在线阅读,更多相关《串口通讯RS232RS422RS485详解.docx(24页珍藏版)》请在冰点文库上搜索。
![串口通讯RS232RS422RS485详解.docx](https://file1.bingdoc.com/fileroot1/2023-5/9/89b878bf-b5df-42ad-b8c7-fe1deb25c22e/89b878bf-b5df-42ad-b8c7-fe1deb25c22e1.gif)
串口通讯RS232RS422RS485详解
串口通讯—RS232、RS422、RS485详解
串行通信接口标准经过使用和发展,目前已经有几种。
RS-232、RS-422与RS-485都是串行数据接口标准,最初都是由电子工业协会(EIA)制订并发布的,RS-232在1962年发布,命名为EIA-232-E,作为工业标准,以保证不同厂家产品之间的兼容。
RS-422由RS-232发展而来,它是为弥补RS-232之不足而提出的。
为改进RS-232通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到10Mb/s,传输距离延长到4000英尺(速率低于100kb/s时),并允许在一条平衡总线上连接最多10个接收器。
RS-422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A标准。
为扩展应用范围,EIA又于1983年在RS-422基础上制定了RS-485标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。
由于EIA提出的建议标准都是以“RS”作为前缀,所以在通讯工业领域,仍然习惯将上述标准以RS作前缀称谓。
RS-232、RS-422与RS-485标准只对接口的电气特性做出规定,而不涉及接插件、电缆或协议,在此基础上用户可以建立自己的高层通信协议。
因此在视频界的应用,许多厂家都建立了一套高层通信协议,或公开或厂家独家使用。
如录像机厂家中的Sony与松下对录像机的RS-422控制协议是有差异的,视频服务器上的控制协议则更多了,如Louth、Odetis协议是公开的,而ProLINK则是基于Profile上的。
在讨论RS-232C接口标准的内容之前,先说明两点:
首先,RS-232-C标准最初是远程通信连接数据终端设备DTE(DataTerminalEquipment)与数据通信设备DCE(DataCommunicationEquipment)而制定的。
因此这个标准的制定,并未考虑计算机系统的应用要求。
但目前它又广泛地被借来用于计算机(更准确的说,是计算机接口)与终端或外设之间的近端连接标准。
显然,这个标准的有些规定及和计算机系统是不一致的,甚至是相矛盾的。
有了对这种背景的了解,我们对RS-232C标准与计算机不兼容的地方就不难理解了。
其次,RS-232C标准中所提到的“发送”和“接收”,都是站在DTE立场上,而不是站在DCE的立场来定义的。
由于在计算机系统中,往往是CPU和I/O设备之间传送信息,两者都是DTE,因此双方都能发送和接收。
一、RS-232-C
RS-232C标准(协议)的全称是EIA-RS-232C标准,其中EIA(ElectronicIndustryAssociation)代表美国电子工业协会,RS(ecommededstandard)代表推荐标准,232是标识号,C代表RS232的最新一次修改(1969),在这之前,有RS232B、RS232A。
。
它规定连接电缆和机械、电气特性、信号功能及传送过程。
常用物理标准还有有EIARS-232-C、EIARS-422-A、EIARS-423A、EIARS-485。
这里只介绍EIARS-232-C(简称232,RS232)。
例如,目前在IBMPC机上的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
此主题相关图片如下:
图1
以上规定说明了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的引脚
(2)、(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转换器,进行电平转换后才能送到连接器上去或从连接器上送进来。
此主题相关图片如下:
图2
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电流环信号仅IBMPC和IBMPC/XT机提供,至AT机及以后,已不支持。
此主题相关图片如下:
图3
(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)联络控制信号线:
数据装置准备好(Datasetready-DSR)——有效时(ON)状态,表明MODEM处于可以使用的状态。
数据终端准备好(Datasetready-DTR)——有效时(ON)状态,表明数据终端可以使用。
这两个信号有时连到电源上,一上电就立即有效。
这两个设备状态信号有效,只表示设备本身可用,并不说明通信链路可以开始进行通信了,能否开始进行通信要由下面的控制信号决定。
请求发送(Requesttosend-RTS)——用来表示DTE请求DCE发送数据,即当终端要发送数据时,使该信号有效(ON状态),向MODEM请求发送。
它用来控制MODEM是否要进入发送状态。
允许发送(Cleartosend-CTS)——用来表示DCE准备好接收DTE发来的数据,是对请求发送信号RTS的响应信号。
当MODEM已准备好接收终端传来的数据,并向前发送时,使该信号有效,通知终端开始沿发送数据线TxD发送数据。
这对RTS/CTS请求应答联络信号是用于半双工MODEM系统中发送方式和接收方式之间的切换。
在全双工系统中作发送方式和接收方式之间的切换。
在全双工系统中,因配置双向通道,故不需要RTS/CTS联络信号,使其变高。
接收线信号检出(ReceivedLinedetection-RLSD)——用来表示DCE已接通通信链路,告知DTE准备接收数据。
当本地的MODEM收到由通信链路另一端(远地)的MODEM送来的载波信号时,使RLSD信号有效,通知终端准备接收,并且由MODEM将接收下来的载波信号解调成数字两数据后,沿接收数据线RxD送到终端。
此线也叫做数据载波检出(DataCarrierdectection-DCD)线。
振铃指示(Ringing-RI)——当MODEM收到交换台送来的振铃呼叫信号时,使该信号有效(ON状态),通知终端,已被呼叫。
(2)数据发送与接收线:
发送数据(Transmitteddata-TxD)——通过TxD终端将串行数据发送到MODEM,(DTE→DCE)。
接收数据(Receiveddata-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个控制信号:
DSR数传机(即modem)准备好,DataSetReady.
DTR数据终端(DTE,即微机接口电路,如Intel8250/8251,16550)准备好,DataTerminalReady。
RTSDTE请求DCE发送(RequestToSend)。
CTSDCE允许DTE发送(ClearToSend),该信号是对RTS信号的回答。
DCD数据载波检出,DataCarrierDetection当本地DCE设备(Modem)收到对方的DCE设备送来的载波信号时,使DCD有效,通知DTE准备接收,并且由DCE将接收到的载波信号解调为数字信号,经RXD线送给DTE。
RI振铃信号Ringing当DCE收到交换机送来的振铃呼叫信号时,使该信号有效,通知DTE已被呼叫。
232引脚
CCITT
Modem
名称
说明
用途
异步
同步
1
101
AA
保护地
设备外壳接地
PE
PE√
2
103
BA
发送数据
数据送Modem
TXD
3
104
BB
接收数据
从Modem接收数据
RXD
4
105
CA
请求发送
在半双工时控制发送器的开和关
RTS
5
106
CB
允许发送
Modem允许发送
CTS
6
107
CC
数据终端准备好
Modem准备好
DSR
7
102
AB
信号地
信号公共地
SG
SG√
8
109
CF
载波信号检测
Modem正在接收另一端送来的信号
DCD
9
空
10
空
11
空
12
接收信号检测
(2)
在第二通道检测到信号
√
13
允许发送
(2)
第二通道允许发送
√
14
118
发送数据
(2)
第二通道发送数据
√
15
113
DA
发送器定时
为Modem提供发送器定时信号
√
16
119
接收数据
(2)
第二通道接收数据
√
17
115
DD
接收器定时
为接口和终端提供定时
√
18
空
19
请求发送
(2)
连接第二通道的发送器
√
20
108
CD
数据终端准备好
数据终端准备好
DTR
21
空
22
125
振铃
振铃指示
RI
23
111
CH
数据率选择
选择两个同步数据率
√
24
114
DB
发送器定时
为接口和终端提供定时
√
25
空
3.远距离通信
第1和第2中情况是属于远距离通信(传输距离大于15m的通信)的例子,故一般要加调制解调器MODEM,因此使用的信号线较多。
注意:
在以下各图中,DTE信号为RS-232-C信号,DTE与计算机间的电平转换电路未画出。
1、采用Modem(DCE)和电话网通信时的信号连接:
若在双方MODEM之间采用普通电话交换线进行通信,除了需要2~8号信号线外还要增加RI(22号)和DTR(20号)两个信号线进行联络,如图1所示。
此主题相关图片如下:
图1
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信号,其信号线的连接如图2那样。
此主题相关图片如下:
图2
4.近距离通信:
当通信距离较近时,可不需要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有效就能开始发送和接收。
此主题相关图片如下:
图3
(1)RTS与CTS互联:
只要请求发送,立即得到允许
(2)DTR与DSR互联:
只要本端准备好,认为本端立即可以接收(DSR、数传机准备好)。
2、零Modem标准连接:
如果想在直接连接时,而又考虑到RS-232C的联络控制信号,则采用零MODEM方式的标准连接方法,其通信双方信号线安排如下1-2-3-4-5顺序所演示的那样。
无Modem的标准联线(7线制)如图所示:
从中可以看出,RS-232C接口标准定义的所有信号线都用到了,并且是按照DTE和DCE之间信息交换协议的要求进行连接的,只不过是把DTE自己发出的信号线送过来,当作对方DCE发来的信号,因此,又把这种连接称为双叉环回接口。
双方的握手信号关系如下(注:
甲方乙方并未在图中标出):
(1)当甲方的DTE准备好,发出DTR信号,该信号直接联至乙方的RI(振铃信号)和DSR(数传机准备好)。
即只要甲方准备好,乙方立即产生呼叫(RI)有效,并同时准备好(DSR)。
尽管此时乙方并不存在DCE(数传机)。
(2)甲方的RTS和CTS相连,并与乙方的DCD互连。
即:
一旦甲方请求发送(RTS),便立即得到允许(CTS),同时,使乙方的DCD有效,即检测到载波信号。
(3)甲方的TXD与乙方的RXD相连,一发一收。
此主题相关图片如下:
1
此主题相关图片如下:
2
此主题相关图片如下:
3
二.RS-422与RS-485串行接口标准
1.平衡传输
RS-422、RS-485与RS-232不一样,数据信号采用差分传输方式,也称作平衡传输,它使用一对双绞线,将其中一线定义为A,另一线定义为B,如图2。
图2
通常情况下,发送驱动器A、B之间的正电平在+2~+6V,是一个逻辑状态,负电平在-2~6V,是另一个逻辑状态。
另有一个信号地C,在RS-485中还有一“使能”端,而在RS-422中这是可用可不用的。
“使能”端是用于控制发送驱动器与传输线的切断与连接。
当“使能”端起作用时,发送驱动器处于高阻状态,称作“第三态”,即它是有别于逻辑“1”与“0”的第三态。
接收器也作与发送端相对的规定,收、发端通过平衡双绞线将AA与BB对应相连,当在收端AB之间有大于+200mV的电平时,输出正逻辑电平,小于-200mV时,输出负逻辑电平。
接收器接收平衡线上的电平范围通常在200mV至6V之间。
参见图3。
2.RS-422电气规定
RS-422标准全称是“平衡电压数字接口电路的电气特性”,它定义了接口电路的特性。
图5是典型的RS-422四线接口。
实际上还有一根信号地线,共5根线。
图4是其DB9连接器引脚定义。
由于接收器采用高输入阻抗和发送驱动器比RS232更强的驱动能力,故允许在相同传输线上连接多个接收节点,最多可接10个节点。
即一个主设备(Master),其余为从设备(Salve),从设备之间不能通信,所以RS-422支持点对多的双向通信。
接收器输入阻抗为4k,故发端最大负载能力是10×4k+100Ω(终接电阻)。
RS-422四线接口由于采用单独的发送和接收通道,因此不必控制数据方向,各装置之间任何必须的信号交换均可以按软件方式(XON/XOFF握手)或硬件方式(一对单独的双绞线)实现。
图4图5
RS-422的最大传输距离为4000英尺(约1219米),最大传输速率为10Mb/s。
其平衡双绞线的长度与传输速率成反比,在100kb/s速率以下,才可能达到最大传输距离。
只有在很短的距离下才能获得最高速率传输。
一般100米长的双绞线上所能获得的最大传输速率仅为1Mb/s。
RS-422需要一终接电阻,要求其阻值约等于传输电缆的特性阻抗。
在短距离传输时可不需终接电阻,即一般在300米以下不需终接电阻。
终接电阻接在传输电缆的最远端。
RS-422有关电气参数见表1
3.RS-485电气规定
由于RS-485是从RS-422基础上发展而来的,所以RS-485许多电气规定与RS-422相仿。
如都采用平衡传输方式、都需要在传输线上接终接电阻等。
RS-485可以采用二线与四线方式,二线制可实现真正的多点双向通信,参见图6。
而采用四线连接时,与RS-422一样只能实现点对多的通信,即只能有一个主(Master)设备,其余为从设备,但它比RS-422有改进,无论四线还是二线连接方式总线上可多接到32个设备。
参见图7。
图6图7
RS-485与RS-422的不同还在于其共模输出电压是不同的,RS-485是-7V至+12V之间,而RS-422在-7V至+7V之间,RS-485接收器最小输入阻抗为12k,RS-422是4k;RS-485满足所有RS-422的规范,所以RS-485的驱动器可以用在RS-422网络中应用。
RS-485有关电气规定参见表1。
RS-485与RS-422一样,其最大传输距离约为1219米,最大传输速率为10Mb/s。
平衡双绞线的长度与传输速率成反比,在100kb/s速率以下,才可能使用规定最长的电缆长度。
只有在很短的距离下才能获得最高速率传输。
一般100米长双绞线最大传输速率仅为1Mb/s。
RS-485需要2个终接电阻,其阻值要求等于传输电缆的特性阻抗。
在短距离传输时可不需终接电阻,即一般在300米以下不需终接电阻。
终接电阻接在传输总线的两端。
三.RS-422与RS-485的网络安装注意要点
RS-422可支持10个节点,RS-485支持32个节点,因此多节点构成网络。