接收器 差分输入 使能 输出
=A-B
R
≥0.2V
L H
-0.2V< <0.2V
L X
≤-0.2V
L L
X H Z
H高电平 L低电平 X未知 Z高阻
3.4 PC机与单片机之间的接口原理
将PC机的RS-232标准、AT89S51单片机的TTL串行口都转换为本次设计选定的RS-485标准。那么,需要一个转换器把PC机的RS-232标准串口转换成RS-485标准的通信口。市场上有这种转换器,只要把转换器插在PC机的串口公头上加上适当的工作电压即可工作,在转换器的另一头就是一个可用于RS-485标准通信的接口[5]。
RS-485标准通信接口一般有四根线,两根为RS-485工作电源,一般供+12V的工作电源即可,另外两根为通信线路A和B,这两根线路上代表数据的差分信号。
图5为RS-485标准接口与TTL电平之间的转换芯MAX-485内部结构图。
图5 MAX-485内部结构图
其中RO为接受器输出端, 为接收器输出使能端,DE为驱动器输入使能端,DI为驱动器输入,Vcc工作电源为+4.75V~+5.25V,B为反相接收器输入与反相驱动器输出,A为同相接收器输入与同相驱动器输出,GND为地线。
在使用这个芯片时,A、B管脚与RS-485标准通信总线的A、B线分别相连,电源Vcc和GND可取自单片机系统。芯片的RO管脚与单片的RXD连接,DI与TXD连接。使能端[6]RE和DE分别与单片机的两个I/O口相连,由AT89S51控制数据发送与接收的使能。
3.5 PC机与单片机之间的电平转换
PC机配有串行标准接口,可通过转换电路转换成RS-485串行接口。因为RS-485比RS-232更有利于远行传输。AT89S51单片机本身具有一个全双工的串行口,该串行口加上驱动电路后就可实现RS-485串行通信。AT89S51单片机的输入输出是TTL电平,AT89S51单片机的串行口通过75176芯片驱动后就可以转换成RS-485标准接口的电气特性,单片机的数量不多于32个,由PC机确定与哪个单片机进行通信[7]。
AT89S51串行口的输入输出均为TTL电平,这种以TTL电平传输数据的方式,抗干扰性差,传输距离短。为了实现PC机与单片机之间的远程数据传输,提高效率需要把TTL电平转换为RS-485标准接口。
3.6 AT89S51在串行通信中的应用
AT89S51单片机集成了一个叫做“通用异步发送-接收器”的功能结构,英文缩写是UART(Universal Asynchronous Receiver-Transmitter ),正是这个UART结构实现了单片机与外界的全双工异步数据串行通信,所以常使用UART来指代单片机的串行口。UART由特殊功能寄存器SCON来控制。
AT89S51单片机的UART在传输数据时,可被设置成不同的波特率,以达到不同的传输速率,不同的传输速率可以和传输距离相结合以实现最佳设计[8]。
AT89S51的串行口缓冲区(SBUF)是一个1字节长度的寄存器,位于特殊功能寄存器去的99H上。在发送数据时,只要把数据载入SBUF中,UART就会自动将数据从串行口发送出去。在接收数据时,SBUF寄存器保持着从单片机串行口接收数据,以供程序读取。即往SBUF中载入数据就自动发送,接收的数据保存在SBUF中供读取。
AT89S51的串行口控制寄存器(SCON)是一个1字节长度的寄存器,位于特殊功能寄存器区的98H,是控制单片机串行通信的重要寄存器,可对其进行位寻址。SCON中的TB8位和RB8位不常用。TI位是发送中断标志位,该位清零已确认中断,模式0下第9位接收完后或在其他模式下停止位开始时,该位由硬件置1。RI位是接收中断标志位,该位清零已确认中断,模式0下第9位接收完后,该位由硬件置1。REN位是接收使能位。该位清零时关闭串行口的数据接收;置1时使能串行口的数据接收。SM2是多单片机通信[9]使能位,该位清0时屏蔽多单片机通信功能,置1时使能多单片机在模式2和模式3,最终在模式1下的通信功能,该位应该在模式0时清零。 AT89S51智能交通灯控制系统的设计+VB源程序+仿真图(5):http://www.751com.cn/zidonghua/lunwen_502.html