单片机串行通信技术 下载本文

3* 4* 5* 6* 7* 8* 9,10 11 12 13 14 15* 16 17* 18 19 20* 21* 22* 23* 24* 25 RXD RES CTS DSR SGND DCD DTR 接收数据 请求发送 允许发送 数据设备(DCE)准备就绪 信号地(公共回线) 接收线路信号检测 未用,为测试保留 空 辅信道接受线路信号检测 辅信道允许发送 辅信道发送数据 发送信号码元定时(DCE为源) 辅信道接收数据 发送信号码元定时 空 辅信道请求发送 数据终端贮备就绪 信号质量检测 振铃指示 数据信号速率选择 发送信号码元定时(DCE为源) 空

入 出 入 入 × 入 出 入 出 出 × 出 入 3.RS-232C与单片机的连接

RS-232C接口与单片机联接时需要进行电平转换,常用的电平转换芯片有MC1488、MC1489、MAX232,其中MAX232采用单5V电源供电,使用非常方便。

MAX232系列芯片由MAXIM公司生产,内含两路接收器和驱动器。其内部的电源电压变换器可以把输入的+5V电源电压变换成RS-232C输出所需的±10V电压。采用该芯片硬件接口简单、

12345678C1++VCCGNDT1OUTR1INR1OUTT1INT2INR2161514131211109V-C1+C2-C2V-价格适中,所以被广泛使用。图5-4为该芯片引脚图,图5-5 为OUT该芯片应用电路。图中电容C1、C2、C3、C4、C5均为1.0uF/16V。

图5-4 MAX232引脚

T2OUTR2IN

C31uFC11uFC21uFC4GND1uF12345678VCCMCS-51C5VCCGNDT1OUTR1INR1OUTT1INT2INR2161514131211109C1+++-1uFIBM-PCRS-232CR XDT DXT DXR XDV-C1C2-C2VT2OUTR2INOUTGND

二、RS-485总线标准

1.RS-485接口介绍

图5-5 MAX232应用电路 RS-485收发器采用平衡发送和差分接收,因此具有抑制共模干扰的能力,加上接收器具有高的灵敏度,能检测低达200mV的电压,故传输信号能在千米以外得到恢复。使用RS-485总线,一对双绞线就能实现多站联网,构成分布式系统,设备简单、价格低廉、能进行长距离通信的优点使其得到了广泛的应用。

RS-485支持半双工或全双工模式。组网时通常采用终端匹配的总线型结构,采用一条总线将各个节点串接起来,表5-2为一些常见芯片可联接的节点数。

表5-2 常见芯片联接节点数

节点数 32 64 128 256 MAX488,MAX490 SN75LBC184 MAX487,MAX1487 MAX1482,MAX1483,MAX3080~MAX3089 型 号 SN75176,SN75276,SN75179,SN75180,MAX485,RS-485接口可连接成半双工和全双工两种通信方式。半双工通信的芯片有SN75176、SN75276、SN75LBC184、MAX485、MAX 1487、MAX3082、MAX1483等;全双工通信的芯片有SN75179、SN75180、MAX488~MAX491、MAX1482等。通常采用半双工方式组网应用。

2.RS-485芯片介绍

图5-6为MAX485芯片引脚图,各引脚功能如下:

(1)RO:接收器输出。A-B≥+0.2V时,RO=“1”;A-B≤-0.2V,RO=“0”

(2)RE:接收器输出使能。RE=“0”时,允许接收器输出;RE=“1”时,禁止接收器输出,RO为高阻。

(3)DE:驱动器输出使能。DE=“1”时,允许驱动器工作;DE=“0”时,驱动器被禁止,输出端A、B为高阻。

(4)DI:驱动器输入。DI=“1”时,A输出高电平,B输出低电平;DI=“0”时,A输出低电平,B输出高电平。

(5)GND:地。

(6)A:接收器同相输入和驱动器同相输出。 (7)B:接收器反相输入和驱动器反相输出。 (8)VCC:5V电源。

RO1RE2DE3DI4R8Vcc7B6A5GNDD图5-6 MAX485芯片引脚图 3.RS-485芯片应用介绍

图5-7为典型半双工RS-485通信网络。图中各驱动器分时使用传输线(不发送数据的驱动器应被禁止)。网络上可挂32个站。传输线通常采用双绞线,可以较大程度抑制共模干扰。在传输线的末端接120?的电阻进行阻抗匹配,消除由于不匹配在线路上产生的信号反射。

在实际应用中,为减少误码率,通信距离越远,通信数率应取低一些。RS-485规定:通信距离为120m时,最大通信速率为1Mbps;若通信距离为1.2km,则最大通信速率为100kbps。 RS-485与PC机间可采用RS232/485接口卡。RS-485芯片与单片机联接电路请参见本书第八章实训部分内容。

DIBD120120BDDEDIDEABABAARORERRRORERDDRDIDEROREDIDERORE 图5-7 485芯片联接电路

第三节MCS-51单片机串行接口

MCS-51内部有一个可编程全双工串行接口,具有UART(通用异步接收和发送器)的全部功能,通过单片机的引脚RXD(P3.0)、TXD(P3.1)同时接收、发送数据,构成双机或多机通信系统。

一、 MCS-51串行口的内部结构

MCS-51串行口的内部结构,如图5-8所示。

图5-8 串行口结构框图

在图5-8中,与MCS-51串行口有关的特殊功能寄行器为SBUF、SCON、PCON,下面对它们分别讨论。

1.串行口数据缓冲器SBUF

SBUF是一个特殊功能寄存器,有两个在物理上独立的接收缓冲器与发送缓冲器。发送缓冲器只能写入不能读出,写入SBUF的数据存储在发送缓冲器,用于串行发送;接收缓冲器只能读出不能写入。两个缓冲器共用一个地址99H,通过对SBUF的读、写指令来区别是对接收缓冲器还是发送缓冲器进行操作。接收或发送数据,是通过串行口对外的两条独立收发信号线RXD(P3.0)、TXD(P3.1)来实现的。

2.串行口控制寄存器SCON

SCON用来控制串行口的工作方式和状态,字节地址为98H,可以位寻址。SCON的格式如下所示:

SM0 SMl SM2 REN TB8 RB8 TI RI SCON(98H) 各位功能说明如下:

SM0、SMl:串行口工作方式选择位,其定义如表5-3所示。 表5-3 串行口工作方式设定

SM0 0 0 1 1 SM1 0 1 0 1 工作方式 0 1 2 3 功能说明 同步移位寄存器输入/输出,波特率为fOSC/12 8位UART,波特率可变(TI溢出率/n,n=16或32) 9位UART,波特率为fosc/n,n=32或64) 9位UART,波特率可变(TI溢出率/n,n=16或32)

SM2:多机通信控制位,用于方式2和方式3中。在方式2和方式3处于接收方式时,