134
1 Sistema de acceso a puertos generales de entrada y salida a distancia para una FPGA orientado a prácticas universitarias Jorge Eduardo Albán Conde, [email protected] Juan camilo Balanta Zamora, [email protected] Trabajo de grado presentado para optar al título de Ingeniero Electrónico Asesor: Daniel Felipe Valencia Vargas, Ingeniero Electrónico Universidad de San Buenaventura Colombia Facultad de Ingenierías Ingeniería Electrónica Santiago de Cali, Colombia 2017

Sistema de acceso a puertos generales de entrada y salida a ...bibliotecadigital.usbcali.edu.co/bitstream/10819/4646/1...1 Sistema de acceso a puertos generales de entrada y salida

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

  • 1

    Sistema de acceso a puertos generales de entrada y salida a distancia para una FPGA

    orientado a prácticas universitarias

    Jorge Eduardo Albán Conde, [email protected]

    Juan camilo Balanta Zamora, [email protected]

    Trabajo de grado presentado para optar al título de Ingeniero Electrónico

    Asesor: Daniel Felipe Valencia Vargas, Ingeniero Electrónico

    Universidad de San Buenaventura Colombia

    Facultad de Ingenierías

    Ingeniería Electrónica

    Santiago de Cali, Colombia

    2017

    mailto:[email protected]:[email protected]

  • 2

    Citar/How to cite [1]

    Referencia/Reference

    Estilo/Style: IEEE (2014)

    [1] J. E. Albán Conde y J. C. Balanta Zamora, “Sistema de acceso a

    puertos generales de entrada y salida a distancia para una FPGA

    orientado a prácticas universitarias.”, Trabajo de grado Ingeniería

    Electrónica, Universidad de San Buenaventura Cali, Facultad de

    Ingenierías, 2017.

    Grupo de Investigación LEA. Línea de investigación en sistemas embebidos.

    Bibliotecas Universidad de San Buenaventura

    Biblioteca Fray Alberto Montealegre OFM - Bogotá.

    Biblioteca Fray Arturo Calle Restrepo OFM - Medellín, Bello, Armenia, Ibagué.

    Departamento de Biblioteca - Cali.

    Biblioteca Central Fray Antonio de Marchena – Cartagena.

    Universidad de San Buenaventura Colombia

    Universidad de San Buenaventura Colombia - http://www.usb.edu.co/

    Bogotá - http://www.usbbog.edu.co

    Medellín - http://www.usbmed.edu.co

    Cali - http://www.usbcali.edu.co

    Cartagena - http://www.usbctg.edu.co

    Editorial Bonaventuriana - http://www.editorialbonaventuriana.usb.edu.co/

    Revistas - http://revistas.usb.edu.co/

    Biblioteca Digital (Repositorio)

    http://bibliotecadigital.usb.edu.c

    o

    https://co.creativecommons.org/?page_id=13https://co.creativecommons.org/?page_id=13

  • 3

    Agradecimientos

    Agradecemos a todas las personas que de manera directa o indirecta contribuyeron con sus

    conocimientos, sugerencias u observaciones a la realización de este proyecto y nuestra

    formación como ingenieros. Agradecer a docentes de la universidad, laboratoristas y a nuestro

    director el Ing. Daniel Felipe Valencia Vargas, por su paciencia y apoyo incondicional.

  • 4

    TABLA DE CONTENIDO

    RESUMEN ................................................................................................................................ 8

    I. INTRODUCCIÓN .............................................................................................................. 10

    Fig. 1. Descripción general del sistema .................................................................................... 11

    A. Descripción del Problema. ......................................................................................... 12

    B. Justificación. .............................................................................................................. 13

    C. Objetivos. ................................................................................................................... 15

    1) Objetivo general. ....................................................................................................... 15

    2) Objetivos específicos. ................................................................................................ 15

    II. MARCO DE REFERENCIA ........................................................................................... 16

    A. Antecedentes. ............................................................................................................. 16

    1) Control de sistemas .................................................................................................... 17

    2) Kits de desarrollo FPGA ............................................................................................ 18

    B. Marco conceptual....................................................................................................... 25

    1) Esquema de comunicación. ....................................................................................... 25

    2) Comunicación asincrónica. ........................................................................................ 26

    3) Comunicación sincrónica........................................................................................... 27

    4) Técnicas de multiplexación y demultiplexación........................................................ 28

    5) Field Programmable Gate Arrays (FPGA). ............................................................... 29

    III. DESARROLLO ............................................................................................................... 31

    A. Diseño del sistema ..................................................................................................... 32

    B. Implementación del sistema ...................................................................................... 68

    1) Procesos del protocolo RDP ...................................................................................... 68

    2) Intercambio de datos entre usuario y servidor ........................................................... 74

    IV. RESULTADOS Y DISCUSIÓN ..................................................................................... 79

    V. CONCLUSIONES ........................................................................................................... 105

    VI. RECOMENDACIONES ............................................................................................... 108

    REFERENCIAS ................................................................................................................... 109

    ANEXOS ............................................................................................................................... 116

  • 5

    LISTA DE TABLAS

    TABLA I. DIFERENTES FORMAS DE MULTIPLEXAR GRAN NÚMERO DE PINES .............................. 20

    TABLA II. DIFERENTES PROTOCOLOS DE COMUNICACIÓN REMOTA ENTRE ORDENADORES ........ 23

    TABLA III. LISTA COMPARATIVA DE CIRCUITOS INTEGRADOS E INSUMOS ................................. 32 TABLA III. LISTA COMPARATIVA DE CIRCUITOS INTEGRADOS E INSUMOS CONTINUACIÓN)………33

    TABLA IV. LISTA COMPARATIVA DE MICROCONTROLADORES ................................................... 33

    TABLA V. LISTA DE PROTOCOLOS DE COMUNICACIÓN DE RED PARA COMPUTADORES............... 37

    TABLA VI LATENCIA VISTA DESDE EL DATALOGGER................................................................. 86

    TABLA VII REPRESENTACIÓN DE LA ENCUESTA EN FORMA CUANTITATIVA .............................. 87

    TABLA VIII RESPUESTAS DE LAS OBSERVACIONES ................................................................. 101

    TABLA IX. PRUEBAS DE LATENCIA EN LA COMUNICACIÓN ...................................................... 102

    TABLA X. CARACTERÍSTICAS TÉCNICAS .................................................................................. 102

    TABLA XI. ETAPAS DE LOS DISPOSITIVOS ................................................................................ 103

    TABLA XII. COSTOS DEL PROYECTO ........................................................................................ 104

  • 6

    LISTA DE FIGURAS

    FIG. 1. DESCRIPCIÓN GENERAL DEL SISTEMA ...................................................................................................... 11 FIG. 2. ARQUITECTURA DE REFERENCIA PARA LA CONSTRUCCIÓN DE LABORATORIOS REMOTOS [4] ..................... 16 FIG. 3. ESQUEMA DE COMUNICACIÓN ................................................................................................................. 25 FIG. 4. ESTRUCTURA DEL PUERTO GPIO DE LA ALTERA DE 2 [52] ...................................................................... 29 FIG. 5. CIRCUITO DE PROTECCIÓN DE PINES GPIO DE LA ALTERA DE 2 [52] ........................................................ 30 FIG. 6. ESQUEMA DEL DISPOSITIVO USUARIO ...................................................................................................... 31 FIG. 7. ESQUEMA DISPOSITIVO SERVIDOR ........................................................................................................... 32 FIG. 8. EMPAQUETADO PSOC® 4 CY8CKIT-049 4 PROTOTYPING KITS [55]....................................................... 34 FIG. 9. ESQUEMA DEL HARDWARE DEL DISPOSITIVO USUARIO ............................................................................. 39 FIG. 10. HARDWARE MAESTRO DISPOSITIVO USUARIO ......................................................................................... 40 FIG. 11. HARDWARE ESCLAVO DISPOSITIVO USUARIO ......................................................................................... 40 FIG. 12. ESQUEMA DEL HARDWARE DISPOSITIVO SERVIDOR ................................................................................ 41 FIG. 13. PCB CIRCUITO DEL DISPOSITIVO USUARIO ............................................................................................ 42 FIG. 14. PCB CIRCUITO DEL DISPOSITIVO SERVIDOR ........................................................................................... 43 FIG. 15. DIAGRAMA GENERAL DISPOSITIVO USUARIO MICROCONTROLADOR MAESTRO ........................................ 44 FIG. 16. DIAGRAMA GENERAL DISPOSITIVO USUARIO MICROCONTROLADOR ESCLAVO ......................................... 44 FIG. 17. DIAGRAMA GENERAL DISPOSITIVO SERVIDOR MICROCONTROLADOR MAESTRO....................................... 45 FIG. 18. DIAGRAMA GENERAL DISPOSITIVO SERVIDOR MICROCONTROLADOR ESCLAVO ....................................... 45 FIG. 19. RUTINA DE SELECCIÓN DE NÚMERO DE PUERTOS EN LA INTERFAZ DE USUARIO ....................................... 47 FIG. 20. RUTINA DE SELECCIÓN DE INICIO DE COMUNICACIÓN O CONFIGURACIÓN DE PUERTOS ............................ 48 FIG. 21. RUTINA DE CONFIGURACIÓN MANUAL DE LOS PUERTOS ......................................................................... 49 FIG. 22. FUNCIONES PARA CAMBIAR VALORES DE CONFIGURACIÓN ..................................................................... 50 FIG. 23. SUBRUTINA DE LA CONFIGURACIÓN MANUAL DE LOS PUERTOS .............................................................. 51 FIG. 24. RUTINA DE COMUNICACIÓN ENTRE MAESTRO Y ESCLAVO DISPOSITIVO USUARIO .................................... 52 FIG. 25. RUTINA DE ENVIÓ DE COMANDOS DE CONFIGURACIÓN AL MAESTRO DEL DISPOSITIVO USUARIO .............. 52 FIG. 26. RUTINA DE ESPERA DE VERIFICACIÓN DEL DISPOSITIVO SERVIDOR ......................................................... 53 FIG. 27. RUTINA DE CONFIGURACIÓN DE PUERTOS ESCLAVO DISPOSITIVO USUARIO ............................................. 54 FIG. 28. RUTINAS DE ESCRITURA Y LECTURA EN EL ESCLAVO DEL DISPOSITIVO USUARIO ..................................... 55 FIG. 29. RUTINA DE RECIBO DE COMANDOS REALIZADOS EN EL ESCLAVO DEL DISPOSITIVO USUARIO ................... 56 FIG. 30. RUTINA DE CONFIGURACIÓN DE PUERTOS CON LOS COMANDOS RECIBIDOS DEL ESCLAVO Y ELABORACIÓN

    DEL COMANDO DEL DISPOSITIVO SERVIDOR ............................................................................................... 57 FIG. 31. RUTINA DE ENVIÓ DE COMANDOS AL DISPOSITIVO SERVIDOR E INICIO DE PROCESO DE MULTIPLEXACIÓN Y

    DEMULTIPLEXACIÓN DE LOS DATOS EN LOS PUERTOS ................................................................................ 59 FIG. 32. PROCESO DE LECTURA DE LOS PUERTOS PARA MULTIPLEXAR DATOS EN EL DISPOSITIVO USUARIO........... 60 FIG. 33. RUTINA DE RECIBO DE COMANDOS DE CONFIGURACIÓN DEL DISPOSITIVO SERVIDOR............................... 62 FIG. 34. FUNCIÓN DISPOSITIVO SERVIDOR PARA CONFIGURACIÓN DE LOS PUERTOS.............................................. 63 FIG. 35. RUTINA DE LECTURA DE LOS PUERTOS PARA MULTIPLEXAR DATOS EN EL DISPOSITIVO SERVIDOR ........... 64 FIG. 36. RUTINA DE DE RECIBO DE DATOS PARA DEMULTIPLEXAR LOS VALORES EN LOS PUERTOS ........................ 65 FIG. 37. PROCESO DE RECIBO DE DATOS DE CONFIGURACIÓN DE PUERTOS ESCLAVO DISPOSITIVO SERVIDOR ........ 66 FIG. 38. DIAGRAMA DE FLUJO FUNCIONAMIENTO CÓDIGO PYTHON ..................................................................... 67 FIG. 39. VERIFICACIÓN DE LA IP EQUIPO SERVIDOR ............................................................................................ 68 FIG. 40. ACTIVAR LA CONFIGURACIÓN DE ACCESO REMOTO ................................................................................ 69 FIG. 41. PERMITIR EL ACCESO REMOTO ............................................................................................................... 69 FIG. 42. CREAR CONTRASEÑA DEL EQUIPO SERVIDOR ......................................................................................... 70 FIG. 43. HABILITACIÓN DE PUERTOS SERIALES.................................................................................................... 71 FIG. 44. ACCEDER AL EQUIPO SERVIDOR ............................................................................................................. 71 FIG. 45. ACCEDER AL EQUIPO SERVIDOR (CONTINUACIÓN) ................................................................................. 72 FIG. 46. RECURSOS A LOS QUE EL EQUIPO TENDRÁ ACCESO ................................................................................. 72 FIG. 47 DATOS DEL EQUIPO REMOTO .................................................................................................................. 73 FIG. 48. VENTANA DE CONFIRMACIÓN ................................................................................................................ 73 FIG. 49. CONEXIÓN DEL EQUIPO REMOTO ........................................................................................................... 74 FIG. 50. IDENTIFICACIÓN DE LOS DISPOSITIVOS EN LOS PUERTOS COM ............................................................... 75 FIG. 51. FUNCIONAMIENTO DEL CÓDIGO EN PYTHON, VISUALIZACIÓN DE LOS DATOS .......................................... 75 FIG. 52. FUNCIONES LIBRERÍA [57] .............................................................................................. 76

  • 7

    FIG. 53. CONFIGURACIÓN 1 VID Y PID EN ......................................................................... 77 FIG. 54. CONFIGURACIÓN 2 VID Y PID EN ........................................................................ 77 FIG. 55. FUSES SUGERIDOS PARA MODULO USB [58] .......................................................................................... 77 FIG. 56. CONFIGURACIÓN PINES QUARTUS ......................................................................................................... 78 FIG. 57. DISPOSITIVO USUARIO TERMINADO ....................................................................................................... 79 FIG. 58. DISPOSITIVO SERVIDOR TERMINADO ...................................................................................................... 79 FIG. 59. SOFTWARE TERMINAL V1.9B ................................................................................................................. 80 FIG. 60. PRUEBA PINES GPIO COMO DE SALIDA .................................................................................................. 81 FIG. 61. CONFIGURACIÓN PIN PLANNER .............................................................................................................. 81 FIG. 62. PRUEBA PINES GPIO COMO ENTRADA.................................................................................................... 82 FIG. 63. CONFIGURACIÓN PIN PLANNER .............................................................................................................. 82 FIG. 64. PRUEBA PINES GPIO ENTRADA Y SALIDA .............................................................................................. 83 FIG. 65. CONFIGURACIÓN PIN PLANNER .............................................................................................................. 83 FIG. 66. CÓDIGO DE DATALOGGER EN PYTHON ................................................................................................... 84 FIG. 67. GUARDAR REGISTROS DEL DATALOGGER ............................................................................................... 85 FIG. 68. DATALOGGER EN ARCHIVO DE TEXTO .................................................................................................... 85 FIG. 69. DATALOGGER EN FORMATO DE TEXTO ................................................................................................... 86 FIG. 70. CONJUNTO DE RESPUESTAS A LA PREGUNTA 1 ....................................................................................... 88 FIG. 71. CONJUNTO DE RESPUESTAS A LA PREGUNTA 2 ....................................................................................... 89 FIG. 72. CONJUNTO DE RESPUESTAS A LA PREGUNTA 3 ....................................................................................... 90 FIG. 73. CONJUNTO DE RESPUESTAS A LA PREGUNTA 4 ....................................................................................... 91 FIG. 74. CONJUNTO DE RESPUESTAS A LA PREGUNTA 5 ....................................................................................... 92 FIG. 75. CONJUNTO DE RESPUESTAS A LA PREGUNTA 6 ....................................................................................... 92 FIG. 76. CONJUNTO DE RESPUESTAS A LA PREGUNTA 7 ....................................................................................... 93 FIG. 77. CONJUNTO DE RESPUESTAS A LA PREGUNTA 8 ....................................................................................... 94 FIG. 78. CONJUNTO DE RESPUESTAS A LA PREGUNTA 9 ....................................................................................... 95 FIG. 79. CONJUNTO DE RESPUESTAS A LA PREGUNTA 10...................................................................................... 95 FIG. 80. CONJUNTO DE RESPUESTAS A LA PREGUNTA 11...................................................................................... 96 FIG. 81. CONJUNTO DE RESPUESTAS A LA PREGUNTA 12...................................................................................... 97 FIG. 82. CONJUNTO DE RESPUESTAS A LA PREGUNTA 13...................................................................................... 98 FIG. 83. CONJUNTO DE RESPUESTAS A LA PREGUNTA 14...................................................................................... 98 FIG. 84. CONJUNTO DE RESPUESTAS A LA PREGUNTA 15...................................................................................... 99 FIG. 85. CONJUNTO DE RESPUESTAS A LA PREGUNTA 16.................................................................................... 100 FIG. 86. ETAPAS DEL DISPOSITIVO USUARIO ...................................................................................................... 103 FIG. 87. ETAPAS DEL DISPOSITIVO SERVIDOR .................................................................................................... 104

  • 8

    RESUMEN

    El proyecto expone el desarrollo de un sistema embebido vinculado a un kit de desarrollo

    FPGA Altera DE2. El sistema embebido permite el acceso a los puertos de expansión de

    forma remota y tiene una interfaz (LCD y pulsadores) para configurar la cantidad de pines

    respecto a la FPGA, dándole al usuario la facilidad de realizar prácticas de circuitos

    combinatorios como si estuviera presente en el laboratorio. El sistema diseñado emplea

    Remote Desktop Protocol para comunicar dos computadores, y consta de dos dispositivos

    donde cada uno está conectado a una computadora por el puerto USB. Al primer dispositivo,

    el usuario tiene acceso físico y puede configurar sus 36 pines como entrada o salida para

    implementar diferentes diseños de circuitos digitales de forma local, el segundo dispositivo se

    encuentra en un equipo distante y se conecta al puerto de expansión de la FPGA. Ambos

    dispositivos multiplexan y demultiplexan la información de los pines para enviar o recibir por

    el puerto USB. Los resultados fueron evaluados con pruebas de unidireccionalidad y

    bidireccionalidad, implementando un sistema donde el cambio de las variables en el circuito

    de usuario era mostrado en la FPGA, y viceversa. Adicionalmente con una encuesta para

    estudiantes de ingeniería electrónica entre 5° y 10° semestre, Las preguntas evaluaban

    diferentes criterios (pedagógicos, técnicos y económicos) para conocer la aceptabilidad del

    sistema por parte de los estudiantes. Las respuestas son alentadoras, demostrando que el

    sistema presentado da una solución a la falta de disponibilidad de FPGA en el laboratorio.

    Palabras claves: sistema embebido, demultiplexar, FPGA, laboratorio remoto,

    multiplexar, programación remota

    ABSTRACT

    This project is about the development of an embedded system linked to an FPGA

    development kit Altera DE2. The embedded system allows to access to the expansion ports

    remotely and has an interface (LCD and pushbuttons) for configuring the number of pins

    according to the FPGA, and the user can realize practices of combinatory circuits like if was

    in the laboratory. The designed system uses Remote Desktop Protocol for communicating two

    computers, and it consists of two devices where each is connected to a computer through the

    USB port. To the first device, the user has physical access and can configure its 36 pins like

    input or output, for different implement designs of digital circuits locally. The second device

  • 9

    is on a remote computer, and it is linked to the expansion port of the FPGA. Both devices

    multiplex and demultiplex the pins information for send or receive through the USB port. The

    results were evaluated with unidirectionality and bidirectionality tests, implementing a system

    where the variable’s changes in the user circuit were showed in the FPGA, and vice versa.

    Additionally, with a survey for electronic engineering students between 5° and 10° semesters,

    the questions evaluated different criteria (pedagogical, technical and economic), this allow us

    to know the acceptability of the system by students. The answers are encouraging,

    demonstrating that the system presented gives a solution to the lack of availability of FPGA in

    the laboratory.

    Keywords: embedded system, demultiplexing, FPGA, remote laboratory, multiplexing,

    Remote programming

  • 10

    I. INTRODUCCIÓN

    En el aprendizaje de la ingeniería la práctica desempeña un papel muy importante, por esta

    razón, universidades o instituciones educativas poseen laboratorios con equipos especializados

    para que los estudiantes puedan realizar diferentes prácticas, comúnmente este tipo de

    laboratorios son conocidos como laboratorios Hands-On [1], donde se requiere la presencia

    física del estudiante en el laboratorio para interactuar con los equipos y poder llevar a cabo una

    práctica. Sin embargo, la evolución de la tecnología y comunicaciones a distancia entre

    computadoras ha permitido nuevos conceptos de laboratorios, los laboratorios remotos están

    basados en las premisas para que el estudiante: pueda hacer uso de su tiempo en casa para

    realizar los trabajos dejados [2], optimice el uso de los recursos del laboratorio, el acceso a un

    laboratorio remoto permite romper las barreras espacio-temporales [3], tenga la libertad de

    experimentar en el laboratorio ajustándose a los tiempos intrínsecos del auto aprendizaje y

    repetitividad de experimentos [4].

    La Universidad de San Buenaventura Cali dispone de tarjetas de desarrollo Altera DE-2 y DE-

    0 para la realización de trabajos de aula, sobre las cuales se desarrollan e implementan diseños

    lógicos combinatorios. Actualmente, el valor promedio de una de las tarjetas de desarrollo de

    la empresa Altera es de 595 USD [5], Por lo que sería un costo elevado para los estudiantes si

    desean adquirir una propia.

    Además, los equipos tienen aplicación en diferentes cursos de la carrera de ingeniería

    electrónica. Si un estudiante desea hacer uso de la tarjeta DE 2 en su tiempo libre debe ser en

    momentos donde no se encuentre en uso por una clase determinada. El reusó de los kit de

    desarrollo por otros estudiantes acorta la disponibilidad de los equipos agregando la dificultad

    de que el tiempo libre del estudiante no sea el mismo tiempo de disponibilidad de la tarjeta DE

    2.

    También se podría observar que para la universidad lograr la disponibilidad de un kit de

    desarrollo de altera DE 2 por cada estudiante al realizar una práctica académica, equivale a un

    alto costo de inversión por parte de la universidad.

    Partiendo de lo planteado anteriormente surgió la siguiente pregunta desde la electrónica y sus

    aplicaciones basadas en los sistemas embebidos y comunicaciones remotas, ¿cómo se podría

    desarrollar un sistema embebido que conectado a un computador vía USB permita el acceso a

    puertos generales de entrada y salida para una FPGA conectada a un computador distante?

  • 11

    Buscando dar una solución a este interrogante, se realizó una investigación de las diferentes

    tecnologías que pudieran, en su conjunto, desarrollar un dispositivo embebido para el cual se

    pueda acceder a los puertos generales de una FPGA y tener control del computador al cual

    esté conectado el equipo, con el fin de facilitar la disponibilidad del equipo y abrir diferentes

    tiempos para el uso y realización de trabajos propuestos en una clase magistral.

    Para brindar una solución al interrogante, en el proyecto se integran varias tecnologías como

    el protocolo (RDP o Remote Desktop Protocol) de comunicación remota que tiene incorporado

    los computadores con el sistema operativo de Windows, lenguajes de programación C y

    Python, programa de creación de placas de circuito impreso o PCB y microcontroladores para

    la ejecución de los procesos.

    El protocolo RDP, permitirá en este proyecto, realizar el enlace de comunicación entre la

    tarjeta de desarrollo Altera y el usuario. Es importante resaltar que el acceso al puerto general

    de entradas y salidas (por sus siglas General Port Input Output, GPIO) será con dos sistemas

    embebidos similares. Estos sistemas están compuestos de un microcontrolador de microchip de

    la familia 18F. Los puertos del microcontrolador se conectarán al puerto GPIO con la finalidad

    de enviar y recibir datos del kit de desarrollo, para luego ser comunicados por el puerto USB

    del microcontrolador a un PC que se comunicará remotamente con una tarjeta similar, usando

    el protocolo RDP.

    Fig. 1. Descripción general del sistema

  • 12

    A. Descripción del Problema.

    Con la evolución de la tecnología dentro del campo de la electrónica, se puede establecer una

    transferencia de archivos entre dos ordenadores distantes, donde en uno se conecte una FPGA

    y en el otro un sistema embebido vía USB que permita acceder a los puertos generales de

    entrada y salida de la FPGA, con el objetivo de permitir a los estudiantes desarrollar, ejecutar

    e implementar los diferentes circuitos que se puedan plantear en una clase práctica en el

    transcurso del semestre y facilitar su aprendizaje que se tiene al momento de efectuar este tipo

    de actividades.

    No obstante cabe resaltar que el espacio, recursos e implementos de laboratorio para la

    realización de una práctica tiene un tiempo limitado de uso y son compartidos por otras

    asignaturas de la misma carrera o diferentes programas dentro de la facultad, lo que agrava el

    problema a los estudiantes, que dependen de tiempos cortos entre el desarrollo e

    identificación de los conceptos explicados y la ejecución de estos.

    Con la información anteriormente descrita se presenta el siguiente interrogante que guiará este

    proyecto de investigación ¿Desde la electrónica y sus aplicaciones basadas en los sistemas

    embebidos y comunicaciones remotas, como se podría desarrollar un sistema embebido que

    conectado a un computador vía USB permita el acceso a puertos generales de entrada y salida

    para una FPGA conectada a un computador distante?

  • 13

    B. Justificación.

    Para una institución educativa impartir clases para un programa de ingeniería electrónica

    requieren numerosas inversiones [6], debido a que los conceptos teóricos enseñados en clases

    magistrales, deben ser comprobados mediante prácticas que validen su información, para lo

    cual la universidad debe contar con laboratorios y equipos especializados, sumándole a esto

    las instalaciones y mantenimiento de los mismos.

    Un ejemplo concreto de los altos costos se puede evidenciar a partir de un solo dispositivo, en

    este caso una FPGA, dispositivo lógico programable empleado como medio de aprendizaje

    didáctico en la facultad de ingenierías. En general estos dispositivos son utilizados por

    estudiantes de ingeniería electrónica en los últimos 6 semestres. Suponiendo que cada curso

    tenga en promedio 8 estudiantes, habría un total de 48 estudiantes que requieren de este

    dispositivo para sus estudios, por lo cual una institución educativa debe contar con equipos

    extras a parte de los 8 necesarios para cada curso, dado que existirán estudiantes que deseen

    adelantar sus proyectos y/o profundizar en sus conocimientos durante sus ratos libres.

    Para minimizar costos y darle a los estudiantes una mayor disponibilidad para emplear los

    recursos de los laboratorios, diferentes universidades han optado por la implementación de

    laboratorios virtuales, obteniendo resultados muy alentadores que demuestra que este motiva

    el aprendizaje en los estudiantes [7], [8] y disminuye problemas técnicos y de organización

    presentes en un laboratorio [9], facilitándole a un mayor número de estudiantes emplear el

    mismo equipo.

    Una ventaja del laboratorio remoto es que no requiere que los estudiantes estén presentes en

    el laboratorio para la realización de una práctica solo se dispone de un ordenador y tarjeta de

    adquisición de datos [10].

    El dispositivo del laboratorio remoto propuesto en este trabajo ofrece aspectos positivos

    relacionados con las capacidades de hardware de la FPGA, permitiendo superar las limitantes

    de los laboratorios virtuales, que se relacionan con la implementación y expansión de las

    etapas en los circuitos electrónicos. Por ejemplo, el desarrollo e implementación de un control

    de giro para un motor DC requiere de un diseño lógico y potencia. En ingeniería electrónica

    normalmente este diseño es denominado puente H. La implementación de la etapa de control

  • 14

    digital de un puente H puede ser desarrollada sobre una FPGA (con una máquina de estados

    finita o un circuito combinatorio) de forma remota y la implementación del puente H puede

    ser realizada sobre una placa de prueba disponible en el lugar donde se encuentra el

    estudiante. El dispositivo del laboratorio remoto propuesto ofrece al estudiante versatilidad

    para expandir los circuitos de forma local haciendo uso de recursos de hardware remotos.

    Es importante resaltar que los laboratorios remotos son una innovación en el campo de la

    educación y habrá que prestar atención tanto a su diseño como al estudio de las ventajas e

    inconvenientes, desde el punto de vista didáctico [11].

    Por lo cual para este proyecto se propone la implementación de un sistema embebido para

    comunicar remotamente los puertos de expansión de un kit de desarrollo DE 2 de la empresa

    ALTERA Corp.

  • 15

    C. Objetivos.

    1) Objetivo general.

    Desarrollar un sistema embebido conectado vía USB a un ordenador desde el cual

    mediante un protocolo de comunicación remota, se comunique con un kit de desarrollo

    de FPGA de la empresa ALTERA Corp. con el objetivo de poder acceder a los puertos

    generales de entrada y salida.

    2) Objetivos específicos.

    ● Analizar algoritmo de multiplexación y demultiplexación para adquisición de datos en

    los puertos generales de una FPGA, tanto como para recibir o enviar datos.

    ● Analizar sistema de envío y recibo de datos multiplexados por USB/Serial.

    ● Desarrollar algoritmo determinado para multiplexación y demultiplexación de los datos

    adquiridos en los puertos generales de una FPGA.

    ● Desarrollar el hardware determinado para envío y recibo de datos.

    ● Evaluar el código de multiplexación y demultiplexación, para que el sistema de envío

    de datos y recibo cumplan con la tarea de transmitir información.

    ● Pruebas de funcionamiento del sistema, respecto a latencia en la comunicación, para el

    tiempo de respuesta en los procesos de un punto a otro.

    ● Divulgar información mediante un artículo.

  • 16

    II. MARCO DE REFERENCIA

    A. Antecedentes.

    Los laboratorios remotos buscan que los estudiantes puedan distribuir el tiempo para realizar

    los trabajos prácticos de aula de manera que no exista una dependencia directa en la

    disponibilidad de los recursos de laboratorio. Hay diversos tipos de laboratorios remotos entre

    los más destacados implementados por instituciones educativas están:

    Laboratorios virtuales de simulación: Permiten tener acceso a software de simulación

    gráfica, estos laboratorios comprenden un entorno de programación de más alto nivel

    frente a otros laboratorios. [2].

    Laboratorio de matemáticas: Brinda solución a todo tipo de ecuaciones matemáticas

    algebraicas, matriciales, diferenciales, en derivadas parciales, etc. Permite graficar

    funciones en 2 y 3 dimensiones. Desarrollar estadísticas y otros modelos matemáticos

    propios de las ingenierías. [2].

    Laboratorios de control: Permite una experiencia práctica donde el usuario tiene el

    control sobre plantas y sistemas reales o simulados. [3].

    Estos laboratorios remotos tienen en común una estructura de operación, como la que se

    observa en la fig. 2.

    Fig. 2. Arquitectura de referencia para la construcción de laboratorios remotos [4]

  • 17

    Para minimizar costos en comparación a un laboratorio Hands-On que debe contar con

    equipos especializados, sumado a esto las instalaciones y mantenimiento del mismo, y darle a

    los estudiantes una mayor disponibilidad para emplear los recursos de los laboratorios,

    diferentes universidades han optado por la implementación de laboratorios remotos,

    obteniendo resultados muy alentadores que demuestra que este motiva el aprendizaje en los

    estudiantes [7],[8] y disminuye problemas técnicos y de organización presentes en un

    laboratorio [9], facilitándole a un mayor número de estudiantes emplear el mismo equipo.

    En esta sección presentaremos el estado actual de la implementación de los laboratorios

    remotos que hemos encontrado en la literatura científica. Principalmente enfocándonos en los

    laboratorios de control de sistemas en general y luego en casos concretos de laboratorios

    remotos para el control de un kit de desarrollo FPGA.

    1) Control de sistemas

    El uso de las tecnologías de comunicación e informática tienen un papel fundamental en el

    proceso educativo de los estudiantes, acorde con esto, dos profesores, Marisol García Valls y

    Pablo Basanta Val, de la universidad Carlos III de Madrid, en Madrid España, han

    aprovechado esta tecnología con el objetivo de simular un ambiente de la vida cotidiana como

    lo es el tráfico de trenes en un sistema de metro, permitiéndole a los estudiantes representar el

    monitoreo en línea y control del sistema de forma remota, motivando así el aprendizaje [8].

    Pensando no solo en motivar el aprendizaje en los estudiantes, sino también en disminuir

    costos, aliviar la carga de los problemas técnicos y de organización, 13 socios de 11 países

    europeos construyeron un laboratorio remoto de ingeniería de potencia y control de

    movimiento, mediante el cual los estudiantes cuentan con documentación de alta calidad para

    realizar experimentos remotos donde controlan el movimiento mecatrónico para diferente

    tipos de motores, esto les permite aprender aspectos importantes del diseño de control de

    movimiento, desde el modelado, simulación, diseño de control, la validación experimental, y

    la comparación entre los diferentes controladores [9].

    Un proyecto similar se desarrolló en la Universidad de Alicante en España donde motivados

    por la enseñanza a distancia de robótica industrial, se implementó un sistema remoto que

    permite a los usuarios interactuar con simulaciones de robots reales de una manera intuitiva y

  • 18

    económica. Mediante una aplicación web, es posible desarrollar un aprendizaje que permita

    una rápida comprensión de conceptos relacionados con la robótica. Los conceptos que buscan

    fortalecer los investigadores abarcan temáticas que parten desde la estructura mecánica hasta

    la verificación experimental de teorías físicas que se aplican en sus movimientos y

    trayectorias. El usuario podrá simular y tele operar la trayectoria del robot y así, comprobar el

    comportamiento del mismo [12].

    2) Kits de desarrollo FPGA

    En la Universidad de Carolina del Norte en Charlotte se adecuó lo necesario en el hardware y

    el software de una FPGA para implementar un laboratorio remoto, con el objetivo de describir

    la experiencia del uso de esta instalación en un curso de primer año de posgrado en la

    plataforma FPGA. Los resultados son alentadores debido a que reportan ventajas en el

    aprendizaje de los estudiantes y disminución de costos [7].

    En la Universidad del Quindío en Colombia, se presenta una herramienta de apoyo a las

    didácticas de virtualización en Sistemas Electrónicos Digitales, particularmente se ha

    desarrollado una aplicación web que brinda al usuario la posibilidad de ingresar a un entorno

    donde podrá interactuar con diferentes herramientas que permiten configurar el FPGA y de

    esta manera, realizar prácticas de laboratorio en forma remota con circuitos digitales. La

    aplicación que se desarrolló permitió la utilización de tecnologías de virtualización en las

    prácticas propuestas por los docentes [13].

    La Universidad de Coímbra, en Portugal presentó una demostración interactiva que muestra el

    uso de un laboratorio de lógica reconfigurable a distancia para estudiantes de diseño digital,

    un enfoque muy simple basado en la web se utiliza para habilitar el acceso remoto a una

    FPGA. Los conmutadores de la placa y las teclas están virtualizados con un formulario web

    en línea, y una cámara web se utiliza para proporcionar información al usuario [14].

    En la Universidad Northern Illinois se propone un nuevo sistema que permite realizar de

    forma remota experimentos de laboratorio en el aula o en cualquier punto de internet

    disponible. El sistema está dirigido a los cursos de diseño digital utilizando plataformas

    FPGA, este sistema se llama FPGA e-Lab. El sistema está construido con un kit Xilinx

  • 19

    Spartan-3E Starter K y utilizando escritorio remoto de Microsoft XP como el medio para

    acceder al Lab PC desde una ubicación remota [15].

    Frente a las enormes oportunidades para la enseñanza en línea que proporciona la realidad

    aumentada la Universidad de Huelva, Huelva, España propone un nuevo concepto, el

    laboratorio remoto aumentada (ARL). Por medio de técnicas de realidad aumentada, ARL

    permite al estudiante experimentar sensaciones y explorar las experiencias de aprendizaje que,

    en algunos casos, podrán ser superiores a las ofrecidas por las clases de laboratorio

    tradicionales. Gracias a cuestionarios se recogieron los resultados que destaca que el uso de

    ARL mejora los resultados de los estudiantes. El potencial de ARL para configurar diferentes

    experimentos de la misma configuración física es prácticamente ilimitada [16].

    La educación virtual o comúnmente denominada e-learning, durante las últimas décadas ha

    adquirido gran relevancia teniendo un gran auge en las instituciones educativas que las lleva a

    repensar sobre la integración de las nuevas tecnologías dentro de sus programas educativos,

    debido a que hoy en día todo tiende a difundirse mediante el internet [17] .

    Centrándonos en la implementación de laboratorios remotos dentro de la electrónica orientada

    al uso de las FPGAs, encontramos que se han implementado sistemas que permiten de una

    manera remota configurar y/o mediante una interfaz gráfica interactuar con la FPGA para

    realizar prácticas con circuitos digitales, sin embargo al revisar las referencias se observa que

    actualmente en el mundo no se ha implementado un dispositivo que permita interactuar de

    manera remota con los puertos de expansión de la tarjeta de desarrollo DE 2 y permitiéndole

    al usuario diseñar y probar circuitos locales.

    Se consultaron diferentes autores que implementaron proyectos donde se requería multiplexar

    un gran número de pines, los proyectos fueron consignados en la Tabla I, con el objetivo de

    comparar y observar que método se adecua más a los requerimientos de nuestro sistema. La

    búsqueda bibliográfica se centra en la consulta de proyectos de investigación que hayan

    realizado una multiplexación alrededor de 40 pines, este criterio de búsqueda es relevante

    para el desarrollo de la presente investigación debido a que el kit de desarrollo DE 2

    seleccionado dispone de puertos GPIO con 40 terminales.

  • 20

    Tabla I. Diferentes formas de multiplexar gran número de pines

    Ref. Titulo Año

    [18] A distributed algorithm for resource allocation in OFDM cognitive radio systems 2011

    [19] A statically scheduled time-division-multiplexed network-on-chip for real-time systems 2012

    [20] A study of the routing and spectrum allocation in spectrum sliced elastic optical path

    networks

    2011

    [21] Joint subcarrier pairing and power allocation for OFDM transmission with decode-and-

    forward relaying

    2011

    [22] Multi-FPGA system with unlimited and self-timed wave-pipelined multiplexed routing 2011

    [23] Prototipo software para la implementación de la multiplexación en tres frecuencias

    diferentes

    2005

    [24] Sistema de adquisición para el control de un DIAM mediante guante de datos

    2009

    [25] Sistema de captura de 10 señales de baja velocidad a través del puerto paralelo 2006

    [26] Sistema de comunicación utilizando la técnica de espectro disperso de secuencia directa

    y sistema robusto de sincronismo

    2002

    En 2011 dos investigadores dan solución al problema de asignar subcanales en un sistema de

    radio cognitivo, con ayuda de un esquema de modulación empleando el multiplexado

    ortogonal de división de frecuencias (OFDM) que maximiza el rendimiento del sistema al

    mismo tiempo que garantiza que se cumplan los requisitos de la tasa nominal del usuario [18].

    Las ventajas de la multiplexación por OFDM son cuando los recursos son abundantes, intenta

    maximizar el rendimiento del sistema y mayor rendimiento que un algoritmo normal.

    En 2012 un grupo de la universidad técnica de Dinamarca presentó el diseño de una red de

    conmutación por circuitos (NoC) basada en multiplexación por división de tiempo (TDM)

    para su uso en sistemas en tiempo real. El documento presenta un diseño de hardware

    amigable con FPGA, que es simple, rápido y consume recursos mínimos [19]. Las ventajas de

    la multiplexación por TDM son útil en sistemas en tiempo real, amigable con FPGAs y fácil

    de implementar para circuitos digitales.

    En 2011, en la universidad estatal de Georgia, un grupo de investigadores desarrollo un

    proyecto de investigación que demostró que la red de enrutamiento de longitud de ondas

    tradicionales (WRNs), en comparación a una red basada en multiplexación ortogonal de

    división de frecuencias (OFDM) llamada SLICE (Spectrum-sliced Elastic Optical Path)

    disminuye el uso de recursos del espectro. Los investigadores estudiaron exhaustivamente el

    problema de la asignación de enrutamiento y asignación de espectro (RSA) en la red SLICE

    [20]. Las ventajas de la multiplexación por OFDM son mayor eficiencia de espectro y

    minimización de recursos (potencia).

  • 21

    En 2011 un grupo de investigadores en su proyecto consideraron un sistema de multiplexado

    de división de frecuencias ortogonales (OFDM) de punto a punto con un relé decodificador.

    La transmisión consiste en dos saltos. La fuente transmite en el primer salto, y el relé

    transmite en el segundo salto. Cada salto ocupa un intervalo de tiempo. El relé es semidúplex

    y capaz de decodificar el mensaje en una subportadora particular en un intervalo de tiempo y

    volver a codificarlo y reenviarlo en una subportadora diferente en el intervalo de tiempo

    siguiente. Así, cada mensaje se transmite en un par de subportadoras en dos saltos. Se supone

    que el destino es capaz de combinar las señales de la fuente y el relé pertenecientes al mismo

    mensaje [21]. Las ventajas de la multiplexación por OFDM son maximizar la tasa del sistema

    y minimizar el consumo de potencia en cada transmisión.

    En 2011 un investigador empleó la multiplexación por división de tiempo (TDM) para

    solucionar el problema de encontrar el prototipo de hardware correcto que pueda manejar

    todos los diferentes tipos de gráficos de enrutamiento para varios diseños y aplicaciones. Se

    emplea una FPGA. La conectividad se basa en conmutadores y no tuvo limitación de

    enrutamiento en su diseño [22]. Las ventajas de la multiplexación por TDM son los cortos

    retrasos entre los pines de la FPGA y permite manejar gran número de pines.

    En 2005 en Colombia, un grupo de la universidad autónoma de Bucaramanga desarrolló un

    prototipo software para la implementación de la multiplexación en tres frecuencias diferentes;

    el cual captura tres señales senoidales, las modula por amplitud (AM) y las suma para dar

    origen a una señal lista a transmitir por un canal de comunicación [23]. Las ventajas de la

    multiplexación por frecuencia son facilitar la propagación de la señal de información por

    cable o por el aire y evita interferencia entre canales.

    En 2009 un estudiante de la universidad Simón Bolívar en Venezuela, empleó la

    multiplexación por división de tiempo (TDM) para adquirir datos en un proyecto de un

    manipulador industrial que sirvió de ayuda a un operario en el movimiento de cargas pesadas.

    Mediante una tarjeta de adquisición Single-Board RIO de National Instrument se adquirieron

    los datos analógicos y se desarrollaron puertos seriales utilizando el FPGA de la tarjeta [24].

    Las ventajas de la multiplexación por TDM son fácil de implementar con FPGA y poder

    adquirir un gran número de datos.

  • 22

    En 2006 en México un grupo de investigadores implementaron un sistema encargado de

    digitalizar diferentes señales analógicas para poder ser procesadas a través de una PC, por lo

    que se requiere la sincronización y multiplexación correcta para convertir y transmitir la señal

    deseada. La aplicación específica para la que se emplea es la captura de señales proveniente

    de un guante de datos, aunque puede ser empleada para cualquier tipo de señal requerida que

    cumplan con los niveles de voltaje de entrada requeridos por el sistema entre 0 V y 5 V [25].

    Las ventajas de la multiplexación por tiempo son poder manejar gran número de canales y

    fácil de implementar con circuitos digitales.

    En 2002 dos investigadores en la universidad Don Bosco en el Salvador propusieron en su

    proyecto desarrollar un sistema de comunicación unidireccional con tecnología de espectro

    disperso de secuencia directa con sincronismo robusto, el módulo debe resolver dos

    problemas de sincronismo, uno es el sincronismo de transmisión de datos que debe

    mantenerse aún si momentáneamente se pierde el enlace entre el transmisor y el receptor; el

    otro es el de sincronizar la codificación de cada bit de datos con el código PN de la secuencia

    directa. El proyecto fue posible con la ayuda de saltos de tiempo (Time hopping, TH) [26],

    Las ventajas de la técnica TH son mayores velocidades de transmisión.

    Existen diversas técnicas de multiplexar, pero en cuanto a señales digitales, la manera más

    sencilla es la multiplexación Time División Multiplexing (TDM), ya que es fácilmente

    controlable mediante electrónica digital [27]. Por esta razón, en este proyecto se multiplexa

    por USB, esta es una de las muchas aplicaciones de la TDM, la cual permite enviar una mayor

    cantidad de datos en un menor tiempo comparada con una TDM implementada con

    algoritmia.

    Se consultaron diferentes autores que implementaron proyectos donde se requería establecer

    una comunicación remota entre dos computadoras distantes, los proyectos fueron consignados

    en la tabla II, con el objetivo de comparar y observar que protocolo de comunicación se

    adecua más a los requerimientos de nuestro sistema.

  • 23

    Tabla II. Diferentes protocolos de comunicación remota entre ordenadores

    Ref. Titulo Año

    [28] BENDER 3.0, una plataforma robótica remota para aplicaciones docentes: aplicación a

    programación concurrente

    2010

    [29] Sistema de entrada / salida para didáctica de microcontroladores y sistema de control

    remoto asociado

    2008

    [30] Laboratorio remoto para la enseñanza de redes TCP/IP 2002

    [31] Control y supervisión remotos de experiencias de laboratorio 1997

    [32] Plataforma computacional para el control de un robot vía Internet 2009

    [33] Control remoto multiplataforma basado en software libre: automatización de sesión VNC

    integrando gestión de incidencias e inventario

    2010

    [34] Implementación de SSH sobre un sistema auto-reconfigurable 2006

    [35] Implementación de un laboratorio remoto para la realización de prácticas de robótica

    móvil

    2008

    [36] Implementación y ejecución de un protocolo de transferencia de archivos (FTP) 2012

    [37] Dispositivo de transmisión remota de archivos por TCP/IP para registradores de eventos

    utilizados en el transporte subterráneo

    2009

    Dos investigadores diseñaron un pequeño robot móvil llamado BENDER 3.0, para que un

    grupo de estudiantes pertenecientes a la Universidad de Huelva en España, pudieran

    desarrollar prácticas control y/o simulación de forma remota empleando el Remote

    Desktop Protocol para establecer la comunicación entre los ordenadores [28].

    Un grupo de investigadores pertenecientes a la universidad Carlos III de Madrid en España,

    desarrollaron una placa llamada E/S MICROS v2.0 que permite desarrollar programas

    instructivos y fácilmente modificables, esto con el objetivo de centrar las prácticas de diversas

    asignaturas en la programación de microprocesadores, adicionalmente desarrollaron una

    aplicación para que los estudiantes puedan trabajar con una placa de manera remota a través

    de internet empleando el Remote Desktop Protocol [29].

    Un grupo de investigadores desarrollaron un laboratorio remoto para la enseñanza a distancia

    de algunos conceptos de redes relacionados con la interconexión de redes mediante IP y

    problemas con el uso conjunto de IPv4 e IPv6. El acceso al laboratorio es a través de Telnet,

    permitiéndoles a los usuarios realizar y estudiar distintas configuraciones de una red privada

    [30].

    Un grupo de investigadores en 1997 presentaron una propuesta para la supervisión y control

    centralizado de experimentos, con la capacidad de acceso remoto empleando Telnet. La

    computadora posee un sistema operativo multitareas (Linux) que le permite atender a sus

    distintos periféricos y conectarse a una red para la transferencia de datos a través de FTP [31].

  • 24

    En el 2009 un grupo de investigadores motivados por la tele robótica (control de robots a

    distancia), implementaron una plataforma computacional para el control de un manipulador a

    distancia, usando el Internet y VNC como medio de comunicación entre computadores. La

    plataforma tiene como objetivo facilitar el acceso a la experimentación remota en el área de

    robótica para beneficio de estudiantes, maestros e investigadores [32].

    En el 2010 un investigador desarrolló en el Centro de Atención a Usuarios (CAU) de la

    Universidad del País Vasco, un sistema de gestión del acceso mediante control remoto para la

    resolución de incidencias basado en software libre, la principal función del sistema es

    facilitar la conexión remota por parte de los técnicos del CAU a los equipos de los usuarios de

    los servicios informáticos que previamente hayan solicitado su intervención. La conexión

    remota se hace por medio de VNC [33].

    Un grupo de investigadores implementan Secure Shell (SSH) para hacer una reconfiguración

    parcial en tiempo de ejecución de un sistema embebido auto-reconfigurable basado en un

    dispositivo Xilinx Spartan-3, el procesador MicroBlaze y el sistema operativo uCLinux [34].

    Un grupo de investigadores desarrolló una plataforma distribuida para que estudiantes puedan

    realizar prácticas con robots móviles a través de Internet. Para lograr un acceso remoto se

    utiliza SSH [35].

    Un investigador preocupado por la necesidad de las empresas de prestación de servicios de

    transferir archivos de gran tamaño, de forma inmediata, segura y eficiente; implementó con la

    ayuda de FTP un sistema de manera que desde un equipo cliente se conecte a un servidor para

    descargar ficheros desde él o para enviar archivos, independientemente del sistema operativo

    utilizado en cada equipo [36].

    Un investigador frente a la necesidad de extraer archivos que se encuentran en los

    registradores de eventos, colocados en los diferentes convoys que dan servicio a los usuarios

    diariamente en el sistema de transporte colectivo (Metro) de la Ciudad de México, diseño un

    sistema que realiza la extracción de estos archivos por el puerto RS232 de un simulador del

    registrador de eventos, con el objetivo de hacer la transmisión de forma remota del archivo a

    un servidor virtual para que esté disponible en una base de datos para su análisis, todo

    realizado en tiempo real [37].

  • 25

    Como se pudo observar basados en los artículos de la tabla 2, hay muchos protocolos y

    software que permiten establecer una comunicación remota entre dos ordenadores distantes,

    pero en este proyecto se emplea RDP, debido a que al ser desarrollado por Microsoft, su

    sistema operativo Windows tiene la tecnología RDP incluida, brindando facilidad de

    adquisición a los estudiantes, si se tiene en cuenta que actualmente Windows es el sistema

    operativo más distribuido en el mercado [38], y este sistema operativo es el usado en las salas

    de informática de la universidad de San Buenaventura Cali.

    B. Marco conceptual.

    En la implementación de un sistema de acceso a puertos generales de entrada y salida a

    distancia para una FPGA se deben tener claro ciertos conceptos electrónicos y conceptos

    técnicos de la comunicación como el esquema de comunicación, comunicación asíncrona,

    comunicación USB, comunicación UART, Remote Desktop Protocol, comunicación

    sincrónica, comunicación I2C, técnicas de multiplexación y demultiplexación, FPGAs y

    circuitos digitales.

    1) Esquema de comunicación.

    Entender que la comunicación remota, es aquella encargada de establecer una transferencia

    de datos entre dos o más dispositivos distantes, para que esta sea posible se debe contar con 3

    componentes muy importantes (fig. 3):

    Emisor o servidor: Es la fuente principal de información y encargado en distribuir o

    enviar dicha información a otros dispositivos.

    Receptor o cliente: Dispositivo que recibe la información enviada por el transmisor.

    Medio: Medio por el cual viaja la información, para las comunicaciones remotas

    principalmente es el aire.

    Fig. 3. Esquema de comunicación

  • 26

    La información en electrónica puede ser transmitida de dos formas distintas:

    Serial o secuencial: Los datos se envían de un bit a la vez, en secuencia sobre un canal

    de comunicación o un bus. Entre los buses más conocidos que implementan

    comunicación de tipo serial se encuentran: I2C y USB [39].

    Paralelo: Todo los bits de información se envían al mismo tiempo, cada bit es enviado

    por una línea de comunicación, por esta razón, es necesario que el número de líneas de

    comunicación sea igual al de bits de información a trasmitir [39].

    Para entender un sistema de comunicación es necesario entender que existen dos formas de

    comunicación entre dispositivos, comunicación sincrónica y asincrónica.

    2) Comunicación asincrónica.

    En una comunicación asincrónica (async), la información es sincronizada individualmente por

    el uso de elementos de arranque y parada, es decir los dispositivos receptor y transmisor se

    sincronizan en el momento que se envía la información, para iniciar o detener la

    sincronización el dispositivo transmisor primero envía una señal conocida como bit de

    arranque, en secuencia con los datos de información y finalizando con una señal denominada

    bit de parada y el dispositivo receptor identifica el inicio de la trama de dato y finaliza con la

    llegada del bit de parada. Por esta razón, la transmisión asincrónica comúnmente es conocida

    como START (arranque) y STOP (parada) [40]. En la comunicación asincrónica hay un

    intervalo de tiempo variable entre cada información transmitida [41]. Entre los protocolos de

    comunicación asincrónica más conocidos encontramos los siguientes:

    Comunicación USB

    El Universal Serial Bus (USB), es un bus que nos permite conectar dos dispositivos de forma

    serial asíncrono para el intercambio de información. Hoy en día es uno de los estándares de

    conexión más utilizado entre ordenadores y periféricos como teclados, ratones, memorias

    USB, entre otros. Frente a que este estándar industrial es empleado de forma masiva y a nivel

    mundial contando con una gran gama de dispositivos, se optó emplearlo para la

    comunicación entre un ordenador y un microprocesador (PIC) para intercambiar información

    [42].

  • 27

    Protocolo de Comunicación UART

    El Universal Asynchronous Receiver-Transmitter (UART), es un protocolo de comunicación

    asíncrono que emplea una línea para transmitir y otra para recibir datos. Este protocolo está

    presente en casi todos los tipos de controladores existentes hoy en día, permitiendo la

    comunicación entre periféricos y computadores. Su principal desventaja es que las

    conexiones se realizan punto a punto, por lo que no se puede considerar un bus de

    comunicación, sino más bien un protocolo de intercambio de información entre dos

    dispositivos [43].

    El propósito de UART es convertir los bytes del PC del bus paralelo a una trama de datos

    serial, puede soportar el envío de 1 hasta 23 bit, pero normalmente se hace en tramas de 8

    bits, esto permite el uso de código ASCII para descifrar los datos enviados [44].

    Gracias a UART es posible crear una comunicación entre dos PICs en este proyecto.

    Remote Desktop Protocol (RDP)

    Es una herramienta software desarrollada por Microsoft, permite a un cliente comunicarse

    con un servidor de Windows de forma remota, donde el usuario puede ejecutar aplicaciones

    en el servidor desde un cliente remoto y/o proporcionar escritorios remotos virtuales con la

    misma apariencia que el escritorio en el cliente [45], [46]. El RDP es empleado en este

    proyecto para establecer una comunicación remota por medio de internet entre dos

    ordenadores distantes, denominados usuario y servidor.

    3) Comunicación sincrónica.

    En una comunicación sincrónica (sync), no existe un intervalo entre cada información

    transmitida, ya que los datos son transmitidos con un intervalo de tiempo constante, existen

    dos métodos de sincronismo [41].

    El primer método consiste en transmitir bits de sincronismos al inicio de la información, estos

    bits son utilizados por el dispositivo receptor para el ajuste del rango de velocidad del

    dispositivo transmisor. Después de recibir los caracteres de sincronismo, el dispositivo

    receptor espera listo a recibir los datos.

    El segundo método es utilizar relojes tanto en el dispositivo transmisor como receptor, en este

    caso se emplean conexiones extras que envían la información para la sincronización de los

  • 28

    datos. El reloj de transmisión le indica al dispositivo cuándo puede enviar un dato, y el reloj

    de recepción le advierte al dispositivo cuándo espera recibir un dato.

    La transmisión sincrónica ofrece ventaja cuando se transmite gran cantidad de información,

    debido a que no se desperdicia tiempo transmitiendo bits de arranque y parada entre cada

    información, como sucede en la comunicación asincrónica [41]. Uno de los protocolos de

    comunicación sincrónica más utilizado en las industrias es el I2C.

    Protocolo de Comunicación I2C

    I2C es un bus de comunicación serial sincrónica entre dispositivos mediante dos líneas de

    comunicación, una de datos SDA (Serial Data) y otra de reloj SCL (Serial Clock).Cada

    dispositivo que se conecta al bus es direccionable por software, a través de una dirección

    única dentro del bus [47], y actuará en el bus como maestro (dispositivo que inicia la

    transferencia en el bus y el que genera la señal de reloj SCL) o esclavo (dispositivo

    direccionado que recibirá la orden del maestro y responderá en consecuencia). La principal

    ventaja de este bus es el ahorro de cables y de conexiones en comparación con una conexión

    paralela [48].

    Este protocolo es muy utilizado en la actualidad en industrias, principalmente para comunicar

    microcontroladores o microprocesadores con otros dispositivos que permitan este protocolo.

    4) Técnicas de multiplexación y demultiplexación.

    Multiplexación: es una técnica que permite la transmisión de varias señales por un mismo

    medio [23], con la temporización adecuada. Entre los diferentes tipos de multiplexación

    están:

    Mutiplexación por División de Frecuencia (FDM). En este método la banda de

    frecuencia se divide en canales para transmitir mucha información en un único

    sistema de comunicación [23]. La interferencia es minimizada colocando una banda

    de guarda entre los canales [26].

    Multiplexación por División de Tiempo (TDM). Las señales son muestreadas y

    entrelazadas en orden para ser transmitidas por el mismo canal [26]. Entre mejor sea

    las técnicas de muestreo y filtrado menor será la interferencia. Entre sus principales

    aplicaciones tenemos comunicación UART y el bus USB [49].

  • 29

    Acceso Múltiple por División de Código (CDMA). Es un sistema de espectro disperso,

    donde al usuario se le asigna un código de dispersión único. Las comunicaciones con

    un usuario particular se logran empleando un código de dispersión idéntico al de ese

    usuario. El usuario de ese código de dispersión podrá procesar la señal, pero le

    aparecerá como ruido a cualquier otro usuario. Esto permite que un número de

    usuarios ocupe la misma banda de frecuencias simultáneamente sin interferir unos con

    los otros [26]. Un ejemplo es la telefonía móvil o Wifi [26].

    Demultiplexación: Es el proceso inverso a la multiplexación [23], consiste por medio de una

    temporización adecuada recuperar cada una de las señales transmitidas por un mismo medio.

    5) Field Programmable Gate Arrays (FPGA).

    Es un dispositivo lógico programable que implementa la lógica multi-nivel [50], contiene una

    matriz de compuertas programables, la parte programable incluye puertos de entrada y salida

    (E/S) y bloques lógicos configurables (CLBs) [51].

    Las FPGA pueden ser borradas y reprogramadas, lo cual permite una gran flexibilidad de

    diseños, permitiendo la implementación de circuitos sencillos como lo es una compuerta

    lógica, hasta circuitos complejos como en el caso de un system-on-chip.

    La FPGA que se encuentra en la tarjeta DE 2 es la Cyclone II 2C35 la cual en sus interfaces

    E/S tiene 2 puertos de expansión, de los cuales 72 son de E/S, los cuales tienen sus circuitos

    de protección (ver fig. 5) y 8 distribuidos en GND y VCC. Cada puerto de expansión está

    organizado de a 40 pines (fig. 4) (36 E/S, 2 GND, 1 fuente DC 5v y 1 fuente DC 3,3v).

    Fig. 4. Estructura del puerto GPIO de la altera DE 2 [52]

  • 30

    Fig. 5. Circuito de protección de pines GPIO de la altera DE 2 [52]

    La FPGA es utilizada junto al kit de desarrollo DE 2 para realizar diferentes estructuras de

    circuitos digitales o lógicos, los cuales se identifican porque su información se expresa de

    forma binaria, es decir, solo consta de dos posibles valores que son “0” y “1”, estos valores

    representan un intervalo de voltaje. La forma como responde un circuito digital respecto a

    una entrada se conoce como lógica del circuito, es por esto que comúnmente se refieren a los

    circuitos digitales como circuitos lógicos.

    Generalmente los circuitos digitales empleados en un sistema digital moderno son circuitos

    integrados [53]. Los circuitos integrados más elementales se conocen como compuertas, una

    compuerta tiene dos o más entradas y produce una única salida en función a una operación

    lógica [54]. Entre las compuertas más comunes se encuentran: AND, OR y NOT. Al

    combinarse las compuertas dan origen a múltiples dispositivos digitales como: multiplexores,

    decodificadores, flip-flops, memorias, microcontroladores, microprocesadores, entre otros.

  • 31

    III. DESARROLLO

    Habiendo planteado los conceptos y teorías sobre las cuales se enmarca el presente proyecto,

    empezamos con las etapas de desarrollo e implementación las cuales consisten en la

    identificación de los elementos que presentan las mejores características para la elaboración

    de un diseño del circuito del dispositivo y la lógica utilizada en el sistema, representada en los

    diagramas de flujo de los códigos, para al final ejecutar todo lo investigado en la producción

    final del dispositivo.

    Para identificar los elementos que presenten las mejores características se explicara el diseño

    que se quiere para cada dispositivo. El dispositivo usuario (ver fig. 6) requiere de un

    microprocesador que se pueda conectar por USB y tenga suficientes pines como para abarcar

    los que representaran a los 36 pines del puerto GPIO y tener pines para poder conectar una

    interfaz de usuario realizada por una pantalla LCD y un centro de mando constituido por 5

    pines.

    Fig. 6. Esquema del dispositivo usuario

    El dispositivo servidor (ver fig. 7) contiene un esquema más sencillo solo debe cumplir con el

    poder abarcar los 36 pines que se conecten a el puerto GPIO y la conexión por USB.

  • 32

    Fig. 7. Esquema dispositivo servidor

    A. Diseño del sistema

    En el inicio de esta etapa, se comenzó con la identificación de los posibles insumos y

    diferentes tecnologías que podríamos usar para la elaboración del sistema general, para al

    final seleccionar los que presenten mayor fiabilidad en la ejecución del montaje final, se

    caracterizó de forma que los elementos cumplieran con las características que debería tener

    cada uno de los dispositivos, tales como protección del circuito, cantidad de pines necesarios,

    tecnologías de comunicación por USB.

    Para identificar los mejores elementos (ver tabla III) se realizó una identificación de todos los

    posibles elementos que pudieran cumplir con las características de cada dispositivo

    Tabla III. Lista comparativa de circuitos integrados e insumos

    Nombre del insumo Nº Elementos Características Empaquetado

    Conector macho (20x2) pin heads 1

    Conector Hembra (20x2) pin

    heads 1

    Diode schottky 40

    IO expander

    lm8330 2

    104 pines

    400 KHz fast I2C

    I2C compatible

    DSBGA

    TCA9548A

    i2c 10

    Multiplexer 8 canales

    Comunicación en I2C

    TSSOP

    VQFN

    TCA6418E

    io expander 6

    18 pines

    1MHZ fast mode I2C DSBGA

    TUSB6250

    USB 2.0 2 16 pines 80/TQFP

  • 33

    Tabla III. Lista comparativa de circuitos integrados e insumos (continuación)

    Nombre del insumo Nº Elementos Características Empaquetado

    TL16C754 CUART 2

    Memoria fifo 64

    4 canales

    CPU interface x86

    LQFP

    CY8C4014LQI-422 2 I2C fast mode 400Kbps QFN-24

    PSoC® 4 CY8CKIT-049 4

    Prototyping Kits 2 USB- I2C Kit de desarrollo

    PIC 18F4550 2

    40 pines

    1-UART

    1-I2C

    1-USB Modules

    40/PDIP

    44/QFN

    44/TQFP

    En la tabla III se enfatizó en la cantidad de elementos, característica y empaquetado, debido a

    que esto determinará el tamaño del dispositivo y la facilidad al momento de cargar con él,

    pero para poder seleccionar estos elementos se debe identificar el microcontrolador en el cual

    nos basaremos en la realización de los procesos lógicos de cada dispositivo.

    Para esto se realizó una tabla comparativa entre 5 posibles microcontroladores (ver tabla IV)

    para identificar las características que cumple respecto a cada dispositivo.

    Tabla IV. Lista comparativa de microcontroladores

    Nombre Cantidad Descripción Empaquetado

    CY8C4014LQI-422 2 20 pines

    I2C fast mode 400Kbps QFN-24

    PSoC® 4 CY8CKIT-049 4xxx

    Prototyping Kits 2

    36 pines

    USB- I2C Kit de desarrollo

    PIC 18F4550 2

    40 pines

    1-UART

    1-I2C

    1-USB Modules

    40/PDIP

    44/QFN

    44/TQFP

    PIC 18F67J94 2

    64 pines

    4-UART

    2-I2C

    1-USB Modules

    64/QFN

    64/TQFP

    PIC 18F94J97 2

    100 pines

    4-UART

    2-I2C

    1-USB Modules

    100/TQFP

    Teniendo en cuenta las características de cada microcontrolador (presentadas en la tabla IV) a

    continuación se explicará las restricciones al diseño y montaje del sistema embebido:

  • 34

    La restricción al usar el microcontrolador CY8C4014LQI-422 es el tamaño que tendría el

    dispositivo final debido a la cantidad de elementos a usar. Por ejemplo:

    1. El microcontrolador no cuenta con un módulo USB para la conexión a PC, por lo que

    se debería usar un módulo USB por I2C (TUSB6250).

    2. El número de pines en el microcontrolador es 24 y el dispositivo propuesto en este

    proyecto requiere como mínimo de 48, teniendo en cuenta que un puerto I2C se usaría

    para el modulo USB (TUSB6250).

    3. El empaquetado presenta una dificultad al momento de soldar por posibles daños.

    Las restricciones al usar el PSoC® 4 CY8CKIT-049 4 Prototyping Kits ver figura 4, aunque

    este kit de desarrollo tiene su propio modulo USB, presento lo siguiente:

    1. Un número limitado de pines, volviendo a la necesidad de un módulo de expansión de

    puerto.

    Fig. 8. Empaquetado PSoC® 4 CY8CKIT-049 4 Prototyping Kits [55]

    Con el PIC18F4550 su datasheet explica que en su hardware contiene el modulo USB e

    investigando el uso de este nos encontramos con la librería en el compilador PIC C

    (usb_cdc.h) la cual describe el hardware y periféricos del módulo USB, así como también la

    definición de funciones para enviar y recibir datos, todo esto en un lenguaje de programación

    C y el empaquetado de este PIC es el PDIP el cual presenta la facilidad al momento de

    elaboración y manejo de una plaqueta, sin embargo la restricción que presenta es el tamaño

    del dispositivo al final de su elaboración, debido a que:

    Teniendo un número de 40 pines, no son los suficientes debido a que faltarían los

    usados en la interfaz del usuario que serían parte de una pantalla LCD y 5 pulsadores

    lo que impondría el usar una expansión de puertos u otro microcontrolador para hacer

    uso de más puertos lo que agrandaría el dispositivo.

  • 35

    Las restricciones presentadas si se usara el PIC18F67J94 serán el tamaño del dispositivo, la

    dificultad al cambiar a un elemento superficial y la realización del código que define el

    funcionamiento del sistema, ya que:

    1. El número de pines es 64 se pierde la cantidad de 20 pines debido a que unos son de

    alimentación y otros se usan para hardware de funcionamiento del microcontrolador,

    dejándolo con un número menor a 40 pines planteando la necesidad de agregar un

    elemento para suplir el número de pines necesarios.

    2. El empaquetado del microcontrolador presenta la dificultad del error al soldar por las

    pequeñas dimensiones de sus pines.

    Aunque el PIC18F97J94 cumple con el número de pines necesarios para poder hacer uso del

    puerto de expansión de los kits de desarrollo de FPGA Altera y la interfaz de usuario, tiene

    unas restricciones en la elaboración del dispositivo tales como:

    1. El hardware que compone el modulo USB no está descrito en la librería de PIC C, esto

    debido a que este microcontrolador fue desarrollado recientemente.

    2. Su empaquetado al ser TQFP (superficial) al momento de querer realizar pruebas se

    dificultaría, ya que este no presta la facilidad del poder montar y desmontar si se

    necesita una corrección.

    3. No es de fácil adquisición en Colombia lo que en el momento de algún daño

    presentaría problemas de tiempo con él envió del elemento.

    Bajo estas premisas llegamos a la conclusión de que aun con la obligación de un módulo de

    expansión de puertos, el PIC18F4550 es el más apropiado, las razones de esta selección son el

    poder usar una librería, permitiéndonos realizar pruebas de código de una forma sencilla, la

    posibilidad de simulación, permitiendo realizar pruebas de funcionamiento sin la necesidad de

    un montaje físico, permitiéndonos prever correcciones en los dispositivos.

    Por estas razones se prescindió del PIC18F97J94 ya que aunque es el más calificado por

    cumplir con el número de pines y tener el modulo USB, el no poder realizar pruebas por su

    tipo de empaquetado acarrea al proyecto retrasos en el cronograma planteado y adicción de

    actividades no planeadas, como el estudio y la modificación de una librería que permita el uso

    de los periféricos disponibles en el microcontrolador de forma similar al PIC18F4550.

  • 36

    Seguido a seleccionar el microcontrolador podemos escoger los otros elementos que

    componen la estructura de cada dispositivo, en términos generales como conexión y

    encendido en los dos dispositivos, se tendrá 1 bornera para conexión de VCC y GND, un

    interruptor por seguridad, así como un LED que indique la energización de cada dispositivo,

    conector USB tipo hembra con un LED que indica la conexión al puerto USB del ordenador y

    teniendo en común la conexión de los pines de la FPGA se diferencia en que los del servidor

    son tipo macho 2x20 y el dispositivo usuario tiene dos hileras de 18 pines tipo hembra.

    Como una de las características de usar el PIC18F4550 es la necesidad de tener otro

    microcontrolador nos decidimos por el PIC16F877A esto debido a que los dos son de la

    misma compañía, manejan la misma estructura de puertos, trabajan en los mismos niveles

    lógicos y su current sink y current source es la misma, el hardware de UART es el mismo en

    cada uno lo que facilitara la comunicación de máquina a máquina. Por finalizar el dispositivo

    usuario tendrá la conexión del centro de mando, con 5 pulsadores y la patalla LCD.

    Luego de seleccionar todos los elementos de cada dispositivo pasamos a seleccionar el

    protocolo por el cual comunicaremos remotamente los dos dispositivos. Para esto se dispuso

    la recolección de información relacionada con los protocolos de comunicación entre

    computadores. Presentado en la tabla V.

  • 37

    Tabla V. Lista de protocolos de comunicación de red para computadores

    Nombre Conexión Compatibilidad Características

    RDP TCP/IP ( TCP

    3389)

    Windows, Linux

    (Desarrollado por

    Microsoft, basado en

    T.120)

    7 capas modelo OSI.

    Posible cambio de topologías lógicas

    (ISDN, POTS, IPX, NetBios, TCP/IP).

    Disponibilidad de 24 hs.

    No necesidad de un servidor.

    Gratuito.

    VNC RFB

    Posibilidad de diferentes

    sistemas operativos de las

    computadoras que están

    conectadas

    Gratuita y código abierto.

    No buen sistema de seguridad.

    Posibilidad de ser tunelizado por SSH o

    VPN.

    SSH TCP/IP

    Linux, para windows se

    necesita de la herramienta

    Putty (incluye puerto por

    defecto de SSH)

    Comunicación cifrada (túnel).

    Encriptación de 128 bits.

    Gratuito.

    FTP TCP/IP Windows, GNU/Linux,

    DOS y Unix

    Trabaja sobre dos canales de transmisión.

    Se utiliza por medio de comandos

    (protocolo Telnet).

    Definido por RFC 959.

    Telnet

    TCP/IP (Basada

    en un terminal

    virtual NVT)

    Windows, Linux

    Comunicación por comandos.

    Datos en formato ASCII.

    Comunicación bidireccional.

    Envío de datos no cifrado.

    Todos los protocolos de comunicaciones presentan diferentes características que le

    proporcionan ventajas a uno respecto al otro. Pero al final se escogió uno que fue el que

    presentó mejores características y funcionalidad.

    Principalmente se necesitaba buscar un protocolo de comunicación que cumpliera con los

    siguientes requisitos:

    Permitir establecer una comunicación remota mediante internet entre dos ordenadores

    distantes.

    Permitir desde el computador del usuario poder emplear los recursos (disco duro) y

    dispositivos locales (Puertos USB, Unidad CD y/o DVD, teclado, ratón, terminales,

    etc.) pertenecientes al computador del servidor. Importante porque se requiere tener

    acceso a la FPGA y el dispositivo embebido diseñado en este proyecto, ambos se

    comunican con el computador por los puertos USB, además también se necesita tener

    acceso a software y aplicaciones del computador para programar la FPGA entre otras

    aplicaciones que puedan ser de utilidad.

  • 38

    Basándonos en la tabla 5 y los requisitos anteriormente mencionados, realizamos una

    evaluación cualitativa para encontrar el protocolo de comunicación remoto que brinde las

    prestaciones para el alcance del objetivo principal de la presente investigación, se observó que

    todos los protocolos de comunicación consultados cumplen con los requisitos, por lo cual, se

    podía elegir cualquiera, pero se elige el RDP por que posee una única característica, debido a

    que es un protocolo de comunicación que permite la comunicación entre ordenadores que

    cuenten con un sistema operativo Windows, RDP al ser desarrollado por Microsoft, cada

    versión de Windows a partir de Windows XP ha tenido la tecnología RDP incluida.

    Actualmente Windows es el sistema operativo más utilizado y vendido en el mercado,

    presente en un gran número de computadoras, Por esta razón, este protocolo presenta mayor

    facilidad de adquisición para los estudiantes debido a que no se requieren instalar software

    adicional para establecer una comunicación entre ordenadores [38].

    Luego de definir los elementos del hardware para el proyecto, se diseñan los diagramas

    electrónicos basándose en librerías que describen la forma en cómo se componen los

    elementos seleccionados, la cantidad de pines y sus dimensiones.

    Este proyecto centra sus diseños en una las tarjetas DE-2 y DE-0 de la empresa ALTERA

    Corp, ambos kits de desarrollo, incorpora 2 puertos de expansión o comúnmente denominado

    puertos GPIO, cada puerto posee 40 pines distribuidos de la siguiente manera:

    36 pines configurables para entrada o salida.

    4 pines para la alimentación (1 pin para 5 Voltios, 1 pin para 3,3 Voltios y 2 pines

    corresponden a GND).

    De forma que los circuitos externos conectados se pueden alimentar directamente a través de

    los cables de bus. Por lo tanto fueron diseñados para ser compatibles con los conectores de la

    tarjeta [56].

    Como se definió anteriormente, la elaboración de los dispositivos se realizará usando un

    microcontrolador como maestro, el cual tendrá en su arquitectura interna la conexión por

    USB y comunicación UART, para comunicar con el segundo microcontrolador el cual se

    usará como expansión de puertos, determinado como esclavo. El microcontrolador esclavo en

    el dispositivo usuario tendrá la interfaz con la que se realizará las configuraciones de los

    puertos, y además permitirá iniciar la comunicación.

  • 39

    La división de tareas (comunicación USB con puertos de expansión e interfaz de usuario) se

    realizó con el objetivo de distribuir la carga de tareas entre los microcontroladores (fig. 9).

    Fig. 9. Esquema del hardware del dispositivo usuario

    Además también podemos observar en la fig. 9 se encuentra dos pin heads al lado izquierdo

    de la pantalla LCD, estos están conectados directamente a VCC y VSS, los cuales van a servir

    para alimentación del circuito que esté usando el usuario.

  • 40

    Fig. 10. Hardware maestro dispositivo usuario

    En la fig. 10 se observa la distribución del maestro en el dispositivo usuario, es decir el

    circuito de encendido, los LEDs indicadores de encendido del dispositivo y energización en

    el conector USB. La organización de los pines está distribuidos por pin heads los cuales serán

    distribuidos en el PCB de la plaqueta.

    Fig. 11. Hardware esclavo dispositivo usuario

    Se observa la distribución del esclavo en el dispositivo usuario (fig. 11), el cual contiene la

    interfaz de usuario, que está compuesto por la pantalla LCD y un medio táctil con 5

    pulsadores como centro de mando, los cuales están distribuidos en el puerto A en los pines A1

  • 41

    (izquierda), A2 (arriba), A3 (Ok), A4 (abajo), A5 (derecha) del microcontrolador 16F877A

    esto para que sea de un modo más interactivo y personalizado.

    Luego, para el proyecto se diseñó el esquema del circuito del dispositivo servidor, se observa

    en la fig. 12. El diseño del circuito, contrario al del usuario, debía prestar la facilidad de la

    conexión con los puertos de expansión de la tarjeta altera DE-2, es decir debía coincidir en el

    orden de los pines y las tierras del puerto de expansión para poder referenciar los niveles

    lógicos 0 y 1.

    Fig. 12. Esquema del hardware dispositivo servidor

    Basándonos en los esquemas de los circuitos de hardware de cada dispositivo, es decir en las

    conexiones identificadas entre los pines, se diseña en Eagle el PCB del circuito de los

    dispositivos para saber el tamaño y la distribución de los elementos usados, y se realiza el

    circuito final de cada dispositivo.

    Los tamaños son diferentes en cada dispositivo, esto debido a la diferencia en el número de

    elementos que usa el dispositivo usuario con el dispositivo servidor como vemos en la fig. 13,

    esa diferencia se indica en los pulsadores y el LCD que son utilizados para la interfaz de

    usuario. La organización de los pines en el dispositivo usuario es de forma lineal por

    comodidad del cableado a los circuitos que se quieran plantear y debajo de estos se encuentra

  • 42

    una conexión VCC y VSS para energizar dichos circuitos y que sus niveles lógicos sean

    referenciados con la misma tierra.

    Fig. 13. PCB Circuito del dispositivo usuario

    El circuito del dispositivo servidor se puede observar en la fig. 14, como se mostró en la fig.

    12, la organización del circuito final fue más cómoda por tener menos elementos que

    compongan el circuito.

  • 43

    Fig. 14. PCB circuito del dispositivo servidor

    Luego de abarcar el diseño físico de los dispositivos y entender las dimensiones que pueden

    tener, bajo las especificaciones de las tecnologías escogidas, seguimos con la estructura de la

    programación que ejecuta el microcontrolador, lo que conllevo a realizar diagramas de flujo

    para así poder tener una base de cómo efectuar un código ordenado y estructurado en los

    pasos que debe seguir el dispositivo.

    Al ser dos dispositivos diferentes (