1、2022-4-161第五章第五章80518051单片机的串行口单片机的串行口原理及应用原理及应用 2022-4-162 通信:在实际应用中通信:在实际应用中,不但计算机与外部设备之间常常要进不但计算机与外部设备之间常常要进行信息交换,而且计算机之间也需要交换信息,所有这些信息行信息交换,而且计算机之间也需要交换信息,所有这些信息的交换均称为的交换均称为“通信通信”。 随着随着8051应用范围的不断拓宽,单台仪器仪表或控制器往应用范围的不断拓宽,单台仪器仪表或控制器往往会带有不止一个的单片机,而多个智能仪器仪表或控制器在往会带有不止一个的单片机,而多个智能仪器仪表或控制器在单片机应用系统中又常常
2、会构成一个分布式采集、控制系统,单片机应用系统中又常常会构成一个分布式采集、控制系统,上层由上层由PC进行集中管理等。进行集中管理等。 单片机的通信功能也随之得到发展。单片机的通信功能也随之得到发展。 通信的基本方式分为并行通信和串行通信两种。通信的基本方式分为并行通信和串行通信两种。 数据通信概述数据通信概述 2022-4-163 并行传送方式与串行传送方式并行传送方式与串行传送方式 并行传送方式并行传送方式 在数据传输时,如果一个数据编码字符的所有各位都同时发送、在数据传输时,如果一个数据编码字符的所有各位都同时发送、并排传输,又同时被接收,则称为并行传送方式。并行传送方式并排传输,又同时
3、被接收,则称为并行传送方式。并行传送方式要求物理信道为并行内总线或者并行外总线。要求物理信道为并行内总线或者并行外总线。 特点:传送速度快、效率高。但由于需要的传送数据线多,特点:传送速度快、效率高。但由于需要的传送数据线多,因而传输成本高。并行数据传输的距离通常小于因而传输成本高。并行数据传输的距离通常小于30米。而在计算米。而在计算机内部的数据传送都是并行传送的。机内部的数据传送都是并行传送的。 2022-4-164 串行传送方式串行传送方式 在数据传输时,如果一个数据编码字符的所有各位不是同时在数据传输时,如果一个数据编码字符的所有各位不是同时发送,而是按一定顺序,一位接着一位在信道中被
4、发送和接收,发送,而是按一定顺序,一位接着一位在信道中被发送和接收,则称为串行传送方式。则称为串行传送方式。 串行传送方式的物理信道为串行总线。串行传送方式的物理信道为串行总线。 串行数据传送方式的特点是成本低,但速度慢。串行数据传送方式的特点是成本低,但速度慢。 计算机与外界的数据传送大多是串行的,其传送距离可以计算机与外界的数据传送大多是串行的,其传送距离可以从几米直到几千公里。从几米直到几千公里。 2022-4-165 图图51通信的两种基本方式通信的两种基本方式(a)并行通信;并行通信; (b)串行通信串行通信2022-4-166打印机打印机计算机计算机网络网络鼠标鼠标扫描仪扫描仪硬盘
5、硬盘I2C SPIRS232USB常见的串行通信接口常见的串行通信接口:2022-4-167按照信号传输的方向和同时性,分为单工方式、半双工方按照信号传输的方向和同时性,分为单工方式、半双工方式和全双工方式三种。式和全双工方式三种。 单工方式单工方式 信号信号(不包括联络信号不包括联络信号) 在信道中只能沿一个方向传送,而在信道中只能沿一个方向传送,而不能沿相反方向传送的工作方式称为单工方式。不能沿相反方向传送的工作方式称为单工方式。 半双工方式半双工方式 通信的双方均具有发送和接收信息的能力,信道也具有双通信的双方均具有发送和接收信息的能力,信道也具有双向传输性能,但是,通信的任何一方都不能
6、同时既发送信息又接向传输性能,但是,通信的任何一方都不能同时既发送信息又接收信息,即在指定的时刻,只能沿某一个方向传送信息。这样的收信息,即在指定的时刻,只能沿某一个方向传送信息。这样的传送方式称为半双工方式。传送方式称为半双工方式。 全双工方式全双工方式若信号在通信双方之间沿两个方向同时传送,任何一方在若信号在通信双方之间沿两个方向同时传送,任何一方在同一时刻既能发送又能接收信息,称为全双工方式。同一时刻既能发送又能接收信息,称为全双工方式。双工方式大双工方式大多采用双线制。多采用双线制。 单工方式、半双工方式、全双工方式单工方式、半双工方式、全双工方式 2022-4-168 图图52串行通
7、信的三种方式串行通信的三种方式(a)单工方式;单工方式;(b)半双工方式;半双工方式;(c)全双工方式全双工方式2022-4-169单工、双工、半双工方式单工、双工、半双工方式单工:单工:广播广播双工:双工:电话电话半双工:半双工:对讲机对讲机2022-4-1610 在数据通信中,要保证发送的信号在接收端能被正确地在数据通信中,要保证发送的信号在接收端能被正确地接收,必须采用同步技术。常用的同步技术有两种方式,一种称接收,必须采用同步技术。常用的同步技术有两种方式,一种称为异步传输也称起止同步方式,另一种称为同步传输也称同步字为异步传输也称起止同步方式,另一种称为同步传输也称同步字符同步方式。
8、符同步方式。 异步传输异步传输 异步传输以字符为单位进行数据传输,每个字符都用起始异步传输以字符为单位进行数据传输,每个字符都用起始位、停止位包装起来,在字符间允许有长短不一的间隙。位、停止位包装起来,在字符间允许有长短不一的间隙。在单片机中使用的串行通信都是异步方式。在单片机中使用的串行通信都是异步方式。 异步传输和同步传输异步传输和同步传输2022-4-1611 图图53串行异步传送的字符格式串行异步传送的字符格式(a)字符格式;字符格式; (b)有空闲位的字符格式有空闲位的字符格式 2022-4-1612图图54 传送传送ASCII码字符码字符5的波形图的波形图 2022-4-1613
9、在串行异步传送中,在串行异步传送中,CPU与外设之间事先必须约定:与外设之间事先必须约定: 字符格式。字符格式。 双方要事先约定字符的编码形式、奇偶校验形式及起始位和双方要事先约定字符的编码形式、奇偶校验形式及起始位和停止位的规定。例如用停止位的规定。例如用ASCII码通信,有效数据为码通信,有效数据为7位,加位,加1个奇偶校验位、个奇偶校验位、1个起始位和个起始位和1个停止位共个停止位共10位。当然停止位位。当然停止位也可大于也可大于1位。位。 波特率波特率(Baudrate)。 波特率就是数据的传送速率,即每秒钟传送的二进制位数,波特率就是数据的传送速率,即每秒钟传送的二进制位数,单位为位
10、单位为位/秒。它与字符的传送速率秒。它与字符的传送速率(字符字符/秒秒)之间存在如下之间存在如下关系:关系: 波特率波特率=位位/字符字符字符字符/秒秒=位位/秒秒 要求发送端与接收端的波特率必须一致。要求发送端与接收端的波特率必须一致。2022-4-1614 同步传输同步传输 同步传输用来对数据块进行传输,一个数据块中包含同步传输用来对数据块进行传输,一个数据块中包含着许多连续的字符,在字符之间没有空闲。同步传输可以着许多连续的字符,在字符之间没有空闲。同步传输可以方便地实现某一通信协议要求的帧格式。计算机网络通信方便地实现某一通信协议要求的帧格式。计算机网络通信基本上是这种。基本上是这种。
11、2022-4-1615 图55 同步传送 2022-4-1616 串行通信的传送速率用于说明数据传送的快慢,波特率串行通信的传送速率用于说明数据传送的快慢,波特率表示串行通信时每秒钟传送表示串行通信时每秒钟传送”位位” 的数目,比如的数目,比如1s传送传送1bit,就是就是1波特。即波特。即1波特波特1bit/s (位位/秒秒)串行通信常用的标准波特率在串行通信常用的标准波特率在RS-232C标准中已有规定,标准中已有规定,如波特率为如波特率为600、1200、2400、4800、9600、19200等等。等等。假若数据传送速率为假若数据传送速率为120字符字符/s,而每一个字符帧已规定,而每
12、一个字符帧已规定为为10个数据位,则传输速率为个数据位,则传输速率为120101200bit/s,即波特率为,即波特率为1200,每一位数据传送的时间为波特率的倒数:,每一位数据传送的时间为波特率的倒数: T112000.833ms 波特率波特率(BAUD RATE)2022-4-1617 计算机通信是一种数字信号的通信。计算机通信是一种数字信号的通信。 它要求传送线的频带很宽它要求传送线的频带很宽, ,而在长距离通讯时而在长距离通讯时, ,通常是利用通常是利用电话线来传送的电话线来传送的, ,该线不可能有这样宽的频带。如果用数字信该线不可能有这样宽的频带。如果用数字信号经过传送线直接通讯号经
13、过传送线直接通讯, ,信号就会畸变。信号就会畸变。信号的调制和解调信号的调制和解调2022-4-1618 因此要在发送端用调制器因此要在发送端用调制器(Modulator)(Modulator)把数字信号转换为模把数字信号转换为模拟信号拟信号, ,在接收端用解调器在接收端用解调器(Demodulator)(Demodulator)检测此模拟信号检测此模拟信号, ,再把再把它转换成数字信号。它转换成数字信号。 FSK(FrequencyShiftKeying)FSK(FrequencyShiftKeying)是一种常用的调制方法是一种常用的调制方法, ,它把它把数字信号的数字信号的“1”1”与与
14、“0”0”调制成不同频率的模拟信号。调制成不同频率的模拟信号。图图56调制与解调示意图调制与解调示意图 2022-4-1619图图57 FSK调制法原理图调制法原理图 2022-4-1620数据终端与调制器的接口数据终端与调制器的接口图图510 RS-232C的引脚图的引脚图 2022-4-1621图图511 计算机与远方终端和当地终端连接示意图计算机与远方终端和当地终端连接示意图 2022-4-1622调制解调器调制解调器15V:逻辑:逻辑1 15V:逻辑:逻辑0RS232C标准标准美国电子工业协会美国电子工业协会EIA公布的串行总线标准公布的串行总线标准DB-25DB-9最少最少3根线根线
15、公用电公用电话网话网ModemModem计算机计算机计算机计算机RS232CRS232CRxD (3)TxD (2)地地 (5)2022-4-1623一、一、 80518051串行口结构串行口结构 串行数据通信主要有两个技术问题,一个是数据传送,另串行数据通信主要有两个技术问题,一个是数据传送,另一个是数据转换。一个是数据转换。数据传送主要解决传送中的标准、数据帧格式及工作方式等。数据传送主要解决传送中的标准、数据帧格式及工作方式等。数据转换要解决把数据进行串、并行的转换,这种转换通常由数据转换要解决把数据进行串、并行的转换,这种转换通常由通用通用异步接收发送器异步接收发送器(UART) 电路
16、来完成。电路来完成。数据发送端,要把并行数据转换为串行数据;数据接收端,要数据发送端,要把并行数据转换为串行数据;数据接收端,要把串行数据转换为并行数据。把串行数据转换为并行数据。80C51中已集成有中已集成有UART,有的型,有的型号在内部还集成了两个号在内部还集成了两个UART。而在其它一些型号中又增加了新。而在其它一些型号中又增加了新的串行口,如的串行口,如 8XC552中就增加了具有中就增加了具有I2C总线功能的串行口。总线功能的串行口。串行口及控制串行口及控制2022-4-1624串行通信接口串行通信接口(1)UART (Universal Asynchronous Receiver
17、/Transmitter 通用异步接收器通用异步接收器/发送器发送器(2)USRT (Universal Synchronous Receiver/Transmitter) 通用同步接收器通用同步接收器/发送器发送器8串并串并8并串并串发送发送接收接收1时钟时钟时钟时钟2022-4-16258051中的串行口是一个中的串行口是一个全双工的异步串行通信全双工的异步串行通信接口,它接口,它可作可作UART(通用异步接收和发送器)用,也可作同步移位寄(通用异步接收和发送器)用,也可作同步移位寄存器用。存器用。所谓全双工的异步串行通信接口,是说该接口可以同时所谓全双工的异步串行通信接口,是说该接口可以
18、同时进行接收和发送数据,口内的接收缓冲器和发送缓冲器在进行接收和发送数据,口内的接收缓冲器和发送缓冲器在物理物理上上是隔离的,即是完全独立的。可以通过访问特殊功能寄存器是隔离的,即是完全独立的。可以通过访问特殊功能寄存器SBUF,来访问接收缓冲器和发送缓冲器。接收缓冲器具有双缓,来访问接收缓冲器和发送缓冲器。接收缓冲器具有双缓冲的功能,即它在接收第一个数据字节后,能接收笫二个数据冲的功能,即它在接收第一个数据字节后,能接收笫二个数据字节。但是在接收完第二个字节后,字节。但是在接收完第二个字节后,若笫一个数据字节还未取若笫一个数据字节还未取走,那么该数据字节将丢失。走,那么该数据字节将丢失。20
19、22-4-1626图图512 MCS-51串行口的原理结构图串行口的原理结构图 2022-4-1627 波特率发生器:波特率发生器: 主要由主要由T1及内部的一些控制开关和分频器所组成。它提及内部的一些控制开关和分频器所组成。它提供串行口的时钟信号为供串行口的时钟信号为 TXCLOCK(发送时钟)和(发送时钟)和 RXCLOCK(接收时钟)。相应的控制波特率发生器的特殊功能寄存器有(接收时钟)。相应的控制波特率发生器的特殊功能寄存器有 TMOD、TCON、TL1、TH1等。等。 2022-4-1628 串行口的内部串行口的内部 串行数据缓冲寄存器串行数据缓冲寄存器SBUF有接收缓冲器有接收缓冲
20、器SBUF和发送缓冲器和发送缓冲器SBUF,以便,以便80C51能能以全双工方式进行通信。它们在物理上是隔离的,但是占用同以全双工方式进行通信。它们在物理上是隔离的,但是占用同一个地址一个地址(99H) 。 串行口控制寄存器串行口控制寄存器SCON 串行数据输入输出引脚串行数据输入输出引脚接收方式下,串行数据从接收方式下,串行数据从RXD(P3.0)引脚输入,串行)引脚输入,串行口内部在接收缓冲器之前还有移位寄存器,从而构成了串行接口内部在接收缓冲器之前还有移位寄存器,从而构成了串行接收的双缓冲结构,可以避免在数据接收过程中出现帧重叠错误,收的双缓冲结构,可以避免在数据接收过程中出现帧重叠错误
21、,即在下一帧数据来时,前一帧数据还没有读走。即在下一帧数据来时,前一帧数据还没有读走。发送方式下,串行数据通过发送方式下,串行数据通过TXD(P3. .1)引脚输出。)引脚输出。 2022-4-1629 串行口控制逻辑串行口控制逻辑接受来自波特率发生器的时钟信号接受来自波特率发生器的时钟信号TXCLOCK(发(发送时钟)和送时钟)和RXCLOCK(接收时钟);(接收时钟);控制内部的输入移位寄存器将外部的串行数据转换为并控制内部的输入移位寄存器将外部的串行数据转换为并行数据;行数据;控制内部的输出移位寄存器将内部的并行数据转换为串控制内部的输出移位寄存器将内部的并行数据转换为串行数据输出;行数
22、据输出;控制串行中断(控制串行中断(RI和和TI)。)。 2022-4-1630二、二、 80C51串行口控制串行口控制 串行口状态控制寄存器串行口状态控制寄存器 SCON 串行口状态控制寄存器串行口状态控制寄存器SCON用来控制串行通信的方式选用来控制串行通信的方式选择、接收,指示串行口的中断状态。寄存器择、接收,指示串行口的中断状态。寄存器SCON既可字节寻址既可字节寻址也可位寻址,字节地址为也可位寻址,字节地址为98H,位地址为,位地址为98H9FH。其格式如。其格式如下:下:位 地位 地址址 9FH 9EH9DH9CH 9BH9AH 99H 98H位 功位 功能能SM0SM1SM2RE
23、N TB8 RB8 TI RI2022-4-1631 SM0(SCON.7),SM1(SCON.6)串行口工作方式选择位。串行口工作方式选择位。 SM0 SM1 工作方式工作方式 特特 点点 波波 特特 率率 0 0 方式方式0 8位移位寄存器位移位寄存器 fosc/12 0 1 方式方式1 10位位UART 可变可变 1 0 方式方式2 11位位UART fosc/64或或fosc/32 1 1 方式方式3 11位位UART 可变可变表表51 串行口工作方式选择串行口工作方式选择位 地位 地址址 9FH 9EH9DH9CH 9BH9AH 99H 98H位 功位 功能能SM0SM1SM2REN
24、 TB8 RB8 TI RI2022-4-1632SM2(SCON.5)允许方式允许方式2、3中的多处理机通信位。中的多处理机通信位。方式方式0时,时,SM20。方式方式1时,若时,若SM2l,只有接收到有效的停止位,只有接收到有效的停止位,接收中断接收中断RI才置才置1。方式方式2和方式和方式3时,若时,若SM21,则只有当接收到的,则只有当接收到的第第9位数据(位数据(RB8)为)为1时,才将接收到的前时,才将接收到的前8位数据送入位数据送入缓冲器缓冲器SBUF中,并把中,并把RI置置1、同时向、同时向CPU申请中断;如果申请中断;如果接收到的第接收到的第9位数据(位数据(RB8)为)为0
25、,RI置置0,将接收到的前,将接收到的前8位数据丢弃。位数据丢弃。而当而当SM20时,则不论接收到的笫九位数据是时,则不论接收到的笫九位数据是0 或或1 ,都将前,都将前8位数据装入位数据装入SBUF中,并申请中断。中,并申请中断。 位 地位 地址址 9FH 9EH9DH9CH 9BH9AH 99H 98H位 功位 功能能SM0SM1SM2REN TB8 RB8 TI RI2022-4-1633REN(SCON.4)允许串行接收位。允许串行接收位。REN1时,允许串行接收;时,允许串行接收;REN0时,禁止串行接收。时,禁止串行接收。用软件置位清除。用软件置位清除。TB8(SCON.3)方式方
26、式2和方式和方式3中要发送的第中要发送的第9位数据。位数据。在通信协议中,常规定在通信协议中,常规定TB8作为奇偶校验位。在作为奇偶校验位。在80C51多多机通信中,机通信中,TB8=0用来表示数据帧;用来表示数据帧;TB8=1表示是地址帧。表示是地址帧。用软件置位清除。用软件置位清除。RB8(SCON.2)方式方式2和方式和方式3中接收到的第中接收到的第9位数据。位数据。方式方式1中接收到的是停止位。方式中接收到的是停止位。方式0中不使用这一位。中不使用这一位。 位 地位 地址址 9FH 9EH9DH9CH 9BH9AH 99H 98H位 功位 功能能SM0SM1SM2REN TB8 RB8
27、 TI RI2022-4-1634TI(SCON1)发送中断标志位。发送中断标志位。方式方式 0中,在发送第中,在发送第 8位末尾置位;在其它方式时,在发位末尾置位;在其它方式时,在发送停止位开始时设置。送停止位开始时设置。由硬件置位,由硬件置位,用软件清除用软件清除。RI(SCON0)接收中断标志位。接收中断标志位。方式方式 0中,在接收第中,在接收第8位末尾置位;在其它方式时,在接位末尾置位;在其它方式时,在接收停止位中间设置。收停止位中间设置。由硬件置位,由硬件置位,用软件清除用软件清除。系统复位后,系统复位后,SCON中所有位都被清除。中所有位都被清除。位 地位 地址址 9FH 9EH
28、9DH9CH 9BH9AH 99H 98H位 功位 功能能SM0SM1SM2REN TB8 RB8 TI RI2022-4-1635其中最高位其中最高位SMOD与串行口控制有关,其它位与掉电方与串行口控制有关,其它位与掉电方式有关。其格式如下:式有关。其格式如下: D7 D6 D5 D4 D3 D2 D1 D0SMOD GF1 GF0 PD IDLSMOD(PCON.7)串行通信波特率系数控制位。串行通信波特率系数控制位。当当SMOD1时,使波特率加倍。复位后,时,使波特率加倍。复位后,SMOD0。 电源控制寄存器电源控制寄存器 PCON2022-4-1636包含在物理上是隔离的两个包含在物理
29、上是隔离的两个8位寄存器:发送数据寄存器位寄存器:发送数据寄存器和接收数据寄存器,它们共用一个地址和接收数据寄存器,它们共用一个地址99H。其格式如下:。其格式如下: D7 D6 D5 D4 D3 D2 D1 D0 SD7 SD6 SD5 SD4 SD3 SD2 SD1 SD0读读SBUF(MOVA,SBUF),访问接收数据寄存器;),访问接收数据寄存器;写写SBUF(MOV SBUF,A),访问发送数据寄存器。),访问发送数据寄存器。 串行数据寄存器串行数据寄存器SBUF系统复位后,系统复位后, SBUF中内容不确定。中内容不确定。2022-4-1637串行口的工作方式串行口的工作方式在串行
30、口控制寄存器在串行口控制寄存器SCON中,中,SM0和和SM1位决定串行口位决定串行口的工作方式。的工作方式。80C51串行口共有四种工作方式。串行口共有四种工作方式。 2022-4-16381 、串行口方式串行口方式0 同步移位寄存器方式同步移位寄存器方式 当当SM00、SM10时,串行口选择方式时,串行口选择方式0。这种工作方。这种工作方式实质上是一种同步移位寄存器方式。式实质上是一种同步移位寄存器方式。数据传输波特率固定为(数据传输波特率固定为(112)fosc。由由RXD(P30)引脚输入或输出数据)引脚输入或输出数据。由由TXD(P31)引脚输出同步移位时钟。)引脚输出同步移位时钟。
31、接收发送的是接收发送的是8位数据,传输时低位在前。帧格式如下:位数据,传输时低位在前。帧格式如下: D0D1D2D3D4D5D6D72022-4-1639图图513 串行口工作方式串行口工作方式0工作原理图工作原理图2022-4-1640发送发送当执行任何一条写当执行任何一条写SBUF的指令(的指令(MOV SBUF,A)时,)时,就启动串行数据的发送。就启动串行数据的发送。在执行写入在执行写入SBUF的指令时,选通内部的指令时,选通内部D触发器置触发器置1 ,构成,构成发送移位寄存器的第发送移位寄存器的第9位,位, 并使发送控制器开始发送。当发送脉并使发送控制器开始发送。当发送脉冲有效之后,
32、移位寄存器的内容由冲有效之后,移位寄存器的内容由RXD(P3.0)引脚串行移位输)引脚串行移位输出;移位脉冲由出;移位脉冲由TXD(P3l)引脚输出。)引脚输出。在发送有效的期间,每个机器周期,发送移位寄存器右移在发送有效的期间,每个机器周期,发送移位寄存器右移一位,在其左边补一位,在其左边补0。当数据最高位移到移位寄存器的输出位时,。当数据最高位移到移位寄存器的输出位时,原写入第原写入第9位的位的 l正好移到最高位的左边一位,由此向左的所有位正好移到最高位的左边一位,由此向左的所有位均为均为 0,零检测器通知发送控制器要进行最后一次移位,并撤销,零检测器通知发送控制器要进行最后一次移位,并撤
33、销发送有效,同时使发送中断标志发送有效,同时使发送中断标志TI置位。至此,完成了一帧数据置位。至此,完成了一帧数据发送的全过程。若发送的全过程。若CPU响应中断,则执行从响应中断,则执行从0023H开始的串行口开始的串行口发送中断服务程序。发送中断服务程序。 2022-4-1641接收接收当当REN1(允许接收允许接收)且且RI位清除时,就会启动一次接收过程。位清除时,就会启动一次接收过程。在下一机器周期的在下一机器周期的S6P2时刻,接收控制器将时刻,接收控制器将1111 1110写入写入接收移位寄存器,并在下一时钟周期接收移位寄存器,并在下一时钟周期S1P1使接收控制器的接收有使接收控制器
34、的接收有效,打开效,打开“与非门与非门” ,同时由,同时由TXD引脚输出移位脉冲。在移位引脚输出移位脉冲。在移位脉冲控制下,接收移位寄存器的内容每一个机器周期左移一位,脉冲控制下,接收移位寄存器的内容每一个机器周期左移一位,同时由同时由RXD引脚接收一位输入信号。引脚接收一位输入信号。每当接收移位寄存器左移一位,原写入的每当接收移位寄存器左移一位,原写入的1111 1110也左移也左移一位。当最右边的一位。当最右边的0移到最左边时,标志着接收控制器要进行最移到最左边时,标志着接收控制器要进行最后一次移位。在最后一次移位即将结束时,接收移位寄存器的内后一次移位。在最后一次移位即将结束时,接收移位
35、寄存器的内容送入接收数据缓冲寄存器容送入接收数据缓冲寄存器SBUF,然后在启动接收的第,然后在启动接收的第10个机个机器周期的器周期的S1P1时,清除接收信号,置位时,清除接收信号,置位SCON中的中的RI,发出中断,发出中断申请。完成一帧数据的接收过程。若申请。完成一帧数据的接收过程。若CPU响应中断,则执行从响应中断,则执行从0023H 开始的串行口接收中断服务程序开始的串行口接收中断服务程序2022-4-1642在方式在方式0 0工作时,必须使工作时,必须使SCONSCON寄存器中的寄存器中的SM2SM2位为位为“0”,0”,这这并不影响并不影响TB8TB8位和位和RB8RB8位。位。方
36、式方式0 0发送或接收完发送或接收完8 8位数据后由硬件置位位数据后由硬件置位TITI或或RIRI中断请求中断请求标志,标志,CPUCPU在响应中断后要用软件清除在响应中断后要用软件清除TITI或或RIRI标志。标志。若串行口要作为并行口输入输出,这时必须设置若串行口要作为并行口输入输出,这时必须设置“串入并串入并出出”或或“并入串出并入串出”的移位寄存器来配合使用的移位寄存器来配合使用( (如如CD4094CD4094或或CD4014CD4014等等) )。注意:注意:2022-4-1643图图514 一种串行转换为并行的方法一种串行转换为并行的方法 2022-4-16442 串行口方式串行
37、口方式110位位UART 当当 SM00、SM11时,串行口选择方式时,串行口选择方式1。数据传输波特率由数据传输波特率由T1的溢出决定,可用程序设定。的溢出决定,可用程序设定。由由 TXD(P3.1)引脚发送数据。)引脚发送数据。由由 RXD(P3.0)引脚接收数据。)引脚接收数据。发送或接收一帧信息为发送或接收一帧信息为10位:位:1位起始位(位起始位(0)、)、8位数据位位数据位(低低位在前位在前)和和l位停止位(位停止位(1)。帧格式如下:)。帧格式如下: 起起始始D0 D1D2D3D4D5D6D7停停止止2022-4-1645发送:发送: 当执行任何一条写当执行任何一条写 SBUF的
38、指令时,就启动串行数据的的指令时,就启动串行数据的发送。在执行写入发送。在执行写入SBUF的指令时,也将的指令时,也将1写入发送移位寄存器写入发送移位寄存器的第的第9位位(由由SBUF和和1个独立的个独立的D触发器构成触发器构成),并通知发送控制,并通知发送控制器有发送请求。器有发送请求。实际上发送过程开始于实际上发送过程开始于16分频计数器下次满度分频计数器下次满度翻转(由全翻转(由全1变全变全0)后的那个机器周期的开始。每位的发送过)后的那个机器周期的开始。每位的发送过程与程与16分频计数器同步,而不是与分频计数器同步,而不是与“写写SBUF”同步。同步。2022-4-1646图图515
39、串行口方式串行口方式1发送工作原理图发送工作原理图2022-4-1647开始发送后的一个位周期,发送信号有效,开始将起开始发送后的一个位周期,发送信号有效,开始将起始位送始位送TXD引脚。一位时间后,数据信号有效。发送移位寄引脚。一位时间后,数据信号有效。发送移位寄存器将数据由低位到高位顺序输出至存器将数据由低位到高位顺序输出至TXD引脚。一位时间后,引脚。一位时间后,第一个移位脉冲出现将最低数据位从右边移出,同时第一个移位脉冲出现将最低数据位从右边移出,同时0从左边从左边挤入。当最高数据位移至发送移位寄存器的出端时,先前装挤入。当最高数据位移至发送移位寄存器的出端时,先前装入的第入的第9位的
40、位的l,正好在最高数据位的左边,而它的右边全部,正好在最高数据位的左边,而它的右边全部为为0。这种状态被零检测器检测到,在第。这种状态被零检测器检测到,在第10个位周期(个位周期(16分频分频计数器回计数器回0时),发送控制器进行最后一次移位,清除发送信时),发送控制器进行最后一次移位,清除发送信号,同时使号,同时使SCON寄存器中寄存器中TI置位,完成了一帧数据发送的置位,完成了一帧数据发送的全过程。若全过程。若CPU响应中断,则执行从响应中断,则执行从0023H开始的串行口发开始的串行口发送中断服务程序。送中断服务程序。2022-4-1648接收接收当当REN1且清除且清除RI后后,若在,
41、若在RXD引脚上检测到一个引脚上检测到一个1到到0的跳变,立即启动一次接收。同时,复位的跳变,立即启动一次接收。同时,复位16分频计数器,使输分频计数器,使输入位的边沿与时钟对齐,并将入位的边沿与时钟对齐,并将1FFH(即(即9个个l)写入接收移位寄)写入接收移位寄存器。接收控制器以波特率的存器。接收控制器以波特率的16倍的速率继续对倍的速率继续对RXD(P30)引脚进行检测,引脚进行检测,计数器的计数器的16个状态把每一位的时间分为个状态把每一位的时间分为16份,对每一位份,对每一位时间的第时间的第7、8、9个计数状态,位检测器对个计数状态,位检测器对RXD端的值采样,这端的值采样,这三个状
42、态理论上对应于每一位的中央值。若发送端与接收端的三个状态理论上对应于每一位的中央值。若发送端与接收端的波特率有差异,就会发生偏移,只要这种差异在允许范围内,波特率有差异,就会发生偏移,只要这种差异在允许范围内,就不至于发生错位或漏码。在上述三个状态下,取得三个采样就不至于发生错位或漏码。在上述三个状态下,取得三个采样值,其中至少有两个值是一致的,即采用值,其中至少有两个值是一致的,即采用3取取2的多数表决法,的多数表决法,可抑制噪声。可抑制噪声。 2022-4-1649图图516 串行口方式串行口方式1接收工作原理图接收工作原理图2022-4-1650如果在第如果在第1个时钟周期中接收到的不是
43、个时钟周期中接收到的不是0,说明它不是一帧,说明它不是一帧数据的起始位,则复位接收电路,继续检测数据的起始位,则复位接收电路,继续检测RXD引脚上引脚上l到到0的跳的跳变。如果接收到的是起始位,就将其移入接收移位寄存器,然后变。如果接收到的是起始位,就将其移入接收移位寄存器,然后接收该帧的其它位。接收到的位从右边移入,原来写入的接收该帧的其它位。接收到的位从右边移入,原来写入的1,从,从左边移出,当起始位移到最左边时,接收控制器将控制进行最后左边移出,当起始位移到最左边时,接收控制器将控制进行最后一次移位,把接收到的一次移位,把接收到的9位数据送入接收数据缓冲器位数据送入接收数据缓冲器SBUF
44、和和RB8,而且置位而且置位RI。在进行最后一次移位时,能将数据送入接收数据缓冲器在进行最后一次移位时,能将数据送入接收数据缓冲器SBUF和和RB8,而且置位,而且置位RI的条件是:的条件是:RI0 即上一帧数据接收完成时发出的中断请求已被响应,即上一帧数据接收完成时发出的中断请求已被响应,SBUF中数据已被取走。中数据已被取走。SM20或接收到的停止位或接收到的停止位1。若以上两个条件中有一个不满足,将不可恢复地丢失接收若以上两个条件中有一个不满足,将不可恢复地丢失接收到的这一帧信息。到的这一帧信息。 2022-4-16513 串行口方式串行口方式2和和3 11位位UART 当当SM01、S
45、M10时,串行口选择方式时,串行口选择方式2;当;当SM11、SM01时,串行口选择方式时,串行口选择方式3。由由TXD(P3l)引脚发送数据。)引脚发送数据。由由RXD(P30)引脚接收数据。)引脚接收数据。发送或接收一帧信息为发送或接收一帧信息为11位:位:1位起始位(位起始位(0)、)、8位数据位位数据位(低位在前低位在前) 、1位可编程位和位可编程位和1位停止位(位停止位(l)。)。发送时可编程位发送时可编程位TB8可设置为可设置为1或或0,接收时可编程位进入,接收时可编程位进入SCON寄存器的寄存器的RB8位。位。方式方式2的波特率是固定的,为振荡器频率的的波特率是固定的,为振荡器频
46、率的1/32或或1/64。方式。方式3的波特率则由的波特率则由T1的溢出决定,可用程序设定。的溢出决定,可用程序设定。 2022-4-1652帧格式如下:帧格式如下: 起起 始始D0D1D2D3D4D5D6D7D8 停停 止止发送发送当执行任何一条写当执行任何一条写SBUF的指令时,就启动串行数据的发的指令时,就启动串行数据的发送。在执行写入送。在执行写入SBUF的指令时,也将的指令时,也将 1写入发送移位寄存器的写入发送移位寄存器的第第 9位,并通知发送控制器有发送请求。实际上发送过程开始于位,并通知发送控制器有发送请求。实际上发送过程开始于16分频计数器下次满度翻转(由全分频计数器下次满度
47、翻转(由全1变全变全0)后的那个机器周期)后的那个机器周期的开始。所以每位的发送过程与的开始。所以每位的发送过程与16分频计数器同步,而不是与分频计数器同步,而不是与“写写SBUF”同步。同步。 2022-4-1653图图517 串行口工作方式串行口工作方式2工作原理图工作原理图2022-4-1654开始发送后的一个位周期,发送信号有效,开始将起始开始发送后的一个位周期,发送信号有效,开始将起始位送位送TXD引脚。一位时间后,数据信号有效。发送移位寄存器引脚。一位时间后,数据信号有效。发送移位寄存器将数据由低位到高位顺序输出至将数据由低位到高位顺序输出至 TXD引脚。一位时间后,第一引脚。一位
48、时间后,第一个移位脉冲出现将最低数据位从右边移出,同时个移位脉冲出现将最低数据位从右边移出,同时0从左边挤入。从左边挤入。当最高数据位移至发送移位寄存器的输出端时,先前装入的第当最高数据位移至发送移位寄存器的输出端时,先前装入的第 9位的位的 1,正好在最高数据位的左边,而它的右边全部为,正好在最高数据位的左边,而它的右边全部为0。在。在第第10个位周期间个位周期间 (16分频计数器回分频计数器回0时),发送控制器进行最后时),发送控制器进行最后一次移位,清除发送信号,同时使一次移位,清除发送信号,同时使TI置位。置位。 2022-4-1655接收接收当当RENl且清除且清除RI后,若在后,若
49、在RXD引脚上检测到一个引脚上检测到一个l到到0的跳变,立即启动一次接收。同时,复位的跳变,立即启动一次接收。同时,复位16分频计数器,使输分频计数器,使输入位的边沿与时钟对齐,并将入位的边沿与时钟对齐,并将1FFH(即(即9个个1)写入接收移位寄)写入接收移位寄存器。接收控制器以波特率的存器。接收控制器以波特率的16倍的速率继续对倍的速率继续对 RXD引脚进行引脚进行检测,对每一位时间的第检测,对每一位时间的第7、8、9个计数状态的采样值用多数表个计数状态的采样值用多数表决法,当两次或两次以上的采样值相同时,采样值予以接受。决法,当两次或两次以上的采样值相同时,采样值予以接受。如果在第如果在
50、第1个时钟周期中接收到的不是个时钟周期中接收到的不是0,就复位接收电,就复位接收电路,继续检测路,继续检测RXD引脚上引脚上 1到到 0的跳变。如果接收到的是起始位,的跳变。如果接收到的是起始位,就将其移入接收移位寄存器,然后接该帧的其它位。接收到的就将其移入接收移位寄存器,然后接该帧的其它位。接收到的位从右边移入,原来写入的位从右边移入,原来写入的1,从左边移出,当起始位移到最左,从左边移出,当起始位移到最左边时,接收控制器将控制进行最后一次移位,把接收到的边时,接收控制器将控制进行最后一次移位,把接收到的9位数位数据送入接收数据缓冲器据送入接收数据缓冲器SBUF和和RB8,而且置位,而且置