数字电子技术 - 优先编码器
在数字电子技术中,编码器是一种组合逻辑电路,它接受十进制数字和字母字符作为输入,并产生作为输入的编码表示的输出。换句话说,将数字和符号转换为其相应编码格式的电子组合电路称为编码器。编码器执行的操作称为编码,即将熟悉的数字和字符转换为其等效代码的过程。
编码器有 2n 条输入线和 n 条输出线。一次,2n 条输入线中只有一条被激活。编码器的编码输出取决于激活的输入线。有几种类型的编码器可用,例如"八进制到二进制编码器"、"十进制到 BCD 编码器"、"键盘编码器"等。
什么是优先级编码器?
对于普通编码器,在任何给定时间只能激活一个十进制输入。但在某些实际数字系统中,两个或多个十进制输入可能会无意中同时激活,这可能会造成混淆。例如,在键盘上,用户按下键 4 然后再释放另一个键 2。在这种情况下,输出将对应于 (6)10,而不是 (4)10 或 (2)10。这类问题可以借助优先级编码器解决。
在数字电子技术中,响应所有可能同时激活的输入中的一个输入而产生输出的组合逻辑电路称为优先级编码器。为此,它使用优先级系统,因此得名。
最流行的优先级系统之一是基于输入的相对大小。根据优先级系统,对所有同时输入中具有最大大小的十进制输入进行编码。因此,根据此优先级编码系统,如果 4 和 2 同时处于活动状态,优先级编码器将对 4 进行编码。
在一些实际系统中,优先级编码器具有多个通常同时处于活动状态的输入。在这种情况下,编码器的主要功能是选择具有最高优先级的输入。优先级编码器的此功能称为仲裁。例如,在计算机系统中,连接了多个输入设备,其中几个可能尝试同时向系统提供数据。在这种情况下,优先级编码器负责启用所有输入设备中具有最高优先级的输入设备。
优先级编码器的类型
有几种类型的优先级编码器。下面列出并解释了一些最重要的优先级编码器类型。
- 4 输入优先级编码器
- 十进制到 BCD 优先级编码器
- 八进制到二进制优先级编码器
让我们详细讨论每种优先级编码器。
4 输入优先级编码器
4 输入优先级编码器的逻辑电路如图 1 所示。

它有三个输出,分别由 A、B 和 V 指定。其中,A 和 B 是普通输出,V 是用作有效位指示器的输出。当一个或多个输入等于 1 时,第三个输出 V 设置为 1。在这种情况下,当编码器的所有输入都等于 0 时,没有任何有效输入,因此输出 V 设置为 0。当 V 等于 0 时,编码器的另外两个输出,即 A 和 B 不确定。因此,当 V 等于 0 时,输出 A 和 B 被指定为"无关条件"。
4 输入优先级编码器的真值表如下所示。
输入(X = 无关) | 输出 | |||||
---|---|---|---|---|---|---|
I0 | I1 | I2 | I3 | A | B | V |
0 | 0 | 0 | 0 | X | X | 0 |
1 | 0 | 0 | 0 | 0 | 0 | 1 |
X | 1 | 0 | 0 | 0 | 1 | 1 |
X | X | 1 | 0 | 1 | 0 | 1 |
X | X | X | 1 | 1 | 1 | 1 |
从该真值表中可以看出,输入的下标数字越大,输入的优先级越高。因此,输入 I3 具有最高优先级。因此,无论其他输入的值如何,当输入 I3 等于 1 时,AB 的输出为 11,即 3。输入 I2 具有下一个较低的优先级,然后是 I1,最后 I0 具有最低优先级。
我们可以从上表中写出输出 A、B 和 V 的布尔表达式如下,
$$\mathrm{A \: = \: I_{3} \: + \: \bar{I_{3}} \: I_{2}\: = \: I_{3} \: + \: I_{2}}$$
$$\mathrm{B \: = \: I_{3} \: + \: \bar{I_{3}} \: \bar{I_{2}} \: I_{1} \: = \: I_{3} \: + \: \bar{I_{2}} \: I_{1}}$$
并且,
$$\mathrm{V \: = \: I_{3} \: + \: I_{2} \: + \: I_{1} \: + \: I_{0}}$$
因此,输出 V 的条件是所有输入变量的或运算。
十进制到 BCD 优先级编码器
这种优先级编码器执行将十进制数字编码为 4 位 BCD(二进制编码十进制)输出的功能。由于它是十进制到 BCD 优先级编码器,因此,它会生成与所有输入中优先级最高的十进制数字相对应的 BCD,并忽略所有其他输入。
十进制到 BCD 优先级编码器的真值表如下。
十进制输入(X = 无关) | BCD 输出 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
I1 | I2 | I3 | I4 | I5 | I6 | I7 | I8 | I9 | A3 | A2 | A1 | A0 |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
X | X | X | X | X | X | X | X | 0 | 0 | 1 | 1 | 0 |
X | X | X | X | X | X | X | 0 | 1 | 0 | 1 | 1 | 1 |
X | X | X | X | X | X | 0 | 1 | 1 | 1 | 0 | 0 | 0 |
X | X | X | X | X | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 1 |
X | X | X | X | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 |
X | X | X | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 |
X | X | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 |
X | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 |
0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
十进制到 BCD 优先级编码器的真值表清楚地表明,十进制输入的大小决定了它们的优先级。如果任何十进制输入为高,则无论所有较低值输入的状态如何,如果所有其他较高值输入都为低,则它将被编码。
八进制到二进制优先级编码器
这种优先级编码器用于将八进制代码编码为二进制代码。因此,这种优先级编码器有八个输入和三个输出,它们产生相应的二进制代码,如下表所示。
输入 | 输出 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
I0 | I1 | I2 | I3 | I4 | I5 | I6 | I7 | A2 | A1 | A0 | V |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | X | X | X | 0 |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
X | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
X | X | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
X | X | X | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
X | X | X | X | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 |
X | X | X | X | X | 1 | 0 | 0 | 1 | 0 | 1 | 1 |
X | X | X | X | X | X | 1 | 0 | 1 | 1 | 0 | 1 |
X | X | X | X | X | X | X | 1 | 1 | 1 | 1 | 1 |
这就是有关优先级编码器及其在数字电子技术中的主要类型。