- Principio básico del codificador:
- Construyendo codificadores usando diseños lógicos combinacionales
- Codificadores 8: 3:
- Inconveniente de los codificadores normales:
- Codificador de prioridad:
Los codificadores, como sugiere el nombre, codifican un bit más grande de información en un valor de bit más pequeño. Hay muchos tipos de codificadores según el número de entradas y salidas y según su funcionamiento. Pero cada codificador tiene una regla subyacente, el número de líneas de salida en un codificador siempre será menor que el número de líneas de entrada. En este artículo aprenderemos más sobre codificadores, qué es un codificador, cómo y por qué se utilizan en circuitos digitales.
Principio básico del codificador:
Imaginemos que un codificador es una caja negra, como se muestra a continuación, que reduce mágicamente el número de líneas de entrada de 4 a solo 2 líneas de salida, pero sigue proporcionando la misma información sin pérdida de datos.
Primero, determinemos cuál sería el nombre de este codificador. Tiene cuatro entradas y dos salidas, por lo que el nombre de este codificador será codificador 4: 2. Si un codificador tiene “ n ” número de líneas de salida, entonces el número de líneas de entrada será 2 n, en nuestro caso, el número de líneas de salida es dos (n = 2), por lo tanto, el número de líneas de entrada debe ser (2 2 = 4) cuatro, que es exactamente el caso. Los cuatro pines de entrada están etiquetados de I0 a I3 y los dos pines de salida están etiquetados de O0 a O1
Entonces, ¿cómo convierte el codificador cuatro señales en dos? Se puede entender echando un vistazo a la tabla de verdad a continuación. También es importante saber que un codificador ordinario como el que se muestra aquí tiene la regla de que en un momento dado solo un pin de entrada debe ser alto, por lo que en la siguiente tabla de verdad solo una entrada será alta.
Todas las condiciones posibles de la entrada y la salida se muestran en la tabla de verdad anterior. Por ejemplo, cuando solo O1 es alto (1) y todas las demás entradas son bajas (0), ambos pines de salida estarán bajos (0). De manera similar, para cada caso, los pines de salida también cambiarán su estado. Al utilizar este estado de bits de salida, el usuario podrá rastrear hasta qué señal de entrada se le habría dado al codificador.
De acuerdo, ¿qué tiene de elegante convertir 4 líneas en 2 líneas, por qué lo necesitamos?
Con el fin de comprender, hemos explicado un codificador 4: 2, pero hay otros codificadores que pueden tomar un número mayor de entradas y convertirlas en un número menor de salidas como el codificador 8: 3, el codificador 16: 4, etc. Estos tipos de Encoder son muy útiles cuando tenemos que reducir la cantidad de pines utilizados en una MCU / MPU o reducir la cantidad de cables portadores de señal en PLC y otros sistemas donde hay una matriz de interruptores o LED. También se usa para transmitir datos de manera eficiente mediante el uso de cables menores. En algunas aplicaciones, podríamos tener una situación en la que más de una entrada podría ser alta (1) en ese caso, tendremos algo llamado Codificador de prioridad que discutiremos más adelante en este artículo.
Construyendo codificadores usando diseños lógicos combinacionales
Ahora que sabemos cómo funciona un codificador y dónde se usa. Aprendamos a construir uno usando simples puertas lógicas. Aunque los codificadores como 8: 3 están disponibles como IC de paquete único ordenado como SN74LS148, es importante saber cómo están construidos para que podamos hacer codificadores personalizados para nuestros proyectos basados en la tabla de verdad requerida.
Expresión booleana:
El primero en diseñar el dispositivo de lógica combinatoria es encontrar la expresión booleana para la tabla de verdad. Es muy fácil y se puede determinar fácilmente con solo mirar la tabla de verdad. La misma tabla de verdad que vimos anteriormente se muestra a continuación con algunas ilustraciones para que comprenda mejor.
El número de expresiones será igual al número de líneas de salida, aquí tenemos dos salidas y por lo tanto tenemos dos Expresiones. Para la primera salida O0, simplemente verifique en qué condición es alta (1) y rastree el número de pin de entrada correspondiente que también permanece alto (1). De manera similar, para todos los valores altos de O0, observe qué número de pin de entrada es alto y agregue los pines. Los pines de entrada correspondientes al pin de salida O0 están resaltados en rojo arriba y para O1 están resaltados en azul. Entonces la expresión para O0 y O1 será
O 1 = Yo 3 + Yo 2 O 0 = Yo 3 + Yo 1
Diagrama del circuito del codificador 4: 2:
Una vez que obtenemos la Expresión Booleana solo tenemos que dibujarla en forma de Gates. Aquí, dado que tenemos operación de suma (+), usaremos las puertas OR para construir nuestros circuitos. También puede simplificar o modificar la expresión booleana según sus necesidades. El diagrama de circuito para la expresión anterior se muestra a continuación.
El circuito se puede construir fácilmente usando un IC de puerta 7432 OR. He construido mi circuito codificador sobre una placa como se muestra a continuación
Las cuatro líneas de entrada (I0, I1, I2 e I3) son provistas por los cuatro botones, cuando se presiona el botón, enlaza + 5V al pin, lo que lo convierte en 1 lógico y cuando no se presiona el botón, el pin se mantiene a tierra a través de una resistencia desplegable de 10k para convertirlo en cero lógico. Las salidas (O0 y O1) se representan mediante un par de LED rojos. Si el LED se ilumina, significa que la lógica de salida es 1 y si están apagados, significa que la lógica de salida es 0. El funcionamiento completo del circuito del codificador se muestra en el video a continuación.
Como puede ver, cuando se presiona el primer botón, la entrada I0 se hace alta y, por lo tanto, ambas salidas permanecen bajas. Cuando se presiona el segundo botón, la entrada I1 se enciende y, por lo tanto, un LED se pone alto para indicar que O0 está alto. Finalmente, cuando se presiona el cuarto botón, la entrada I3 se hace alta y, por lo tanto, ambos LED se ponen altos. Este es un circuito muy simple, por lo tanto, lo hemos construido fácilmente en una placa de pruebas, pero para codificadores prácticos, el circuito se volverá un poco más complejo. Sin embargo, los codificadores también están disponibles como paquetes IC que se pueden comprar si se adapta a su proyecto.
Codificadores 8: 3:
El funcionamiento y uso del codificador 8: 3 también es similar al codificador 4: 2 excepto por el número de pines de entrada y salida. El codificador 8: 3 también se denomina codificador octal a binario; el diagrama de bloques de un codificador 8: 3 se muestra a continuación
Aquí el codificador tiene 8 entradas y 3 salidas, nuevamente solo una entrada debe ser alta (1) en un momento dado. Como hay 8 entradas, se llama entrada octal y como hay tres salidas también se llama salida binaria. La tabla de verdad del codificador se muestra a continuación.
Tabla de verdad del codificador 8: 3:
Expresión booleana:
Como tenemos las salidas, tendremos tres expresiones como se muestra a continuación.
O 2 = Yo 7 + Yo 6 + Yo 5 + Yo 4 O 1 = Yo 7 + Yo 6 + Yo 3 + Yo 2 O 0 = Yo 7 + Yo 5 + Yo 3 + Yo 1
Diagrama del circuito del codificador 8: 3:
Una vez que se obtiene la expresión booleana, como siempre, podemos construir el diagrama del circuito usando las puertas OR como se muestra a continuación.
El circuito usa un CI de puerta OR de 4 entradas, también puede simplificar la expresión booleana para usar otros CI de puerta normales de 2 entradas.
Inconveniente de los codificadores normales:
Estos tipos de codificadores adolecen de los siguientes inconvenientes importantes
- Cuando ninguna de las entradas es alta, la Salida será igual a cero, pero estas condiciones también entran en conflicto con el primer bit que es alto (MSB). Por lo tanto, siempre se debe tener cuidado de que al menos un bit permanezca encendido siempre
- Cuando más de una entrada es alta, la salida se colapsará y puede dar el resultado para cualquiera de las entradas, lo que genera confusión.
Para superar estas dificultades, empleamos un tipo diferente de codificador llamado codificador de prioridad que usa una salida adicional para determinar si la salida es válida, y cuando más de una entrada es alta, la que sube a partir del LSD se considera solo mientras ignorando las otras entradas.
Codificador de prioridad:
Analicemos un codificador de prioridad 4: 2 como ejemplo para comprender en qué se diferencia de un codificador normal y puede superar los dos inconvenientes mencionados anteriormente. El diagrama de bloques de un codificador de prioridad 4: 2 se muestra a continuación
Un codificador de prioridad 4: 2 también tiene 4 entradas y 2 salidas, pero agregaremos otra salida llamada V que significa bit válido. Este bit válido verificará si los cuatro pines de entrada son bajos (0) si están bajos, el bit también se hará bajo indicando que la salida no es válida, por lo que podemos superar el primer inconveniente mencionado anteriormente.
Tabla de verdad del codificador de prioridad 4: 2:
El siguiente inconveniente se puede evitar dando prioridad a los bits MSB, el codificador comprobará desde el MSB y una vez que encuentre el primer bit tan alto (1) generará la salida correspondiente. Por tanto, no importa si los otros pines son altos o bajos. Por lo tanto, en la siguiente tabla de verdad, una vez que se alcanza un 1, los valores de no importa se presentan con una “X”.
Expresión booleana:
Ahora tenemos que derivar tres expresiones que sean para O0, O1 y V. Dado que la tabla de verdad tiene elementos indiferentes, tenemos que usar el método K-map para derivar la expresión booleana para esto. No vamos a cubrir cómo resolver con K-maps ya que está fuera del alcance de este artículo. Pero el mapa se muestra a continuación para que pueda interferir y aprender por sí mismo.
En los mapas anteriores, el de la izquierda es para O1 y el de la derecha es para O0. Las líneas de salida se mencionan con y y las líneas de entrada se mencionan con x. Entonces, ordenando la ecuación en consecuencia obtendremos lo siguiente.
O 1 = Yo 3 + Yo 2 O 0 = Yo 2 Yo 1 '+ Yo 3
De manera similar, para el bit válido "V", la expresión booleana se puede dar como
V = Yo 3 + Yo 2 + Yo 1 + Yo 0
Diagrama de circuito:
El diagrama de circuito para este proyecto se puede construir usando las expresiones booleanas.
El circuito se puede construir usando las puertas básicas NOT, AND y OR. Aquí los bits O0 y O1 se consideran salidas mientras que el bit V se utiliza para validar la salida. Solo si el bit V es alto, se considerará la salida si el valor de V es bajo (0) se debe ignorar la salida, ya que implica que todos los pines de entrada son cero.