Alternativas de implementación de comunicaciones TCP/IP/ETHERNET en SoPCs

Ortíz Cuadrado, Alberto (2016). Alternativas de implementación de comunicaciones TCP/IP/ETHERNET en SoPCs. Proyecto Fin de Carrera / Trabajo Fin de Grado, E.T.S.I. Industriales (UPM).

Descripción

Título: Alternativas de implementación de comunicaciones TCP/IP/ETHERNET en SoPCs
Autor/es:
  • Ortíz Cuadrado, Alberto
Director/es:
  • Torre Arnanz, Eduardo De La
  • Rodriguez Medina, Alfonso
Tipo de Documento: Proyecto Fin de Carrera/Grado
Grado: Grado en Ingeniería en Tecnologías Industriales
Fecha: Julio 2016
Materias:
Escuela: E.T.S.I. Industriales (UPM)
Departamento: Automática, Ingeniería Eléctrica y Electrónica e Informática Industrial
Licencias Creative Commons: Reconocimiento - Sin obra derivada - No comercial

Texto completo

[img]
Vista Previa
PDF (Document Portable Format) - Se necesita un visor de ficheros PDF, como GSview, Xpdf o Adobe Acrobat Reader
Descargar (5MB) | Vista Previa

Resumen

La elaboración del presente Trabajo Fin de Grado busca acercar el mundo de las comunicaciones e Internet al mundo de la lógica reprogramable, estructurando y estableciendo procedimientos detallados para diseñar sistemas de comunicaciones Ethernet con TCP/IP en diferentes sistemas implementados en FPGAs. Éste es un mundo que ha experimentado uno de los mayores crecimientos en los últimos 30 años. La principal meta que se pretende alcanzar en este TFG consiste en la comprobación de la portabilidad de aplicaciones de comunicación entre distintos dispositivos denominados SoPCs, basados todos en FPGAs. Este trabajo, desarrollado en el Centro de Electrónica Industiral (CEI) de la ETSII de la UPM forma parte del proyecto REBECCA, del Plan Estatal de I+D+i, que tiene como objetivo ofrecer soluciones a los problemas que subyacen en los sistemas que soportan los servicios basados en sensorización multimedia (por imagen) para seguridad urbana dentro de grandes espacios públicos y ante la celebración de acontecimientos, todo ello dentro del campo de las Ciudades Inteligentes. Este proyecto es financiado por el Ministerio de Economía y Competitividad y se desarrolla junto a otros grupos de investigación pertenecientes a distintas universidades: UCLM, ULPGC y UC. El proyecto que se presenta a continuación se ha estructurado en cuatro fases completamente definidas y diferenciables. La primera de ellas consiste en el proceso de aprendizaje y ampliación de los conocimientos adquiridos en el grado, enfocándose en un marco teórico vinculado al tema del mismo TFG. La segunda y tercera fases han consistido en el desarrollo de una serie de arquitecturas Hardware y de un conjunto de aplicaciones Software creadas con el objeto de verificar la compatibilidad del SW para los dos tipos de dispositivos a evaluar: FPGAs con Hard Processor y FPGAs con Soft Processor, y con presencia de un sistema operativo o con la aplicación en modo standalone, también conocido como ‘bare metal’. La última fase ha consistido en la implementación, toma de resultados y valoración del trabajo realizado. El centro de este trabajo gira en torno a la creación de un canal de comunicación con cada uno de los dispositivos usados. Para establecer la conexión y para el transporte de datos se hará uso de la pila de protocolos TCP/IP, lo que permite una comunicación con conexión, facilitando así una comunicación segura en la que TCP comprueba que los paquetes enviados han llegado correctamente a su destino, reenviándolos en caso contrario. Así mismo, el documento de este TFG se estructura como un tutorial para que futuros alumnos puedan partir del sistema creado en la realización de este trabajo y desarrollar nuevas y más complicadas aplicaciones, acelerándose la etapa inicial. El desarrollo de las aplicaciones realizadas por los alumnos podrá ser por el lado de la aplicación del servidor (el sistema con FPGA) o de programas cliente que se puedan ejecutar en un PC o en otro sistema con FPGA, por lo que se realizará el desarrollo de ambos (cliente y servidor) dentro de este trabajo. Para la realización de la conexión con los dispositivos se ha hace uso de unas interfaces de funciones (APIs) proporcionadas por la implementación de una pila de protocolos TCP/IP denominada lwIP, específica para sistemas embebidos, permitiendo el desarrollo de aplicaciones sobre bare-metal (mediante una RAW API) o sobre un sistema operativo (mediante una SOCKETS API). Se ha propuesto llevar a cabo un desarrollo de las aplicaciones sobre ambas opciones dado que las ventajas e inconvenientes de cada una dependen del sistema en el que se incorporará la aplicación desarrollada, por lo que resulta interesante cubrir todos los campos posibles. Las APIs mencionadas en el párrafo anterior se usarán para la programación de programas servidores en los dispositivos a evaluar. Dado que se busca realizar una prueba de compatibilidad entre los programas y los dispositivos, primero se prepararán ambos para la programación de su correspondiente microprocesador. Para ello se comenzará por el desarrollo Hardware en las placas a usar, que serán la KC705, que incorpora la FPGA Kintex-7, y la MicroZed, que incorpora el dispositivo ZYNQ-7000, que combina una FPGA con un procesador ARM de doble núcleo (Hard Processor). En el desarrollo Hardware se tendrá que hacer una clara distinción entre ambos dispositivos. En el caso de Hard Processor, se encuentran ya implementados en el mismo dispositivo el microprocesador y la capa MAC, por lo que no será necesario realizar un desarrollo Hardware del mismo. Para el caso de Soft Processor será necesario implementar en la lógica programable un microprocesador, que en este caso será un MicroBlaze, que posee una arquitectura de 32-bits diseñado por Xilinx para desarrollo con sus FPGAs. Una vez llevado a cabo el desarrollo Hardware se pasa al desarrollo Software.Se comenzará por la programación de los programas servidores haciendo uso de RAW API, es decir, se desarrollará primeramente sin contar con un sistema operativo. Se partirá de un programa de ejemplo de servidor echo proporcionado por el SDK (herramienta de Xilinx para desarrollo Software en SoCs) y se modificará para que el echo realizado no devuelva la cadena de caracteres recibida, sino que, a modo de ejemplo sencillo, devolverá la tabla de multiplicar del número recibido por el servidor en la comunicación. Tras la realización del programa con RAW API se realizará una prueba de validación del programa mediante el uso de un cliente Telnet, una herramienta que permite la simulación de conexiones remotas haciendo uso de TCP/IP. Se concluirá que el programa es completamente portable entre los dos tipos de dispositivos, al probar el mismo código en ambas implementaciones y obteniendo los mismos resultados. Alternativas de implementación de comunicaciones en SoPCs basados en FPGAs Una vez validado el programa con RAW API cabrá esperar que el resultado sea el mismo con SOCKETS API. Para ello se realiza la programación de la aplicación servidor sobre el sistema operativo FreeRTOS, un sistema operativo de tiempo real open source. En este caso la programación se centrará en una biblioteca de sockets embebida en el sistema operativo y mediante la cual se llevará a cabo la misma funcionalidad que en el caso de programar sobre bare-metal. Con esta segunda implementación y mediante la evaluación funcional de la misma, se podrá comprobar, haciendo uso de Telnet, que el programa es completamente portable y que la distinción a la hora de programar, por el momento, sólo habrá que realizarla a nivel de Hardware. Comprobada la portabilidad de los programas servidores entre los distintos dispositivos, se procederá a la programación de un cliente para sustituir a la herramienta Telnet y permitir futuros desarrollos mejorados del mismo. La programación del cliente se llevará a cabo mediante la apertura de sockets y se desarrollará sobre Windows en un PC usando lenguaje C y, Visual Studio y BSD Sockets. Además, una vez programado el cliente, se extenderá la funcionalidad de los servidores programados en los dispositivos para el manejo de E/S mapeadas en memoria, la lectura de registros dedicados, tales como contadores o timers del microprocesador y la lectura y escritura de cualquier registro mapeado en memoria. Las pruebas de validación y de compatibilidad de las nuevas funcionalidades se llevarán a cabo haciendo uso del cliente programado, sirviendo así de ejemplo de uso para alumnos que sigan el tutorial. Por último, se realiza la redacción del propio tutorial pudiéndose seguir para ambos dispositivos y para la programación de los servidores sobre bare metal y sobre FreeRTOS. Se cuenta también con una guía de programación del cliente y con los códigos fuente desarrollados durante la realización del trabajo. Con el análisis de la portabilidad del código y la descripción de los métodos de diseño de las diferentes arquitecturas soportadas, validadas experimentalmente, se cubren los objetivos principales de este Trabajo. Finalmente, es de reseñar que la realización del presente trabajo no conlleva ningún tipo de impacto negativo legal y profesional, debido al uso y seguimiento de todas las licencias y reglamentaciones legales recogidas en el Código Deontológico del Colegio Oficial de Ingenieros Industriales, así como tampoco a nivel ético o social, ya que uno de los objetivos de este trabajo, como parte de REBECCA, es la propia seguridad ciudadana.

Más información

ID de Registro: 43454
Identificador DC: http://oa.upm.es/43454/
Identificador OAI: oai:oa.upm.es:43454
Depositado por: Biblioteca ETSI Industriales
Depositado el: 11 Oct 2016 07:24
Ultima Modificación: 11 Oct 2016 07:24
  • Open Access
  • Open Access
  • Sherpa-Romeo
    Compruebe si la revista anglosajona en la que ha publicado un artículo permite también su publicación en abierto.
  • Dulcinea
    Compruebe si la revista española en la que ha publicado un artículo permite también su publicación en abierto.
  • Recolecta
  • e-ciencia
  • Observatorio I+D+i UPM
  • OpenCourseWare UPM