版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,7 串行口,通信的基本方式有两种:并行通信与串行通信 (1)并行通信:数据的各位同时传送,特点: 传送速度快、效率高。但有多少数据位就需多少根数据线,因此传送成本高。 在集成电路芯片的内部、同一插件板上各部件之间、同一机箱内各插件板之间等的数据传送都是并行的。 并行通信的距离通常小于30米。,2,7 串行口,(2)串行通信:数据一位一位顺序传送,特点: 数据传送按位顺序进行,最少只需一根传输线即可完成,成本低但速度慢,在图中可以看到,并行传送8位数只需串行发送一位的时间1T。 计算机与远程终端或终端与终端之间的数据传送通常都是串行的。 串行通信的距离可以从几米到几千公里。,3,4,9.3
2、串行口,按照串行数据的同步方式,串行通信又分为两种方式: 异步通信和同步通信。8051中,使用异步通信方式.,异步通信: 数据通常是以字符(字节)为单位组成字符帧传送的。 字符帧由发送端一帧一帧地发送,通过传输线由接收设备一帧 一帧地接收。 发送端和接收端可以有各自的时钟来控制数据的发送和接收, 这两个时钟源彼此独立,互不同步。 在异步通信中,发送端和接收端依靠字符帧格式规定和波特率 来协调数据的发送和接收。字符帧格式和波特率由用户根据实际 情况选定。,5,9.3 串行口,字符帧格式 字符帧也叫数据帧,由起始位、数据位、奇偶校验位和停止 位四部分组成。,6,异步通信数据格式,7,9.3 串行口
3、,在这种格式标准中,信息的两种状态: “mark”:译为“标记”或“传号”,对应逻辑状态。 在发送器空闲时,数据线应保持在mark状态; “space”:译为“空白”或“空号”,对应逻辑状态。 起始位:位于字符帧开头,占一位,使数据线处于“space”( 逻辑) 状态,用于向接收设备表示发送端开始发送一帧信息。 数据位:紧跟起始位之后就传送数据位。在数据位中,低位在前(左),高位在后(右)。根据字符编码方式的不同,数据位可取5位、6位、7位或8 位。若传送数据为ASCII码,则常取7位。 奇偶校验位:位于数据位之后,仅占一位,用于对字符传送作正确性检查。奇偶校验位有3种可能的选择:奇、偶或无校
4、验,由用户根据需要选定。 停止位:位于字符帧末尾,它对应于“mark”(逻辑1)状态,用于向接收端表示一帧字符信息已发送完毕。停止位可以是1、1.5或2位的高电平,在实际应用中由用户根据需要确定。,8,9.3 串行口,波特率(baud rate) 波特率的定义:是每秒钟传送二进制数码的位数,( 亦称比特数),单位是bps(bit per second),即位/秒。 字符的实际传送速率:是指每秒钟内所传字符帧的帧数,与字符帧格式有关。字符的实际传送速率与波特率不同。波特率是串行通信的重要指标,用于表征数据传送的速率 波特率越高,数据传输速度越快。 位时间:每位的传送时间定义为波特率的倒数。 例如
5、:波特率为2400bps的通信系统,其位时间Td为: Td=1/2400bps=0.417ms,9,9.3 串行口,同步通信 同步通信是以一种连续串行传送数据的通信方式,一次通信只传送一帧信息。 这里的信息帧与异步通信中的字符帧不同,通常含有若干个数据字符,如下图所示。 分为单同步信息帧结构和双同步信息帧结构。它们都是由同步字符、数据字符和校验字符三部分组成,10,9.3 串行口,同步字符: 位于帧结构的开头,用于确认数据字符的开始。 由于接收端不断对传输线采样,并把采样到的字符与双方约定的同步字符比较,只有比较成功后才会把后面接收到的字符数据加以存储。 数据字符:在同步字符之后,个数不受限制
6、,由所传送的数据块长度决定。 校验字符CRC:位于帧结构末尾,有12个,用于接收端对接收到的数据字符的正确性校验。 关于同步字符:在单同步信息帧结构中,常采用ASCII码中规定的SYN(即16H),在双同步信息帧结构中,一般采用国际通用标准代码EB90H。除了可以采用统一的标准格式外,还可以由用户约定。,11,9.3 串行口,在串行通信中,数据是在两个不同的站之间传送的 。按照数据传送的方向,串行通信可分为3种制式: 单工 半双工 全双工 8051的串行口采用全双工制式,12,串行通信中的数据传送方式,13,串行口内部结构示意简图,14,7.1 与串行口有关的特殊功能寄存器,(1)数据缓冲器S
7、BUF(99H) 8051单片机通过引脚RXD(P3.0,串行数据接收端)和引脚TXD(P3.1,串行数据发送端)与外界通讯。 SBUF是串行口缓冲寄存器,在物理上, 它对应着两个独立的寄存器, 一个发送寄存器, 一个接收寄存器。 它们有相同名字和地址空间,但不会出现冲突,因为它们两个一个只能被CPU读出数据,一个只能被CPU写入数据 MOV SBUF,A ;发送 MOV A,SBUF ;读入,15,7.1 与串行口有关的特殊功能寄存器,(2)串行口控制寄存器SCON (98H) 它用于定义串行口的工作方式及实施接收和发送控制,SM0、SM1:串行口工作方式选择位,16,串行口控制寄存器SCO
8、N,17,7.1 与串行口有关的特殊功能寄存器,SM2:多机通讯控制位(主要用于方式2和3)。在方式0时,SM2一定要等于0。在方式1中,当(SM2)=1则只有接收到有效停止位时,RI才置1。在方式2或方式3中,当(SM2)=1且接收到的第九位数据RB8=0时,RI才置1。 REN:接收允许控制位。由软件置位以允许接收,又由软件清0来禁止接收。REN=1允许接收;REN0禁止接收。 TB8: 是要发送数据的第9位。在方式2或方式3中,要发送的第9位数据,根据需要由软件置1或清0。例如,可约定作为奇偶校验位,或在多机通讯中作为区别地址帧或数据帧的标志位。 RB8:接收到的数据的第9位。在方式0中
9、不使用RB8。在方式1中,若(SM2)=0,RB8为接收到的停止位。在方式2或方式3中,RB8为接收到的第9位数据。,18,7.1 与串行口有关的特殊功能寄存器,TI: 发送中断标志。在方式0中,第8位发送结束时,由硬件置位。在其它方式的发送停止位前,由硬件置位。TI置位既表示一帧信息发送结束,同时也是申请中断,可根据需要,用软件查询的方法获得数据已发送完毕的信息,或用中断的方式来发送下一个数据。TI必须用软件清0。 RI: 接收中断标志位。在方式0,当接收完第8位数据后,由硬件置位。在其它方式中,在接收到停止位的中间时刻由硬件置位(例外情况见于SM2的说明)。RI置位表示一帧数据接收完毕,可
10、用查询的方法获知或者用中断的方法获知。RI也必须用软件清0。,19,7.1 与串行口有关的特殊功能寄存器,(3)电源控制寄存器PCON (87H) 特殊功能寄存器PCON中, 只有一位(最高位)SMOD与串行口的工作有关, 该位是串行口波特率系数的控制位: SMOD=1 时, 波特率加倍, 否则不加倍。 不可位寻址, 因此初始化时需要字节传送。,20,7.2 串行口的工作方式,方式0移位寄存器输入/输出方式 方式1波特率可变的10位UART方式 方式2固定波特率的11位UART方式 方式3波特率可变的11位UART方式,21,方式0 :移位寄存器输入/输出方式(同步) 可外接移位寄存器以扩展I
11、/O口,也可以外接同步输入/输出设备。8位串行数据是从RXD输入或输出,TXD用来输出同步脉冲。 输出串行数据从RXD引脚输出,TXD引脚输出移位脉冲。CPU将数据写入发送寄存器时,立即启动发送,将8位数据以fos/12的固定波特率从RXD输出,低位在前,高位在后。发送完一帧数据后,发送中断标志TI由硬件置位。 输入串行数据从RXD引脚输入,先置位允许接收控制位REN。此时,RXD为串行数据输入端,TXD仍为同步脉冲移位输出端。当(RI)=0和(REN)=1同时满足时,开始接收。当接收到第8位数据时,将数据移入接收寄存器,并由硬件置位RI。,7.2 串行口的工作方式,22,7.2 串行口的工作
12、方式,(2)方式1 :波特率可变的10位UART方式 发送或接收一帧信息,包括1个起始位0,8个数据位和1个停止位1。 输出:当CPU执行一条指令将数据写入发送缓冲SBUF时,就启动发送。串行数据从TXD引脚输出,发送完一帧数据后,就由硬件置位TI。 输入:在(REN)=1时,串行口采样RXD引脚,当采样到1至0的跳变时,确认是开始位0,就开始接收一帧数据。只有当(RI)=0且停止位为1或者(SM2)=0时,停止位才进入RB8,8位数据才能进入接收寄存器,并由硬件置位中断标志RI;否则信息丢失。,23,7.2 串行口的工作方式,(3)方式2 :固定波特率的11位UART方式 它比方式1增加了一
13、位可程控为1或0的第9位数据。 输出: 发送的串行数据由TXD端输出一帧信息为11位,附加的第9位来自SCON寄存器的TB8位,用软件置位或复位。它可作为多机通讯中地址/数据信息的标志位,也可以作为数据的奇偶校验位。当CPU执行一条数据写入SUBF的指令时,就启动发送器发送。发送一帧信息后,置位中断标志TI。 输入: 在(REN)=1时,串行口采样RXD引脚,当采样到1至0的跳变时,确认是开始位0,就开始接收一帧数据。在接收到附加的第9位数据后,当(RI)=0或者(SM2)=0时,第9位数据才进入RB8,8位数据才能进入接收寄存器,并由硬件置位中断标志RI;否则信息丢失。且不置位RI。再过一位
14、时间后,不管上述条件时否满足,接收电路即行复位,并重新检测RXD上从1到0的跳变。,24,7.2 串行口的工作方式,(4)方式3 :波特率可变的11位UART方式 除波特率外,其余与方式2相同。,25,7.3 串行口初始化,(1)波特率选择 在串行通讯中,收发双方的数据传送率(波特率)要有一定的约定。在8051串行口的四种工作方式中,方式0和2的波特率是固定的,而方式1和3的波特率是可变的,由定时器T1的溢出率控制。 方式0 : 固定波特率fosc/12 方式2 : 方式2的波特率由PCON中的选择位SMOD来决定,可由下式表示: 固定波特率=(2SMOD/64)fosc 当SMOD=1时,波
15、特率为1/32fosc, 当SMOD=0时,波特率为1/64fosc,26,7.3 串行口初始化,方式1和方式3 : 定时器T1作为波特率发生器,方式1、3的的波特率其公式如下: 波特率=(2SMOD/32)定时器T1的溢出率。 定时器采用模式1时:(2SMOD/32)(focs/12)/(216 -初值) 式中T1计数率取决于它工作在定时器状态还是计数器状态。当工作于定时器状态时,T1计数率为fosc/12;当工作于计数器状态时,T1计数率为外部输入频率,此频率应小于fosc/24。产生溢出所需周期与定时器T1的工作方式、T1的预置值有关。 定时器T1工作于方式0:溢出所需周期数=8192-
16、x 定时器T1工作于方式1:溢出所需周期数=65536-x 定时器T1工作于方式2:溢出所需周期数=256-x 因为方式2为自动重装入初值的8位定时器/计数器模式,所以用它来做波特率发生器最恰当。当时钟频率选用11.0592MHZ时,最易获得标准的波特率,所以很多单片机系统选用这个看起来“怪”的晶振就是这个道理,27,7.3 串行口初始化,初值计算举例: 89C51单片机时钟振荡频率为11.0592MHz,选定定 时器T1工作模式2作为波特率发生器,波特率为 2400b/s,设SMOD=0,求初值。,解:2400(1/32)(11.05921000000/12)/(256-x) X=244=F
17、4H,28,7.3 串行口初始化,(2)初始化步骤 在使用串行口之前,应对其进行编程初始化,主要是设置产生波特率的定时器1、串行口控制和中断控制。具体步骤如下:,29,7.4 串行通信应用,除了前面的初始化,还要编写发送子程序和接收子 程序。 例1: 直接将8031的发送端TXD与接收端相连接,并采用方式3进行串行数据传送,共发送16个数据000F,接收端接收数据置于404FH单元内。,30,7.4 串行通信应用,汇编程序:,31,9.3.4 串行通信应用,例3:点对点通信 主方:发一个,收一个 从方:收一个,发一个 设置1200波特,串行口方式1,fosc=11.0592MHz,32,9.3
18、.4 串行通信应用,SLAVE:MOVTMOD,#20H ; T/C1方式2 MOVTH1,#0E8H; 1200波特初值 MOVTL1,#0E8H SETBTR1 MOVPCON,#0; 不加倍 MOVSCON,#50H; 方式1,允许接收 SLP:JNBRI,$; 判接收到否 CLR RI MOV A,SBUF ; 取回 MOV SBUF, A ; 发送 JNB TI,$ ; 判发送完否 CLR TI SJMPSLP,33,9.3.4 串行通信应用,MASTER:MOVTMOD,#20H MOV TH1,#0E8H MOV TL1,#0E8H SETBTR1 MOVPCON, #0 MOV
19、 SCON, #50H MOV A, #DATA MOV SBUF,A JNB TI, $;发送出去 CLR TI JNB RI,$ CLR RI MOVA,SBUF SJMP$,34,例7-4:89C51串行口按双工方式收发ASCII字符,最高位用来作奇偶校验位,采用可校验方式,要求传送的波特率为1200b/s。编写有关的通信程序。 解:7位ASCII码加1位奇校验共8位数据,故可采用串行口方式1。 89C51单片机的奇偶校验位P是当累加器A中1的数目为奇数时,P=1。如果直接把P的值放入ASCII码的最高位,恰好成了奇偶校验,与要求不符。因此,要把P的值取反以后放入ASCII码最高位,才是
20、要求的奇校验。,35,双工通信要求收、发能同时进行。实际上,收、发操作主要是在串行接口进行,CPU只是把数据从接收缓冲器读出和把数据写入发送缓冲器。数据传送用中断方式进行,响应中断以后,通过检测是RI置位还是TI置位来决定CPU是进行发送操作还是接收操作。发送和接收都通过调用子程序来完成,设发送数据区的首地址为20H,接收数据区的首地址为40H,fosc为6MHz,通过查波特率初值(表7-2)可知定时器的初装值为F3H。定时器T1采用工作模式2,可以避免计数溢出后用软件重装定时初值的工作。,36,程序清单: 主程序 MOV TMOD ,#20H ;定时器1设为模式2 MOV TL1 , #0F
21、3H ;定时器初值 MOV TH1 ,#0F3H ;8位重装值 SETB TR1 ;启动定时器1 MOV SCON ,#50H ;设置为方式1, ;REN=1 MOV R0 ,#20H ;发送数据区首址 MOV R1 ,#40H ;接收数据取首址 ACALL SOUT ;先输出一个字符 SETB ES SETB EA SJMP $ ;等待中断,中断服务 ORG 0023H ;串行口中断入口 AJMP SBR1 ;转至中断服务程序 ORG 0100H SBR1: JNB RI ,SEND ;TI=1,为发送中断 ACALL SIN ;RI=1,为接收中断 SJMP NEXT ;转至统一的出口 S
22、END: ACALL SOUT ;调用发送子程序 NEXT: RETI ;中断返回,37,发送子程序 SOUT: CLR TI MOV A ,R0 ;取发送数据到A MOV C ,P ;奇偶标识赋予C CPL C ;奇校验 INC R0 ;修改发送数据指针 MOV SBUF ,A ;发送ASCII码 RET ;返回,接收子程序 SIN: CLR RI MOV A ,SBUF ;读出接收缓冲区内容 MOV C ,P ;取出校验位 CPL C ;奇校验 ANL A ,#7FH ;删去校验位 MOV R1 ,A ;读入接收缓冲区 INC RI ;修改接收数据指针 RET ;返回,38,例7-5:采用
23、查询方式由串行口发送带奇偶校验位的数据块。 解:由内部RAM单元20H-3FH取出ASCII码数据,在最高位上加奇偶校验位后由串行口发出。采用8位异步通信方式,波特率为1200b/s,fosc=11.059MHz。 由要求可知,应把串行口设置为方式1,采用定时器1模式2作为波特率发生器,预置值(TH1)=0E8H。,39,程序清单: 主程序; MOV TMOD ,#20H ;设置定时器1为模式2 MOV TL1 ,#0E8H ;初值,波特率为1200b/s MOV TH1 ,#0E8H SETB TR1 ;启动T1运行 MOV SCON ,#01000000B ;设置串行口为方式1 MOV R0 ,#20H MOV R7 ,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 素养导向的高考数学新题型2课件-2025届高三数学二轮复习
- 税务局考试申论题目及答案
- 2026二年级数学下册 数学广角自主学习
- 2026五年级数学上册 小数乘法的价值引领
- 2026五年级数学上册 小数乘法的文化传承
- 2026九年级上语文孤独之旅人物形象分析
- 供应商质量追责制度
- 管理评审程序试题及答案
- 人格权合理使用制度
- 造价咨询考核奖惩制度
- 学校食堂员工培训课件
- DB11∕T 1448-2024 城市轨道交通工程资料管理规程
- 房屋测绘单位管理制度
- 热电厂中水供水工程可行性研究报告
- 2025年中考数学压轴专题汇编(江苏专用)压轴专题09定角定高模型(原卷版+解析)
- 开票提额合同协议
- 2025年中考语文一轮复习:民俗类散文阅读 讲义(含练习题及答案)
- 口腔门诊全套制度
- 电工技能实训课件 单元 1 电的基本认识与安全用电
- (北京科电)GEX-2000技术使用说明(出版)
- 婚姻家庭与法律知到智慧树章节测试课后答案2024年秋延边大学
评论
0/150
提交评论