串行接口课件

上传人:我*** 文档编号:143674826 上传时间:2020-09-01 格式:PPT 页数:28 大小:445.50KB
返回 下载 相关 举报
串行接口课件_第1页
第1页 / 共28页
串行接口课件_第2页
第2页 / 共28页
串行接口课件_第3页
第3页 / 共28页
串行接口课件_第4页
第4页 / 共28页
串行接口课件_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《串行接口课件》由会员分享,可在线阅读,更多相关《串行接口课件(28页珍藏版)》请在金锄头文库上搜索。

1、第10章 串行接口,10.1 串行通信概述 10.2 MCS-51单片机的串行接口 10.3 串行口应用举例,10.1 串行通信概述,1、数据通信的概念 基本的数据通信方式有两种,即并行通信和串行通信 : 并行通信 数据的各位同时进行传送(发送或接收)的通信方式。其优点是数据传送速度快;缺点是数据有多少位,就需要多少根传送线。 串行通信 数据的各位一位一位顺序传送的通信方式。其优点是数据传送线少.缺点是传送速度较低 .,2、串行通信中数据的传送方向 串行通信中数据的传送方向有三种 : .单向(或单工)配置 :只允许数据向一个方向传送; 半双向(或半双工)配置 :允许数据向两个方向中的任一方向传

2、送,但每次只允许一个方向传送 ; 全双向(全双工)配置 :允许数据同时双向传送 .,3、异步通信和同步通信 异步通信 在异步通信中,数据是一帧一帧(包含一个字符代码或一字节数据)传送的,每一串行帧的数据格式如图所示。,在帧格式中,一个字符由四个部分组成:起始位、数据位、奇偶校验位和停止位。即首先是一个起始位“0”,然后是58位数据(规定低位在前,高位在后),接下来是奇偶校验位(可省略),最后是停止位“1”。 同步通信 在同步通信中,数据开始传送前用同步字符来指示(常约定12个),并由时钟来实现发送端和接收端同步,即检测到规定的同步字符后,下面就连续按顺序传送数据,直到通信告一段落。,在同步传送

3、时,要求用时钟来实现发送端与接收端之间的同步。为了保证接收正确无误,发送方除了传送数据外,还要把时钟信号同时传送。 4、串-并转换问题 在MCS-51单片机中,串-并、并-串转换是由串行口的移位寄存器来自动完成的,5、串行通信协议 通信协议是对数据传送方式的规定,包括数据格式定义和数据位定义等。通信方式必须遵从统一的通信协议。 起始位 :当通信线上没有数据被传送时,通信线应处于逻辑“1”状态(高电平)。当发送设备要发送一个字符数据时,首先发出一个逻辑“0”信号(低电平),这个逻辑低电平就是起始位。 数据位 :当接收设备收到起始位后,紧接着就会收到数据位。,奇偶校验位 :。奇偶校验用于有限差错检

4、测,通信双方应约定一致的奇偶校验方式 .如果选择偶校验,那么组成数据位和奇偶位的逻辑“1”的个数必须是偶数;如果选择奇校验,那么逻辑“1”的个数必须是奇数。 停止位约定 :停止位是一个字符数据的 结束标志,可以是1位或多位的高电平。 波特率设置 :每秒传送多少个二进制位, 叫波特率,它的单位是位/秒(b/s或bps)。,允许的波特率误差 :对于常用的8位、9位和11位一帧的串行传送,其最大的波特率允许误差分别为6.25、5.56和 4.5。 6、串行通信的校验 (1)奇偶校验 (2)和校验 (3)循环冗余码校验,10.1 MCS-51单片机的串行接口,MCS-51串行口的结构 MCS-51单片

5、机内部的串行口有两个物理上独立的接收、发送缓冲器SBUF,可同时接收和发送数据。发送缓冲器只能写入不能读出,接收缓冲器只能读出不能写入。两个缓冲器占用同一个地址(99H)。 控制MCS-51单片机串行口的控制寄存器共有两个,即特殊功能寄存器SCON和PCON。,1串行口控制寄存器SCON (字节地址为98H ),SCON中的各位含义如下:M0、SM1:串行口的工作方式选择位,SM2:多机通信控制位。在方式2或方式3中,如果SM2=1,则接收到的第9位数据(RB8)为0时不激活RI,接收到的数据丢失;只有当收到的第9位数据(RB8)为时才激活RI,向CPU申请中断。如果SM2=0,则不论收到的第

6、9位数据(RB8)为1还是为0,都会将接收的前8数据装入SBUF中。在方式1时,如果SM2=1,则只收到有效的停止位时才会激活RI;若没有接收到有效的停止位,则RI清零。在方式0中,SM2必须为0。,REN:允许串行接收控制位。由软件置位以允许接收,由软件清零时禁止接收。 TB8:在方式2和方式3时为要发送的第9位数据。根据需要由软件置位和复位。在多机通信时,TB8的状态用来表示主机发送的是地址或是数据,通常协议规定“0”表示数据,“1”表示地址。 RB8:在方式2和方式3时为接收到的第9位数据。RB8和SM2、TB8一起,常用于通信控制。在方式1时,如果SM2=0,RB8接收到的是停止位。在

7、方式0,不使用RB8。,TI:发送中断标志位。由片内硬件在方式0串行发送第8位结束时置位,或在其他方式串行发送停止位的开始时置位。必须由软件清零。 RI:接收中断标志位。由片内硬件在方式0串行接收到第8位结束时置位,或在其他方式串行接收到停止位的中间时置位。必须由软件清零。 2电源控制寄存器PCON PCON寄存器的D7位为SMOD,称波特率倍增位。即当SMOD=1时,波特率加倍;当SMOD=0时,波特率不加倍。,10.2、串行口的工作方式 1方式0 在方式0状态下,串行口为同步移位寄存器输入/输出方式,其波特率固定为fosc/12。数据由RXD(P3.0)端输入或输出,同步移位脉冲由TXD(

8、P3.1)端输出,发送、接收的是8位数据,低位在先,高位在后。 (1)方式0发送 当一个数据写入串行口发送缓冲器SBUF时,串行口将8位数据以fosc/12的波特率从RXD引脚输出(从低位到高位),发送完成后将中断标志TI置1,TXD引脚输出同步脉冲.其波形如图5-6所示。,(2)方式0接收 在满足REN=1和RI=0的条件下,就会启动一次接收过程,此时RXD为串行输入端,TXD为同步脉冲输出端。串行接收的波特率为振荡频率fosc的1/12,其时序如图5-7所示。当接收完一帧数据(8位)后,控制信号复位,中断标志RI被置位,呈中断申请状态。当再次接收时,必须通过软件将RI清零。,方式0接收时序

9、,方式0发送时序,2方式1 当SCON中的SM0 SM1=01时,串行口以工作方式1工作,此时串行口为10位异步通信接口。一帧信息为10位:1位起始位,8位数据位(低位在先)和1位停止位。TXD为发送端,RXD为接收端,波特率可变。 (1)方式1发送 串行口以方式1发送时,数据由TXD端输出,CPU执行一条写入SBUF的指令就会启动串行口发送,发送完一帧数据信息时,发送中断标志TI置1。,2)方式1接收 当REN=1时,接收器便以所选用的波特率的16倍速率采样RXD引脚状态,当采样到RXD端从1到0的跳变时就启动接收,接收的值是三次采样中至少两次相同的值,保证可靠无误 .在起始位,如果接收到的

10、值不为0,则起始位无效,复位接收电路,当再次接收到从1到0的跳变时重新启动接收器;如果接收值为0,起始位有效,接收器开始接收本帧的其余信息(一帧信息为10位)。在方式1接收中若同时满足以下两个条件: RI=0 SM2=0或接收到的停止位为1。,方式1的波特率=(2SMOD/32)定时器T1的溢出率。 3方式2 当SM0 SM1=10时,串行口工作在方式2,为11位异步通信口,发送和接收的一帧信息由11位组成,即1位起始位、8位数据位(低位在先)、1位可编程位(第9位数据位)和1位停止位。发送时可编程位(TB8)根据需要设置为0或1(TB8既可作为多机通信中的地址数据标志位又可作为数据的奇偶校验

11、位);接收时,可编程位被送入SCON中的RB8。,在方式2发送时,数据由TXD端输出,附加的第9位数据为SCON中的TB8,CPU执行一条写SBUF的指令后,便立即启动发送器发送,送完一帧信息后,TI被置1,在发送下一帧信息之前,TI必须由中断服务程序(或查询程序)清零。 下面是一个实际的发送中断服务程序,以TB8作为奇偶校验位,R0为发送数据区地址指针。,(2)方式2接收 当REN=1时,允许串行口接收数据。数据由RXD端输入,接收11位信息。当接收器采样到RXD端的负跳变,并判断起始位有效后,便开始接收一帧信息。当接收器接收到第9位数据后,若同时满足以下两个条件: RI=0; SM2=0或

12、接收到的第9位数据=1 方式2波特率=(2SMOD/64)fOSC。,10.3、波特率的计算 MCS-51单片机串行口通信的波特率取决于串行口的工作方式。当串行口被定义为方式0时,其波特率固定等于。当串行口被定义为方式2时,其波特率=,即当SMOD=0时,波特率=;当SMOD=1时,波特率=。SMOD是PCON寄存器的最高位,通过软件可设置SMOD=0或l。因为PCON无位寻址功能,所以,要想改变SMOD的值,可通过执行以下指令来完成: ANL PCON,#7FH;使SMOD=0 ORL PCON,#80H;使SMOD=1,1T/C1溢出率的计算 溢出周期=(28-X)12/ 溢出率=1/溢出

13、周期=/12(28-X) 2波特率的设置 由上述可得,当串行口工作于方式1或方 3、定时器T/C1工作于方式2时 波特率=2SMOD定时器T/C1溢出率/32 =2SMOD/3212(28-X) X=28-2SMOD/(384波特率),例如,某8051单片机控制系统,主振频率为12MHz,要求串行口发送数据为8位、波特率为1200b/s,编写串行口的初始化程序。 我们设SMOD=1,则T/C1的时间常数X的值为: X=28-2SMOD/(384波特率) =256-212106/(3841200) =256-52.08=203.920CCH 波特率误差(2403.85-2400)/24000.1

14、6,2)选择SMOD0,此时 X28-206106/(3842400)249.49249 由此值可以算出T/C1实际产生的波特率及误差为: 波特率206106/3212(256249)2232.14b/s 波特率误差(24002232.14)/24006.99 上面的分析计算说明了SMOD值虽然可以任意选择,但在某些情况下它会使波特率产生误差。因而在波特率设置时,对SMOD值的选取也需要予以考虑,10.4 串行口应用举例,例1:8051和标准CRT进行通讯,数据传送率为2400波特。每个字符由7个数据位、一个奇偶校验位、一个起始位和一个停止位组成。字符传送率为240字符/秒。 T/C1作波特率发生器,工作在方式2。为得到2400的波特率,设,SMOD=0,这时,T/C1的初值可由下式求得: 波特率2SMOD定时器T/C1溢出率/32 24002SMOD/3212(28-X) 计算出 X242.98243F3H,

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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