Sunteți pe pagina 1din 19

DISEÑO E IMPLEMENTACIÓN DE UN SISTEMA EMBEBIDO USANDO EL

NÚCLEO DE PROCESADOR HARDWARE ARM CORTEX-A9 Y UNA FPGA

CASTRO PERTUZ ISAAC ENRIQUE


MACHADO DE LA HOZ ERICK RICARDO

UNIVERSIDAD POPULAR DEL CESAR


FACULTAD DE INGENIERÍA Y TECNOLÓGICAS
INGENIERÍA ELECTRÓNICA
VALLEDUPAR
2017
DISEÑO E IMPLEMENTACIÓN DE UN SISTEMA EMBEBIDO USANDO EL
NÚCLEO DE PROCESADOR HARDWARE ARM CORTEX-A9 Y UNA FPGA

Autores: CASTRO PERTUZ ISAAC ENRIQUE


CC: 1193042096
MACHADO DE LA HOZ ERICK RICARDO
CC: 1065612119

Director: JUAN MANUEL VILARDY ORTIZ


Asesor: LEONARDO DIAZ MARULANDA

UNIVERSIDAD POPULAR DEL CESAR


FACULTAD DE INGENIERÍA Y TECNOLÓGICAS
INGENIERÍA ELECTRÓNICA
VALLEDPAR
2017
Nota de aceptación
________________________________
________________________________
________________________________
________________________________
________________________________
________________________________
________________________________
________________________________

______________________________________________
Firma del jurado

______________________________________________
Firma del jurado

______________________________________________

FIRMA DEL DIRECTOR DEL TRABAJO DE GRADO


CONTENIDO

1. Título
2. Planteamiento Del Problema
3. Justificación
4. Objetivos
4.1. Objetivo General
4.2. Objetivos Específicos
5. Estado Del Arte
6. Marco teórico
6.1 Sistemas embebidos
6.2 FPGA (Field Programmable Gate Array)
6.3 Desarrollo de un sistema embebido
6.3.1 Requisitos de hardware
6.3.2 Requisitos de software
6.3.3 Diseño
6.4 Placa de desarrollo Digilent Zybo Zynq™-7000
6.4.1 Especificaciones FPGA
7. Metodología
7.1. Fase 1: Teoría e implementación de los sistemas embebidos
7.2. Fase 2: Estudio de la arquitectura de un procesador ARM cortex-a9
7.3. Fase 3: Implementación del núcleo de procesador hardware ARM cortex-a9
7.4. Fase 4: Implementación de periféricos
7.5. Fase 5: Implementación de las funciones para el control de las interrupciones
7.6. Fase 6: Depuración cruzada entre el hardware y el software
7.7. Fase 7: Diseño e implementación de un sistema embebido mediante una tarjeta
electrónica de desarrollo basada en FPGA
8. Alcance
9. Cronograma De Actividades
10. Presupuesto
11. Resultados Esperados
BIBLIOGRAFÍA
ANEXOS
1. TITULO

DISEÑO E IMPLEMENTACIÓN DE UN SISTEMA EMBEBIDO USANDO EL


NÚCLEO DE PROCESADOR HARDWARE ARM CORTEX-A9 Y UNA FPGA
2. PLANTEAMIENTO DEL PROBLEMA

La electrónica embebida permite el uso de nuevas herramientas en la


implementación de procesos clásicos de diseño reduciendo tiempos, costos y
espacio. Una de las Ventajas de la electrónica embebida, es que permite modificar
la arquitectura programada, pudiendo reconfigurar parte de un sistema incluso si el
diseño ya ha sido terminado, reduciendo costos en las fases de prueba e
implementación y optimizando los tiempos. Es por esto que las FPGAs pueden
cumplir un papel importante en la implementación de sistemas de procesamiento
digitales, puesto que se pueden desarrollar diferentes tipos de sistemas de
procesamiento y modificarlos aun si el sistema ya está terminado. Esto permite
dedicar más tiempo al diseño y prueba de los sistemas de procesamiento, además,
por que actualmente este tipo de dispositivos permiten la comunicación en tiempo
real con software especializado en análisis y procesamiento, permitiendo interactuar
con interfaces gráficas que admiten un análisis detallado del comportamiento de la
respuesta del sistema. Al hablar de este tipo de dispositivos, vale la pena mencionar
que son completamente digitales y manejan altas velocidades de procesamiento
logrando además ejecutar distintos procesos al mismo tiempo, lo que se conoce
como paralelismo, esto supone una ventaja cuando se trata de implementar
múltiples tareas para diferentes procesos en un solo integrado. Fabricantes como
Xilinx y Altera entre otros incluyen en sus tarjetas de desarrollo módulos de
conversión análogo-digital y digital-análogo, permitiendo la interacción con todo tipo
de sensores y actuadores, junto con módulos de comunicación UART, USB, TCP/IP
entre otros, que facilitan la interacción de las FPGA's con diferentes plataformas y
sistemas de desarrollo. Por lo tanto, la implementación de los sistemas embebidos
es muy importante para los estudiantes del programa de ingeniería electrónica, para
el diseño y desarrollo de sistemas electrónicos con un alto desempeño.

En esta propuesta se busca implementar una metodología de desarrollo de sistemas


embebidos sobre dispositivos Zynq AP SoC, dirigida a los ingenieros electrónicos
en formación, especificamente para las áreas de diseño digital, procesamiento de
la información y electivas. El objetivo primordial es que los futuros ingenieros
electrónicos puedan desarrollar de manera autónoma sistemas embebidos de alta
calidad y eficiencia.
3. JUSTIFIACION

Los sistemas embebidos forman parte activa en la solución de problemas reales, en


campos como la industria, la robótica, la medicina, las telecomunicaciones, etc.
El mundo físico se basa en variables análogas las cuales se deben convertir en
forma digital para ser procesadas y poder controlar diferentes tipos de procesos.

Es importante que el Ingeniero electrónico esté familiarizado con este tipo de


tecnología ya que le abre un campo nuevo para dar soluciones en su entorno, ya
que estos sistemas se dividen en software y hardware, siendo muy accesibles dada
su formación académica

Como ya se mencionó, los Sistemas Embebido actualmente se encuentran en


cualquier lugar al que se voltee, ayudan a la sociedad a automatizar tareas de una
manera eficiente para la optimización de recursos como materia prima, tiempo y
dinero, lo cual hoy en día es fundamental para cualquier empresa que quiera tener
un desarrollo sostenible, uno de los principales obstáculos a los que se enfrenta la
sociedad actual, lograr un desarrollo sostenible no sólo ayuda las empresas,
también a la sociedad y al medio ambiente.

El presente anteproyecto responde a las necesidades que tienen los futuros


ingenieros electrónicos de la universidad popular del cesar de estar a la vanguardia
de la tecnología empleada en el mundo actual mediante el uso de circuitos lógicos
programables (FPGA); lo que le permitirá un óptimo desarrollo de sus competencias
académicas y laborales.
4. OBJETIVOS

4.1 OBJETIVO GENERAL

Implementar y documentar paso a paso las etapas de creación, configuración,


programación y depuración de un sistema embebido basado en el núcleo de
procesador hardware ARM CORTEX-A9 y la lógica programable de una FPGA,
usando el dispositivo Zynq 7010 All-Programmable (AP) SoC y el entorno de
desarrollo integrado Vivado 2015.4 de Xilinx.

4.2 OBJETIVOS ESPECÍFICOS

1. Implementar el núcleo de procesador hardware ARM CORTEX-A9 junto con


la lógica programable de una FPGA sobre un dispositivo Zynq, mediante la
interfaz AXI (Advanced eXtensible Interface de la especificación AMBA,
Advanced Microcontroller Bus Architecture) Xilinx.
2. Crear, configurar, programar y adicionar periféricos personalizados al
sistema embebido mediante la interfaz AXI Xilinx.
3. Desarrollar las funciones para el control de las interrupciones y excepciones
establecidas por los diferentes periféricos.
4. Implementar una depuración cruzada entre el hardware (lógica programable
de la FPGA) y el software (ARM CORTEX-A9) del sistema embebido usando
las herramientas del entorno de desarrollo integrado Vivado 2015.4 de Xilinx.
5. Implementar una aplicación de prueba mediante una tarjeta electrónica de
desarrollo basada en FPGA, donde se demuestre las funcionalidades del
sistema embebido implementado.
5. ESTADO DEL ARTE

En las investigaciones realizadas, se encontraron proyectos y artículos que nos han


sido de utilidad para obtener información muy relacionada a lo que se desea lograr,
a continuación, mostraremos dichos proyectos y artículos, mostrando la relación de
manera directa y concisa con respecto a nuestro proyecto.

Diseño de un sistema de lectura y procesado para múltiples sensores


embebidos en una FPGA
 UNIVERSIDAD AUTONOMA DE MADRID ESCUELA POLITÉCNICA
SUPERIOR

Este proyecto describe un prototipo de un módulo de control para un telescopio de


electroscopia del IAC. Este nuevo sistema remplazará al anterior sistema que era
demasiado lento y manual. El sistema se encuentra dentro de un entorno de
criogenización, lo que implica trabajar en sistema con parámetros inestables. Para
generar un sistema automático se desarrollará un sistema de control realimentado
que permita posicionar las barras (que determinan la apertura de una lente)
mediante un microprocesador embebido en una FPGA. Este documento analiza los
diferentes dispositivos electrónicos y herramientas disponibles en el mercado,
describe el sistema de control prototipo implementado y el interfaz gráfico
desarrollado para mostrar el movimiento mecánico del sistema.

En el presente proyecto se ha desarrollado un prototipo de sistema de lectura y


procesado para múltiples sensores embebidos en una FPGA para el control de un
sistema de telescopio. El diseño es una colaboración con el Instituto de Astrofísica
de Canarias (IAC) para el control de un telescopio basado en la técnica de la
espectroscopia. El sistema se encuentra dentro de un entorno de criogenización, lo
que implica trabajar en sistema con parámetros inestables. Se desarrollara un
sistema realimentado que permita posicionar ciertas barras que controlan la
apertura de una lente.
Servidor Web Embebido en una FPGA con Codiseño como Metodología de
Diseño
 Universidad Sergio Arboleda, Bogotá,

Proceso de desarrollo de un servidor web embebido en un dispositivo tipo FPGA,


para aplicaciones de monitoreo y control, el sistema permite monitorear y controlar
variables conectadas al dispositivo físico desde una página web por medio de un
navegador comercial desde cualquier computador conectado a Internet. La
metodología de diseño utilizada es codiseño, la cual permite la optimización en el
uso de los recursos de hardware así como la reutilización y escalabilidad del sistema
tanto a nivel de hardware como de software
El objetivo de este proyecto es desarrollar un servidor web embebido capaz de
enviar y recibir datos de tal forma que podamos actuar sobre un sistema físico de
manera remota. El sistema propuesto consiste en una plataforma reconfigurable con
un servidor web embebido, que permita la interacción con diferentes sensores y
actuadores conectados al sistema desde cualquier navegador tradicional conectado
a Internet. Integrar todo el sistema dentro de un mismo dispositivo reprogramable
tipo FPGA, permite la flexibilidad de usar el sistema en diferentes tipos de
aplicaciones, se habilita un puerto I2C al sistema para conexión de sensores y
puertos de entrada salida digital de propósito general para actuadores.

Emulación Hardware de un robot implementado en una FPGA bajo la


filosofía de Rapid Control Prototyping (RCP)
 Escuela Técnica Superior de Ingeniería Universidad de Sevilla

Este proyecto trata numerosos aspectos relacionados con los conocimientos


adquiridos en el grado, entre otros la electrónica analógica y digital, la simulación
mediante el entorno de programación visual MATLAB® Simulink o la programación
hardware de FPGA usando el lenguaje VHDL. Además, se han utilizado recursos
completamente nuevos en cuanto a contacto previo, tales como la creación de
mundos virtuales empleando el lenguaje de programación VRML, el empleo del
hardware y software de ROBOTIS® (controladora, servos, cableado), etc. Todo esto
en conjunto ha permitido simular los tres servos de un robot manipulador virtual,
para comprobar y verificar el correcto funcionamiento de la controladora
OpenCM9.04 de ROBOTIS.
6. MARCO TEORIO

6.1 Sistemas Embebidos

 Se pueden definir como todo sistema que NO es una PC de escritorio, ni un


servidor, ni una workstation, ni una supercomputadora, ni un cluster
distribuido, en fin, NO es un sistema programable de propósito general.

 Son sistemas de hardware y software, de propósito específico embebidos


en algún producto del mercado.
 Ejemplos:
–Embebidos de la industria automotriz: navegador GPS, de la aviación: control de
aterrizaje automático.
–Embebidos de la industria de las telecomunicaciones: routers, modems
–Embebidos de la industria de las comunicaciones: teléfonos celulares, palms, e-
books
–Embebidos de la industria del hogar: control de heladeras, microondas, robots, Etc.

 Mucha variedad en las implementaciones


Si un ingeniero necesita desarrollar un producto nuevo, puede elegir entre diversas
alternativas:
– Procesadores de propósito general, adaptados para placas embebidas
– DSP (procesadores específicos para procesamiento de señales)
– Microcontroladores.
– ASIC´s
– FPGA´s

6.2 FPGA Field Programmable Gate Array


(Arreglos de Puertas Programables en el Campo)
Circuitos Integrados que contienen bloques configurables de lógica junto con
conexiones configurables entre esos bloques.
– ¿Para qué se configuran? Para realizar distintas tareas. Algunas FPGA permiten
ser programados una sola vez (OTP one time programable), o bien una y otra y otra
vez.
– ¿Dónde se programan? Los FPGA se programan “in the field”, o sea, no los
programa el fabricante, sino que lo puede programar el desarrollador “en su campo”,
o sea, en su laboratorio. Si un dispositivo puede ser programado mientras está
residente, o embebido en un sistema mayor, se dice que es ISP (In System
Programmable)
– ¿Por qué Gate Array? Es el nombre de un tipo de tecnología de fabricación de los
ASIC (Application Specific Integrated Circuit)
6.3 Desarrollo de un sistema embebido

En un sistema embebido, los componentes se encuentran incluidos en la placa


base, y muchas veces los dispositivos resultantes no tienen para nada el aspecto
de lo que se suele asociar con una computadora. Para poder desarrollar un sistema
embebido, es necesario tomar en cuenta varios factores, tanto de hardware como
de software, como:

6.3.1 Requisitos de Hardware:


 Procesador: es el encargado de ejecutar las tareas de software.
 Memorias: Debe disponerse de dos tipos de memorias:
 No volátil: donde se guardan datos constantes como la manera de arrancar
el sistema operativo. En esta memoria los datos se mantienen aun cuando el
aparato se apaga.
 Volátil: Los datos se borran cuando el aparato se apaga o deja de recibir
corriente eléctrica, este tipo de memoria es utilizada para almacenar
variables de ejecución y estructuras de datos.
 Periféricos: Dispositivos de entrada y salida como controladores de LED’s,
audio, etc.

6.32 Requisitos de Software:


 Compilador: El encargado de traducir todas las sentencias escritas en código
fuente (que entienden los humanos) a código máquina (lenguaje de las
computadoras) para que puedan ser ejecutadas.
 Sistema operativo: Normalmente los SE están unidos con un sistema
operativo de tiempo real, en el cual el tiempo es sumamente importante
(frenos ABS, máquinas que miden el pulso de personas, etc).

6.32 Diseño
Para el diseño de un Sistema Embebido se requiere de:
 Planeación: Consiste en definir la finalidad del SE, seleccionar los
componentes de hardware y de software y asignarle el tiempo en que se
ejecuta una determinada función.
 Implementación: Se ensamblan los componentes del SE y las funciones se
bajan a nivel de abstracción y se convierten en software que correrá dentro
del procesador del SE.
6.4 Placa de desarrollo Digilent ZYBO Zynq™-7000

La placa Digilent ZYBO (Placa Zynq) es un software integrado de nivel de entrada,


listo para usar y una plataforma de desarrollo de circuito digital de numerosas
características, construida en torno al miembro más pequeño de la familia Zynq-
7000 de Xilinx, el Z-7010. El Z-7010 se basa en la arquitectura de Xilinx de System-
on-Chip (SoC AP) completamente programable, que se integra firmemente a un
procesador de doble núcleo ARM Cortex-A9 con lógica de arreglos programables
de puertas en campo de la serie 7 de Xilinx. Las memorias en placa, E/S de video y
audio, USB, Ethernet y ranura SD de doble función permitirán que su diseño esté
listo sin hardware adicional necesario. El ZYBO es compatible con la nueva Suite
de diseño Vivado de alto rendimiento de Xilinx así como el conjunto de herramientas
ISE/EDK.

6.4.1 Especificaciones FPGA


 Procesador Cortex-A9 de doble núcleo de 650 Mhz
 Controlador de memoria DDR3 con 8 canales DMA
 Controladores periféricos de alto ancho de banda: 1 G Ethernet, USB 2.0,
SDIO
 Controlador periférico de bajo ancho de banda: SPI, UART, I²C
 Lógica reprogramable equivalente a FPGA Artix-7
o Celdas lógicas de 28 K
o Bloque RAM de 240 KB
o 80 porciones DSP
o Convertidor de analógico a digital (XADC) en chip de canal doble, 12
bits y 1 MSPS
7. METODOLOGÍA

Con el fin de llevar a buen término la ejecución de este proyecto es necesario al


iniciar, conocer y entender la teoría y la implementación de los sistemas embebidos
mediante dispositivos Zynq. Para cumplir con los objetivos de la presente propuesta
de proyecto de grado, nos encaminaremos a seguir las siguientes fases:

Fase 1. Estudio detallado sobre la teoría e implementación de los sistemas


embebidos usando un dispositivo Zynq: 30 días

Fase 2. Estudio detallado de la arquitectura de un procesador ARM CORTEX-A9 y


la interfaz AXI (Advanced eXtensible Interface), de la especificación AMBA
(Advanced Microcontroller Bus Architecture): 20 días

Fase 3. Implementación del núcleo de procesador hardware ARM CORTEX-A9


junto con la lógica programable de una FPGA sobre un dispositivo Zynq, mediante
la interfaz AXI Xilinx y el uso del entorno de desarrollo integrado Vivado 2015.4 de
Xilinx: 20 días

Fase 4. Implementación de periféricos personalizados para el sistema embebido


mediante la interfaz AXI Xilinx: 30 días.

Fase 5. Implementación de las funciones para el control de las interrupciones y


excepciones establecidas por los diferentes periféricos: 10 días

Fase 6. Depuración cruzada entre el hardware y el software del sistema embebido:


10 días.

Fase 7. Diseño e Implementación de un sistema embebido mediante una tarjeta


electrónica de desarrollo basada en FPGA para este proyecto se trata de la tarjeta
(ZYBO Zynq™-7000):20 días.

.
8. ALCANCE

El Proyecto trata de establecer las bases de como de debe implementar un sistema


embebido usando un dispositivo Zynq, dejar un estudio detallado de la arquitectura
de un procesador ARM CORTEX-A9 y la interfaz AXI, Así como una guía de la
implementación de un núcleo de procesador hardware ARM CORTEX-A9 junto con
la lógica programable de una FPGA sobre un dispositivo Zynq, mediante la interfaz
AXI Xilinx y el uso del entorno de desarrollo integrado Vivado 2015.4 de Xilinx; con
la finalidad de que este estudio sea accesible para cualquier estudiante de
ingeniería electrónica de la universidad popular del cesar .

Con este proyecto se pretende complementar y fortalecer los estudios relacionados


con el área de digitales 1 y 2 dentro del programa de ingeniería electrónica de la
universidad popular del cesar. Esto a través de una guía detallada del proceso pasó
a paso del diseño y la implementación de cualquier sistema embebido utilizando un
dispositivo Zynq.

Una vez implementado el sistema embebido con el núcleo de procesador hardware


ARM CORTEX-A9 junto con la lógica programable de una FPGA sobre un
dispositivo Zynq. El proceso será documentado de manera detallada y precisa con
el objetivo de que este podrá ser replicado de manera sencilla, eficiente y correcta
por cualquier estudiante de ingeniería electrónica que se encuentre en el área de
digitales.
9. CRONOGRAMA DE ACTIVIDADES

Agosto septiembre Octubre Noviembre Diciembre


Dias 30 10 20 30 10 20 30 10 20 30 10 20 30
Fase 1 Fase 1
Fase 2 Fase 2
Fase 3 Fase 3
Fase 4 Fase 4
Fase 5 Fase 5
Fase 6 Fase 6
Fase 7 Fase 7
10. PRESUPUESTO

ITEM VALOR
1 Equipos software y servicios técnicos $ 300.000
2 Transporte y salidas de campo $ 100.000
3 Materiales y suministros $ 150.000
4 Material Bibliográfico y fotocopias $ 90.000
5 Varios e imprevistos $ 50.000
6 Valor total $ 690.000

11. RESULTADOS ESPERADOS

Al terminar este proyecto de habrá diseñado e implementado un sistema embebido


usando el núcleo de procesador hardware ARM cortex-a9 y una FPGA, se habrá
documentado los pasos necesario de manera detallada para llegar a finalizar este
proyecto, se redactara un documento que servirá de guía para que los estudiantes
de ingeniería electrónica puedan tomarlo como referencia y complemento para su
formación en el área de digitales y del manejo adecuado de una FPGA.
BIBLIOGRAFÍA

1. “1076 IEEE Standard VHDL Language Reference Manual, IEEE Computer Society,
(2002).
2. Salas Arriarán, Sergio” Todo sobre sistemas embebidos” Universidad Peruana de
Ciencias Aplicadas (UPC) (2015)
3. Cassials, Ricardo “SISTEMAS EMBEBIDOS FPGA” Editorial: MARCOMBO, S.A.
4. José González Valdés, José A. Vera Repullo y Manuel Jiménez Buendía “FPGAs.
Circuitos de lógica programable”( 1995)
5. Steve Kilts “Advanced FPGA design”(2006)
ANEXOS

Anexo 1.

APROBACIÓN DEL DIRECTOR

Por la presente hago constar que he leído el anteproyecto del Trabajo de Grado
denominado DISEÑO E IMPLEMENTACIÓN DE UN SISTEMA EMBEBIDO USANDO EL
NÚCLEO DE PROCESADOR HARDWARE ARM CORTEX-A9 Y UNA FPGA, presentado
por los estudiantes ERICK RICARDO MACHADO DE LA HOZ Y ISAAC ENRIQUE
CASTRO PERTUZ, para optar al Título de INGENIERO ELECTRÓNICO, y que acepto
asesorar a los estudiantes, en calidad de director, durante la etapa del desarrollo del trabajo
hasta su presentación y evaluación. Igualmente me comprometo a asistir a las citaciones
que el comité de proyectos considere necesarias para el seguimiento del proceso de
elaboración de este proyecto.

________________________________
Ph.D. Juan Manuel Vilardy Ortiz
C.C. No 77094873 de Valledupar (Cesar)
Programa de Ingeniería Electrónica
Universidad Popular del Cesar
Valledupar, agosto 21 de 2017

S-ar putea să vă placă și