您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 第9章 串行口及其应用
专业IC嵌入式教育机构Fountainheadpointeducation单片机原理与应用邓耀辉源点教育第9章串行口及其应用专业IC嵌入式教育机构Fountainheadpointeducation问题1串行通讯做什么用途专业IC嵌入式教育机构Fountainheadpointeducation本章重点1串行通讯的方式251串行的工作方式及其特点专业IC嵌入式教育机构Fountainheadpointeducation9.1MCS-51单片机的串行接口9.2数据缓冲寄存器SBUF9.3串行口控制寄存器SCON9.4串行口的模式09.1.1单片机系统中的串行接口及特点9.1.2串行通讯应用示意图9.1.3关于串行通讯中的基本概念9.4.1模式0电路框图9.4.2模式0的工作原理(发送)9.4.3串行口模式0的时序信号(发送)9.4.4模式0的工作原理(接收)9.4.5模式0的时序信号(接收)串行口及其应用专业IC嵌入式教育机构Fountainheadpointeducation9.6串行口模式2、39.7波特率及定时器T1的设定9.5串行口模式19.5.1串行口模式1时数据帧格式及接收采样示意图9.6.1模式2、3的应用之一:带奇偶校验位的数据传送9.6.2模式2、3的应用之二:多机通讯9.6.3模式2、3使用时要注意的问题串行口及其应用9.8串行口的应用专业IC嵌入式教育机构Fountainheadpointeducation9.1.1单片机系统中的串行接口既特点串行口的设计使MCS-51单片机的功能大大增加.可以用串行通讯的方式实现单片机与单片机或者是单片机与微机等设备之间的数据交换.串行通讯电路简单,成本低,可以实现远距离的数据传输。缺点是传输速度低于并行数据传输。在一个嵌入式系统中,往往采用多单片机构成一个完整的控制系统,它们之间以串行通信的方式进行数据交换---多机通讯(如图).从机从机从机从机主机问题:为什么要使用串口?串口相对并口来说口线少,在长距离通讯中节约成本专业IC嵌入式教育机构Fountainheadpointeducation9.1.2串行通讯应用示图TXDRXDRXDTXDTXDRXDRXDTXDRS-232或485RS-232或485TXDRXDRS-232PC机COM1,COM2单片机甲、乙之间近距离通讯单片机甲乙两地之间远距离单向通讯单片机与PC机之间的数据通讯返回前一次专业IC嵌入式教育机构Fountainheadpointeducation9.1.3关于串行通讯中的基本概念:字符帧:也称数据帧,它是由“起始位”“数据位”和“停止位”构成(如下图所示)。波特率:每秒钟传输二进制数据的个数.波特率使用的单位是:bps(bitperscond),既位/秒。异步通讯:数据是以字符或字节为单位组成字符帧传送的.数据是从发送端一帧一帧的发送,通过传输线为接收端一帧一帧的接收.发送与接收相互独立,互不同步。D0D1D2D3D4D5D6D7起始位停止位01一个字符帧的格式同步通讯:以数据块(一串字符)为一传送单位,字符间不加标识位,在一串字符开始用同步字符标识,通讯双方须严格同步,每一位携带时钟信息,硬件要求高,收发、程序比较复杂(时钟加入和剥离),但是可以应用更加复杂的纠错程序。专业IC嵌入式教育机构Fountainheadpointeducation9.2数据缓冲寄存器SBUFSBUF是用来存放串行口发送和接收数据的寄存器,在SFR的地址为99H.在物理上它对应两个不同的单元:发送寄存器和接收寄存器。CPU写SBUF就是开始发送数据(MOVSBUF,A);CPU读SBUF就是接收数据到A(MOVA,SBUF)。由于发送SBUF与接收的SBUF是两个不同的逻辑部件,所以在硬件设计上保证了51单片机串行口是一个可以同时发送与接收的”全双工”接口。专业IC嵌入式教育机构Fountainheadpointeducation串行接口输入/输出引脚:TXD(P3.1)、RXD(P3.0)数据格式如图:按不同方式,一帧位数8/10/11,发送/接收时,数据皆低位在前。一帧字符发送/接收结束,置位标志位(TI/RI)并申请SIO中断。中断控制:中断允许位ES中断入口:0023H停止位起始位D0D1D2D3D4D5D6D7停止位起始位返回本章首页D8D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7专业IC嵌入式教育机构Fountainheadpointeducation9.3串行口控制寄存器SCON地址:98HSM0SM1:串行口操作模式选择位.可以确定串行口的四种模式之一(如下表);SM0SM1SM2RENTB8RB8TIRISM0SM1模式功能波特率000同步移位寄存器模式Fosc/120118位异步通信UART可变1029位异步通信UARTFosc/64或/321139位异步通信UART可变返回前一次专业IC嵌入式教育机构FountainheadpointeducationRI:完成一帧数据接收的标志,原始应清零,接收完成RI=1并申请中断;TI:完成一帧数据发送的标志,原始应清零,发送完成TI=1同时申请中断;RB8:在9位数据传送的模式2、3时,接收到的第9位数据;TB8:在9位数据传送的模式2、3时,将要发送的第9位数据;REN:允许接收位,REN=1时允许接收.由软件置位或清零;SM0SM1SM2RENTB8RB8TIRI节电控制寄存器PCONSMOD(PCON.7):波特率加倍控制位。SMOD=1,波特率加倍,SMOD=0,则不加倍。专业IC嵌入式教育机构FountainheadpointeducationSM2:多机通信使能位.1,模式0、1时:SM2不用,应设为0。RI才能被正常激活并引发中断;2,模式2、3时:若SM2=0时,无论RB8如何,RI都能被激活(RI=1)。但是RI=1并不能引发中断!所以只能用查询的方式接收数据。若SM2=1,收到的第9位(RB8)=0时,则RI不会被激活;若SM2=1且RB8=1时,RI才能被激活=1,并引发中断。SM0SM1SM2RENTB8RB8TIRI返回上一页专业IC嵌入式教育机构Fountainheadpointeducation如何使用RI,TI标志(中断和查询)CPU与串行口之间不是同步工作的,两者之间的数据交换通过SBUF,何时交换必须借助于标志信号进行。RI(SCON.0):接收完一帧数据的标志。如果系统中断是开放的,则RI=1时会自动引发中断。用户可以通过中断服务程序将SBUF中的数据取出送累加器A。MOVA,SBUF。也可以使用查询的方式对RI进行检测,如果RI=1则执行:MOVA,SBUF。TI(SCON.1):发送完一帧数据标志。如果系统中断是开放的,则TI会自动引发中断。用户可以通过中断服务程序向SBUF输送下一个数据:MOVSBUF,A。也可以使用查询的方式对TI进行检测,如果TI=1则执行:MOVSBUF,A。专业IC嵌入式教育机构Fountainheadpointeducation9.4串行口的模式0特点:串行口做同步移位寄存器用,用于扩展并行I/O接口,其波特率为fosc/12.在这种模式下RXD(P3.0)做数据口;TXD(P3.1)做移位脉冲输出端.在移位过程中,先移数据的低位.注意:移位脉冲的频率就是模式0的波特率.模式0的主要功能是:可以使用一个串行口来扩展出8位、16位等并行口,且理论上可以扩展n*8位的并行口.MCS-51RXDTXDData外部移位寄存器cp移位脉冲串行数据并行的数据(8位)专业IC嵌入式教育机构Fountainheadpointeducation串行口模式0的时序信号(发送)S1~S6S1~S6S1~S6S1~S6S1~S6S1~S6S1~S6S1~S6S1~S6S1~S6S1~S6写SBUFSENDD1D0D2D3D4D5D6D7RXD端数据SHIFTTXD端同步脉冲TI中断标志Movsbuf,a指令送发送到结束的10个机器周期返回电路图专业IC嵌入式教育机构Fountainheadpointeducation模式0的工作原理(发送)单片机执行movsbuf,a指令的S6P2时,出现“写sbuf”信号:1,打开总线三态门使累加器中的数据送到SBUF中;2,使D型触发器置一,触发器的输出构成了SBUF的第9位;3,启动“发送控制器”开始发送。在“写SBUF信号”有效相隔一个机器周期后,“发送控制器”的SEND=1使RXD,TXD端的与门打开,使数据和移位脉冲输出。在TXD端,每一个机器周期中发出一个同步脉冲,同时在SEND=1期间,每一个S6P2时控制器发出一个SHIFT移位信号将SBUF中的数据右移一次(同时D型触发器清零)。这样:每当SBUF中的数据右移(发送)一位时,SBUF的左端便移入1个“0”。当SBUF中的数据右移7次后,检零器的7个输入端全为“0”,向控制器发出一个信号:通知控制器作最后一次移位,然后控制器的SEND=0停止发送数据和同步信号,TI被置位。返回电路图专业IC嵌入式教育机构Fountainheadpointeducation模式0的工作原理(接收)在满足REN=1且RI=0的条件下(实际上是一条写SCON指令),就会引发一次接收过程。在下一个机器周期的S6P2时刻,接收控制器将11111110写入移位寄存器。在下一个周期的S1P1使RECEIVE=1从而使TXD端的与门打开。同发送的过程类似:在后面的每一个机器周期从TXD端发出同步移位脉冲,在每一个S5P2时刻对RXD线进行采样。在S6P2时刻,控制器对寄存器进行移位,每左移一次右端就补进一位由RXD端输入的数据。当从RXD端输入7位数据时,开始最右端的“0”被移到寄存器的最左端,寄存器向控制器发信号,通知控制器做最后一次接收,并将完整的8位数据装入SBUF中。最后清RECEIVE,SCON中的RI置位,向CPU发中断申请。返回电路图专业IC嵌入式教育机构Fountainheadpointeducation模式0的时序信号(接收)S1~S6S1~S6S1~S6S1~S6S1~S6S1~S6S1~S6S1~S6S1~S6S1~S6S1~S6写SCON(RI=0)RECEIVESHIFTRI对RXD采样TXD同步脉冲RI中断标志返回电路图专业IC嵌入式教育机构Fountainheadpointeducation9.5串行口模式1特点:10位传输格式(1个起始位+8个数据位+1个停止位);波特率:可变波特率,由定时器T1的溢出率来确定,所以在此种模式下,首先要对T1进行初始化以确定串行口的波特率;发送操作:在TI=0,执行movsbuf,a指令后从TXD端开始发送数据。当发送完8位数据后自动的添加一个高电平的停止位,并将TI置位。接收操作:在REN=1且RI=0的条件下进行。串行口的接收控制器对RXD线进行采样,其采样频率是接收时钟的16倍。当连续8次采集到RXD线上为低电平时,检测电路便认定RXD线上有了“起始位”,在此后,便开始在每次第7、8、9三个脉冲时进行RXD采样,采取“三中取二”的原则来确定接收的数据(如图所示)。当接收到停止位时,必须满足:RI=0且SM2=0,才能把接收的数据送到SBUF中(停止位送SCON的RB8中,并使RI=1),否则数据丢失。专业IC嵌入式教育机构Fountainheadpointeducation串行口模式1时数据帧格式及接收采样示意图D0D1D2D3D4D5D6D7起始位8位数据停止位对RXD线的数据以16倍速度采样当连续8次采集到低电平时,便确认起始位到来在每个第7,8,9个脉冲对RXD采样并采用“以三取二”来确定采集的数据返回本节目录二7.8.9专业IC嵌入式教育机构Fountainheadpointeducation9.6串行口模式2、3特点:模式2、3都是11位传输格式((1个起始位+9个数据位
本文标题:第9章 串行口及其应用
链接地址:https://www.777doc.com/doc-3401564 .html