双机通信系统设计
一 、系统整体设计
1.系统设计思路
双机通信的实质就是解决两单片机串行通信问题。针对于 89C52 单片机全双工
异步串行通信口,我们采用单片机直接交叉互连的串行通信方式。
考虑到设计应用于短距离传输、两单片机具有相同的数据格式及电平且为使设计
简单,我们最终决定采用方式二单片机直接交叉连接的串行通信方式,上位机发送的
数据由串行口 TXD 端输出,直接由下位机的串行口数据接收端 RXD 接收。需要注意
的是一定要保证主从机相同的数据传输速率,即要求设置相同的波特率。电路分为数
码管显示模块,以及单片机工作的基本复位、晶振模块。
2.系统设计原理
(1)串行通信
串行数据通信要解决两个关键问题,一个是数据传送,另一个是数据转换。所谓
数据传送就是指数据以什么形式进行传送。所谓数据转换就是指单片机在接收数据时 ,
如何把接收到的串行数据转化为并行数据,单片机在发送数据时,如何把并行数据转
换为串行数据进行发送。单片机的串行通信使用的是异步串行通信,所谓异步就是指
发送端和接收端使用的不是同一个时钟。异步串行通信通常以字符(或者字节)为单
位组成字符帧传送。字符帧由发送端一帧一帧地传送,接收端通过传输线一帧一帧地
接收。而对于两个单片机之间的串行通信,由于具有相同的数据格式及电平且是短距
离通信则不必要使用一些电平转化芯片(如 max232 等)便可直接实现串行通讯,需
要注意的是两单片机硬件要共地,软件中需要设置相同波特率。
STC89C52 单片机有一个全双工的异步串行通信口,串行结构如下:
① 数据缓冲器(SBUF)
接受或发送的数据都要先送到 SBUF 缓存。有两个,一个缓存,另一个接受,用
同一直接地址 99H,发送时用指令将数据送到 SBUF 即可启动发送;接收时用指令将
SBUF 中接收到的数据取出。
② 串行控制寄存器(SCON)
SCON 用于串行通信方式的选择,收发控制及状态指示,各位含义如下:
1 / 14