第7章 AT89S51串行口及串行通信技术
- 格式:pdf
- 大小:428.78 KB
- 文档页数:19
AT89S51单片机串行口的内部结构及工作原理介绍AT89S51单片机串行口的内部结构如下图所示。
它有两个物理上独立的接收、发送缓冲器SBUF(属于特殊功能寄存器),可同时发送、接收数据。
发送缓冲器只能写入不能读出,接收缓冲器只能读出不能写入,两个缓冲器共用一个特殊功能寄存器字节地址(99H)。
串行口的控制寄存器共有两个:特殊功能寄存器SCON 和PCON。
下面介绍这两个特殊功能寄存器各位的功能。
1、串行口控制寄存器SCON串行口控制寄存器SCON,字节地址988H,可位寻址,位地址为98H~9FH。
SCON的格式如下图所示。
下面介绍SCON中各位的功能。
(1) SM0、SMl:串行口4种工作方式选择位。
SM0、SM1两位的编码所对应的4种工作方式见下表。
表串行口的4种工作方式(2) SM2:多机通信控制位。
因为多机通信是在方式2和方式3下进行的,因此SM2位主要用于方式2或方式3中。
当串行口以方式2或方式3接收时,如果SM2=1,则只有当接收到的第9位数据(RB8)为1时,才使RI置l,产生中断请求,并将接收到的前8位数据送人SBUF;当接收到的第9位数据(RB8)为0时,则将接收到的前8位数据丢弃。
而当SM2=0时,则不论第9位数据是l还是0,都将前8位数据送入SBUF中,并使RI置1,产生中断请求。
在方式1时,如果SM2=1,则只有收到有效的停止位时才会激活RI。
在方式0时,SM2必须为0。
(3)REN:允许串行接收位。
由软件置1或清0。
REN=1,允许串行口接收数据。
REN=O,禁止串行口接收数据。
(4)TB8:发送的第9位数据。
在方式2和方式3时,TB8是要发送的第9位数据,其值由软件置l或清O。
在双机串行通信时,TB8一般作为奇偶校验位使用;在多机串行通信中用来表示主机发送的是地址帧还是数据帧,TB8=1为地址帧,TB8=0为数据帧。
(5) RB8:接收的第9位数据。
工作在方式2和方式3时,RB8存放接收到的第9位数据。
课题九 AT89S51的串行口通信功能本课题的目标学习完本课题后,您将能够:1.清楚串行通信基础中的通信分类和通信制式。
2.清楚AT89S51单片机如何实现串行通信功能。
3.初步具备使用串行通信功能来解决实际问题的能力。
4.初步具备使用串行口中断功能来解决实际问题的能力。
本课题的要求本课题教学完成后,初学者必须做到:1.正确理解串行异步通信中字符帧格式和波特率两个重要通信指标。
2.正确理解串行通信中单工、半双工、全双工三种制式。
3.牢记AT89S51串行口控制寄存器各位符号及功能。
4.牢记AT89S51单片机串行口四种工作方式的各自特点。
5.牢记AT89S51串行口中断源的应用步骤。
本次课讲解内容1.串行通信基础2.AT89S51的串行端口3.AT89S51串口控制寄存器4.AT89S51串行口的工作方式5.AT89S51串行通信波特率的推算课堂讲解过程本课题学生笔记一.串行通信基础1.串行通信的分类同步通信: 数据传送在双方同步脉冲的控制下进行,双方时钟源需同步。
异步通信: 数据传送以字符帧格式进行传送,双方时钟源彼此独立。
2.异步通信字符帧字符帧也叫数据帧,由起始位、数据位、校验位、停止位四部分组成。
起始位: 位于字符帧开头,只占1位。
数据位: 紧跟起始位之后,低位在前高位在后。
校验位: 数据位之后,占用1位,用于串行通信数据的奇校验或偶校验。
停止位: 位于字符帧末尾,表示该帧信息传递完毕。
3.异步通信的波特率波特率的定义为每秒钟传送二进制数码的个数,单位是bps,即位/秒。
用波特率来反映数据传输的速度,波特率越高,帧数据传输速度越快。
4.串行通信的制式半双工制式: 通信数据从A站到B站或从B站到A站,双方不能同时收发。
全双工制式: 通信数据在A站和B站间可以同时发送和接收。
二.AT89S51的串行通信功能1.AT89S51的内部串行通信接口AT89S51内部含有一个全双工串行通信接口,由串行口控制寄存器SCON、发送和接收电路、串行数据缓冲寄存器SBUF组成。
《单片机原理及接口技术》(第2版)人民邮电出版社第7章 AT89S51单片机的串行口思考题及习题71.帧格式为1个起始位,8个数据位和1个停止位的异步串行通信方式是方式。
答:方式1。
2.在串行通信中,收发双方对波特率的设定应该是的。
答:相等的。
3.下列选项中,是正确的。
A.串行口通信的第9数据位的功能可由用户定义。
对B.发送数据的第9数据位的内容是在SCON寄存器的TB8位中预先准备好的。
对C.串行通信帧发送时,指令把TB8位的状态送入发送SBUF中。
错D.串行通信接收到的第9位数据送SCON寄存器的RB8中保存。
对E.串行口方式1的波特率是可变的,通过定时器/计数器T1的溢出率设定。
对4.通过串行口发送或接收数据时,在程序中应使用。
A.MOVC指令B.MOVX指令 C.MOV指令 D.XCHD指令答:C5.串行口工作方式1的波特率是。
A.固定的,为f osc/32 B.固定的,为f osc/16C.可变的,通过定时器/计数器T1的溢出率设定D.固定的,为f osc/64答:C6.在异步串行通信中,接收方是如何知道发送方开始发送数据的?答:当接收方检测到RXD端从1到0的跳变时就启动检测器,接收的值是3次连续采样,取其中2次相同的值,以确认是否是真正的起始位的开始,这样能较好地消除干扰引起的影响,以保证可靠无误的开始接受数据。
7.AT89S51单片机的串行口有几种工作方式?有几种帧格式?各种工作方式的波特率如何确定?答:串行口有4种工作方式:方式0、方式1、方式2、方式3;有3种帧格式,方式2和3具有相同的帧格式;方式0的发送和接收都以fosc/12为固定波特率,方式1的波特率=2SMOD /32×定时器T1的溢出率方式2的波特率=2SMOD /64×fosc方式3的波特率=2SMOD /32×定时器T1的溢出率8.假定串行口串行发送的字符格式为1个起始位、8个数据位、1个奇校验位、1个停止位,请画出传送字符“B ”的帧格式。
单片机原理及接口技术AT89S51单片机系统的串行扩展在单片机系统中,为了扩展其功能和使用,需要与其他外部设备进行通信。
串行通信是一种常见的通信方式,它通过将数据逐位地进行传输和接收。
AT89S51单片机具有多种功能引脚,可以用来实现串行扩展。
包括UART串口、SPI接口和I2C总线等。
UART串口是一种常用的串行通信接口,它使用两根引脚(TXD和RXD)进行数据传输。
在AT89S51单片机中,可以使用其内置的UART模块来实现串行扩展。
首先,需要设置串口的波特率、数据位、停止位和校验位等参数。
然后,在程序中通过读写串口数据寄存器来进行数据的传输和接收。
SPI接口是一种全双工的串行通信接口,它使用四根引脚(SCLK、MISO、MOSI和SS)进行数据的传输和接收。
在AT89S51单片机中,可以使用其内置的SPI模块来实现串行扩展。
首先,需要设置SPI的工作模式、数据位、时钟极性和相位等参数。
然后,在程序中通过读写SPI数据寄存器来进行数据的传输和接收。
I2C总线是一种双向的串行通信总线,它使用两根引脚(SDA和SCL)进行数据的传输和接收。
在AT89S51单片机中,可以通过软件实现I2C总线的功能。
首先,需要设置I2C的时钟频率和器件地址等参数。
然后,在程序中通过控制I2C总线的起始、停止、发送和接收来进行数据的传输和接收。
串行扩展可以实现单片机与其他外设的数据交互,包括和PC机的通信、与传感器的连接等。
通过串行扩展,单片机能够实现更复杂的功能和应用。
在编程过程中,需要合理地使用串口、SPI接口和I2C总线等技术,根据具体的应用需求选择合适的通信方式。
总之,单片机原理及接口技术是一种重要的扩展技术,可以极大地增强单片机的功能和使用。
在AT89S51单片机系统中,串行扩展是一种常见的技术。
通过合理地使用UART串口、SPI接口和I2C总线等技术,可以实现单片机与其他外设的数据交互,进而实现更复杂的功能和应用。
第7章 AT89S51串行口及串行通信技术前几章所涉及的数据传送方式都是并行传送,如AT89S51和外接8位数据的并行传送。
这时外设和单片机间的距离都很短,若很长的话,要实行并行的形式显然要用很多的电缆线,这在布线和经济上都不是适合的。
因此,本章引入串行传送方式,只用一根数据线传送数据的位信号,同时加上一些通信控制信号线,以满足远距离数据传送的需要,如因特网终端和客户端之间的数据通信。
在相同条件下,串行传送速度比并行慢,串行是在牺牲速度的基础上节省成本的。
本章的知识点如下:1.了解数据通信中的并行/串行、同步/异步、单工/双工以及波特率的概念。
2.掌握为什么双机通信时要有通信协议以及通信协议的主要内容。
3.了解AT89S51串行接口的基本结构。
4.理解串行接口控制寄存器SCON 各个位的含义。
5.掌握串行接口的4种工作方式及其实际应用,掌握不同工作方式下的波特率计算方法。
6.理解串行接口中断的概念。
7.了解AT89S51与PC 机间的硬件系统及设计。
重点:1.不同工作方式下的波特率计算。
2.串口收/发数据的协议及流程。
3.串口4种工作方式的应用。
难点:1.AT89S51串行接口的基本结构。
2.MAX232和PC 机的通信。
7.1 串行通信基本知识 本节介绍串行通信的基本介绍,同时介绍通信中常用到的“波特率”的概念,为以下各节学习作基础。
7.1.1 数据通信1. 通信:计算机的CPU 与外设间的信息交换,计算机与计算机间的信息交换。
2. 分类及各方式的特点(1) 并行通信定义:数据的各位同时进行传送(发送或接收)的通信方式。
特点:优点——传送速度快;缺点——数据多少位就要多少根传送线,对于位数多,传送远的通信不合适。
(2) 串行通信定义:数据是一位一位按顺序传送的通信方式。
特点:优点——只需一对传输线(如电话线),大大降低了传送成本,适合于远距离通信;缺点——传送速度相对较慢。
闽江学院电子系 薛小铃对AT89S51单片机,它可以利用P3.0(RXD)和P3.1(TXD)实现串行通信。
并行通信和串行通信方式的连接方法如图7-1所示。
图7-1 两种通信方式的连接方法7.1.2 串行通信的传输方式 串行通信的传输方向通常有如下三种: 单工:数据在发送器→接收器间单方向的传送。
半双工:两端的通信设备都具有发送器和接收器,数据可以向两端的任一方向传送,但是,在同一时刻每端只允许一个方向传送数据(相反设备有效),要么甲站发送乙站接收,要么甲站接收而乙站发送。
全双工:数据可以双向传送,两端间具有独立的通信回路,可以同时接收和传送。
串行通信中,数据传输方式如图7-2所示。
图7-2 串行通信传输方式7.1.3 异步通信和同步通信串行通信有两种基本通信方式:同步通信和异步通信。
1. 异步通信在异步通信中,数据是一帧一帧(包括一个字符代码或一字节数据)传送的,89S5189S51闽江学院电子系 薛小铃每一帧的数据格式如图7-3所示。
图7-3 异步通信数据格式在帧格式中,一个字符由四个部分组成:起始位、数据位、奇偶校验位和停止位。
首先是一个起始为(0),然后是5位--8位数据,接下来是奇偶校验位(可省略),最后是停止位(1)。
(1) 起始位:位于开头,只占一位,用逻辑口通知接收设备发送端开始发送一帧信息,若不传送字符帧,始终保持为1。
(2) 数据位:紧跟起始位之后,可以是5位、6位、7位或8位数据,且低位在前,高位在后。
传送ASCII 字符,则常取7位。
(3) 奇偶校验位:位于数据位之后,只占一位,用于有限差错检测,通信双方要约定一定的校验方式,起始位和奇偶校验位包含逻辑1的个数为偶数,则为偶校验,否则为奇校验。
也可用这一位(1/0)来确定这一帧中的字符所代表信息的性质(地址/数据等)。
该位可以省略。
(4) 停止位:位于末尾,为逻辑1高电平,通常可取1位、1.5位或2位,表示一帧字符已发送完毕,也为下一帧字符做准备。
只要接收到“0”,就意味下一帧字符的开始。
若发送一字符帧完之后,并不马上发送下一帧,那么这两帧字符间就要用“1”隔开,称为空闲位。
图7-2(b)就表示了这一特性。
2. 同步通信同步通信是一种连续按顺序串行传送数据的通信方式,一次通信只传送一帧信息,和异步通信中的字符帧不同,一帧的信息是连续的数据信息。
同步传送时,字符与字符之间没有间隙,也不用起始位和停止位,仅在数据块开始时用同步字符SYNC 来指示,其数据格式如图7-4所示,图的上半部分是双同步字符帧结构,图的下半部分是单同步字符帧结构。
闽江学院电子系 薛小铃图7-4 同步通信数据格式同步字符的插入可以是单同步字符方式或双同步字符方式,如图7-4所示,然后是连续的数据块。
同步字符可以由用户约定,当然也可以采用ASCII 码中规定的SYNC 代码,即16H。
在国际标准中,通常用“EB90H”作为双同步字符。
按同步方式通信时,先发送同步字符,接收方检测到同步字符后,即准备接收数据。
在同步传送时,要求用时钟来实现发送端与接收端之间的同步。
为了保证接收正确无误,发送方除了传送数据外,还要同时传送时钟信号。
同步传送可以提高传输速率(达56kb/s 或更高),但硬件比较复杂。
3. 波特率(Baud rate )波特率即数据传送速率,表示每秒钟传送二进制代码的位数,其单位是b/s 。
它亦称为比特数bps (bit per second )。
波特率是串行通信的重要指标,表示数据传输的速度,如异步通信中,数据传送速率120字符帧/s ,一个字符帧包含10b ,则波特率=120字符帧/s*10b/字符帧=1200b/s说明:(1) 每位代码的传输时间T d 为波特率的倒数。
如以上例子的 (2) 字符帧的传送速率是指每秒钟所传字符帧的帧数。
如一个字符帧为10b ,另一个为11b ,则字符帧的传送速率分别为1200/10=120帧/s ,1200/11=109.09帧/s 。
可见,波特率相同字符帧的传送速率并一定相同,它和帧格式有关。
7.1.4 串行通信过程 1. 串←→并转换 解决的问题:把要发送的并行数据串行化,把接收的数据并行化。
原则:低位在前,高位在后。
具体转换原理如图7-5和图7-6所示。
闽江学院电子系 薛小铃图7-5 发送时的并-串转换图7-6 接收时的串-并转换2. 设备同步以同步时钟控制发送和接收设备的同步,有效的控制通信线路上的信号变化,从而确保发送数据被正确接收。
同时,要保证通信双方采用统一的编程方法(格式相同)和能产生相同的传送速率,从而保证bps 一致。
比如,起始位可起到设备同步的作用。
7.2 串行口及应用 第二章的学习,我们知道AT89S51单片机除4个并行I/O 口外,还有一个可编程全双工的异步串行通信接口。
它有两个功能:①具有UATR 的全部功能;②作移位寄存器实现单片机系统点对点通信和单片机与微机的单机或多机通信。
本节的内容包括串行口的结构、工作方式(涉及到SCON 、PCON )及应用。
7.2.1 AT89S51串行口1. 结构AT89S51单片机的串行口结构简图如图7-6所示。
它由三部分组成:时钟部分、异步接收部分和异步发送部分。
闽江学院电子系 薛小铃图7-7 串行口内部结构示意简图(1) 时钟部分在7.1节学习,已知异步串行通信数据的传送(发送/接收)是在时钟控制下进行的,由第6章可知:晶振f OSC 经过12分频(得到机器周期)可以控制定时/计数器T1,产生定时时间,它的倒数即所谓的溢出率,即T1可以作为串行通信的波特率发生器,T1溢出率经2分频或不分频后又经16分频可作为异步接收/发送的时钟信号,它又可以作为输入移位寄存器的时钟,可见移位脉冲和异步传送同步,即移位脉冲的频率和异步传送的波特率相同。
由图7-7可以看出,T1溢出是2分频还是不分频后再16分频,取决于SMOD 控制寄存器:若SMOD=1,则不分频;若SMOD =0,则2分频。
(2) 异步接收部分当“1到0跳变检测器”检测到RXD 线上有效电平时,便可确认RXD 线上出现了起始位,它的值为0。
输入移位寄存器开始接收RXD 线上的一帧数据,并装载到接收SUBF 中,一帧字符接收之后就自动去掉起始位并使RI =1,从而向CPU 提出中断请求,CPU 响应中断后,可以通过“MOV A,SBUF ”指令把接收到的字符送入累加器A 中。
至此,一帧字符的接收结束,根据需要还可进行下一步的接收。
(3) 异步发送部分(双缓冲结构)当有指令“MOV SBUF,A ”时,SBUF 开始装载由A 送来的一帧数据,然后在移位脉冲控制下,一位一位地从TXD 线上送出字符帧,发送完毕,TI 自动置位。
说明:接收和发送中都有SBUF ,它们共同占有一个地址99H ,CPU 根据不同指令对它们进行读/写操作。
2. 串行口控制字及控制寄存器AT89S51单片机的可编程串行口有2个控制寄存器SCON 和PCON ,可以选择串行口的通信方式和波特率。
(1) SCON (98H )AT89S51串行通信的方式选择、接收和发送控制以及串行口的状态标志等均由闽江学院电子系 薛小铃特殊功能寄存器SCON 控制和指示,其控制字格式如图7-8所示。
图7-8 串行口控制寄存器SCON①SM0和SM1(SCON.7,SCON.6)——串行口工作方式选择位。
两个选择位对应4种通信方式,如表7-1所示。
其中,f OSC 是振荡频率。
②SM2:多机通信控制位。
主要用于方式2和方式3。
③REN :接收控制位(串行口开关)。
由软件置1或清0,只有当REN =1时才允许接收,相当于串行接收的开关;若REN =0,则禁止接收。
在串行通信接收控制过程中,如果满足RI =0和REN =1(允许接收)的条件,就允许接收,一帧数据就装载入接收SBUF 中。
④TB8:发送数据的第9位。
⑤RB8:接收数据的第9位。
⑥TI :发送中断标志。
在一帧数据发送完时被置位。
在方式0串行发送第8位结束或其他方式串行发送到停止位的开始时由硬件置位,可用软件查询。
它同时也申请中断,TI 置位意味着向CPU 提供“发送缓冲器SBUF 已空”的信息,CPU 可以准备发送下一帧数据。
串行口发送中断被响应后,TI 不会自动清0,必须由软件清0。
⑦RI :接收中断标志。
在接收到一帧有效数据后由硬件置位。
在方式0中,第8位数据发送结束时,由硬件置位;在其他三种方式中,当接收到停止位中间时由硬件置位。
RI =1,申请中断,表示一帧数据接收结束,并已装入接收SBUF 中,要求CPU 取走数据。
CPU 响应中断,取走数据。
RI 也必须由软件清0,清除中断申请,并准备接收下一帧数据。
闽江学院电子系 薛小铃(2) PCON (87H )电源控制寄存器PCON 中只有SMOD 位与串行口工作有关,如图7-9所示。