组合逻辑——优先编码器

分享到:

       优先编码器一次获取所有数据输入,然后在其输出处将其转换为等效的二进制代码。与选择一个单独的数据输入线然后将数据发送到单个输出线或开关的多路复用器不同,数字编码器(通常称为二进制编码器)一次获取所有数据输入,然后将它们转换为单个编码输出。

 

       因此,可以说二进制编码器是一种多输入组合逻辑电路,它将输入端的逻辑电平“ 1”数据转换成输出端的等效二进制代码。

 

       通常,数字编码器根据数据输入线的数量产生2位,3位或4位代码的输出。“ n位”二进制编码器具有2条n输入线和n位输出线,其常见类型包括4至2、8至3和16至4线配置。

 

       数字编码器的输出线生成其值等于“ 1”的输入线的二进制等效项,并且可用于将十进制或十六进制输入模式编码为典型的二进制或“ BCD”(二进制编码的十进制)输出代码。

 

       4对2位二进制编码器

 

1

 

       标准数字编码器的主要缺点之一是,当逻辑电平“ 1”上存在多个输入时,它们会生成错误的输出代码。例如,如果我们同时使输入D 1和D 2为逻辑“ 1”,则结果输出既不是“ 01”也不是“ 10”,而是“ 11”,这是输出二进制与当前实际输入不同的数字。同样,当所有输入均为“ 0”时或输入D 0等于1 时,可以生成所有逻辑“ 0”的输出代码。

 

       解决此问题的一种简单方法是“优先”每个输入引脚的电平。因此,如果同时有多个输入处于逻辑电平“ 1”,则实际输出代码将仅对应于具有最高指定优先级的输入。这样的数字编码器通常简称为优先编码器或P编码器。

       

       优先编码器

 

       在优先编码器解决了通过分配优先级给每个输入上述问题。的优先级编码器输出对应于具有最高优先级的当前活动的输入。因此,当存在具有较高优先级的输入时,将忽略具有较低优先级的所有其他输入。

 

       优先级编码器有许多不同的形式,例如一个8输入优先级编码器及其真实值表,如下所示。

 

       8至3位优先编码器

 

2

 

       优先级编码器以标准IC形式提供,而TTL 74LS148是8位至3位优先级编码器,具有八个活动的LOW(逻辑“ 0”)输入,并在其输出处提供输入最高等级的3位代码。

 

       优先编码器首先输出最高顺序的输入,例如,如果同时应用输入线“ D2 ”,“ D3 ”和“ D5 ”,则输出代码将用于输入“ D5 ”(“ 101”),因为它具有最高顺序3个输入中的一个。输入“ D5 ”被删除后,下一个最高的输出代码将是输入“ D3 ”(“ 011”),依此类推。

 

       8至3位优先级编码器的真值表如下:

 

3

 

       其中X等于“不关心”,即逻辑“0”或逻辑“1”。

 

       从该真值表中,上述编码器的布尔表达式(数据输入为D 0至D 7,输出为Q 0,Q 1,Q 2)为:

 

       输出Q 0

 

4

 

       输出Q 1

 

5

 

       输出Q 2

 

6

 

       然后,优先级编码器的最终布尔表达式(包括零输入)定义为:

 

       优先编码器输出表达式

 

7

 

       实际上,将忽略这些零输入,从而允许为8至3 优先级编码器的输出实现最终的布尔表达式。我们可以使用单个或门从上面的表达式构建一个简单的编码器,如下所示。

 

       使用逻辑门的数字编码器

 

8

 

       数字编码器应用

 

       键盘编码器

 

       优先级编码器可用于减少具有多个输入的特定电路或应用中所需的电线数量。例如,假设一台微型计算机需要读取标准QWERTY键盘的104个键,在该键盘上任何时候都只能按下一个键,即“ HIGH”或“ LOW”。

 

       一种方法是将所有104条导线从键盘上的各个键直接连接到计算机输入,但这对于小型家用PC是不切实际的。另一种更好的替代方法是使用优先级编码器将键盘连接到PC。

 

       可以将104个单独的按钮或键编码为仅7位(十进制为0到127)的标准ASCII码,以表示键盘上的每个键或字符,然后将更小的7位BCD码直接输入计算机。 。键盘编码器(例如74C923 20键编码器)就可以做到这一点。

 

       位置编码器

 

       另一个更常见的应用是在船舶导航或机械手臂定位等中使用的磁性位置控制。例如,此处的指南针的角度或旋转位置由74LS148 8至3行优先级编码器转换为数字代码并输入到系统计算机以提供导航数据,下面是一个简单的8位至3位输出罗盘编码器的示例。可以在每个罗盘点使用磁铁和簧片开关来指示指针的角度位置。

 

       优先编码器导航

 

9

 

       中断请求

 

       尤其是优先编码器的其他应用程序可能包括检测微处理器应用程序中的中断。在这里,微处理器使用中断来允许外围设备(例如磁盘驱动器,扫描仪,鼠标或打印机等)与其通信,但是微处理器一次只能与一个外围设备“对话”,因此需要某种方式来知道何时特定的外围设备希望与其通信。

 

       处理器通过使用“中断请求”或“ IRQ”信号为所有外围设备分配优先级,以确保最重要的外围设备首先得到服务,从而做到这一点。设备重要性的顺序将取决于它们与优先级编码器的连接。

 

10

 

       因为使用优先级编码器(例如标准74LS148优先级编码器IC)来实现这样的系统会涉及其他逻辑电路,所以可以使用专用的集成电路(例如8259可编程优先级中断控制器)。

 

       数字编码器摘要

 

       总而言之,数字编码器是一种组合电路,它会响应一个或多个有效输入,在其输出(例如二进制或BCD)处生成特定的代码。数字编码器有两种主要类型。该二进制编码器和优先编码器。

 

       我们已经看到,二进制编码器将2 n个输入之一转换为n位输出。然后,二进制编码器的输出位少于输入代码。二进制编码器可用于压缩数据,并且可以通过简单的AND或OR门构造。标准二进制编码器的主要缺点之一是,如果同时有多个输入有效,则会在其输出端产生错误。为了克服这个问题,开发了优先级编码器。

 

       在优先编码器类似于一个二进制编码器,所不同的是它产生基于最高优先级的输入端的输出代码另一种类型的组合电路的。优先级编码器广泛用作数字和计算机系统中的微处理器中断控制器,它们在其中检测最高优先级输入。

 
继续阅读
用于解码二进制代码的二进制解码器

二进制解码器是由单独的逻辑门构成的另一种组合逻辑电路,与编码器完全相反。名称“解码器”是指将编码信息从一种格式转换或解码为另一种格式,因此二进制解码器使用2 n个输出将“ n”个二进制输入信号转换为等效代码。二进制解码器是另一种类型的数字逻辑设备,根据数据输入线的数量,其输入的2位,3位或4位代码,因此具有一组2位或更多位的解码器将定义为具有n位代码,因此将有可能表示2 n个可能的值。

组合逻辑——优先编码器

优先编码器一次获取所有数据输入,然后在其输出处将其转换为等效的二进制代码。与选择一个单独的数据输入线然后将数据发送到单个输出线或开关的多路复用器不同,数字编码器(通常称为二进制编码器)一次获取所有数据输入,然后将它们转换为单个编码输出。因此,可以说二进制编码器是一种多输入组合逻辑电路,它将输入端的逻辑电平“ 1”数据转换成输出端的等效二进制代码。

解复用器(DEMUX)数字解码器

解复用器也是一种组合逻辑电路,旨在将一条公共输入线切换到几条独立输出线之一。数据分发器(通常简称为多路分解器或简称为“ Demux”)与我们在上一教程中看到的多路复用器完全相反。多路分解器采用一条输入数据线,然后一次将其切换到多条独立输出线中的任何一条。

体验组合逻辑电路

组合逻辑电路是无记忆数字逻辑电路,其任何时刻的输出仅取决于其输入的组合。与顺序逻辑电路不同,顺序逻辑电路的输出取决于它们的当前输入和先前的输出状态,从而给它们提供某种形式的存储器。组合逻辑电路的输出仅由其当前输入状态的逻辑功能(在任何给定的瞬间)确定为逻辑“ 0”或逻辑“ 1”。