首页> 外文OA文献 >Alternativas de implementación de comunicaciones TCP/IP/ETHERNET en SoPCs
【2h】

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

机译:在SoPC中实现TCP / IP / ETHERNET通信的替代方法

摘要

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. udEste 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. udEl 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. udEl 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. udAsí 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. udPara 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. udLas 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). udEn 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. udUna 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. udTras 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 udududUna 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. udCon 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. udComprobada 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. udAdemá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. udLas 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. udPor ú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. udCon 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. udFinalmente, 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.
机译:最终学位项目的准备工作旨在使通信和互联网世界更接近可重编程逻辑的世界,构建并建立详细的过程,以在FPGA中实现的不同系统中设计具有TCP / IP的以太网通信系统。这是过去30年来最大的增长之一。该TFG中要实现的主要目标是检查所有基于FPGA的不同设备(称为SoPC)之间的通信应用程序的可移植性。这项工作是由芬欧汇川ETSII工业电子中心(CEI)开发的,是R + D + i国家计划的REBECCA项目的一部分,该项目旨在为系统潜在的问题提供解决方案支持基于多媒体传感(按图像)的服务,以在大型公共空间内以及面对事件时在智慧城市领域中实现城市安全。该项目由经济和竞争力部资助,并与其他不同大学的研究小组共同开发:UCLM,ULPGC和UC。 ud下面介绍的项目分为四个完全定义且可区分的阶段。其中第一个包括学习过程和对学位获得的知识的扩展,重点是与TFG本身的主题相关的理论框架。第二阶段和第三阶段包括开发一系列硬件架构和一组软件应用程序,以验证两种待评估设备的软件兼容性:带硬核处理器的FPGA和带软核处理器的FPGA处理器,具有操作系统或独立模式下的应用程序,也称为“裸机”。最后阶段包括实施,取得成果和评估所开展的工作。 ud此工作的中心围绕着与所使用的每个设备的通信通道的创建。为了建立连接并用于数据传输,将使用TCP / IP协议栈,该协议栈允许进行连接通信,从而有助于进行安全的通信,其中TCP检查已发送的数据包已正确到达其目的地。 ,否则重新发送。 ud同样,本TFG的文档以教程的形式构建,以便将来的学生可以从在实现此工作中创建的系统开始,并开发新的和更复杂的应用程序,从而加快了起步阶段。学生开发的应用程序可能在服务器应用程序(具有FPGA的系统)或可以在PC或具有FPGA的另一个系统上运行的客户端程序方面进行,因此将进行开发在此作业中(客户端和服务器)。 ud为了与设备建立连接,已使用由称为lwIP的TCP / IP协议栈的实现提供的功能接口(API),该接口专门针对嵌入式系统,从而允许在裸机上开发应用程序。金属(通过RAW API)或在操作系统上(通过SOCKETS API)。由于每种选择的优缺点都取决于将开发的应用程序合并到其中的系统,因此已经提出了对这两种选择进行应用程序开发的建议,这将涵盖所有可能的领域。 ud上一段中提到的API将用于对要评估的设备上的服务器程序进行编程。由于我们希望在程序和设备之间进行兼容性测试,因此两者都将首先准备对其相应的微处理器进行编程。为此,将在要使用的板上开始硬件开发,这将是装有Kintex-7 FPGA的KC705和装有ZYNQ-7000器件的MicroZed,后者将FPGA和双核ARM处理器相结合。 (硬处理器)。 ud在硬件开发中,必须在两个设备之间进行明确区分。在使用Hard Processor的情况下,微处理器和MAC层已在同一设备中实现,因此无需对其进行硬件开发。对于软处理器,将有必要在可编程逻辑中实现微处理器,在这种情况下,将为MicroBlaze,它具有Xilinx设计的32位架构,可用于其FPGA开发。 ud一旦进行了硬件开发,就开始软件开发,首先是使用RAW API对服务器程序进行编程也就是说,它将首先在没有操作系统的情况下进行开发。它将从SDK(SoC的Xilinx工具用于软件开发的工具)提供的示例服务器回显程序开始,并且将对其进行修改,以使执行的回显不返回接收到的字符串,但作为一个简单示例,它将返回服务器在通信中接收到的数字的乘法表。 ud使用RAW API执行程序后,将使用Telnet客户端进行程序验证测试,该客户端工具允许使用TCP / IP模拟远程连接。将得出结论,通过在两种实现中测试相同的代码并获得相同的结果,该程序可在两种类型的设备之间完全移植。在基于FPGA的SoPC中实现通信的替代方法 ud ud ud一旦使用RAW API对程序进行了验证,您可以期望使用SOCKETS API获得相同的结果。为此,服务器应用程序的编程在FreeRTOS操作系统(一种开源实时操作系统)上进行。在这种情况下,编程将集中于操作系统中嵌入的套接字库,通过该套接字库,将执行与在裸机上进行编程时相同的功能。有了第二种实现方式,并通过对其功能进行评估,就可以使用Telnet验证程序是完全可移植的,并且目前仅在编程时才需要区分程序。硬件。 ud一旦验证了服务器程序在不同设备之间的可移植性,便可以对客户端进行编程以替换Telnet工具,并允许将来对其进行改进。客户端的编程将通过打开套接字来进行,并将在Windows上使用C语言,Visual Studio和BSD套接字在PC上进行开发。此外,一旦对客户端进行了编程,设备中已编程的服务器的功能将得到扩展,以处理内存映射的I / O,读取专用寄存器(例如微处理器的计数器或计时器)以及读取和写入数据。任何内存映射记录。 ud将使用编程的客户端进行新功能的验证和兼容性测试,从而为遵循本教程的学生提供了使用示例。最后,教程本身的编写已经完成,并且对于两种设备以及裸机和FreeRTOS上的服务器编程都可以遵循。还有一份客户的编程指南和工作期间开发的源代码。通过对代码可移植性的分析和对不同受支持体系结构的设计方法的描述(通过实验验证),涵盖了本工作的主要目标。 ud最后,值得注意的是,由于使用和监视了《官方工业工程师学会道德规范》中包含的所有许可和法律法规,因此这项工作的执行不会带来任何形式的负面法律和专业影响。在道德或社会层面上,因为作为REBECCA一部分的这项工作的目标之一是公民安全本身。

著录项

  • 作者

    Ortíz Cuadrado Alberto;

  • 作者单位
  • 年度 2016
  • 总页数
  • 原文格式 PDF
  • 正文语种 spa
  • 中图分类

相似文献

  • 外文文献
  • 中文文献
  • 专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号