Anda di halaman 1dari 9

Problema resuelto FSM (máquina estados finitos)

Laboratorio Nº 2
1.- Tenemos un motor que queremos que se comporte de la siguiente
forma:
 En estado inicial o de reposo, estará detenido en la posición en
la que el sensor (‘a’) detecta la posición de reposo (posición de
la figura).
 Cuando se pulse ‘Marcha’, el motor dará dos vueltas completas,
deteniéndose en la posición de reposo inicial.
 Durante el recorrido, si se pulsa ‘Marcha’, el motor seguirá
rotando hasta alcanzar el final de las dos vueltas.
 Si al completar las dos vueltas, el pulsador marcha está
pulsado por cualquier causa, no se comenzará un ciclo nuevo
hasta que deje de estar pulsado.

* Resolver circuito por Mealy o Moore.


* Realizar esquema con Proteus, verificar el funcionamiento con
simulación.

Notas: El sensor y el pulsador ‘Marcha’ proporcionan un ‘1’ cuando están activados.


La velocidad del volante y del motor es lenta, el ciclo de 2 vueltas es lento.
Tabla de Estados
Estado Q2 Q1 Q0
Inicio 0 0 0
Marcha 1 0 0 1
Marcha 1ª Vuelta 0 1 0
1ª Vuelta Conf. 0 1 1
Marcha 2ª Vuelta 1 0 0
EspLP 1 0 1
Avería 1 1 0
Una vez determinado que precisamos de tres biestables, vamos a
usar unos tipo ‘D’ y vamos a realizar tabla de la verdad y tabla de
excitación de todo el proceso:

A la vista de esta tabla, mediante Karnaught, estableceremos las


ecuaciones necesarias para las salidas M (Motor) y A (señal de
avería), así como las salidas que conectaremos a los biestables
para escribir los nuevos estados (estados futuros mediante D2, D1 y
D0). Para facilitar la identificación de las selecciones las
marcaremos con diferentes colores, así un mismo color indicará
selección común (celdas contiguas).
Circuito en proteus completo
Una vez obtenidas las ecuaciones, podríamos hacer algunas simplificaciones (ver final
soluciones), pero a veces esas simplificaciones complican el esquema eléctrico
EJERCICIOS RESUELTOS DE SECUENCIALES

1. Paso de las especificaciones verbales al diagrama de estados


En este caso, el diagrama de estados tiene que ser capaz de reconocer la combinación
de entrada 1101. Partimos de un estado inicial en el que se espera la introducción del
código. A continuación, se pasará a un nuevo estado cada vez que se reconozca
correctamente el siguiente bit del código, mientras que si éste no corresponde al código
se volverá al estado inicial, y habrá que teclear todo el código de nuevo. El significado
de los estados será por tanto el de la siguiente tabla.
El siguiente estado será q2. Sin embargo, si en lugar de un 1 se recibe un 0, la secuencia es
incorrecta, y como resultado habrá que regresar a q0, para que el código sea tecleado por
completo de nuevo. Del mismo modo, al recibir un 0 estando en q2 pasaremos a q3 (hemos
reconocido 110). Y finalmente, si en q3 la entrada es un 1, el código ha sido correcto, y por lo
tanto la salida del circuito será 1 y volveremos a q0. Si la entrada es un 0, entonces falló el último
bit, y aunque volvamos también a q0, en este caso la salida del circuito es 0, puesto que el código
fue erróneo.

2. Construcción de la tabla de estados


Tomando el diagrama de estados de la figura anterior debe generarse la tabla de estados, en la
que a partir de las entradas y el estado actual se obtendrá el siguiente estado, y en la que a partir
de ambos, y con ayuda de la tabla de excitación se calcularán las entradas a los biestables (JK en
este caso). Nótese como ahora sí aparece una función de salida (S) diferente del estado que
almacenan los biestables.

3. Minimización de las funciones e implementación del circuito Simplificando por Karnaugh


obtendremos las funciones de entrada a los biestables (J1, K1, J0 y K0) para el cálculo del nuevo
estado, y la función de salida S.

J1 = E Q0

K1 = E + Q0

J0 = E XOR Q1

K0 = 1

S = E Q1 Q0

Anda mungkin juga menyukai