数字电路 - 编码器
编码器是执行解码器相反操作的组合电路。它最多有 2 n条输入线和 'n' 条输出线。它将产生与输入等效的二进制代码,该代码为高电平有效。因此,编码器用“n”位对2 n 个输入线进行编码。在编码器中表示使能信号是可选的。
4转2编码器
令4到2编码器具有四个输入Y 3、Y 2、Y 1和Y 0以及两个输出A 1和A 0。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编码器电路图如下图所示。
上面的电路图包含两个或门。这些或门用两位对四个输入进行编码
八进制到二进制编码器
八进制转二进制编码器具有八个输入 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 映射来获取每个输出的简化表达式。
简化的布尔函数是
$$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”时也是如此。因此,该电路根据分配给每个输入的优先级用两位对四个输入进行编码。