单片机原理 高职 计算机1第7章 串行接口

上传人:E**** 文档编号:89108544 上传时间:2019-05-18 格式:PPTX 页数:19 大小:153.95KB
返回 下载 相关 举报
单片机原理 高职 计算机1第7章 串行接口_第1页
第1页 / 共19页
单片机原理 高职 计算机1第7章 串行接口_第2页
第2页 / 共19页
单片机原理 高职 计算机1第7章 串行接口_第3页
第3页 / 共19页
单片机原理 高职 计算机1第7章 串行接口_第4页
第4页 / 共19页
单片机原理 高职 计算机1第7章 串行接口_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《单片机原理 高职 计算机1第7章 串行接口》由会员分享,可在线阅读,更多相关《单片机原理 高职 计算机1第7章 串行接口(19页珍藏版)》请在金锄头文库上搜索。

1、第7章 串行接口,7.1 串行通信的基本概念,一、数据通信的概念 通信是指计算机与外界的信息传输,既包括计算机与计算机之间的传输,也包括计算机与外部设备,如终端、打印机和磁盘等设备之间的传输。在通信领域内,有两种数据通信方式:并行通信和串行通信。 1. 并行通信 并行通信是数据的各位同时进行传送(发送或接收)的通信方式。其优点是数据传送速度快;缺点是数据有多少位,就需要多少根传送线。 2. 串行通信 数据在单条一位宽的传输线上,一比特接一比特地按顺序传送的方式称为串行通信。随着通信技术和计算机网络技术的发展、Internet网的普及,计算机远程通信已渗透到国民经济的各个领域,而远程通信绝大多数

2、采用串行通信的方式,所以了解和研究串行通信中的概念和技术有非常重要的意义。,二、串行通信中数据的传输方式 在串行通信中,数据通常是在两个站(如终端和微机)之间进行传送,按照数据流的方向可分成三种基本的传送方式:全双工、半双工、和单工。但单工目前已很少采用,下面仅介绍前两种方式。 如果在通信过程的任意时刻,信息只能由一方A传到另一方B,则称为单工。 如果在任意时刻,信息既可由A传到B,又能由B传A,但只能由一个方向上的传输存在,称为半双工传输。 如果在任意时刻,线路上存在A到B和B到A的双向信号传输,则称为全双工。,7.1 串行通信的基本概念,三、 串行通信的两种基本通信方式 按照串行数据的时钟

3、控制方式,串行通信可分为同步通信方式和异步通信方式。 1. 异步通信 异步通信的特点是数据在线路上的传送是不连续的。在异步通信中,数据或字符是一帧一帧地被传送。在帧格式中,一个字符由四个部分组成:起始位、数据位、奇偶校验位和停止位。起始位占有一位,用低电平“0”表示;数据位可以是58位;奇偶校验位占一位,该位可以省略或者作其它控制位使用,因此该位可以根据需要设置;停止位表示一个字符的结束,它一定是高电平“1”,停止位可以是1位、1.5位或2位。接收端收到停止位后,知道上一个字符已经传送完毕,同时,也为接受下一个字符做好准备。若字符是间断传送,则在两个字符间插入若干个空闲位。空闲位为高电平,表示

4、线路处于等待状态。异步通信格式见图7-3。,7.1 串行通信的基本概念,7.1 串行通信的基本概念,2. 同步通信 在同步通信中,发送器和接收器由同一个时钟控制,如图7-4(a)所示。同步传送时,字符与字符之间没有间隙,也不用起始位和停止位,仅在要传送的数据块开始传送前用同步字符SYNC来指示,其数据格式如图7-4(b)所示。,7.1 串行通信的基本概念,四、串行通信的传送速率 1. 波特率 串行通信中,传输速率在基波传输的情况下(不加调制,以其固有的频率传送)是用每秒钟传送的位数(bits)即波特率来表示。因此,1波特=1位秒。 最常用的标准波特率是110、300、1000、1200、240

5、0、4800、9600和19200波特。CRT终端能处理9600波特的传输,打印机终端速度较慢,点阵打印机一般也只能以2400波特的速率来接收信号。 2. 波特率误差 假设传递的数据一帧为10位,若发送和接收的波特率达到理想的一致,那么接收方对数据的采样都将发生在每位数据有效时刻的中点。如果接收一方的波特率比发送一方大或小5%,那么对10位一帧的串行数据,时钟脉冲相对数据有效时刻逐位偏移,当接收到第10位时,积累的误差达到50%,则采样的数据已是第10位数据的有效与无效的临界状态,这时就可能发生错位,所以5%是10位一帧串行传送的最大的波特率允许误差。,7.1 串行通信的基本概念,五、串行通信

6、的校验 在通信当中,不可避免会有干扰、线路故障等因素的存在。为了保证数据传送的正确性,对数据进行校验是通信中非常重要的环节。常用的校验方法有奇偶校验、校验和、循环冗余码校验。 奇偶校验方法:发送时在每个数据的最高位之后附加一个奇偶校验位。这个校验位可以是“1”或“0”, 以保证整个数据(包括校验位) 的“1”的个数为偶数(偶校验) 或为奇数(奇校验),接收时接收端在接收完一帧数据之后, 对每个数据也进行校验, 如满足事先约定的奇偶性, 则表明数据传输正确, 否则就表示传输出现了错误。 校验和:发送方将所发送的所有数据按字节求和(超出8位二进制只取低8位),产生1个字节的校验字节(即校验和),发

7、送完数据块的所有数据后再发送这1个字节。接收方把所接收的所有数据同样求和,与发送方发送的校验和进行比较以判断传送的正确性。 循环冗余码(CRC)校验:又称为多项式码,CRC的工作方法是在发送端产生一个冗余码,附加在信息位后面一起发送到接收端,接收端收到的信息按发送端形成循冗余码同样的算法进行校验,如果发现错误,则通知发送端重发。,7.1 串行通信的基本概念,7.2 单片机串行接口及控制寄存器,一、串行口结构 MCS-51单片机内部含有一个可编程的全双工通信串行接口(简称串行口),该接口电路不仅能同时进行数据的发送和接收,也可以作为一个同步移位寄存器使用。该串行口通过引脚RXD(P3.0,串行数

8、据接收端)和引脚TXD(P3.1,串行数据发送端)与外界进行通信。MCS-51单片机串行口内部简化结构示意图如图7-5。串行口的接收和发送由三个特殊功能寄存器进行控制。它们分别是串行口缓冲寄存器SBUF、串行口控制寄存器SCON和电源控制寄存器PCON。,1. 串行口缓冲寄存器SBUF 串行口缓冲寄存器SBUF是一个字节地址为99H的特殊功能寄存器,用来存放将要发送或接收的数据。在物理结构上,它对应着发送缓冲寄存器和接收缓冲寄存器,它们公用同一个地址。CPU通过读或写来区别究竟对哪一个缓冲寄存器进行操作,即发送缓冲寄存器只能写入不能读出,接收缓冲寄存器只能读出不能写入。当CPU向SBUF发出写

9、命令如“MOV SBUF ,A”表示将A中数据写入发送缓冲寄存器,同时也启动数据按一定的波特率发送;而当执行读SBUF命令时,如“MOV A, SBUF”则表示将接收到的数据从接收缓冲寄存器读出送入A中。 2. 串行口控制寄存器SCON,7.2 单片机串行接口及控制寄存器,SCON寄存器各位的含义如下: SMO、SM1:串行口方式选择位,用于设定串行口四种工作方式,见下表。 SM2:在方式2或方式3中用作多机通信控制位。SM2一般情况下设置为0。若用于多机通信,SM2可设置为1。当SM2=1时,从机根据接收到的第9位数据是1还是0来决定是否接收主机的信号。当第9位RB8=1时,从机接收主机发来

10、的信号;当RB8=0时,从机不接收主机信号。,7.2 单片机串行接口及控制寄存器,REN:允许串行接收控制位。由软件置1或0。若REN=1,则启动串行口接收数据;若REN=0,则禁止接收。 TB8:在方式2和方式3中,它是准备发送的第9位数据位,根据需要可用软件置1或清0。它可以作为数据的奇偶校验位,或在多机通信中作为地址或数据的标志。 RB8:在方式2和方式3中,它是接收到的第9位数据位,它可以是约定的奇偶校验位,或者是约定的地址数据标志位。在方式1中,SM2=0,RB8中存放的是已经接收到的停止位。方式0中不使用RB8。 TI:发送中断标志位。在方式0中,串行发送第8位数据结束时,由硬件电

11、路对其置位。在其它工作方式中,串行发送至一帧数据的停止位时,由硬件电路对TI置位。TI置位表示一帧数据发送完毕。通常可用软件查询TI的状态,以便知道一帧数据是否发送完毕。也可以采用中断方式,当TI=1时向CPU申请中断,CPU相应中断,准备发送下一帧信息。TI置位后不会自动复位,必须由软件清0。 RI:接收中断标志位。在方式0中,当串行接收第8位数据结束时,或在其它方式,串行接收停止位的中间时,由内部硬件使RI置1。可以采用软件查询RI的状态,以便知道一帧数据是否接收完毕,也可以采用中断方式,当RI=1时向CPU申请中断。RI置位后不会自动复位,必须由软件清0。,7.2 单片机串行接口及控制寄

12、存器,3. 电源控制寄存器PCON,SMOD称为波特率选择位。在方式1、方式2和方式3中,若SMOD=1,则波特率提高一倍;若SMOD=0,则波特率不加倍。单片机复位时,SMOD=0。,7.2 单片机串行接口及控制寄存器,7.3 单片机串行口的工作方式,一、方式0 方式0为移位寄存器输入/输出方式。可外接移位寄存器以扩展I/O口,也可以外接同步输入/输出设备。8位串行数据都是从RXD端输入或输出,TXD用来输出同步脉冲。 发送 当执行一条“MOV SBUF,A”指令时,启动发送操作,由TXD输出移位脉冲,由RXD串行发送SBUF中的数据。发送完8位数据后自动置TI=1,请求中断。要继续发送时,

13、T1必须用指令清零。 接收 在RI=0条件下,置REN=1,启动一帧数据的接收,由TXD输出移位脉冲,由RXD接收串行数据到A中。每接收8位数据RI自动置位,请求中断。想继续接收时,要用指令清零RI。 波特率 方式0的波特率固定为晶振频率的1/12。,7.3 单片机串行口的工作方式,二、方式1 方式1为波特率可变的10位异步通信接口方式。发送或接收一帧信息,包括1个起始位0,8个数据位和1个停止位1。 1. 发送 当执行一条“MOV SBUF,A”指令时,启动发送操作,A中的数据从TXD端实现异步发送。发送完一帧数据后自动置TI=1,请求中断。要继续发送时,TI必须用指令清零。 2. 接收 当

14、置REN=1时,串行口采样RXD,当采样到1至0的跳变时,确认串行数据帧的起始位,开始接收一帧数据,直到停止位到来时,把停止位送入RB8中。置位RI请求中断。CPU取走数据后用指令清零RI。 3. 波特率 使用定时器T1作为串行口方式1和方式3的波特率发生器,定时器T1常工作于方式2,串行口方式1时波特率计算公式如下: 其中,X是定时器的初值。,7.3 单片机串行口的工作方式,三、方式2 方式2为固定波特率的11位UART方式。它比方式1增加了一位可程控为1或0的第9位数据。 1. 发送 发送数据之前,由指令设置TB8(如作为奇偶校对位或地址/数据位),将要发送的数据由A写入SBUF中启动发送

15、操作。在发送中,内部逻辑会把TB8装入发送移位寄存器的第9位位置,然后发送一帧完整的数据,发送完毕后置位TI。在发送下一帧信息之前,TI须由指令清零。 2. 接收 当置位REN且RI=0时,启动接收操作,帧结构上的第9位送入RB8中,对所接收的数据视SM2和RB8的状态决定是否使RI置位。 当SM2=0时,RB8不论什么状态RI都置1,串行口都接收数据。 当SM2=1时,为多机通信方式,接收到的RB8为地址/数据标识位。 当RB8=1时,接收的信息为地址帧,此时置位RI,串行口接收发送来的数据;当RB8=0时,接收的信息为数据帧,RI不会置位,此数据丢弃。,3. 波特率 在方式2下,波特率计算

16、公式如下: 四、方式3 方式3和方式2都具有多机通信功能,这两种方式除了波特率不同以外,其余完全相同。方式3的波特率算法和方式1相同。,7.3 单片机串行口的工作方式,7.4 串行口的应用,一、串行口扩展并行I/O口 1. 串行口方式0的应用 MCS-51单片机的串行口在工作方式0状态下使用移位寄存器可以扩展一个或多个8位并行I/O口。若串行口别无它用,即可用来扩展并行I/O口,这种方式不占用片外RAM地址,而且还能简化单片机系统的硬件结构。其缺点是:操作速度较慢。 (1)用74LS165扩展并行输入口 如图7-6所示是利用两片74LS165扩展两个8位并行输入口的实用电路。 74LS165是可并行输入的8位移位寄存器,当移位/置入端由1变为0时,并行输入(AH)的数据被置入移位寄存器。当S/ =1且时钟禁止端为低电平时,在时钟脉冲作用下,数据沿AH方向移动。 图中8051的TXD作为移位脉冲输出端与两片74LS165的移位脉冲输入端CLK相连,RXD作为串行输入端与74LS165的串行输出端相连,P1.0作为移位/置入控制端信号与74LS165的S/ 端相连。74LS1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号