sábado, 26 de enero de 2008

Implementación de un FPGA a una Máquina Expendedora de Refresco


Basanta Ingrid
dergrid@hotmail.com
Santiago Lemus
santia90@hotmail.com
Universidad Nacional Experimental Politécnica
“Antonio José de Sucre”
Vicerrectorado Puerto Ordaz
Departamento de Ingeniería Electrónica
Maestría de Ingeniería Electrónica, Cátedra Electrónica Integrada



Resumen: En el presente trabajo se realiza la programación e implementación de una FPGA para el control de una máquina expendedora de refresco, la cual no acumula dinero ni da cambio. Primeramente se describe el proceso de expendio del refresco de la máquina, luego se presenta el diagrama de estado el cual se utiliza para obtener las ecuaciones booleanas y secuenciales del sistema, que a su vez permitirá construir el circuito lógico y desarrollar la codificación en VHDL para programar la FPGA Xilinx XC2S200E. Antes de realizar la implementación se presenta la simulación del código en VHDL, mediante el software ModelSim XE III 6.2g de la empresa Xilinx. Los resultados muestran que el código desarrollado se ajusta perfectamente a la lógica establecida para el funcionamiento de la máquina de refresco.
Palabras Claves: Máquina de estado, expendedora de refresco, FPGA, simulación, programación en VHDL.


1. INTRODUCCIÓN.

Actualmente con los avances tecnológicos la automatización de equipos ha crecido en la industria, hogares, entre otros. Las dificultades más grandes que se pueden encontrar en la automatización es el tiempo de respuesta de los equipos, desde el momento en que se da la orden hasta que se ejecuta. En ese sentido los dispositivos Lógicos programables (PLD), en especial los FPGA resuelven en gran medida las constantes de tiempo debido a sus altas velocidades de respuestas dado que su propagación es a nivel lógico.

Como tarea de fin de curso de la asignatura Electrónica Digital se presenta en este trabajo la programación e implementación de un FPGA en una máquina expendedora de refresco la cual posee las siguientes características: la máquina solo puede admitir dos tipos de monedas y un solo tipo billete. El costo del refresco es de 2,5 Bs.F y la máquina solo expende un tipo de refresco.

En el trabajo se presentan las ecuaciones y el circuito lógico del problema a modelar, se realiza el código en VHDL y la simulación del dispositivo utilizando el software Xilinx ISE 9.2i y el ModelSim XE III 6.2g de la empresa Xilinx.


2. DESARROLLO.

2.1. Descripción del Proceso.

Como se mencionara anteriormente la máquina expende un solo tipo de refresco siempre y cuando el usuario introduzca una cantidad de dinero igual o superior a BsF 2,5 dado que la máquina no da vuelto ni acumula la cantidad. Se pueden introducir dos tipos de monedas y un solo tipo de billete, donde las monedas son de 0,50 BsF y 1 BsF, y el billete de 2 BsF.

2.3. Diagrama de Estado.

Para identificar las monedas la máquina posee un circuito lógico de reconocimiento de las monedas y billetes el cual activa las señales A y B según como se muestra en la Tabla 1.


Ahora bien, a medida que se introducen monedas a la expendedora de refresco, el estado lógico de la misma debe ir cambiando para identificar cuantas monedas ha introducido el consumidor. Estos estados se pueden definir mediante tres bits, los cuales son identificados en la Tabla 2 por Q1, Q2 y Q3.



Las señales de los estados deben ser generadas por tres Flip-Flops; donde el estado VACÍO significa que no hay monedas en la máquina, el estado BSF05 señala que hay 0,5 BsF., el estado BSF10 indica que existe 1,0 BsF, el estado BSF15 que hay 1,5 BsF., el estado BSF20 que hay 2,0 BsF. y el estado final del proceso se representa por SALIDA, el cual indica que la condición de pagó se ha cumplido ejecutando la salida del refresco y reinicio la máquina al estado VACÍO.
Para ilustrar mejor los estados del sistema se hace uso del diagrama de estado de la máquina de Moore, mostrado en la Figura 1, estos son una representación gráfica que indican la secuencia de los estados que se presentan en el circuito secuencial, teniendo en cuenta las entradas y las salidas. Vale la pena comentar que al activarse la señal RST la máquina de estado se va al estado VACÍO.



2.2. Ecuaciones Booleanas y Circuito Lógico.
Del diagrama de estado se obtiene la tabla de transición de estado (Tabla 3), donde se especifican las salidas D1, D2 y D3 de los tres Flip-Flop tipo D y la salida S para las diferentes combinaciones de entrada. Vale la pena comentar que las filas sombreadas en la Tabla 3 representan los puntos en los cuales la máquina suministra el refresco y regresa al estado vacio.

Las ecuaciones booleanas secuenciales resultantes son:



Finalmente a partir de las ecuaciones booleanas se construye el circuito lógico secuencial mostrado en la Figura 2.

Figura 2. Circuito Lógico Secuencial
2.3. Codificación en VHDL.
A partir del circuito lógico secuencial se puede obtener la codificación en VHDL de nuestro sistema (también se puede obtener la codificación en Verilog) utilizando el software Xilinx ISE 9.2i. Es posible también obtener la codificación a partir del diagrama de estado desarrollado en el mismo software Xilinx. La codificación en VHDL para el sistema es la siguiente:
_______________________________________________________
-- Module Name: MaqRefresco - Behavioral
-- Project Name: Ingrid Basanta
-- Target Devices: FPGA XC2S200E
---------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
---- Uncomment the following library declaration if instantiating
---- any Xilinx primitives in this code.
--library UNISIM;
--use UNISIM.VComponents.all;
entity MaqRefresco is
Port ( A : in STD_LOGIC;
B : in STD_LOGIC;
RST : in STD_LOGIC;
CLK : in STD_LOGIC;
S : out STD_LOGIC );
end MaqRefresco;
architecture Behavioral of MaqRefresco is
type ESTADOS is (VACIO, BSF05, BSF10, BSF15, BSF20, SALIDA);
attribute syn_encoding: string;
attribute syn_encoding of ESTADOS: type is "sequential";
signal ESTADOA,ESTADOSIG: ESTADOS;
begin
process (RST,CLK) --Inicia el proceso secuencial
begin
if (RST='1') then
ESTADOA <= VACIO;
elsif (CLK'event and CLK='1') then
ESTADOA <= ESTADOSIG;
end if;
end process;
process (ESTADOA,A,B)
begin
ESTADOSIG <= ESTADOA;
case ESTADOA is
when VACIO => if A='0' and B='1' then ESTADOSIG<=BSF05;
elsif A='1' and B='0' then ESTADOSIG<=BSF10;
elsif A='1' and B='1' then ESTADOSIG<=BSF20;
end if;
when BSF05 => if A='0' and B='1' then ESTADOSIG<=BSF10;
elsif A='1' and B='0' then ESTADOSIG<=BSF15;
elsif A='1' and B='1' then ESTADOSIG<=SALIDA;
end if;
when BSF10 => if A='0' and B='1' then ESTADOSIG<=BSF15;
elsif A='1' and B='0' then ESTADOSIG<=BSF20;
elsif A='1' and B='1' then ESTADOSIG<=SALIDA;
end if;
when BSF15 => if A='0' and B='1' then ESTADOSIG<=BSF20;
elsif A='1' then ESTADOSIG<=SALIDA;
end if;
when BSF20 => if A='1' or B='1' then ESTADOSIG<=SALIDA;
end if;
when SALIDA => ESTADOSIG<=VACIO;
end case;
end process;
S <= '1' when (ESTADOA = SALIDA) else '0';
end Behavioral;
__________________________________________________

2.4. Simulación.
A partir de la codificación en VHDL se puede simular el comportamiento del sistema para diferentes señales de entrada A y B.
La Figura 3 muestra el comportamiento del sistema cuando se introduce el dinero en la siguiente secuencia BsF. 0,5; BsF. 1,0 y BsF. 2,0; justo cuando se introduce el billete de BsF. 2,0 se genera la salida del refresco, dado que el pagó supera el valor requerido por la máquina.

Figura 3. Comportamiento para la secuencia BsF. 0,5; BsF. 1,0 y BsF. 2,0


Para una secuencia de BsF. 1,0, BsF. 1,0 y BsF. 0,5 el comportamiento del sistema responde a la Figura 4, donde se observa que después que la máquina ha acumulado BsF. 2,5 se produce la señal de salida para expender el refresco.
Figura 4. Comportamiento para la secuencia BsF. 1,0; BsF. 1,0 y BsF. 0,5.

Finalmente se muestra la Figura 5 el comportamiento de la máquina para las secuencias 2; 2 y 0,5; 2, donde se observa que la salida del refresco responde de manera muy precisa a las condiciones establecidas, de que el refresco se expende una vez que el pagó es mayor o igual a BsF. 2,5.


Figura 5. Comportamiento para la secuencia 2; 2 y 0,5; 2.


2.5. Implementación.

Una vez probado el código mediante la simulación se procedió a realizar la implementación en la FPGA Xilinx XC2S200E utilizando el mismo software, donde los pines de conexión para las entradas y salidas son:

A: T11
B: L14
CLK: T9
RST: M13
S: T13
En la Figura 6 se muestra el diagrama esquemático de la FPGA y la arquitectura de conexión de las mismas.
(a)

(b)Figura 6. Esquema de conexión de la FPGA Xilinx XC2S200E. (a) Vista superior de la ubicación de los pines en el encapsulado y (b) arquitectura de conexión.

3. CONCLUSIONES.

- La utilización de los softwares de simulación facilita el diseño de los sistemas de control que utilizan dispositivos lógicos.

- Los diagramas de estados son una herramienta poderosa que permiten generar o desarrollar la programación en VHDL (o en Verilog) de los PLDs, en forma muy sencilla.

- La utilización de software de la empresa que fabrica la FPGA (en éste caso Xilinx) permite realizar la implementación con bastante sencillez, dado que éste, despues de culminado el proceso genera el código para programar la FPGA e indica los puntos de conexión de la misma.


5. BIBLIOGRAFÍAS.

[1] Tocci Ronald, (1996), "Sistemas Digitales, Principios y Aplicaciones". Prentice Hall, Sexta edición, Máxico. Pag. 833.

[2] Sánchez Inocente, (2007). “Tecnología de Computadores". Disponible: http://www.virtual.unal.edu/. [Consulta: 2007, enero, 15].

[3] Xilinx, Inc,. (2001). "Data Sheets Catalog". Disponible: http://www.xilinx.com/. [Consulta: 2007, diciembre, 27].

lunes, 7 de enero de 2008

Guía de Cinemática - Fisica I

PARTE I: M.R.U., M.R.U.A., M.R.U.R.

1. Un atleta realiza un recorrido en línea recta con una velocidad promedio de 7 m/s durante 5min y después con una velocidad promedio de 5 m/s durante 3min. Calcule la velocidad promedio en todo el recorrido.

2. Un atleta parte desde Macro Centro hacia el C.C. Orinokia y simultáneamente parte otro del C.C. Orinokia hacia Macro Centro cruzándose a 120 m de Macro Centro. En el trayecto de vuelta se cruzan a 100 m del Orinokia. Determine la distancia que existe entre ambos centros comerciales.

3. Un ciclista parte del reposo desde una ciudad a otra, con una aceleración de 4 m/s^2. Dos segundos después desde el mismo punto parte otro ciclista del reposo en la misma dirección con una aceleración de 6 m/s^2. ¿A qué distancia desde el punto de partida alcanza el segundo ciclista al primero?

4. Un auto recorre 220 km con una rapidez promedio de 12 m/s, una hora después parte otro desde el mismo punto recorriendo la trayectoria del primero al mismo tiempo. ¿Cuál fue la rapidez promedio del segundo auto durante el período que estuvo en movimiento?.

5. En la prueba preliminar para determinar la posición de partida de una carrera de formula uno, un auto se encuentra en el punto de partida, mientras que otro pasa por ese mismo punto a una velocidad constante de 210 km/h. Después de 3s el primer auto arranca e intenta alcanzar a su oponente. Si el primer auto acelera uniformemente a 20 m/s2, determine: a) ¿Cuánto tiempo tardará el primer auto en alcanzar al segundo auto?. b) ¿Qué distancia han recorrido los autos, desde el punto de partida, cuando el primero alcanza al segundo?. c) ¿Qué velocidad lleva cada auto al momento del encuentro?

6. Una partícula se mueve a lo largo del eje x según la ecuación x = 3 + 4t - 2t^2 donde x esta en metros y t en segundos. Para t = 4 s, halle: La posición de la partícula, su velocidad y su aceleración.

7. Un automóvil es acelerado uniformemente desde el reposo hasta alcanzar una velocidad de 15 m/s, luego se aplican los frenos desacelerando uniformemente hasta detenerse. Sí el tiempo total del recorrido fue de 0,3 min. Calcule la distancia recorrida por el automóvil.

8. Una pelota parte del reposo y acelera a 0,8 m/s^2 mientras se mueve hacia abajo en un plano inclinado de 10 m de largo. Cuando alcanza la parte inferior, la pelota rueda por otro plano horizontal, desacelerando uniformemente hasta que se detiene en 18 m. a) ¿Cuál es la velocidad de la pelota en la parte inferior del primer plano?. b) ¿Cuánto tarda en rodar por el primer plano?. c) ¿Cuál es la aceleración a lo largo del segundo plano?. d) ¿Cuál es la velocidad de la pelota 8 m a lo largo del primer plano?

9. El conductor de una góndola que se mueve con una velocidad de 100 km/h ve en el medio de la vía a un niño recogiendo su pelota a una distancia de 168 m. El conductor al reaccionar aplica los frenos desacelerando a 2,5 m/s^2. Calcule a) ¿Cuál fue el tiempo de reacción del conductor?.

10. Un motorizado parte del reposo acelerando a 2,8 m/s^2 hasta alcanzar una velocidad de 35 m/s, luego continua moviéndose durante 12 s a velocidad constante hasta que aplica los frenos deteniéndose 3 s después. Calcule: a) El tiempo que estuvo el motorizado en movimiento. b) La distancia que recorre antes de detenerse.

PARTE II: CAÍDA LIBRE

1. Una pelota es lanzada verticalmente hacia abajo con una velocidad de 9 m/s desde una altura de 40 m. ¿En que momento la pelota golpea el suelo.

2. Un niño lanza un cuerpo verticalmente hacia arriba a otro niño que se encuentra en una ventana 2,6 m arriba. El niño atrapa el cuerpo 1,1 s después con la mano extendida. a) ¿Cuál es la velocidad inicial con la cual se lanzo el cuerpo?. b) ¿Cuál era la velocidad del cuerpo justo al momento de ser atrapado?

3. La altura de un helicóptero sobre el suelo está representada por y = 4t^3, donde y esta en metros y t en segundos. Después de 3 s se deja caer desde el helicóptero una caja. ¿Cuánto tiempo tarda la caja en llegar al suelo?

4. Una esferita de metal se deja caer desde la ventana de un edificio, un joven que se encuentra parado unas ventanas más abajo observa que la esferita tarda 0,25 s en descender la altura de 1,8 m de la ventana. Sí cada piso tiene una altura de 3 m. a) ¿A que altura respecto a la base de la ventana se dejo caer?. b) ¿Cuántos pisos hay desde el punto de partida hasta la ventana?

5. Un joven lanza un dardo verticalmente hacia arriba con una velocidad 6 m/s desde una altura de 3 m, en el mismo instante otro joven desde el suelo lanza otro dardo en la misma dirección con una velocidad de 10 m/s. Encuentre: a) El tiempo que tardan en encontrarse los dardos respecto al suelo. b) A que altura se encuentran.

6. Desde un globo que asciende verticalmente con una velocidad 8m/s, se deja caer un cuerpo cuando el globo se encuentra a una altura de 36,4 m por encima del suelo. a) Luego de ser soltado el cuerpo diga ¿Cuánto tiempo estará en el aire?. b) ¿Cuál es su velocidad justo antes de chocar con el suelo?

7. Se deja caer una piedra desde un precipicio y 1s más tarde se lanza otra desde el mismo punto verticalmente hacia abajo con una velocidad de 20 m/s. ¿A que distancia por debajo del punto más alto del precipicio alcanza la segunda piedra a la primera?. Dos niños se encuentran sobre el techo de un edificio de 30 m de altura. Un niño deja caer una metra y 1 s después el otro niño lanza otra metra verticalmente hacia abajo. Calcule la velocidad con la cual fue lanzada la segunda metra para que ambas toquen simultáneamente el suelo.
PARTE III: PROYECTILES

1. Una pelota se lanza horizontalmente desde la azotea de un edificio de 35 m de altura. La pelota golpea al suelo en un punto a 80 m de la base del edificio. Encuentre: a) el tiempo que la pelota permanece en el aire. b) Su velocidad inicial c) Las componentes X y Y de la velocidad justo antes de que la pelota pegue en el suelo.

2. Un jugador de fútbol patea un balón desde un punto de 36 m de la zona de gol y el balón debe librar los postes que están a 3,5 m de altura. Cuando se patea, el balón abandona el suelo con una velocidad de 20 m/s y con un ángulo de 53° respecto a la horizontal, a) ¿Por cuanta distancia el balón libra o no los postes? b) ¿El balón se aproxima a los postes mientras continúa ascendiendo o cuando va descendiendo?

3. Un bombero a cincuenta metros de un edificio en llamas dirige un chorro de agua de una manguera a un ángulo de 50° sobre la horizontal (ver figura 1). Sí la velocidad inicial de la corriente es 40 m/s. ¿A que altura el agua incide en el edificio?

4. Un cañón puede lanzar un proyectil a 1,7 km/s, sí el ángulo de inclinación es de 55° ¿Cuál es el alcance del proyectil y el tiempo que permanece en el aire?

5. Un balón de fútbol es pateado con una velocidad de 32 m/s, ¿Cuál será el intervalo angular al que deberá ser pateado el balón si se quiere anotar un gol, desde un punto ubicado a 56 m en frente de la arquería, cuya altura es de 3,5 m.?

6. Un proyectil se dispara de tal manera que su alcance horizontal es tres veces su altura máxima, ¿Cuál es el ángulo de disparo?

7. Un jugador de básquetbol de 2 m de altura lanza un tiro a la canasta desde una distancia horizontal de 10 m (ver figura 2). Sí tira a un ángulo de 40° con la horizontal, ¿Con que velocidad debe lanzar el balón para que este entre en el aro sin golpear el tablero?
8. Un balón de fútbol es pateado con una velocidad de 20 m/s con un ángulo de elevación de 36° con respecto a la horizontal, un portero ubicado en la línea de gol a 56 m en dirección de la patada, comienza a correr en ese mismo instante para atraparla. ¿Cuál debe ser su velocidad promedio, sí este debe llegar justo en el instante en que el balón toque el suelo?