Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Editorial
BUAP. 2016
Figura ¡Error! No hay texto con el estilo especificado en el documento.7-8 Elementos de un diagrama de estados.
Se ilustrará su aplicación con un ejemplo: suponga que tiene tres luces que realizan una
secuencia en que se van encendiendo las luces primero una, luego dos, luego las tres y
vuelven a empezar, este proceso se realiza siempre y cuando un interruptor de habilitación
esté activo, es decir, si dicho interruptor está activo entonces en el primer ciclo se encuentran
todas las luces apagadas, en el segundo se enciende la de la izquierda, en el segundo ciclo se
enciende la de la izquierda y la de en medio, en el tercer ciclo encienden las tres y luego
vuelve a iniciar la secuencia, pero si en algún momento el interruptor se desactiva, entonces
pausará la secuencia y las luces quedarán quietas.
Primero se identifica que el sistema tendrá dos entradas: el reloj (CLK) y un interruptor (SW)
y tres salidas para las luces (L3, L2, L1) como lo muestra el diagrama esquemático de la
figura 7-9 a). La muesca indica que la memoria es disparada por flancos de subida.
Figura 7-9 a) Diagrama esquemático b) Diagrama de estados c) Diagrama de tiempos del ejemplo de secuencia de
las tres luces.
Figura ¡Error! No hay texto con el estilo especificado en el documento.7-10 Diagrama MDS del ejemplo de secuencia
de las tres luces.
Ésta técnica obtiene su nombre de las siglas en inglés de Mnemonic Documented State
Diagram (diagrama de estados documentado con mnemónicos) y se trata básicamente de un
diagrama de estados, lo único que cambia es que se colocan los nombres o abreviaturas de
las señales de entrada y salida cerca o dentro de los estados y transiciones.
Por ejemplo, el diagrama de estados de la figura 7-9 b) tendría su equivalente diagrama MDS
en la figura 7-10.
Se aprecia que los estados se representan ahora mediante rectángulos y las condiciones de
entrada se consideran dentro de los rombos o hexágonos. Existen dos tipos de salidas que se
expresan de manera diferente: una salida condicional, como su nombre lo dice, proviene
obligatoriamente de una condición de entrada, es decir, en un estado determinado si se
cumplen las entradas requeridas entonces se produce la salida especificada dentro de una
elipse, de otra manera no se activa la salida, recibe también el nombre de salida tipo Mealy,
ya que depende tanto del estado actual como del valor de las entradas; el otro tipo de salida,
la salida no condicional o tipo Moore no depende de ninguna entrada, se debe activar en
tanto permanezca el estado en que se indica y por eso va dentro de él, es decir, la salida
depende solamente del estado actual.
Igual que en los diagramas de estado y en los MDS, los estados se mantienen estables durante
un ciclo de reloj y sólo puede haber un cambio de estado en el instante del flanco activo del
reloj, en el cual también se verifican las entradas y se decide cuál será el estado siguiente y
se activan las correspondientes salidas no condicionales si las hubiera. Por lo tanto, las
transiciones sólo deben ir a los rectángulos, es decir, no se puede enviar una transición a una
parte intermedia del estado, a un rombo o a una elipse.
El ejemplo siguiente muestra una muy sencilla aplicación de las cartas ASM.
Para comenzar con el algoritmo debemos tener la bomba apagada y preguntar periódicamente
por la señal CV, ya que si la cisterna está vacía hay que activar la señal C y no se puede hacer
nada más que esperar a que ya no esté vacía. Si CV indica que la cisterna tiene agua entonces
se pregunta por la señal TV, si no es activa, indica que el tinaco no está vacío y entonces no
hay por qué activar la bomba, pero si CV es activa hay que pasar a hacer una acción diferente,
es decir, encender la bomba y quedarse ahí hasta que se llene el tinaco (TL activa) o si se
vacía la cisterna (CV activa), entonces hay que apagar la bomba y estar listos para comenzar
el proceso de nuevo. Este, que es un posible algoritmo que resuelva el control, se puede
expresar como la carta ASM de la figura 7-13, en la que también se muestra un diagrama de
tiempos con las entradas simulando una secuencia de eventos que podría suceder en una casa.
En el estado llamado APAGADO (fig. 7-13) la bomba de agua no se activará nunca, pero sí
registra las entradas TV y CV a cada flanco de subida del reloj por si el tinaco o la cisterna
se han vaciado. En el caso de que la cisterna esté vacía la señal C se enciende y así permanece
mientras continúe el estado APAGADO y la cisterna vacía. Cuando la cisterna tiene agua
pero el tinaco ya está vacío entonces se hará la transición hacia el estado ENCENDIDO, en
donde la salida B está activa mientras la máquina permanece en este estado sin importar
ninguna entrada y permanecerá en él mientras el tinaco se llena y no falte agua en la cisterna,
de otra manera pasará al estado APAGADO en el próximo flanco de subida del reloj. La
salida C depende del estado APAGADO y de la entrada CV, así que se trata de una salida
condicional, en cambio B sólo depende del estado ENCENDIDO, por lo tanto es no
condicional.
Figura 7-13 a) Carta ASM b) Diagrama de tiempos del ejemplo del control automático de bomba de agua.
1.2 Recomendaciones
Sin importar cómo se describa el comportamiento de una máquina secuencial, es
recomendable tener buenas prácticas de diseño, algunas de ellas son:
Hacer primero el diagrama esquemático del sistema mostrando las entradas y las
salidas (sus nombres, cuántas son, de qué tipo son, si se conectan con algún otro
elemento –sensor, etapa de potencia, etc.)
Comprender exactamente lo que pide el problema o el usuario, para ello hay que leer
y releer la especificación del problema (o preguntar si es el caso); lo que no se debe
hacer es suponer algún comportamiento o algunas condiciones, en muchas ocasiones
lo que uno piensa no es necesariamente lo que desea el cliente
Mantener la simplicidad del diseño, hay que recordar que “la menor distancia entre
dos puntos es la recta que los une” (Euclides). Cuanto más complique la solución del
problema, se incrementan las posibilidades de que falle
No necesariamente la primera descripción es la correcta o la mejor, se puede empezar
por una simple y después refinarla poco a poco
Cerciorarse de que todos los estados tengan al menos un estado siguiente; no es
posible que cuando llegue el siguiente flanco de reloj no se sepa a qué estado va a
pasar el sistema; se debe recordar en todo momento que no se trata de un diagrama
de flujo que describe software, ya que éste al llegar a su instrucción final detiene la
ejecución, sin embargo aquí se está describiendo hardware, el cual siempre está en
funcionamiento, además el tiempo no puede detenerse, después de un flanco de reloj
vendrá otro y otro y otro más, y como diseñador se debe estar bien consciente de
cómo se comportará la máquina en todo tiempo
Contemplar todos los casos posibles en que pueda trabajar el sistema para evitar
ambigüedades
Probar el funcionamiento del diagrama de estados o diagrama MDS o carta ASM
antes de pasar a la etapa para obtener el circuito, esto se puede hacer proponiendo
casos de prueba apegados a la realidad y no suponer qué va a pasar, sólo seguir el
flujo que resulta del dibujo para detectar errores o comprobar lo confiable que será la
máquina
Se espera que con el tiempo, cada diseñador en la práctica vaya desarrollando su propia
metodología de diseño, determinando una serie de pasos que le lleven a la elaboración exitosa
de sus máquinas secuenciales.