MÁQUINAS DE ESTADO FINITAS Pablo San Segundo (C-206) pablo.sansegundo@upm.es
Sistemas secuenciales Secuencial = combinacional + memorias (biestables) Tipos Síncrono: cambio de estado en cada ciclo de reloj. Asíncrono: cambio de estado nada mas detectarse variaciones en las entradas o en las memorias internas. Modelo formal: Máquina de estados Mealy: las salidas depende de las entradas y del valor de las memorias Moore: las salidas sólo depende del valor de las memorias
Máquina de Mealy Máquina de MEALY: Una máquina secuencial de tipo MEALY es una 5-tupla M=(Q,I,O,,) donde: Q Ø es un conjunto finito de estados I Ø es un conjunto finito de entradas (símbolos de …) O Ø es un conjunto finito de salidas (símbolos de …) : QxI Q es la función de transición de estado : QxI O es la función de salida COMBINACIONAL
Máquina de Moore Máquina de MOORE: Una máquina secuencial de tipo MOORE es una 5-tupla M=(Q,I,O,,) donde: Q Ø es un conjunto finito de estados I Ø es un conjunto finito de entradas (símbolos de …) O Ø es un conjunto finito de salidas (símbolos de …) : QxI Q es la función de transición de estado Q O es la función de salida COMBINACIONAL
Objetivos Nociones de Máquinas de Moore y Mealy Modelado Conversiones entre máquinas Modelado Diagramas de estado Tablas de transición Simplificación Estados equivalentes Aplicación sobre el diagrama de estados Aplicación sobre las tablas de transición Diseño de sistemas secuenciales síncronos Elección de estados (preferentemente con semántica de salida) Ecuaciones de transición de estados Activación Retención Casos prácticos
Ejemplo: Sumador binario bit a bit (1/4) Entradas Dos entradas binarias x1 y x2 Una salida binaria y Estados- Maquina MEALY Q = {q0,q1} donde q0 estado de no acarreo q1 estado de acarreo Función de transición de estado (q0,11) = q1 (q0,00/01/10) = q0 (q1,00) = q0 (q1,10/01/11) = q1 Función de salida (q0,00/11) = 0 (q0,01/10) = 1 (q1,00/11) = 1 (q1,01/10) = 0 EJERCICIO Tablas de verdad para d y b
Ejemplo: Sumador binario de 1 bit (2/4) m={q0,q1} x1 x2 mt mt+Dt y 1 CUESTIÓN ¿Interpretación semántica?
Ejemplo: Sumador binario bit a bit (3/4) Evento de ACTIVACIÓN del estado q1 Diagrama de transición de estados Eventos de RETENCIÓN del estado q0 CUESTIÓN Demuestre que es una máquina de Mealy
Ejemplo: Sumador binario bit a bit (4/4) Diseño-Máquina MOORE Q = {q00,q01,q10,q11} donde q00 estado de no acarreo con salida y=0 q01 estado de no acarreo con salida y=1 q10 estado de acarreo con salida y=0 q11 estado de acarreo con salida y=1 Función de transición de estados (q00/q01 ,00) = q00 (q00/q01 ,11) = q10 (q10/q11 ,00) = q01 (q10/q11 ,11) = q11 (q00/q01 ,01/10) = q01 (q10/q11,01/10) = q10 Función de salida (q00/q10) = 0 (q01/q11) = 1 Indique otra posible conversión de Mealy a Moore CUESTIÓN
Representación-Diagrama de estados (1/2) Grafo cuyos nodos representan estados y los arcos cambios (transiciones) entre estados fruto de eventos MEALY CUESTIÓN I ¿MEALY o MOORE? CUESTIÓN II ¿Secuencial o combinacional? MOORE SUMADOR EN SERIE DE 1 BIT
Representación-Tabla de transición (2/2) Tabla de transición de estados Representación tabular de las funciones de transición de estado y salida Modelo MEALY Modelo MOORE 00 01 11 10 00 01 11 10 O q0 q0,0 q0,1 q1,0 q0,1 q00 q00 q01 q10 q01 0 q1 q0,1 q1,0 q1,1 q1,0 q01 q00 q01 q10 q01 1 q10 q01 q10 q11 q10 0 q11 q01 q10 q11 q10 1 SUMADOR EN SERIE DE 1 BIT La salida se computa a partir del estado actual (Qt) y las entradas CUESTIÓN Razone si pueden existir problemas de implementación de la máquina para este caso
Simplificación- estados equivalentes (1/3) ESTADOS EQUIVALENTES (intuición) Dos estados son equivalentes cuando para una misma secuencia de entradas la máquina evoluciona de la misma manera: pasa por los mismos estados y presenta la misma salida en todo momento
Simplificación-ejemplo (2/3) Reconocedor de cadenas 101 I: x={0,1} O: y={0,1} …10101 una sola secuencia CUESTIÓN II ¿Combinacional? Cadena {101} NO encontrada Cadena {101} encontrada Estados: NADA ningún símbolo reconocido 1 subcadena 1 reconocida 10 subcadena 10 reconocida 101 cadena 101 reconocida CUESTIÓN I ¿Mealy o Moore?
Simplificación-ejemplo (3/3) Identificación de estados equivalentes EJERCICIO Tabla de transición 0/0 1/0 1/0 NADA 1/0 0/0 1/1 101 1 10 Q\X x=0 x=1 Qn Qn/0 Q1/0 Q1 Q10/0 Q10 Q101/1 Q101 0/0 1/1 0/0 Control secuencial con máquinas síncronas Conversión a Máquina de Moore NADA/0 1/0 10/0 101/1 1 Q\X x=0 x=1 y Qn Q1 Q10 Q101 1 No hay estados equivalentes
Ejercicio: Control de un carrito (1/7) LEY DE CONTROL Un ciclo completo de ida y vuelta tras cada pulsación de PON Entradas Salidas PON Izq A Dcha B Dcha Izqda A B PON Tanteo con máquina de Moore: Un estado por cada combinación de salidas posibles con sentido: Reposo (R) Derecha (D) Izquierda (I)
Ecuaciones de transición (2/7) Pon A B E={Pon, A, B} Q={R, D, I} O= {Do, Io} Qt\ 000 001 010 011 100 101 110 111 O R x 0,0 D 1,0 I 0,1 Qt\ 000 001 010 011 100 101 110 111 O R x D 0,0 I 1,0 0,1 Ecuaciones de activación de estado DI, RD, IR Qt\ 000 001 010 011 100 101 110 111 O R x D 0,0 I 1,0 0,1 Ecuaciones de retención de estado RR, DD, II
Ecuaciones de activación (3/7) Qt\ 000 001 010 011 100 101 110 111 O R x D 0,0 I 1,0 0,1 Activación del estado Derecha Activación del estado Izquierda Activación del estado Reposo Reposo Dcha Izqda
Ecuaciones de retención (4/7) Qt 000 001 010 011 100 101 110 111 O R x D 0,0 I 1,0 0,1 Retención del estado de reposo Usando solo entradas y reposo(t)-el formalismo Usando entradas, reposo(t) y derecha(t+1), programación PLCs ¿Retención de D, I?
Ecuaciones de transición finales (5/7) Qt 000 001 010 011 100 101 110 111 O R x D 0,0 I 1,0 0,1 Activación Retención Trans. Derecha Trans. Izquierda Trans. Reposo
Modificación de especificaciones (6/7) Sucesivas pulsaciones de Pon alternan la dirección del movimiento del carrito (si no está en los extremos) Qt 000 001 010 011 100 101 110 111 O R x D 0,0 I 1,0 0,1 Activación Qt 000 001 010 011 100 101 110 111 O R x D 0,0 I 1,0 0,1 Retención
Nuevas ecuaciones de transición (7/7) Qt 000 001 010 011 100 101 110 111 O R x D 0,0 I 1,0 0,1 Activación Retención Trans. Derecha Trans. Izquierda Trans. Reposo
Ejercicio: Control de tráfico en un sentido-A q1 q2 q3 q4 q5 q6 q7 Diseñe una máquina de estados que permita detectar vehículos que circulan en dirección contraria por una autovía. Dicho sistema tendrá dos entradas e1 y e2 que serán las señales de dos células fotoeléctricas situadas a una distancia menor que 1) la longitud del vehículo y 2) la separación entre vehículos
Solución Qt\ 00 01 10 11 O NO SI SC x 1 (e1,e2) salida C1: “no vehículo” C2: “correcto” C3: “incorrecto” EJERCICIO Ecuaciones de salida
Ejercicio: Control de tráfico en un sentido-B q1 q2 q3 q4 q5 q6 q7 Diseñe una máquina de estados que permita detectar vehículos que circulan en dirección contraria por una autovía. Dicho sistema tendrá dos entradas e1 y e2 que serán las señales de dos células fotoeléctricas situadas a una distancia mayor que la longitud del vehículo y menor que la separación entre vehículos
Tabla de transición (I) “correcto” “incorrecto” “no vehículo” (e1,e2) “vehículo entre sensores no ok” “vehículo entre sensores ok” Qt\ 00 01 10 11 O NO SI SC x 1 VEC VEI I CUESTIÓN I ¿Es correcta la tabla? CUESTIÓN II Indique si existe un problema con el diseño
Tabla de transición (II) Qt\(e1,e2) 00 01 10 11 O NO SI-01 SC-10 x 1 SC-00 SC-01 SI-00 SI-10 “correcto-10” “correcto-00” “no vehículo” “correcto-01” CUESTIÓN I Complete la tabla CUESTIÓN II ¿Se puede simplificar algún estado? EJERCICIO Ecuaciones de activación y retención para la máquina simplificada
Ejercicio: Control de un cilindro (1/3) Realizar un automatismo para el control de un cilindro de doble efecto con una electroválvula 5/2 biestable. Se dispone de un interruptor de inicio (I) y otro de parada (P), junto con dos sensores de posición S1 y S2, que detectan la compresión y expansión del cilindro respectivamente. Al activar I se realizarán ciclos completos de expansión/compresión del cilindro hasta activar P, momento en que el cilindro volverá al reposo. En reposo siempre estará comprimido el cilindro. La parada siempre será preferente. I P
Diseño de máquina de estado (2/3) Qt 0000 0001 … A1 A2 R E C Entradas: {I, P, S1, S2} Salidas: {A1 y A2} Estados { Reposo (R), Expandiendo (E), Comprimiendo (C) } conf. inicial del reposo EJERCICIO I Ecuaciones de salidas Indica parada preferente EJERCICIO II Ecuaciones en lenguaje de contactos (KOP)
Lenguaje KOP (3/3) Ec. activación Ec. retención
Tabla de transición (II)-Solución Qt\(e1,e2) 00 01 10 11 O NO SI-01 SC-10 x 1 SC-00 SC-01 SI-00 SI-10 “correcto-10” “correcto-00” “no vehículo” “correcto-01” “incorrecto-01” “incorrecto-00” “incorrecto-10” Qt\(e1,e2) 00 01 10 11 O NO SI-01/00 SC-10/00 x 1 SC-01 SI-01 SI-10
Entorno S5-Bloque OB1
Entorno S5-Simulador
Simplificación (1/3) Estados equivalentes: Dado un autómata de estados finitos A=(Q,I,O,,), dos estados qi, qj Q se dicen equivalentes (qi,e) = (qj,e) e I y (qi) =(qj). (MEALY (qi,e) = (qj,e) e I) ESTADOS EQUIVALENTES (informal) Dos estados son equivalentes cuando para una misma secuencia de entradas la máquina evoluciona de la misma manera: pasa por los mismos estados y presenta la misma salida en todo momento
REDUCCIÓN DE AUTÓMATAS Autómatas incompletamente especificados Ejemplo: Detector de coches en sentido contrario Especificar un sistema que permita detectar vehículos que circulan en dirección contraria por una autovía. Dicho sistema tendrá dos entradas e1 y e2 que serán las señales de dos células fotoeléctricas situadas a una distancia menor que la longitud del vehículo y la separación entre vehículos. e1 e2 q1 q2 q3 q4 q5 q6 q7 ¿MEALY o MOORE?
REDUCCIÓN DE AUTÓMATAS Estados compatibles: Dado un autómata de estados finitos A=(Q,I,O,,) incompletamente especificado, se dice que dos estados qi, qj Q son compatibles qi ~ qj (1) (qi,e) = (qj,e) e I en el dominio de especificación (2) (qi) = (qj) en el dominio de especificación Transitiva? Condiciones de retención del estado? 00 01 11 10 S q1 q1 q5 X q2 1 q2 X X q3 q2 1 q3 X q4 q3 X 1 q4 q1 q4 X X 1 q5 X q5 q6 X 0 q6 X X q6 q7 0 q7 q1 X X q7 0
Simplificación de máquinas Autómatas completamente especificados Una vez construido un modelo: ¿Es posible reducir el número de estados? coste de implementación/ejecución manejabilidad del modelo Dos estados equivalentes son INDISTINGUIBLES El comportamiento del autómata a partir de cualquiera de los dos estados es el mismo. RELACION DE EQUIVALENCIA Estados equivalentes: Dado un autómata de estados finitos A=(Q,I,O,,), dos estados qi, qj Q se dicen equivalentes (qi,e) = (qj,e) e I y (qi) =(qj). (MEALY (qi,e) = (qj,e) e I)
REDUCCIÓN DE AUTÓMATAS q1 -> C1 (sistema en reposo) q2, q3, q4 -> C2 (coche en sentido permitido) q5, q6, q7 -> C3 (coche en sentido contrario) 00 01 11 10 S C1 C1 C3 X C2 1 C2 C1 C2 C2 C2 1 C3 C1 C3 C3 C3 0 Mealy/Moore?
SINCRONISMO vs ASINCRONISMO void main (void) { //... C1: Genera (NO_ALARMA) ; Entrada = Leer_Entrada () ; if (Entrada == I01) goto C3 ; if (Entrada == I10) goto C2 ; goto C1 ; C2: if (Entrada == I00) goto C1 ; goto C2 ; C3: Genera (ALARMA) ; goto C3 ; return ; } Tipo de Entradas? Tipo de Salidas? CÓDIGO NO ESTRUCTURADO Difícil puesta a punto y mantenimiento
SINCRONISMO vs ASINCRONISMO void main (void) { while (1) [Espera_Sincronismo ();] Entrada = Leer_Bit (); switch (Estado) case NADA : if (Entrada==0) {Salida=0; Estado=NADA;} else if (Entrada==1) {Salida=0; Estado=E1;} break ; case E1 : if (Entrada==0) {Salida=0; Estado=E10;} case E10 : if (Entrada==0) {Salida=0; Estado=NADA;} else if (Entrada==1) {Salida=1; Estado=E101;} case E101 : if (Entrada==0) {Salida=0; Estado=NADA;} } Genera (Salida) ; return ; Entrada Síncrona Retención del estado Salidas Síncronas
SINCRONISMO vs ASINCRONISMO Reconocedor de cadenas con entrada de validación NADA/0 1/0 10/0 101/1 1 void main (void) { while (1) Espera_Sincronismo () ; Entrada = Leer_Bit () ; switch (Estado) case NADA : ... ... } Genera (Salida) ; return ;
Introducción Álgebra booleana Máquinas de estados Representación Tablas de verdad Puertas lógicas Axiomas Simplificación Ejemplos Máquinas de estados Mealy Moore Tablas de transición Diagramas de estados Simplificación (Reducción) Sincronismo
REPASO: S.E.D. SISTEMAS DE EVENTOS DISCRETOS Sistemas Continuos o Analógicos TIEMPO Sistemas de Eventos Discretos Asíncronos Tiempo Discreto o Muestreados Síncronos CONTINUO DISCRETO ESTADO