sistema de acceso a puertos generales de entrada y salida a...
TRANSCRIPT
-
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
-
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 (