Sunteți pe pagina 1din 6

Universidad Tecnolgica Nacional Facultad Regional Buenos Aires Ingeniera Electrnica

Temario
Introduccin Estado del arte Problemtica general Criterios de diseo Casos tpicos de estudio C t i d t di Un ejemplo de aplicacin Ejercicios propuestos
8 de Mayo de 2010 Ing. Juan Manuel Cruz 2

Tcnicas Digitales II Mquina de Estado


Ing. Juan Manuel Cruz (jmcruz@hasar.com) Profesor Asociado Ordinario Ing. Alex Lozano (alex.tdii@gmail.com ) Jefe de Trabajos Prcticos Ordinario
Buenos Aires, 8 de Mayo de 2010

Mquina de Estado (palotes ++)


Mquina de Estado (State Machine)
Modelo matemtico de un sistema con entradas y salidas discretas, que posee sintaxis y semntica formales Utiles para representar aspectos dinmicos no representables por diagramas de otro tipo

Como qu se las conoce?


Existen mltiples terminologas:
Statechart FSM & EFSM (Finite State Machine & Extended FSM) PFSM & CFSM (Partial & Complete FSM) TFSM (Timed FSM) DFSM & NFSM (Deterministic & Nondeterministic FSM) LTS (Labelled Transition System) Automata (t de lenguajes) A t t (teora d l j ) Timed Automata IOA (Input Output Automata) Etc., etc., etc.

8 de Mayo de 2010

Ing. Juan Manuel Cruz

8 de Mayo de 2010

Ing. Juan Manuel Cruz

Qu son?
Modelo de Comportamiento (Behavior), denotan evolucin mediante:
Estados (comportamiento esttico) Transiciones (evolucin entre estados) Excitaciones (que condicionan las transiciones) Acciones (asociadas a las transiciones)

Para qu sirven?
Especificar aspectos formales relacionados con:
Sistemas de Control en Tiempo Real Dominios Reactivos o Autnomos Computacin Reactiva Protocolos Circuitos Elctricos/Electrnicos (Lgica Secuencial) Arquitectura de Software A i d S f Anlisis Lexicogrfico, Gramatical Etc., etc., etc.

Determinsticas y no determinsticas Composicin en paralelo de mltiples mquinas


8 de Mayo de 2010 Ing. Juan Manuel Cruz 5

8 de Mayo de 2010

Ing. Juan Manuel Cruz

Por qu usarlas?
Rigurosa descripcin del comportamiento de la solucin al problema planteado Soluciones muy sofisticadas y ridculamente sencillas. Incluso compuestas por la operacin en paralelo de mltiples mquinas Cdigo i l Cdi ms simple, eficiente y preciso. Ms fcil de depurar, fi i i M f il d d modificar, expandir y mejor organizado Facilitan el anlisis, el diseo y la implementacin
8 de Mayo de 2010 Ing. Juan Manuel Cruz 7

Cmo se formalizan?
Mediante diversos mtodos de representacin:
Funciones matemtica Diagramas / Tablas de Estados y Transiciones Redes de Petri

Existen mtodos para minimizar estados Mediante diversos lenguajes de programacin:


Assembly, C p/micros o PCs C++, Java, UML VHDL, etc., etc., etc.
8 de Mayo de 2010 Ing. Juan Manuel Cruz 8

Casos tpicos de estudio


Surgen de combinar los siguientes factores:
Excitadas por Eventos Excitadas por Sincronismos (time-out, timer-tick) Excitadas por Semforos/Variables/Colas (mensajes) Interaccin con Entradas/Salidas Composicin en paralelo de mltiples mquinas

Un ejemplo de aplicacin: Contador


Contador Ascendente / Descendente
Cuenta ascendente desde CUENTAiNICIAL Cuenta descendente desde CUENTAfINAL Itera hasta CUENTAfINAL hasta CUENTAiNICIAL

Recursos
Variables: estado , cuenta Defines: ASCENDENTE, DESCENDENTE, ESTADOmAXIMO, ESTADOiNICIAL, CUENTAiNICIAL, CUENTAfINAL
Ing. Juan Manuel Cruz 10

Algunas mquinas con nombre propio:


Moore & Mealy Turing & Markov
8 de Mayo de 2010 Ing. Juan Manuel Cruz 9

8 de Mayo de 2010

Contador
RESET / cuenta = CUENTAiNICIAL

Diagrama de Estados y transiciones


cuenta == CUENTAfiNAL / cuenta--

Contador

Tabla de Estados y Transiciones


Estado Actual
X

Excitacin
RESET || estado >= ESTADOmAXIMO estado < ESTADOmAXIMO && cuenta < CUENTAfINAL estado < ESTADOmAXIMO && cuenta == CUENTAfINAL estado < ESTADOmAXIMO && cuenta > CUENTAiNICIAL estado < ESTADOmAXIMO && cuenta == CUENTAiNICIAL

Estado Futuro
ESTADOiNICIAL

Accin
cuenta = CUENTAiNICIAL

ASCENDENTE

cuenta++

ASC
cuenta < CUENTAfiNAL / cuenta++ cuenta == CUENTAiNICIAL / cuenta++

DES
cuenta > CUENTAiNICIAL / cuenta --

ASCENDENTE

DESCENDENTE

cuenta--

DESCENDENTE

cuenta--

DESCENDENTE

ASCENDENTE

cuenta++

8 de Mayo de 2010

Ing. Juan Manuel Cruz

11

8 de Mayo de 2010

Ing. Juan Manuel Cruz

12

Contador

Implementaciones posibles
Implementacin mediante:
Switch (estado) Arrays de punteros a funcin (estado) Mltiples if (estado)
Desarrolladas en esta presentacin

Contador

Implementacin con switch (1 de 3)


/* Inclusin de Archivos #include <Macros51.h> #include <Defines51.h> */ // Incluyo Archivo con Macros de Uso General // Incluyo Archivo con defines para 8051 */

/* Declaracin de Prototipos void InicializarContador (void); void Contador (void); /*

Defines del correspondientes al Contador

*/

Tablas de excitaciones & acciones (estado, excitacin)


Se escucharn propuestas en esta presentacin

#define ASCENDENTE #define DESCENDENTE #define ESTADOmAX #define ESTADOiNICIAL #define CUENTAiNICIAL #define CUENTAfINAL

0 // Estados 1 DESCENDENTE + 1 ASCENDENTE 0x00 0xFF // Lmites de Cuenta


14

Se recomienda compararlas en la prctica de laboratorio


8 de Mayo de 2010 Ing. Juan Manuel Cruz 13

8 de Mayo de 2010

Ing. Juan Manuel Cruz

Contador
/*

Implementacin con switch (2 de 3)


Reserva de Variables */ // Reservas en RAM Interna de acceso directo unsigned char data estado; unsigned char data cuenta; /* Programa */ // Estado de Contador de 8 bits Asc. / Desc. // Contador de 8 bits Asc. / Desc.

Contador

Implementacin con switch (3 de 3)


void Contador (void) { // Si el Estado esta fuera de rango lE d f d reinicializa la M de E y retorna if (estado >= ESTADOmAX) { InicializarContador(); } return; esle { l estado = DESCENDENTE; cuenta--; } break; case DESCENDENTE: if (cuenta > CUENTAiNICIAL) cuenta--; else { estado = ASCENDENTE; cuenta++; } break;

void InicializarContador (void) { estado = ESTADOiNICIAL; cuenta = CUENTAiNICIAL; } return;

// Inicializa las Variables y Salidas de Control

switch (estado) { // En funcin del Estado y la Excitacin Actualiza las Variables, Variables las Salidas de Control y retorna case ASCENDENTE: if (cuenta < CUENTAfINAL) cuenta++; } }

8 de Mayo de 2010

Ing. Juan Manuel Cruz

15

8 de Mayo de 2010

Ing. Juan Manuel Cruz

16

Contador

Implementacin c/punteros a funcin (1 de 2)


/* Declaracin de Prototipos */ void Ascendiendo (void); void Descendiendo (void); // Arreglo de Punteros a las Funciones para cada Estado code void (code *ArrayFuncionesEstadoContador []) (void) = { Ascendiendo, \ Descendiendo}; /* Programa */ void Contador (void) { // Si el Estado esta fuera de rango reinicializa la M de E y retorna g

Contador

Implementacin c/punteros a funcin (2 de 2)


void Ascendiendo(void) { if (cuenta < CUENTAfINAL) cuenta++; else { estado = DESCENDENTE; cuenta--; } } return; } void Descendiendo (void) { if (cuenta > CUENTAiNICIAL) cuenta--; else { estado = ASCENDENTE; cuenta++;

if (estado >= ESTADOmAX) { InicializarContador(); return; } } (*ArrayFuncionesEstadoContador [estado]) (); Ing. Juan Manuel Cruz 17

return;

8 de Mayo de 2010

8 de Mayo de 2010

Ing. Juan Manuel Cruz

18

Contador
/* Programa */

Contador
} return; } // (estado == DESCENDENTE) else { if (cuenta > CUENTAiNICIAL) cuenta--; else { estado = ASCENDENTE; cuenta++; }

Implementacin con mltiples if

Comparacin de Implementaciones

void Contador (void) { // Si el Estado esta fuera de rango reinicializa la M de E y retorna if (estado >= ESTADOmAX) { InicializarContador(); return; } if (estado == ASCENDENTE) { if (cuenta < CUENTAfINAL) cuenta++; else { estado = DESCENDENTE; cuenta--;
8 de Mayo de 2010

Module Information Code size Contant size XDATA size PDATA size DATA size IDATA size BIT size
19 8 de Mayo de 2010

Switch 59 2 -

Punteros a funcin 77 4 2 Ing. Juan Manuel Cruz

Multiples if 55 2 20

Ing. Juan Manuel Cruz

Ejercicios propuestos
Detector de Secuencia
Seales luminosas

Referencias
Ingeniera de Software I, DC - FCEyN UBA g , y Software de Tiempo Real - FRBB UTN Sintaxis y Semntica del Lenguaje - FRT - UTN Finite State Machines: Making simple work of complex functions Ingeniera en Controladores - Mquinas de Estado An Introduction to Finite State Machines JOURNAL OF OBJECT TECHNOLOGY: A Typing Scheme for Behavioural Models Teora de Autmatas - Guillermo Morales-Luna Mquinas de Estados Finitos -Jorge Alejandro Gutirrez Orozco Finite State Machines - James Grimbleby Grupo de Inteligencia Artificial y Robtica - FRBA - UTN
8 de Mayo de 2010 Ing. Juan Manuel Cruz 22

Generador de Secuencia Control de Acceso con/sin cupo Ascensor de 2 plantas Escalera Escale a mecnica unidireccional/bidireccional nidi eccional/bidi eccional Puerta corrediza/Portn levadizo Mquinas expendedoras o de autoservicio Maquinaria o procesos industriales
8 de Mayo de 2010 Ing. Juan Manuel Cruz 21

Seguimiento de seales

Referencias
R3CT18: Manejo de Cola en C de 8051 R3CT19: Mquina de Estado (Contador de 8 bits) en C de 8051 R3CT20: Mquina de Estados (Tanque) en C de 8051
Autor: Ing. Juan Manuel Cruz Publicados por CEIT Electrnica FRBA UTN (2002)

R3CT23: Teclado Matricial en C de 8051 R3CT24: Display Multiplexado en C de 8051


Autor: Ing. Juan Man el C A to Ing J an Manuel Cruz Publicados por CEIT Electrnica FRBA UTN (2003)

R3CT25: Comunicacin Serie en C de 8051

Autor: Ing. Juan Manuel Cruz Publicado por CEIT Electrnica FRBA UTN (2004)
Ing. Juan Manuel Cruz 23

8 de Mayo de 2010

S-ar putea să vă placă și