优先编码器:组合逻辑中的重要角色

分享到:

优先编码器是一种电路,它将所有数据输入转换为等效的二进制代码。与多路复用器不同,它选择单独的数据输入线并将其发送到单个输出线或开关。数字编码器(通常称为二进制编码器)一次获取所有数据输入,并将它们转换为单个编码输出。
 
因此,可以说二进制编码器是一种组合逻辑电路,用于将逻辑电平“1”的输入数据转换为等效的二进制代码输出。
 
通常情况下,数字编码器根据数据输入线的数量生成2位、3位或4位代码的输出。例如,2位二进制编码器具有两条输入线和两位输出线。其他常见类型包括4至2、8至3和16至4线配置。
 
数字编码器的输出线生成与输入线对应的二进制等效项,这些输出可以用于将十进制或十六进制输入模式编码为标准的二进制或“BCD”(二进制编码的十进制)输出代码。
 
4对2位二进制编码器
 
标准数字编码器存在一个主要缺点,即当多个输入同时处于逻辑电平“1”时,会生成错误的输出代码。举个例子,如果我们将输入D1和D2同时设置为逻辑“1”,那么输出结果既不是“01”也不是“10”,而是“11”,这与当前实际输入不符合。同样地,当所有输入均为“0”或者输入D0等于1时,都会生成全零输出代码。
 
解决这个问题的一种简单方法是对每个输入引脚进行优先级处理。因此,如果多个输入同时处于逻辑电平“1”,实际的输出代码只会对应于具有最高指定优先级的输入。这种类型的数字编码器通常称为优先编码器或P编码器。
 
优先编码器解决了通过为每个输入分配优先级来解决上述问题。优先编码器的输出对应于具有最高优先级的当前活动输入。因此,当存在具有较高优先级的输入时,所有其他具有较低优先级的输入都会被忽略。
 
优先编码器有多种不同形式,比如8输入优先编码器及其真值表如下所示:
 
8至3位优先编码器
 
优先编码器以标准的集成电路形式提供,TTL 74LS148是一个8位至3位优先编码器,它具有八个活动的低电平(逻辑“0”)输入,并在输出处提供最高优先级的3位代码。
 
优先编码器首先输出最高顺序的输入,例如,如果同时应用输入线D2、D3和D5,那么输出代码将对应于输入D5("101"),因为它是这三个输入中最高顺序的一个。当输入D5被移除后,下一个最高的输出代码将是输入D3("011"),以此类推。
 
8至3位优先级编码器的真值表如下所示:
 
D7 D6 D5 D4 D3 D2 D1 D0 Q2 Q1 Q0
X X X X 0 0 0 0 1 1 1
X X X 0 X X X 1 1 1 0
X X 0 X X X 1 1 1 0 0
X 0 X X X 1 1 1 0 0 0
0 X X X 1 1 1 1 0 0 0
1 1 1 1 1 1 1 1 0 0 0
其中X表示不关心,即逻辑“0”或逻辑“1”。
 
根据上述真值表,该编码器的布尔表达式(数据输入为D0至D7,输出为Q0、Q1和Q2)如下所示:
 
Q0 = D3' + D2' + D1' + D0'
Q1 = D3' + D2' + D1' + D0
Q2 = D3' + D2' + D1 + D0
 
然后,优先级编码器的最终布尔表达式(包括零输入)定义为:
 
Q0 = Q2'Q1'D3' + Q2'Q1D3 + Q2Q1'D3' + Q2Q1D3 + Q2'Q0'D3' + Q2'Q0'D3 + Q2'Q0D3' + Q2Q0'D3' + Q2'Q0'D2' + Q2'Q0D2 + Q2'Q0D1' + Q2Q0'D1'
Q1 = Q2'Q0'D3' + Q2'Q0'D3 + Q2'Q0D3' + Q2Q0'D3' + Q2'Q0'D2' + Q2'Q0D2 + Q2'Q0D1' + Q2Q0'D1' + Q2Q0'D0'
Q2 = Q2'Q0'D3' + Q2'Q0D3' + Q2Q0'D3' + Q2'Q0'D2' + Q2'Q0D2 + Q2'Q0D1' + Q2Q0'D1' + Q2Q0'D0'
实际上,忽略这些零输入,可以使用逻辑门实现8至3位优先级编码器的最终布尔表达式。下图展示了使用逻辑门构建的简单编码器:
 
数字编码器
 
数字编码器的应用
 
优先级编码器可用于减少需要大量输入的电路或应用中所需的线缆数量。例如,假设一个微型计算机需要读取标准QWERTY键盘上的104个键,每次只能按下一个键(高电平或低电平)。
 
一种方法是将所有104条导线直接连接到计算机输入,但对于小型家用个人电脑来说,这是不实际的。另一个更好的替代方法是使用优先级编码器将键盘连接到计算机。
 
位置编码器
 
另一个常见的应用是在船舶导航或机械手臂定位等领域中使用的磁性位置控制。例如,通过使用74LS148 8至3行优先级编码器将指南针的角度或***位置转换为数字代码,并输入到系统计算机以提供导航数据。下面是一个简单的示例,展示了将8位输入转换为3位输出的罗盘编码器。在每个罗盘点上,可以使用磁铁和簧片开关来指示指针的角度位置。
 
优先编码器在导航中的应用
 
中断请求
 
特别是优先编码器在检测微处理器应用程序中的中断方面有其他应用。微处理器使用中断允许外围设备(如磁盘驱动器、扫描仪、鼠标或打印机等)与其进行通信,但微处理器一次只能与一个外围设备进行通信,因此需要一种方式来确定何时特定的外围设备希望与其通信。
 
处理器通过使用“中断请求”或“IRQ”信号为所有外围设备分配优先级,以确保最重要的外围设备首先得到服务。设备的优先级顺序取决于它们与优先级编码器的连接。
 
由于使用优先级编码器(如标准的74LS148优先级编码器IC)来实现这样的系统涉及其他逻辑电路,因此可以使用专用的集成电路(例如8259可编程优先级中断控制器)。
 
数字编码器摘要
 
总的来说,数字编码器是一种组合电路,对一个或多个有效输入做出响应,并在其输出(如二进制或BCD)上生成特定的代码。数字编码器有两种主要类型:二进制编码器和优先编码器。
 
我们已经了解到,二进制编码器将2^n个输入之一转换为n位输出。二进制编码器的输出位少于输入代码。二进制编码器可用于数据压缩,并且可以通过简单的AND或OR门构建。然而,标准二进制编码器的一个主要缺点是,当多个输入同时有效时,会产生错误的输出。为了解决这个问题,优先编码器被开发出来。
 
优先编码器类似于二进制编码器,但区别在于它生成基于最高优先级输入的输出代码。优先编码器广泛应用于数字和计算机系统中的微处理器中断控制器中,用于检测最高优先级的输入信号。

      关键词:罗姆编码器

相关资讯
解复用器(DEMUX)数字解码器:解析和使用指南

复用器是一种组合逻辑电路,其功能是将一条公共输入线切换到多条独立的输出线之一。 与我们在先前教程中见过的多路复用器完全相反,分解器(通常简称为“Demux”或多路分解器)的作用正好相反。

优先编码器:组合逻辑中的重要角色

优先编码器是一种电路,它将所有数据输入转换为等效的二进制代码。与多路复用器不同,它选择单独的数据输入线并将其发送到单个输出线或开关。数字编码器(通常称为二进制编码器)一次获取所有数据输入,并将它们转换为单个编码输出。 因此,可以说二进制编码器是一种组合逻辑电路,用于将逻辑电平“1”的输入数据转换为等效的二进制代码输出。 通常情况下,数字编码器根据数据输入线的数量生成2位、3位或4位代码的输出。例如,2位二进制编码器具有两条输入线和两位输出线。其他常见类型包括4至2、8至3和16至4线配置。

用于解码二进制代码的二进制解码器

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

体验组合逻辑电路

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

精彩活动

Baidu
map