第八章 串行接口.ppt_第1页
第八章 串行接口.ppt_第2页
第八章 串行接口.ppt_第3页
第八章 串行接口.ppt_第4页
第八章 串行接口.ppt_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

1、用于单片机与外部其他计算机系统和外设之间的数据传输,以形成一个集检测、控制、管理为一体的计算机控制网络。单片机的应用已从单机应用发展成多机应用,解决多机互连的核心问题是单片机之间的通信。 数据传输有两种形式:并行通信和串行通信 MCS51系列单片机有四个8位并行接口,还有串行接口,串行接口,串行异步通信的工作方式,串行异步通信的波特率,知识点:,串行异步通信的控制,串行异步通信的帧格式,什么是串行通信?,串行通信和并行通信,并行通信:数据的各位同时传送;,串行通信:数据一位一位顺序传送。,直接用两块单片机的四个并行口中的一个并行口进行数据的传输称为并行通信;用两块单片机的,进行数据传输称为串行

2、通信,例如:如果一个位二进制数据用并行通信传送所需时间为,用串行同步通信所需时间约为8,而用串行异步通信所需时间大于8。,在并行通信中,一个并行数据占多少位二进制数,就需要多少根传输线。这种方式的特点是通信速度快,但传输线多,成本高,只适合近距离传送信息,一般通信距离应小于30米。 串行通信仅需一到两根传输线,故在长距离传送数据时,比较经济。但由于它每次只能传送一位,所以,传送速度较慢。,同步通信: 按数据块传送。即将需要传送的字符顺序连接起来,组成一个数据块。 在数据传送前用同步字符(12个)来指示,以用时钟实现发送端和接收端同步。 在数据块后面加上特殊的校验字符。 同步通信中字符间无间隔,

3、也不用起始位和停止位,因此传送速率高,但硬件复杂,在MCS51单片机中一般不使用。,各种通信方式的比较,并行通信:8位数据在1个时钟作用下同时送出 优点:方法简单、速度快 缺点:费用高、只适合短距离 串行同步通信:通信双方由同一时钟,经同步字符引导后,8位数据分别在8个时钟作用下逐位送出。与串行异步通信相比较 优点:方法简单、速度略快 缺点:需要同一时钟 串行异步通信:通信双方约定按帧传送数据,需要10个以上的时钟作用下才能将8位数据送出。与串行同步通信比较 优点:无需同一时钟 缺点:方法复杂、速度略慢 比较结果:串行异步通信更优,本章重点介绍,串行通信的分类:异步(Asynchronous

4、Communication) 同步(Synchronous Communication),串行通信制式:单工(a)、半双工(b)和全双工(c) (simplex half duplex full duplex),串行通信有两种基本通信方式,即异步通信和同步通信。 1. 异步通信 在异步通信中,数据或字符是分为一帧一帧地传送。在帧格式中,一个字符由四个部分组成: 起始位、数据位、奇偶校验位和停止位。,串行异步通信,起始位“0”信号用来通知接收设备一个待接收的字符开始到来。线路上在不传送字符期间应保持为“1”。接收端不断检测线路的状态,若连续为“1”以后又测到一“0”,表示发来了一个新字符,应马上

5、准备接收,起始位后面紧接着是数据位,它可以是5位(DOD4)、6位、7位或8位(DOD7),奇偶校验位:为了防止接收错误数据特意安排的校验位。在通信中也可以用这一位是“0”或“1”来确定这一帧中的字符所代表的信息是地址或数据。,停止位用来表征字符的结束,它一定是高电位“1”,停止位可以是l位(常用)、15位或2位。接收端收到停止位后,知道上一字符已传送完毕,同时,也为接收下一个字符做好准备,MCS-51串行接口的结构,MCS-51串行接口寄存器,SBUF串行口数据缓冲器 有两个物理上独立的串行数据缓冲器SBUF:一个发送寄存器SBUF只能读出,不能写入,一个接收SBUF只能写入,不能读出,故他

6、们都用SBUF表示,共用一个地址99H。 SCON串行口控制寄存器 PCON电源及波特率选择寄存器,控制寄存器SCON,RI、TI :由软件置0 SM2:方式2和方式3的多级通信控制位。对于方式2或方式3,如SM2置为1,则接收到的第9位数据(RB8)为1时置位RI,否则不置位;对于方式1,若SM2=1,则只有接收到有效的停止位时才会置位RI。对于方式0,SM2应该为0。 RB8,TB8:可用作数据的奇偶校验位,或在多机通信中,作为地址帧/数据帧的标志位,需要有软件置1或清0。对于方式0,不使用RB8。,串行方式的定义,例:设串行口工作在方式1,允许接收,则指令为: MOV SCON,#010

7、10000B,串行通信只用该位,为1时,波特率2;为0时不变。PCON的地址为87H,不能位寻址,需要字节传送。,电源及波特率选择寄存器PCON,87H,4中断允许控制寄存器IE 其中,ES为串行通信中断允许位。 ES=0,禁止串行端口中断; ES=1,允许串行端口的接收和发送中断。,方式0,在方式0下,串行口作同步移位寄存器用,其波特率固定为fosc/12。串行数据从RXD(P3.0)端输入或输出,同步移位脉冲由TXD(P3.1)送出。这种方式常用于扩展I/O口,发送和接收都是8位数据为1帧,没有起始位和停止位,低位在前。 当执行一条写入SBUF的指令时,就启动了串行接口的发送过程(如MOV

8、 SBUF,A)。串行口以fosc/12的固定波特率从TXD引脚输出串行同步时钟,8位同步数据从RXD引脚输出。8位数据发送完后自动将TI置1,向CPU申请中断。告诉CPU可以发送下一帧数据,在这之前,必须在中断服务程序中用软件将TI清0。,当用户在应用程序中,将SCON中的REN位置1时(同时RI=0),就启动了一次数据接收过程。数据从外接引脚RXD(P3.0)输入,移位脉冲从外接引脚TXD(P3.1)输出。8位数据接收完后,由硬件将输入移位寄存器中的内容写入SBUF,并自动将RI置1,向CPU申请中断。CPU响应中断后,用软件将RI清0,同时读走输入的数据,接着启动串行口接收下一个数据。,

9、方式0用于扩展I/O口输入,74L165:并入串出移位寄存器,方式0用于扩展I/O口输出,74L164:串入并出移位寄存器,方式1,10位的帧格式,串行口为波特率可变的10位通用异步接口UART。每发送或接收的一帧信息中,包括1位起始位0,8位数据位和1位停止位1。,1)方式1发送 当执行一条写入SBUF的指令时,就启动了串行接口的发送过程。在发送时钟脉冲的作用下,从TXD引脚先送出起始位(0),然后是8位数据位,最后是停止位(1)。一帧数据发送完后自动将TI置1,向CPU申请中断。若要再发送下一帧数据,必须用软件先将TI清0。 2)方式1接收 当用软件将SCON中的REN位置1时(同时RI=

10、0),就允许接收器接收。接收器以波特率的16倍速率采样RXD引脚,当采样到“1”到“0”的负跳变时,即检测到了有效的起始位,就开始启动接收,将输入的8位数据逐位移入内部的输入移位寄存器。如果接收不到起始位,则重新检查RXD引脚是否有负跳变信号。 当RI=0,且SM2=0或接收到的停止位为1时,将接收到的9位数据的前8位装入接收SBUF,第9位(停止位)装入RB8,并置位RI,向CPU申请中断。否则接收的信息将被丢弃。所以编程时要特别注意RI必须在每次接收完成后将其清0,以准备下一次接收。,方式2,串行口为11位UART,传送波特率与SMOD有关。发送或接收的一帧数据中包括1位起始位0,8位数据

11、位,1位可编程位(用于奇偶校验)和1位停止位1。,11位的帧格式,方式2发送: 当执行一条写入SBUF的指令时,就启动了串行接口的发送过程。一帧数据发送完后自动将TI置1,向CPU申请中断。若要再发送下一帧数据,必须用软件先将TI清0。发送的11位数据中,第9位数据(附加位)放在TB8中,可由软件清零或置位,可作为校验位和帧识别位。 2)方式2接收 当用方式2接收时,SCON中的REN位必须置1, 若SM2=0,无论第9位为0还是1,将接收到的9位数据的前8位装入接收SBUF,第9位装入RB8,并置位RI ,向CPU申请中断。 若SM2=1,如果接收到的第9位数据即RB8为1,则将数据装人SB

12、UF和RB8中并产生中断请求,若接收到的第9位数据为0,则不产生中断,当前帧信息自动丢失 。,方式3,方式3为11位UART通信方式,除了波特率可变以外,方式3和方式2完全相同。,11位的帧格式,串行口四种工作方式应用比较,方式的选择由SM1、SM0实现。,数据传送的速率。 串行通信的数据是按位进行传送的,每秒钟传送的二进制数码的位数称为波特率(也称比特数) 单位是bps(bit per second),即位/秒。 波特率是串行通信的重要指标,用于衡量数据传输的速率。,8051串行口的波特率,8051串行口的波特率,1.方式0和方式2的波特率是固定的,在方式0中,波特率为晶振频率的1/12,即

13、fosc/12,固定不变,方式0发送数据的时钟将fosc经12分频获得 方式2的发送数据的时钟是将fosc经过32或64分频(由SMOD位决定)获得,2. 方式1和方式3的波特率可变,由定时器1的溢出率决定,方式1和方式3的发送数据的时钟由定时器T1的溢出提供,并且将T1的溢出信号经过16或32分频(由SMOD位决定),所以它们的波特率与T1的定时初值密切相关。 波特率2SMODT1溢出率/32,当定时器Tl作波特率发生器使用时,通常选用可自动装入初值模式(工作方式2),在工作方式2中,TLl作为计数用,而自动装入的初值放在THl中,设计数初值为x,则每过“256一x”个机器周期,定时器T1就

14、会产生一次溢出。为了避免因溢出而引起中断,此时应禁止T1中断。,这时,溢出周期为:,一个机器周期是晶振的频率f除以12(标准模式),系统初始化时,将所有从机的SM2均置1,并处于允许串行口中断接收状态。主机欲与某从机通信,先向所有从机发出所选从机地址,然后才发送命令或数据。在主机发送地址时,置第9位数据(TB8)为1,表示发送的是地址帧;然后,再将第9位数据( TB8 )清0,发送命令或数据。 各从机由于SM2=1,将响应主机发送来的第9位数据(RB8)为1的地址信息,这之后,从机有两种表现: (1)若从机地址与主机发送的地址相同,则该从机将本机的SM2清零,继续接收主机发来的数据或命令。 (

15、2)若从机地址与主机发送的地址不同,则该从机将维持SM2=1,拒绝理会主机后面发来的信息,继续等待主机点名。,多机通信原理,1、串行通信的方向分为哪几类? 2、串行异步通信的帧格式是怎样的? 3、波特率的含义是什么? 4、串行异步通信的波特率要求7.8K时,若SMOD=0,T1的定时初值应该是多少?,思考题,串行通信的方向分为3类。即单工、半双工、全双工,数据传送速率,表示每秒钟传送二进制代码的位数,它的单位是位秒。,X = 256-4 = FCH,5、为什么说串行通信的方式0是一个移位寄存器? 6、方式1、方式2、方式3的波特率与哪些参数有关?,思考题,在方式0下,其波特率固定为fosc/1

16、2。串行数据从RXD(P3.0)端输入或输出,同步移位脉冲由TXD(P3.1)送出。其作用相当于同步移位寄存器。,SMOD的状态(1、0)、T1的溢出率、晶振频率fosc,利用串行口工作方式0扩展IO口 当单片机系统为单机使用时,串行口别无它用,就可用来扩展并行IO口,这种方法不占用片外RAM地址,而且还能简化单片机系统的硬件结构。但缺点是操作速度较慢、扩展芯片越多。 例1、,两片74LSl65扩展两个8位并行输入口的实用电路。74LSl65是可并行置入的8位移位寄存器,当移位置入端SL 由“1”变为“0”时,并行输入端的数据被置入各寄存器,当SL =“1”,且时钟禁止端(15脚)为低时,在时

17、钟脉冲的作用下,数据由QA向QH方向移动,图中SIN为串行输入端,串行口应用举例,下面的程序是从16位扩展口读入10组数据(每组2个字节),并把它们转存到内部RAM 40H开始的单元。 ORG 1000H MOV R6,#0AH ;设置读入组数 MOVRl,#40H ;设片内RAM指针 RCV0: CLR P l0 ;并行置入数据 SETBP l0 ;允许串行移位 MOV R0,#02H ;设置每组字节数 RCV1: MOV SCON,#10H ;设工作方式0,并启动接收 WAlT: JNB RI,WAIT ;未接收完一帧数据,等待 CLR RI ;清接收中断标志,准备下次接收 MOV A,S

18、BUF ;读入数据 MOV R1,A ;送内部RAM区 INC R1 ;指向下一个地址 DJNZ R0,RCV1 ;若未读完一组继续 DJNZ R6,RCV0 ;预定的字节数读完否,未完继续 END ;读完,结束,例2、用74LS164扩展并行输出口 74LS164是8位串入并出移位寄存器,由于其无输出控制端,故在串行输入过程中,输出端会不断地变化,所以,一般应在74LS164和输出装置之间加接输出控制门,以保证串行输入结束后再输出数据。,RXD:在时钟的作用下,将输出缓冲器的数据逐位移入74LS164,TXD:提供移位脉冲(该脉冲的周期就是单片机的机器周期),将输出缓冲器的数据逐位移入74L

19、S164,当16位数据各就各位后,CLR端提供一个“0”信号,74LS164将16位数据送出。即:16位数据移位到74LS164后,P1.0输出“0”信号,在CLR=0的作用下,两个74LS164将16位数据从这里送出。,下面的程序将内部RAM区中20H和21H单元的内容经串行口由74LS164并行送出。 ORG 2000H START: MOV R6,#02H ;设置发送字节数 MOV R0,#20H ;设置片内RAM指针 MOV SCON,#00H ;设置串行口方式0 SEND: MOV A,R0 MOV SBUF,A ;启动串行口发送 WAIT: JNB TI,WAIT ;未发送完一帧,

20、等待 CLR TI ;清发送中断标志 INC R0 ;取下一个数 DJNZ R6,SEND ;判是否发送完 CLR P1.0 ;送出16位数据 END,例3、用串行口进行异步单工通信,编程把片内40H4FH单元中的数据串行发送 串口定义为工作方式2(11位),TB8作为奇偶校验位,在数据写入发送缓冲器之前,先将数据的奇偶位写入TB8,这时,第位数据作为奇偶校验用。,程序清单 MOV SCON,#80H ;设定工作方式2 MOV PCON,#80H ;波特率为focs/32 MOV R0,#40H ;设片内指针 MOV R2,#10H ;数据长度送送R2 LOOP:MOV A,R0 ;取数据送A

21、 MOV C,P ;奇偶位送TB8 MOV TB8,C MOV SBUF,A ;启动发送 WAIT:JBC TI,CONT ;判发送中断标志 SJMP WAIT CONT:INC R0 DJNZ R2,LOOP,串行接收 用工作方式2编制一个串行口接收程序,核对奇偶校验位,并进行接收正确和接收错误的判断和处理。,程序清单 MOV SCON,#90H ;工作方式2,并允许接收 LOOP:JBC RI,READ ;等待接收数据并将RI清0 SJMP LOOP READ:MOV A,SBUF ;读入一帧数据 JB PSW0,ONE ;判接收端奇偶 JB RB8,ERR ;判发送端奇偶 SJMP RIGHT ; ONE: JNB RB8,ERR ; RIGHT: ;接收正确 ERR: ;接收错误,1、方式0主要应用在什么场合? 2、异步单工通信的特点是什么? 3、比较异步单工通信与异步双工通信的主要特点。,思考题,扩充I/O接口,异步单工通信只能单方发送或接收,异步双工通信在发送的同时可以接收或接收的同时可以发送。,除满足约定的波特率、工作方式和特殊功能寄存器外,

温馨提示

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

评论

0/150

提交评论