当前位置:首页 > 单片机 > 单片机
[导读]模式 0 又分为模式 0 输出和模式 0 输入两种工作状态。但应注意:在这种模式下,不管输出还是输入,通信数据总是从 P3.0(RXD) 管脚输出或输入,而 P3.1(TXD) 管脚总是用于输出移位脉冲,每一个移位脉冲将使 RXD 端输出或者输入一位二进制码。在 TXD 端 的移位脉冲即为模式 0 的波特率,其值固定为晶振频率 fOSC 的 1/12 ,即每个机器周期移动一位数据。

串行口的结构比较复杂,它具有 4 种工作模式,这些工作模式可以用 SCON 中的 SM0 和 SM1 两位编码决定。以下着重介绍各种模式的工作原理。

模式 0:

串行口工作模式 0 为同步移位寄存器输入/输出模式,可外接移位寄存器,以扩展 I/O 口。

模式 0 又分为模式 0 输出和模式 0 输入两种工作状态。但应注意:在这种模式下,不管输出还是输入,通信数据总是从 P3.0(RXD) 管脚输出或输入,而 P3.1(TXD) 管脚总是用于输出移位脉冲,每一个移位脉冲将使 RXD 端输出或者输入一位二进制码。在 TXD 端 的移位脉冲即为模式 0 的波特率,其值固定为晶振频率 fOSC 的 1/12 ,即每个机器周期移动一位数据。

(1) 模式 0 输出状态 。当一个数据写入串行口数据缓冲器时,就开始发送。在此期间,发送控制器送出移位信号,使发送移位寄存器的内容右移一位。直至最高位(D7 位) 移出后,停止发送数据和移位脉冲,完成了发送一帧数据的过程,并置发送中断标志 TI 为 1,申请中断或用于查询。

这是将单片机的串行口扩展为若干并行输出口的工作模式,常用的外接扩展芯片是串行输入/8 位并行输出的移位寄存器 74LS164 。它与单片机的连接电路如图 6.10 所示。

图 6.10 外接移位寄存器输出

每片 74LS164 有两个串行数据输入端和一个同步移位脉冲输入端,以及 8 个并行输出口。时钟 CLK 端上每一个上升沿都会使该芯片的 8 位数据输出右移一位。

(2) 模式 0 输入状态。在特殊功能寄存器 SCON 中,位 REN 是串行 口允许接收控制位。当 REN=0 时,禁止接收;当 REN=1 时,允许接收。当串行口置为模式 0 ,且满足 REN=1 和 RI=0 的条件时,就会启动一次接收过程。在机器周期的 S6P2 时刻,在串行口 内接收控制器向移位寄存器写入 11111110 ,并在 TXD 端输出移位脉冲,从 RXD 端输入一位数据,同时使输入移位寄存器内容左移一位,其右端补上刚由 RXD 端输入的数据。这 样,原先在输入移位寄存器中的 1 就逐位从左端移出,而在 RXD 引脚上 的数据就逐位从右端移入,当写入移位寄存器最左端的一个 0 移到最左端时,其右边已经接收了 7 位数据。这时,将通知接收控制器进行最后一次移位,并把所接收的数据装入SBUF,置位接收中断标志位 RI,提供申请中断或查询标志。

这是将单片机的串行口扩展为若干并行输入口的工作模式,常用的外接扩展芯片是 8 位并行输入/串行输出移位寄存器 74LS165 。它与单片机的连接电路如图 6.11 所示。 74LS165 有 8 个并行输入端,一个串行输出端,以及一个用于移位的时钟输入端。在同步移位脉冲的作用下,每个脉冲使 8 位并行输入数据左移一位,最高位移入单片机 RXD 端, 8 个移位脉冲可以使 1 个字节信息通过 RXD 引脚送入单片机的 SBUF 中。

图 6.11 外接移位寄存器输入

模式 1 :

串行口工作于模式 1 时,为波特率可变的 8 位异步通信接口 。数据位由 P3.0(RXD) 端接收,由 P3.1(TXD) 端发送。传送一帧信息为 10 位:一位起始位(0),8 位数据位(低位 在前) 和一位停止位(1)。 波特率是可变的,它取决于定时器 T1 的溢出速率及 SMOD 的状态。

(1) 模式 1 发送过程。用软件清除 TI 后,CPU 执行任何一条以 SBUF 为目标寄存器的指令,就启动发送过程。数据由 TXD 引脚输 出,此 的发送移位脉冲是 由定时器/计数器 T1 送来的溢出信号经过 16 或 32 分频而取得的。一帧信号发送完时,将置位发送中断 标志 TI=1,向 CPU 申请中断,完成一次发送过程。

(2) 模式 1 接收过程。用软件清除 RI 后,当允许接收位 REN 被置位 1 时,接收器以 选定波特率的 16 倍的速率采样 RXD 引脚上的电平,即在一个数据位期间有 16 个检测脉冲,并在第 7 、8 、9 个脉冲期间采样接收信号,然后用三中取二的原则确定检测值,以抑制 干扰。并且采样是在每个数据位的中间,避免了信号边沿的波形失真造成的采样错误。当检测到有从“1”到“0”的负跳变时,则启动接收过程,在接收移位脉冲的控制下,接收完一帧信息。当最后一次移位脉冲产生时能满足下列两个条件:

① RI=0 ;

② 接收到的停止位为 1 或 SM2=0 。

则停止位送入 RB8 ,8 位数据进入 SBUF,并置接收中断标志位 RI=1 ,向 CPU 发出中断 求,完成一次接收过程。否则,所接收的一帧信息将丢失,接收器复位,并重新检测由“1”至“0”的负跳变,以便接收下一帧信息。注意:接收中断标志应由软件清除,通常串行口以模式 1 工作时,SM2 设置为“0”。

模式 2 和模式 3:

串行口工作于模式 2 和模式 3 时,被定义为 9 位异步通信接口。它们的每帧数据结构是 11 位的:最低位是起始位(0),其后是 8 位数据位(低位在先),第 10 位是用户定义位 (SCON 中的 TB8 或 RB8),最后一位是停止位(1)。模式 2 和模式 3 工作原理相似 ,唯一的差别是模式 2 的波特率是固定的,即为 fOSC/32 或 fOSC/64;而模式 3 的波特率是可变的,与定时器 T1 的溢出率有关。

(1) 模式 2 和模式 3 的发送过程。发送过程是由执行任何一条 SBUF 为目的寄存器的指令来启动的。由“写入 SBUF”信号把 8 位数据装入 SBUF ,同时还把 TB8 装入发送移位寄存器的第 9 位,并通知发送控制器要求进行一次发送。发送开始,把一个起始位(0) 送到 TXD 端。移位后,数据由移位寄存器送到 TXD 端。再过一位,出现第一个移位脉冲。第一次移位时,把一个停止位“1”由控制器的停止位发生端送入移位寄存器的第 9 位。此后,每次移位时,把 0 送入第 9 位。因此,当 TB8 的内容送到移位寄存器的输出位置时,其左面一位是停止位“1”,而再往左的所有位全为“0”。这种状态由零检测器检测到后,就通知发送控制器作最后一次移位,然后置 TI=1 ,请求申请中断 。第 9 位数据(TB8) 由软件置位或清零,可以作为数据的奇偶校验位,也可以作为 多机通信中的地址、数据标志位。如把 TB8 作为奇偶校验 位 ,可以在发送程序中 ,在数据写入 SBUF 之前,先将数据位写入 TB8 。

(2) 模式 2 和模式 3 接收过程。与模式 1 类似,模式 2 和模式 3 接收过程始于在 RXD 端检测到负跳变时,为此,CPU 以波特率 16 倍的采样速率对 RXD 端不断采样。一检测到负跳变,16 分频计数器就立刻复位,同时把 1FFH 写入输入移位寄存器。计数器 的 16 个 状态把一位时间等分成 16 份,在每一位的第 7 、8 、9 个状态时,位检测器对 RXD 端 的值采样。如果所接收到的起始位无效(为 1), 则复位接收电路,等待另一个负跳变的到来。若 起始位有效(为 0), 则起始位移入移位寄存器,并开始接收这一帧的其余位。当起始位 0 移到最左面时,通知接收控制器进行最后一次移位。把 8 位数据装入接收缓冲器 SBUF,第 9 位数据装入 SCON 中的 RB8,并置中断标志 RI=1。装入 SBUF 和 RB8 以及置位 RI 的信号只有在产生最后一个移位脉冲且同满足下列两个条件时,才会产生:

① RI=0 ;

② SM2=0 或接收到的第 9 位数据为“1”。

上述两个条件中任一个不满足,所接收的数据帧就会丢失,不再恢复。两者都满足时,第 9 位数据装入 TB8 ,前 8 位数据装入 SBUF 。

请注意:与模式 1 不 同,模式 2 和 3 中装入 RB8 的是第 9 位数据,而不是停止位, 所接收的停止位的值与 SBUF、RB8 和 RI 都没有关系,利用这一特点可将其用于多机通信中。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在许多应用中,我们需要将多个单片机连接在一起,实现它们之间的数据传输和通信。多机通信是指多个单片机之间通过一定的通信协议和方式进行数据交换的过程。在多机通信中,每个单片机都有其独立的地址,可以根据需要与其它单片机进行数据...

关键字: 单片机 多机通信

在多机通信过程中,主机先发送某一从机的地址,等待从机的应答,所有的从机接收到地址帧后与本机地址进行比较,若相同,则将SM2置0准备接收数据;若不同,则丢弃当前数据,SM2位不变。

关键字: 单片机 多机通信 通信

USB接口是一种常见的串行接口,它的全称是Universal Serial Bus,由USB Implementers Forum制定。USB接口具有通用性强、传输速度快、支持多种设备同时连接等优点,因此在现代电子设备中...

关键字: USB 接口 串行接口

CPU 与外部设备交换数据有并行和串行通信两种方式。并行通信是指数据的各位同时进行传送的方式。其特点是传送速度快、效率高,显然并行传送的数据有多少位,就需要有多少根传输线。当传送距离较远时,位数较多就会导致通信线路成本的...

关键字: 串行通信 MCS 51 单片机 串行接口

串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。串行接口 (Serial Interface)是指数据一位一位地顺序传送。其特点是通信线路简单,只要一对传输线就可以实现...

关键字: 串行接口 远距离通信 传送速度

串口调试软件是一款软件。串口叫做串行接口,也称串行通信接口,按电气标准及协议来分包括RS-232-C、RS-422、RS485、USB等。

关键字: 串口调试软件 串行接口

  对单一设备的控制操作比较方便,但是要实现对多个设备的控制就不那么简单了。它需要的时序、接口标准、通信协议等相互配合,才能够实现相互之间的通信。最近开始了《智能化车位指示管理系统》的设计,才体

关键字: 串行接口 rs-232 串口通信协议

通过AK100Pro连接芯片的单线异步串行接口实现在板烧录,只需要一根信号线,照样也可以达到高速通讯的效果,丝毫不逊于标准的异步串行接口,最主要的,采用单线串口还能减少繁琐接线的烦恼。

关键字: 串行接口 芯片

1. 简介 很长时间以来,RS232在通信领域一直用来作为DTE(Data Terminal Equipment)和DCE(Data Circuit-terminaTIng Equipm

关键字: rs232 串行接口 以太网

单片机构成的多机通信系统中常采用总线型主从式结构。在多个单片机组成的系统中,只允许存在一个主机,其他的就是从机,从机要服从主机的控制,这就是总线型主从式结构。

关键字: 单片机 多机通信
关闭