第七章 80C51单片微机的串行口原理及应用.ppt_第1页
第七章 80C51单片微机的串行口原理及应用.ppt_第2页
第七章 80C51单片微机的串行口原理及应用.ppt_第3页
第七章 80C51单片微机的串行口原理及应用.ppt_第4页
第七章 80C51单片微机的串行口原理及应用.ppt_第5页
已阅读5页,还剩82页未读, 继续免费阅读

下载本文档

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

文档简介

1、一般高中段教育11-5国家级计划教材单片微机原理和接口技术(第二版)高峰编写了科学出版社北京,第七章80C51单片微机的串行端口原理和应用,通信:计算机和外部数据传输。单个装置或控制器经常配备一台或多台单微计算机,多个智能装置或控制器在单个微计算机应用系统中配置分布式收集、控制系统。上层由PC集中管理。7.1串行数据通信概述,传输方法并行传输方法在数据传输中,一个数据编码字符的所有用户同时发送、并行传输和接收。要使用并行传输方法,物理通道必须是并行内部总线或并行外部总线。串行传输方式数据传输中,一个数据编码字符的所有人按一定的顺序,另一个在通道中发送和接收。(莎士比亚、温斯顿、串行、串行、串行

2、、串行、串行、串行、串行、串行)串行传输模式的物理通道是串行总线。计算机和外部的数据传输大部分是串行的,其传输距离可达几米到几千公里。单向、半双工、全双工模式单向信号(不包括联系信号)只能在通道中向一个方向传输。半双工通信双方都有发送和接收信息的能力,信道也有双向传输性能,通信的任何一方都只能在指定时刻向一个方向传输信息。在全双工模式信号在通信双方之间双向同时传输的情况下,任何一方都可以同时发送和接收信息。异步传输和同步传输必须使用同步技术,以确保在数据通信中发送的信号在接收端正确接收。常用的同步技术有两种。一种称为异步传输,一种称为开始和结束同步方法,另一种称为同步传输,另一种称为同步字符同

3、步方法。异步传输以字符为单位传输数据,每个字符都包含在开始位,停止位中,允许字符之间具有不同长度的间隔。同步传输传输在一个块中包含多个连续字符,且字符之间没有空闲的数据块。同步传输可以轻松实现通信协议所需的帧格式。波特率串行通信的波特率用于描述数据波特率,“波特率”表示每秒离散信号事件数或每秒信号水平变化数。“比特率”是以每秒位/秒为单位传输以每秒bits/s或b/s或bps记录的每秒二进制数据的位数。在二进制情况下,波特率等于比特率值。串行通信常用的标准波特率在RS-232C标准中指定(例如,波特率为600、1200、2400、4800、9600、19200等)。如果数据速率为120个字符/

4、秒,每个字符帧指定为10个数据位,则传输速率为1201200位/秒,即传输速率为1200,每个数据传输时间为传输速率的倒数(T112000.833ms、7.2 80C51串行端口和控制)。数据传输主要是传输中的标准、数据帧格式、数据帧格式数据转换通常解决通用异步接收发送器(UART)电路执行的串行并行数据转换。数据发送方将并行数据转换为串行数据,数据接收方将串行数据转换为并行数据。80C51集成了UART。8XC552增加了具有I2C总线功能的串行端口。80C51上的串行端口是全双工异步串行通信接口,可用作通用异步接收和发送器(UART)或同步移位寄存器。嘴内的接收缓冲区和发送缓冲区是物理隔离

5、的。可以访问特殊功能寄存器SBUF,以访问接收缓冲区和发送缓冲区。接收缓冲区提供双缓冲区功能,用于接收第一个数据字节,然后接收两个数据字节。但是,在收到第二个字节后,如果尚未获取数据字节,则相应的数据字节将丢失。80C51串行端口基本结构如图71所示。波特率生成器由T1、T2和内部控制开关和分配器组成。串行端口的时钟信号是TXCLOCK和RXCLOCK。控制波特率发生器的特殊功能寄存器(TMOD、TCON、T2CON、PCON、TL1、TH1、TL2、TH2等)。串行端口内部串行数据缓冲寄存器SBUF具有接收缓冲SBUF和发送缓冲SBUF,占用相同的地址(99H)。串行端口控制寄存器SCON、

6、串行数据输入和输出插针接收方式、串行数据从RXD插针输入,串行端口内部具有移动寄存器,在接收缓冲之前形成串行接收的双缓冲结构,从而防止数据接收过程中发生帧重叠错误。在传输模式下,串行数据通过TXD针脚输出。串行端口控制逻辑是波特率发生器的时钟信号TXCLOCK和RXCLOCK接受。控制内部输入移动寄存器,将外部串行数据转换为并行数据。控制内部输出移动寄存器,将内部并行数据转换为串行数据输出。控制串行中断(RI和TI)。7.2.2 80C51串行端口控制,选择串行端口状态控制寄存器SCON控制串行通信的方法,指示侦听,串行端口的中断状态。SM0、SM1:串行端口操作模式选择位。其功能见表71。S

7、M2:允许方法2、3的多处理器通信位。方法0,SM20。方法1中,仅当SM2l接收到有效停止位时,才会将中断RI接收设置为1。在方法2和方法3中,SM21仅在接收的第九数据RB8为1时,将接收的前8位数据发送到缓冲SBUF,将RI设置为1,并请求CPU中断。如果接收的第九个数据RB8为0,RI为0,则丢弃接收的前8位数据。SM20将前8位数据加载到SBUF中(无论接收到的9位数据是0还是1),并请求中断。REN:允许串行接收位。REN1,允许串行接收;REN0禁止串行接收。TB8:方法2和方法3中要传输的第九个数据。在通信协议中,TB8通常定义为奇偶校验位。在80C51多机通信中,TB8=0用

8、于表示数据帧。TB8=1表示这是地址帧。RB8:从方法2和方法3接收的第九个数据。方法1中接收的是停止位。方法0不使用此分钟。TI:发送中断标志位。方法0,位于传输第8位的末尾;在其他方法中,停止位传输开始时设置。从硬件位置用软件擦除。RI:接收中断标志位。方法0到接收第8位末端;在其他情况下,设置在传入停止位中间。从硬件位置用软件擦除。电源控制和波特率选择寄存器PCON最大位SMOD与串行端口控制相关,其他位与低功耗工作方式相关。SMOD:串行通信波特率系数控制位。SMOD1将传输速度提高一倍。重置后SMOD0。串行数据寄存器SBUF由两个物理分离的8位寄存器(传输数据寄存器和接收数据寄存器

9、)组成,共享地址99H。读取SBUF(MOVA,SBUF)并访问接收数据寄存器。写入SBUF(MOV SBUF,A)可访问数据寄存器传输。7.3串行端口的工作方式,SM0和SM1位决定串行端口在串行端口控制寄存器SCON中的工作方式。80C51串行端口共有4种工作方法。7.3.1串行端口模式0同步移位寄存器方法,SM00,SM10。同步移位发射机方式。数据传输速率固定在(112)fosc。在RXD针脚上输入或输出数据,并在TXD针脚输出上同时移动时钟。接收传输是8位数据,发送时低的在前面。帧格式如图72所示。方法0示出了如图73所示的操作电路图。在发出传输SBUF写入命令(MOV SBUF,A

10、)时启动串行数据传输。运行SBUF写入命令时,选择内部D触发器1以配置传输移动寄存器的第九位,并使传输控制器开始传输。如果发射脉冲有效,移位寄存器的内容将输出到RXD针串行移位输出。移位脉冲以TXD针脚输出。在有效传输期间,在每个机器周期中将移动寄存器向右移动一位,在左侧填充0。当数据最大位移到移位寄存器的输出位时,最初的第9个L移动到最高位的左边一个位置,因此左侧的所有位都为0,0检测器通知传输控制器最后的位移,取消传输,同时发送中断标志TI位置。如果CPU响应中断,则运行以0023H开头的串行端口传输中断服务程序。接收REN1和RI位被清除后,接收进程开始。在下一机器周期的S6P2中,接收

11、控制器在接收移动寄存器中记录1111 1110,在下一时钟周期S1P1中使接收控制器的接收有效,打开“和非文字”,使用TXD针输出移动脉冲。在移位脉冲控制下,接收移位寄存器的内容时,每个机器周期向左移动一位,从RXD针接收输入信号。每次接收移动寄存器向左移动一位,原始记录的1111 1110度也向左移动一位。最右边的0移动到最左边,表示传入控制器必须执行最后一次移动。在最后移动结束时,将移动寄存器的内容接收到接收数据缓冲寄存器SBUF,然后在开始接收的第10个系统周期的S1P1时清除接收信号,并在SCON中布置RI以发送中断请求。完成一帧的数据接收过程。如果CPU响应中断,则运行以0023H开

12、头的串行端口接收中断服务程序、7.3.2串行端口驱动的18位UART、SM00和SM1l。数据传输速率由T1和T2的溢出决定,可以由程序设置。当T2CON寄存器的RCLK和TCLK位置存在时,使用T2作为接收和传输串行端口的波特率生成器。当RCLK和TCLK都为零时,使用T1作为接收和传输串行端口的波特率生成器。从TXD针脚发送数据。从RXD针脚接收数据。10位:发送或接收1位开始位(0)、8位数据位(底部前面)和L位停止位(1)的帧信息。帧格式如图74所示。传送:从方法1传送的工作结构图如图75所示。发出写入SBUF的命令时开始串行数据传输。发出SBUF写入命令时,由SBUF和独立D触发器组

13、成的传输位寄存器的第9位也记录1,通知传输控制器有传输请求。开始传输后,位周期,发送信号有效,开始位发送到TXD针。一小时后数据信号有效。传输移位寄存器时,数据从低位置以高顺序输出到TXD针。一小时后,第一个移动脉冲出现,最低数据位从右侧移动,0从左侧推进。当最高数据移动到传输暂存寄存器的末尾时,以前加载的第9个L就在最高数据位的左侧,其左侧全部为0。该状态由0检测器检测到,在第10位周期(当16分割计数器返回到0时),传输控制器执行最后的位移,消除传输信号,在SCON寄存器中设置TI位置,完成了一帧的数据传输全过程。如果CPU响应中断,则运行以0023H开头的串行端口传输中断服务程序。从接收

14、方法1接收的作业结构图如图76所示。REN1清除RI后,如果检测到RXD针脚1到0的跳跃,则立即开始接收。此外,重置16分割计数器,以便输入位的边缘与时钟对齐,并将1FFH(即9个L)写入接收移动寄存器。接收控制器继续以传输速率的16倍检测RXD针脚。计数器的16个状态将每个位的时间除以16,每个时间的计数状态为7、8、9,位检测器对RXD结尾的值进行采样。这三种状态理论上对应于每个位的中心值。发射器和接收端的波特率不同时,会发生偏移,只要此差值在允许范围内,就不会发生误差或泄漏。从以上三种状态中获取三个样例值。其中至少有两个是一致的。也就是说,可以使用3比2的多数决法抑制噪音。,如果在第一时

15、钟周期中未接收到0,则意味着不是帧数据的开始位。重置接收电路,继续侦测RXD接脚上L-0的跳跃。接收到开始位后,转到接收移位寄存器,然后接收该帧的其他位。接收的位从右侧移动,原始记录的1从左侧移动,起始位移移动到最左侧,接收控制器控制最后的位移,将接收的9位数据发送到接收数据缓冲区SBUF和RB8,位置RI。最后的置换可以将数据发送到接收数据缓冲区SBUF和RB8,位置RI可以使用RI0,条件是在RI0完成接收上一帧数据时发出的中断请求得到响应,并且从SBUF中删除了数据。SM20或接收的停止位1。如果上述两个条件之一不满足,接收的帧信息将不可恢复地丢失。7.3.3串行端口2和3 9位UART

16、、SM01、SM10,选择方法2;SM11、SM01、选择方法3。从TXD针脚发送数据。从RXD针脚接收数据。发送或接收帧信息,如1位开始位(0)、8位数据位(最前面)、1位可编程位和1位停止位(L)。传输时可编程位TB8可以设置为1或0,接收时可编程位进入SCON寄存器的RB8位。方法2的波特率固定为振荡器频率的1/32或1/64。方法3的波特率由T1和T2的溢出确定,可以在程序中设置。帧格式如图7-7所示。方法2的操作电路图见图7-8。可以将数据从上次位移发送到接收数据缓冲区SBUF和RB8,位置RI条件为RI0是。SM20或接收的停止位1。如果上述两个条件之一不满足,接收的帧信息将不可恢

17、复地丢失。7.4多处理器通信方法,SM2:多处理器通信位。如果串行端口通过方法2或方法3接收,则仅当接收到SM21的第九个数据RB8为1时,才会将数据发送到接收缓冲SBUF,将RI设置为1并停止请求,则数据将丢失。对于SM20,无论第九个数据RB8是1还是0,都可以将数据加载到SBUF并中止。此功能允许主机与多个从属服务器之间进行串行通信。图79示出了多机器通信连接图,确认系统左侧的80C51是主机,其他是1n号从属服务器,并且每个从属系统的编号是唯一的。在系统初始化时,将所有从系统的SM2位设置为1,并允许接收串行端口中断。主机要与某个从动件通信,首先向所有从动件发送选定从动件的地址,在从动件地址匹配后发送命令或数据。(David aser,Northern Exposure(TM),计算机)主机发送地址时,将第九个数据(RB8)设置为1,表示主机发送地址帧。如果主机正确调用从属联系人,则在主机传输命令或数据帧时,将第九个数据(RB8)清除为零。每个从属服务器响应由SM2位置1从主机发送的第九个数据(RB8)为1的地址信息。机器响应停止后,有两个不

温馨提示

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

评论

0/150

提交评论