6
Técnicas Digitales II Universidad Tecnológica Nacional Facultad Regional Buenos Aires Ingeniería Electrónica Técnicas Digitales II Máquina de Estado Ing. Juan Manuel Cruz ([email protected] ) Profesor Asociado Ordinario Ing. Alex Lozano ([email protected] ) Jefe de Trabajos Prácticos Ordinario Buenos Aires, 8 de Mayo de 2010 Temario Introducción Introducción Estado del arte Problemática general Criterios de diseño C tí i d t di Casos picos de estudio Un ejemplo de aplicación Ejercicios propuestos 2 Ing. Juan Manuel Cruz 8 de Mayo de 2010 Máquina de Estado (palotes ++) Máquina de Estado (State Machine) Modelo matemático de un sistema con entradas y salidas discretas, que posee sintaxis y semántica formales Utiles para representar aspectos dinámicos no representables por diagramas de otro tipo 3 Ing. Juan Manuel Cruz 8 de Mayo de 2010 ¿Como qué se las conoce? Existen múltiples terminologías: Existen múltiples terminologías: 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) At t (t í d l j ) Automata (teoría de lenguajes) Timed Automata IOA (Input Output Automata) Etc., etc., etc. 4 Ing. Juan Manuel Cruz 8 de Mayo de 2010

Tecnicas Digitales II-R4052-2010-Maquina de Estado

  • Upload
    borgo66

  • View
    158

  • Download
    8

Embed Size (px)

Citation preview

Page 1: Tecnicas Digitales II-R4052-2010-Maquina de Estado

TDII R4052 - Máquina de Estado - 2010 8 de Mayo de 2010

Ing. Juan Manuel Cruz 1

Técnicas Digitales II

Universidad Tecnológica Nacional

Facultad Regional Buenos Aires

Ingeniería Electrónica

Técnicas Digitales IIMáquina de Estado

Ing. Juan Manuel Cruz ([email protected])Profesor Asociado Ordinario

Ing. Alex Lozano ([email protected] )Jefe de Trabajos Prácticos Ordinario

Buenos Aires, 8 de Mayo de 2010

Temario

IntroducciónIntroducciónEstado del arteProblemática generalCriterios de diseñoC tí i d t diCasos típicos de estudioUn ejemplo de aplicaciónEjercicios propuestos

2Ing. Juan Manuel Cruz8 de Mayo de 2010

Máquina de Estado (palotes ++)

Máquina de Estado (State Machine)

Modelo matemático de un sistema con entradas y salidas discretas, que posee sintaxis y semántica formales

Utiles para representar aspectos dinámicos no representables por diagramas de otro tipo

3Ing. Juan Manuel Cruz8 de Mayo de 2010

¿Como qué se las conoce?Existen múltiples terminologías:Existen múltiples terminologías:

StatechartFSM & EFSM (Finite State Machine & Extended FSM)PFSM & CFSM (Partial & Complete FSM)TFSM (Timed FSM)DFSM & NFSM (Deterministic & Nondeterministic FSM)LTS (Labelled Transition System)A t t (t í d l j )Automata (teoría de lenguajes)Timed AutomataIOA (Input Output Automata)Etc., etc., etc.

4Ing. Juan Manuel Cruz8 de Mayo de 2010

Page 2: Tecnicas Digitales II-R4052-2010-Maquina de Estado

TDII R4052 - Máquina de Estado - 2010 8 de Mayo de 2010

Ing. Juan Manuel Cruz 2

¿Qué son?

Modelo de Comportamiento (Behavior), denotan evolución mediante:

Estados (comportamiento estático)Transiciones (evolución entre estados)Excitaciones (que condicionan las transiciones)Acciones (asociadas a las transiciones)

Determinísticas y no determinísticas

Composición en paralelo de múltiples máquinas

5Ing. Juan Manuel Cruz8 de Mayo de 2010

¿Para qué sirven?

Especificar aspectos formales relacionados con:

Sistemas de Control en Tiempo RealDominios Reactivos o AutónomosComputación ReactivaProtocolosCircuitos Eléctricos/Electrónicos (Lógica Secuencial)A i d S fArquitectura de SoftwareAnálisis Lexicográfico, GramaticalEtc., etc., etc.

6Ing. Juan Manuel Cruz8 de Mayo de 2010

¿Por qué usarlas?

Rigurosa descripción del comportamiento de la solución al problema planteado

Soluciones muy sofisticadas y ridículamente sencillas. Incluso compuestas por la operación en paralelo de múltiples máquinas

Códi á i l fi i i Má fá il d dCódigo más simple, eficiente y preciso. Más fácil de depurar, modificar, expandir y mejor organizado

Facilitan el análisis, el diseño y la implementación

7Ing. Juan Manuel Cruz8 de Mayo de 2010

¿Cómo se formalizan?Mediante diversos métodos de representación:Mediante diversos métodos de representación:

Funciones matemáticaDiagramas / Tablas de Estados y TransicionesRedes de Petri

Existen métodos para minimizar estados

Mediante diversos lenguajes de programación:

Assembly, C p/micros o PCsC++, Java, UMLVHDL, etc., etc., etc.

8Ing. Juan Manuel Cruz8 de Mayo de 2010

Page 3: Tecnicas Digitales II-R4052-2010-Maquina de Estado

TDII R4052 - Máquina de Estado - 2010 8 de Mayo de 2010

Ing. Juan Manuel Cruz 3

Casos típicos de estudio

Surgen de combinar los siguientes factores:

Excitadas por EventosExcitadas por Sincronismos (time-out, timer-tick)Excitadas por Semáforos/Variables/Colas (mensajes)Interacción con Entradas/SalidasComposición en paralelo de múltiples máquinas

Algunas máquinas con nombre propio:

Moore & MealyTuring & Markov

9Ing. Juan Manuel Cruz8 de Mayo de 2010

Un ejemplo de aplicación: Contador

Contador Ascendente / Descendente/

Cuenta ascendente desde CUENTAiNICIAL hasta CUENTAfINAL

Cuenta descendente desde CUENTAfINAL hasta CUENTAiNICIAL

Itera

Recursos

Variables: estado , cuenta

Defines: ASCENDENTE, DESCENDENTE,ESTADOmAXIMO, ESTADOiNICIAL,CUENTAiNICIAL, CUENTAfINAL

10Ing. Juan Manuel Cruz8 de Mayo de 2010

ContadorDiagrama de Estados y transiciones

RESET

ASC DES

cuenta == CUENTAfiNAL / cuenta--

RESET/

cuenta = CUENTAiNICIAL

11

cuenta == CUENTAiNICIAL / cuenta++

cuenta < CUENTAfiNAL/

cuenta++

cuenta > CUENTAiNICIAL/

cuenta --

Ing. Juan Manuel Cruz8 de Mayo de 2010

ContadorTabla de Estados y Transiciones

Estado Actual Excitación Estado Futuro Acción

XRESET

||estado >= ESTADOmAXIMO

ESTADOiNICIAL cuenta = CUENTAiNICIAL

ASCENDENTE

estado < ESTADOmAXIMO&&

cuenta < CUENTAfINALASCENDENTE cuenta++

estado < ESTADOmAXIMO&& DESCENDENTE cuenta--

12

cuenta == CUENTAfINAL

DESCENDENTE

estado < ESTADOmAXIMO&&

cuenta > CUENTAiNICIALDESCENDENTE cuenta--

estado < ESTADOmAXIMO&&

cuenta == CUENTAiNICIALASCENDENTE cuenta++

Ing. Juan Manuel Cruz8 de Mayo de 2010

Page 4: Tecnicas Digitales II-R4052-2010-Maquina de Estado

TDII R4052 - Máquina de Estado - 2010 8 de Mayo de 2010

Ing. Juan Manuel Cruz 4

ContadorImplementaciones posibles

Implementación mediante:Implementación mediante:

Switch (estado)Arrays de punteros a función (estado)Múltiples if (estado)

Desarrolladas en esta presentación

Tablas de excitaciones & acciones (estado, excitación)Se escucharán propuestas en esta presentación

Se recomienda compararlas en la práctica de laboratorio

13Ing. Juan Manuel Cruz8 de Mayo de 2010

ContadorImplementación con switch (1 de 3)

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

/* Declaración de Prototipos */void InicializarContador (void); void Contador (void);

/* Defines del correspondientes al Contador */

#define ASCENDENTE 0 // Estados#define ASCENDENTE 0 // Estados#define DESCENDENTE 1#define ESTADOmAX DESCENDENTE + 1

#define ESTADOiNICIAL ASCENDENTE

#define CUENTAiNICIAL 0x00 // Límites de Cuenta#define CUENTAfINAL 0xFF

14Ing. Juan Manuel Cruz8 de Mayo de 2010

ContadorImplementación con switch (2 de 3)

/* Reserva de Variables */ // Reservas en RAM Interna de acceso directo

unsigned char data estado; // Estado de Contador de 8 bits Asc. / Desc.

unsigned char data cuenta; // Contador de 8 bits Asc. / Desc.

/* Programa */

void InicializarContador (void)void InicializarContador (void){ // Inicializa las Variables y Salidas de Control

estado = ESTADOiNICIAL;cuenta = CUENTAiNICIAL;

return;}

15Ing. Juan Manuel Cruz8 de Mayo de 2010

ContadorImplementación con switch (3 de 3)

void Contador (void){ // Si l E d f d l {{ // Si el Estado esta fuera de rango

reinicializa la M de E y retorna

if (estado >= ESTADOmAX) {InicializarContador();

return;}

switch (estado) { // En función del Estado y la Excitación Actualiza las Variables las

esle {estado = DESCENDENTE;cuenta--;

}break;

case DESCENDENTE:

if (cuenta > CUENTAiNICIAL)cuenta--;

Variables, lasSalidas de Control

y retorna

case ASCENDENTE:

if (cuenta < CUENTAfINAL)cuenta++;

else {estado = ASCENDENTE;cuenta++;

}break;

}}

8 de Mayo de 2010 Ing. Juan Manuel Cruz 16

Page 5: Tecnicas Digitales II-R4052-2010-Maquina de Estado

TDII R4052 - Máquina de Estado - 2010 8 de Mayo de 2010

Ing. Juan Manuel Cruz 5

ContadorImplementación c/punteros a función (1 de 2)

/* Declaración 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 y

if (estado >= ESTADOmAX) {InicializarContador();return;

}

(*ArrayFuncionesEstadoContador [estado]) ();}

17Ing. Juan Manuel Cruz8 de Mayo de 2010

ContadorImplementación c/punteros a función (2 de 2)

void Ascendiendo(void){

if (cuenta < CUENTAfINAL)cuenta++;

else {estado = DESCENDENTE;cuenta--;

}

void Descendiendo (void){

if (cuenta > CUENTAiNICIAL)cuenta--;

else {estado = ASCENDENTE;cuenta++;

}

return;}

return;}

8 de Mayo de 2010 Ing. Juan Manuel Cruz 18

ContadorImplementación con múltiples if

/* Programa */ }

void Contador (void){ // Si el Estado esta fuera de rango

reinicializa la M de E y retorna

if (estado >= ESTADOmAX) {InicializarContador();return;

}

return;}

// (estado == DESCENDENTE)else {

if (cuenta > CUENTAiNICIAL)cuenta--;

else {if (estado == ASCENDENTE) {

if (cuenta < CUENTAfINAL)cuenta++;

else {estado = DESCENDENTE;cuenta--;

else {estado = ASCENDENTE;cuenta++;

}}

}

8 de Mayo de 2010 Ing. Juan Manuel Cruz 19

ContadorComparación de Implementaciones

Module Information Switch Punteros a función Multiples if

Code size 59 77 55

Contant size - 4 -

XDATA size - - -

8 de Mayo de 2010 20Ing. Juan Manuel Cruz

PDATA size - - -

DATA size 2 2 2

IDATA size - - -

BIT size - - -

Page 6: Tecnicas Digitales II-R4052-2010-Maquina de Estado

TDII R4052 - Máquina de Estado - 2010 8 de Mayo de 2010

Ing. Juan Manuel Cruz 6

Ejercicios propuestosDetector de SecuenciaDetector de Secuencia

Seguimiento de señalesGenerador de Secuencia

Señales luminosasControl de Acceso con/sin cupoAscensor de 2 plantasEscale a mecánica nidi eccional/bidi eccionalEscalera mecánica unidireccional/bidireccionalPuerta corrediza/Portón levadizoMáquinas expendedoras o de autoservicioMaquinaria o procesos industriales

21Ing. Juan Manuel Cruz8 de Mayo de 2010

ReferenciasIngeniería de Software I, DC - FCEyN – UBAg , ySoftware de Tiempo Real - FRBB – UTNSintaxis y Semántica del Lenguaje - FRT - UTNFinite State Machines: Making simple work of complex functionsIngeniería en Controladores - Máquinas de EstadoAn Introduction to Finite State MachinesJOURNAL OF OBJECT TECHNOLOGY: A Typing Scheme for Behavioural ModelsBehavioural ModelsTeoría de Autómatas - Guillermo Morales-LunaMáquinas de Estados Finitos -Jorge Alejandro Gutiérrez OrozcoFinite State Machines - James GrimblebyGrupo de Inteligencia Artificial y Robótica - FRBA - UTN

22Ing. Juan Manuel Cruz8 de Mayo de 2010

ReferenciasR3CT18: Manejo de Cola en C de 8051R3CT18: Manejo de Cola en C de 8051R3CT19: Máquina de Estado (Contador de 8 bits) en C de 8051R3CT20: Máquina de Estados (Tanque) en C de 8051

Autor: Ing. Juan Manuel CruzPublicados por CEIT – Electrónica – FRBA – UTN (2002)

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

A to Ing J an Man el CAutor: Ing. Juan Manuel CruzPublicados por CEIT – Electrónica – FRBA – UTN (2003)

R3CT25: Comunicación Serie en C de 8051Autor: Ing. Juan Manuel CruzPublicado por CEIT – Electrónica – FRBA – UTN (2004)

23Ing. Juan Manuel Cruz8 de Mayo de 2010