Diseño de un lavarropas automatico en una FPGA Spartan 3E

8
TP2: IMPLEMENTACION DE UN LAVARROPAS AUTOMATICO Página | 1 Electrónica Digital Trabajo Práctico Integrador Nº 2 Diseño e Implementación de un Lavarropas Automático en la Basys2 Candelero, Milton – Martini, María Antonella Ingeniería en Informática - FICH UNL INTRODUCCIÓN Resumen: Un lavarropas es una máquina de estado finito que se utiliza para uso doméstico. Para poder diseñar este programa, se requieren diferentes componentes: el más importante es el propiamente dicho: la máquina de estados, encargada de realizar las operaciones de lavado, enjuague y centrifugado. Además, para el correcto funcionamiento y ensamble, se necesita un temporizador para los tiempos de lavado y centrifugado, y switches para la entrada de comandos que realiza el usuario. Mediante un registro las entradas son guardadas, procesadas en la maquina de estados y como resultado se encienden distintos diodos led dependiendo del programa que se esté llevando a cabo. Palabras clave— Maquina de Estados Finitos, lavarropas, contador, temporizadores, flip flops. FUNCIONAMIENTO GENERAL DEL LAVARROPAS AUTOMATICO Circuito General del Lavarropas Automático

description

Diseño de un lavarropas automatico en una FPGA Spartan 3ETrabaj de electrónica en Xilinx

Transcript of Diseño de un lavarropas automatico en una FPGA Spartan 3E

  • T P 2 : I M P L E M E N T A C I O N D E U N L A V A R R O P A S A U T O M A T I C O P g i n a | 1

    Electrnica Digital

    Trabajo Prctico Integrador N 2

    Diseo e Implementacin de un Lavarropas

    Automtico en la Basys2 Candelero, Milton Martini, Mara Antonella Ingeniera en Informtica - FICH UNL

    INTRODUCCIN

    Resumen: Un lavarropas es una mquina de estado finito que se utiliza para uso domstico. Para poder disear este programa, se

    requieren diferentes componentes: el ms importante es el propiamente dicho: la mquina de estados, encargada de realizar las

    operaciones de lavado, enjuague y centrifugado.

    Adems, para el correcto funcionamiento y ensamble, se necesita un temporizador para los tiempos de lavado y centrifugado, y

    switches para la entrada de comandos que realiza el usuario. Mediante un registro las entradas son guardadas, procesadas en la

    maquina de estados y como resultado se encienden distintos diodos led dependiendo del programa que se est llevando a cabo.

    Palabras clave Maquina de Estados Finitos, lavarropas, contador, temporizadores, flip flops.

    FUNCIONAMIENTO GENERAL DEL LAVARROPAS AUTOMATICO

    Circuito General del Lavarropas Automtico

  • T P 2 : I M P L E M E N T A C I O N D E U N L A V A R R O P A S A U T O M A T I C O P g i n a | 2

    Como podemos observar, la entrada del sensor Vaco/Lleno entra directamente, mientras que las entradas referentes al

    programa a realizar se guardan en un registro paralelo al pulsar el botn de inicio, para evitar la interrupcin durante este, luego

    este registro alimenta a la mquina de estados. Adems del reloj de la FPGA, la mquina de estados recibe como entrada dos

    relojes comparativamente ms lentos que se utilizan para determinar el tiempo de lavado/enjuague y centrifugado.

    Las salidas de la FSM son el estado en el que se encuentra y diversas seales que se utilizan para configurar los relojes y

    el programa guardado en el registro. Por ltimo, hay un circuito combinacional que se encarga de traducir la salida de la mquina

    de estados a una salida que puede conectarse directamente a los diodos led de la FPGA.

    PARTES DE UN LAVARROPAS

    Para lograr nuestro objetivo, procederemos a explicar las distintas partes que componen un circuito de control para un

    lavarropas automtico y como funciona cada una de ellas.

    1.1 MAQUINA DE ESTADOS

    Circuito Combinacional para la Maquina de Estados

  • T P 2 : I M P L E M E N T A C I O N D E U N L A V A R R O P A S A U T O M A T I C O P g i n a | 3

    Estado Combinacion Binaria

    APAGADO 000

    CARGA DEPOSITO 001

    MOTOR MINIMO 010

    DEPOSITO CARGA 011

    MOTOR MAXIMO 100

    Tabla de Estados y Asignaciones Binarias

    Diagrama de Estados

    En primer lugar, para poder ensamblar el lavarropas procedemos a disear el circuito para la mquina de estados

    finitos. Para eso, instanciamos los diferentes estados posibles que tiene este circuito de control para poder armar el

    diagrama de estados correspondiente.

    A cada estado se le asigna una combinacin binaria y en este caso se decidi representarlos con nmeros enteros.

    Decidimos utilizar flip flops T con seal de Reset para armar el circuito de control, armamos la tabla de excitacin

    correspondiente a dicho FF. Luego, se arma una tabla de estados, compuestas por las secciones: Estado Actual, Entradas

    del switch, Estado Siguiente y las entradas del flip flop dependiendo del estado en que se encuentra la maquina en

    determinado periodo de tiempo.

    Estado Actual Estado Siguiente T

    0 0 0

    0 1 1

    1 0 1

    1 1 0

    Tabla de Excitacin del Flip Flop T

  • T P 2 : I M P L E M E N T A C I O N D E U N L A V A R R O P A S A U T O M A T I C O P g i n a | 4

    De la tabla anterior, se extrajeron las expresiones lgicas correspondientes a cada una de las entradas de los tres flip flops

    que componen la mquina de estados:

    Adicionalmente a las salidas de los flip flops la FSM posee otras salidas que se utilizan para activar y desactivar

    los relojes que esperan a que terminen los programas de Lavado/Enjuague y Centrifugado; y otras que se utilizan para

    reescribir el registro de instrucciones apagando los distintos bits a medida que se completan las ordenes. De esta forma nos

    aseguramos que al final de cada ciclo el circuito termine en el estado apagado y est listo para un nuevo programa de lavado.

    Flip Flop

    L E C T R1 R2 T3 T2 T1 Q3+1 Q2+1 Q1+1

    0 0 0 0 0 0 0 X X 0 0 0 0 0 0

    0 0 0 1 X X 0 X X 0 0 1 0 0 1

    0 0 0 0 1 X 0 X X 0 0 1 0 0 1

    0 0 0 0 0 1 0 X X 1 0 0 1 0 0

    0 0 1 X X X 0 X X 0 0 0 0 0 1

    0 0 1 X X X 1 X X 0 1 1 0 1 0

    0 1 0 X X X X 0 X 0 0 0 0 1 0

    0 1 0 X X X X 1 X 0 0 1 0 1 1

    0 1 1 X X X 1 X X 0 0 0 0 1 1

    0 1 1 0 1 X 0 X X 0 1 0 0 0 1

    0 1 1 0 0 1 0 X X 1 1 1 1 0 0

    0 1 1 0 0 0 0 X X 0 1 1 0 0 0

    1 0 0 X X X X X 0 0 0 0 1 0 0

    1 0 0 X X X X X 1 1 0 0 0 0 0

    Estado SiguienteEstado actual

    Q3 Q2 Q1

    Entrada

    APAGADO

    CARGA DEPOSITO

    MOTOR MINIMO

    DESCARGA DEPOSITO

    MOTOR MAXIMO

    Tabla de Estados del Circuito de Control del Lavarropas Automtico

  • T P 2 : I M P L E M E N T A C I O N D E U N L A V A R R O P A S A U T O M A T I C O P g i n a | 5

    1.2 REGISTRO PARALELO DE INSTRUCCIONES

    1.2.1 REGISTRO DE UN BIT. El registro de un bit utiliza flip flops tipo D ya que estos son ptimos a la hora de guardar un dato. Su funcionamiento fue

    ampliamente explicado en la ctedra.

    Registro de un bit.

    1.2.2 REGISTRO PARALELO.

    Registro Paralelo de tres bit.

  • T P 2 : I M P L E M E N T A C I O N D E U N L A V A R R O P A S A U T O M A T I C O P g i n a | 6

    Mediante la implementacin del registro anterior, obtenemos el registro de 3 bits que se utilizara para guardar las

    instrucciones del programa con el objetivo de prevenir que este pueda cambiar en la mitad del ciclo.

    Cada uno de los 3 bits del registro corresponden a las entradas de Lavado, Enjuague y Centrifugado. Las seales de

    reset de los registros estn para que la FSM pueda apagar los bits de los procesos que ya haya completado y as avanzar en

    el programa.

    1.3 DIVISOR DE FRECUENCIAS DE CLOCK

    1.3.1 CONTADOR A 10.

    El contador a 10 es el contador de dcadas que se vio en clase usando flipflops tipo JK y que est en el libro Fundamentos

    de Sistemas Digitales, Floyd 9na Edicin.

    Circuito del Contador a 10.

    1.3.2 DIVISOR DE FRECUENCIAS

    Se conectan los ocho contadores a 10 en cascada con el objetivo de dividir la frecuencia del reloj de la FPGA por 10 en

    cada salto. De esta forma, obtenemos una reduccin desde 50,000,000 Hz a 0,5 Hz.

    Finalmente alimentamos un contador asncrono de 2 bits incluido en xilinx (CB2CE) que posee enable y reset asncrono lo

    cual nos permite activar y desactivar el contador en el momento que se lo necesite.

    Ntese que en este diseo tanto el lavado/enjuague como el centrifugado duran el mismo tiempo. A la hora de aplicarse

    este diseo se deben expandir ambos divisores para lograr tiempos acorde a las tareas.

    Circuito para el Divisor de Frecuencias

  • T P 2 : I M P L E M E N T A C I O N D E U N L A V A R R O P A S A U T O M A T I C O P g i n a | 7

    1.4 DECODIFICADOR DE SALIDA.

    Para poder presentar las salidas de la mquina de estado en los diodos LED se utiliza un decodificador que responde a las

    siguientes ecuaciones:

    Tabla de Verdad para el Decodificador

    Circuito de Decodificador para las Salidas de la Maquina de Estados

  • T P 2 : I M P L E M E N T A C I O N D E U N L A V A R R O P A S A U T O M A T I C O P g i n a | 8

    CONCLUSIN

    Durante este trabajo pudimos poner a prueba los conocimientos adquiridos en la ctedra sobre mquinas de estado y

    contadores adems de repasar nuevamente los conceptos sobre los circuitos combinacionales.

    Adems aprendimos a solventar problemas que puedan surgir en una mquina de estados debido a variaciones temporales

    inesperadas.

    Notas finales:

    Cuando ya casi finalizado el trabajo, nos topamos con una solucin que implicaba utilizar un contador de mdulo 8

    solamente recorrerlo implicaba realizar el programa completo de lavado. Si bien este mtodo podra resultar ms ameno a

    la hora de ver el circuito, debido a limitaciones del enunciado y al estado de nuestro trabajo decidimos proseguir con

    nuestro acercamiento.

    Existe una transicin ms dentro del circuito de control donde, si en cualquier periodo de tiempo el estado de de este

    contiene cuatro ceros en sus entradas (0000XX = Lavado=0, Enjuague=0, Centrifuga=0, Sensor de vaco/Lleno=0)

    entonces el estado del programa seria APAGADO. Esto se percibe cuando se prende la FPGA y los flip flops se encuentran

    con valores aleatorios. Con apretar en botn de Encendido o On y todos los switches en estado bajo, se reinicie.

    Durante una etapa del trabajo, debido a un glitch ocasionado por uno de los relojes, el sistema poda llegar a caer en un

    estado no contemplado por nosotros. Se corrigi este problema haciendo que si la maquina cae en dicho estado

    automticamente se reinicie y contine el programa sin inconvenientes.