单片机串行数据通信_第1页
单片机串行数据通信_第2页
单片机串行数据通信_第3页
单片机串行数据通信_第4页
单片机串行数据通信_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基本概念RS-232接口MCS-51的串行接口单片机与单片机之间的通信单片机与PC机之间的通信第

单片机

串行数据通信本章内容1什么是串行通信?串行通信和并行通信计算机1

GND计算机2

GND并行通信计算机1

GND计算机2

GND发送接收串行通信并行通信,即数据的各位同时传送;串行通信,即数据一位一位顺序传送。并行通信的优点是速度快,效率高,确点是不适合远距离通信。串行通信刚好相反。2串行通信的基本知识在MCS-51单片机,有一个通用异步接收/发送器(UART)。这是一个全双工串行接口,能同时进行发送和接收数据。利用这个串行接口,可以实现单片机之间的单机通信、多机通信,以及与PC机之间的通信。3RS-232C信息格式标准RS-232C采用串行格式。该标准规定:信息的开始为起始位,信息的结束为停止位;信息本身可以是5、6、7、8位再加一位奇偶位。如果两个信息之间无信息,则写“1”,表示空。4串行通信的分类:异步(Asynchronousmunication)同步(Synchronousmunication)

串行通信制式:单工(a)、半双工(b)和全双工(c)(simplexhalfduplexfullduplex)发送器A站接收器B站单工通信(a)发收A站发收B站发收A站发收B站(b)(c)5☞单工、半双工和全双工单工:信息只能沿着一个方向传播半双工:信息可以沿一条线双向传播,但不能同时实现双向传播。全双工:使用两条独立的数据通道,收发可同时进行☞异步串行通信:以字符为单位进行传送同步串行通信:以数据块为单位进行传送

6☞异步串行通信:

在异步通信中,数据通常是以字符为单位组成字符帧传送的。字符帧由发送端一帧一帧地发送,每一帧数据是低位在前,高位在后,通过传输线被接收端一帧一帧地接收。发送端和接收端可以由各自独立的时钟来控制数据的发送和接收,这两个时钟彼此独立,互不同步。在异步通信中,接收端是依靠字符帧格式来判断发送端是何时开始发送何时结束发送的。字符帧格式是异步通信的一个重要指标。

7☞异步串行通信:

1)

字符帧(CharacterFrame)字符帧也叫数据帧,由起始位、数据位、奇偶校验位和停止位等四部分组成。

(1)起始位:位于字符帧开头,只占一位,为逻辑0低电平,用于向接收设备表示发送端开始发送一帧信息。(2)数据位:紧跟起始位之后,用户根据情况可取5位、6位、7位或8位,低位在前高位在后。(3)奇偶校验位:位于数据位之后,仅占一位,用来表征串行通信中采用奇校验还是偶校验,由用户决定。停止位:位于字符帧最后,为逻辑1高电平。通常可取1位、1.5位或2位,用于向接收端表示一帧字符信息已经发送完,也为发送下一帧作准备。

8☞同步串行通信:以数据块为单位进行传送

同步通信是一种连续串行传送数据的通信方式,一次通信只传输一帧信息。这里的信息帧和异步通信的字符帧不同,通常有若干个数据字符。在同步通信中,同步字符可以采用统一的标准格式,也可以由用户约定。91011MCS-51的串行接口概述有一个可编程全双工串行通信接口(UART)(UniversalAsychronousReceiver/Transmitter)可同时发送、接收数据(Transmit/Receive)有四种工作方式,帧格式有8、10、11位。波特率(Baudrate)可设置波特率为每秒钟传送二进制数码的位数,也叫比特数,单位为b/s,即位/秒。12MCS-51串行接口的结构13串行口的结构☞两个同名的接收/发送缓冲寄存器SBUF

指令MOVSBUF,A启动一次数据发送,可向SBUF

再发送下一个数指令MOVA,SBUF完成一次数据接收,SBUF可再接收下一个数☞接收/发送数据,无论是否采用中断方式工作,每接收/发送一个数据都必须用指令对RI/TI清0,以备下一次收/发。14MCS-51串行接口寄存器SBUF——串行口数据缓冲器共两个:一个发送寄存器SBUF,一个接收SBUF,二者共用一个地址99H。SCON——串行口控制寄存器。PCON——电源及波特率选择寄存器,格式如下:15控制寄存器SCONSM0SM1SM2RENTB8RB8TIRI工作方式选择多机通信控制位允接收位接收数据的第9位发送数据的第9位接收中断标志发送中断标志9FH9EH9DH9CH9BH9AH99H98H16SM0SM1工作方式功能波特率00方式08位同步移位寄存器fosc/1201方式110位UART可变10方式211位UARTfosc/64或fosc/3211方式311位UART可变串行方式的定义例:设串行口工作在方式1,允,则指令为:

MOVSCON,#01010000B17电源及波特率选择寄存器PCON

电源控制寄存器PCON中只有一位SMOD与串行口工作有关,它的位格式为:

SMOD:波特率倍增位。串行口工作在方式1、方式2、方式3时,若SMOD=1,则波特率提高一倍;若SMOD=0,则波特率不提高一倍。单片机复位时,SMOD=0。18串行口的四种工作方式方式的选择由SM1、SM0实现。四种方式的比较:工作方式功能说明波特率方式08位同步移位寄存器常用于扩展I/O口fosc/12方式110位UART8位数据、起始位、结束位可变(取决于定时器1溢出率)方式211位UART8位数据、起始位0、结束位1和奇偶校验位fosc/64或fosc/32方式311位UART8位数据、起始位、结束位可变(取决于定时器1溢出率)19方式0在方式0下,串行口作同步移位寄存器用,其波特率固定为fosc/12。串行数据从RXD(P3.0)端输入或输出,同步移位脉冲由TXD(P3.1)送出。这种方式常用于扩展I/O口。方式0用于扩展I/O口输出20方式0用于扩展I/O口输入21 MOVSCON,#00H CLRES MOVA,#80HDELR: CLRP1.0 MOVSBUF,A JNBTI,$ SETBP1.0 ACALLDELAY CLRTI RRA AJMPDELR22方式110位的帧格式串行口为波特率可调的10位通用异步接口UART。发送或接收一帧信息,包括1位起始位0,8位数据位和1位停止位1。23

2.方式1串行口工作于模式1时,为波特率可变的8位异步通信接口。数据位由P3.0(RXD)端接收,由P3.1(TXD)端发送。传送一帧信息为10位:一位起始位(0),8位数据位(低位在前)和一位停止位(1)。波特率是可变的,它取决于定时器T1的溢出速率及SMOD的状态。(1)方式1发送过程。用软件清除TI后,CPU执行任何一条以SBUF为目标寄存器的指令,就启动发送过程。数据由TXD引脚输出,此时的发送移位脉冲是由定时器/计数器T1送来的溢出信号经过16或32分频而取得的。一帧信号发送完时,将置位发送中断标志TI=1,向CPU申请中断,完成一次发送过程。24(2)方式1接收过程。用软件清除RI后,当允位REN被置位1时,接收器以选定波特率的16倍的速率采样RXD引脚上的电平,即在一个数据位期间有16个检测脉冲,并在第7、8、9个脉冲期间采样接收信号,然后用三中取二的原则确定检测值,以抑制干扰。并且采样是在每个数据位的中间,避免了信号边沿的波形失真造成的采样错误。当检测到有从“1”到“0”的负跳变时,则启动接收过程,在接收移位脉冲的控制下,接收完一帧信息。当最后一次移位脉冲产生时能满足下列两个条件:①RI=0;②接收到的停止位为1或SM2=0。25则停止位送入RB8,8位数据进入SBUF,并置RI=1,完成一次接收过程。否则,所接收到的一桢信息将丢失,接收器复位,并从新开始检测负跳变,以便接收下一桢信息。注意:接收中断标志RI应由软件清除。26方式2串行口为11位UART,传送波特率与SMOD有关。发送或接收一帧数据包括1位起始位0,8位数据位,1位可编程位(用于奇偶校验)和1位停止位1。11位的帧格式27方式3方式3为波特率可变的11位UART通信方式,除了波特率以外,方式3和方式2完全相同。28

方式2和方式3

串行口工作于方式2和方式3时,被定义为9位异步通信接口。它们的每帧数据结构是11位的:最低位是起始位(0),其后是8位数据位(低位在先),第10位是用户定义位(SCON中的TB8或RB8),最后一位是停止位(1)。方式2和方式3工作原理相似,唯一的差别是方式2的波特率是固定的,即为fOSC/32或fOSC/64;而方式3的波特率是可变的,与定时器T1的溢出率有关。29(1)方式2和方式3的发送过程。发送过程是由执行任何一条SBUF为目的寄存器的指令来启动的。由“写入SBUF”信号把8位数据装入SBUF,同时还把TB8装入发送移位寄存器的第9位,并通知发送控制器要求进行一次发送。发送开始,把一个起始位(0)送到TXD端。移位后,数据由移位寄存器送到TXD端。再过一位,出现第一个移位脉冲。第一次移位时,把一个停止位“1”由控制器的停止位发生端送入移位寄存器的第9位。此后,每次移位时,把0送入第9位。因此,当TB8的内容送到移位寄存器的输出位置时,其左面一位是停止位“1”,而再往左的所有位全为“0”。这种状态由零检测器检测到后,就通知发送控制器作最后一次移位,然后置TI=1,请求申请中断。第9位数据(TB8)由软件置位或清零,可以作为数据的奇偶校验位,也可以作为多机通信中的地址、数据标志位。如把TB8作为奇偶校验位,可以在发送程序中,在数据写入SBUF之前,先将数据位写入TB8。

30(2)方式2和方式3接收过程。与方式1类似,方式2和方式3接收过程始于在RXD端检测到负跳变时,为此,CPU以波特率16倍的采样速率对RXD端不断采样。一检测到负跳变,16分频计数器就立刻复位,同时把1FFH写入输入移位寄存器。计数器的16个状态把一位时间等分成16份,在每一位的第7、8、9个状态时,位检测器对RXD端的值采样。如果所接收到的起始位无效(为1),则复位接收电路,等待另一个负跳变的到来。若起始位有效(为0)则起始位移入移位寄存器,并开始接收这一帧的其余位。当起始位0移到最左面时,通知接收控制器进行最后一次移位。把8位数据装入接收缓冲器SBUF,第9位数据装入SCON中的RB8,并置中断标志RI=1。31装入SBUF和RB8以及置位RI的信号只有在产生最后一个移位脉冲且同满足下列两个条件,才会产生:①RI=0;②SM2=0或接收到的第9位数据为“1”。上述两个条件中任一个不满足,所接收的数据帧就会丢失,不再恢复。两者都满足时,第9位数据装入TB8,前8位数据装入SBUF。

请注意:与方式1不同,方式2和3中装入RB8的是第9位数据,而不是停止位。所接收的停止位的值与SBUF、RB8和RI都没有关系,利用这一特点可用于多机通信中。32MCS-51串行口的波特率1.方式0和方式2的波特率是固定的在方式2中,波特率取决于PCON中的SMOD值:当SMOD=0时,波特率为fosc/64;当SMOD=1时,波特率为fosc/32.即波特率=。oscSMODf642在方式0中,波特率为时钟频率的1/12,即fosc/12,固定不变332.方式1和方式3的波特率可变,由定时器1的溢出率决定波特率/(b/s)fosc/MHzSMOD定时器1C/模式初始值方式0:1方式2:375k方式1、3:62.5k19.2k9.6k4.8k2.4k1.2k137.5k11011012121211.05911.05911.05911.05911.05911.986612×1110000000××000000000××222222221××FFHFDHFDHFAHF4HE8H1DH72HFEEBHT34(3)方式1和方式3的波特率除了与SMOD位有关之外,还与定时器T1的溢出率有关。定时器T1作为波特率发生器,常选用定时方式2(8位重装载初值方式),并且禁止T1中断。此时TH1从初值计数到产生溢出,它每秒钟溢出的次数称为溢出率。于是35假设某MCS-51单片机系统,串行口工作于方式3,要求传送波特率为1200Hz,作为波特率发生器的定时器T1工作在方式2时,请求出计数初值为多少?设

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论