数字电路 - 编码器

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

4 对 2 编码器

假设 4 对 2 编码器有四个输入 Y3、Y2、Y1 和 Y0 以及两个输出 A1 和 A0。下图显示了 4 对 2 编码器的框图

4 对 2 编码器

在任何时候,这 4 个输入中只有一个可以为"1",以便在输出端获得相应的二进制代码。下图显示了 4 对 2 编码器的真值表

输入 输出
Y3 Y2 Y1 Y0 A1 A0
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 编码器电路图

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

八进制到二进制编码器

八进制到二进制编码器有八个输入,Y7 到 Y0 和三个输出 A2、A1 和 A0。八进制到二进制编码器只不过是 8 到 3 的编码器。八进制到二进制编码器的框图如下图所示。

八进制到二进制编码器

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

输入 输出
Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 A2 A1 A0
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 或所有输入都为零时,它可能是与输入相对应的代码。

  • 如果多个输入为高电平有效,则编码器产生的输出可能不是正确的代码。例如,如果 Y3 和 Y6 均为"1",则编码器在输出端产生 111。这既不是 Y3 为"1"时对应的等效代码,也不是 Y6 为"1"时对应的等效代码。

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

优先级编码器

4 到 2 优先级编码器有四个输入 Y3、Y2、Y1 和 Y0 以及两个输出 A1 和A0。这里,输入 Y3 具有最高优先级,而输入 Y0 具有最低优先级。在这种情况下,即使多个输入同时为"1",输出也将是与具有更高优先级的输入相对应的(二进制)代码。

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

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

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

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

Inputs Outputs
Y3 Y2 Y1 Y0 A1 A0 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-map 来获取每个输出的简化表达式。

K Map

简化的布尔函数

$$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 输入或门、一个 4 输入或门、一个 2 输入与门和一个反相器。此处,与门和反相器组合用于在输出端产生有效代码,即使多个输入同时等于"1"。因此,该电路根据分配给每个输入的优先级用两位对四个输入进行编码。