domingo, 20 de mayo de 2012

Máquina de Moore

Una Máquina de Moore es un circuito secuencial sincrónico donde las salidas están determinadas por el estado actual únicamente (y no depende directamente de la entrada). El diagrama de estados para una máquina de Moore incluye una señal de salida para cada estado a diferencia de la máquina de Mealy donde la salida está asociada a la entrada y no al estado.


La máquina se llama así en honor a Edward Forrest Moore, matemático estaunidense, pionero en Inteligencia artificial, y en Máquinas de Estado finitos (Finite State Machines), y  cuya biografía puede consultarse en http://es.wikipedia.org/wiki/Edward_F._Moore   Moore tuvo en mente crear "Plantas Vivas Artificiales", diseño que no funcionó en su aplicación.

Los estados se determinan a traves de Flip-flops cuyas entradas de reloj están puenteadas para responder a un   clock global. 

EJERCICIO 1:  Diseñar en discreto una máquina de Moore que detecte la secuencia 110 en una entrada serial X colocando su salida Z en alto.Compilar y simular en ALTERA.
SOLUCIÓN:

1.1  DIAGRAMA DE ESTADOS:
Con el ánimo de que el lector comprenda el diagrama de estados se describe paso a paso:
  • Como la Clave Serial es 110  al partir del estado inicial S0  con  X = 0 permanece en ese estado con Z = 0.Con X = 1 se identifica el primer bit correctamente y al llegar el flanco de subida del reloj se avanza al estado S1 en donde la salida asociada a ese estado es Z = 0. 

  • Estando en el estado S1 con X = 0  se regresa al estado inicial S0, pero si X = 1, la máquina de Moore detecta que el segundo bit ha sido correcto, llegando al estado S2 con Z =0 como salida asociada.

  • Al estar en el estado S2 si X = 1, se mantiene en ese estado con Z =0, para que no se pierdan los 2 bits correctos 11.  Puede estarse en ese estado cuantas veces se quiera, y sólo valen los dos últimos 1s, de tal manera que si la máquina ha llegado al estado S2 es porque ya lleva 2 bits correctos, y si luego X = 0 se detecta la clave serial y en el siguiente flanco de reloj se avanza al estado S3 cuya salida asociada es Z=1, indicando que se ha detectado la secuencia 110.

  • Luego a partir de S3 si X = 0, se envía al estado inicial, pero si X = 1 se retorna al estado S1 para que la máquina identifique ese 1 como el primer bit correcto en la secuencia, y se pueda al pasar a S2 con otro 1 en X,  y a S3 con X =0, detectándose nuevamente la clave.
1.2 TABLA DE ESTADOS
  Estado Presente   Salida asociada al estado presente   Entrada     Estado Siguiente  
      Q1  Q0                            Z                                         X              Q1  Q0
       0     0                              0                                          0                0     0
       0     0                              0                                          1                0     1   
       0     1                              0                                          0                0     0
       0     1                              0                                          1                1     0
       1     0                              0                                          0                1     1                                
       1     0                              0                                          1                1     0  
       1     1                              1                                          0                0     0
       1     1                              1                                          1                0     1

Escogemos el flip-flop T  y elaboramos Tabla de Excitación, para de ella obtener las ecuaciones Booleanas que nos permiten implementar el circuito lógico.

1.3 TABLA DE EXCITACIÖN

Estado Presente   Salida asociada al estado presente   Entrada     Estado Siguiente  Entradas de Flip-Flops
      Q1  Q0                            Z                                         X              Q1  Q0            T(Q1)   T(Q0)
       0     0                              0                                          0                0     0                 0           0
       0     0                              0                                          1                0     1                 0           1 
       0     1                              0                                          0                0     0                 0           1  
       0     1                              0                                          1                1     0                 1           1 
       1     0                              0                                          0                1     1                 0           1                 
       1     0                              0                                          1                1     0                 0           0
       1     1                              1                                          0                0     0                 1           1
       1     1                              1                                          1                0     1                 1           0

1.4 ECUACIONES DE FLIP-FLOPS

Por Mapas de Karnaugh encontramos las ecuaciones para saber la lógica de entrada de cada flip-flop T:
La ecuación para Q0 se puede escribir como T(Q0)= (Q1 xor X) + Q0 X'

1.5 ECUACIÓN DE SALIDA:
Como en la Máquina de Moore la salida es independiente de la entrada, y está asociada al estado presente, para encontrar su ecuación no es necesario elaborar mapas de Karnaugh, sino que se obtiene por simple inspección de la tabla de estados.Para nuestro caso, como se dá Z = 1 para Q1 Q0 en el estado S3=[1,1] se encuentra que Z = Q1 Q0

1.6 CIRCUITO LÓGICO:
A partir de las ecuaciones obtenidas elaboramos en el Editor Esquemático de Altera el circuito de la Máquina de Moore:

1.7  Compilando  el circuito en ALTERA y luego al simular se encuentra las siguientes formas de onda:


EJERCICIO 2:  En ispLEVER, mediante programación en ABEL-HDL repetir el Ejercicio anterior.

SOLUCIÓN:

2.1  PROGRAMA:


2.2 SIMULACIÓN








sábado, 19 de mayo de 2012

Detector de secuencia de Mealy en ABEL

EJERCICIO: Se trata de detectar la secuencia en binario 110 para un tren de pulsos, colocándose la salida Z=1 en la Máquina de Mealy.

SOLUCIÖN:
Lo primero es tener claro el diagrama de estados:
En el Editor de texto de ispLEVER, trabajando en ABEL-HDL escribimos el programa respectivo:
Compilamos y simulamos:


  

lunes, 14 de mayo de 2012

Máquina de Mealy

Previamente se recomienda al lector consultar http://es.wikipedia.org/wiki/M%C3%A1quina_de_Mealy

EJERCICIO:  Se dispone de un DIP- SWITCH con 3 interruptores en el que se puede fijar un número binario de 3 bits B2,B1 y B0.  Para un tren de pulsos, cada vez que la Máquina de Mealy detecte la secuencia 110 su salida Z = 1  con lo cual se enciende un LED. Para cualquier otra secuencia Z = 0.

SOLUCIÖN:
Primero diseñamos la Máquina de Mealy y luego le adicionamos un Circuito CONVERSOR de Paralelo a Serie que permita que los 3 bits de la Clave que están en paralelo en el Dip-Switch se coloquen en Serie a la entrada de la máquina de Mealy, de acuerdo al gráfico siguiente:
PARTE A:  MÄQUINA DE MEALY

1) DIAGRAMA DE ESTADO:
Se parte de un estado inicial a. Si X=0, Z =0, y se mantiene la secuencia en ese estado a porque la Clave se inició equivocadamente.  En cambio si X =1, Z=0, pero se avanza al estado b en el siguiente flanco de reloj, debido a que el primer bit de la Clave es correcto. Si estando en el estado b, X = 0, se regresa al estado a con Z = 0, para volver a arrancar la secuencia. Si por el contrario, estando en b, X =1, se avanza hacia el estado c, con Z=0, contabilizándose 2 bits correctamente.  En el estado c, si X=0, Z=1, pués se detecta la clave 110, y se envía al estado a para repetir la operación. Si estando en c, X = 1, permanece en ese estado, pués valen los 2 últimos 1s en la secuencia para que luego con X=0, se detecte la clave.

2) TABLA DE ESTADO:
Se requiere previamente efectuar asignación binaria a los estados, así: a = 00, b =01, c = 10.

 ESTADO PRESENTE  ENTRADA    ESTADO SIGUIENTE        SALIDA EN ESTADO PRESENTE
        Q1    Q0                        X                       Q1    Q0                                          Z
         0       0                          0                         0       0                                            0
         0       0                          1                         0       1                                            0
         0       1                          0                         0       0                                            0
         0       1                          1                         1       0                                            0
         1       0                          0                         0       0                                            1
         1       0                          1                         1       0                                            0      

3) TABLA DE EXCITACIÓN USANDO FLIP-FLOPS T:
Estado  Presente     Entrada    Estado Siguiente  Salida en Estado Presente Entradas de Flip-Flops
        Q1    Q0            X            Q1    Q0                      Z                               T(Q1)       T(Q0)
         0       0               0              0       0                       0                                   0               0
         0       0               1              0       1                       0                                   0               1
         0       1               0              0       0                       0                                   0               1
         0       1               1              1       0                       0                                   1               1
         1       0               0              0       0                       1                                   1               0
         1       0               1              1       0                       0                                   0               0
 4) ECUACIONES DE FLIP-FLOPS Y DE SALIDA:
      T ( Q1) = Q1´ Q0 X +  Q1 Q0´ X´
      T ( Q0) = Q1´ Q0´ X + Q1´ Q0 X´ + Q1´Q0 X = Q1´ X +  Q1´Q0
      Z  = Q1 Q0´ X´

5) CIRCUITO LÓGICO:
6) SIMULACIÓN EN ALTERA ( Diagramas de tiempo)

7) SIMBOLO ESQUEMÄTICO:

PARTE B.  CONVERSOR PARALELO A SERIE:

Se elabora con un MULTIPLEXOR de 3 a 1 y un contador 74190 que cuente 0,1,2. Las salidas QB y QA del 74190 se conectan a las entradas S1 y S0 del Multiplexor.

1) Cuenta 0,1,2 con el 74190:

2) SIMULACIÖN DEL CONTADOR DE 2 BITS CON 74190:



3) CONTADOR Y MULTIPLEXOR:

4) SIMULACIÓN DEL CONVERSOR DE PARALELO A SERIE:


CIRCUITO FINAL:


SIMULACIÓN EN ALTERA DEL CIRCUITO DEFINITIVO:








viernes, 11 de mayo de 2012

Salida Optoacoplada

En muchas ocasiones se hace indispensable, para evitar ruidos que pueden incidir en un mal funcionamiento de un circuito secuencial, el uso de un optoacoplador que aisle la carga del circuito secuencial. Para este situación es muy util implementar una salida optoacoplada con el PC817, tal como se muestra en el siguiente esquema:
Si la Entrada es 0 el relé está desenergizado y se activa el LED de potencia, y si la entrada es 1 se energiza el relé y se activa el MOTOR DC.  Como el motor funciona al crearse un campo electromagnético en el,  si no existiera el aislamiento eléctrico causará ruido y molestaría en el circuito lógico que lo está activando.

 El  Optoacoplamiento, quiere decir que el acoplamiento del motor y del LED de potencia con el circuito lógico que lo activa, se hace en forma óptica, a través del diodo infrarojo y el fototransistor que existen en el interior del chip de 4 pines PC817. Con el 0 lógico el led infrarojo no emite luz, y el fototransistor está abierto, en cambio, si se tiene un 1 lógico a la entrada, el led emite luz. y el fototransistor conduce.

Observe además que se están utilizando  tanto los contactos normalmente abiertos como los normalmente cerrados, o sea los 5 pines de que dispone el relé de 5 voltios.El diodo rectificador 1N4001 dispuesto inversamente y en paralelo con la bobina del relevo actúa como supresor de picos de corriente cotrarrestando la Ley de Lenz (  VL = - L di / dt), y evitando que el voltaje autoinducido negativo que se genera en la bobina del relevo queme el transistor 2N2222A que se está utilizando como interface entre la salida del optoacoplador y la bobina o entrada del relevo.

Mas información sobre este interesante tema del optoacoplamiento se puede obtener en http://es.wikipedia.org/wiki/Optoacoplador

Laboratorio: Contador de 2 dígitos

Se requiere diseñar e implementar un contador que inicie en 0, y al recibir una orden de inicio (START), mediante un interruptor,  cuente ascendentemente hasta el 99, con un periodo de reloj de 1 segundo.  

Al llegar al 99 debe luego contar en forma descendente, y bloquearse al llegar nuevamente al 0.

Debe visualizarse en displays de 7 segmentos el conteo establecido.

Mediante una salida OPTOACOPLADA  con relé deben manejarse un diodo LED de potencia y un motor DC.

Mientras el contador esté bloqueado en 0 o en cualquier múltiplo de 10 ( 0,10,20,30,40,50,60,70,80,90) el motor debe estar activado, y apagarse en cualquier otro número, donde debe encenderse el LED de potencia.

Se sugiere utilizar contadores 74190, decodificadores BCD a 7 segmentos (7447, o, 7448), optoacoplador de  4 pines PC817, relé de 5 voltios, GAL22V10, o, memoria EEPROM 28C64.

Presentamos una opción simulada en Altera que permite implementar los dos contadores 74190:
Obsérvese que se está usando flip-flop D en lugar de flip-flop T.
El circuito funciona perfectamente de acuerdo a lo exigido, según su diagrama de tiempos simulado:



miércoles, 9 de mayo de 2012

74190: Ejercicios resueltos


1.Para el circuito lógico mostrado,  y las entradas   START  y CLOCK  indicadas, dibuje las ondas para QD,  QC, QB y QA.

Solución:

Como la entrada START inicia en 0, hace que la entrada de carga LOAD (LDN) también esté en 0, lo cual carga en forma asíncrona lo que se tenga en las entradas de datos D,C,B,A. Como D,C,B están conectadas a tierra y A a Vcc, esto hace que el contador cargue en (0001)2 = 1 decimal. La entrada START por medio del CLRN del flip-flop T inicializa también la salida Q del flip-flop en 0, lo cual hace que cuando START pase a 1, DNUP = 0, y LDN = 1, con lo cual al siguiente flanco de subida del reloj el contador empieza a contar ascendentemente a partir de (0001)2  de donde arrancó al ser prefijado en este valor.
A la entrada del enable GN está conectada una compuerta NOR de 4 entradas que son: la salida Q del flip-flop T  que es la misma entrada DNUP,y las salidas QC,QB,QA del contador. Cuando estas 4 entradas sean todas iguales a 0, la salida de la compuerta NOR se hace igual a 1 y el contador se bloquea.
Así mismo la salida QD del contador es el CLK del flip-flop T, por consiguiente cuando QD pase de 0 a 1, el flip-flop T hace la conmutación pasando su salida Q a 1, y por consiguiente el DNUP pasa también a 1, siguiendo su conteo en forma descendente en el siguiente flanco de subida del reloj posterior..Por consiguiente después del 8 =(1000)2, que es donde QD se hace por primera vez igual a 1, el contador sigue  en conteo descendente:8,7,6,5,4,3,2,1,0,9.   Al pasar del 0 al 9, QD hace la transición del 0 al 1, y como es el clk del flip.flopT este nuevamente conmuta, pasando en esta ocasión Q del 1 al 0. Vemos que en esta situación  Q = 0, con lo cual DNUP=0, y el contador incrementa, pasando del 9 al 0. Al llegar a 0, Q=0, QC=QB=QA =0, y al estar todas las 4 entradas de la compuerta NOR en 0, su salida está en nivel alto, con lo cual el enable GN=1, y el conteo se inhibe, bloqueandose en 0.
Agrupando en el Altera las salidas del contador se encuentra en el siguiente diagrama de tiempos del comportamiento del mismo:
2.  Utilizando un contador de década 74190  y una GAL22V10  se requiere diseñar  un Contador de anillo de 10 bits, con salidas activas en nivel bajo, para efectuar el barrido de una matriz de leds de  10 columnas.
Solución:

IInicialmente mediante el Reset-Power-On, al estar el condensador descargado, se dá un 0 a la entrada de carga LDN, para que se prefije el contador asincrónicamente en (0000)2. Siendo el tiempo de carga (t = RC )  muy pequeño comparado con el periodo de reloj proporcionado por el 5555, la entrada LDN pasa rápidamente de 0 a 1, y como las entradas A=B=C=D=GN=DNUP=0, el contador incrementa cada flanco de subida del reloj hasta llegar al 9, y seguir así indefinidamente. En la GAL debe crearse el archivo JEDEC a partir de un esquemático o tabla de verdad para el decodificador:
 QD QC QB QA   S0  S1 S2 S3 S4 S5 S6 S7 S8 S9
  0     0     0     0      0    1   1    1   1   1    1   1   1   1
  0     0     0     1      1    0   1    1   1   1    1   1   1   1
  0     0     1     0      1    1   0    1   1   1    1   1   1   1
  0     0     1     1      1    1   1    0   1   1    1   1   1   1
  0     1     0     0      1    1   1    1   0   1    1   1   1   1
  0     1     0     1      1    1   1    1   1   0    1   1   1   1
  0     1     1     0      1    1   1    1   1   1    0   1   1   1
  0     1     1     1      1    1   1    1   1   1    1   0   1   1
  1     0     0     0      1    1   1    1   1   1    1   1   0   1
  1     0     0     1      1    1   1    1   1   1    1   1   1   0              



 

                              

lunes, 7 de mayo de 2012

Helen Keller

Muchas veces nos quejamos que el tiempo no nos alcanza para cumplir con todas nuestras obligaciones académicas por el gran número de asignaturas que se están cursando en el semestre; que hay que darle prioridad al trabajo sobre el estudio, pues el desempeño laboral es el que nos permite cubrir los gastos de la universidad; que ya se ha hecho todo lo posible pero la tarea solicitada es imposible de lograr, etc,etc. Cuando escucho de mis estudiantes este tipo de expresiones, viene a mi recuerdo la imágen de Helen Keller y de su maestra y amiga Anne Sullivan.
Invito al estimado lector a que conozca la vida de estas extraordinarias mujeres en http://es.wikipedia.org/wiki/Helen_Keller
Seguramente después de conocer esta hermosa historia "nos quejaremos menos y haremos más"  y jamás volveremos a decir "no se puede; eso es imposible; no podemos dedicarle mas tiempo  al diseño o al laboratorio,  o  "con esos estudiantes  se hace muy complicada mi labor como docente"

En líneas generales, los retos que nos presenta la vida se pueden clasificar en fáciles, difíciles e imposibles.
Quienes abordan los fáciles llevan una vida cómoda, pero aburrida. Los que abordan los difíciles llevan una vida penosa, aunque satisfactoria. Los que abordan los imposibles son los que dejan huella.

Una película completa sobre la vida de helen Keller, llamada "El milagro de Anne Sullivan", ( 1h:46 min),blanco y negro, se puede encontrar  en : http://youtu.be/ZI33k0pFtWU