Abstract
Microcontroller used in data acquisition and industrial control often needs to be installed in the industrial field, away from the host, constitute a single chip multi-machine system, often in multi-machine system using bus-based master-slave multi-machine control system. Host sends the information can be sent to each slave, and the information sent from the machine can only be host to accept. MCU communicate with each other are two kinds of parallel communication and serial communication, in the main from the multi-machine control systems, often using serial communication to exchange data and information, using serial communication means to send to the host processing field data.
The subject under discussion is based on master-slave control STC89C52 SCM system, using serial communication means, master and slave can be full-duplex communication, the host can send data to the slave, the slave can send data to the host.
Key words: SCM Master Control Serial Communication Full-duplex
Ⅱ
引言
随着多微机系统的广泛应用和计算机网络技术的普及,计算机的通信功能显得越来越重要。计算机通信是指计算机与外部设备或计算机与计算机之间的信息交换。这种信息交换可以分成两大类:并行通信和串行通信。
并行通信通常是将数据字节的各位用多条数据线同时进行传送。并行通信除了数据线外还有通信网络控制线。数据发送方在发送数据之前,要询问接受对方是否“准备就绪”。数据接收方收到数据后,要向数据发送方回送数据已经接受到的“应答”信号。并行通信的特点是:控制简单,传输速度快。由于传输线较多,长距离传输时成本高且接收方的各位同时接受存在困难。
串行通信是将数据字节分成一位一位的形式在一条传输线上逐个地传送。串行通信时,数据发送设备先将数据代码又并行形式转换成串行形式,然后一位一位地放在传输线上进行传送。数据接收设备将接收到的串行形式转换成并行形式进行存储或处理。串行通行的特点是:传输线少,长距离传送时成本低,且可以利用电话网等现成设备。但数据的传送控制比并行通信复杂。
在数据通信、计算机网络以及分布式工业控制系统中,经常采用串行通信来交换数据和信息。80C51单片机有一个可编程的全双工串行通信口,它可作为UART(通信异步收发器),也可作同步移位寄存器。其帧格式可为8位、10位或11位,并可以设置多种不同的波特率。通过引脚RXD(P3.0,串行数据接收引脚)和引脚TXD(P3.1,串行数据发射引脚)与外界进行通信。80C51单片机的串行口位计算机间的通信提供了极为便利的条件。利用单片机的串行口还可以方便地扩展键盘和显示器,对于简单的应用非常便利。
单片机构成的多级系统常采用主从式结构结构。所谓主从式,即在数个单片机中,有一个是主机,其余的是从机,从机要服从主机的调度和支配。80C51单片机的串行口方式2和方式3适于这种主从式的通信结构。
1 单片机的串行通信和多机通信原理
MCS-51单片机内部有一个 全双工的串行接收和发射缓冲器(SBUFF),这两个在物理上独立的接收发射器,即可以接收也可以发射数据,但接收缓冲器只可以读出不能写入,而发送缓冲器只能写入不能读出,它们的地址是99H。这个通信口即可以用于网络通信,亦可以实现串行异步通信,还可以构成同步移位寄存器使用。如果在串行口的输入输出引脚上加上电平转换器,就可以方便的构成标准的RS-232接口。下面我们分别介绍。
1
1.1 基本概念
数据通信的传输方式:常用于数据通信的传输方式有单工、半双工、全双工和多工方式。
1)单工方式:数据仅按一个固定的方向传送。因为这种传输方式的用途有限,常用于串行口的打印数据传输与简单系统间的数据采集。
2)双工方式:数据可以实现双向传送,但不能同时进行,实际的应用采用某种协议实现收发开关转换。
3)全双工方式:允许双方同时进行数据双向传送,但一般全双工电路的线路和设备比较复杂。
4)多工方式:以上三种传输方式都是同一线路传输一种频率信号,为了充分的利用线路资源,可通过使用多路复用器或多路集线器,采用频分、时分、或码分复用技术,即可实现在同一线路上资源共享功能,我们称之为多工传输方式。
串行通信的两种通信形式:
1)异步通信:在这种通信方式中,接收器和发射器有各自的时钟,他们的工作是非同步的,异步通信用一帧来表示一个字符,其内容如下:一个起始位,紧接着是若干个数据位,图 是传输45H的数据格式。
2)同步通信:同步通信格式中,发送器和接收器由同一个时钟源控制,为了克服在异步传输中,每传输一帧字符都必须加上起始位和停止位,占用了传输时间,在要求传送的数据量较大的
3)串行数据通信的传输速率:串行数据传输率有两个概念,既美秒传送的位数bps(Bit per second)和美秒符号数-波特率(Band rate),在具有调治解调器的通信中,波特率与调治速率有关。
1.2 MCS-51的串行口和控制寄存器
1.2.1 串行口和控制寄存器
MCS-51单片机串行口专用寄存器结构如图所示。SBUF为串行口的收发缓冲器,它是一个可寻址的专用寄存器,其中包含了接收器和发射器寄存器,可以实现全双工通信。但这两个寄存器具有同一地址(99H)。MCS-51的串行数据传输很简单,只要向缓冲器写入数据就可发送数据。而从接收缓冲器读出数据既可接收数据。
此外,接收缓冲器前还加上一级输入移位寄存器,MCS-51这种结构的目的在于接收数据时避免发生重叠现象,文献称这种结构为双缓冲结构。而发送数据就不需要这样设计,因为发送时,CPU是主动的,不可能出现这种情况。
A:串行通信寄存器
2
SCON控制寄存器是一个可寻址的专用寄存器,用于串行数据通信的控制,单元地址是98H,其结构格式如下:
表1-1 SCON寄存器结构 表1 寄存器SCON结构 SCON 位地址 D7 D6 D5 D4 D3 D2 RB8 9AH D1 TI 99H D0 RI 98H SM0 SM1 9FH 9EH SM2 REN TB8 8DH 9CH 9BH 下面对个控制位功能介绍如下: (1)SM0、SM1:串行口工作方式控制位
SMO SM1 工作方式 功能说明
0 0 方式0 移位寄存器方式(用于I/O扩展) 0 1 方式1 8位UART,波特率可变(T1溢出率/ n) 1 0 方式2 9 位UART,波特率为fosc/64或fosc/32 1 1 方式3 9位UART,波特率可变(T1溢出率/ n) (2)SM2:多机通信控制位
多机通信是工作方式2和方式3,SM2位主要用于方式2和方式3。接收 状态,当串行口工作方式2或3,以及SM2=1时,只有当接收到第9位数据(RB8)为1时,才把接收的前8位数据送入SBUF,且置位RI发出中断申请,否则会将收到的数据放弃。当SM2=0时,只有在接收到有效停止位时才启动RI,若没接收到有效停止位,则RI清“0”。在方式0中SM2应该为“0”。
REN:允许接收控制位。由软件置“1”时,允许接收;软件置“0”时,不许接收。
TB8:在方式3和方式3中要发送的第9位数据,需要时用软件置位和清零。 TB8:在方式2和方式3中是接收到的第9位数据。在方式1时,如SM2=0,RB8接收到的停止位。在方式0中,不使用RB8。
TI:发送中断标志。由硬件在方式0发送完第8位时置“1”,或在其它方式中串行发送停止位的开始时置“1”。必须由软件清“0”。
RI:接收中断标志。由硬件在方式0串行发射第8位结束时置“1” B:特殊功能寄存器PCON
PCON:主要是是CHMOS型单片机的电源控制而设置的专用寄存器,单元地址为87H其机构格式如下表:
表1-2 特殊功能寄存器PCON
3