(2.7)--7章 串口通信技术单片机原理与应用技术.ppt
-
资源ID:96482965
资源大小:4.78MB
全文页数:67页
- 资源格式: PPT
下载积分:15金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
(2.7)--7章 串口通信技术单片机原理与应用技术.ppt
单片机原理单片机原理与应用与应用 第第7章章串口通信技术串口通信技术内容指南内容指南串行通信是单片机与外界进行信息交换的一种基本方式。AT89S51/52单片机有一个通用异步接收/发送器(UART)工作方式的全双工串行通信接口。本章介绍串行通信的基本概念,串行口的结构与控制寄存器,串行口的工作方式以及串行口的编程应用。学习目标学习目标掌握串行通信的基本概念。了解串行口的各种工作方式及其差异。了解串行口的基本应用。第7章单片机的串行接口7.1 串行通信概述串行通信概述7.2串行口结构与控制寄存器7.3串行口的工作方式7.4多机通信第7章单片机的串行接口 计算机与外界的信息交换称为计算机与外界的信息交换称为通信通信,通信,通信的基本方式可分为的基本方式可分为并行通信并行通信和和串行通信串行通信两种。两种。并行通信:特点特点:传送控制简单、速度快,但传输线较多,成本高。:传送控制简单、速度快,但传输线较多,成本高。数据的各位数据的各位同时同时在在多根数据多根数据线线上发送或接收。上发送或接收。第7章单片机的串行接口 串行通信特点特点:传送控制复杂、速度慢,传输线少,成本低:传送控制复杂、速度慢,传输线少,成本低 数据的数据的各位各位在在同一根数据线同一根数据线上依次上依次逐位逐位发送或接收。发送或接收。信息传输在一个方向上只占用一跟通信线,它既作为数据线,又作为联络信息传输在一个方向上只占用一跟通信线,它既作为数据线,又作为联络线。线。第7章单片机的串行接口串行通信按串行通信按同步方式同步方式和和编码格式编码格式不同又可分不同又可分为为异步通信异步通信和和同步通信同步通信两种方式。两种方式。特点:收、发设备时钟独立,以字符(帧)为单位传输。异步通信第7章单片机的串行接口 异步通信帧格式起始位(位起始位(位,0,0):其作用是向接收端表示发送端开始发送一帧数据。其作用是向接收端表示发送端开始发送一帧数据。数据位(位)数据位(位):58位均可,由低位到高位逐位传送。位均可,由低位到高位逐位传送。奇偶校验位(位,可无校验位)奇偶校验位(位,可无校验位):用来检验数据在传送过程中是否出错用来检验数据在传送过程中是否出错停止位(位停止位(位,1,1):表示一帧信息的结束,也为发送下一帧信息作好准备。表示一帧信息的结束,也为发送下一帧信息作好准备。第7章单片机的串行接口同步通信(SynchronousCommunication)同步字符数 据字符1数 据字符2数据字符n-1数 据字符n校 验字 符(校验字符)同步通信是一种连续传送数据的通信方式,一次通信传送多个字符数据,同步通信是一种连续传送数据的通信方式,一次通信传送多个字符数据,称为一帧信息。数据传输速率较高,通常可达称为一帧信息。数据传输速率较高,通常可达56000bps或更高。其缺点是要或更高。其缺点是要求发送时钟和接收时钟保持严格同步。求发送时钟和接收时钟保持严格同步。同步通信的数据帧格式同步通信的数据帧格式:特点:收、发设备统一时钟,以数据块为单位传输。例如器件之间的SPI第7章单片机的串行接口 串行通信的传输方向单工半双工全双工 5151单单片片机机有有1 1个个全全双双工工串串行口行口 双方通信只能双方通信只能单向单向传送数据传送数据接收和发送不能同时进行接收和发送不能同时进行两端数据允许同时收发两端数据允许同时收发第7章单片机的串行接口 传输速率与传输距离传输速率传输速率传输距离与传输速率的关系传输距离与传输速率的关系传输距离随波特率的增加而减小。传输距离随波特率的增加而减小。波特率(BaudRate)是串行通信中一个重要概念,它是指传输数据的速率,亦称比特率。波特率的定义是每秒传输二进制数码的位数。如:波特率为1200bps是指每秒钟能传输1200位二进制数码。波特率的倒数即为每位波特率的倒数即为每位数据传输时间数据传输时间。例如:波特率。例如:波特率为为1200bps,每位的传输时间为:,每位的传输时间为:1)(833.01200msdT=第7章单片机的串行接口第7章单片机的串行接口7.1串行通信概述7.2 串行口结构与控制寄存器串行口结构与控制寄存器7.3串行的工作方式7.4多机通信第7章单片机的串行接口AT89S51内部有1个可编程的全双工串行通信接口,可作为通用异步接收/发送器(UART),也可作为同步移位寄存器。通过引脚RXD(P3.0)和TXD(P3.1)与外界进行通信。结构组成:发送SBUF+接收SBUF+发送控制器+接收控制器+定时器T1+RXD+TXD第7章单片机的串行接口2个数据缓冲器SBUF在物理上是相互独立的,一个用于发送数据(SBUF发)、一个用于接收数据(SBUF收)。2个SBUF共用一个地址(99H),通过读写指令区别是对哪个SUBF的操作。第7章单片机的串行接口发送控制器的作用是在门电路和定时器T1的配合下,将SBUF发中的并行数据转为串行数据,并自动添加起始位、可编程位、停止位。这一过程结束后自动使发送中断请求标志位TI置1,用以通知CPU已将SBUF发中的数据输出到了TXD引脚。第7章单片机的串行接口接收控制器的作用是在输入移位寄存器和定时器T1的配合下,使来自RXD引脚的串行数据转为并行数据,并自动过滤掉起始位、可编程位、停止位。这一过程结束后自动使接收中断请求标志位RI置1,用以通知CPU接收的数据已存入SBUF收。第7章单片机的串行接口定时器T1的作用是产生用以收发过程中节拍控制的通信时钟。发送数据时,通信时钟的下降沿对应于数据移位输出;接收数据时,通信时钟的上升沿对应于数据位采样。通信时钟频率(波特率)由定时器的控制寄存器管理。第7章单片机的串行接口RXD(P3.0)和TXD(P3.1)用于串行信号或时钟信号的传入或传出。3412第二输入功能V 串行数据缓冲器,SBUF在物理上有两个SBUF:一个用于发送,另一个用于接收。在逻辑上只有一个SBUF(99H)。可根据用法区分功能:uchar counter;待发送存放变量SBUF=counter;完成一次数据发送counter=SBUF;完成一次数据接收CPU第7章单片机的串行接口 串行口控制寄存器SCON76543210SCONSM0SM1SM2RENTB8RB8TIRI字节地址:98HSM0SM1方式说明波特率000移位寄存器fosc/1201110位UART(8位数据)可变10211位UART(9位数据)fosc/64或fosc/3211311位UART(9位数据)可变SM0SM1:串行口工作方式选择位。第7章单片机的串行接口 串行口控制寄存器SCON76543210SCONSM0SM1SM2RENTB8RB8TIRI字节地址:98HSM2:多机通信控制位。多机通信仅在方式2和方式3下进行。当SM2=1,则只有接收到的第9位数据(RB8)为“1”时,才使RI置“1”,并将接收到的前8位数据送入SBUF;当接收到的第9位数据(RB8)为“0”时,则将接收到的前8位数据丢弃;当SM2=0时,则不论第9位数据是“1”还是“0”,都将前8位数据送入SBUF中,并使RI置“1”。REN:串行接受允许控制位。该位由软件置位或复位。当:串行接受允许控制位。该位由软件置位或复位。当REN=1,允许接收;当,允许接收;当REN=0,禁止接收。,禁止接收。第7章单片机的串行接口 串行口控制寄存器SCON76543210SCONSM0SM1SM2RENTB8RB8TIRI字节地址:98H TB8:方式:方式2和方式和方式3中要发送的第中要发送的第9位数据。该位由软件位数据。该位由软件置位或复位。在多机通信中,以置位或复位。在多机通信中,以TB8位的状态表示主机发位的状态表示主机发送的是地址还是数据:送的是地址还是数据:TB8=1表示地址,表示地址,TB8=0表示数据。表示数据。TB8还可用作奇偶校验位。还可用作奇偶校验位。RB8:方式:方式2和方式和方式3时,时,RB8存放接收到的第存放接收到的第9位数据。位数据。RB8也可用作奇偶校验位。在方式也可用作奇偶校验位。在方式1中,若中,若SM2=0,则,则RB8是接收到的停止位。在方式是接收到的停止位。在方式0中,该位未用。中,该位未用。第7章单片机的串行接口 串行口控制寄存器SCON76543210SCONSM0SM1SM2RENTB8RB8TIRI字节地址:98H TI:发送中断标志位。:发送中断标志位。TI=1,表示已结束一帧数据发送,表示已结束一帧数据发送,可由软件查询可由软件查询TI位标志,也可以向位标志,也可以向CPU申请中断。申请中断。RI:接收中断标志位。:接收中断标志位。RI=1,表示一帧数据接收结束。可,表示一帧数据接收结束。可由软件由软件查询查询RI位标志,也可以向位标志,也可以向CPU申请中断。申请中断。注意:注意:TI、RI在任何工作方式下都必在任何工作方式下都必须由软件清须由软件清0。第7章单片机的串行接口 电源控制寄存器电源控制寄存器PCON PCON SMOD:波特率倍增位。在串行口方式1、方式2、方式3时,若SMOD=1,则串行口波特率增加一倍。若SMOD=0,波特率不加倍。系统复位时,SMOD=0。76543210PCONSMODGF1GF0PDIDL字节地址:97H第7章单片机的串行接口第7章单片机的串行接口51单片机串行通信以定时器T1为波特率信号发生器,其溢出脉冲经过分频单元后送到收、发控制器中。分频单元的内部结构如下右图所示。T1溢出脉冲可有两种分频路径,即16分频或32分频,SMOD是决定分频路径的逻辑开关。分频后的通信时钟波特率为:第7章单片机的串行接口式中t为T1的定时时间合并上面两式可得可见,波特率的大小取决于T1的定时参数和SMOD参数。第7章单片机的串行接口7.1串行通信概述7.2串行口结构与控制寄存器7.3 串行口的工作方式串行口的工作方式7.4多机通信第7章单片机的串行接口SM0SM1方式功能说明0011010101238位同步移位寄存器方式10位数据异步通讯方式11位数据异步通讯方式11位数据异步通讯方式SM0和SM1:串行工作方式定义位。通过SM0和SM1不同的取值,可定义4种串行通信工作方式。方式08位同步移位寄存器方式第7章单片机的串行接口RXD:输入或输出引脚TXD:同步移位脉冲输出接收和发送都是8位波特率固定为:fosc/12此时SM2、RB8、TB8均应设置为0数据传输波特率固定为fosc/12由RXD引脚输入或输出数据TXD引脚输出fosc/12时钟信号第7章单片机的串行接口以8位数据为一帧,不设起始位和停止位,先发送或接收最低位。数据输出:数据输出:TI=0时,执行“SBUF=sentdata”启动发送,8位数据由低位到高位从RXD引脚送出,TXD发送同步脉冲。发送完后,由硬件置位TI。方式方式0 0输出的应用输出的应用-扩展并扩展并行输出口行输出口第7章单片机的串行接口数据输数据输入入:RI=0,REN=1时启动接收,数据从RXD输入,TXD输出同步脉冲。8位数据接收完,由硬件置位RI。可通过“rcvdata=SBUF”读取数据。方式方式0 0输入的应用输入的应用-扩展并扩展并行输入口行输入口第7章单片机的串行接口方式0主要用于串并转换(不是用于异步串行通信)扩展输出口扩展输入口扩展输出芯片:CD4094、74LS164扩展输入芯片:CD4014、74LS165I/O口数量不足时,可通过串口方式0进行扩展,但需要相应的扩展芯片配合。第7章单片机的串行接口【例7-1】如图所示,74164为串入并出的移位寄存器,CLK端为同步脉冲输入端连接P3.1,R为控制端,当R=0时,允许串行数据从A和B端输入但8位并行输出端关闭;当R=1时,A和B输入端关闭,但允许74LS164中的8位数据并行输出。编写程序控制8个发光二极管轮流点亮。第7章单片机的串行接口编程分析第7章单片机的串行接口串口初始化:方式0(SM0SM1=00),中断请求标志位清0(RI=TI=0)和禁止接收数据(REN=0)语句SCON=0。被发送的字节数据只需赋值给寄存器SUBF发,其余工作都将由硬件自动完成。可以采用中断法或软件查询法判断TI是否为1。欲使74LS164输出11111110B,发送端数据应为01111111B(0 x7f);欲使LED由上向下点亮,发送端数据应右移且最高位置1语句(LED1)|0 x80;0 x80=10000000B。发送/接收方向发送/接收方向第7章单片机的串行接口第7章单片机的串行接口仿真运行效果第7章单片机的串行接口 方式方式1 1:1010位帧,用于位帧,用于双双机通信机通信 起始位:1位 数据位:8位停止位:1位第7章单片机的串行接口串行串行发送发送:(写:(写SBUF启动发送过程)启动发送过程)当当TI=0时,执行时,执行“MOV SBUF,A”指令后开始发送,指令后开始发送,由硬件自动加入起始位和停止位,构成一帧数据,然后由由硬件自动加入起始位和停止位,构成一帧数据,然后由TXD端串行输出。发送完后,端串行输出。发送完后,TXD输出线维持在输出线维持在“1”状状态下,并将态下,并将SCON中的中的TI置置1,表示一帧数据发送完毕。表示一帧数据发送完毕。第7章单片机的串行接口串行串行接收接收:(置置REN=1启动接收过程启动接收过程)RI=0,REN=1时,接收电路采样RXD引脚,如出现由“1”变“0”跳变,认为有数据正在送来。第7章单片机的串行接口第7章单片机的串行接口【例7-2】如图7-11所示,甲、乙双机串行通信,甲机的P1口接8个开关,乙机的P1口接8个发光二极管。甲机设置为只发不收的单工方式。要求甲机读入P1口的8个开关的状态后,通过串行口发送到乙机,乙机将接收到的甲机的8个开关的状态数据送入P1口,由P1口的8个发光二极管来显示8个开关的状态。双机晶振均采用11.0592MHz。第7章单片机的串行接口第7章单片机的串行接口仿真运行效果:第7章单片机的串行接口 方式方式2 2:1111位帧格式位帧格式 起始位:1位 数据位:9位停止位:1位第7章单片机的串行接口串行串行发送发送:(写:(写SBUF启动发送过程)启动发送过程)发送数据前,先由软件设置TB8,可使用如下指令完成:SETBTB8;将TB8位置1CLRTB8;将TB8位置0然后再向SBUF写入8位数据,并以此来启动串行发送。一帧数据发送完毕后,CPU自动将TI置1,其过程与方式1相同。第7章单片机的串行接口串行串行接收接收:(置置REN=1启动接收过程启动接收过程)REN=1,RI=0时,允许接收若SM2=0,接收到的8位数据送SBUF,第9位数据(无论0还是1)送RB8,RI置1。若SM2=1,接收到的第9位数据为0,数据无效,不送SBUF;接收到的第8位数据为1,数据送SBUF,第9位送RB8。第7章单片机的串行接口方式2的波特率为固数值:第7章单片机的串行接口即,通信时钟初始化仅需要设置PCON,与T1无关SUBF发为空时TI自动置1;SUBF收为满时RI的状态要由SM2和RB8共同决定。若SM2=1,当RB8为1时,SUBF收为满可使RI置1;若RB8为0,则SUBF收为满也无法使RI置1。若SM2=0,则无论RB8为何值,SUBF收为满都能使RI置1。可编程位的作用用于奇偶校验奇偶校验或多机通信标识多机通信标识。发送时由硬件方式硬件方式将TB8TB8作为可编程位插入数据帧中;接受时由硬件方式硬件方式将数据帧的可编程位存入RB8RB8中。第7章单片机的串行接口奇偶校验原理:例如,发送数据为0 x45(01000101B),其奇偶校验值P=1(奇数个1),将PTB8,发送时可连同数据0 x45一起发出。接收端可自动将其可编程位放入RB8中。只要将待测数据送入Acc即可由硬件求出奇偶校验值(使P赋值),再与RB8进行比较便可判断收发过程是否有误。【例7-3】如图7-15所示,A、B双机串行通信,其晶振频率均为11.0592MHz,通信波特率为2400bps。A机循环发送数字0F,B机接收后先进行奇偶校验,若结果无误,则向A机返回接收值同时使可编程位清零;若结果有误则使可编程位置1。A机根据返回值中的可编程位决定发送新数据或重发当前数据。A、B两机均在各自数码管上显示当前数据。第7章单片机的串行接口编程分析初始化:第7章单片机的串行接口序号波特率SMODa16250010 xff21920010 xfd3960000 xfd4480000 xfa5240000 xf46120000 xe82.4k波特率PCON=0,TH1=TL1=0 xf4;T1定时方式1,允许TR1控制TMOD=0 x20;串口方式2,允许接收,清中断标志SCON=0 x50。GATETMODC/TM1M0M0M1GATEC/T(89H)IE(A8H)EAESET1EX1 ET0 EX0利用方式2的可编程位做奇偶校验位的原理是,只要将待测数据送入Acc寄存器中即可由硬件求出奇偶校验值P,发送方作为TB8一同发送,接收方再与RB8进行比较便可判断收发过程是否有误。第7章单片机的串行接口第7章单片机的串行接口第7章单片机的串行接口仿真运行效果:第7章单片机的串行接口第7章单片机的串行接口方式方式3 311位数据异步通信方式方式3的波特率为可变的(其余方面皆与方式2相同)起始位:1位 数据位:9位停止位:1位第7章单片机的串行接口方式3主要用于错误校验或主从式通信系统的场合主机与各从机之间能实现双向通信,而各从机之间不能直接通信,只能通过主机才能沟通。主从式通信系统:1主机+多从机每台从机都有独立的地址编号HostSlave多机通信过程多机通信过程:1.主机向所有从机发送包含n#从机地址的地址帧;2.所有从机都核查该地址帧,只有n#从机修改本机SM2;3.主机发送数据帧,只有n#从机能够接收到数据信息。关键:主机第1次发出的信息要能被所有的从机响应,而第2次的信息只能被n#从机所响应多机通信控制位SM2对接收中断请求的管理功能。第7章单片机的串行接口多机通信原理多机通信原理:(a)所有从机都先使自己的SM2=1,而主机在发送的地址帧信息时先使TB8=1。这样,所有从机都能产生接收中断请求,并收到主机发来的地址信息;(b)各从机将主机发来的地址与本机地址编号相比较。若与本机相符(即命中),则该从机使自己的SM2=0,其余从机仍旧保持SM2=1;(c)主机接着发送TB8=0的数据帧信息。此时只有命中机(SM2=0)有中断请求,其它从机均无响应。SM2=1时,若RB8=1,SBUF满置位RISM2=1时,若RB8=0,SBUF满不置位RISM2=0时,任意RB8值,SBUF满置位RI所有丛机非命中丛机命中丛机第7章单片机的串行接口第7章单片机的串行接口【例7-4】K1、K2为1#、2#丛机的激发键,每按1次主机向相应从机顺序发送1位0F间的字符(可用虚拟终端TERMINAL观察)。命中从机收到地址帧后使相应LED状态反转1次,收到数据帧后显示在共阳型数码管上。晶振为11.0592MHz。要求采用串口通信方式3,波特率9600bps,发送编程采用查询法,接收编程采用中断法。第7章单片机的串行接口TERMINAL用于观察串行通信数据的虚拟仪器,使用时只需将其TXD和RXD端分别与单片机RXD和TXD相连。通过属性窗口进行参数设置。第7章单片机的串行接口程序分析初始化:T1定时方式2TMOD=0 x20;9600波特率TH1=TL1=0 xfd;PCON=0;串口方式3,允许接收SCON=0 xc0。序号波特率SMODa16250010 xff21920010 xfd3960000 xfd4480000 xfa5240000 xf46120000 xe8第7章单片机的串行接口实例4参考程序第7章单片机的串行接口第7章单片机的串行接口第7章单片机的串行接口仿真运行效果谢谢您的聆听谢谢您的聆听