




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章 MCS-51的串行通信接口 v7.1 串行通信概述 计算机与外部设备或计算机与计算机之间的数据交换称 为通信。通信分为并行通信与串行通信两种基本方式。 并行通信:将数据的各位用多条数据线同时进行传送, 外加地址线和通信控制线。优点是传输速率高,缺点是 长距离传输成本高,可靠性差,只适用于近距离传输。 串行通信:将数据分成1位1位的形式在一条传输线上逐 个地传送。优点是传输线少,长距离传送时成本低,缺 点是传输速率低。 7.1 串行通信概述 (a) 并行通信方式 (b) 串行通信方式 图7.1 并行和串行通信方式 7.1 串行通信概述 v1. 串行通信的种类 根据数据传输方式的不同,可将串行通信分为同步 通 信和异步通信。 1) 同步通信 同步通信是一种数据连续传输的串行通信方式,通信 时发送方把需要发送的多个字节数据和校验信息连接起 来,组成数据块。 发送时,发送方只需在数据块前插入12个特殊的同 步字符,然后按特定速率逐位输出(发送)数据块内的各位 数据。 接收方在接收到特定的同步字符后,也按相同速率接 收数据块内的各位数据。 7.1 串行通信概述 典型的同步通信格式如下: 在这种通信方式中,数据块内的各位数据之间没有间 隔,传输效率高; 发送、接收双方必须保持同步(使用同一时钟信号), 且数据块长度越大,对同步要求就越高。 同步通信设备复杂,成本高,一般只用在高速数字通 信系统中。 同步字符1同步字符2N个字节的连续数据校验信息1校验信息2 7.1 串行通信概述 2) 异步通信 异步通信是以字符帧为单位进行传输。 每帧数据由4部分组成:起始位(占1位)、数据位(占 位)、奇偶校验位(占位,也可以没有校验 位)、停止位(占1或2位)。 图7.2中给出的是8位数据位、1位奇偶校验位和1位 停止位,加上1位起始位,共11位组成一个传输帧。 7.1 串行通信概述 图7.2 异步通信字符帧格式 7.1 串行通信概述 发送方:传送时先输出起始位“”作为联络信号,接下 来的是数据位和奇偶校验位,停止位“1”表示一个字符的 结束。其中,数据的低位在前,高位在后。字符之间允许 有不定长度的空闲位。 接收方:传送开始后,接收设备不断检测传输线的电平 状态,当收到一系列的“1”(空闲位或停止位)之后,检测到 一个“”,说明起始位出现,就开始接收所规定的数据位 和奇偶校验位以及停止位。 异步通信的特点:所需传输线少,设备开销较小,在单 片机控制系统中得到广泛的应用。但每个字符要附加23 位用于起止位,各帧之间还有间隔,因此传输效率不高。 7.1 串行通信概述 v2. 串行通信数据传输方向 根据串行通信数据传输的方向,可将串行通信系 统传输方式分为:单工方式、半双工方式和全双工方式 ,如图7.3所示。 图7.3 数据传输方式 7.1 串行通信概述 1) 单工:数据传输仅能从发送设备传输到接收设备。 2) 半双工:两个串行通信设备之间只有一条数据线, 数据传输可以沿两个方向,但需要分时进行。 3) 全双工:是指两个串行通信设备之间可以同时进行 接收和发送。 3种方式中,全双工方式的效率最高; 半双工方式配置和编程相对灵活,传输成本较低 ; 串行通信设备常选用半双工方式。 7.1 串行通信概述 v3. 波特率 数据的传输速率可以用波特率表示。 波特率是信号每秒变化的次数, 单位是:符号/s 比特率是每秒传送二进制数的位数 单位是:(bit/s或kbit/s)。 如每秒传送240个字符,而每个字符格式包含10位 这时的波特率为10位(bit)240个/s = 2400 bit/s。 在异步串行通信中,接收方和发送方应使用相同的 波特率,才能成功传送数据。 7.2 串行口结构及控制寄存器 vMCS-51单片机内部有一个全双工异步串行I/O接口。 MCS-51串行接口的内部简化结构如图7.4所示。 图7.4 MCS-51串行接口结构图 7.2 串行口结构及控制寄存器 P3.0是串行数据接收端RXD,P3.1是串行数据发送端 TXD。 串行接口的结构由串行接口控制电路、发送电路和接收 电路3部分组成。 发送电路由发送缓冲器(SBUF)、发送控制电路组成, 用于串行接口的发送。 接收电路由接收缓冲器(SBUF)、接收控制电路组成, 用于串行接口的接收。 两个数据缓冲器(SBUF)在物理上相互独立,在逻辑上 却占用同一字节地址99H。 7.2 串行口结构及控制寄存器 v 单片机串行接口工作方式是通过初始化设置,将 两个相应控制字分别写入串行控制寄存器SCON(98H)和 电 源控制寄存器PCON(97H)即可。 v1. 和串行接口有关的特殊功能寄存器 v1) 数据缓冲器(99H) 发送缓冲器:只管发送数据,CPU写入SBUF的时候 (MOV SUBF,A)即为发送; 接收缓冲器:只管接收数据,CPU读取SBUF的过程 (MOV A,SUBF)即为接收。 7.2 串行口结构及控制寄存器 发送缓冲器只能写入,不能读出;接收缓冲器只能 读出,不能写入。所以可同时发送数据、接收数据。 对于发送缓冲器,因为发送时CPU是主动的,不会 产生重叠错误。 接收缓冲器是双缓冲结构,以避免在接收下一帧 数据之前,CPU未能及时响应接收器的中断,没有 把上一帧数据读走,就会丢失前一个字节的内容。 7.2 串行口结构及控制寄存器 v2) 串行接口控制寄存器SCON (98H) 用于控制串行接口的工作状态,其格式如下: 位 D7D6D5D4D3D2D1D0字节地址 SCONSM0SM1SM2RENTB8RB8TIRI 98H 位地址9FH9EH9DH9CH9BH9AH99H98H 7.2 串行口结构及控制寄存器 v(1) SM0和SM1:用于设置串行接口的工作方式,2位可 选择4种工作方式,如表7-1所示。其中,UART是通用异 步接收和发送器的英文缩写, 是晶振频率。 表7-1 串行接口的工作方式设置 /64或 SM0SM1方 式功能说明波特率 000移位寄存器 /12 0118位UART可变 1029位UART /32 1139位UART 可变 7.2 串行口结构及控制寄存器 v(2) REN:允许串行接收位。由软件置位或清零。 REN=1时,串行接口允许接收数据;REN=0时,则禁 止接收。 v(3) TB8:在方式2或方式3中,是发送数据的第9位。 可以用作数据的奇偶校验位,或在多机通信中,作为地 址帧/数据帧的标志位。 v(4) RB8:在方式2或方式3中,是接收到数据的第9 位,作为奇偶校验位或地址帧/数据帧的标志位。在方 式1时,若SM2=0,则RB8是接收到的停止位。 7.2 串行口结构及控制寄存器 v(5) TI:发送中断标志位。由内部硬件使TI置“1”,向 CPU发中断申请。必须用软件将其清“0”,取消此中断 申请。 v(6) RI:接收中断标志位。由内部硬件使RI置“1”, 向CPU发中断申请。必须用软件将其清“0”,取消此中 断申请。 v(7) SM2:为多机通信控制位,主要用于方式2和方 式3。通过控制SM2,可以实现多机通信。 7.2 串行口结构及控制寄存器 v(8) 电源控制寄存器PCON (97H) 其中只有1位SMOD与串行接口工作有关,格式如下: v(9) SMOD:波特率系数控制位。在串行接口方式1、方 式2、方式3时,波特率与SMOD有关,当SMOD=1时, 波特率加倍,否则不加倍。复位时,SMOD=0。 v PCON的地址为97H,不能位寻址,需要字节传送。 位 D7D6D5D4D3D2D1D0字节地址 PCONSMOD97H 7.3 串行口的工作方式 串行接口可由SCON中的SM0、SM1设置4种工作方式。 v1) 方式0 串行接口为同步移位寄存器的输入/输出方式,而不是 通信方式,可外接移位寄存器,用于扩展并行I/O接口。 注意:数据都由RXD(P3.0)引脚输入或输出,TXD引脚 总是用于输出同步移位脉冲。 发送和接收均为8位数据,低位在先,高位在后。波特 率固定为/12。 7.3 串行口的工作方式 v2) 方式0输出 方式0时输出时序如图7.5所示。 图7.5 方式0 输出时序 7.3 串行口的工作方式 当执行任何一条写SBUF的指令时,就启动了串行接口 的发送过程(如MOV SBUF,A)。 内部的定时逻辑在SBUF写入数据之后,经过一个完整 的机器周期,输出移位寄存器中输出位的内容送RXD引脚 输出; 移位脉冲由TXD引脚输出,它使RXD引脚输出的数据移 入外部移位寄存器。 当数据的最高位D7位移出后,停止发送数据和移位脉 冲,就完成了1B的输出,并把中断标志(TI)置“1”。 如要再发送下一字节数据,必须用软件先将TI清“0”。 7.3 串行口的工作方式 v3) 方式0输入 方式0时输入时序如图7.6所示。 当SCON中的接收允许位REN=1和 RI=0时,就会 启动一次串行接口接收过程。 串行数据从RXD引脚输入,移位脉冲由TXD引脚输 出。 当接收完一帧数据后,由硬件将输入移位寄存器中 的内容写入SBUF,并把中断标志(RI)置“1”。 如要再接收数据,就再用软件将RI清“0”。 7.3 串行口的工作方式 方式0时输入时序如图7.6所示。 图7.6 方式0 输入时序 7.3 串行口的工作方式 v4) 方式1 串行接口为波特率可变的8位数据的异步通信接口。 TXD为数据发送引脚,RXD为数据接收引脚。 传送1帧数据为10位,其中,1位起始位(0),8位数据 位(低位在先),1位停止位(1)。 方式1的波特率由定时器(T1)的溢出率和SMOD的状态 决定。 7.3 串行口的工作方式 v5) 方式1输出 方式1的发送时序如图7.7所示。 图7.7 方式1的发送时序 7.3 串行口的工作方式 执行一条写SBUF的指令就启动了发送过程。 在发送移位时钟的作用下,从TXD引脚先送出起始位 (0),然后是8位数据位,最后是停止位(1)。 1帧10位数据发送完后,将中断标志(TI)置“1”,向 CPU申请中断。 如要再发送下一字节数据,必须用软件先将TI清“0”。 7.3 串行口的工作方式 v6) 方式1输入 软件使REN=1和RI=0时,就启动了接收过程。 接收器以所选择波特率的16倍速率采样RXD引脚电平, 检测到RXD引脚输入电平发生负跳变时,说明起始位有 效,将其移入输入移位寄存器,并开始接收这1帧信息 的其余位。 接收过程中,将每个数据位宽度分成16个状态,并在中 间的第7、8、9状态时对RXD采样,采样数据从输入移 位寄存器右边移入,起始位移至输入移位寄存器最左边 时,控制电路进行最后一次移位。 7.3 串行口的工作方式 当RI=0,且SM2=0(或接收到的停止位为“1”)时,将接 收到的9位数据的前8位数据装入接收SBUF,第9位(停止 位)进入RB8,并置RI=1,向CPU请求中断。如要再接收 数据,就再用软件将RI清“0”。 图7.8 方式1的接收时序 7.3 串行口的工作方式 v7) 方式2和方式3 串行接口为9位数据的异步通信接口。 TXD为数据发送引脚,RXD为数据接收引脚。 传送1帧数据为11位。其中1位起始位(0),然后是8位 数据位(低位在先),第10位是SCON中的TB8或RB8,最 后1位是停止位(1)。 方式2的波特率固定为晶振频率的1/64或1/32,方式3 波特率由定时器(T1)的溢出率和SMOD的状态决定。 7.3 串行口的工作方式 v8) 方式2和方式3 输出 方式2和方式3的发送时序如图7.9所示。 图7.9 方式2和方式3的发送时序 7.3 串行口的工作方式 CPU向SBUF写入数据时,就启动了发送过程。 SCON中的TB8写入输出移位寄存器的第9位,8位数据 装入SBUF。 发送开始时,先把起始位0输出到TXD引脚,然后是9位 数据位,最后是停止位(1)。 1帧11位数据发送完后,将中断标志(TI)置“1”,向CPU 申请中断。 如要再发送下一字节数据,必须用软件先将TI 清0。 7.3 串行口的工作方式 v9) 方式2和方式3输入 方式2和方式3的接收时序如图7.10所示。 图7.10 方式2、方式3的接收时序 7.3 串行口的工作方式 软件使REN=1和RI=0时,就启动了接收过程。 接收器就以所选频率的16 倍速率开始采样RXD引脚的 电平状态,当检测到RXD引脚发生负跳变时,说明起始位 有效,将其移入输入移位寄存器,开始接收这1帧数据。 接收时,将每个数据位宽度分成16个状态,并在中间的 第7、8、9状态时对RXD采样,采样数据从右边移入输入 移位寄存器,在起始位0移到最左边时,控制电路进行最 后一次移位。 7.3 串行口的工作方式 当RI=0,且SM2=0(或接收到的第9位数据为“1”)时 ,接收到的数据装入接收缓冲器和RB8(接收数据的第 9位),置RI=1,向CPU请求中断。 如要再接收数据,就再用软件将RI清“0”。 如果条件不满足,则数据丢失,且不置位RI,继续 搜索RXD引脚的负跳变。 7.4 串行口的应用设计举例 v波特率的设定 串行通信双方对发送或接收数据的波特率事先要约 定好保持一致。 MCS-51单片机的波特率设置与工作方式有关,其 中方式0和方式2的波特率是固定的,而方式1和方式3 的波特率是可变的,由定时器T1的溢出率和SMOD的 状态决定。 7.4 串行口的应用设计举例 各种方式的波特率计算由以下公式确定: 方式0的波特率= /12 方式2的波特率=(2SMOD/64) 方式1的波特率=(2SMOD/32)(T1溢出率) 方式3的波特率=(2SMOD/32)(T1溢出率) 7.4 串行口的应用设计举例 当T1作为波特率发生器时,常使T1工作在自动重装 初值的8位定时器方式,并禁止T1中断。 这种方式可避免重新设定定时初值而产生波特率误 差。 TH1从初值计数到产生溢出,它每秒溢出的次数称 为溢出率。 T1溢出率=/12256-(TH1) 7.4 串行口的应用设计举例 在单片机的应用中,相同机种单片机的波特率很容 易达到一致,只要晶振频率相同,可以采用完全一致 的设置参数。 异机种单片机的波特率设置较难达到一致,这时的 设计原则应使两个通信设备之间的波特率误差小于 2.5%。 常用的串行接口波特率、晶振频率以及各参数的关 系如表7-4所示。 7.4 串行口的应用设计举例 表7-4常用波特率、晶振频率与定时器(T1)的参数关系 串口工作方式 及波特率/(bit/s) fosc/MHzSMOD 定时器(T1) C/T工作方式初值 方式01MHz12无关 方式2375kHz121无关 方式1 方式3 62.5 kHz12102FFH 19.2 kHz11.0592102FDH 9600Hz11.0592002FDH 4800Hz11.0592002FAH 2400Hz11.0592002F4H 1200Hz11.0592002E8H 7.4 串行口的应用设计举例 v串行接口工作在方式0时用于扩展并行I/O接口 。 v74LS164为一个1位串行输入8位并行输出的移位寄存器 ,TXD引脚输出的移位脉冲将RXD引脚输出的数据(低位 在先)逐位移入74LS164,扩展8个LED指示灯。 v74LS165为一个8位并行输入1位串行输出的移位寄存器 ,TXD引脚输出的移位脉冲将74LS165的8位并行输入的 数据(低位在先)逐位移入RXD引脚,扩展8个按键。 v图4.20为一个串行接口扩展并行I/O接口方案。 7.4 串行口的应用设计举例 【例】 【功能】如图7.11所示的8个LED指示灯,指示8个按键 闭合状态,有键按下时对应的指示灯亮。 图7.11 串行接口扩展并行I/O接口方案 7.4 串行口的应用设计举例 【实现程序】 SIO: MOV SCON,#10H;REN=1,RI=0,SM0=0,SM1=0, ;串行口工作在方式0,且启动接收过程 LOOP:CLR P1.0 ;允许并行读入按键到74LS165,S/=0 ;有按键的位读数为0 SETB P1.0;允许串行移位,S/=1 CLR RI;启动接收 JNB RI,$;若RI=0,8位数据未接收完, 等待 MOV A,SBUF ;若RI=1,8位数据接收完,读 入A CLR TI;清发送标志,准备发送 MOV SBUF,A ;启动发送,输出数据位0, ;将点亮对应位LED JNB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025公司、项目部、各个班组安全培训考试试题(完整版)
- 2025年工厂职工安全培训考试试题附参考答案(精练)
- 2025新员工入职安全培训考试试题及答案(历年真题)
- 2025年新员工入职安全培训考试试题附答案(巩固)
- 营养学在宠物养护中的作用试题及答案
- 2024年美容师考试特点与备考建议试题及答案
- 统计学多维数据解读能力试题及答案
- 互联网金融营销策略与技巧
- 四季养生的中医疗法与实践
- 六年级语文试题及答案轻松掌握
- 数字孪生机场数据融合-全面剖析
- (二模)咸阳市2025年高考模拟检测(二)语文试卷(含答案)
- 第四单元 第2课时 三位数加三位数2(连续进位加法)(教学设计)-2024-2025学年三年级上册数学人教版
- 融资部业绩考核及奖励办法
- 《中央八项规定精神学习教育》专项讲座
- 2025年交管12123学法减分考试题库及答案
- 环境政策协同效应-第1篇-深度研究
- 2024年福建省能源石化集团有限责任公司秋季校园招聘153人笔试参考题库附带答案详解
- 棚户区改造项目(EPC)方案投标文件(技术方案)
- 2025年中国军用方舱行业市场集中度、企业竞争格局分析报告-智研咨询发布
- 锅炉应急预案
评论
0/150
提交评论