南昌航空大学单片机之间RS-232串行通信的实现(2)

2019-05-27 21:10

第一章 系统总体方案

51单片机本身具有一个全双工的串行口,两个单片机之间可以直接进行串口通信,本次的设计是要求通过RS232进行单片机之间的通信,因为51单片机输入、输出电平为TTL电平,但由于单片机的TTL逻辑电平和RS-232的电气特性完全不同,RS-232的逻辑0电平规定为+5~+15V之间,逻辑1电平为-5~-15V之间,因此要选用MAX232电平转换芯片,发送方的数据由串行口TXD段输出,经过电平转换芯片MAX232将TTL电平转换为RS232电平输出,经过传输线将信号传送到接收端。接收方也使用MAX232芯片进行电平转换后,信号到达接收方串行口的接收端。接受方接收后,在数码管上显示接收的信息。为提高抗干扰能力,还可以在输入输出端加光耦合进行光电隔离。

软件部分,通过通信协议进行发送接收,主机先送AAH给从机,当从机接收到AAH后,向主机回答BBH。主机收到BBH后就把数码表TAB[16]中的10个数据送给从机,并发送检验和。从机收到16个数据并计算接收到数据的检验和,与主机发送来的检验和进行比较,若检验和相同则发送00H给主机;否则发送FFH给主机,重新接收。从机收到16个正确数据后送到一个数码管显示。串行口的工作方式为8位UART,波特率可变(T1溢出率/n)。定时器的工作方式为工作方式2。

图一 RS-232电平信号传输的连接图

2

第二章 硬件电路的设计

2.1 单片机系统

单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。 标准型89系列单片机是与MCS-51系列单片机兼容的。在内部含有4KB或8KB可重复编程的Flash存储器,可进行1000次擦写操作。全静态工作为0~33MHz,有3级程序存储器加密锁定,内含有128~256字节的RAM、32条可编程的I/O端口、2~3个16位定时器/计数器,6~8级中断,此外有通用串行接口、低电压空闲模式及掉电模式。AT89C51相当于将8051中的4KB ROM换成相应数量的Flash存储器,其余结构、供电电压、引脚数量及封装均相同,使用时可直接替换。AT89C51在内部采用40条引脚的双列直插式封装,引脚排列如图2所示

图2 AT89C51芯片引脚图

51单片机的串行接口是一个全双工的接口,它可以作为UART(通用异步接受和发送器)用,也可以作为同步移位寄存器用。51单片机串行接口的结构如下:

(1)串行数据缓冲器(SBUF)

3

接受或发送的数据都要先送到SBUF缓存。SBUF包括缓存寄存器和发送寄存器,以便能以全双工方式进行通信。此外,在接收寄存器之前还有移位寄存器,从而构成了串行接收的双缓冲结构,这样可以避免在数据接收过程中出现帧重叠错误。发送数据时,由于CPU是主动的,不会发生帧重叠错误,因此发送电路不需要双重缓冲结构。在逻辑上,SBUF只有一个,它既表示发送寄存器,又表示接收寄存器,具有同一个单元地址99H。但在物理结构上,则有两个完全独立的SBUF,一个是发送缓冲寄存器SBUF,另一个是接收缓冲寄存器SBUF。如果CPU写SBUF,数据就会被送入发送寄存器准备发送;如果CPU读SBUF,则读入的数据一定来自接收缓冲器。即CPU对SBUF的读写,实际上是分别访问上述两个不同的寄存器。 (2)串行控制寄存器(PCON)

串行控制寄存器SCON用于设置串行口的工作方式、监视串行口的工作状态、控制发送与接收的状态等。它是一个既可以字节寻址又可以位寻址的8位特殊功能寄存器。其格式如表1所示:

位地址 SCON 9FH SM0 9EH SM1 9DH SM2 9CH 9BH 9AH REN TB8 RB8 99H T1 98H R1 表-1 串行口控制寄存器SCON

SM2:多机通信控制位。

REN:接收允许控制位。软件置1允许接收;软件置0禁止接收。

TB8:方式2或3时,TB8为要发送的第9位数据,根据需要由软件置1或清0。 RB9:在方式2或3时,RB8位接收到的第9位数据,实际为主机发送的第9位数据TB8,使从机根据这一位来判断主机发送的时呼叫地址还是要传送的数据。

TI:发送中断标志。发送完一帧数据后由硬件自动置位,并申请中断。必须要软件清零后才能继续发送。

RI:接收中断标志。接收完一帧数据后由硬件自动置位,并申请中断。必须要软件清零后才能继续接收。

SM0,SM1:串行口工作方式选择位,这两位组合成00,01,10,11对应于工作方式0、工作方式1、工作方式2、工作方式3。串行接口工作方式如表2:

4

SM0 0 0 1 1 SM1 0 1 0 1 工作方式 0 1 2 3 功能 8位同步移位寄存器(用于I/O扩展) 10位异步串行通信(UART) 11位异步串行通信(UART) 11位异步串行通信(UART) 表-2 串行工作方式

(3)输入移位寄存器

接收的数据先串行进入输入移位寄存器,8位数据全移入后,再并行送入接收SBUF中。

(4)波特率发生器

波特率发生器用来控制串行通信的数据传输速率的,51系列单片机用定时器T1作为波特率发生器,T1设置在定时方式。波特率是用来表示串行通信数据传输快慢程度的物理量,定义为每秒钟传送的数据位数。

(5)电源控制寄存器PCON

波特率系数控制寄存器PCON的最高位为Smod,仅仅是最高位与串行口有关。在工作方式1~工作方式3时,若SMOD=1,则串行口波特率增加一倍。若SMOD=0,波特率不加倍。系统复位时,SMOD=0。PCON字节地址为87H,不能位寻址。PCON的格式如表3:

PCON 7 6 5 4 3 GF1 2 1 0 波特率 fORC/12 可变(T1溢出率*2SMOD/32) fORC/64或fORC/32 可变(T1溢出率*2SMOD/32) 位名称 SMOD - - - GF0 PD IDL 表-3 特殊功能寄存器PCON的格式

(6)波特率计算

串行口每秒钟发送(或接收)的位数称为波特率。设发送一位所需要的时间为T,则波特率为1/T。对于不同方式,得到的波特率的范围是不一样的,这是由定时器/计数器T1在不同方式下计数位数的不同所决定的。串行口工作在方式1或方式3时,常用定时器T1作为波特率发生器,关系式为:波特率=2SMOD×(T1溢出率)/32。

5

2.2 电平转换电路

用8051串行接口通信,如果两台8051单片机之间的距离很近(不超过1.5m),可以采用直接将两台8051单片机的串行接口直接相连,利用其自身的TTL电平(0-5V)直接传输数据信息。如果传输距离较远(超过1.5m),由于传输线的阻抗与分布电容,会产生电平损耗和波形畸变,以至于检测不出数据或数据出错。此时可利用 RS232标准总线接口,用MAX232芯片完成TTL和RS-232的双向电平转换。

图3电平转换芯片MAX232

在电气特性上RS-232采用负逻辑,要求高、低两信号间有较大的幅度,标准规定为:逻辑‘1’:-5~-15V ,逻辑‘0’:+5~+15V 。而单片机的信号电平与TTL电平兼容,逻辑1大于+2.4V,逻辑0为0.4V以下。很显然,RS-232信号电平与TTL电平不匹配,为了实现两者的连接,必须进行电平转换。MAX232为单一+5V供电,内置自升压电平转换电路,一个芯片能同时完成发送转换和接收转换的双重功能。

(1)有5个外接电容、进行电压匹配和电源去耦。

(2) R1IN,R2IN:两路RS-232C电平信号输入端,可接传输线。

(3) R1OUT,R2OUT:两路转换后的TTL电平输出端,可接单片机的RXD端。 (4) T1OUT,T2OUT:两路转换后的RS-232C电平信号输出端,可接传输线。 (5) T1IN,T2IN:两路TTL电平输入端,可接单片机的TXD端。 (6)Vs+,Vs-:分别经电容接电源和地。

6


南昌航空大学单片机之间RS-232串行通信的实现(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:汽机监理实施细则

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: