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

下载本文档

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

文档简介

1、第八章 串行通信,第一节 串行通信概述 第二节 MCS-51串行口结构、控制寄存器及工作方式 第三节 单片机双机通信,第一节 串行通信概述,一、微机联网: 单片机与单片机; 单片机与其他微机之间实现信息共享;,图1:典型的计算机测量与控制系统构成,二、数据通信方式:并行通信与串行通信,并行通信:一次传输8(16、32) Bit 8根数据线,1根控制线,1根状态线, 1根地线,共11根; 特点: 速度快,适合近距离传输 计算机并口,打印机,8255,串行通信: 数据一位一位地发送 ,常用的有(不包括地线): 1根: 1wire 2根 : RS232的数据收发:1根发送线、1根接收线, I2C总线

2、:1根数据线、1根时钟线, 4根: SPI总线:1根发送线、1根接收线、 1根时钟线,1根使能 信号线 特点: 硬件方便,接口简单,适合距离远,速度要求不高的场合,三、 串行通讯的分类:按通信进行的过程,分为:单工、半双工、全双工通信方式 1) 单 工:只容许数据由一方发、一方收,单向通讯, 如BP机。 2) 半双工:容许双向通讯,但是收发只能分时共用一路 通道,如对讲机、红外收发装置。 3) 全双工:容许数据同时双向收发,如KEILC开发装置。,收发器,接收器,发送器,收发器,收发器,收发器,四、同步串行通信和异步串行通信,串行通信:将并行的数据分开后,一位一位地发送出去,接收方也是一位一位

3、地接收数据,这就需要通信的双方有一个协议,什么时候开始发送,什么时候发送完毕;接收方收到的信息是否正确等,而这些信息只能以电平的高低来表示,构成这些位的数据称为一帧。,1、 同步通信:有同步信号 对于并行通信:除了数据线外,还有专门的同步信号线。 对于串行通信:先发送一个字符,作为同步字符,之后便连续发送数据,数据之间不能有间隔,直到数据发送完毕,用时钟实现发送端和接收端的同步,速度要比异步通信快。,1 起始位:在数据发送线上规定无数据时电平为1,当要发送数据时,首先发送一个低电平0,表示数据传送的开始,这就是起始位。 2 数据位:真正要传送的数据,由于字符编码方式不同,可以是5位、6位、7位

4、、8位、9位等多位,数据位是由低位开始,高位结束(低位在前(左)、高位在后(右); 3 奇偶校验:数据发送完后,发送奇偶校验位,以检验数据传送的正确性,这种方法简单,容易实现。 4. 停止位:表示数据传送的结束,可以是1位、1.5位或2位。高电平1有效。,帧格式:,2、 异步通信: 异步串行通信(RS232)规定了传输数据的结构即帧格式:,通用异步接收/发送器(UNIVERSAL ASYNCHRONOUS RECEIVER /TRANSMITTER): UART:8250 , 6850 , 51已经内嵌其中 作用:1.数据的串行化(并行数据转化为串行数据)和反串行化(串行数据转化为并行数据)

5、2.错误检验,五、 波特率: 单位时间内传送的位数。 例: 电传机:传送速率120字符/秒,1个字符10位, 波特率:12010 = 1200波特 1200位/秒 位宽:传送过程中平均每位占用时间 Td = 0.833ms(1/1200),常用的波特率:2400、4800、9600、19200、38400等,六、串行通信总线标准及接口 在测控系统中,计算机通信主要采用异步串行通信方式,常用的异步串行通信接口标准有: RS-232(RS-232A RS-232B RS-232C) RS422 、RS485,通信方式的选取 1 通信速率和通信距离 这两个方面是相互制约的,降低通信速率,可以提高通信

6、距离 RS-232C:速率:20Kbit/S,最大通信距离:15m RS422: 10Mbit/s, :300m 90Kbit/s, :1200m 2 抗干扰能力 采用标准的通信接口,本身具有一定的抗干扰能力,但是工业现场的情况往往很恶劣,因而要根据具体情况进行选择。 RS232C:一般场合,逻辑1=-3-15V ,逻辑0=+3+15V (注意与51的TTL电平 不同),七、串行通讯的距离: 补充 1)近程通讯:机器内部、芯片之间,可用TTL电平。 15米以内,用驱动芯片,如MAX202。 2公里以内,如光电隔离器。 2)远程通讯:运用调制解调技术进行收发,如各类 Modem、俗称“猫”。,第

7、二节 MCS-51串行口结构、控制寄存器及工作方式,8051有一个可编程的全双工串行通信接口: 它可作UART用, 也可作同步移位寄存器, 其帧格式可有8位、10位或ll位,并能设置各种波特率。,一、结 构,805l通过引脚RXD(P3.0,串行数据接收端)和引脚TXD(P3.l,串行数据发送端),进行串行收发。,1、两个物理上独立的接收、发送缓冲器SBUF,它们占用同一地址99H,可同时发送、接收数据。发送缓冲器只能写入,不能读出,接收缓冲器只能读出、不能写入。,3、接收器是双缓冲结构,在前个字节被从接收缓冲器SBUF读出之前,第二个字节即开始被接收(串行输入至移位寄存器),2、对于发送缓冲

8、器,因为发送时CPU是主动的,不会发生重迭错误,所以不需要用双缓冲结构来保持最大传送速率。,4、串行口的发送和接收都是以特殊功能寄存器SBUF的名义进行读或写的: 当向SBUF发“写”命令时(执行MOV SBUF,A指令),即是向发送缓冲器SBUF装载并开始由TXD引脚向外发送一帧数据,发送完便使发送中断标志位TI1。 当发“读”SBUF命令时(执行MOV A,SBUF指令),即是由接收缓冲器(SBUF)取出信息通过8051内部总线送CPU。 在满足串行口接收中断标志位RI0的条件下,置允许接收位REN(SCON4)1,就会启动接收一帧数据进入输入移位寄存器,并装载到接收SBUF中,同时使RI

9、l。,二、串行口控制字及控制寄存器,串行口控制寄存器SCON(98H)和电源控制寄存器PCON(87H),1串行口控制寄存器SCON(98H),8051串行通信的方式选择、接收和发送控制以及串行口的状态标志等均由特殊功能寄存器SCON控制和指示。,SM0和SMl,串行口工作方式选择位。两个选择位对应4种通信方式(见表),其中fosc是振荡频率。,串行口的工作方式 :,SM2:多机通信控制位,1:多机通信;0:单机通信 REN:允许接收控制位,1:允许接收;0:禁止接收 TB8:发送的第9位数据。可为奇偶检验位,或多机通 信特征位(1:示地址;0:示数据) RB8:接收到的第9位数据。 TI:表

10、示发送中断标志。发送一帧结束,TI=1,需软件编程清0。 RI:表示接收中断标志。接收一帧结束,RI=1,需软件编程清0。,SM2、 TB8、 RB8用于多机通信中,SM2:多机通信控制位,主要用于方式2和方式3(11位异步收发),在方式2和方式3时,若置SM21,则允许多机通信。 在方式0时,SM2必须是0,SM2:多机通讯控制位 单机通讯方式 多机通讯方式,2电源控制寄存器PCON(87H):不可位寻址,电源控制寄存器PCON中只有一位SMOD与串行口工作有关,如图所示:,SMOD 波特率倍增位。在串行口方式1、方式2和方式3时,即当SMOD1时,波特率提高一倍。复位时,SMOD0。,IE

11、,3. 中断允许控制寄存器IE (A8H),三、串行通信工作方式,根据实际需要,805l串行口可设置为四种工作方式;可有8位,10位和11位帧格式。,方式0以8位数据为一帧、不设起始位和停止位,先发送或接收最低位。其帧格式如下:,方式1以10位数据为一帧,设有一个起始位“0”和一个停止位“1”,中间是8位数据。先发送或接收最低位。其帧格式如下:,方式2和3以11位为1帧传输,设有1个起始位“0”,8个数据位,1个附加第九位和1个停止位“1”,其帧格式为:,附加第九位(D8)由软件置l或清0。,1.串行口方式0:同步移位寄存器输入输出方式,常用于扩展IO口。串行数据通过RxD输入或输出,而TxD

12、用于输出移位时钟,作为外接部件的同步信号。波特率fosc/12 (固定)。,接收时,用软件置REN1(同时RI0),即开始接收。,1、应用场合:同步移位寄存器方式,用于扩展并行I/O 接口。 2、数据格式:一帧8位,无起始位和停止位。 3、硬件接口:RXD:数据输入/输出端。 TXD:同步脉冲输出端。 4、移位速度:波特率B = fosc/12固定 如fosc=12MHz,B=1MHz,每位数据占1s 5、发送过程:写入SBUF,启动发送,一帧发送结束, TI=1,必须软件清零。 6、接收过程:REN=1且RI=0,启动接收,一帧接收完 毕, RI=1,必须软件清零。,不适用于两个8051之间

13、的直接数据通信,但可以通过外接移位寄存器来实现单片机的接口扩展。,2串行口方式1,方式1真正用于串行发送与接收,为10位通用异步接口。TxD与RxD分别用于发送与接收数据,收发一帧数据的格式为:,1位起始位、8使数据位(低位在前)、1位停止位,共10位。 在接收时停止位进入SC0N的RB8,此方式的传送波特率可调。,1、应用场合:8位数据位、固定波特率的串行通讯。 2、数据格式:一帧10位,8位数据位,1个起始位(0), 1个停止位(1)。 3、硬件接口:RXD-接收数据端。 TXD-发送数据端。 4、波特率: 用T1作为波特率发生器,可变波特率 B=(2SMOD/32)T1溢出率。 5、发送

14、: 写入SBUF,同时启动发送,一帧发送结 束,TI=1,软件清零。 6、接收: REN=1,允许接收。接收完一帧,若RI=0 且停止位为1 (或SM2=0),将接收数据装 入SBUF,停止位装入RB8,并使RI=1;否 则丢弃接收数据,不置位RI。,串行口工作在方式2和方式3均为每帧11位异步通信格式,由TxD和RXD发送与接收(两种方式操作是完全一样的,所不同的只是特波率) 。 每帧11位: l位起始位,8位数据位(低位在前),1位可编程的第9位数据和1位停止位。 发送时,第9数据位(TB8)可以设置为1或0,也可将奇偶位装入TB8,从而进行奇偶校验;接收时,第9数据位进入SCON的RB8

15、。,3.串行口方式2和方式3: 多用于多机通信,1、应用场合:9位数据位,固定/可变波特率串行通讯。 2、数据格式:一帧11位,9位数据位,1个起始位(0), 1个停止位(1),第9位数据位在TB8/RB8 常用作校验位和多机通讯标识位。 3、硬件接口:RXD接收数据端,TXD发送数据端。 4、波特率: 方式2固定:B=(2SMOD/64)fosc 。 方式3可变:B=(2SMOD/32)T1溢出率 。 5、发送: 先装入TB8,写入SBUF并启动发送,发送 结束,TI=1。 6、接收: REN=1,允许接收。接收完一帧,若RI=0 且第9位为1 (或SM2=0),将接收数据装入 接收SBUF

16、,第9位装入RB8,使RI=1;否则 丢弃接收数据,不置位RI。,四、波特率设计(举例定时方式2),方式0和方式2的波特率是固定的; 方式1和方式3的波特率是可变的,由定时器Tl的溢出率来决定。,1方式0的波特率 fosc12,2、方式2的波特率2SMODfosc/64,3、方式1、3波特率( 2SMOD /32) (T1溢出速率) 1/T1溢出速率T1溢出周期 定时时间 定时方式2定时时间(256-X) T机 =(256-X) 12/fosc 所以:T1溢出速率 fosc12 (256-X) 因此有:方式1、3波特率,例:805l单片机时钟振荡频率为110592MHz,选用定时器T1方式2作

17、波特率发生器,波持率为2400波特求初值。,解:设置波特率控制位(SMOD)= 0,所以: (TH1)(TL1) F4H,系统晶体振荡频率选为110592MHz就是为了使初值为整数,从而产生精确的波特率。,定时器T1产生的常用波特率,串行口的编程应用,1、串行口初始化编程格式: SIO: MOV SCON,#控制状态字 ;写方式字且TI=RI=0 MOV PCON,#80H ;波特率加倍 MOV TMOD,#20H ;T1作波特率发生器 MOV TH1,#X ;选定波特率 MOV TL1,#X SETB TR1 SETB EA ;开串行口中断 SETB ES,2.查询方式实现发送: TRAM:

18、MOV A,R0 ;取数据 MOVSBUF,A ;发送一个字符 WAIT:JBCTI,NEXT ;等待发送结束 SJMPWAIT NEXT:INCR0 ;准备下一次发送 SJMPTRAM,3.中断方式实现发送: ORG 0023H ;串行口中断入口 AJMP SINT MAIN: ;初始化编程 TRAM: MOV A,R0 ;取数据 MOV SBUF,A ;发送第一个字符 H:SJMP H ;其它工作 SINT:CLR TI ;中断服务程序 INC R0 MOV A,R0 ;取数据 MOV SBUF,A ;发送下一个字符 RETI,4.查询方式实现接收: WAIT:JBCRI,NEXT;查询等

19、待 SJMPWAIT NEXT:MOVA,SBUF ;读取接收数据 MOVR0,A;保存数据 INCR0 ;准备下一次接收 SJMPWAIT,5.中断方式实现接收: ORG0023H AJMPRINT MAIN: ;初始化编程 H:SJMPH ;其它任务 RINT:CLRRI ;清中断标志 MOVA,SBUF ;读取接收数据 MOVR0,A;保存数据 INCR0 RETI,第三节 单片机双机通信,一、双机通信,传输距离短,例1: 设A、B两机均选用11.059MHz的振荡频率,波特率为1200,定时器T1选用工作方式2,SMOD位为0。则计数初值为:,X=256-11.059106/(3841

20、200)=E8H,通信双方约定: (1)A机为发送者,B机为接收者; (2)当A机开始发送时,先发送一个“AA”信号,B机收到后回答一个“BB”信号,表示同意接收; (3)当A机收到“BB”信号后,开始发送数据,每发送一次求一次校验和。假定数据块长度为20个字节,数据缓冲区起始地址为30H,数据发完后再发送“校验和”; (4)B机接收数据并将其保存到数据缓冲区,起始地址也为30H,每接收一次也计算一次“校验和”并进行比较。若两者相等,说明接收正确,B机回答一个“00”,若两者不等,说明接收不正确,B机回答一个“FF”,请求重发; (5)若A机收到“00”的回答后,结束发送。若收到的答复非0,则

21、将数据重发一次; (6)双方均采用串行口方式1进行串行通信。,A机发送程序,B机接收程序,ASEND:MOV TMOD,#20H MOV TH1,#0E8H MOV TL1,#0E8H MOV PCON,#00H SETB TR1 MOV SCON,#50H;串口通信初始化 AT1: MOV SBUF,#0AAH;发AA AW1: JBC TI,AR1;等待发完AA SJMP AW1 AR1: JBC RI,AR2;等待接收完BB SJMP AR1 AR2: MOV A,SBUF;SBUF值入A XRL A,#0BBH; JNZ AT1;如是BB开始传数,BREV:MOV TMOD,#20H

22、MOV TH1,#0E8H MOV TL1,#0E8H MOV PCON,#00H SETB TR1 MOV SCON,#50H;串口通信初始化 BR1: JBC RI,BR2;等待接收AA SJMP BR1 BR2: MOV A,SBUF; XRL A,#0AAH; JNZ BT2;如是AA, BT1: MOV SBUF,#0BBH;发BB应答 SJMP BW1 BT2:MOV BUF,#0FFH;如不是AA发FF请求重发 BW1: JBC TI,BR3;发完BB准备接收数 SJMP BW1,A机发送程序,B机接收程序,AT2: MOV R0,#30H;首地址 MOV R7,#20;共传20个数 MOV R6,#00 AT3: MOV SBUF,R0;数入SBUF MOV A ,R0 ADD A,R6 MOV R6,A;求校验和 INC R0 AW2: JBC TI,AT4;等发完一个数 SJMP AW2 AT4: DJNZ R7,AT3;发20个 MOV SBUF,R6;发校验和 AW3: JBC TI,AR3;等待发完校验和 SJMP AW3,BR3: MOV R0,#30H MOV

温馨提示

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

评论

0/150

提交评论