资源描述
第10章 移位寄存器
本章大纲
10.1 基本移位寄存器功能
10.2 串行进入/串行输出移位寄存器
10.3 串行进入/并行输出移位寄存器
10.4 并行进入/串行输出移位寄存器
10.5 并行进入/ 并行输出移位寄存器
10.6 双向移位寄存器
10.7 移位寄存器计数器
10.8 移位寄存器应用
10.9 故障检测
10.10 关联标注的逻辑符号
10.11 CPLD简介
10.12 数字系统应用
本章学习目标
n 识别移位寄存器中数据运动的基本方式
n 解释串行进入/串行输出、串行进入/并行输出、并行进入/串行输出和并行进入/并
行输出移位寄存器是怎样运行的
n 描述双向移位寄存器怎样运行
n 确定约翰逊计数器的序列
n 设置环形计数器以产生指定序列
n 从移位寄存器中构建环形计数器
n 使用移位寄存器作为时间延迟设备
n 使用移位寄存器来实现串行到并行数据的变换器
n 实现基本移位寄存器控制的键盘译码器
n 通过用已知的测试模式“运行”系统来对数字系统进行故障检测
n 解释关联标注的ANSI/IEEE标准91-1984移位寄存器
n 描述基本的CPLD
n 在系统应用中使用移位寄存器
重要术语
n 寄存器
n 级
n 移位
n 载入
n 双向
n CPLD
n 逻辑阵列块(LAB)
n 宏单元
简介
移位寄存器是紧密关联于数字计数器的序列逻辑电路的一种类型。寄存器主要用来存
储数字数据并且一般不具有特征内部状态序列,而计数器则具有这样的序列。但是也有例
外,我们将在10.7节介绍它们。
在本章中,我们将学习移位寄存器的基本类型并展示几个应用。同时,我们还介绍了
一种重要的故障检测方法。本章还介绍了复杂可编程逻辑设备(CPLD)。
固定功能逻辑器件
74HC164 74HC165 74HC174 74HC194 74HC195
可编程逻辑器件
MAX 7000
· 数字系统应用概述
数字系统应用阐释了本章中的概念。我们介绍了一个控制建筑物中警报器的安全进入
系统。该系统使用两种类型的寄存器以及前几章所介绍的其他类型的设备。该系统同时还
含有一个存储器,其将是第12章数字系统应用的重点。
学习本章内容可访问
10.1 基本移位寄存器功能
移位寄存器由一组触发器组成,在数字系统中涉及数据存储和移位方面的应用中是很
重要的。寄存器和计数器不同,除了一些特别专业的应用之外,都没有特定的状态序列。
一般来说,寄存器主要用来存储和移位外部数据源进入其中的数据(1和0),并且一般不具
有特征内部状态序列。
学完本节之后,你应当能够
n 解释触发器怎样存储一个数据位
n 定义移位寄存器的存储容量
n 定义寄存器的移位能力
□ 寄存器可以由一个或者多个用以存储和移位数据的触发器组成。
寄存器是一种具有两种基本功能的数字电路:数据存储和数据移动。寄存器的存储能
力使其成为存储器设备类型。图10.1阐释了这个概念,在D触发器中存储1或者0。一个
1应用于数据输入上,如图所示,同时应用一个时钟脉冲以通过置位触发器而存储这个1。
当输入上的1被移走之后,由于存储了1,所以触发器还是保持在置位状态。应用相似的
过程,通过复位触发器来存储0,如图10.1所示。
图10.1触发器作为存储元件
寄存器的存储容量是它可以包含的数字数据的总位数(1和O)。移位寄存器中的每一级(触发器)都表示存储容量中的一个位;所以,寄存器中的级数决定了它的存储容量。
寄存器的移位能力允许寄存器内数据在级间运动,或者根据时钟脉冲的应用,进入或者离开寄存器。图10.2阐释了移位寄存器中的数据类型。方块表示任意的4位寄存器,而箭头指示数据运动的方向。
(a)串行进入/向右移位/串行输出 (b)串行进入/向左移位/串行输出
(c)并行进入/串行输出 (d)串行进入/并行输出
(e)并行进入/并行输出 (f)循环右移 (g)循环左移
图10.2移位寄存器的基本数据运动(我们用4个位做阐释。位按照箭头所指的方向移动)
10.1节复习
答案在本章最后。
1.一般来说,计数器和移位寄存器之间的区别是什么?
2.移位寄存器所执行的两个主要功能是什么?
10.2串行进入/串行输出移位寄存器
串行进入/串行输出移位寄存器顺序接收数据——也就是说,单线上一次只有一个位。在输出上所产生的存储信息同样是串行形式。
学完本节之后,你应当能够
n 解释数据位怎样顺序进入移位寄存器
n 描述数据位怎样在寄存器中移位
n 解释数据位怎样从移位寄存器中顺序输出
n 开发并分析串行进入/串行输出寄存器的时序图
让我们首先看看串行进入典型移位寄存器的一系列数据。图10.3展示了一个用D触发
器实现的4位设备。利用4个级,这个寄存器可以存储4位数据。
图10.3串行进入/串行输出移位寄存器
计算机常识 在很多情况下,都需要清除计算机中的内部寄存器。例如,寄存器可
能要在算术运算或者其他运算之前被清除。计算机中寄存器清除的一种方法是,使用软竹
从寄存器中去除它本身所包含的内容。当然结果总是为0。例如,执行这个运算的计算机
指令是SUB AL,AL。利用这个指令,名称为AL的寄存器就被清除了。
图10.4阐释了4个位1010进入寄存器的情况,开始于最右边的位。寄存器初始时为
清除。O首先被置入数据输入线上,使得FF0的D=0。当第一个脉冲被应用时,FF0被复
位,因此存储了0。
接下来是第二个位,也就是1,被应用于数据输入上,使得FF0的D=1而FF1的
D=0,这是因为FF1的D输入连接于输出。当第二个时钟脉冲发生时,数据输入上的
1就被移位到FF0,使得FF0被置位;并且FF0中的0被移位到FF1中。
第三个位,也就是0,现在被置入数据输入线上,同时应用了一个时钟脉冲。这个0
进入FF0,FF0中存储的1移位到FF1中,而FF1所存储的O移位到FF2中。
最后一位,也就是1,现在被应用于数据输入,同时应用了一个时钟脉冲。这次1进
入FF0,而存储在FF0中的0移位到FF1中,存储在FF1中的1移位到FF2,存储在FF2
中的0移位到FF3。这就完成了4位串行进入移位寄存器的过程,它们可以被存储任意长
的时间,只要触发器具有直流电源即可。
□ 对于串行数据来说,一次转移一个位。
图10.4串行进入寄存器的4位(1010)
如果你想要得到寄存器输出的数据,数位就必须串行移出并在输出离开,如图10.5
所示。在刚刚描述的数据进入运算中的CLK4之后,最右边的位0就会出现在输出上。
时钟脉冲CLK6将第三个位移位到输出,而CLK7将第四个位移位到输出。注意,当原始
的4位数据移出时,可以同时移入更多的位。图中所示的全0数据正在被移入。
图10.5 4位数据(1010)被串行移出寄存器同时被全0所取代
示例10.1
对于指定的数据输入和时钟波形,展示图10.6(a)中的5位寄存器。假设该寄存器初始时被清除了(全0)。
解:
第一个数据位(1)在第一个时钟脉冲上进入寄存器,然后在其余数位进入和移位的时候,该数据位从左到右移位。在五个时钟脉冲之后,该寄存器含有:
参见图10.6(b)。
图10.6 (参考F10-06文档进行核对)
相关问题:如果该数据位反相的话,展示寄存器的状态。寄存器初始时被清除了。
答案在本章最后。
8位串行进入/串行输出移位寄存器的传统逻辑方块符号如图10.7所示。符号“SRG 8”
表示具有8位容量的移位寄存器(SRG)。
图10.7 8位串行进入/串行输出移位寄存器的逻辑符号
10.2节复习
1.为图10.3中的移位寄存器开发逻辑图,使用J-K触发器来取代D触发器。
2.一个字节的数据串行进入8位移位寄存器中,需要多少个时钟脉冲?
10.3 串行进入/并行输出移位寄存器
在这种类型的寄存器中,数据位以10.2节中所讨论的方式串行(最右边的位首先进入)
进入。区别在于数据位从寄存器中取出的方式不同;在并行输出寄存器中,每一层的输出
都是可用的。一旦数据被存储后,每个位都出现在它自己的输出线上,并且所有的位都可
以同时使用,这和串行输出的逐位输出的基础不同。
在学完本节之后,你应当能够
n 解释数据位怎样并行从移位寄存器中输出
n 比较串行输出和并行输出
n 讨论74HC164 8位移位寄存器
n 开发并分析串行讲入/并行输出寄存器的时序图
图10.8展示了一个4位串行进入/并行输出移位寄存器以及它的逻辑方块符号。
图10.8 串行进入/并行输出移位寄存器
示例10.2
对于图10.9(a)中的数据输入和时钟波形,展示该4位寄存器(SRG4)的状态。该寄存器初始时全为1。
图10.9
解:
该寄存器在4个时钟脉冲之后,状态为0110。参见图10.9(b)。
相关问题:如果数据输入在第四个时钟脉冲之后仍然是0,那么在三个附加的时钟脉冲之后,该寄存器的状态是什么?
8位串行进入/并行输出移位寄存器
74HC164是具有串行进入?串行输出运算的IC移位寄存器的一个示例。逻辑图如图
10.10(a)所示,典型的逻辑方块符号如部分(b)所示。注意这个设备具有两个门控串行输入A和B和一个有效低电压的清除()输入。并行输出为 到。
(a)逻辑图
(b)逻辑符号
图1O.10 74HC164 8位串行进入/并行输出移位寄存器
74HC164的一个样例时序图如图10.11所示。注意输入A上的串行输入数据在输入B
变为高电压之后,移位并穿过寄存器。
图10.11 74HC164的样例时序图
10.3节复习
1.位序列1101顺序进入(最右边的位首先进入)一个初始为清除的4位并行输出移位
寄存器上。在两个时钟脉冲之后,Q输出是什么?
2.串行进入/并行输出寄存器可以用作串行进入/并行输出寄存器吗?
10.4 并行进入/串行输出移位寄存器
对于具有并行数据输入的寄存器来说,数位同时进入位于并行线上的相应级上,而不
是像串行数据输入那样逐位地进入一条线。一旦数据完全存储在了寄存器中,串行输出就
和10.2节中所描述的一样。
在学完本节之后,你应当能够
n 解释数据数位怎样并行进入移位寄存器中
n 比较串行输入和并行输入
n 讨论74HC165 8位并行载入移位寄存器
n 开发并分析并行进入,串行输出寄存器的时序图
□ 对于并行数据来说,一次转移多个位
图10.12阐释了一个4位并行输入/串行输出移位寄存器和一个典型逻辑符号。注意有
四条数据输入线、、和,以及一个SHIFT/输入,其允许4位数据并行进入寄存器中。当SHIFT/为低电压时,门G1到G3被启动,允许每个数据位分别应用于相应触发器的D输入上。当应用时钟脉冲时,D=1的触发器将会置位,而D=0的触发器将会复位,因此就同时存储了所有的4个位。
(a)逻辑图
图10.12 4并行进入/串行输出移位寄存器(打开光盘中FI0-12文件进行核对)
(b)逻辑符号
图10.12(续)
当SHIFT/为高电压时,门到被禁止,而门到被启动,这就允许数据位从某个级向右移位到下一级。或门允许正常的移位运算或者并行数据进入运算,这取决于SHIFT/输入上的电位所启动的与门。
示例10.3
对于图1O.13(a)所示的并行输入数据、时钟以及SHIFT/波形,展示4位寄存器的数据输出波形。参见图10.12(a)中的逻辑图。
解:
在时钟脉冲1上,并行数据(=1010寄存器中,使得等于0。在时钟脉冲2,来自的1被移位到上;在时钟脉冲3,0移位到;在时钟脉冲4.最后一个数据位(1)被移位到钟脉冲5上,所有的数据位已经被移出,只有1保存在了寄存器中(假设D输入保持1。参见图1O.13(b)。
图10.13
相关问题:如果并行数据 =0101的话,对于如图10.13(a)所示的时钟和SHIFT/入,展示出数据输出波形。
8位并行载入移位寄存器
74HC165是具有并行进入,串行输出运算(也可以运行为串行进入/串行输出)的IC移位寄存器的一个示例。图lO.14(a)展示了该设备的内部逻辑图,部分(b)展示了典型的逻辑方块符号。SHIFT/ (SH/)输入上的低电压启动并行载入的所有与非门。当输入数据位为1时,触发器就会由上部门的低电压异步置位。当输入数据位为O时,触发器由底部门的低电压异步复位。此外,数据可以在SET输入上串行进入。同样地,可以随时用CLKINH输入上的高电压禁止时钟。该寄存器的串行数据输出为和它的补数。这种实现方法不同于前面所讨论的并行载入的同步方法,说明通常会有好几种方法来实现相同的
功能。
(a)逻辑图
(b)逻辑符号
图10.14 74HC165 8位并行载入移位寄存器
图10.15是一个时序图,展示了74HC165移位寄存器的一个运算示例。
图10.15 74HC165移位寄存器的样例时序图
10.4节复习
1.解释SHIFT/输入的功能。
2. 74HC165移位寄存器中的并行载入运算是同步还是异步的?这意味着什么?
10.5 并行进入/并行输出移位寄存器
并行数据进入在10.4节中描述过了,并且数据的并行输出也讨论过了。并行进入/并行
输出采用这两种方法。在全部数据位同时进入之后,这些数据位就会即刻出现在并行输
出上。
学完本节之后,你应当能够
n 讨论74HC195 4位并行存取移位寄存器
n 开发并分析并行进入/并行输出寄存器的时序图
图10.16展示了一个并行进入/并行输出寄存器。
图10.16 并行进入/并行输出寄存器
4位并行存取移位寄存器
74HC195可以用十并行入/并行输出运算。因它也可以具有串行输入,所以也可以
用作串行进入/串行输出以及串行进入/并行输出寄存器。通过将作为输出,它可以用于并行进入/串行输出运算。典型的逻辑方块符号如图1O.17所示。
图10.17 74HC195 4位并行存取移位寄存器
当SHIFT/输入(SH/)为低压时,并行输入上的数据在时钟的正转换上同步进入。当SH/ 为高电压时,存储的数据将会伴随时钟向右同步移位(到)。输入J和是寄存器第一级()的串行数据输入,可以用作串行输出数据。有效低电压清除输入是同步的。
图10.18中的时序图阐释了该寄存器的运算。
图10.18 74HC195的样例时序图
10.5节复习
1.在图10.16中, =1、=0、=0而=1。在三个时钟脉冲之后,数据输出
是什么?
2.对于一个74HC195,SH/ =1、J=1而=1。在一个时钟脉冲之后的是什么?
10.6双向移位寄存器
双向移位寄存器中的数据可以向左或者向右移位。使用门控逻辑可以实现该寄存器,
门控逻辑启动数据数位从一级转移到右边或者左边的下一级,这取决于控制线上的电位。
学完本节之后,你应当能够
n 解释双向移位寄存器的运算
n 讨论74HC194 4位双向通用移位寄存器
开发并分析双向移位寄存器的时序图
一个4位双向移位寄存器如图10.19所示。RIGHT/控制输入上的高电压允许寄
存器内部的数据位向右移位,而低电压则启动寄存器内部的数据位向左移位。门控逻辑的
检查将使得运算表观化。当RIGHT/控制输入为高电压时,门到被启动,而每个触发器Q输出的状态传送到随后触发器的D输入上。当时钟脉冲发生时,数据位向右移
动一个位置。当RIGHT/控制输入为低电压时,门到被启动,而每个触发器的Q输出传送到前面触发器的D输入上。当时钟脉冲发生时,数据位就会向左移动一个位置。
图10.19 4位双向移位寄存器(参考F10-19文档进行核对)
示例10.4
对于图10.20(a)中给定的RIGHT/控制输入波形,确定图10.19中移位寄存器在每个时钟脉冲之后的状态。假设=1, =1 =0而=1,并且串行数据输入线为低电压。
图10.20
解:参见图1O.20(b)。
相关问题:反相RIGHT/波形,确定图10.19中移位寄存器在每个时钟脉冲之后的状态。
4位双向通用移位寄存器
74HC194是集成电路形式中通用双向移位寄存器的一个示例。通过移位寄存器同时具
有串行和并行输入和输出的能力。逻辑方块符号如图10.21所示,而样例时序图如图10.22
所示。
同步于时钟正转换的并行载入,是通过应用4个数据位到并行输入以及一个高电压到和输入上来实现的。当为高电压而为低电压时,向右移位就同步于时钟的正边沿而完成。该模式中的串行数据在向右移位串行输入(SR SER)上进入。当为低电压而为高电压时,数据位同步于时钟向左移位,而新数据在向左移位串行输入(SR SER)上进入。
输入SR SER进入级,而SL SER进入级。
图10. 21 74H0194 4位双向通用移位寄存器
图10.22 74HC194移位寄存器的样例时序图
10.6节复习
1.假设图10.19中的4位双向移位寄存器具有下面的内容:=1、=1、=0、
=0。在串行数据输入线上有一个1。如果RIGHT/对于三个时钟脉冲是高
电压,而对于另外两个时钟脉冲为低电压的话,在第5个时钟脉冲之后的内容是
什么?
10.7移位寄存器计数器
移位寄存器计数器从根本上说就是一个移位寄存器,其串行输出往回连接到串行输入
上以产生特殊的序列。这些识别常常归类为计数器,因为它们呈现出指定的状态序列。最
常见的两种移位寄存器计数器类型是,约翰逊计数器和环形计数器,本节将会介绍它们。
学完本节之后,你应当能够
n 讨论移位寄存器计数器怎样区分于基本移位寄存器
n 解释约翰逊计数器的运算
n 为任意数目的位指定约翰逊序列
n 解释环形计数器的运算并确定任意指定环形计数器的序列
约翰逊计数器
在约翰逊计数器中,最后一个触发器输出的反码往回连接到第一个触发器的D输入上
(它可以用其他类型的触发器来实现)。这种反馈排列产生一个特征状态序列,如表10.1所示的4位设备以及表10.2所示的5位设备。注意,该4位序列总共具有8个状态,或者位模式,而5位序列总共具有10个状态。一般来说,约翰逊计数器将会产生模2n,其中n
是计数器中级的个数。
4位和5位约翰逊计数器的实现方法如图10.23所示。约翰逊计数器的实现是非常直接
的,除了级数不同之外都是一样的。每一级的Q输出都连接到下一级的D输入上(假设使
用了D触发器)。惟一的例外是最后一级的输出往回连接到第一级的D输入上。如表10.1
和表10.2所展示的那样,计数器将从左到右“填入”1,然后再“填入”0。
(a)4位约翰逊计数器
(b)5位约翰逊计数器
图10.23 4位和5位约翰逊计数器
表10.1 4位约翰逊序列
时钟脉冲
O
O
0
0
0
1
1
0
0
0
2
1
1
0
0
3
1
1
1
0
4
1
1
1
1
5
0
1
1
1
6
0
O
1
1
7
0
0
0
1
表10.2 5位约翰逊序列
时钟脉冲
0
O
0
0
0
0
1
1
O
O
O
0
2
1
1
O
O
0
3
1
1
1
0
4
1
1
1
1
0
5
1
1
1
1
1
6
O
1
1
1
1
7
O
0
1
1
1
8
0
0
0
1
1
9
0
0
0
O
1
4位和5位约翰逊计数器的时序运算图分别如图10.24和10.25所示。
图10.24 4位约翰逊计数器的时序序列
图10.25 5位约翰逊计数器的时序序列
环形计数器
环形计数器为序列中的每一个状态都使用一个触发器。它的优点是不需要译码门。在
10位环形计数器的情况下,每个十进制数字都有一个特定的输出。
10位环形计数器的逻辑图如图1O.26所示。该环形计数器的序列如表10.3所示。初始时,一个1被预置到第一个触发器中,而其余的触发器都被清除了。注意级间连接和约翰
逊计数器是一样的,不同的是Q而不是从最后一级中反馈回去。计数器的10个输出直
接指明了时钟脉冲的十进制计数。例如,上的1表示O,上的1表示1,上的1表示2而上的1表示3,依此类推。你应当验证1总是保持在计数器中,并且简单地“围
绕圆环”移位,每个时钟脉冲移动一级。
图10.26 10位环形计数器(参考F10-26文档进行核对)
表10.3 10位环形计数器序列
时钟脉冲
0
1
0
O
0
0
0
O
0
0
0
1
0
1
0
O
O
0
0
0
0
O
2
0
0
1
O
0
0
0
0
0
O
3
0
0
0
1
0
0
0
0
O
O
4
0
0
0
0
1
0
0
0
O
0
5
O
O
0
0
0
1
0
0
0
0
6
0
0
0
0
0
0
1
0
0
0
7
0
0
0
O
O
O
O
1'
0
0
8
0
0
0
0
O
0
0
0
1
0
9
O
0
0
0
0
0
0
0
0
1
使得计数器中具有多于一个的单个1,就可以得到修改序列,如示例10.5所示。
示例10.5
如果和图10.26相似的一个10位环形计数器的初始状态为1010000000,确定每个Q输出的波形。
解:参见图10.27。
图10.27
相关问题:如果一个10位环形计数器具有初始状态0101001111,确定每个Q输出的波形。
10.7节复习
1.在一个8位约翰逊计数器序列中具有多少个状态?
2.为开始于000的3位约翰逊计数器,写出状态序列。
10.8移位寄存器应用
在许多类型的应用中都会发现移位寄存器,本节将介绍其中的一小部分。
学完本节之后,你应当能够
n 使用移位寄存器来生成时间延迟
n 使用74HC195移位寄存器来实现指定的环形计数器
n 讨论移位寄存器怎样用以数据的串行到并行的转换
n 定义UART
n 解释键盘译码器的运算以及寄存器怎样应用于这个应用中
时间延迟
串行进入/串行输出移位寄存器可以用来提供从输入到输出之后的时间延迟,该时间延
迟是寄存器中级数(n) 和时钟频率的函数。
当一个数据脉冲应用于串行输入时,如图10.28所示(A和B)连接在一起),它就在时钟
脉冲的触发边沿进入第一级。然后于每一个相继的时钟脉冲上,在级间移位直至在n个时
钟周期之后出现在串行输出上。这个时间延迟运算如图10.28所示,其中使用了一个具有
1MHz时钟频率的8位串行进入/串行输出移位寄存器,来实现8(8×1)的时间延迟()通过改变时钟频率可以增加或者减少这个时间。时间延迟也可以通过级联移位寄存器来增加,或者通过依次从较低级中取出输出来减少,前提是输出可用,如示例10.6所示。
图10.28移位寄存器作为时间延迟识别
计算机常识 奔腾中的通用寄存器全部是32位的寄存器,可以用于临时数据存储
以及特殊用途。四种寄存器如下所示。累加器( EAX)主要用于数据的临时存储和指令操
作。基址寄存器(EBX)用来临时存储数据。计数寄存器(ECX)主要用来确定特定循环、
字符串、移位或者循环操作的重复次数。数据寄存器(EDX)一般用来临时存储数据。
示例10.6
确定图10.29中串行输入和每个输出之间的时间延迟。展示一个时序图来说明。
图10.29
解:
时钟周期是2。因此,时间延迟可以增加或减少2的增量,在最小值2到最大值16之间变化,如图10.30所示。
图10.30 展示图10.29中计时器时间延迟的时序图
相关问题:要得到图10.29中输入到输出之间的24时间延迟,确定所需要的时钟频率。
使用74HC195移位寄存器的环形计数器
如果输出往回连接到串行输入上,移位寄存器就可以用作环形计数器。图10.31用
74HC195 4位移位寄存器阐释了这个应用。
图10.31连接为环形计数器的74HC195
初始时,位模式1000(或者任何其他的模式)可以被同步预置到计数器中,应用该位模式
到并行数据输入上,使得SH/输入为低电压,同时应用一个时钟脉冲。在这个初始化之
后,1继续在环形计数器中循环,如图10.32中的时序图所示。
图10.32 展示图10.31中环形计数器两个完整循环的时序图,该计数器初始时被预置为1000
串行到并行数据转换器
从一个数字系统到另一个数字系统的串行数据传送,常常用来减少传送导线个数。例
如,8个位可以在一条导线上串行传送,但是并行传送同样的数据则需要8条导线。基于
计算机或者微处理器的系统常常需要上传数据处于并行格式,因此需要串行到并行的转换。
一个简化的串行到并行数据转换器如图10.33所示,其使用了两种类型的移位寄存器。
为了阐释该串行到并行转换器的运算,我们使用了图10.34中所示的串行数据格式。
它由11个位所组成。第一个位(起始位)总是O,并且总是开始于高电压到低电压的转换。
下面的8个位(到都是数据位(其中一个位可以是奇偶校验位),而最后两个位(终止位)总是1。当没有数据被传送时,串行数据线上就会有连续的1存在。
图10.33 串行到并行转换器的简化逻辑图
图10.34 串行数据格式
起始位的高电压到低电压转换置位控制触发器,其启动时钟发生器。在一个固定的延
迟时间之后,时钟发生器开始产生脉冲波形,该波形被应用于数据输入寄存器和除以8计数器。该时钟的频率精确等于上传串行数据的频率,而起始位之后的第一个时钟脉冲在第
一个数据位期间发生。
图10.35中的时序图阐释了下面的基本运算:8个数据位(到)串行移位到数据输入寄存器。在第8个时钟脉冲之后,计数器终端级数(TC)输出的高电压到低电压转换,和时钟进行与运算(TC∙CLK),从而将数据输入寄存器中的8个位载入数据输出寄存器中。
相同的转换还触发单次振荡器,其产生一个短期脉冲来清除计数器,并复位控制触发器,
因此禁止了时钟发生器。现在系统已准备好转换下一组11位数,并且在起始位的开始处等待下一个高电压到低电压的转换。
图10.35 图10.33中串行到并行时间转换器运算的时序图说明
通过反转刚刚所描述的过程,就可以实现并行到串行数据的转换。但是,由于必须产
生串行数据格式,必须考虑附加的需求。本章末尾的习题43就涉及了8位并行到串行数据
转换器的设计问题。
通用异步接收器和发射机
正如前面所提到的那样,基于计算机和微处理器的系统常常发送和接收并行格式的数据。在许多情况下,这些系统必须和发送和(或者)接收串行数据的外围设备进行交流。用来
完成这些转换的接口设备是UART。图10.36阐释了基于一般微处理器的系统应用中的
UART。
图10.36 UART接口
UART包括一个串行到并行数据的转换器(诸如我们刚刚讨论的)和一个并行到串行转
换器,如图10.37所示。数据总线从根本上说是一组并行导线,数据沿着这些导线在UART
和微处理器系统之间运动,缓冲器连接数据总线和数据寄存器。
图10.37 基本UART方块图
UART接收串行格式的数据,将数据变换为并行格式,然后将它们置于数据总线上。
UART还接收来自数据总线的并行数据,将这些数据变换为串行格式,然后将它们发送到
外围设备上。
键盘译码器
键盘译码器是移位寄存器作为环形计数器连接于其他设备的一个良好示例。我们在第6章介绍了没有数据存储的简化计算机键盘译码器。
图10.38展示了一个简化键盘译码器,用以译码键关闭,键关闭位于8行8列的64键矩阵中。两个74HC195 4位移位寄存器被连接为8位环形计数器,其具有7个1的固定位模式,并且当电源打开时一个O会预置到计数器中。两个74HC147优先译码器(第6章中介绍的)被用作8线到3线的译码器(9输入为高电压,8输出未用),以译码键盘矩阵中的ROW和COLUMN。74HC174A(六触发器)用作并行进入,并行输出寄存器,其中存储了来自优先译码器的ROW/COLUMN代码。
图10.38简化的键盘译码电路
图10.38中键盘译码器的基本运算如下所示:环形计数器当时钟信号以5kHz的速度移
位0时,“扫描”行中的键关闭。O(低电压)顺序应用于每个ROW线上,同时所有其他的
ROW线都是高电压。所有的ROW线都连接到ROW译码器输入上,所以ROW译码器的3位输出任何时候都是低电压状态ROW线的二进制表达式。当键被按下时,一条COLUMN线就连接于一条ROW线。当ROW线被环形计数器设定为低电压时,那条特殊的COLUMN线也同样被设定为低电压。COLUMN译码器产生一个相关于存在键关闭COLUMN的二进制输出。3位ROW代码加上3位COLUMN代码就惟一地识别了被按下的键。该6位代码被应用于键代码寄存器的输入上。当某个按键被按下时,两个单次振荡器就会产生一个延迟的时钟脉冲,将该6位代码并行载入键代码寄存器中。这个延迟允许按键触点有短时间内的颤动。同样地,第一个单次振荡器输出禁止环形计数器,使得数据载入的时候不进行扫描。
键代码寄存器中的6位代码现在被应用于ROM(只读存储器),以变换为识别键盘字符
的相应的字母数字代码。我们将在第12章介绍ROM。
10.8节复习
1.在键盘译码器中,环形计数器每秒钟扫描键盘多少次?
2.键盘译码器中顶行和左列中的6位ROW/COLUMN代码(键代码)是什么?
3.键盘译码器中二极管的作用是什么?电阻器的作用是什么?
10.9 故障检测
序列逻辑以及其他更加复杂的数字系统故障检测的基本方法是,使用已知的输入波形
(激励)来“运行”待检测电路,然后观察正确位模式的输出。
学完本节之后,你应当能够
n 解释“运行”过程作为故障检测技术
n 讨论串行到并行转换器的运行
图10.33中所示的串行到并行数据转换器用来阐释“运行”过程。运行电路的主要目
标是迫使所有的元件(触发器和门)进入它们所有的状态,以确认没有哪一个状态总是固定
不变,因而造成故障。在这里,输入测试模式必须迫使寄存器中的每个触发器都进入两个
状态,以触发时钟经过它所有的8个状态,并且带动控制触发器、时钟发生器、单次振荡
器和与门经过它们的每一步。
实现串行到并行数据转换器目标的输入测试模式基于图10.34中的串行数据格式。它
由某一串行数据位小组中的模式10101010跟随着下一小组的01010101组成,如图10.39
所示。这些模式通过特殊的测试模式发生器在重复的基础上产生。基本的测试设置如图
10.40所示。
图10.39 样例测试模式
图10.40 图10.33中串行到并行数据转换器的基本测试设置
在两种模式全部经过待测电路之后,数据输入寄存器和数据输出寄存器中的所有触发
器都位于置位和复位状态,计数器已经经过了它的序列(每种位模式经过一次),并且所有
其他的设备也都运行过了。
为了检测正确的运算,观察交替模式1和0的每一个并行数据输出,而输入测试模式
重复地移入数据输入寄存器,然后载入数
展开阅读全文