práctica - control con velocidad variable

11
INSTITUTO TECNOLÓGICO DE PUEBLA DEPARTAMENTO DE INGENIERIA ELECTRÓNICA Y ELÉCTRICA CATEDRATICO: CARLOS GARCIA LUCERO ALUMNOS: ABRAHAM ISIDORO MUÑOZ FELIPE HERNÁNDEZ SORIANO JOSÉ DANIEL PICHÓN FLORES NESTOR LUNA MARCIAL OSWALDO ESCOBAR JIMAREZ RICARDO JESUS GRACIA SALINAS Práctica Número 3 " CONTADOR DE VELOCIDAD VARIABLE" 1. Introducción Implementación del control numérico sobre una FPGA La implementación sobre la FPGA se ha realizado de una forma modular. Esta técnica se basa en dividir un diseño complejo en otros de menor tamaño. De esta forma se facilita la reutilización de los módulos. VHDL es el acrónimo que representa la combinación de VHSIC y HDL, donde VHSIC es el acrónimo de Very High Speed Integrated Circuit y HDL es a su vez el acrónimo de Hardware Description Language. En esta práctica conoceremos las herramientas de programación que ofrece el software Xilinx y la programación con Microblaze y lenguaje C, con el fin de realizar la función solicitada. 2. Objetivos

Upload: abraham-munoz

Post on 29-Dec-2015

16 views

Category:

Documents


0 download

TRANSCRIPT

INSTITUTO TECNOLÓGICO DE PUEBLA

DEPARTAMENTO DE INGENIERIA ELECTRÓNICA Y ELÉCTRICA

CATEDRATICO: CARLOS GARCIA LUCERO

ALUMNOS:ABRAHAM ISIDORO MUÑOZFELIPE HERNÁNDEZ SORIANOJOSÉ DANIEL PICHÓN FLORESNESTOR LUNA MARCIALOSWALDO ESCOBAR JIMAREZRICARDO JESUS GRACIA SALINAS

Práctica Número 3

"CONTADOR DE VELOCIDAD VARIABLE"

1. Introducción

Implementación del control numérico sobre una FPGA

La implementación sobre la FPGA se ha realizado de una forma modular. Esta técnica se basa en dividir un diseño complejo en otros de menor tamaño. De esta forma se facilita la reutilización de los módulos.

VHDL es el acrónimo que representa la combinación de VHSIC y HDL, donde VHSIC es el acrónimo de Very High Speed Integrated Circuit y HDL es a su vez el acrónimo de Hardware Description Language.En esta práctica conoceremos las herramientas de programación que ofrece el software Xilinx y la programación con Microblaze y lenguaje C, con el fin de realizar la función solicitada.

2. ObjetivosDiseñar e implementar un programa por el cual podamos hacer un contador binario, controlando la velocidad de la cuenta –la cual se va a mostrar en los LEDs de la FPGA- con los interruptores propios de la tarjeta. Tendremos 4 entradas –interruptores- y 8 salidas –LED`s-.Una vez teniendo esto y nuestro programa vamos a poder seleccionar nuestro bit de selección en el cual vamos a poder ir variando la velocidad en el corrimiento de los leds al ir seleccionando cada bit de salida podremos ir incrementando la velocidad de los leds del cual ese será nuestro objetivo en esta práctica.

2. Planteamiento del Problema

Se requiere diseñar un contador para cumplir con los objetivos:a) Conteo.b) Control de velocidad del conteo, para distintas posiciones de los interruptores, siendo

éstas “0001”, “0010”, “0100”, “1000”; siendo que, para el caso “0000” el valor de la salida se reseteé, es decir, valga “0000”.

4. Marco Teórico

Módulo PrincipalSe han diferenciado dos partes en nuestro módulo principal, la automática y la manual. Cada una de ellas asociada a uno de los modos de funcionamiento explicados en los párrafos anteriores.En nuestro Módulo Principal hemos incluido también dos multiplexores que funcionan como selectores de salida. El primer multiplexor es para las salidas de control de los motores que van directamente a la fresadora. El segundo controla las señales de salida de la interfaz de usuario. Ambos multiplexores se rigen por la entrada de selección de modo llamada Switch.

La Figura 1 nos muestra el diagrama de bloques del Módulo Principal. A continuación se explican en detalle cada una de las entradas y salidas para cada modo de funcionamiento y aquellas que son independientes de los mismos.Para el modo automático, que incluye la máquina de estados y el bloque denominado “control automático”, se dispone de las siguientes entradas y salidas:

1) Posición: en realidad es una entrada doble, de dos señales de 16 bits correspondientes a la posición del eje X (Fila) y del eje Y (Columna) en la que queramos que se posicione nuestra máquina.

2) Up/Down: dos entradas de un bit cada una. Como el Control Numérico es de dos dimensiones estas entradas controlarán la subida y bajada de la herramienta de corte instalada en el eje Z de la fresadora.Tanto el movimiento de subida como el de bajada son del mismo número de pasos de su eje, fijados por medio de una constante en un nivel inferior de la implementación que se detallará a posteriori.

3) Start: entrada de un bit que ordena el posicionamiento de la máquina. 4) Selector de contador: entrada de dos bits empleada para seleccionar el valor que deseamos que se muestre en el display de la FPGA. Hay cuatro posibles valores: el contador principal de pasos del control automático y los tres contadores correspondientes a cada uno de los ejes (X/Y/Z). De este modo se puede saber en tiempo real que ejes se encuentran en movimiento y en qué posición.

5) Ready Control Automático: salida de un bit que informa de que el control automático esta listo para recibir una orden de posicionado. Si la máquina se encuentra en movimiento estará a 0 y en caso contrario se mantendrá un 1 en esta salida.6) Display: salida para el display digital.7) Eje X/Eje Y/Eje Z: son salidas de 4 bits para dar las órdenes de movimiento a cada uno de los ejes.

FPGA’sLas FPGAs se utilizan en aplicaciones similares a los ASICs sin embargo son más lentas, tienen un mayor consumo de potencia y no pueden abarcar sistemas tan complejos como ellos. A pesar de esto, las FPGAs tienen las ventajas de ser reprogramables (lo que añade una enorme flexibilidad al flujo de diseño), sus costes de desarrollo y adquisición son mucho menores para pequeñas cantidades de dispositivos y el tiempo de desarrollo es también menor.Ciertos fabricantes cuentan con FPGAs que sólo se pueden programar una vez, por lo que sus ventajas e inconvenientes se encuentran a medio camino entre los ASICs y las FPGAs reprogramables.Históricamente las FPGA surgen como una evolución de los conceptos desarrollados en las PAL y los CPLD.Una característica muy importante de estas tarjetas es que poseen una jerarquía de interconexiones programables que le permite a los bloques lógicos de un FPGA ser interconectados según la necesidad del diseñador del sistema, algo parecido a un breadboard programable. Estos bloques lógicos e interconexiones pueden ser programados después del proceso de manufactura por el usuario/diseñador, así que el FPGA puede desempeñar cualquier función lógica necesaria.

5.- Desarrollo de la Práctica

Xilinx ISE

ISE (Integrated Software Environment) de Xilinxes un entorno informáticoc ompuesto por un conjunto de herramientas que asisten en el proceso de diseño, simulación, síntesis del resultado y configuración del hardware. Permite diseñar circuitos digitales por medio de esquemas lógicos, máquinas de estados o bien utilizando lenguajes de descripción de hardware como por ejemplo VHDL o Verilog.

6. Análisis de Resultados

Pues una vez que se ejecuto el programa posteriormente procedimos a comprobar si en verdad se hacia lo que se había hecho en la programación y lograr con el objetivo que en verdad se cumpliera para la manipulación de los leds con los switchs, esto es lo que se obtuvo

7. Conclusiones

En esta práctica pudimos apreciar la rápida implementación con ayuda del lenguaje C. Si bien es largo el proceso de realizar algunos archivos para configuración, esto se compensa para aplicaciones cuya programación sea más fácil con lenguaje de medio y/o alto nivel, como es el caso de C, pues, si bien el lenguaje VHDL es relativamente sencillo, eficaz y potente, pueden haber aplicaciones donde sea bastante largo el proceso de programación usando este lenguaje; o bien, por comodidad para la mayoría de la gente, para la cual el lenguaje C es normalmente más conocido a comparación de VHDL.

8. Referencias Bibliográficas

[1] David G. Maxinez y Jessica Alcalá. “VHDL. El arte de programar sistemas digitales”. Compañía Editorial Continental. Primera Edició. México, 2002.

[2] Apuntes de clase Sistemas Embebidos. ITP.

[3] http://gmun.unal.edu.co/~oaamados/recursos/DK_UN_Nexys2.pdf

[4] http://xa.yimg.com/kq/groups/15437658/1756456123/name/Listado+de+finalistas+Concurso+de+Proyectos+Estudiantiles+SASE+2010.pdf