14
UNIVERSIDAD MILITAR NUEVA GRANADA Microcontrolador embebido en FPGA El uso no autorizado de su contenido así como reproducción total o parcial por cualquier persona o entidad, estará en contra de los derechos de autor Pagina 1 de 14 Guías de Prácticas de Laboratorio Codificación: (1) INGMCT-G-001 Número de Páginas: 14 Revisión No.: 0 Fecha Emisión: ENERO 15 de 2012 Laboratorio de: MECATRONICA Edif. F Piso 3 Titulo de la Práctica de Laboratorio: Microcontrolador embebido en FPGA Elaborado por: (7) Ing. Robinson Jiménez Moreno Revisado por: (8) Ing.: Horacio Bernal Aprobado por: (9)

1.Microcontrolador Embebido en FPGA

Embed Size (px)

Citation preview

Page 1: 1.Microcontrolador Embebido en FPGA

UNIVERSIDAD MILITAR NUEVA GRANADA

Microcontrolador embebido en FPGA

El uso no autorizado de su contenido así como reproducción total o parcial por cualquier persona o entidad, estará en contra de los derechos de autor

Pagina 1 de 14

Guías de Prácticas de Laboratorio

Codificación: (1)

INGMCT-G-001

Número de Páginas:

14

Revisión No.: 0

Fecha Emisión: ENERO 15 de 2012

Laboratorio de: MECATRONICA Edif. F Piso 3

Titulo de la Práctica de Laboratorio: Microcontrolador embebido en FPGA

Elaborado por: (7)

Ing. Robinson Jiménez Moreno

Revisado por: (8)

Ing.: Horacio Bernal

Aprobado por: (9)

Page 2: 1.Microcontrolador Embebido en FPGA

UNIVERSIDAD MILITAR NUEVA GRANADA

Microcontrolador embebido en FPGA

El uso no autorizado de su contenido así como reproducción total o parcial por cualquier persona o entidad, estará en contra de los derechos de autor

Pagina 2 de 14

1. FACULTAD O UNIDAD ACADÉMICA: INGENIERIA 2. PROGRAMA: INGENIERIA MECATRONICA 3. ASIGNATURA: MICROS y LABORATORIO 4. SEMESTRE: V 5. OBJETIVOS: Desarrollar habilidades en el diseño y programación de un

sistema microcontrolado mediante lenguaje de máquina y embebido de FPGA. 6. COMPETENCIAS A DESARROLLAR: Interpretar la estructura de un

microprocesador su operación interna y ejecución de instrucciones así como analizar su operación lógico secuencial a manera de máquina de estados.

7. MARCO TEORICO: Uno de los dispositivos más ampliamente utilizados en los

dispositivos electrónicos modernos es el microprocesador, el cual es el cerebro de los sistemas digitales, su operación se centra en un diseño bajo arquitectura Harvard la cual consta de dos memorias independientes una de datos y otra de programa; en la memoria de programa encontramos que al bus de direcciones esta anidado un contador de carga paralelo denominado contador de programa o PC, el cual con cada pulso de reloj incrementa la dirección actual de la memoria en cuyo campo de datos se encuentra el código de operación, opcode o instrucción a ejecutar, el cual se encarga de ejecutar procesos mediante el resto de harware que lo compone como lo es trasferencia de información o carga (load) entre el registro acumulador (ax) y una posición de memoria de datos u otro registro, así como saltos en la memoria de programa sean estos del tipo condicional o no (jmp, jz, jnz, etc.).

La frecuencia con la que se dan los incrementos del contador de programa establecen la velocidad de operación del microprocesador, la cual se suele medir en millones de instrucciones por segundo o MIPS, evidentemente mientras más de estas instrucciones pueda ejecutar mayor complejidad de tareas realizara y así mismo más requerimientos de hardware tendrá; una solución optima de implantación es mediante un arreglo de compuertas programable o FPGA, las cuales se pueden configurar mediante código de programa a través del lenguaje VHDL.

Page 3: 1.Microcontrolador Embebido en FPGA

UNIVERSIDAD MILITAR NUEVA GRANADA

Microcontrolador embebido en FPGA

El uso no autorizado de su contenido así como reproducción total o parcial por cualquier persona o entidad, estará en contra de los derechos de autor

Pagina 3 de 14

Un esquema en diagrama de flujo que representa la operación de un sistema microprocesado mediante una máquina de estados es el siguiente:

Donde se puede ver que las instrucciones a trabajar son: Carga de la posición xx al registro ax o Ldaxx. Carga del registro ax a la posición xx o Ldxxa. Operaciones lógicas como la and entre ax y la posición xx o And a,xx Operaciones aritméticas como la suma entre ax y la posición xx o Add a,xx y la resta Sub a,xx. Salto condicional si ax igual a cero o Jz xx, es decir salta a la dirección xx si el registro queda en cero y instrucción de salto incondicional Jmp xx, la cual directamente salta a la dirección de memoria xx. PICOBLAZE: El microcontrolador Picoblaze es un SoftCore de 8 bits, Es decir un microprocesador diseñado para ser implementado en dispositivos FPGAs como Spartan™-3. Este microprocesador ha mantenido una evolución de arquitecturas (KCPSM, KCPSM2 y KCPSM3), cada una perfeccionada para cierta tecnología de FPGAs. La distribución de pines se puede ver en la figura 1.

Page 4: 1.Microcontrolador Embebido en FPGA

UNIVERSIDAD MILITAR NUEVA GRANADA

Microcontrolador embebido en FPGA

El uso no autorizado de su contenido así como reproducción total o parcial por cualquier persona o entidad, estará en contra de los derechos de autor

Pagina 4 de 14

Para programar el microcontrolador, se cuenta con dos conjuntos de instrucciones (KCPSM3 y pBlazIDE). 1) Instrucciones de salto de programa:

-JUMP aa -JUMP Z,aa -JUMP NZ,aa -JUMP C,aa -JUMP NC,aa -CALL aa -CALL Z,aa -CALL NZ,aa -CALL C,aa -CALL NC,aa –RETURN -RETURN Z RETURN NZ -RETURN C -RETURN NC.

2) Instrucciones Lógicas -LOAD sX,kk -AND sX,kk -OR sX,kk -XOR sX,kk -LOAD sX,sY -AND sX,sY -OR sX,sY -XOR sX,sY.

3) Instrucciones aritméticas -ADD sX,kk -ADDCY sX,kk -SUB sX,kk -SUBCY sX,kk -ADD sX,sY -ADDCY sX,sY -SUB sX,sY -SUBCY sX,sY.

4) Instrucciones de Desplazamiento -SR0 sX -SR1 sX -SRX sX -SRA sX -RR sX -SL0 sX -SL1 sX -SLX sX -SLA sX -RL sX.

5) Instrucciones de Entrada/Salida -INPUT sX,pp -INPUT sX,(sY) -OUTPUT sX,pp -OUTPUT sX,(sY).

8. MATERIALES, REACTIVOS, INSTRUMENTOS, SOFTWARE, HARDWARE O EQUIPOS: SPARTAN 3E, ADAPTADOR, COMPUTADOR, XILINS ISE DESING, ENSAMBLADOR PICOBLAZE.

Page 5: 1.Microcontrolador Embebido en FPGA

UNIVERSIDAD MILITAR NUEVA GRANADA

Microcontrolador embebido en FPGA

El uso no autorizado de su contenido así como reproducción total o parcial por cualquier persona o entidad, estará en contra de los derechos de autor

Pagina 5 de 14

9. PRECAUCIONES CON LOS MATERIALES, REACTIVOS, INSTRUMENTOS Y EQUIPOS UTILIZAR: Verificar los niveles de voltaje y corriente que toleran los dispositivos a utilizar, correcta polarización y conexión según diagrama de pines, así como la potencia que consumen para evitar daños en los mismos, las tarjetas Spartan no vienen diseñadas para entregar potencia asi que se debe tener cuidado con la exigencia de corriente a la misma y asegurarse de no generar cortos, los pines Vcc y Gnd de la tarjeta no se deben conectar a ninguna fuente externa .

10. CAMPO DE APLICACIÓN: Se refleja en el entorno práctico de diseño de

circuitos de procesamiento de datos, calculo de operaciones, sistemas digitales, controladores digitales, etc…

11. PROCEDIMIENTO, METODO O ACTIVIDADES: Embeber un microcontrolador

PicoBlaze en un tarjeta SPARTAN 3E , cuyo código de operación en asembler genere una cuenta de dos dígitos, en incremento o decremento (switch 1), sea automática o manual (switch 2), visualizada en dos displays 7 segmentos, conectados a las salida de la Spartan 3E. Para embeber el microcontrolador seguir los pasos del punto 14.

12. RESULTADOS ESPERADOS: Obtener un dispositivo programado que permita

simular la operación de un sistema microcontrolado para la ejecución de instrucciones carga de datos, lógico – aritméticas y de salto de memoria, en lenguaje de máquina, emulando un contador ascendente/descendente ede dos dígitos (00-99).

Page 6: 1.Microcontrolador Embebido en FPGA

UNIVERSIDAD MILITAR NUEVA GRANADA

Microcontrolador embebido en FPGA

El uso no autorizado de su contenido así como reproducción total o parcial por cualquier persona o entidad, estará en contra de los derechos de autor

Pagina 6 de 14

13. CRITERO DE EVALUACIÓN A LA PRESENTE PRÁCTICA: Los criterios para

la calificación se centran en la elaboración y sustentación del programa implementado en la tarjeta SPARTAN 3E, su respectivo funcionamiento práctico y uso de elementos auxiliares (mejoramiento de las especificaciones dadas, uso de elementos de laboratorio), se debe presentar informe según norma IEEE, simulación y programa documentado.

14. TUTORIAL PICOBLAZE

Picoblaze

PicoBlaze es la conformación de una serie de tres núcleos de procesador, de versión libre

de la compañía Xilinx, para su uso en productos FPGA y CPLD. Se basan en una

arquitectura RISC de 8 bits y puede alcanzar velocidades de hasta 100 MIPS en la familia

Virtex 4 FPGA. Estos microprocesadores cuentan con un puerto de 8-bits de datos para el

acceso a una amplia gama de periféricos. La licencia de los núcleos permite su uso gratuito,

aunque sólo en dispositivos de Xilinx, y vienen con las herramientas de desarrollo.

Herramientas de terceros están disponibles en Mediatronix y otros. El diseño original fue

nombrado PicoBlaze KCPSM que significa "Constant(K) Coded Programmable State

Machine" (formerly "Ken Chapman's PSM). Ken Chapman fue el diseñador de sistemas de

Xilinx que diseñó e implementó el microcontrolador.

En otras palabras picoblaze es un procesador embebido que sirve para desarrollar software,

el cual a partir de su compilación crea un código en lenguaje ensamblador, para ser

descargado mediante la interfaz de VHDL del ISE de XILINX.

El picoblaze también es un recurso de VHDL que se puede ver reflejado en una FPGA. El

KCPSM3 fue acoplado en las tarjetas con el fin de reducir espacios físicos. Una de las

grandes ventajas del KCPSM es lograr la utilización de varios núcleos de la FPGA.

Ken Chapman el diseñador de los sistemas de Xilinx , desarrollo lo siguiente:

Diseño de un reloj que mide el tiempo en horas, minutos y segundos junto la

posibilidad de programar una alarma. El diseño contiene un módulo UART para

establecer comunicación serial y se utiliza para observar y/o programar el tiempo y

la alarma a través de comandos simples y mensajes; para ello se utiliza el

HyperTerminal de Windows. El diseño también puede ser conectado como una

UART enlazada a un periférico de un procesador MicroBlaze o PowerPC. La señal

de alarma puede ser usada para disparar una interrupción en el procesador principal.

Diseño de una aplicación que proporciona una introducción general a los puertos de

entrada analógicos, resalta las funciones básicas del convertidor analógico-

digitalLTC1407A-1 y del amplificador programable LTC6912-1. El Picoblaze es

Page 7: 1.Microcontrolador Embebido en FPGA

UNIVERSIDAD MILITAR NUEVA GRANADA

Microcontrolador embebido en FPGA

El uso no autorizado de su contenido así como reproducción total o parcial por cualquier persona o entidad, estará en contra de los derechos de autor

Pagina 7 de 14

utilizado para controlar los dispositivos mencionados y presentar los resultados en

el displayLCD.

Proyecto para implementar las funciones básicas del convertidor digital-analógico

LTC2624. El dispositivo es controlado por el Picoblaze para proveer una

introducción general a los convertidores analógico-digital.

Implementación de un contador de frecuencia, capaz de medir frecuencias de

hasta200MHz. Puede ser utilizado para realizar pruebas de equipos o simplemente

como práctica introductoria a los osciladores que dispone la tarjeta, los resultados

son mostrados en el display LCD.

Diseño de un módulos para mostrar un mensaje rotatorio a través del display LCD y

permite controlar los LEDs utilizando switches y push buttons. Todo ello controlado

por el Picoblaze .

Implementación por software de la modulación de ancho de pulso utilizando el

procesador KCPSM3, permite manejar 12 canales, 8 canales controlan la intensidad

de los leds, los 4 canales restantes pueden ser enviados al conector J4 para ser

observadas a través del osciloscopio. El PWM implementado tiene una resolución

de 8 bits y el ciclo de trabajo puede determinado a través del HyperTerminal.

¿Cómo embeber PICOBLAZE en la FPGA Spartan3E ?

En el siguiente tutorial se va a enseñar como embeber la spartan 3e de xilinx, para ello

se necesita unos programas especiales para lograr el objetivo y conocimientos de

programación vhdl. (para este tutorial se utilizara un computador de 64 bits para 32 se

omite el Dosbox y se utiliza el módulo del command del DOS)

Programas empleados (links de descarga a lo último del documento)

Page 8: 1.Microcontrolador Embebido en FPGA

UNIVERSIDAD MILITAR NUEVA GRANADA

Microcontrolador embebido en FPGA

El uso no autorizado de su contenido así como reproducción total o parcial por cualquier persona o entidad, estará en contra de los derechos de autor

Pagina 8 de 14

Xilinx ise design 13.4 o versiones recientes.

Dosbox (si el computador es 64 bits).

KCPSM3

Notepad2.exe o similar (si el computador es 64 bits)

PRIMER PASO:

Ya con todos los programas descargados (la gran mayoría directamente desde la

página oficial de xilinx ), procedemos a crear una carpeta nueva y guardarla

preferiblemente en el disco local c (en este caso escogimos el nombre de la carpeta

“GAV-PICOPRUEBA) y dentro de la carpeta se descomprime el s3esk_startup.zip

(previamente descargado de la pagina de xilinx) este contiene varios archivos que

serán de utilidad, en especial el archivo control.psm que es simplemente el control

de leds, display, switches y botones de la spartan en lenguaje assembler, por lo cual

lo necesitamos editar para usarlo en otras aplicaciones.

SEGUNDO PASO:

Creamos el archivo en ensamblador en notepad2 (64 bits) con la extensión .psm,

pero como ya tenemos como guía el archivo control.psm solo editaremos algunas

partes del código . (se recomienda ver un tutorial de assembler para la edición de de

este archivo)

Abrimos el archivo en un archivo de Notepad2 o un bloc de notas si el computador

es de 32 bits. En este tutorial haremos el ejemplo de un contador de 0 a 9.

Page 9: 1.Microcontrolador Embebido en FPGA

UNIVERSIDAD MILITAR NUEVA GRANADA

Microcontrolador embebido en FPGA

El uso no autorizado de su contenido así como reproducción total o parcial por cualquier persona o entidad, estará en contra de los derechos de autor

Pagina 9 de 14

Para hacer este contador nos ubicamos en la siguiente línea del código redondeada

en rojo:

Dentro de normal_mode se hace la lectura de switches y botones y directamente los

comunica con los leds, pero en este caso los 8 puertos de leds se cambiaran a los 8

puertos de I/O de la spartan, para que se vea en un display de 7 segmentos; pero la

declaración de pines no se realiza aún, por lo tanto, se mantendrá como salida hacia

los leds.

Antes que nada la “constante” s0, en realidad es un espacio en la memoria, es decir,

un registro interno del Picoblaze.

En esta parte del programa el registro s0 mantendrá los valores que a su vez se

escriben en los leds (puertos I/O), para ello se programara de la siguiente forma:

Page 10: 1.Microcontrolador Embebido en FPGA

UNIVERSIDAD MILITAR NUEVA GRANADA

Microcontrolador embebido en FPGA

El uso no autorizado de su contenido así como reproducción total o parcial por cualquier persona o entidad, estará en contra de los derechos de autor

Pagina 10 de 14

Como se puede ver el código básicamente tiene la siguiente estructura:

LOAD s0, 67

Page 11: 1.Microcontrolador Embebido en FPGA

UNIVERSIDAD MILITAR NUEVA GRANADA

Microcontrolador embebido en FPGA

El uso no autorizado de su contenido así como reproducción total o parcial por cualquier persona o entidad, estará en contra de los derechos de autor

Pagina 11 de 14

en este caso el 67 es un numero hexadecimal, que representa un formato de

visualización para un dislpay de 7 segmentos.

Cada bit del byte escrito a los LED representa un segmento del LED. Así que

necesitan saber cómo los bits se asignan a los segmentos para ver lo que realmente

aparece en los LED.

TERCER PASO:

Ya con la carpeta creada y el programa en assembler hecho nos disponemos a abrir

el programa DOSBOX (previamente instalado).Dosbox lo utilizamos para los

computadores de 64 bits, si el computador es de 32 bits solamente con símbolo del

sistema seria sufciente. Para acceder al símbolo del sistema vamos a Incio—

buscamos ---cmd.

DOSBOX es un emulador que nos recrea un entorno al sistema DOS y nos permite

correr programas en sistemas operativos diferentes. (Se recomienda leer un manual

para los comandos de dosbox).

Con DOSBOX abierto escribimos mount c c:\ GAV-PICOPRUEBA. Tengan en

cuenta que dosbox maneja el teclado americano

Depues de digitar los comandos debe aparecer una frase “drive z is mounted as

local directory c:\nombre-de-lacarpeta\”

Page 12: 1.Microcontrolador Embebido en FPGA

UNIVERSIDAD MILITAR NUEVA GRANADA

Microcontrolador embebido en FPGA

El uso no autorizado de su contenido así como reproducción total o parcial por cualquier persona o entidad, estará en contra de los derechos de autor

Pagina 12 de 14

El siguiente comando es C: (para acceder al disco local C) pulsamos “enter” y

escribimos kcspm3 control.psm (se está ejecutando el kcpsm3 desde dosbox para

que traduzca el código .psm a un .vhd (vhdl) pulsamos “enter” otra vez y se vera

como desde el dosbox se empieza a traducir el .psm, esto puede tardar varios

segundos, esperamos a que aparezca kcspm3 complete

Ahora vamos a la carpeta que creamos en el disco local c y vemos que creo varios

archivos

Page 13: 1.Microcontrolador Embebido en FPGA

UNIVERSIDAD MILITAR NUEVA GRANADA

Microcontrolador embebido en FPGA

El uso no autorizado de su contenido así como reproducción total o parcial por cualquier persona o entidad, estará en contra de los derechos de autor

Pagina 13 de 14

De todos los archivos nuevos que se crearon nos centraremos el CONTROL.VHD

que es la traduccion del control.psm.

Abrimos un nuevo proyecto en la interfaz de XILINX ISE DESIGN y ubicamos los

cuatro archivos:

1. s3esk_startup.vhd

2. kcpsm3.vhd

3. control.psm (el que fue editado)

4. s3esk_startup.ucf (.ucf archivo de declaración de pines)

se aconseja tener estos archivos en la carpeta.

Para finalizar cambiamos los puertos de leds por los I/O. dentro de la interfaz de xilinx

ingresamos al s3esk_startup.ucf y copiamos los pines de la siguiente manera:

Page 14: 1.Microcontrolador Embebido en FPGA

UNIVERSIDAD MILITAR NUEVA GRANADA

Microcontrolador embebido en FPGA

El uso no autorizado de su contenido así como reproducción total o parcial por cualquier persona o entidad, estará en contra de los derechos de autor

Pagina 14 de 14

Conectamos la spartan y mediante la opción TargetDevice tendremos la picoblaze

embebida. .

Links de descarga:

KCPSM3.vhd: http://www.xilinx.com/products/intellectual-property/picoblaze.htm

Ejemplo: http://www.xilinx.com/products/boards/s3estarter/reference_designs.htm

DOSbox: http://www.dosbox.com/download.php?main=1