EJERCICIO 6 (Examen del Plan Antiguo Electrónica II Junio 2003/4 y 2004/5 2ª Prueba Personal 2ª Semana).
Por una línea de transmisión llegan datos en serie de nueve bits, siendo el de más peso el bit de paridad. Estos datos se transfieren a dos buses de cuatro líneas internos, uno para los cuatro primeros bits, otro para los siguientes y el noveno a un registro único para su uso posterior en el control de paridad. Construir el sistema de conversión serie/paralelo que reúna las siguientes características:
- Posibilidad de puesta a cero del contenido de los registros.
- Transferencia de los datos entre los subsistemas mediante pulsos de reloj.
- Capacidad de almacenamiento de la información recibida durante al menos un ciclo de reloj.
Comente los distintos bloques de que se compondría el diseño, así como cite las principales características de cada uno de ellos.
SOLUCIÓN:
1) PRIMER BLOQUE: REGISTRO DE DESPLAZAMIENTO DE 9 BITS
La información de entrada en serie E la transformaremos en paralelo a través de un registro de desplazamiento de 9 bits de entrada serie y salida en paralelo. A cada flanco descendente del reloj, el bit presente en la entrada E se irá desplazando a la derecha en el registro. La entrada activa a nivel bajo "0", pone a "0" las 9 salidas en paralelo del registro. Por tanto, para comenzar a introducir bits del dato por la entrada E, hay que poner a "1":
Para realizar el registro de desplazamiento de 9 bits, vamos a utilizar 9 biestables JK con puesta a cero y activo a cada flanco descendente de reloj. La señal asíncrona con valor "0" pone Q="0" sea cual sea el estado del reloj. Si está a "1", las entradas J y K están activas a cada flanco descendente del reloj (J="1" pone Q="1"; K="1" pone Q="0", pero si los dos son "1" Q cambia de estado):
Para realizar el registro de desplazamiento, conectamos los biestables JK entre sí, de tal manera que la salida Q de cada biestable es la entrada J del siguiente y la salida es la entrada K (J y K siempre tendrán distinto valor). Así, a cada flanco de bajada, la señal de salida de cada biestable se carga en el siguiente, desplazándose una posición a la derecha los bits de la entrada en serie. Al primer biestable van entrando los bits de información en serie a cada flanco de bajada del reloj. La señal asíncrona con valor "0" pone todas las Q="0" sea cual sea el estado del reloj. Por tanto, para empezar a introducir el dato de 9 bits por la entrada E, la señal debe ponerse a "1" y a los 9 impulsos de reloj se habrán introducido los 9 bits, que aparecerán en paralelo en las salidas de los 9 biestables.
2) SEGUNDO BLOQUE: CONTADOR DE 9 BITS.
El dato de entrada de 9 bits está presente en las salidas del registro al pasar 9 pulsos de reloj. Por esto, vamos a utilizar un contador de 9 bits para que al noveno pulso de reloj el dato del registro se cargue en los registros de los buses. Por un lado, los cuatro primeros bits a un bus de cuatro líneas; por otro los siguientes cuatro bits a otro bus; y por último el bit de paridad a otro registro. Este contador se parará y se pondrá a 9 cuando sea "0". Enviará una señal de carga L="1" cuando esté a 9. Por tanto, para empezar a contar pulsos de reloj hay que poner la señal a "1".
Para realizar el contador podemos utilizar los biestables JK con puesta a cero y activo a cada flanco descendente de reloj vistos antes. Lo convertimos en biestable D si conectamos la entrada K a la inversa de la entrada J.
Para realizar un contador de módulo 9 (cuenta de 1 a 9) necesitamos cuatro variables internas Q3, Q2, Q1 y Q0 para representar los 9 estados internos del contador.
1 Diagrama de estados del contador:
2 El número mínimo de biestables es 4, ya que el contador es de módulo 9 (23<9<24).
3 Si se realiza el contador con biestables D, siendo sus transiciones:
D | Q antes | Q después |
---|---|---|
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
La tabla de excitación será la siguiente:
ESTADOS | ENTRADAS t | SALIDAS t+1 | SALIDAS D | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Q3 |
Q2 |
Q1 |
Q0 |
Q3 |
Q2 |
Q1 |
Q0 |
ESTADOS |
D3 | D2 | D1 | D0 | |
I0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
I1 |
0 |
0 |
0 |
1 |
I1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
I2 |
0 |
0 |
1 |
0 |
I2 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
I3 |
0 |
0 |
1 |
1 |
I3 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
I4 |
0 |
1 |
0 |
0 |
I4 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
I5 |
0 |
1 |
0 |
1 |
I5 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
I6 |
0 |
1 |
1 |
0 |
I6 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
I7 |
0 |
1 |
1 |
1 |
I7 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
I8 |
1 |
0 |
0 |
0 |
I8 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
I0 |
0 |
0 |
0 |
0 |
Se realizan las simplificaciones por mapa de Karnaugh de las salidas D de cada biestable en función de las entradas Q0, Q1, Q2 y Q3.
Las ecuaciones lógicas de las entradas de los biestables son, por tanto:
El circuito lógico es:
3) TERCER BLOQUE: REGISTROS DE LOS BUSES DE 4 BITS Y REGISTRO DE BIT DE PARIDAD.
Los cuatro primeros bits (Q8, Q7, Q6 y Q5) irán a un registro de un bus de cuatro líneas. Para ello, este registro deberá ser de 4 bits y de entrada y salida en paralelo. Los cuatro siguientes bits (Q4, Q3, Q2 y Q1) se cargarán en otro registro de 4 bits igual que el anterior y el de paridad (Q0) a otro registro de 1 bit.
La señal de carga L="1", procedente del contador, cargará en estos registros las salidas del registro de 9 bits, que se mantendrán memorizadas en estos registros hasta que el contador pase al estado 9 otra vez; ya sea por poner a "0" (que cargará los valores de todos los Q="0") ó por haber contado otros 9 pulsos de reloj y estar disponible un nuevo dato para cargar.
Por tanto, cumplimos con las premisas del enunciado de poder poner a cero los registros y mantener el dato memorizado al menos un pulso de reloj (lo mantenemos 9 pulsos).
Para los registro de carga enn paralelo, vamos a utilizar biestables JK con puesta a cero, puesta a uno y activos a cada señal descendente de reloj, como el de la figura:
Este biestable, como indica su tabla de verdad tiene sus entradas JK activas cuando las señales asíncronas y están a "1" ambas y en el flanco de bajada del reloj. Las dos señales a "0" no debe permitirse. Cuando sólo está a "0" pone a Q="0"; y cuando sólo está a a "0" pone a Q="1".
Vamos a aprovechar estas señales asíncronas y para cargar en el biestable los valores deseados P a una señal de carga L. Esta señal L va a ser activa a nivel alto y por tanto, cargará el valor de P en el biestable cuando L="1".
L | P | ESTADO DEL BIESTABLE | ||
---|---|---|---|---|
0 |
0 |
1 |
1 |
sin carga, entradas JK activas |
0 |
1 |
1 |
1 |
sin carga, entradas JK activas |
1 |
0 |
1 |
0 |
carga cero; Q="0" |
1 |
1 |
0 |
1 |
carga uno; Q="1" |
Si J=0 y K=0 el valor cargado quedará memorizado hasta una nueva carga de dato. Según la tabla de verdad las ecuaciones lógicas para y son:
El circuito del registro de entrada y salida en paralelo es: