第10章 移位寄存器 (2011).doc_第1页
第10章 移位寄存器 (2011).doc_第2页
第10章 移位寄存器 (2011).doc_第3页
第10章 移位寄存器 (2011).doc_第4页
第10章 移位寄存器 (2011).doc_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

第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 描述基本的CPLDn 在系统应用中使用移位寄存器 重要术语n 寄存器n 级n 移位n 载入n 双向n CPLDn 逻辑阵列块(LAB)n 宏单元 简介 移位寄存器是紧密关联于数字计数器的序列逻辑电路的一种类型。寄存器主要用来存储数字数据并且一般不具有特征内部状态序列,而计数器则具有这样的序列。但是也有例外,我们将在10.7节介绍它们。 在本章中,我们将学习移位寄存器的基本类型并展示几个应用。同时,我们还介绍了一种重要的故障检测方法。本章还介绍了复杂可编程逻辑设备(CPLD)。 固定功能逻辑器件 74HC164 74HC165 74HC174 74HC194 74HC195 可编程逻辑器件 MAX 7000 数字系统应用概述 数字系统应用阐释了本章中的概念。我们介绍了一个控制建筑物中警报器的安全进入系统。该系统使用两种类型的寄存器以及前几章所介绍的其他类型的设备。该系统同时还含有一个存储器,其将是第12章数字系统应用的重点。 学习本章内容可访问/floyd。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 14位和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 定义UARTn 解释键盘译码器的运算以及寄存器怎样应用于这个应用中时间延迟 串行进入串行输出移位寄存器可以用来提供从输入到输出之后的时间延迟,该时间延迟是寄存器中级数(n) 和时钟频率的函数。 当一个数据脉冲应用于串行输入时,如图10.28所示(A和B)连接在一起),它就在时钟 脉冲的触发边沿进入第一级。然后于每一个相继的时钟脉冲上,在级间移位直至在n个时 钟周期之后出现在串行输出上。这个时间延迟运算如图10.28所示,其中使用了一个具有 1MHz时钟频率的8位串行进入串行输出移位寄存器,来实现8(81)的时间延迟()通过改变时钟频率可以增加或者减少这个时间。时间延迟也可以通过级联移位寄存器来增加,或者通过依次从较低级中取出输出来减少,前提是输出可用,如示例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)输出的高电压到低电压转换,和时钟进行与运算(TCCLK),从而将数据输入寄存器中的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的每一个并行数据输出,而输入测试模式重复地移入数据输入寄存器,然后载入数据输出寄存器。正确的时序图如图lO.41所示。可以用双路示波器成对观察输出,或者用配置为计时分析的逻辑分析器同时观察所有的8个输出。 如果数据输出寄存器的一个或者多个输出错误的话,那么你就必须返回数据输入寄存器的输出。如果这些输出都正确的话,那么问题就在于数据输出寄存器。直接在IC的引脚上检查数据输出寄存器的输入是否为开路输入线。检测电源和接地都是正确的(寻找接地线上干扰的缺失)。验证载入线是有效的低电压并且在正确振幅的时钟输入上存在时钟脉冲。确保到逻辑分析器的连接没有同时短路两条输出线。如果所有的这些检测都没有问题的话,就说明输出寄存器是次品。如果数据输入寄存器输出也错误的话,故障可能关联于输入寄存器本身或者任何其他的设备,这就需要附加的检测来隔离问题。 10.41 图10.40中待测电路的正确输出(展示了输入测试模式) 提示 当用示波器测量数字信号时,你应当总是使用直流耦联,而不是交流耦联。交流耦 联不适合观察数字信号的原因是,信号的OV电位将会出现在信号的平均电位上, 而不是真实的接地或者OV电位。使用直流耦联,很容易发现“虚”接地或者错误 逻辑电位。如果你怀疑数字电路中存在开路接地,就要最大可能地增加示波器的灵 敏度。良好的接地在这种情况下不会出现干扰,但是开路接地将会展示一些干扰, 其表现为OV电位的随机波动。10.9节复习1位序列逻辑电路提供测试输入的目的是什么?2. 一般来说,当发现输出波形不正确是,下一步应当采取什么措施 刻在CD-ROM上的故障检测习题用于章节结束习题中的EWB/Multisim故障检测 练习(可从网上获取)。10.12数字系统应用 在这个数字系统应用中,你将要解决一个安全进入系统。该系统允许你撤消(解除)警报,从而能够进入建筑物。解除警报通过在小型键盘上输入特定的4位数字序列而完成。当你离开大厦时,按下开关就可以重新启动该系统。该系统使用三个移位寄存器以及前几章所介绍的其他设备。存储器也包括在内,但是在你学习第12章的存储器之前,将不会了解太多的细节。 安全进入系统的基本运算 该系统的概要通用逻辑图如图10.49所示。该系统由两个电路板、平面开关和小型键盘组成。该数字系统应用的重点是代码进入板,并且你应当熟悉所使用的所有设备。存储器板和完整的系统运算是第12章中数字系统应用的重点。 该安全进入系统控制给定建筑物中传感器和警报的启动和解除。传感器和警报的启动或者激活通过按下标记ARM的按钮来完成,当按下该按钮时,在小型键盘上输入任意的数字。解除或者撤消通过在小型键盘上输入预先设定的4个数字组成的数来完成。 当该系统被启动时,移位寄存器A和B以及存储器地址计数器都被清除(复位)到它们的0状态,而移位寄存器C被预置到11110000。移位寄存器C的串行输出上的结果低电压,将会启动警报系统传感器并且点亮ARMED灯。 当输入数的第一个数字在小型键盘上输入时,来自小型键盘的相应线就会进入它的有效电位。十进制到BCD译码器产生对应于十进制数字的4位BCD代码。与此同时,单次振荡器A被触发,并产生一个时钟脉冲,使得来自译码器的4位BCD数字进入寄存器A,而来自存储器的第一个4位BCD数字将会进入寄存器B。这些代码随后出现在比较器的A和B输入上。存储器存储正确4位输入数字的BCD代码。如果正确数字已经在小型键盘上输入了,那么比较器输入一上的4位就会等同于B输入上的4位,比较器就会在它的A=B输出上产生一个高电压。来自单次振荡器A的脉冲同样会触发单次振荡器B。来自单次振荡器B的脉冲把比较器输出A=B的状态时钟输入触发器,使得它的Q输出变为高电压。来自单次振荡器C的脉冲触发寄存器C,并将内容向右移位,从而使得寄存器状态为11111000。由于在寄存器的最后一级(最右边)中仍然有一个O,所以警报系统保持激活状态。 在第二个正确数字输入小型键盘后,移位寄存器C状态为11111100。在第三个正确数字输入小型键盘后,该移位寄存器状态为11111110。在第四个数字之后,也就是最后一个正确数字输入后,该移位寄存器状态为全1。当1移位到最后一级时,寄存器的连续输出变为高电压,并且解除了警报。与此同时ARMED灯被关闭,你就可以在不触发警报的情况下进入建筑物。 现在让我们简单地看看如果输入错误数字的话,会发生什么事情。如果,在输入4个数字组成的数的任何一点上输入了错误的数字,BCD代码将不会与存储在存储器中的代码相符。结果,比较器就会在它的A=B输出上产生一个低电压。这就会导致移位寄存器C并行载入11110000,并且清除移位寄存器A和B以及存储器计数器到全0。这样,你就必须重新输入4个数字。 基本逻辑图如图10.49所示,指示了该系统的通用逻辑,但是并没有表示实现该系统所需的详细逻辑。在随后的三个系统任务中,你将会分析代码输入板逻辑的基本运算,以确定你理解了功能需求和基本系统运算。然后你将通过选择合适的设备来完成逻辑的设计,并开发包含选择设备的详细逻辑图。最后,你将比较你的逻辑图和己实现的电路板,然后开发一个测试过程。图10.49 完全进入系统的基本逻辑图系统任务1:分析对于这个任务,参见图10.49。n 动作1:十进制到BCD译码器(a)表述译码器的目的(b)当在小型键盘上输入数字时,描述译码器输入上会发生什么。(c)当在小型键盘上输入数字时,描述译码器输出上会发生什么。n 动作2:计时电路(a)表述标记的方块的目的,以及它所表示的门类型。(b)解释单次振荡器A何时以及怎样触发。(c)表述每个单次振荡器的目的。n 动作3:移位寄存器A和B(a)表述移位寄存器A和移位寄存器B的目的。(b)确定移位寄存器A和B的容量(位的个数)。(c)描述并行数据何时以及怎样进入移位寄存器A和移位寄存器B。n 动作4:比较器(a)表述比较器的目的。(b)定义四个输入位的两个集合(A和B)(c)描述当两个输入相同时,在输出上会发生什么。(d)描述当两个输入不同时,在输出上会发生什么。n 动作5:移位寄存器C(a)表述移位寄存器C的目的。(b)讨论初始载入寄存器中的位模式,并表述它的目的。(c)描述当串行输出为低电压时,会发生什么。描述当串行输出为高电压时,会 发生什么。(d)描述当每次在小型键盘上输入正确的数字时,移位寄存器C会发生什么。系统任务2:设计 这个任务的重点在于代码进入电路板的设计,如图10.50所示。对于设备上的信息,参见前面的几章和(或者)设备数据表(如果需要的话)。n 动作1:十进制到BCD译码器该系统所示的特定小型键盘产生有效低电压输出。当按下某个键时,相应的线就是低电压,而其他的线都是高电压。指定一个IC译码器来正确接口该小型键

温馨提示

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

评论

0/150

提交评论