You are on page 1of 20

Cartas ASM y VHDL

Diseo de controladores mediante cartas ASM


Estado 0. En un inicio se encuentra en la estacin B y la puerta del vagn se mantiene abierta. Si la entrada tiempo (T = 15 segundos) no ha alcanzado su valor final, la puerta contina abierta; si ya alcanz el valor de T=15 segundos, la puerta se cierra y se transfiere al estado 1. Estado 1. Con la puerta cerrada se elige la direccin con la entrada DIR; es decir, si DIR = Si el vagn se dirige hacia el este (estacin A) si DIR = No el vagn se dirige hacia el oeste (estacin B) Estado 2. En el estado 2 se da la orden para que el tren contine su movimiento a travs de la seal Avance. Como puede observarse, si el sensor SA no detecta la presencia del vagn, la seal de avance permanece inalterable; por el contrario, si el sensor SA detecta el vagn, el controlador (SA = Si) enva una seal de Paro (estado 3), que detiene de forma automtica al tren justo en los lmites del andn de la estacin A.

Cartas ASM y VHDL


Diseo de controladores mediante cartas ASM
Estado 4. Con el vagn detenido en la estacin A, el controlador enva la seal Puerta abierta, que permite la entrada y salida de pasajeros y mientras el tiempo T = 15 segundos no se cumpla, el tren permanece en la estacin A con las puertas abiertas; en caso contrario, las cierra y contina su avance hacia la estacin B. Se puede deducir con relativa facilidad la descripcin general de la carta, en la cual se observaron 14 estados, del estado 0 al estado 13.

Cartas ASM y VHDL


Diseo de controladores mediante cartas ASM
En el diseo de algoritmos de control ASM tiene mucho que ver el sentido comn y la experiencia del diseador. Se puede considerar que los sensores SA, SB y SC actan de forma similar, por lo cual en lugar de representar tres sensores basta utilizar slo uno (S), dado que el vagn es incapaz de saber en qu estacin se encuentra; en consecuencia, slo podra tenerse un estado (X) que representa la estacin actual.

Cartas ASM y VHDL


Diseo de controladores mediante cartas ASM
Estado 0. El tren est en cualquiera de las estaciones con las puertas abiertas. Si el tiempo T = 15 no se cumple, permanece en la estacin actual; si el tiempo ha terminado se da la orden para que la puerta se cierre y luego la orden de Avance. Si durante esta trayectoria el sensor detecta la presencia del tren, enviar la seal de Paro, que har que el vagn se detenga en la estacin y abra la puerta (transicin del estado 3 al estado 0).

Cartas ASM y VHDL


Diseo de cartas ASM mediante VHDL Desarrollar un programa en VHDL a travs de una carta ASM es relativamente fcil; sin embargo, no es posible recomendar un procedimiento o determinada forma de programar. La experiencia adquiere importancia para comprender de manera clara y precisa como se utilizan las palabras reservadas en VHDL. Para ejemplificar problema: I. Descripcin Se requiere disear una mquina despachadora de refrescos, la cual est formada por tres mdulos (subsistemas) independientes. Cada mdulo realiza una funcin predeterminada, pero hay que disear el sistema controlador que gobierne y sincronice cada accin de los subsistemas. esta situacin, veamos el siguiente

Cartas ASM y VHDL


Diseo de cartas ASM mediante VHDL a) Mdulo de recoleccin de monedas. Recibe las monedas que el cliente introduce en la mquina para obtener el refresco. Caractersticas

Acepta monedas de $5.00, $10.00 y $20.00.


Cuenta con un mecanismo que rechaza monedas defectuosas. Posee un mecanismo de deteccin de valor de la moneda; es decir, es capaz de discriminar el valor de la moneda Menor que precio (MP) e Igual a precio (Precio). El sistema recibe dos seales de entrada denominadas Limpieza y Captura. La primera limpia el sistema y lo deja en condiciones de inicio; la segunda recolecta las monedas que

Cartas ASM y VHDL


Diseo de cartas ASM mediante VHDL b) Mdulo de devolucin de monedas. Proporciona el cambio al cliente cuando introduce monedas cuyo monto excede el precio del producto. Caractersticas

Activa una seal de salida denominada Cambio, cuya funcin es entregar cambio al cliente en monedas de cinco pesos.
Recibe una seal denominada Listo cambio (LC), que indica cundo se han dado cinco pesos de cambio. c) Mdulo de servicio. Su funcin es entregar el refresco al cliente; sin embargo, el producto slo se libera cuando la cantidad que proporcion el cliente es igual al valor del refresco.
7

Cartas ASM y VHDL


Diseo de cartas ASM mediante VHDL Cuenta con una seal de salida denominada Sirve, que activa el sensor correspondiente para que el refresco se pueda servir y entregar. Posee una seal de entrada denominada Listo servicio (LS), que indica cundo se entreg el refresco. d) Controlador. Esta unidad sincroniza las acciones de los diferentes mdulos para automatizar el funcionamiento de la mquina despachadora de refrescos.

Cartas ASM y VHDL


Diseo de cartas ASM mediante VHDL En la figura se observa cada mdulo y la sealizacin entrada/salida que existe entre cada subsistema.

Cartas ASM y VHDL


Diseo de cartas ASM mediante VHDL Un posible algoritmo ASM se muestra en la figura

10

Cartas ASM y VHDL


Diseo de cartas ASM mediante VHDL Estado A. Se tiene una salida denominada Ingrese monedas, que no es sino una seal que indica al cliente a travs de un display que la mquina se encuentra funcionando. Si la seal de entrada Moneda es igual a "No (M = No), la mquina permanece en el estado A; si la seal Moneda es igual a "Si", la carta conduce al estado B. Estado B. La seal de entrada Moneda (M) se utiliza para confirmar que el sensor encargado de esta deteccin ha realizado toda su rutina. Es importante recordar que existen algunos sensores que suelen encontrarse en el estado de reposo, para luego pasar a su estado de activacin y regresar al reposo de nuevo. Este sensor detector

11

Cartas ASM y VHDL


Diseo de cartas ASM mediante VHDL Estado C. La seal de entrada Menor que precio (MP) se utiliza para indicar al cliente que debe suministrar ms monedas; por ejemplo, si (MP = Si), se vuelve al estado A y se solicita al cliente que Ingrese monedas. Si (MP = No) se pasa al estado D, donde se pregunta si la cantidad ingresada es igual o mayor que el precio (Precio).

12

Cartas ASM y VHDL


Diseo de cartas ASM mediante VHDL Estado D. En este estado se pregunta si la cantidad ingresada es igual al precio. Si lo es (Precio = Si), se pasa al estado E donde se activa la salida Sirve, que otorga el servicio. En el estado E la seal Listo servicio (LS) se utiliza para indicar al controlador que el sensor ha detectado que ya se entreg el refresco: (LS = Si), en caso contrario (LS = No), se repite la peticin de servicio. Si ste ya se brind, la carta se transfiere al estado F para capturar el dinero (Cap) y luego al estado G para limpiar el sistema (Limpia).
13

Cartas ASM y VHDL


Diseo de cartas ASM mediante VHDL Al volver al estado D se observa que si Precio = No "equivale a decir que el precio es mayor al valor del refresco"; en consecuencia, el algoritmo debe devolver cambio a travs de la seal Cambio en el estado H. Estado H. La seal Listo cambio (LC) se utiliza para indicar al controlador si el sensor ha detectado que el cambio se dio (LC = Si); en caso contrario (LC = No), se repite la peticin de cambio.

14

Cartas ASM y VHDL


Diseo de cartas ASM mediante VHDL Estado I. La funcin de la salida Decrementa (Dec) es indicar al mdulo de recoleccin de monedas que se entregaron cinco pesos de cambio, con el objeto de que compare y determine si con el decremento de cinco pesos la cantidad abonada por el producto ya es igual al precio o sigue siendo mayor. Observe cmo el camino de enlace de estado I retroalimenta al estado D en que se pregunta si el pago por el producto es igual o mayor al precio. Como puede observarse, para describir controladores se requiere conocer a la perfeccin el funcionamiento de cada uno de sus subsistemas as como la funcin que

15

Cartas ASM y VHDL


Diseo de cartas ASM mediante VHDL

Ahora, la instruccin Case en VHDL puede ayudar a simplificar lo que sucede en cada uno de los estados; de igual manera, el uso de IF o ELSIF puede auxiliar a manejar con simplicidad los rombos de decisin.

16

Cartas ASM y VHDL


Diseo de cartas ASM mediante VHDL

17

Cartas ASM y VHDL


Diseo de cartas ASM mediante VHDL

18

Cartas ASM y VHDL


Diseo de cartas ASM mediante VHDL

19

Cartas ASM y VHDL


Diseo de cartas ASM mediante VHDL

20

You might also like