(电)单片机资料:串行口s.DOC

上传人(卖家):罗嗣辉 文档编号:2047681 上传时间:2022-01-21 格式:DOC 页数:23 大小:4.25MB
下载 相关 举报
(电)单片机资料:串行口s.DOC_第1页
第1页 / 共23页
(电)单片机资料:串行口s.DOC_第2页
第2页 / 共23页
(电)单片机资料:串行口s.DOC_第3页
第3页 / 共23页
(电)单片机资料:串行口s.DOC_第4页
第4页 / 共23页
(电)单片机资料:串行口s.DOC_第5页
第5页 / 共23页
点击查看更多>>
资源描述

1、第十章第十章MCS51 串行通信接口技术串行通信接口技术微机联网:微机联网: 单片机与单片机;单片机与单片机;单片机与其他微机之间实现信息共享;单片机与其他微机之间实现信息共享;典型的计算机测量与控制系统构成:典型的计算机测量与控制系统构成:一个典型集散式(一个典型集散式(DCSDCS)控制系统的构成)控制系统的构成1010.1 串行通信基础串行通信基础数据通信方式:并行通信与串行通信数据通信方式:并行通信与串行通信并行通信:一次传输并行通信:一次传输 8(16、32Bit)8 根数据线根数据线,1 根控制线根控制线,1 根状态线根状态线,地线地线,共共 11 根根;特点:速度快,适合近距离传

2、输特点:速度快,适合近距离传输计算机并口,打印机,计算机并口,打印机,8255串行通信:串行通信: 数据一位一位地发送数据一位一位地发送,一根发送线,一根接受线,地线,共一根发送线,一根接受线,地线,共 3 根根特点:硬件方便,适合距离远,速度要求不高的场合特点:硬件方便,适合距离远,速度要求不高的场合分类:同步串行通信和异步串行通信分类:同步串行通信和异步串行通信一、一、 异步通信:异步通信:串行通信就是将并行的数据分开后,一位一位地发送出去,接收串行通信就是将并行的数据分开后,一位一位地发送出去,接收方也是一位一位地接收数据,这就需要通信的双方有一个协议,方也是一位一位地接收数据,这就需要

3、通信的双方有一个协议,什么时候开始发送,什么时候发送完毕;接收方收到的信息是否什么时候开始发送,什么时候发送完毕;接收方收到的信息是否正确等,而这些信息只能以电平的高低来表示,构成这些位的数正确等,而这些信息只能以电平的高低来表示,构成这些位的数据称为一帧。异步串行通信规定了传输数据的结构即帧格式:据称为一帧。异步串行通信规定了传输数据的结构即帧格式:起始位起始位数据位数据位奇偶校验位奇偶校验位停止位停止位1起始位起始位:在数据发送线上规定无数据时电平为在数据发送线上规定无数据时电平为 1,当要发送当要发送数据时数据时,首先发送一个低电平首先发送一个低电平 0,表示数据传送的开始表示数据传送的

4、开始,这这就是起始位。就是起始位。2数据位:真正要传送的数据,可以是数据位:真正要传送的数据,可以是 8 位、位、10 位等多位,位等多位,数据位是由地位开始,高位结束;数据位是由地位开始,高位结束;3奇偶校验:数据发送完后,发送奇偶校验位,以检验数据奇偶校验:数据发送完后,发送奇偶校验位,以检验数据传送的正确性,这中方法是有限的,但是容易实现。传送的正确性,这中方法是有限的,但是容易实现。4停止位:表示数据传送的结束,可以是一位或两位。停止位:表示数据传送的结束,可以是一位或两位。帧格式:帧格式:二、二、 同步通信同步通信同步通信先发送一个字符同步通信先发送一个字符, 作为同步字符作为同步字

5、符, 之后便连续发送数据之后便连续发送数据,数据之间不能有间隔,直到数据发送完毕。数据之间不能有间隔,直到数据发送完毕。速度要比异步通信快速度要比异步通信快通 用异 步接 受通 用异 步接 受/ 发 送器 (发 送器 (UNIVERSALASYNCHRONOUSRECEIVER/TRANSMITTER) :UART:82506850三、三、 单工、半双工、全双工通信方式单工、半双工、全双工通信方式按通信进行的过程,分为:单工、半双工、全双工通信方式按通信进行的过程,分为:单工、半双工、全双工通信方式1单工方式单工方式一端是发送端,另外一端是接收端:一端是发送端,另外一端是接收端:2半双工发式半

6、双工发式每端口由一个发送器和接收器每端口由一个发送器和接收器, 通过开关连接在线路上通过开关连接在线路上, 数据数据可以双方交换,但不能同时发送和接收可以双方交换,但不能同时发送和接收.3. 全双工方式全双工方式通信双方用两个独立的收发器单独连接通信双方用两个独立的收发器单独连接,可以同时发送和接收可以同时发送和接收数据数据,因而提高了速度。因而提高了速度。4 波特率波特率单位时间内传送的信息量。以每秒传送的位为单位:单位时间内传送的信息量。以每秒传送的位为单位:电传机:电传机:10 字符字符/秒,秒,1 个字符个字符 11 位,位,波特率位:波特率位:1011=110(波特)(波特)发送器接

7、收器发送器接收器接收器发送器发送器接收器接收器发送器位宽:传送过程中平均每位占用时间位宽:传送过程中平均每位占用时间Td = 9.1ms(1/110)1010.2 串行通信总线标准及接口串行通信总线标准及接口在测控系统中在测控系统中, 计算机通信主要采用异步串行通信方式计算机通信主要采用异步串行通信方式, 常用的常用的异步串行通信接口标准有三种:异步串行通信接口标准有三种:RS-232(RS-232ARS-232BRS-232C)RS-449 (RS422RS423RS485)20mA 电流环电流环一、一、 通信方式的选取通信方式的选取1通信速率和通信距离通信速率和通信距离这两个方面是相互制约

8、的这两个方面是相互制约的, 降低通信速率降低通信速率, 可以提高通信距离可以提高通信距离RS-232C:速率:速率:20Kbit/S,最大通信距离:,最大通信距离:15mRS422:10Mbit/s,:300m90Kbit/s,:1200m2抗干扰能力抗干扰能力采用标准的通信接口采用标准的通信接口, 本身具有一定的抗干扰能力本身具有一定的抗干扰能力, 但是工业现但是工业现场的情况往往很恶劣,因而要根据具体情况进行选择。场的情况往往很恶劣,因而要根据具体情况进行选择。RS232C:一般场合:一般场合RS422:共模信号比较强共模信号比较强光纤:光纤:电磁干扰较强电磁干扰较强二、二、 RS232C

9、 简介简介美国电子工业协会(美国电子工业协会(EIA)公布的一种异步通信标准:)公布的一种异步通信标准:RS232C 标准:标准:设备之间通信的距离不大于设备之间通信的距离不大于 15 米米最大传输速率最大传输速率 20KB/S采用负逻辑采用负逻辑: “1” 5V 15V“0” +5V + + 15V不带负载时输出电平:不带负载时输出电平:2 25V +2+25V输出短路电流:输出短路电流: 0.5A最大负载电容最大负载电容:2500pFTTL 电平可以由专用集成电路转换成电平可以由专用集成电路转换成 RS232C 标准标准;如如: MC1488 或或 75188TTLRS232CMC1489

10、 或或 75189RS232CTTL+12V+5VTTLTTL1212V由于由于 MC1488 需要采用需要采用12V 电源电源,一般在单片机通信中大量一般在单片机通信中大量使用的是只需要使用的是只需要+5V 电源、具有发送和接收的一体化芯片,如电源、具有发送和接收的一体化芯片,如:MAX232、ICL232、ADM202 等。等。MAX232 芯片及接口芯片及接口MC1488MC1489内部有两路接收器和发送器内部有两路接收器和发送器具有电源变换电路具有电源变换电路C5VCCC3+10VC110VC2C4T1int1114T1outT2int107T2outR1out1213R1inR2ou

11、t98R2intMAX232 原理图原理图电源变换电路:电源变换电路:C1,C2,C3,C4,V+,V;T1inT1outR1outR1inMCS51 双机通信(利用双机通信(利用 MAX232)C1+V+5V至+10V(倍压器)C1-C2+V-+10V 至 10V(电压反向器)C2-T1T1R1R2MCS51TXDRXDGNDMCS 51RXDTXDGNDMAX232MAX232三、三、 调制与解调调制与解调RS232C 通信距离很短,通信距离很短,RS422 通信距离不过通信距离不过 1200 米;米;更长距离需采用调制与解调。更长距离需采用调制与解调。1010.3.3MCS-51MCS-

12、51 的串行口的结构的串行口的结构80518051 有一个可编程的全双工串行通信接口有一个可编程的全双工串行通信接口,它可作它可作 UARTUART 用用,也可作也可作同步移位寄存器同步移位寄存器,其帧格式可有其帧格式可有 8 8 位位、1010 位或位或 llll 位位,并能设置各种并能设置各种波特率,给使用者带来很大的灵活性。波特率,给使用者带来很大的灵活性。一、结一、结构构805l805l 通过引脚通过引脚 RXD(P3RXD(P30 0,串行数据接收端,串行数据接收端) )和引脚和引脚 TXD(P3.lTXD(P3.l,串行数据发送端串行数据发送端) )与外界进行通信与外界进行通信。

13、其内部结构简化示意图如图所示其内部结构简化示意图如图所示。串行口内部结构示意图串行口内部结构示意图图中有两个物理上独立的接收、发送缓冲器图中有两个物理上独立的接收、发送缓冲器 SBUFSBUF,它们占用同,它们占用同一地址一地址 99H99H,可同时发送可同时发送、接收数据接收数据。发送缓冲器只能写入发送缓冲器只能写入,不能读不能读出,接收缓冲器只能读出、不能写入。出,接收缓冲器只能读出、不能写入。串行发送与接收的速率与移位时钟同步串行发送与接收的速率与移位时钟同步。 80518051 用定时器用定时器 T1T1 作为作为串行通信的波特率发生器串行通信的波特率发生器, T1T1 溢出率经溢出率

14、经 2 2 分频分频( (或不分频或不分频) )又经又经 1616 分分频作为串行发送或接收的移位脉冲。移位脉冲的速率即是波特率。频作为串行发送或接收的移位脉冲。移位脉冲的速率即是波特率。从图中可看出从图中可看出, 接收器是双缓冲结构接收器是双缓冲结构, 在前在前个字节被从接收缓个字节被从接收缓冲器冲器 SBUFSBUF 读出之前读出之前, 第二个字节即开始被接收第二个字节即开始被接收( (串行输入至移位寄存串行输入至移位寄存器器) ),但是,在第二个字节接收完毕而前,但是,在第二个字节接收完毕而前个字节个字节 CPUCPU 未读取时会丢未读取时会丢失前一个字节。失前一个字节。串行口的发送和接

15、收都是以特殊功能寄存器串行口的发送和接收都是以特殊功能寄存器 SBUFSBUF 的名义进行读的名义进行读或写的,当向或写的,当向 SBUFSBUF 发发“写写”命令时命令时( (执行执行 MOVMOV SBUFSBUF,A A 指令指令) ),即是,即是向发送缓冲器向发送缓冲器 SBUFSBUF 装载并开始由装载并开始由 TXDTXD 引脚向外发送一帧数据,发送引脚向外发送一帧数据,发送完便使发送中断标志位完便使发送中断标志位 TITI1 1。在满足串行口接收中断标志位在满足串行口接收中断标志位 RIRISCONSCON0 00 0 的条件下,置的条件下,置允许接收位允许接收位 REN(SCO

16、NREN(SCON 4)4)1 1 就会启动接收一帧数据进入输入移位寄就会启动接收一帧数据进入输入移位寄存器存器, 并装载到接收并装载到接收 SBUFSBUF 中中, 同时使同时使 RIRIl l。 当发读当发读 SBUFSBUF 命令时命令时( (执执行行 MOVMOVA A, SBUFSBUF 指令指令) ), 即是由接收缓冲器即是由接收缓冲器(SBUF)(SBUF)取出信息通过取出信息通过 8058051 1内部总线送内部总线送 CPUCPU。对于发送缓冲器对于发送缓冲器, 因为发送时因为发送时 CPUCPU 是主动的是主动的, ,不会发生重迭错误不会发生重迭错误,所以不需要用双缓冲结构

17、来保持最大传送速率。所以不需要用双缓冲结构来保持最大传送速率。二、串行口控制字及控制寄存器二、串行口控制字及控制寄存器80518051 串行口是一个可编程接口,对它的编程只用两个控制字分别写串行口是一个可编程接口,对它的编程只用两个控制字分别写入特殊功能寄存器入特殊功能寄存器: 串行口控制寄存器串行口控制寄存器 SCON(98H)SCON(98H)和电源控制寄存和电源控制寄存器器PCON(97H)PCON(97H)个即可。个即可。1 1S SCON(98H)CON(98H)80518051 串行通信的方式选择、接收和发送控制以及串行口的状态串行通信的方式选择、接收和发送控制以及串行口的状态标志

18、等均由特殊功能寄存器标志等均由特殊功能寄存器 SCONSCON 控制和指示。控制和指示。其控制字格式如图所示其控制字格式如图所示: :SCONSCOND7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D098H98HSM0SM0SM1SM1SM2SM2RENRENTB8TB8RB8RB8TITIRIRI(1)(1)SM0SM0 和和 SMlSMl串行口工作方式选择位串行口工作方式选择位。 两个选择位对两个选择位对应应4 4种通信方式种通信方式( (见见表表2)2),其个其个 foscfosc 是振荡频率。是振荡频率。表表 2 2串行口的工作方式串行口的工作方式SM0SM0SM1SM1

19、工作方工作方式式说说明明波波 特特 率率0 00 0方式方式 0 0同步移位寄存同步移位寄存器器fosc/2fosc/20 01 1方式方式 1 11010 位异步收发位异步收发由定时器由定时器 1 1 控制控制1 10 0方式方式 2 21111 位异步收发位异步收发fosc/32fosc/32 或或 fosc/64fosc/641 11 1方式方式 3 31111 位异步收发位异步收发由定时器由定时器 1 1 控制控制(2)(2)SM2SM2多机通信控制位,主要用于方式多机通信控制位,主要用于方式 2 2 和方式和方式 3 3。若置若置 SM2SM21 1,则允许多机通信。,则允许多机通信

20、。多机通信协议规定多机通信协议规定,第第 9 9 位数据位数据(D8)(D8)为为 l l,说明本帧数据为地址说明本帧数据为地址帧;若第帧;若第 9 9 位为位为 0 0,则本帧为数据帧。,则本帧为数据帧。当一个当一个 8051(8051(主机主机) )与多个与多个 8051(8051(从机从机) )通信时,所有从机的通信时,所有从机的 SMSM2 2位都置位都置 1 1。主机首先发送的一帧数据为地址主机首先发送的一帧数据为地址,即某从机机号即某从机机号,其中其中第第9 9 位位为为 1 1、 被寻地址的某个从机接收到数据后被寻地址的某个从机接收到数据后, 将其中将其中第第 9 9 位装位装入

21、入 RB8RB8。从机依据收到的从机依据收到的第第9 9位数据位数据(RR(RR8 8个个) )的值来决定从机可否再接收主机的值来决定从机可否再接收主机的信息,若的信息,若(RB8)(RB8)0 0,说明是数据帧,则使接收中断标志位,说明是数据帧,则使接收中断标志位 RIRI0 0,信息丢失;若信息丢失;若 RB8RB81 1,说明是地址帧,数据装入,说明是地址帧,数据装入 SBUFSBUF 并置并置 RIRI1 1,中断所有从机中断所有从机 被寻址的目标从机清除被寻址的目标从机清除 SM2SM2 以接收主机发来的一帧数以接收主机发来的一帧数据。其他从机仍然保持据。其他从机仍然保持 SM2SM

22、21 1。若若 SM2SM20 0,即不属于多机通信情况,则接收一帧数据后不管,即不属于多机通信情况,则接收一帧数据后不管第第 9 9 位数据是位数据是 0 0 还是还是 1 1 都置都置 RIRIl l,接收到的数据装入,接收到的数据装入 SBUFSBUF 中。中。根据根据 SM2SM2 这个功能,可实现多个这个功能,可实现多个 80518051 应用系统的串行通信。应用系统的串行通信。在方式在方式 1 1 时,若时,若 SM2SM21 1,则只有接收到有效停止位时,则只有接收到有效停止位时,RIRI 才才置置1 1,以便接受下一帧数据。,以便接受下一帧数据。在方式在方式 0 0 时,时,S

23、M2SM2 必须是必须是 0 0 。(3)(3)RENREN允许接收控制位。由软件置允许接收控制位。由软件置 1 1 或清或清 0 0,只有当,只有当 RENRENl l 时才允许接收时才允许接收, 相当于串行接收的开关相当于串行接收的开关; 若若 RENREN0 0、 则禁止接收则禁止接收。在串行通信接收控制程序中,如果满足在串行通信接收控制程序中,如果满足 RIRI0 0,置位,置位 RENREN1(1(允允许接收许接收) )的条件,就会启动一次接收过程,一帧数据就装载入接的条件,就会启动一次接收过程,一帧数据就装载入接收收SBUFSBUF 中。中。(4)(4)TB8TB8发送数据的第发送

24、数据的第 9 9 位位(D8)(D8)装入装入 TB8TB8 中中。 在方式在方式 2 2 或方或方式式 3 3 中中 根据发送数据的需要由软件置位或复位根据发送数据的需要由软件置位或复位。 在许多通信协议中在许多通信协议中可作奇偶校验位,也可在多机通信中作为发送地址帧或数据帧可作奇偶校验位,也可在多机通信中作为发送地址帧或数据帧的标志位。对于后者的标志位。对于后者 TB8TB81 1,说明发送该帧数据为地址;,说明发送该帧数据为地址;TE8TE80 0,说明发送该帧数据为数据。说明发送该帧数据为数据。在方式在方式 0 0 和方式和方式 1 1 中,该位末用。中,该位末用。(5)(5)RB8R

25、B8接收数据的第接收数据的第 9 9 位位。 在方式在方式 2 2 或方式或方式 3 3 中中、 接收到接收到的第的第 9 9 位数据放在位数据放在 RB8RB8 位位。 它或是约定的奇偶校验位它或是约定的奇偶校验位, 或是约定的或是约定的地址数据标识位,在方式地址数据标识位,在方式 2 2 和和 3 3 多机通信中,若多机通信中,若 SM2SM21 1,如果,如果RB8RB8l l,说明收到的数据为地址帧。,说明收到的数据为地址帧。在方式在方式 1 1 中中, 若若 SM2SM20(0(即不是多机通信情况即不是多机通信情况) ), RB8RB8 中存放的是中存放的是已接收到的停止位。已接收到

26、的停止位。在方式在方式 0 0 中,该位末用。中,该位末用。(6)(6)TITI发送中断标志。在一帧数据发送完时被置位。在方发送中断标志。在一帧数据发送完时被置位。在方式式 0 0 串行发送第串行发送第 8 8 位结束时位结束时, 或其它方式串行发送到停止位的开始时或其它方式串行发送到停止位的开始时由硬件置位,可用软件查询。它同时也申请中断,由硬件置位,可用软件查询。它同时也申请中断,TITI 置位意味着置位意味着向向CPUCPU 提供提供“发送缓冲器发送缓冲器 SBUFSBUF 已空已空”的信息的信息,CPUCPU 可以准备发送下一帧可以准备发送下一帧数据数据。 串行口发送中断被响应后串行口

27、发送中断被响应后, TITI 不会自动复不会自动复 0 0, 必须由软件清必须由软件清 0 0。(7)RI(7)RI接收中断标志。接收中断标志。 在接收到一帧有效数据后由硬件置在接收到一帧有效数据后由硬件置位位。在方式在方式 0 0 中中,第第 8 8 位数据发送结束时位数据发送结束时,由硬件置位由硬件置位;在其它三种在其它三种方式下,则在接收到停止位中间时由硬件置位。方式下,则在接收到停止位中间时由硬件置位。RIRI1 1,中请中断。,中请中断。表示一帧数据接收结束表示一帧数据接收结束, 并已装入接收并已装入接收 SBUFSBUF 中中, 要求要求 CPUCPU 取走数据取走数据。CPUCP

28、U 响应中断响应中断,取走数据取走数据。RIRI 也必须内软件清也必须内软件清 0 0,解除中断申请解除中断申请,并并准备接收下一帧数据。准备接收下一帧数据。串行发送中断标志串行发送中断标志 TITI 和接收中断标志和接收中断标志 RIRI 是同一个中断源,是同一个中断源,CPCPU U事先不知道是发送中断事先不知道是发送中断 TITI 还是接收中断还是接收中断 RIRI 产生的中断请求产生的中断请求, 所以在所以在全双工通信时,必须由软件来判别。全双工通信时,必须由软件来判别。复位时,复位时,SCONSCON 所有位均清所有位均清 0 0 。2 2PCON(87H)PCON(87H)电源控制

29、寄存器电源控制寄存器 PCONPCON 中只有一位中只有一位 SMODSMOD 与串行口工作有关与串行口工作有关, 如图如图所示:所示:PCONPCOND7D787H87HSMODSMOD电源控制寄存器电源控制寄存器SMODSMOD波特率倍增位波特率倍增位。在串行口方式在串行口方式 1 1、方式方式 2 2 和方式和方式 3 3 时时,波波特率和特率和2 2SMODSMOD成正比;即当成正比;即当 SMODSMOD1 1 时,波特率提高一倍。复位时,时,波特率提高一倍。复位时,SMODSMOD0 0。三、串行通信工作方式三、串行通信工作方式根据实际需要根据实际需要,805l805l 串行口可设

30、置为四种工作方式串行口可设置为四种工作方式;可有可有 8 8 位位,1010 位和位和 1111 位帧格式。位帧格式。方式方式 0 0 以以 8 8 位数据为一帧位数据为一帧、 不设起始位和停止位不设起始位和停止位, 先发送或接收先发送或接收最低位。其帧格式如下:最低位。其帧格式如下:D0D0D1D1D2D2D3D3D4D4D5D5D6D6D7D7方式方式 1 1 以以 1010 位数据为一帧位数据为一帧, ,设有一个起始位设有一个起始位“0 0”和一个停止位和一个停止位“1 1”,中间是,中间是 8 8 位数据。先发送或接收最低位。其帧格式如下:位数据。先发送或接收最低位。其帧格式如下:0

31、0D0D0D1D1D2D2D3D3D4D4D5D5D6D6D7D71 1方式方式 2 2 和和 3 3 以以 1111 位为位为 1 1 帧传输帧传输,设有设有 1 1 个起始位个起始位“0 0”,8 8 个数个数据位,据位,1 1 个附加第九位和个附加第九位和 1 1 个停止位个停止位“1 1”,其帧格式为:,其帧格式为:0 0D0D0D1D1D2D2D3D3D4D4D5D5D6D6D7D7D8D81 1附加第九位附加第九位(D8)(D8)由软件置由软件置 l l 或清或清 0 0。发送时在发送时在 TB8TB8 中中,接收时接收时送送RB8RB8 中。中。1.1.串行口方式串行口方式 0

32、0方式方式 0 0 为同步移位寄存器输入输出方式为同步移位寄存器输入输出方式, 常用于扩展常用于扩展 I IO O 口口。串行数据通过串行数据通过 RxDRxD 输入或输出输入或输出, 而而 TxDTxD 用于输出移位时钟用于输出移位时钟, 作为外接作为外接部件的同步信号,如图为发送电路及时序部件的同步信号,如图为发送电路及时序: :这种方式不适用于两个这种方式不适用于两个 80518051 之间的直接数据通信,但可以通过之间的直接数据通信,但可以通过外接移位寄存器来实现单片机的接口扩展外接移位寄存器来实现单片机的接口扩展。 例如例如, 采用采用 74Lsl6474Lsl64 可用可用于扩展并

33、行输出口于扩展并行输出口,74Ls74Ls1 16565 可用于扩展输入口可用于扩展输入口。在这种方式下在这种方式下,收收发的数据为发的数据为 8 8 位位,低位在前低位在前,无起始位无起始位、奇偶位及停止位奇偶位及停止位,波特率波特率固定为振荡器频率固定为振荡器频率 foscfosc 的的 l l1212,即:,即:方式方式 0 0 波特率波特率fosc/12fosc/12例如,当晶体振荡频率为例如,当晶体振荡频率为 12MHz12MHz 时,则波待率为时,则波待率为 1Mb1Mbs s。发送过程中发送过程中, 当执行一个数据写入发送缓冲器当执行一个数据写入发送缓冲器 SBUF(99H)SB

34、UF(99H)的指令的指令时,串行口把时,串行口把 SBUFSBUF 中中 8 8 位数据以位数据以 foscfosc1212 的波待率从的波待率从 RxD(P3RxD(P30)0)端输出,发送完毕置中断标志端输出,发送完毕置中断标志 TITI1 1,方式,方式 0 0 发送时序如图所示发送时序如图所示. .写写 SBUFSBUF 指令在指令在 S6P1S6P1 处产生处产生个正脉冲,在下一个机器周期个正脉冲,在下一个机器周期的的S6P2S6P2 处数据的最低位输出到处数据的最低位输出到 RxD(P3RxD(P30)0)脚上;在再下一个机器周期脚上;在再下一个机器周期的的 S3S3、S4S4、

35、S5S5 输出移位时钟为低电平输出移位时钟为低电平,而在而在 S6S6 及下一个机器周期及下一个机器周期的的S1S1、S2S2 为高电平,就这样将为高电平,就这样将 8 8 位数据由低位至高位一位一位顺序通位数据由低位至高位一位一位顺序通过过 RxRxD D 线输出线输出, 并并在在 TxTxD D 脚上输脚上输出出 foscfosc1 12 2 的移位时钟的移位时钟。 在在 写写 SBUFSBUF”有效后的第有效后的第 1010 机器周期的机器周期的 SlPlSlPl 将发送中断标志将发送中断标志 TITI 置位。图置位。图中中74Ls16474Ls164 是是 TTLTTL“串入并出串入并

36、出”移位寄存器。移位寄存器。接收时接收时,用软件置用软件置 RENREN1(1(同时同时 RIRI0)0),即开始接收即开始接收。接收时序接收时序如图所示如图所示: :当使当使 SCONSCON 中的中的 RENREN1(RI1(RI0)0)时,产生一个正的脉冲,在下时,产生一个正的脉冲,在下个机器周期个机器周期的的S3P1S3P1S5PS5P2 2从从TxD(P3TxD(P3 1)1)脚上输出低电平的移位时钟脚上输出低电平的移位时钟,在此机器周期的在此机器周期的 S5P2S5P2 对对 P3P3 0 0 脚采样脚采样, 并在本机器周期的并在本机器周期的 S6P2S6P2 通过通过串行口内的输

37、入移位寄存器将采样值移位接收串行口内的输入移位寄存器将采样值移位接收; 在同一个机器周期在同一个机器周期的的S6P1S6P1 到下一个机器周期的到下一个机器周期的 S2P2S2P2,输出移位时钟为高电平。于是,将,输出移位时钟为高电平。于是,将数据字节从低位至高位一位一位地接收下来并装入数据字节从低位至高位一位一位地接收下来并装入 SBUFSBUF 中,在启动中,在启动接收过程接收过程( (即即清清 R RI I 位位) )将将 SCOSCON N 中中的的 R RI I 清清 0 0 之后的之后的第第 1 10 0 个机器周期个机器周期的的S1PlS1Pl,RIRI 被置位。这一帧数据接收完

38、毕,可进行下被置位。这一帧数据接收完毕,可进行下帧接收。帧接收。2 2串行口方式串行口方式 1 1方式方式 1 1 真正用于实行发送或接收,为真正用于实行发送或接收,为 1010 位通用异步接口。位通用异步接口。TxTxD D与与 RxDRxD 分别用于发送与接收数据,收发一帧数据的格式为:分别用于发送与接收数据,收发一帧数据的格式为:1 1 位起始位、位起始位、8 8 使数据位使数据位( (低位在前低位在前) )、1 1 位停止位,共位停止位,共 1010 位。位。在接收时停止位进入在接收时停止位进入 SC0NSC0N 的的 RD8RD8,此方式的传送波特率可调。,此方式的传送波特率可调。串

39、行口方式串行口方式 1 1 的发送和接收时序如图所示:的发送和接收时序如图所示:方式方式 1 1 发送时发送时, 数据从引脚数据从引脚 TxDTxD 端输出端输出, 当执行数据写入发送缓当执行数据写入发送缓冲器冲器 SBUFSBUF 的命令时的命令时 就启动了发送器开始发送就启动了发送器开始发送。 发送时的定时信号发送时的定时信号,也就是发送移位时钟也就是发送移位时钟(TX(TX 时钟时钟) ), 是内部定时器是内部定时器 T1T1 送来的溢出信号经送来的溢出信号经过过 1616 分频或分频或 3232 分频分频( (取决取决 SMODSMOD 的值的值) )而取得的。而取得的。TXTX 时钟

40、就是发送波特率,可见方式时钟就是发送波特率,可见方式 1 1 波特率是可变的。发送开始的波特率是可变的。发送开始的同时同时,SENDSEND 变为有效变为有效,将起始位向将起始位向 TxDTxD 输出输出,此后每过此后每过个个 TXTX 时钟时钟周期周期(16(16 分频计数器溢出一次为一个时钟周期分频计数器溢出一次为一个时钟周期, 因此因此, TxTx 时钟频率由时钟频率由波待率决定波待率决定) )产生一个移位脉冲,并由产生一个移位脉冲,并由 TXDTXD 输出一个数据位,输出一个数据位,8 8 位数位数据位全部发送完后,置位据位全部发送完后,置位 TITI,并申请中断。再经一个时钟周期,并

41、申请中断。再经一个时钟周期 SENSEND D失效。失效。方式方式 1 1 接收时,数据从引脚接收时,数据从引脚 RXDRXD 端输入。接收是在端输入。接收是在 SCONSCON 寄存器寄存器中中 RENREN 位置位置 1 1 的前提下的前提下,并检测到起始位并检测到起始位(RxD(RxD 上检测到上检测到“1 1”“0 0”的跳变,即起始位的跳变,即起始位) )而开始的。接收时,定时信号有两种:一种是接而开始的。接收时,定时信号有两种:一种是接收移位时钟收移位时钟(RX(RX 时钟时钟) ),它的频率和传送波特率相同,也是由定时,它的频率和传送波特率相同,也是由定时器器T1T1 的溢出信号

42、经过的溢出信号经过 1616 或或 3232 分频而得到的;另一种是位检测器采样分频而得到的;另一种是位检测器采样脉冲,它的频率是脉冲,它的频率是 RXRX 时钟的时钟的 1616 倍,亦即在一位数据的期间有倍,亦即在一位数据的期间有 1616 位位检测器采样脉冲,为完成检测,以检测器采样脉冲,为完成检测,以 1616 倍于波特宰的速率对倍于波特宰的速率对 RXDRXD 进行进行采样采样。 为了接收准确无误为了接收准确无误, 在正式接收数据之前在正式接收数据之前, 还必须判定这个还必须判定这个 “l l”“0 0”跳变是否是干扰引起的跳变是否是干扰引起的。为此为此,在这位中间在这位中间( (即

43、一位时间分即一位时间分成成1616 等份,在第等份,在第 7 7、8 8 及及 9 9 等份等份) )连续对连续对 RxDRxD 采样三次,取其中两次相采样三次,取其中两次相同的值进行判断所检测的值同的值进行判断所检测的值。 这样能较好地消除干扰的影响这样能较好地消除干扰的影响。 当确认当确认是真正的起始位是真正的起始位“0 0”后,就开始接收一帧数据。当一帧数据接收完后,就开始接收一帧数据。当一帧数据接收完毕后,必须同时满足以下两个条件、这次接收才真正有效。毕后,必须同时满足以下两个条件、这次接收才真正有效。RIRI0 0,即上一帧数据接收完成时,即上一帧数据接收完成时,RIRI1 1 发出

44、的中断请求已发出的中断请求已被响应,被响应,SBUFSBUF 中数据已被取走。由软件使中数据已被取走。由软件使 RIRI0 0,以便提供,以便提供“接接收收SBUFSBUF 已空已空”的信息。的信息。SM2SM20 0 或收到的停止位为或收到的停止位为 1(1(方式方式 1 1 时停止位进入时停止位进入 RB8)RB8), 则将则将接收到的数据装入串行口的接收到的数据装入串行口的 SBUFSBUF 和和 RB8(RB8RB8(RB8 装入停止位装入停止位) ),并置,并置位位RIRI;如果不满足接收到的数据不能装入;如果不满足接收到的数据不能装入 SBUFSBUF,这意味着该帧信息,这意味着该

45、帧信息将会丢失。将会丢失。值得注意的是:在整个接收过程中,保证值得注意的是:在整个接收过程中,保证 RENRENl l 是一个先决条是一个先决条件。只有当件。只有当 RENREN1 1,才能对,才能对 RXDRXD 进行检测。进行检测。3 3串行口方式串行口方式 2 2 和方式和方式 3 3串行口工作在方式串行口工作在方式 2 2 和方式和方式 3 3 均为每帧均为每帧 1111 位异步通信格式,位异步通信格式,由由TxDTxD 和和 RXDRXD 发送与接收发送与接收( (两种方式操作是完全一样的,所不同的只是两种方式操作是完全一样的,所不同的只是特波率特波率) )。每帧。每帧 1111 位

46、;位;l l 位起始位,位起始位,8 8 位数据位位数据位( (低位在前低位在前) ),1 1 位可位可编程的第编程的第 9 9 数据位和数据位和 1 1 位停止位。发送时,第位停止位。发送时,第 9 9 数据位数据位(TB8)(TB8)可以设可以设置为置为 1 1 或或 0 0,也可将奇偶位装入,也可将奇偶位装入 TB8TB8,从而进行奇偶校验;接收时,从而进行奇偶校验;接收时,第第 9 9 数据位进入数据位进入 SCONSCON 的的 RB8RB8。方式方式 2 2 和方式和方式 3 3 的发送、接收时序如图所示。其操作与方式的发送、接收时序如图所示。其操作与方式 1 1类似。类似。发送前

47、,先根据通信协议由软件设置发送前,先根据通信协议由软件设置 TB8(TB8(如作奇偶校验位或地如作奇偶校验位或地址数据标志位址数据标志位) ),然后将要发送的数据写入然后将要发送的数据写入 SBUFSBUF,即能启动发送过即能启动发送过程程。串行口能自动把串行口能自动把 TB8TB8 取出取出,并装入列第并装入列第 9 9 位数据的位置位数据的位置,再逐一再逐一发送出去。发送完毕,使发送出去。发送完毕,使 TITIl l。接收时接收时, 使使 SCONSCON 中的中的 RENREN1 1, 允许接收允许接收。 当检测到当检测到 RXDRXD 端有端有 “1 1”到到“0 0”的跳变的跳变(

48、(起始位起始位) )时开始接收时开始接收 9 9 位数据,送入移位寄存器位数据,送入移位寄存器( (9 9垃垃) )。半满足。半满足 RIRI0 0 且且 SM2SM20 0 或接收到的第或接收到的第 9 9 位数据为位数据为 1 1 时,前时,前 8 8位数据送入位数据送入 SBUFSBUF, 附加的第附加的第 9 9 位数据送入位数据送入 SCONSCON 中的中的 RB8RB8, 置置 RIRI 为为 1 1;否则,这次接收无效。否则,这次接收无效。四、波特率设计四、波特率设计在串行通信中在串行通信中, 收发双方对发送或接收的数据速率要有一定的约收发双方对发送或接收的数据速率要有一定的约

49、定定, 我们通过软件对我们通过软件对 SC0NSC0N 串行口编程可约定四种工作方式串行口编程可约定四种工作方式。 其中其中 方方式式 0 0 和方式和方式 2 2 的波特率是固定的的波特率是固定的, 而方式而方式 1 1 和方式和方式 3 3 的波特率是可变的波特率是可变的,由定时器的,由定时器 TlTl 的溢出率来决定。的溢出率来决定。串行口的四种工作方式对应三种波特率串行口的四种工作方式对应三种波特率。 由于输入的移位时钟的由于输入的移位时钟的来源不同,所以,各种方式的波特率计算公式也不同。来源不同,所以,各种方式的波特率计算公式也不同。1 1方式方式 0 0 的波特率的波特率方式方式

50、0 0 波特率波特率foscfosc12122 2方式方式 2 2 的波特率的波特率串行口方串行口方式式2 2波特率的产生与方波特率的产生与方式式0 0不同不同, 即输入的时钟源不同即输入的时钟源不同,其时钟输入部分见图所示:其时钟输入部分见图所示:控制接收与发送的移位时钟由振荡频控制接收与发送的移位时钟由振荡频率率 fosfosc c 的的 P P2 2 时钟时钟( (即即foscfosc2)2)给出给出, 所以所以, 方式方式 2 2 波特率取决于波特率取决于 PCONPCON 中中 SMODSMOD 位的值位的值: 当当 SMODSMOD0 0 时,波特率为时,波特率为 foscfosc

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文((电)单片机资料:串行口s.DOC)为本站会员(罗嗣辉)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|