20mA电流环串行接口

Download Report

Transcript 20mA电流环串行接口

第十三章 MCS-51的串行通信技术
一、复习第七章的MCS-51串口的知识
二、各种标准串行通讯接口
三、 MCS-51单片机双机串行通讯接口
四、 MCS-51单片机多机串行通讯接口
五、 PC机与MCS-51的点对点的串行通讯接口
六、 PC机与多个MCS-51单片机的串行通讯接口
第13章
MCS-51的串行通讯技术
13.1 MCS-51单片机的串行通讯接口技术
MCS-51串行口的输入、输出均为TTL电平,抗干扰性差,传
输距离短。
为提高串行通讯的可靠性,增大串行通讯的距离,采用标
准串行接口:RS-232、RS-422A、RS-485等标准。
13.1.1 各种标准串行通讯接口
一、 RS-232C接口
二、 RS-422A接口
三、 RS-485接口
四、 20mA电流环串行接口
传输特点
五、 各种串行接口性能比较
电气特性
电平转换
13.1.1 各种标准串行通讯接口
一、RS-232C接口
RS-232是由美国电子工业协会(EIA)于1962年制定
的标准。定义数据终端设备(DTE)和数据通讯设备
(DCE)之间的串行接口标准。
图13-1是两台计算机利用MODEM、电话线进行远距离
串行通讯的示意图,DTE为计算机,DCE的典型代表是
MODEM。
发送数据
接收数据
图13-2为RS-232C的“D”型9针插头的引脚定义。
1. 电气特性
RS-232C上传送的数字量采用负逻辑,且与地对称。
逻辑“1”:-3~-15V;
逻辑“0”:+3~+15V。
RS-232C标准的信号传输的最大电缆长度为30米,最高数传速
率为20kbit/s。
2. 电平转换
由于TTL电平和RS-232C电平互不兼容,所以两者对接时,必
须进行电平转换。
常用的转换芯片有MAX232C、MC1488、MC1489。各厂商生产
的此类芯片虽然不同,但原理相似。
以美国MAXIM公司的产品MAX232为例。它是RS-232C双工发送器
/接收器接口电路芯片,其外部引脚如图13-3,内部结构及
外部元件如图13-4所示。
由于芯片内部有自升压的电平倍增电路,将+5V转换成10V-+10V,满足RS-232C的逻辑“1”和逻辑“0”的电平要求。
工作时仅需单一的+5V电源。其片内有2个发送器,2个接收器,
有TTL信号输入/RS-232C输出的功能,也有RS-232C输入/TTL
输出的功能。
该芯片与TTL/CMOS电平兼容,使用比较方便。
使用MAX232实现TTL/RS-232C之间的电平转换电路如图13-5
所示。
U1
19
18
9
29
30
31
1
2
3
4
5
6
7
8
XTAL1
XTAL2
RST
PSEN
ALE
EA
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
80C51
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
39
38
37
36
35
34
33
32
RXD
21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17
TXD
C1
RTS
1uF
1
C1+
11
12
10
9
J1
C1-
T1IN
R1OUT
T2IN
R2OUT
T1OUT
R1IN
T2OUT
R2IN
VS+
VS-
C2+
4
CTS
U2
3
2
6
C2-
C2
1uF
5
1
6
2
7
3
8
4
9
5
14
13
7
8
MAX232
C3
C4
1uF
1uF
2:
TXD
3:
RX
D
CONN-D9F
3.采用RS-232C接口存在的问题
(1)传输距离短,传输速率低
RS-232C总线标准受电容允许值的约束,使用时传输距离
一般不要超过15米(线路条件好时也不超过几十米)。最高传
送速率为20Kbps。
(2)有电平偏移
RS-232C总线标准要求收发双方共地。通信距离较大时,
收发双方的地电位差别较大,在信号地上将有比较大的地电流
并产生压降。
(3)抗干扰能力差
RS-232C在电平转换时采用单端输入输出,在传输过程
中当干扰和噪声混在正常的信号中。为了提高信噪比,RS232C总线标准不得不采用比较大的电压摆幅。
二、 RS-422A接口
RS-232C虽然应用很广泛,但其推出较早,在现代网络通
讯中已暴露出明显的缺点:
传输速率低、通讯距离短、接口处信号容易产生串扰等。
因此,EIA又制定了RS-422A标准。
RS-232C即是一种电气标准,又是一种物理接口功能标准,
而RS-422A仅仅是一种电气标准。PC机不带RS-422A接口,因
此要使用RS-232/RS-422A转换器,把RS-232C接口转换成RS422A接口。
1. 电气特性
RS-422A与RS-232C的主要区别是,收发双方的信号地不再共
地,RS-422A标准规定平衡驱动和差分接收的方法。
输入同一个信号时,其中一个驱动器的输出永远是另一个驱
动器的反相信号。当一个表示逻辑“1”时,另一条一定
为逻辑“0”。
SN75174
TTL
电平
+5V
SN75175
+5V
SN75175
TTL
电平
双向需4条线
SN75174
若传输过程中,信号中混入了干扰和噪声(以共模形式出
现),由于差分接收器的作用,就能识别有用信号并正确接
收传输的信息,并使干扰和噪声相互抵消。
因此,RS-422A能在长距离、高速率下传输数据。它的最大传输
率为10Mbit/s,在此速率下,电缆允许长度为12m,如果采
用较低传输速率时,最大传输距离可达1200m。
RS-422A电路由发送器、平衡连接电缆、电缆终端负载、接收器
四部分组成。在电路中规定只许有一个发送器,可以有多个
接收器。
该标准允许驱动器输出为±2~±6V,差分接收器可以检测的输
入信号电平可低到200mV。
2. 电平转换
TTL电平转换成RS-422A电平的常用芯片:SN75174、MC3487等。
RS-422A电平转换成TTL电平的常用芯片:SN75175、MC3486等。
SN75174、SN75175是分别是具有三态输出的单片四差分驱动
器和接收器,采用+5V电源供电。图13-6,图13-7给出电
平转换芯片SN75174、SN75175内部结构及引脚图。
TTL电平与RS-422A电平转换电路如图13-8所示。
三、RS-485接口
RS-485是RS-422A的变型,它与RS-422A的区别在于:RS-
422A为全双工,采用两对平衡差分信号线;而RS-485
为半双工,采用一对平衡差分信号线。RS-485对于多
站互连是十分方便的。RS-485标准允许最多并联32台
驱动器和32台接收器。
TTL
电平
双向仅需2条线
TTL
电平
1. 电气特性
RS-485的信号传输采用两线间的电压来表示逻辑
“1”和逻辑“0”,由于收发方需要两根传输线。数据采
用差分传输,所以干扰抑制性好。又因无接地问题,所以
传输距离可达1200米,传输速率可达10Mbit/s
总线两端接匹配电阻(1000Ω左右),驱动器负载
为54Ω。驱动器输出电平在-1.5V以下时为逻辑“1”,
在+1.5V以上时为逻辑“0”。接收器输入电平在-0.2V
以下时为逻辑“1”,在+0.2V以上为逻辑“0”。
普通的PC机一般不带RS-485接口,因此要使用RS232/RS-485转换器。对于单片机可以通过芯片MAX485来
完成TTL/RS-485的电平转换。
2. 电平转换
在RS-422A标准中所用的驱动器和接收器芯片,在 RS-485中
均可以使用。
除了RS-422A电平转换中所列举
的驱动器和接收器外,还有收
发器SN75176芯片,该芯片集
成了一差分驱动器和一差分接
收器 ,如图13-9所示。
SN75176的功能见表13-4。
RS-485点对点远程通讯电路如图13-10所示。
四、 20mA电流环串行接口
目前串行通讯中广泛使用的一种接口电路,但未形成正式标准。
该接口要比RS-232C接口简单的多,它只有4根线:发送
正、发送负、接收正和接收负四根线组成一个输入电流回路、
一个输出电流回路。
当发送数据时,根据数据的逻辑1、0,有规律的使回路
形成通、断状态,即环路中无电流表示逻辑“0”,有20mA电
流表示逻辑“1”。
工作原理如图13-11所示。
20mA电流环串行通讯接口的最大优点是低阻传输线对电气噪
声不敏感,且易实现光电隔离。因此,在长距离传送时,
要比RS-232C优越的多。电流环在低速数传率传输时,传
输距离可达1000米。
由于20mA电流环是一种异步串行接口标准,所以在每次发送
数据时必须以无电流的起始作为每一个字符的起始位,接
收端检测到起始位时便开始接收字符数据。
图13-12是一个由集成芯片构成的20mA电流环接口线路图。
距离可达1000米
发送方
接收方
五、 各种串行接口性能比较
现将RS-232C、RS-422A、RS-485、20mA电流环各串行接口性
能列在表13-5中,以便比较。
P343
13.1.2 MCS-51单片机双机串行通讯接口
一、 双机通讯硬件接口设计
根据MCS-51的双机通讯距离,抗干扰性的要求,可选择TTL电
平传输,或选择RS-232C、RS-422A、RS485串行接口进行
串行数据传输。
1.TTL电平通讯接口
如果两个MCS-51单片机相距在
几米之内,它们的串行口可
直接相连,从而直接用TTL
电平传输方法来实现双机通
讯。如图13-13所示。
2.RS-232C双机通讯接口
如果双机通讯距离在30米之内,可利用RS-232C标准接口实现
点对点的双机通讯,接口电路如图13-14所示。
3.RS-422A双机通讯接口
为了增加通讯距离,减小通道及电源干扰,可以在
通讯线路上采用光电隔离的方法,利用RS-422A标
准进行双机通讯,接口电路如图13-15所示。
在图13-15中,每个通道的接收端都接有三个电阻R1、R2、
R3。
其中R1为传输线的匹配电阻,取值范围在50Ω~1KΩ之
间,其他两个电阻是为了解决第一个数据的误码而设置的
匹配电阻。
为了起到隔离、抗干扰的作用,图13-15中收、发两端都
必须使用两组独立的电源。
4.RS-485双机通讯接口
RS-422A双机通讯需四芯传输线,这对长距离通讯是
很不经济的,故在工业现场,通常采用双绞线传
输的RS-485串行通讯接口。
这种接口很容易实现多机通讯。图13-16给出了其RS485双机通讯接口电路。
由图13-16可知:RS-485以双向、半双工的方式实现
了双机通讯。在8031系统发送或接收数据前,应
先将75176的发送门或接收门打开,当P1.0=1时,
发送门打开,接收门关闭;当P1.0=0,接收门打
开,发送门关闭。
二、 双机通讯软件编程P345
读懂通信协议
及握手协议。
校验和?
13.1.3 MCS-51单片机多机串行通讯接口
利用串行口实现多机通讯的工作原理,已在第7章中作过介绍。
下面首先介绍多机通讯的接口设计。
1.TTL电平多机串行通讯
当一台主机与多台从机之间距离较近时,可直接采用TTL电平进
行多机通讯,多机通讯的连接方式如图13-17所示。
由于8031单片机P3口可带4个LSTTL,故在图13-17中,N的取值
范围应为N4。如果N>4,则P3口应加驱动电路。
2. 20mA电流环多机串行通讯接口
用TTL电平进行多机通讯时,有效通讯距离约几米左右,这在
实际中往往不能满足要求。
可采用20mA电流环进行多机通讯,不仅提高了抗干扰能力,
而且可实现远距离通讯。
20mA电流环串行多机通讯原理电路如图13-18所示。
设计电阻的
大小
13.1.4 PC机与MCS-51的点对点的串行通讯接口
一、硬件接口设计
如前所述, 通常PC机都配有RS-232C串行标准接口,有效通
讯距离较短。
为实现长距离通讯应将RS-232C接口转换成RS-422A/RS-485
接口。图13-19给出了这种转换的电路原理图。
PC机RS-232/RS-422接口转接板电路
返回
图13-19可完成RS-232C至RS-422A的转换,也可完成RS232C至RS-485的转换。当选择RS-422A输出方式时,3、
4短接;当选择RS-485输出方式时,1、2短接,5、6短
接,7、8短接。
图13-19中,R1、R2是为排除第一个数据传输误码而设置
的匹配电阻。设计者可根据实际情况选择该电阻的大小。
电源VCC和VEE均为+5V,但不是一个电源,VCC和VEE应为
隔离电源,只有这样才能实现电隔离。
13.1.5
PC机与多个MCS-51单片机的串行通讯接口
一、硬件接口路
将1台IBM-PC机和若干台MCS-51单片机构成的小型分布式测控系
统,如图13-20所示。
1台PC机与数台8031单片机进行多机通讯的RS-485串行通讯接
口电路如图13-21所示。
单片机与PC机的通信
在工控系统(尤其是多点现场工控系统)设计实践中,单
片机与PC机组合构成分布式控制系统是一个重要的发展方
向。分布式系统主从管理,层层控制。主控计算机监督管理
各子系统分机的运行状况。子系统与子系统可以平等信息交
换,也可以有主从关系。分布式系统最明显的特点是可靠性
高,某个子系统的故障不会影响其它子系统的正常工作。
RS232/RS485
TALK / DATA
TALK
RS CS TR RD TD CD
0#
TALK / DATA
TALK
RS CS TR RD TD CD
1#
… …
TALK / DATA
TALK
RS CS TR RD TD CD
N#
1台PC机即可以与1个80C31单片机应用系统通信,也可
以与多个80C31单片机应用系统通信;可以近距离也可以远
距离。单片机与PC机通信时,其硬件接口技术主要是电平
转换、控制接口设计和远近通信接口的不同处理技术。
在DOS操作环境下,要实现单片机与微机的通信,只要
直接对微机接口的通信芯片8250进行口地址操作即可。在
WINDOWS的环境下,由于系统硬件的无关性,不再允许用
户直接操作串口地址。如果用户要进行串行通信,可以调用
WINDOWS的API应用程序接口函数,但其使用较为复杂,
而使用 VB通信控件(Mscomm)却可以很容易的解决这一
问题。
VB是WINDOWS图形工作环境与Basic语言编程简便性
的完美结合。它简明易用,实用性强。VB提供一个名为
MSCOMM32.OCX的通信控件,它具备基本的串行通信能力:
即通过串行口发送和接收数据,为应用程序提供串行通信功
能。
MSComm控件有许多属性,主要的几个如下:
CommPort:设置并返回通信端口号;
Settings: 以字符串的方式设置并返回波特率、
奇偶校验、数据位、停止位;
PortOpen:设置并返回端口的状态,也可以打开
和关闭端口;
Input: 从接收缓冲区返回字符和删除字符;
Output: 向传输缓冲区写一个字符。
单片机程序清单如下:
ORG 3000H
MAIN:MOV TMOD,#20H ;在11.0592MHz下,串行口波特率
MOV TH1,#0FDH ;9600bps,方式3
MOV TL1,#0FDH
MOV PCON,#00H
SETB TR1
MOV SCON,#0D8H
LOOP:JBC RI,RECEIVE ;接收到数据后立即发出去
SJMP LOOP
RECEIVE:MOV A,SBUF
MOV SBUF,A
SEND:JBC TI,SENDEND
SJMP SEND
SENDEND:SJMP LOOP
PC机程序清单:(VB语言)
Sub Form_Load()
MSComm1.CommPort=2
MSComm1.PortOpen=TURE
MSComm1.Settings=“9600,N,8,1”
End Sub
Sub command1_Click()
Instring as string
MSComm1.InBufferCount=0
MSComm1.Output="A"
Do
Dummy=DoEvents()
Loop Until(MSComm1.InBufferCount>2)
Instring=MSComm1.Input
End Sub
Sub command2_Click()
MSComm1.PortOpen=FALSE
UnLoad Me
End Sub
串口助
手
2009-11-17作业

P363
1、3~6