数字电路 - 编码器


编码是执行解码器相反操作的组合电路。它最多有 2 n条输入线和 'n' 条输出线。它将产生与输入等效的二进制代码,该代码为高电平有效。因此,编码器用“n”位对2 n 个输入线进行编码。在编码器中表示使能信号是可选的。

4转2编码器

令4到2编码器具有四个输入Y 3、Y 2、Y 1和Y 0以及两个输出A 1和A 04转2编码器框图如下图所示。

4转2编码器

在任何时候,这 4 个输入中只有一个可以为“1”,以便在输出处获得相应的二进制代码。4转2编码器的真值表如下所示。

输入 输出
Y 3 Y 2 Y 1 0 1 一个0
0 0 0 1 0 0
0 0 1 0 0 1
0 1 0 0 1 0
1 0 0 0 1 1

从真值表中,我们可以将每个输出的布尔函数写为

$$A_{1}=Y_{3}+Y_{2}$$

$$A_{0}=Y_{3}+Y_{1}$$

我们可以使用两个输入或门来实现上述两个布尔函数。4转2编码器电路图如下图所示。

4转2编码器电路图

上面的电路图包含两个或门。这些或门用两位对四个输入进行编码

八进制到二进制编码器

八进制转二进制编码器具有八个输入 Y 7至 Y 0和三个输出 A 2、A 1和 A 0。八进制转二进制编码器只不过是8转3编码器。八进制转二进制编码器的框图如下图所示。

八进制到二进制编码器

在任何时候,这八个输入中只有一个可以为“1”,以获得相应的二进制代码。八进制转二进制编码器的真值表如下所示。

输入 输出
7 Y 6 5 _ Y 4 Y 3 Y 2 Y 1 0 2 1 一个0
0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 1 0 0 0 1
0 0 0 0 0 1 0 0 0 1 0
0 0 0 0 1 0 0 0 0 1 1
0 0 0 1 0 0 0 0 1 0 0
0 0 1 0 0 0 0 0 1 0 1
0 1 0 0 0 0 0 0 1 1 0
1 0 0 0 0 0 0 0 1 1 1

从真值表中,我们可以将每个输出的布尔函数写为

$$A_{2}=Y_{7}+Y_{6}+Y_{5}+Y_{4}$$

$$A_{1}=Y_{7}+Y_{6}+Y_{3}+Y_{2}$$

$$A_{0}=Y_{7}+Y_{5}+Y_{3}+Y_{1}$$

我们可以使用四个输入或门来实现上述布尔函数。八进制转二进制编码器电路图如下图所示。

八进制转二进制编码器电路图

上面的电路图包含三个 4 输入或门。这些“或”门用三位对八个输入进行编码。

编码器的缺点

以下是普通编码器的缺点。

  • 当编码器的所有输出都等于零时,存在歧义。因为,当只有最低有效输入为 1 或所有输入均为 0 时,它可能是与输入相对应的代码。

  • 如果多个输入处于高电平有效,则编码器会产生一个输出,该输出可能不是正确的代码。例如,如果 Y 3和 Y 6均为“1”,则编码在输出处生成 111。这既不是与Y 3为“1”时对应的等效代码,也不是与Y 6为“1”时对应的等效代码。

因此,为了克服这些困难,我们应该为编码器的每个输入分配优先级。然后,编码器的输出将是与有效高输入相对应的(二进制)代码,具有更高的优先级。这种编码器称为优先编码器

优先编码器

4比2优先级编码器具有四个输入Y 3、Y 2、Y 1和Y 0以及两个输出A 1和A 0。这里,输入Y 3具有最高优先级,而输入Y 0具有最低优先级。在这种情况下,即使多个输入同时为“1”,输出也将是与该输入相对应的(二进制)代码,该代码具有更高的优先级

我们考虑了另一个输出 V,以便了解输出处可用的代码是否有效。

  • 如果编码器的至少一个输入为“1”,则输出处可用的代码是有效的。在这种情况下,输出 V 将等于 1。

  • 如果编码器的所有输入均为“0”,则输出处可用的代码不是有效的代码。在这种情况下,输出 V 将等于 0。

4比2优先级编码器的真值表如下所示。

输入 输出
Y 3 Y 2 Y 1 0 1 一个0 V
0 0 0 0 0 0 0
0 0 0 1 0 0 1
0 0 1 X 0 1 1
0 1 X X 1 0 1
1 X X X 1 1 1

使用4 个变量 K 映射来获取每个输出的简化表达式。

K 地图

简化的布尔函数

$$A_{1}=Y_{3}+Y_{2}$$

$A_{0}=Y_{3}+{Y_{2}}'Y_{1}$

类似地,我们将得到输出 V 的布尔函数为

$$V=Y_{3}+Y_{2}+Y_{1}+Y_{0}$$

我们可以使用逻辑门来实现上述布尔函数。4转2优先编码器电路图如下图所示。

优先编码器

上述电路图包含两个2输入或门、1个4输入或门、1个2输入与门和一个反相器。这里,与门和反相器组合用于在输出处生成有效代码,即使多个输入同时等于“1”时也是如此。因此,该电路根据分配给每个输入的优先级用两位对四个输入进行编码。