DISEÑO E IMPLEMENTACIÓN DE UN SISTEMA DE CONTROL DE ACCESO
GILSON DAVID MONTOYA OSPINA
JAMES ALEXIS LONDOÑO ORTEGA
UNIVERSIDAD DE SAN BUENAVENTURA SECCIONAL MEDELLÍN
FACULTAD DE INGENIERÍAS
INGENIERÍA ELECTRÓNICA
MEDELLÍN
2016
DISEÑO E IMPLEMENTACIÓN DE UN SISTEMA DE CONTROL DE ACCESO
GILSON DAVID MONTOYA OSPINA
JAMES ALEXIS LONDOÑO ORTEGA
Proyecto presentado para optar al título de Ingeniero Electrónico
Asesor
Gustavo Meneses, Ingeniero Eléctrico
Msc. En Ingeniería
UNIVERSIDAD DE SAN BUENAVENTURA SECCIONAL MEDELLÍN
FACULTAD DE INGENIERÍAS
INGENIERÍA ELECTRÓNICA
MEDELLÍN
2016
DEDICATORIA
A mis padres Fabio y Alcira, por su inmenso amor y cariño, por enseñarme a mí y a mi hermana
que la constancia y el sacrificio todo lo pueden.
A Sara, por su amor y comprensión, por acompañarme durante todos los años que duró este
proyecto.
James Londoño
AGRADECIMIENTOS
Mi eterna gratitud a mi familia, a mis padres por su apoyo incondicional, a mi hermana por su
inmenso cariño.
Agradecimiento especial nuestro asesor Ing. Gustavo Meneses, sin quien este proyecto no
hubiese salido a flote.
Un agradecimiento especial al Ing. Enver Alvarez, sus constantes ayudas y asesorías permitieron
la culminación de este proyecto.
CONTENIDO
DEDICATORIA ............................................................................................................................... 3
AGRADECIMIENTOS ................................................................................................................... 4
CONTENIDO ................................................................................................................................... 5
LISTA DE TABLAS ........................................................................................................................ 8
LISTA DE FIGURAS ...................................................................................................................... 9
INTRODUCCIÓN ......................................................................................................................... 11
JUSTIFICACIÓN ........................................................................................................................... 12
OBJETIVOS ................................................................................................................................... 13
1. OBJETIVO GENERAL ......................................................................................................... 13
2. OBJETIVOS ESPECÍFICOS ................................................................................................. 13
1. MARCO TEÓRICO ................................................................................................................... 14
1.1. CONTROL DE ACCESO ................................................................................................... 14
1.1.1. Tarjetas Magnéticas ...................................................................................................... 14
1.1.2. Sistemas Biométricos .................................................................................................... 15
1.1.3. Tecnología RFID .......................................................................................................... 16
1.1.3.1. Componentes de Hardware ................................................................................... 19
1.1.3.2. Componentes Software ......................................................................................... 19
1.1.3.3. Transponder, Tag O Etiquetas ............................................................................... 19
1.1.3.4. Etiquetas Pasivas ................................................................................................... 20
1.1.3.5. Etiquetas Activas ................................................................................................... 20
1.1.3.6. Etiquetas Semi-Pasivas ......................................................................................... 21
1.1.3.7. Lector RFID .......................................................................................................... 21
1.1.3.8. Rfid Middleware ................................................................................................... 22
1.1.3.9. Caracterización de un sistema RFID ..................................................................... 22
1.1.3.10. Ventajas de la identificación por radiofrecuencia ............................................... 23
1.2. MICROCONTROLADOR .................................................................................................. 25
1.2.1. Núcleo de un Microcontrolador .................................................................................... 26
1.2.2. Arquitecturas de Computador ....................................................................................... 26
1.2.3. Procesador en Detalle ................................................................................................... 29
1.2.4. Registros ....................................................................................................................... 30
1.2.5. Unidad de Control ......................................................................................................... 31
1.2.6. Unidad Aritmética y Lógica .......................................................................................... 31
1.2.7. Buses ............................................................................................................................. 32
1.2.8. Conjunto de Instrucciones ............................................................................................. 32
1.2.9. Memoria ........................................................................................................................ 33
1.2.9.1. ROM de máscara ................................................................................................... 34
1.2.9.2. OTP One Time Programmable .............................................................................. 34
1.2.9.3. EPROM Erasable Programmable Read Only Memory ......................................... 34
1.2.9.4. EEPROM ............................................................................................................... 35
1.2.9.5. FLASH .................................................................................................................. 35
1.2.10. Interrupciones ............................................................................................................. 36
1.2.11. Periféricos ................................................................................................................... 37
1.2.11.1. Entradas salidas de propósito general ................................................................. 37
1.2.11.2. Temporizadores y contadores .............................................................................. 37
1.2.11.3. Conversor A/D .................................................................................................... 38
1.2.11.4. Puerto serie .......................................................................................................... 38
1.2.11.5. Puerto serie sincrónico ........................................................................................ 38
1.2.11.6. Otros puertos de comunicación ........................................................................... 39
1.2.11.7. Comparadores ...................................................................................................... 39
1.2.11.8. Modulador de ancho de pulsos ............................................................................ 39
1.2.11.9. Memoria de datos no volátil ................................................................................ 39
1.2.12. Arduino ....................................................................................................................... 39
1.2.12.1. Arduino Mega ..................................................................................................... 40
1.2.12.2. Arduino Uno ........................................................................................................ 41
1.2.12.3. Arduino Nano ...................................................................................................... 41
1.3. COMUNICACIÓN ETHERNET ........................................................................................ 43
1.3.1. Dirección IP .................................................................................................................. 43
1.3.2. Dirección MAC ............................................................................................................. 44
1.3.3. Diferencias entre UDP y TCP ....................................................................................... 45
1.4. MYSQL ............................................................................................................................... 47
2. ESTADO DEL ARTE ................................................................................................................ 49
3. METODOLOGÍA ...................................................................................................................... 52
3.1. SELECCIÓN MÓDULO RFID ........................................................................................... 52
3.1.1. PIN OUT ....................................................................................................................... 52
3.2. CÓDIGO ARDUINO .......................................................................................................... 57
3.3. CÓDIGO PHP Y BASE DE DATOS.................................................................................. 58
4. RESULTADOS .......................................................................................................................... 60
4.1. DIAGRAMAS DE FLUJO .................................................................................................. 60
4.2. DISEÑO ELECTRÓNICO .................................................................................................. 69
4.3. PRUEBAS FINALES .......................................................................................................... 71
4.3.1. Montaje en Board .......................................................................................................... 71
4.3.2. Inicio de servidor XAMPP y MySQL, conexión con la base de datos. ........................ 71
4.3.3. Lectura de Tarjeta ......................................................................................................... 72
4.3.4. Inserción en la base de datos del ID de la tarjeta .......................................................... 73
4.3.5. Aplicación WEB ........................................................................................................... 73
4.4. MANUAL DE USUARIO ................................................................................................... 76
5. CONCLUISIONES .................................................................................................................... 85
6. TRABAJOS FUTUROS ............................................................................................................ 86
REFERENCIAS ............................................................................................................................. 87
GLOSARIO .................................................................................................................................... 90
LISTA DE TABLAS
Tabla 1: Rango de frecuencias ...................................................................................................... 18
Tabla 2: Diferencias entre UDP y TCP [25] ................................................................................. 45
Tabla 3: Asignación de pines tarjeta MIFARE ............................................................................. 53
LISTA DE FIGURAS
Figura 1: Tecnología de Identificación por Banda Magnética ...................................................... 15
Figura 2: Tecnología de Identificación biométrica ....................................................................... 16
Figura 3: Tarjetas MIFARE .......................................................................................................... 20
Figura 4: Lector RFID RC522 ...................................................................................................... 22
Figura 5: Estructura básica de un microcontrolador ..................................................................... 26
Figura 6: Arquitectura Von Neumann .......................................................................................... 27
Figura 7: Arquitectura Harvard ..................................................................................................... 28
Figura 8: Estructura básica de un procesador ............................................................................... 30
Figura 9: Arduino Mega ................................................................................................................ 41
Figura 10: Arduino Nano .............................................................................................................. 42
Figura 11: Diagrama de flujo de diseño del sistema ..................................................................... 52
Figura 12: Diagrama de conexión Arduino Mega – Tarjeta MIFARE ......................................... 53
Figura 13: Comando Select Mifare Card ...................................................................................... 54
Figura 14: Aplicativo Hercules ..................................................................................................... 55
Figura 15: Modulo RFID – RC522 ............................................................................................... 56
Figura 16: Diagrama de flujo Setup .............................................................................................. 61
Figura 17: Diagrama de flujo sub rutina Loop .............................................................................. 62
Figura 18: Diagrama de flujo sub rutina Loop 2 ........................................................................... 63
Figura 19: Diagrama de flujo sub rutina Loop 3 ........................................................................... 64
Figura 20: Diagrama de flujo sub rutina conexión MySQL ......................................................... 64
Figura 21: Diagrama de flujo sub rutina enableETH0 .................................................................. 64
Figura 22: Diagrama de flujo sub rutina aperturaPuerta ............................................................... 65
Figura 23: Diagrama de flujo sub rutina cierrePuerta ................................................................... 65
Figura 24: Diagrama de flujo sub rutina enableRFID .................................................................. 65
Figura 25: Diagrama de flujo sub rutina lecturaTarjeta ................................................................ 66
Figura 26: Diagrama de flujo sub rutina dump byte array ............................................................ 66
Figura 27: Diagrama de flujo sub rutina obtenerUID ................................................................... 67
Figura 28: Diagrama de flujo sub rutina temporizador ................................................................. 67
Figura 29: Diagrama de flujo sub rutina consultarTarjeta ............................................................ 68
Figura 30: Diseño electrónico ....................................................................................................... 69
Figura 31: Diseño de PCB ............................................................................................................ 70
Figura 32: Montaje en board ......................................................................................................... 71
Figura 33: Monitor Serial .............................................................................................................. 72
Figura 34: Lectura de Tarjeta ........................................................................................................ 72
Figura 35: Inserción en la base de datos del ID de la tarjeta ........................................................ 73
Figura 36: Histórico de las transacciones de ingreso de usuario .................................................. 74
Figura 37: Histórico de las transacciones negadas ....................................................................... 74
Figura 38: Agregar Docente .......................................................................................................... 75
Figura 39: Panel de Control XAMPP ........................................................................................... 76
Figura 40: Interfaz Web ................................................................................................................ 77
Figura 41: Opciones del Sitio Web ............................................................................................... 77
Figura 42: Opciones de exportar ................................................................................................... 78
Figura 43: Administrar Usuarios .................................................................................................. 79
Figura 44: Administrar Docentes .................................................................................................. 80
Figura 45: Administrar Tarjetas .................................................................................................... 80
Figura 46: Administrar Registros .................................................................................................. 81
Figura 47: Tarjetas no Registradas ............................................................................................... 81
Figura 48: Usuarios ....................................................................................................................... 82
Figura 49: Docentes ...................................................................................................................... 83
Figura 50: Tarjetas ........................................................................................................................ 83
11
INTRODUCCIÓN
El presente proyecto se realizó en la ciudad de Medellín, departamento de Antioquia durante el
periodo comprendido entre el año 2015 - 2016 y en la misma participaron los estudiantes Gilson
David Montoya y James Alexis Londoño. El propósito del presente proyecto es diseñar e
implementar un sistema de control de acceso, mediante la utilización de técnicas de desarrollo de
software en lenguaje HTML, el uso de la tecnología RFID y una plataforma de desarrollo libre
denominada Arduino.
Dicho proyecto está concebido utilizando tarjetas RFID (Identificación por Radio Frecuencia),
las que proveen al portador un código único en el mundo que lo identifica dentro del sistema.
Con el fin prestar una mayor flexibilidad y agilidad en la administración del sistema se entregó
un aplicativo WEB con el cual, mediante la autenticación requerida, se podrán generar diferentes
tipos de reportes, agregar o borrar usuarios y desbloquear la puerta si es requerido por motivos de
seguridad.
12
JUSTIFICACIÓN
La tecnología RFID remonta sus orígenes a la segunda guerra mundial, en sus inicios no hubo un
gran auge, sólo hasta la modernidad donde los costos han bajados ostensiblemente y la facilidad
de acceder a sus componentes se ha incrementado, han surgido diversas aplicaciones que han
sabido aprovecharla. Hoy en día su uso es extensivo en sistemas de automatización industrial,
seguridad electrónica, control entre otros.
Actualmente las instituciones de educación superior más reconocidas del país han adoptado
medidas internas de control para el acceso a los diferentes espacios por parte de los usuarios, con
el fin de optimizar la administración, generando un ambiente más amigable y una mejor atención.
Estas instituciones están adoptando diferentes herramientas tecnológicas que permiten
automatizar procesos para reducir costos de operación, ejerciendo un control más específico.
La Universidad de San Buenaventura seccional Medellín, en su área de ingeniería electrónica,
cuenta con espacios para la formación de estudiantes donde es evidente la necesidad de
implementar un control para restringir el ingreso exclusivamente a las personas que deben hacer
uso de estos recintos. Adicionalmente la universidad no cuenta con bases fundamentadas en
estadísticas o datos para tomar decisiones estratégicas en pro de un mejoramiento continuo.
Un sistema de control de acceso trae múltiples beneficios como, administrar el acceso, obtener un
registro detallado de los usuarios que ingresan al laboratorio, generar reportes estadísticos con
niveles de ocupación para detectar horas pico y horas valle y controlar el préstamo de módulos
con equipos, lo cual generaría una mejor atención al usuario. Adicionalmente la facultad de
ingeniería en su área de electrónica contaría con una herramienta para analizar el uso del tiempo
extra clase por parte de los estudiantes en cada una de sus asignaturas, logrando generar
alternativas de nuevas metodologías o áreas de estudio para involucrar a los usuarios con la
institución siendo más atractiva para los usuarios externos.
Desde el punto de vista logístico, este sistema ayudaría a tomar decisiones sobre la estrategia de
como ofrecer los servicios del laboratorio para usuarios externos apoyándose en datos de niveles
de ocupación. Por otra parte, serviría de prueba piloto para que la universidad evalúe la
posibilidad de controlar otros espacios haciendo uso de esta solución en un futuro.
13
OBJETIVOS
1. OBJETIVO GENERAL
Diseñar e implementar un sistema de control de acceso basado en tecnología RFID y una
plataforma WEB.
2. OBJETIVOS ESPECÍFICOS
Diseñar un sistema de control que administre el acceso mediante tecnología RFID.
Realizar pruebas de funcionamiento y validación del sistema de control de acceso con la
infraestructura existente en la universidad.
Implementar un sistema de control de acceso capaz de generar reportes de uso, reservas
entre otros.
Implementar un aplicativo web amigable e intuitivo que le permita al usuario administración
de forma remota dicho espacio.
14
1. MARCO TEÓRICO
1.1. CONTROL DE ACCESO
Una definición general de control de acceso, hace alusión al mecanismo en función de la
identificación ya autenticada que provee el acceso a datos o recursos. Es común encontrar
controles de acceso para múltiples aplicaciones y en diversas formas. Por ejemplo, es usual
encontrar controles de acceso por software cuando ingresamos una contraseña para acceder a un
e-Mail, o usar la huella dactilar para desbloquear un celular, en estos casos se usa un control de
acceso para acceder a información. Otro ejemplo común es cuando se usa identificación
biométrica para acceder a una oficina, en estos casos se usa la seguridad electrónica para
administrar el acceso a recursos físicos. [1]
Para nuestro caso en particular, el control de acceso es la habilidad de conceder o denegar el
acceso a un espacio físico (áreas restringidas según el tipo de visitante). El control de acceso
físico está enfocado en tres preguntas: ¿quién?, ¿cuándo? y ¿cómo?; es decir, ¿quién está
autorizado para entrar o salir?, ¿Cuándo entrará o saldrá del espacio? y ¿cómo lo realizará?
Actualmente hay gran variedad de tecnologías con la capacidad de suplir esta necesidad, algunas
de ellas son:
1.1.1. Tarjetas Magnéticas
Son tarjetas que contienen una banda magnética que posee un código que permite identificarse
rápidamente. Este sistema utiliza señales electromagnéticas para registrar y codificar la
información. Una de las aplicaciones más comunes de esta tecnología son las tarjetas de crédito.
Las tarjetas magnéticas cuentan con una alta difusión y popularidad, entre otras cosas por su bajo
costo.
Sin embargo, su uso continuo las deteriora físicamente debido a la fricción en el momento de la
lectura; también si la tarjeta es acercada a una fuente electromagnética, relativamente fuerte, la
información contenida en ella puede ser modificada, con lo cual pierde su utilidad. [2]
15
Figura 1: Tecnología de Identificación por Banda Magnética
Fuente: http://entrytec.com.mx/
1.1.2. Sistemas Biométricos
Estos sistemas están dotados de la capacidad de reconocer una característica personal, donde los
lectores reconocen automáticamente la característica física del usuario, eliminando por completo
el uso de tarjetas electrónicas o magnéticas.
Principalmente se trabaja en el reconocimiento de huellas dactilares, reconocimiento de iris,
reflexión de retina, geometría de la mano, geometría facial, termografía mano-facial y patrón de
voz.
La biometría ofrece una ventaja significativa: el alto grado de seguridad, dado que sólo identifica
la característica de la persona autorizada por lo que es difícil la suplantación de información; los
rasgos físicos son únicos e intransferibles.
Su principal desventaja es el alto costo de su implementación, por el elevado costo de sus
lectores. Otro factor es la reducida velocidad de lectura, si se compara con otros sistemas, y la
carencia de una eficiencia necesaria para grandes corporaciones, pues los retardos en las lecturas
de personal se traducen en disminución en tiempos en las labores. [2]
16
Figura 2: Tecnología de Identificación biométrica
Fuente: http://revistaitnow.com/
1.1.3. Tecnología RFID
RFID son las siglas de Radio Frequency IDentification, en español identificación por
radiofrecuencia. Es una tecnología capaz de almacenar y recuperar datos remotos (de un objeto,
animal e inclusive personas). Se basa en la transmisión de datos a través de campos
electromagnéticos y una identificación sin contacto visual directo, a diferencia de los sistemas de
códigos de barras. Emplea dispositivos denominados etiquetas, tarjetas, transponedores o tags
RFID.
Esta tecnología es usada en sistemas que tienen la habilidad de transmitir una identidad única, a
través de ondas de radio.
Sus uso y difusión son relativamente nuevos, aunque sus orígenes se remontan a la década de los
40‟s. Pero no se había explotado hasta nuestros días por el elevado costo que conllevaba su
implementación.
La radiofrecuencia hace alusión a la corriente alterna (AC) con características tales que, si esta es
alimentada a una antena, se genera un campo electromagnético adecuado para la transmisión de
datos de forma inalámbrica.
Estas frecuencias cubren un rango significativo del espectro de radiación electromagnética (Tabla
1) desde 3KHz, frecuencia que se encuentra aún dentro de rango audible, hasta miles de GHz. [3]
Banda Abre-
viatura
Frecuencia
y
longitud de
onda (aire)
Ejemplos de uso
17
Frecuencia
tremendamente
baja
TLF < 3 Hz
> 100,000 km
Frecuencia en la que trabaja la actividad
neuronal
Frecuencia
extremadament
e baja
ELF
3–30 Hz
100,000 km –
10,000 km
Actividad neuronal, Comunicación con
submarinos
Super baja
frecuencia
SLF
30–300 Hz
10,000 km –
1000 km
Comunicación con submarinos
Ultra baja
frecuencia
ULF
300–3000 Hz
1000 km –
100 km
Comunicación con
submarinos, Comunicaciones en minas a
través de la tierra
Muy baja
frecuencia
VLF 3–30 kHz
100 km – 10 km
Radioayuda, señales de tiempo, comunicación
submarina, pulsómetros inalámbricos, Geofísic
a
Baja frecuencia LF
30–300 kHz
10 km – 1 km
Radioayuda, señales de tiempo, radiodifusión
en AM (onda larga) (Europa y partes de
Ásia), RFID, Radioafición
Frecuencia
media
MF 300–3000 kHz
1 km – 100 m
Radiodifusión en AM (onda media),
Radioafición, Balizamiento de Aludes
Alta frecuencia HF
3–30 MHz
100 m – 10 m
Radidifusión en Onda corta, Banda
ciudadana y radioafición, Comunicaciones de
aviación sobre el horizonte, RFID, Radar,
Comunicaciones ALE, Comunicación cuasi-
vertical (NVIS), Telefonía móvil y marina
Muy alta
frecuencia
VHF 30–300 MHz
10 m – 1 m
FM, Televisión, Comunicaciones con aviones
a la vista entre tierra-avión y avión-avión,
Telefonía móvil marítima y terrestre,
Radioaficionados, Radio meteorológica
Ultra alta
frecuencia
UHF 300–3000 MHz
1 m – 100 mm
Televisión, Hornos microondas,
Comunicaciones por
18
microondas, Radioastronomía, Telefonía
móvil,Redes
inalámbricas, Bluetooth, ZigBee, GPS,
Comunicaciones uno a uno
como FRS y GMRS, Radioafición
Super alta
frecuencia
SHF 3–30 GHz
100 mm – 10 mm
Radioastronomía, Comunicaciones por
microondas, Redes
inalámbricas, radares modernos,Comunicacion
es por satélite, Televisión por satélite, DBS,
Radioafición
Frecuencia
extremadament
e alta
EHF 30–300 GHz
10 mm – 1 mm
Radioastronomía, Transmisión por
microondas de alta frecuencia, Teledetección,
Radioafición, armas de microondas, Escaner
de ondas milimétricas
Terahercios or
Frecuencia
tremendamente
alta
THz or
THF
300–3,000 GHz
1 mm – 100 nm
Radiografía de terahercios – un posible
substituto para los rayos X en algunas
aplicaciones médicas, Dinámica molecular
ultrarápida, Física de la materia
condensada, Espectroscopía mediante
terahercios, Comunicaciones/computación
mediante terahercios, Teledetección
submilimétrica, Radioafición
Tabla 1: Rango de frecuencias
Fuente: https://cienciacontraincendios.com
La RFID emplea el rango de acción de la radiofrecuencia para identificar y rastrear información
sin la necesidad de un contacto directo entre el transmisor y el receptor. Sus componentes
principales son una etiqueta y un lector.
Las etiquetas RFID (RFID Tag, en inglés) son unos dispositivos pequeños, que pueden ser
adheridos o incorporados a un producto, un animal o una persona. Contienen antenas para que les
19
permiten recibir y responder a peticiones por radiofrecuencia desde un emisor-receptor RFID.
Las etiquetas pasivas no necesitan alimentación eléctrica interna, mientras que las activas sí lo
requieren. Una de las ventajas del uso de radiofrecuencia (en lugar, por ejemplo, de infrarrojos)
es que no se requiere visión directa entre emisor y receptor.
Es una tecnología muy versátil, de fácil uso, que cuenta con diversas aplicaciones, desde la
trazabilidad y control de inventario, hasta la localización y seguimiento de bienes y personas, o
como es nuestro caso de estudio, el control de acceso a establecimientos comerciales y
educativos.
El sistema RFID está compuesto por una serie de subsistemas los cuales se dividen en dos
componentes principales:
1.1.3.1. Componentes de Hardware
Transponder, TAG o etiqueta: Es el objeto que será identificado.
Lector: Dependiendo del diseño y la tecnología usada, podría ser un dispositivo lector o
lector/escritor.
Antena: Es el conductor para la comunicación de datos entre el tag y el lector.
1.1.3.2. Componentes Software
Software del Sistema RFID: Es una colección de funciones necesarias para habilitar la
interacción básica entre el tag y el lector.
RFID Middleware: Consiste en un conjunto de componentes software que actúan como
puente entre los componentes de un sistema RFID y software de aplicación del
computador.
Plataforma Web: La aplicación del computador recibe datos procesados y normalizados
enviados de la etiqueta, vía lector y el software RFID middleware.
1.1.3.3. Transponder, Tag O Etiquetas
Es el dispositivo que contiene los datos en un sistema RFID, usualmente consiste en un elemento
acoplador y un microchip; este último se activa en la presencia de una señal enviada por un
lector, que se encuentre dentro de una zona de interacción entre los componentes. [4]
Las etiquetas se utilizan dependiendo de su fin, entre los tipos de etiquetas están:
20
Etiquetas Pasivas
Etiquetas Activas
Semi- Pasivos
Semi- Activos
Figura 3: Tarjetas MIFARE
Fuente: http://portonesmonterrey.com/
1.1.3.4. Etiquetas Pasivas
Las etiquetas pasivas carecen de alimentación, son en efecto dispositivos puramente pasivos. La
señal que les llega de los lectores, induce una corriente eléctrica mínima suficiente para operar el
circuito integrado del tag, que a su vez genera y transmite una respuesta al lector. Se compone de
una antena y un microchip. Generalmente tienen distancias de uso práctico comprendidas entre
los 10cm, llegando hasta unos pocos metros según la frecuencia de su funcionamiento, e diseño y
tamaño de la antena.
Al carecer de autonomía energética, el dispositivo puede ser bastante pequeño: puede incluirse en
un adhesivo e incluso insertarse bajo la piel (tags de baja frecuencia). [1]
1.1.3.5. Etiquetas Activas
Las etiquetas activas incluyen su propia alimentación de poder, que incorporada, alimenta al
microchip y el transmisor para propagar su señal al lector y así establecer una comunicación con
este. Generalmente usan una pila pequeña como alimentación.
Estos tags son mucho más fiables que las etiquetas pasivas, dado que su capacidad de establecer
sesiones con el reader reduce los errores.
21
Estas etiquetas poseen la habilidad de transmitir señales a largas distancias y en ambientes
hostiles, como ambientes compuestos por agua y metales. Muchos de estos tags tienen rangos
efectivos de cientos de metros y una vida útil de sus baterías de hasta 10 años. [5]
1.1.3.6. Etiquetas Semi-Pasivas
Las etiquetas semi-pasivas traen consigo una fuente de alimentación, que se usa principalmente
para energizar un microchip y no para trasmitir señales; para efectuar la transmisión de datos usa
la energía del lector.
Tienen un funcionamiento similar al de las etiquetas pasivas RFID. Su principal diferencia radica
en que con la alimentación de la batería se posibilita una lectura a mayor distancia y se elimina la
necesidad de diseñar una antena que recoja potencia de una señal entrante, adicionalmente estas
responden con mayor rapidez, por lo que son más robustas en el radio de lectura que las pasivas.
[6]
1.1.3.7. Lector RFID
Este elemento permite la comunicación en un sistema RFID. Se encarga de enviar una señal de
radio frecuencia para detectar los posibles tags en un rango de acción determinado, se emplea
para validar las múltiples etiquetas en un corto espacio de tiempo.
La máxima distancia a la que se pude establecer comunicación entre el lector y la tarjeta depende
de dos elementos a saber: la potencia del lector y la frecuencia empleada para la comunicación.
[7]
22
Figura 4: Lector RFID RC522
Fuente: http://www.lelong.com.my/
1.1.3.8. Rfid Middleware
Al software que se encuentra en el lector RFID se le denomina Middleware. Es un componente
de vital importancia en cualquier sistema RFID, el middleware adquiere los datos en bruto del
lector y los pasa a un sistema back-end. [8]
El sistema middleware se ocupa de:
1. Recuperación de datos del lector.
2. Filtrar datos que llegan al sistema y no pertenecen a este.
3. Generar notificaciones de movimiento o inventario.
4. Seguimiento de tags y funcionamiento de lectores de la red.
5. Captura de historiales de las tarjetas.
1.1.3.9. Caracterización de un sistema RFID
Un sistema RFID se caracteriza por una cantidad de variables que en conjunto logran que el
sistema cumpla su función.
Entre estas se encuentra el alcance de lectura, seguridad de transmisión, velocidad de
transmisión, rango de frecuencia entre otros.
A la hora de diseñar un sistema RFID se deben tener en cuenta factores como la cantidad de
información que la tarjeta puede almacenar y a su vez transmitir, la distancia en la que se puede
establecer comunicación entre el lector y el tag, la cantidad de datos que puede obtener el lector
de la etiqueta al momento de una lectura, la capacidad que tenga el lector para mantener una
comunicación entre varios tags.
Otra variable importante es la frecuencia de funcionamiento del sistema. La frecuencia determina
unos rangos de transmisión y recepción de datos que se especifican en la tabla 1. [9]
23
Tabla 2: Frecuencias RFID y características
Fuente: http://www.fqingenieria.com/
1.1.3.10. Ventajas de la identificación por radiofrecuencia
Seguridad
Los tags RFID están diseñados para que no puedan duplicarse, cada tarjeta tiene consigo un
código único, esto no permite que distintos usuarios puedan tener una tarjeta duplicada.
Sin necesidad de alineación o línea vista
A diferencia de otros sistemas, éste es el más práctico y ágil dado que no es necesario un contacto
físico entre el tag y el lector, no es necesario que pasar la tarjeta por una ranura y esta a su vez
esta puede ser leída por ambos lados.
24
Lectores sin mantenimiento
Al carecer de partes móviles se garantiza un correcto funcionamiento de los lectores,
prácticamente sin límite de uso y total ausencia de mantenimiento. Es posible instalarlos en
ambientes hostiles, de intemperie sin que esto los afecte.
Tarjetas sin desgaste
Al no haber contacto físico entre las tarjetas y el lector, no hay desgaste físico, esto garantiza, a
diferencia de bandas magnéticas donde hay un alto desgaste por fricción, una vida útil mucho
más larga tanto para el lector como los tags.
Re-escribible
Algunas tarjetas RFID permiten la lectura y escritura en múltiples ocasiones.
Factibilidad
La tecnología RFID es muy versátil y pude ser usada en una gran cantidad de campos y
aplicaciones.
Otras Tareas
Las tarjetas RFID también pueden ser diseñadas para emplearse en otras funciones como medir
temperatura ambiente o humedad relativa. [2]
25
1.2. MICROCONTROLADOR
Un microcontrolador no es otra cosa que un computador encapsulado en un circuito integrado. Al
igual que un computador se compone de un procesador, memoria, puertos de entrada y salida
(E/S) y periféricos. Todo esto embebido en un chip. En 1976 INTEL sacó al mercado el primer
microcontrolador precisamente como un “computador en una pastilla”.
Los microcontroladores son tan comunes que se estima que, por cada procesador de propósito
general, se venden más de 100 microcontroladores. Se estima que la tasa de ventas se incremente
en los próximos años.
En el mercado hay muchos tipos de microcontroladores con diversas prestaciones, memorias,
periféricos y demás características. Cada fabricante ha creado sus propios microcontroladores,
otros han copiado y mejorado los existentes, el resultado: una cantidad extraordinaria de
microcontroladores abundan en el mercado. Una razón para esto es el hecho de que los
microcontroladores deben estar muy especializados y optimizados, dado que formaran parte
integral del sistema que controlen. Al existir una gama tan amplia de aplicaciones, hay que crear
también una gama muy amplia de microcontroladores que se adapten a los requerimientos del
mercado. [10]
En general, todos los microcontroladores obedecen a una estructura definida que los fabricantes
deben respetar.
En la figura 5 se detalla la estructura básica de cualquier microcontrolador, en los que siempre se
encontrarán:
Procesador
Memoria de programa
Memora de datos
Buses
Periféricos
Puertos de E/S
26
Figura 5: Estructura básica de un microcontrolador
Fuente: https://jonybatery7.wordpress.com/
En la figura se detalla la arquitectura de un microcontrolador dentro de un circuito integrado, con
procesador (CPU), memoria, buses, puertos de entrada salida y periféricos. Fuera del encapsulado
se encuentran otros componentes que complementan los periféricos internos y diferentes
dispositivos que se pueden conectar a los pines de entrada/salida. Igualmente se conectarán a los
pines del microcontrolador la alimentación, circuito oscilador y otros dispositivos necesarios para
que el microcontrolador pueda trabajar.
1.2.1. Núcleo de un Microcontrolador
Dentro del núcleo de un microcontrolador se encuentran el procesador y la memoria, de forma tal
que conforme la arquitectura de un computador. [11]
1.2.2. Arquitecturas de Computador
Actualmente existen dos arquitecturas de computador, empleadas por los microcontroladores:
Von Neumann y Harvard. La diferencia principal está en la conexión de la memora con el
procesador y los buses que ambas necesitan.
27
La arquitectura Von Neumann está altamente difundida en los computadores personales, en esta
sólo hay una memoria, donde coexisten los datos y las instrucciones de programa, a los cuales se
accede con un bus de dirección, uno de control y uno de datos.
Hay que comprender que, en un computador, cuando se carga un programa en memoria, a este se
le asigna un espacio de direcciones de la memoria que se divide en segmentos, típicamente se
encuentran: código (programa), pila y datos. Esta es la razón por la que podemos hablar de
memoria como un todo, aunque existen distintos dispositivos física en el sistema (RAM, DD,
FLASH).
Para el caso particular de los microcontroladores, hay dos tipos de memorias bien definidas:
memora de programas (FLASH, PROM, EEPROM, ROM u otro tipo no volátil) y memoria de
datos (SRAM). Para este caso la organización es diferente a la de un computador, dado que
existen circuitos diferentes para cada memoria y típicamente no se usan los registros de
segmentos, sino que la memoria se encuentra segregada y el acceso a cada tipo de memoria
depende netamente de las instrucciones del procesador.
Aunque en los sistemas con arquitectura Von Neumann la memoria está segregada, y hay
diferencias respecto a la definición convencional de esta arquitectura; los buses para acceder a los
distintos tipos de memoria son los mismos, del procesador únicamente salen el bus de datos, el de
control y el de direcciones. Para concluir, la arquitectura no ha sido alterada, dado que la forma
como se conecta la memoria al procesador se rige por el mismo principio definido en la
arquitectura básica. [12]
Figura 6: Arquitectura Von Neumann
Fuente: https://wikiequipo04.wikispaces.com
28
Esta arquitectura es la adecuada para los computadores, dado que permite ahorrar líneas de
entrada / salida, bastante costosas, sobre todo en un sistema como un computador, donde el
procesador va montado en un socket alojado en una placa madre. Esta organización les ahorra a
los diseñadores de motherboards una cantidad considerable de problemas y minimiza el costo de
este tipo de sistemas.
La otra arquitectura es la Harvard, esta es por excelencia la usada en sistemas embebidos,
microcontroladores y supercomputadoras. Para este caso, además de la memoria, el procesador
tiene los buses segregados, de forma tal que cada tipo de memoria posee un bus de datos, uno de
control y otro de direcciones.
Figura 7: Arquitectura Harvard
Fuente: http://phxntom.blogspot.com.co/
La principal ventaja radica en que esta arquitectura permite adecuar el tamaño de los buses a las
características de cada tipo de memoria; adicional, el procesador adquiere la ventaja de poder
acceder a cada una de ellas de manera simultánea, lo que implica un aumento significativo en la
velocidad de procesamiento, usualmente los sistemas que poseen esta arquitectura pueden ser dos
veces más rápidos que los sistemas análogos con arquitectura Von Neumann.
La desventaja radica en que consume muchas líneas de entrada / salida del procesador, esta es la
razón por la que en sistemas donde el procesador se encuentra en su propio socket, solo se usa en
supercomputadoras.
En los microcontroladores y otros sistemas embebidos, donde la memoria de programa y de datos
comparte el mismo encapsulado que el procesador, esta desventaja deja de ser un problema serio,
y es la razón por la que la mayoría de microcontroladores usan la arquitectura Harvard.
29
1.2.3. Procesador en Detalle
En la década de los 70‟s, no había muchos avances en electrónica digital, en ese entonces los
primeros computadores se diseñaban para hacer unas operaciones muy sencillas, y si se deseaba
que estas máquinas hicieran cosas diferentes, era necesario hacer cambios muy significativos en
el hardware. Fue a comienzos de los 70‟s que una compañía japonesa le solicitó a una joven
empresa norteamericana desarrollar un conjunto de circuitos, para desarrollas una calculadora de
bajo costo. INTEL asumió el reto, y entre los circuitos solicitados desarrolló algo totalmente
nuevo hasta la fecha: el primer microprocesador integrado. En 1971 salió al mercado el 4004, una
máquina digital sincrónica compleja. La ventaja que ofrecía este circuito, está en que
internamente aloja los circuitos digitales capaces de hacer operaciones para el procesamiento y
cálculo de datos. Sus entradas son una secuencia de códigos bien definidos, que permiten realizar
operaciones específicas cuyo resultado se rige por el tipo de operación y operandos involucrados.
[13]
Hasta acá, no hay nada especial en un microprocesador, la diferencia está en que, con la
combinación adecuada en la secuencia de entrada, el poder saltar hacia adelante o atrás en la
secuencia de códigos en base a ordenes específicas, su ejecución secuencial, permite que el
microprocesador efectúe muchas operaciones complejas, no contempladas en lo códigos básicos.
El invento del microprocesador integrado puede no haber sido una revelación para sus creadores,
pues se sustentó en los avances existentes hasta la fecha en el campo de la electrónica digital,
pero sin lugar a dudas sentó un precedente en la revolución técnico científica. Permitió el
desarrollo de una gran cantidad de aplicaciones impensadas. Como conclusión, el mundo era uno
antes del microprocesador y otro muy diferente después de su invención.
Aunque desde su invención en los 70‟s, el microprocesador ha tenido importantes cambios, hay
aspectos básicos que no han cambiado y constituyen la base de cualquier microprocesador.
En la figura 8 se detalla la estructura típica de un microprocesador, con sus elementos
fundamentales.
30
Figura 8: Estructura básica de un procesador
Fuente: https://saragoitia.wordpress.com
1.2.4. Registros
Los registros son un espacio de memoria reducido donde se alojan los datos para varias
operaciones que deben realizar los demás circuitos del procesador. Los registros se usan para
cargar los datos desde la memoria externa o almacenarlos en ella, para almacenar los resultados
de la ejecución de instrucciones. La parte de los registros destinada a los datos es la que
determina uno de los parámetros fundamentales de cualquier microprocesador, cuando se habla
de un procesador de 8, 16, 32 o 64 bits, se hace referencia a procesadores que efectúan
operaciones con registros de estos tamaños, y claro está que esto es determinante para el
potencial del microprocesador. Cuanto mayor sea el número de bits en el registro de datos del
microprocesador, más elevadas serán sus prestaciones en cuanto a velocidad de ejecución y
capacidad de computo. Este ítem determina la potencia que se le pude asignar al resto de
componentes del sistema. Por otro lado, un procesador de 32 bits, puede que haga una operación
aritmética en un solo ciclo, mientras que uno de 16 deberá realizar varias instrucciones antes de
31
obtener el resultado, aun cuando ambos microprocesadores posean la misma velocidad de
ejecución de instrucciones. El microprocesador de 32 bits será significativamente más rápido que
el de 16, porque podrá hacer las mismas tareas en un menor tiempo. [14]
1.2.5. Unidad de Control
Esta unidad es la encargada de decodificar y ejecutar las instrucciones, el control de los registros,
los buses, la ALU y cuanto más se desee introducir dentro del microprocesador; es por tanto la
unidad más importante dentro del procesador.
Esta unidad también determina las prestaciones del microprocesador, su tipo y estructura
determina elementos como la velocidad de ejecución, el tipo de conjunto de instrucciones, tiempo
del ciclo de máquina, manejo de interrupciones, tipo de buses que soporta el sistema entre otros.
Es entonces entendible que la unidad de control sea el elemento más complejo dentro de un
procesador, usualmente está divida en unidades más pequeñas que trabajan en conjunto. La
unidad de control es un aglomerado de componentes como la unidad de ejecución, la unidad de
decodificación, controladores de buses, controladores de memoria cache, pipelines, controladores
de interrupción, entre otros, dependiendo del tipo de microprocesador. [15]
1.2.6. Unidad Aritmética y Lógica
Básicamente los procesadores son circuitos que hacen operaciones matemáticas y lógicas, a este
proceso se le dedica una unidad completa con cierta independencia. Esta unidad se encarga de
realizar sumas, restas y operaciones lógicas típicas del algebra de Boole.
En la modernidad los microprocesadores han evolucionado y poseen varias ALU‟s especializadas
en la elaboración de operaciones complejas como, por ejemplo, las operaciones en punto flotante.
Su relevancia en las prestaciones del microprocesador es también importando, dado que, según su
potencia, tareas más o menos complejas, se pueden realizar en tiempos muy cortos.
32
1.2.7. Buses
Es el medio de comunicación empleado por los diferentes componentes del microprocesador para
establecer comunicación entre sí. Una parte importante de los buses están reflejados en los pines
que posea el encapsulado del procesador.
Para el caso puntual de los microcontroladores, es raro que los buses estén reflejados en el
encapsulado del circuito, dado que usualmente estos se destinan básicamente a las entradas /
salidas de propósito general y periféricos del sistema. [16]
Existen tres tipos de buses:
Dirección: son usados para escoger el dispositivo con el que se desea trabajar, o para el
caso de las memorias, seleccionar el dato que se desea leer o escribir.
Datos
Control: son usados para gestionar los diferentes procesos de lectoescritura y controlar las
operaciones de los dispositivos del sistema
1.2.8. Conjunto de Instrucciones
Este elemento básicamente determinar que puede hacer el procesador. Son las operaciones
básicas que puede efectuar el microprocesador, que en conjunto conforma el software.
Básicamente hay dos tipos de repertorios de instrucciones, que estipulan la arquitectura del
microprocesador: CISC y RISC.
CISCO, en inglés, Complex Instruction Set Computer, o computador de conjunto de
instrucciones complejo. Los procesadores CISC poseen un conjunto de instrucciones muy amplio
que permite efectuar operaciones complejas entre operandos ubicados en los registros internos o
la memoria.
El problema está en que este tipo de repertorio obstaculiza el paralelismo entre instrucciones, es
por esto que actualmente la mayoría de los sistemas CISC de alto desempeño, convierten las
instrucciones complejas en un conjunto de instrucciones más sencillas del tipo RISC,
generalmente llamadas microinstrucciones.
RISC, del inglés Reduced Instruction Set Computer, computador con conjunto de instrucciones
reducido. Sus principales características son:
33
Pocas instrucciones
Número elevado de registros de propósito general
Instrucciones de tamaño fijo
Sólo las instrucciones de carga y almacenamiento acceden a la memoria de datos
Uno de los fuertes de este tipo de procesadores es que posibilita en gran medida el paralelismo en
la ejecución de procesos y reduce los accesos a memoria. Esta es la razón por la que los
procesadores modernos, generalmente basados en arquitecturas CISC emplean mecanismos de
traducción de instrucciones CISC a RISC, con el fin de aprovechar las ventajas de este tipo de
microprocesadores.
1.2.9. Memoria
Como se vio anteriormente, los microcontroladores poseen su memoria dentro del mismo
encapsulado, la idea fundamental es mantener la mayor cantidad de circuitos del sistema en un
solo integrado. Es por esto que los microcontroladores cuentan con una memoria reducida,
usualmente la memoria de programa no supera los 16Kb de memoria no volátil para
instrucciones, la memoria RAM no llegará a exceder los 5Kb.
La memoria RAM se destina al almacenamiento de información temporal que puede ser usada
por el microprocesador para efectuar cálculos u otro tipo de operaciones lógicas. En el espacio de
direcciones de memoria RAM se localizan además los registros de configuración, de trabajo del
procesador y trabajo de los diferentes periféricos del microcontrolador. Esta es la razón por la que
generalmente, la cantidad de memoria RAM disponible para un programador para el
almacenamiento de datos, es menor que la que puede direccionar el microprocesador.
El tipo de memoria usado en las memorias RAM de los microcontroladores es SRAM, esto evita
tener que usar sistemas de refrescamiento como es el caso de los computadores personales, que
emplean una gran cantidad de memoria, normalmente alguna tecnología DRAM. Aunque la
memoria SRAM es más costosa que la DRAM, es la adecuada para los microcontroladores dado
que estos no poseen grandes cantidades de memora RAM.
34
Para el caso de la memoria de programas se emplean distintas tecnologías, la selección de una u
otra depende de las características de las aplicaciones a desarrollar. A continuación, se describen
los 5 tipos de memorias más usados hasta la fecha.
1.2.9.1. ROM de máscara
Para estos casos el microcontrolador se fabrica con el programa. El costo inicial para producir un
circuito con estas características es alto, dado que el diseño y producción de la máscara inicial es
un proceso caro, pero cuando se necesitan cientos de miles o incluso millones de
microcontroladores destinados a una aplicación particular, el costo inicial de producción de la
máscara y del de fabricación del circuito se reparte entre todos los chips de la serie y el costo
final es mucho menor que el de sus homólogos que usen otro tipo de memoria. [17]
1.2.9.2. OTP One Time Programmable
También conocida como PROM o sencillamente ROM. Este tipo de microcontroladores con
memoria OTP sólo se pueden programar una vez. Suelen usarse en sistemas donde el programa
no requiera actualizaciones futuras y para series pequeñas. Igualmente, para sistemas que
requieran serialización de datos, guardados como constantes en la memoria de programa. [18]
1.2.9.3. EPROM Erasable Programmable Read Only Memory
Los microcontroladores que poseen este tipo de memoria son fácilmente identificables, su
encapsulado es cerámico y llevan consigo una ventana de vidrio desde la que se puede observar
la oblea de silicio del microcontrolador.
Su peculiar fabricación se debe a que las memorias EPROM son reprogramables, pero primero
deben borrarse y para esto se exponen a una fuente de luz ultravioleta, su proceso de grabación es
análogo al usado por las memorias OTP. Con la aparición de memorias EEPROM y FLASH,
menos costosas y más flexibles, este tipo de tecnología ha caído en desuso. Solían usarse en
sistemas que requieren actualizaciones de programa, procesos de desarrollo y puesta a punto. [19]
35
1.2.9.4. EEPROM
Electrically Erasable Programmable Read Only Memory. Sustituyó de forma natural a las
memorias EPROM, básicamente su diferencia está en que pueden ser borradas eléctricamente,
esto hace innecesario el uso de la ventana de cristal de cuarzo y el encapsulado cerámico.
Cuando disminuyeron los costos de los encapsulados, los microcontroladores con este tipo de
tecnología redujeron sus costos y se hicieron más cómodos para trabajar que sus equivalentes con
memorias EPROM. Adicional a esto, este tipo de microcontroladores comenzaron a usar los
sistemas de programación en circuito o ICSP (In Circuit Serial Programming) que evita el tener
que sacar el microcontrolador del socket donde se aloja para efectuar actualizaciones al
programa.
1.2.9.5. FLASH
El último avance tecnológico en memorias reprogramables para microcontroladores, han ido
sustituyendo a los microcontroladores con memoria EEPROM.
Entre otras ventajas que tienen las memorias FLASH, se le puede agregar su gran densidad en
comparación con sus predecesoras, esto permite incrementar ostensiblemente la cantidad de
memoria de programa a un bajo costo. Adicional pueden ser programadas con el mismo voltaje
de alimentación del microcontrolador, el acceso a los datos y la velocidad de programación son
superiores, sus costos de producción son más bajos, entre otros. Lo usual es encontrar que la
memoria de datos y de programas está dentro del mismo encapsulado del microcontrolador, de
hecho, en la actualidad son pocos los microcontroladores que permiten la conexión de memorias
externas al encapsulado. La principal razón para esta “limitación” está dada porque el objetivo
primordial es obtener la mayor integración posible y al conectar memorias externas se consumen
líneas de entrada / salida, que son de los recursos más valiosos en un microcontrolador.
En los casos donde se requiere una mayor cantidad de memoria, lo usual es emplear periféricos
de memoria externa, se pueden emplear memorias RAM, FLASH e incluso discos duros. Aun así,
para los cálculos y demás operaciones que requieran ser guardados de forma temporal, se emplea
la memoria RAM interna del microcontrolador.
36
1.2.10. Interrupciones
Un proceso de interrupción y su atención por parte del microcontrolador se puede desglosar en la
siguiente secuencia de acciones:
Se produce un evento del que se desea que el microcontrolador ejecute un programa particular,
este proceso tiene la particularidad que no puede esperar mucho tiempo antes de ser atendido y se
desconoce en qué momento se debe atender. [11]
El circuito designado a atender la ocurrencia del evento se activa, y acto seguido, se activa la
entrada de interrupción del microcontrolador.
Al presentarse la interrupción, la unidad de control levanta una bandera que registra que ha
ocurrido el evento; de esta manera, así las condiciones dadas para que se provocara el evento
hayan desaparecido y el circuito encargado para tal evento desactiva la entrada de interrupción al
microcontrolador, igualmente se producirá de cualquier modo, dado que ya se ha registrado la
interrupción.
La unidad de ejecución finaliza con el proceso en curso y justo en el momento de comenzar a
ejecutar la siguiente instrucción, verifica que se ha producido una interrupción.
A continuación, se activa un proceso que permite almacenar el estado actual del programa en
ejecución y saltar a una dirección particular de la memoria de programa, en donde se encuentra la
primera instrucción de la subrutina de atención a la interrupción.
Se ejecuta la subrutina de atención a la interrupción, donde se toman las acciones designadas para
atender la interrupción previamente programadas.
Al finalizar la ejecución de atención a la interrupción se retorna a la instrucción previa a la
ocurrencia de la interrupción.
El proceso de interrupción es bastante complejo, sin embargo, tiene las ventajas que obligan su
implementación: la capacidad de ser asíncrono y la velocidad. En conjunto ambas permiten el
aprovechamiento al máximo del microcontrolador.
Las interrupciones no sólo se limitan a la atención de eventos ligados a procesos que requieren
atención inmediata, también son empleadas para atender eventos de procesos asíncronos.
Las interrupciones son tan eficientes que dan la sensación que el microcontrolador está en la
capacidad de atender varias cosas al tiempo, cuando en realidad se dedica a la misma rutina,
ejecutar instrucciones una detrás de la otra. [10]
37
1.2.11. Periféricos
Al ver la organización elemental de un microcontrolador, se señaló que en su encapsulado se
encuentran un conjunto de periféricos, cuyas salidas se reflejan en los pines del microcontrolador.
A continuación, se describen algunos de los periféricos que se encuentran con mayor frecuencia
en los microcontroladores.
1.2.11.1. Entradas salidas de propósito general
Conocidos también como puerto de E/S, generalmente se agrupan en puertos de 8 bits de
longitud, se usan para leer datos del exterior o escribir desde el interior del microcontrolador, su
uso habitual es el trabajo con dispositivos sencillos como leds, relés, entre otros.
Es normal encontrar puertos de E/S con características particulares, que le facilitan manejar
salidas con determinados requerimientos especiales de interrupción o de corriente para el
microcontrolador.
Cualquier pin de E/S se puede considerar E/S de propósito general, pero como los pines de los
microcontroladores son limitados, las E/S de propósito general suelen compartir los pines con
otros periféricos. Para su uso con cualquiera de las características asignadas, se debe configurar
haciendo uso de los registros asignados para tal fin. [20]
1.2.11.2. Temporizadores y contadores
Hace referencia a circuitos síncronos usados para el conteo de pulsos que llegan a su entrada de
reloj. Si se designa la fuente de conteo al oscilador interno del microcontrolador, normalmente no
se le asigna un pin, en este caso particular trabaja como temporizador. Por otro lado, si la fuente
de conteo es externa, se le asocia un pin configurándolo como entrada, en este modo se usa como
contador.
Los temporizadores son uno de los periféricos más comunes dentro de los microcontroladores, su
uso es bastante extensivo para tareas como la implementación de relojes, la medición de
frecuencias, o el trabajo con otros periféricos que requieran una sincronización, entre otros.
Es usual encontrar varios temporizadores/contadores dentro de un microcontrolador, inclusive
existen microcontroladores con arreglos de contadores. Típicamente los registros de conteo
oscilan entre los 8 y 16bits, aunque es posible encontrar dispositivos que sólo tienen
38
temporizadores de un tamaño, normalmente los microcontroladores cuentan con ambos tipos de
registro de conteo.
1.2.11.3. Conversor A/D
En electrónica es usual trabajar con señales analógicas, para poder trabajar con estas, deben ser
convertidas a digital. Esta es la razón por la que muchos microcontroladores incluyen
conversores A/D, el cual se usa para tomar datos de distintas entradas seleccionadas a través de
un multiplexor.
Usualmente emplean resoluciones de 8 y 10bits, aunque existen microcontroladores con
conversores de 11 y 12bits, si se desea una resolución mayor es necesario emplear conversores
A/D externos.
1.2.11.4. Puerto serie
Uno de los periféricos presente en prácticamente cualquier microcontrolador, usualmente en
forma UART (Universal Asynchronous Receiver Transmitter) o USART (Universal Synchronous
Asynchronous Receiver Transmitter) dependiendo si admiten o no el modo síncrono de
comunicación.
Usualmente se emplea este periférico para establecer comunicación con otro microcontrolador o
con un computador, y generalmente hay que agregar circuitos externos que completen la interfaz
de comunicación. Comúnmente se completa el puerto serie para comunicarlo con un computador
mediante la interfaz EIA 232, más conocida como RS 232.
1.2.11.5. Puerto serie sincrónico
Este periférico es emplea establecer una comunicación entre el microcontrolador y otros
microcontroladores o periféricos externos conectados a este, haciendo uso de las interfaces SPI
(Serial Peripheral Interface) o I2C (Inter-Integrated Circuit).
Aunque también es un puerto serie, se acostumbra darle un trato diferente respecto a la
UART/USART dado que las interfaces SPI e I2C nacieron mucho después que la
UART/USART, son únicamente síncronas y no fueron diseñadas para establecer comunicación
con otros dispositivos independientes como un computador, sino para conectar el
microcontrolador a dispositivos como pantallas, memorias, conversores A/D o D/A entre otros.
39
1.2.11.6. Otros puertos de comunicación
El mundo tiende cada vez más a la intercomunicación de dispositivos, han surgido nuevas
interfaces de comunicación y los microcontroladores no se han quedado atrás al momento de
incorporar estas nuevas tecnologías, es por eso que se pueden encontrar en el mercado modelos
con puertos USB (Universal Serial Bus), Ethernet, CAN (Controller Area Network), Bluetooth,
puerto paralelo, entre otros.
1.2.11.7. Comparadores
Son periféricos basados en amplificadores operacionales, que se caracterizan por comparar dos
señales análogas y dar como salida los niveles lógicos „0‟ o „1‟ como resultado de la
comparación.
Es bastante útil para detectar cambios en las señales de entrada, de las cuales sólo se desea saber
en qué momento se encuentra en un rango determinado de valores.
1.2.11.8. Modulador de ancho de pulsos
Los PWM (Pulse Width Modulator) son periféricos bastante útiles, principalmente en el control
de motores, adicional hay diversas aplicaciones en las que se puede usar este periférico, como el
control regulado de luz (dimming), la conversión digital análoga D/A entre otros.
1.2.11.9. Memoria de datos no volátil
Muchos microcontroladores incluyen este tipo de memoria como un periférico más, empleado en
el almacenamiento de los procesos que se controlan o de datos de configuración. Es una memoria
independiente de la memoria de programa o memoria RAM, en la que se guarda el código del
programa que ejecutará el microcontrolador. [10]
1.2.12. Arduino
Arduino es una plataforma de prototipado en código abierto. Se creó para el desarrollo de
proyectos electrónicos a bajo costo, y como una alternativa diferente a las costosas placas de
desarrollo que existían hasta su aparición. [21]
40
Es útil como herramienta en aplicaciones como:
Control de dispositivos, empleando salidas digitales o de PWM
Comunicación, puede incluir UART, SPI, TWI, I2C entre otros
Sensado, posee entradas análogas y digitales
En la actualidad hay una amplia gama de placas disponibles, la gran mayoría emplean
microcontroladores Atmel, por ejemplo, el modelo Uno, Nano o Mega incluyen el ATmega 2560
o el ATmega 328, otro ejemplo podría ser el SAM3X8E ARM M3, que viene en el Due, aunque
cabe resaltar que poco a poco se han ido introduciendo otras casas fabricantes como INTEL,
incluido en el Galileo.
Su programación se hace a través de un lenguaje propio, Arduino, fácil e intuitivo, favorece un
rápido aprendizaje. Se basa en el lenguaje de alto nivel Processing y en C, por lo que incorpora
una gran variedad de funciones. Otras de sus ventajas son:
Bajo costo: nació con esta premisa, facilita el acceso a la electrónica a un mayor número
de personas, esto ha favorecido su expansión.
Código abierto: facilita que el software se desarrolle y distribuya libremente.
Al ser de código abierto se obtiene una amplia comunidad interesada en el desarrollo de
nuevo hardware y software compatible, esto ha favorecido una continua
retroalimentación, y cada día es mayor la información disponible.
Abundancia de información en la web.
Compatibilidad: se adapta para ser usado en proyectos electrónicos de prácticamente
cualquier tipo, sea a través de hardware desarrollado exclusivamente para Arduino, como
elemento de uso general.
Web propia, http://arduino.cc/, contiene una gran cantidad de información relacionada.
1.2.12.1. Arduino Mega
Se basa en el microcontrolador ATmega2560, dispone de 54 E/S digitales, un oscilador de cristal
de 16MHz, 15 entradas con posibilidad de PWM, 16 entradas análogas, 4 puertos de
41
comunicación serie UART, comunicación SPI, TWI (I2C), adicional USB e ICSP (In Circuit
Serial Programing).
Figura 9: Arduino Mega
Fuente: http://www.kjpautomation.com/product/arduino-mega/
1.2.12.2. Arduino Uno
Se basa en el microcontrolador ATmega328, dispone de 14 pines de E/S digitales, un oscilador
de cristal de 16MHz, 6 entradas con posibilidad PWM, 6 entradas análogas, comunicación serie,
SPI, TWI, USB e ICSP
1.2.12.3. Arduino Nano
Posee características similares al Arduino Uno al incorporar el mismo microcontrolador, difiere
en el encapsulado, donde es notorio su menor tamaño y su conexión vía mini USB. [22]
42
Figura 10: Arduino Nano
Fuente: http://electrotec.pe/tienda/arduino-nano-30
43
1.3. COMUNICACIÓN ETHERNET
Ethernet es un estándar de redes de área local, usado en computadores con acceso al medio a
través de detección de la onda portadora y con detección de colisiones (CSMA/CD). Ethernet se
encarga de definir las características del cableado y señalización a nivel físico y los formatos de
tramas de datos del nivel de enlace de datos del modelo OSI. [23]
Ethernet sirvió como base para la generación del estándar internacional IEEE 802.3,
normalmente son tomados como sinónimos. Su diferencia radica en uno de los campos de la
trama de datos. Aun así, las tramas IEEE 802.3 y Ethernet pueden coexistir en una misma red.
Ethernet goza de tener la mayor aceptación dentro de los esquemas usados para organizar redes
de área local, a pesar de ser uno de los esquemas más antiguos. En los últimos años ha
evolucionado, su tasa de transmisión aumentó de su valor original 10Mb/s hasta 1Gb/s en la
actualidad. Nace da manos de la compañía Xerox en la década de los 70‟s, con partición posterior
de Digital Equipment Corporation e Intel. En los 80‟s, cuando IEEE redactaba las normas para
redes de área local, Ethernet ya era una norma establecida, por lo que es más exacto decir que
IEEE sigue a Ethernet, aunque en ocasiones se dice que Ethernet sigue la norma 802.3 de IEEE.
Usualmente usa líneas de par trenzado, el inconveniente del sistema de 10BaseT, es que restringe
a una longitud máxima de 100m. Existen además versiones del estándar para transmisión de
datos con unas tasas más altas (100 Mb/s) en fibra óptica y par tranzado. Usualmente para las
redes de fibra óptica se usa una configuración física en estrella, dado las dificultades al construir
conectores en T.
Para incrementar las distancias de operación de una red ethernet, se usa amplificación adicional,
puede extender la red hasta 2.8 Km en algunas condiciones.
La limitante en la longitud de una red LAN ethernet radica en el protocolo CSMA/CS usado por
ethernet. [24]
1.3.1. Dirección IP
Se define una dirección IP como el número que identifica de manare lógica y jerárquica a una
interfaz de algún dispositivo dentro de una red que emplee el protocolo IP (Internet Protocol),
correspondiente al nivel de red del protocolo TCP/IP.
44
A través de internet, se intercomunican computadores entre sí, haciendo uso de las direcciones IP,
sin embargo, para los seres humanos es más natural y cómodo emplear una notación de fácil
recordación, como los nombres de dominio; los servidores de nombre de dominio DNS, se
encargar de hacer la traducción entre unos y otros.
Una dirección IP se expresa como un número de 32 bits, normalmente se muestra en cuatro
grupos de números decimales de 8 bits (IPv4). Cada número se desplaza en un rango de 0 a 255
(expresado en decimal), o de 0 a 11111111 (expresado en binario), o su equivalente 0 a FF
(expresado en hexadecimal). Los 32 bits de la dirección se dividen en cuatro octetos, el valor
decimal de cada octeto oscila entre 0 y 255 (el número binario de 8 bits más alto). La separación
de los octetos está dada por un carácter “.”. [25]
1.3.2. Dirección MAC
Una dirección MAC (Media Access Control Address) o dirección de control de acceso al medio,
es una identificación de 48 bits que se asigna de forma única a una interfaz de red. Es única, cada
dispositivo cuenta con su propia dirección MAC establecida y configurada por el fabricante (los
primeros 24bits) y el estándar IEEE (los últimos 24 bits) haciendo uso del OUI.
Generalmente los protocolos que trabajan en la capa 2 del modelo OSI, emplean una de las tres
numeraciones usadas por el estándar IEEE: EUI 64, EUI 48 y MAC 48 los cuales se diseñaron
para ser identificados como único a nivel global.
No todos los protocolos de comunicación requieren un número único de identificación a nivel
global, no todos los protocolos de comunicación usan direcciones MAC. [25]
Las direcciones MAC son pues un identificador único a nivel mundial, son escritas directamente
e binario en el hardware a la hora de su fabricación, por esto suelen ser llamadas BIA (Burned in
Address) o “Direcciones Quemadas Dentro”. También es conocida como la dirección física, en
cuanto identifica a equipos de red. Es ampliamente usada en varias tecnologías, entre las que se
encuentran:
1. Ethernet.
2. ATM
3. IEEE 802.5 o redes en anillo a 4 Mbps o 16 Mbps Token Ring.
4. IEEE 802.11 redes inalámbricas (WIFI).
45
1.3.3. Diferencias entre UDP y TCP
Se puede comparar la entrega de datos por parte de TCP y UDP como la diferencia entre una
llamada telefónica y una carta. UDP funciona como una carta: los mensajes son cortos y la
entrega es factible, pero no se puede garantizar. TCP es similar a una llamada telefónica,
comprueba que el destinatario esté listo y disponible para la comunicación.
Generalmente se usa UDP en los programas que requieren transmitir pequeñas cantidades de
información a la vez o que tienen requerimientos de tiempo real. Para estos casos, la
multidifusión y las capacidades de carga pequeña de UDP resultan más adecuadas que TCP. UDP
es considerablemente distinto a las características y servicios que ofrece TCP. En la tabla 2 se
hace una comparación de las diferencias en la forma de administrar la comunicación por parte de
TCP/IP según se emplee TCP o UDP para el transporte de información.
UDP TCP
Servicio sin conexión; no establece una
sesión entre los hosts.
Servicio orientado a la conexión; se
establece una sesión entre los hosts.
UDP no garantiza ni confirma la entrega, y
no secuencia los datos.
TCP garantiza la entrega mediante el uso
de confirmaciones y la entrega secuenciada
de datos.
Los programas que utilizan UDP son
responsables de proporcionar la
confiabilidad necesaria para el transporte
de datos.
Los programas que utilizan TCP
proporcionan la seguridad del transporte de
datos confiable.
UDP es rápido, tiene requisitos de carga
pequeños y puede admitir la comunicación
punto a punto y de un punto a varios
puntos.
TCP es más lento, tiene requisitos de carga
mayores y sólo admite la comunicación
punto a punto.
Tabla 2: Diferencias entre UDP y TCP [25]
46
Tanto TCP como UDP emplean puertos para identificar las comunicaciones de cada programa
TCP/IP
El campo de puerto tiene una longitud de 16 bits, lo que permite un rango que oscila entre 0 a
65.535, pero no todos los puertos son de libre uso por lo que se detalla algunas normas sobre
ellos:
El puerto 0 es un puerto reservado, sin embargo, es un puerto permitido si el emisor no
espera recibir mensajes del receptor.
Los puertos que oscilan entre 1 a 1023 reciben el nombre de “puertos bien conocidos”
Los puertos que oscilan entre 1024 a 49.151 reciben el nombre de “registrados”, son de
libre uso.
Los puertos que oscilan entre 49.1252 a 65.535 reciben el nombre de “efímeros”, son de
tipo temporal y se usan principalmente por los clientes al conectarse al servidor.
47
1.4. MYSQL
MySQL es un sistema para la gestión y administración de bases de datos ralacional, multihilo y
multiusuario, desarrollado por Oracle Corporation, es considerado como la base de datos de
código abierto más popular a nivel mundial. [26]
MySQL se desarrolló inicialmente por MySQL AB, esta a su vez fue adquirida por Sun
Microsystems en 2008, que fue adquirida por Oracle Corporation en 2010
A diferencia de proyectos como Apache, de código abierto, desarrollado por una comunidad
pública, donde los derechos de autor están en poder de cada autor individual; MySQL cuenta con
el patrocinio de la empresa privada, quien posee los derechos de autor de la mayor parte del
código. Este sistema posibilita el esquema de doble licenciamiento. Por esta razón, la base de
datos se comercializa en distintas versiones, una Enterprice, para empresas que deseen incluirla
en productos privados y una Community, distribuida bajo la licencia pública general GNU. En
mayor parte está desarrollado en C++ y ANSI C. Entre sus usuarios se encuentran gigantes de
internet como Google, Facebook, Wikipdia, YouTube, Twitter y Flickr.
Actualmente existen diversas interfaces de programación de aplicaciones que admiten el acceso a
bases de datos de MySQL, entre las que cabe resaltar C, C#, C++, Java, PHP, Python, Delphi,
Pascal, Smaltalk, Eiffel entre otros. Cada uno hace uso de una interfaz de programación
específica.
MySQL ha sido ampliamente usado en el desarrollo de aplicaciones web, como Wordpress,
phpBB, Drupal o Joomla, en plataformas Windows, Linux, Apache-MySQL, Perl, PHP y Python,
y por herramientas de seguimiento de errores como Bugzilla.
MySQL se caracteriza por ser una base de datos muy rápida en la lectura cuando utiliza el motor
no transaccional MyISAM, pero puede provocar problemas de integridad en entornos de alta
concurrencia en la modificación. En aplicaciones web hay baja concurrencia en la modificación
de datos y en cambio el entorno es intensivo en lectura de datos, lo que hace a MySQL ideal para
este tipo de aplicaciones. Sea cual sea el entorno en el que va a utilizar MySQL, es importante
48
monitorizar de antemano el rendimiento para detectar y corregir errores tanto de SQL como de
programación. [26]
Su popularidad está muy ligada a PHP, incluso suelen aparecer en combinación con MySQL.
49
2. ESTADO DEL ARTE
La tecnología RFID remonta sus orígenes a la segunda guerra mundial, en sus inicios no hubo un
gran auge, sólo hasta la modernidad donde los costos han bajados ostensiblemente y la facilidad
de acceder a sus componentes se ha incrementado, han surgido diversas aplicaciones que han
sabido aprovecharla. Hoy en día su uso es extensivo en sistemas de automatización industrial,
seguridad electrónica, control entre otros.
RFID es hoy en día una tecnología emergente y se ha aplicado en diversas áreas, desde logística
hasta seguridad; usualmente, las tarjetas RFID han sido empleadas por las personas en el control
de acceso a edificios de oficinas, para el pago del transporte público en sistemas como el Metro
de Medellín, Transmilenio en Bogotá, Mio en Cali entre otros; inclusive se ha utilizado para el
almacenamiento de información digital en pasaportes. [27]
La identificación por radio frecuencia ha dado cabida a un sin número de aplicaciones y
desarrollos, entre los que podemos encontrar, el diseño de un dispositivo electrónico para el
control de la trazabilidad del ganado. Este proyecto fue desarrollado por estudiantes de la
universidad de San Buenaventura seccional Cali, teniendo como objetivo realizar un dispositivo
capaz de controlar todas las fases de desarrollo del ganado, nacimiento, vacunas, enfermedades,
movimientos, muerte y comercialización. Así mismo se planteó el envío de datos en tiempo real
vía GPRS a un software de monitoreo, donde se almacenan y desde el cual se puede realizar el
seguimiento de la información. [28]
A nivel comercial, la tecnología RFID también ha tenido una buena acogida, hoy en día con la
competencia entre hoteles y resorts de lujo, muchos hoteles compiten para atraer nuevos clientes,
algunos lo hacen ofreciendo VoIP, sonido envolvente de alta fidelidad, televisores de pantalla
plana, entre otros. Buena parte de esos hoteles han implementado sistemas RFID para el bloqueo
de sus puertas, generalmente se usan tarjetas pasivas, que carecen de alimentación, son ligeras y
económicas [29]. Estos sistemas juegan con el diseño del hotel, se integran a sistemas de
recolección de y administración de datos que administran la ocupación del hotel, cuentan con la
50
posibilidad de integrar todo el sistema con teléfonos celulares Android o iOS entre muchas otras
ventajas. [30]
Recientemente se han desarrollado sistemas para la administración de flotas vehiculares,
implementando tecnologías RFID y UHF. Estos sistemas son aplicados a la entrada y salida de
vehículos, pudiendo monitorear y controlar el acceso de los mismos a través de antenas de largo
alcance, hasta 30 metros, que funcionan en un amplio rango de frecuencia (300 MHz a 3 GHz).
Incluso si el vehículo está en movimiento. [27]
Su versatilidad no termina ahí, otra aplicación está dada en la fabricación de prototipos a pequeña
escala de un sistema de control RFID para los puntos de chequeo de autobuses de servicio
público. Esta investigación buscaba desarrollar un sistema que permitiera medir el tiempo de
llegada de un bus a cada punto de control mediante la adopción de etiquetas RFID lo que
permitiría analizar el servicio prestado al usuario a través del cumplimiento de la periodicidad y
ruta establecida. [31]
El auge de las tecnologías de la información y autenticación electrónica llevó a adoptar la
tecnología RFID (identificación por radio frecuencia) como instrumento para replantear la forma
de acceso a inmuebles, cambiando los métodos tradicionales (llaves o cerraduras mecánicas) a
dispositivos electrónicos (cerraduras electromagnéticas) basándose en el concepto de administrar
el ingreso a áreas restringidas mediante la asignación de permisos, evitando que personas
indeseables tengan acceso a ciertos lugares.
A lo largo del tiempo los desarrolladores de tecnología orientada al tema de seguridad se han
dado a la tarea de innovar en métodos de identificación, evolucionando desde el código de barras
(combinación de números y letras) hasta llegar a la tecnología biométrica (autenticación por
huella dactilar o la palma de cada individuo) evitando el uso de un dispositivo externo que se
pueda extraviar u olvidar, se pude decir que cada persona tiene desde su nacimiento su propia
llave.
51
Actualmente en Colombia se está presentando un crecimiento acelerado en la implementación de
este sistema de control, con el fin de reducir costos de operación en diversas áreas de las
organizaciones como seguridad, control de nóminas, activos y automatización de procesos.
Como casos de éxito podemos referirnos a los sistemas implementados en diversas instituciones
educativas como la Universidad de Antioquia, EAFIT, UPB, entre otras, las cuales aumentaron
los niveles de seguridad y redujeron los costos de operación en temas como carnetización,
préstamo de libros en bibliotecas, restaurantes, recargas en línea, pagos de parqueadero, estudios
estadísticos de niveles de ocupación, etc. No obstante, existe un gran potencial para la
automatización de procesos en la medida que se puedan ir integrando con otros sistemas de
información sin depender del factor humano.
52
3. METODOLOGÍA
En el siguiente diagrama de bloques se especifican los requerimientos de diseño del prototipo
Figura 11: Diagrama de flujo de diseño del sistema
3.1. SELECCIÓN MÓDULO RFID
La primera etapa del proyecto corresponde a las pruebas de operación de lectura de tarjetas
MIFARE 13,56 MHz de 1 KB para esto se consigue la tarjeta SL025B [32]
3.1.1. PIN OUT
PI
N Símbolo Tipo Descripción COLOR
1 TagSta Salida Señal detectada de Tag, Nivel RS232 Naranja
53
Lógico 0 indica tag en rango
detección
Lógico 1 indica tag sale del rango
2 TXD Salida Puerto serial Verde
3 RXD Entrad
a Puerto serial Amarillo
4 VCC Power Alimeantación positiva Rojo
5 GND Power Tierra Negro
Tabla 3: Asignación de pines tarjeta MIFARE
Se realiza conexión de la tarjeta según diagrama de pines anterior al módulo Arduino Mega,
como se ilustra a continuación.
Figura 12: Diagrama de conexión Arduino Mega – Tarjeta MIFARE
Para las pruebas de comunicación entre el lector MIFARE y el computador se conecta un cable
USB serial entre los dos dispositivos y se instala la aplicación Hércules, de tal forma que se
pueda usar el puerto serial a 115200 bps, 8 bits de datos, sin paridad. [33]
54
El módulo SL025B requiere que se le envíe un comando para que la tarjeta envíe respuesta, el
comando a enviar es “Select Mifare Card”, el cual se encuentra documentado en el manual de
usuario del lector [34], este comando en hexadecimal es BA 02 01 B9. La respuesta a este
comando corresponde a una trama hexadecimal, en el cual se indica si no hay TAG o si la
operación fue satisfactoria, y simultáneamente envía el número del TAG
Figura 13: Comando Select Mifare Card
55
Figura 14: Aplicativo Hercules
Luego de recibir respuesta del lector en la aplicación Hércules, este se integra con Arduino, en el
cual se elabora una aplicación adicional para transmitir datos hacia el computador. Después de
realizar un sin número de pruebas y verificar en detalle si la información entregada es la misma,
se encuentran datos erróneos ya que no se contempló la conversión TTL a RS232 requerida a la
salida del Arduino, razón por la cual no funciona de manera óptima el lector con Arduino. La
solución a este inconveniente es diseñar un conversor TTL a RS232 o adquirir un modelo de
módulo MIFARE que tenga embebida la interfaz TTL.
Se optó por la adquisición de un módulo MIFARE con esta interfaz, y se encontró uno que
cumplía con la especificación de la interfaz, el cual además tiene la ventaja que cada vez que se
presenta la tarjeta envía el número de esta sin necesidad de enviarle un comando de
inicialización, permitiendo ser más eficiente la lectura del serial de la tarjeta MIFARE. El módulo
en cuestión es el RC522. [35]
56
Figura 15: Modulo RFID – RC522
Fuente: http://forum.arduino.cc/index.php?topic=199983.0
Apoyados en la documentación técnica existente y las librerías propias de la plataforma, se
realizaron pruebas de operación, encontrando inconvenientes a la hora de integrarlo al Arduino
Mega, no registra el serial de la tarjeta de forma adecuada. Por lo anterior se realizan pruebas de
funcionamiento con Arduino UNO, almacenando el ID de la tarjeta en una variable para
compararlo con una nueva lectura de la misma tarjeta. Después de realizar esta validación se
comprobó que la integración es posible sin errores y por ende se acoge la placa Arduino UNO
con base para la realización del proyecto.
57
3.2. CÓDIGO ARDUINO
Para efectos de facilidad, orden y pruebas de funcionamiento se tomó la decisión de segmentar el
código en componentes estratégicos, los cuales se describen a continuación.
Conexión Ethernet: Para este componente se utilizaron las siguientes librerías:
#include <SPI.h> Se utiliza para garantizar la comunicación entre la placa Arduino UNO
y la placa Ethernet. Ver Anexos.
#include <Ethernet.h> Permite realizar la comunicación mediante protocolo TCP/IP entre
la placa de arduino UNO y la red de datos, desde una dirección IP de origen hacia una
dirección IP de destino. Ver Anexos.
Mifare: Para este componente se utilizó la siguiente librería:
#include <MFRC522.h> Permite realizar la lectura del ID de la tarjeta Mifare y
almacenarlo en una variable o espacio de memoria de la placa Arduino UNO. Ver
Anexos.
Adicionalmente y con el fin de no saturar la memoria, se agregó la librería TimerOne.h [36] que
configura un temporizador de tal manera que después de la lectura de una tarjeta, impida leerse
nuevamente la misma tarjeta hasta que finalice el tiempo del temporizador, después del cual es
posible realizar la lectura del ID de otra tarjeta.
LCD: para este componente se utilizó la siguiente librería.
#include < LiquidCrystal.h > Permite informar al usuario mediante un mensaje visual si tiene o
no autorización para ingresar al espacio que se está controlando.
Con el fin de hacer un control visual por parte del administrador del sistema se adicionan los
siguientes estados, de tal forma que se puede evidenciar en que parte del proceso se encuentra la
transacción de la información.
- Estado 0, esperando tarjeta
58
- Estado 1, enviando datos de la tarjeta a servidor web
- Estado 2, recibiendo datos del servidor web, hasta que reciba el mensaje adecuado
- Estado 3, acceso autorizado
- Estado 4, acceso denegado
- Estado 5, cierre puerta temporizado
3.3. CÓDIGO PHP Y BASE DE DATOS
Se diseñó una aplicación web en lenguaje PHP para la recepción del número de tarjeta (ID),
mediante método POST (No se requiere escribir sobre la URL los parámetros principales para
acceder al servidor PHP) y se diseña la base de datos para almacenamiento de la información.
Al código Arduino se le adiciona código WebClient, utilizando la librería proporcionada por el
fabricante [37], de tal manera que se envíe como parámetro POST el número de la tarjeta (ID), y
se espere la respuesta del servidor, recibiendo carácter por carácter el código HTML ante la
respuesta a la petición del registro del número de la tarjeta presentada.
Se presentan inconvenientes para la operación simultanea del código WebClient con el código del
lector; después de lectura profunda de los módulos Ethernet y RFID, se encuentra que están
haciendo uso simultáneo del puerto SPI, y que es necesario utilizar pines diferentes para la
habilitación del módulo cuando haga uso del puerto SPI para dicho módulo
Se adiciona al código PHP una instrucción para que cuando se almacene la información en la
base de datos, devuelva un texto “Mensaje:” confirmando si está autorizado o se ha denegado el
acceso. Adicionalmente se adiciona código para la activación del relé.
Después de realizar pruebas de funcionamiento del sistema, sometiéndolo a una gran cantidad de
transacciones, se presentan inconvenientes en la puesta en operación de los diferentes estados,
pues bajo ciertas condiciones, se ejecuta el estado dos (2) y se queda esperando el mensaje de
recepción que no ocurrirá, es necesario revisar en detalle el código para eliminar esta falla. Para
59
solucionar esto, se analiza la posibilidad de registrar la información directamente en la base de
datos MySQL [38]. Se analiza en detalle la MySQL Conector /Arduino.
MySQL: Para este componente se utilizaron las siguientes librerías:
#include <sha1.h>: Se utiliza para garantizar la seguridad de la información cuando se
conecta a la Base de Datos. Corresponde a un método de encriptación.
#include <mysql.h>: Permite establecer la conexión y realizar consultas con el servidor
MySQL en la red de datos.
Al realizar las pruebas de operación y exigencia del sistema, se comprobó que el registro de las
tarjetas se hace de una forma más ágil y segura, pues en la solución anterior (WebClient) algunos
mensajes no se recibían perdiendo parte de la información transmitida.
60
4. RESULTADOS
Finalmente, para la elaboración del proyecto se emplearon:
- Equipo de cómputo
o Aplicación PHP
o Base de datos MySQL
- Controlador de acceso
o Hardware: Arduino Uno, tarjetas RFID, Módulo RFID – RC522, módulo ethernet,
LCD, tarjeta relé
o Software: Código arduino
La comunicación entre el equipo de cómputo y el controlador de acceso es sobre TCP/IP.
4.1. DIAGRAMAS DE FLUJO
A continuación, se presenta de forma gráfica el funcionamiento del sistema, el proceso de la
información desde que se presenta la tarjeta en el lector hasta que se permite o se niega el acceso
según sea el caso.
61
Figura 16: Diagrama de flujo Setup
62
Figura 17: Diagrama de flujo sub rutina Loop
63
Figura 18: Diagrama de flujo sub rutina Loop 2
64
Figura 19: Diagrama de flujo sub rutina Loop 3
Figura 20: Diagrama de flujo sub rutina conexión MySQL
Figura 21: Diagrama de flujo sub rutina enableETH0
65
Figura 22: Diagrama de flujo sub rutina aperturaPuerta
Figura 23: Diagrama de flujo sub rutina cierrePuerta
Figura 24: Diagrama de flujo sub rutina enableRFID
66
Figura 25: Diagrama de flujo sub rutina lecturaTarjeta
Figura 26: Diagrama de flujo sub rutina dump byte array
67
Figura 27: Diagrama de flujo sub rutina obtenerUID
Figura 28: Diagrama de flujo sub rutina temporizador
68
Figura 29: Diagrama de flujo sub rutina consultarTarjeta
69
4.2. DISEÑO ELECTRÓNICO
Con el fin de controlar el acceso por la puerta, se diseñó una tarjeta electrónica para interrumpir
el voltaje de la cerradura electromagnética mediante un relé, si la respuesta después de la
validación en la base de datos es 1 (autorizado). Esta condición solo se da si el usuario se
encuentra previamente registrado en el sistema.
Adicionalmente, en esta tarjeta se implementaron las interfaces de conexión para el módulo
MIFARE y el LCD. El diseño se realizó con Eagle versión 5.6.
Figura 30: Diseño electrónico
70
Figura 31: Diseño de PCB
71
4.3. PRUEBAS FINALES
Luego de realizar los ajustes necesarios para superar los inconvenientes presentados se realizaron
las pruebas de operación y consulta en la aplicación WEB.
4.3.1. Montaje en Board
Figura 32: Montaje en board
4.3.2. Inicio de servidor XAMPP y MySQL, conexión con la base de datos.
72
Figura 33: Monitor Serial
4.3.3. Lectura de Tarjeta
Figura 34: Lectura de Tarjeta
73
4.3.4. Inserción en la base de datos del ID de la tarjeta
Figura 35: Inserción en la base de datos del ID de la tarjeta
4.3.5. Aplicación WEB
Registro de transacciones. Se realiza filtro por palabra clave Montoya y se obtiene el histórico de
las transacciones de ingreso de este usuario.
74
Figura 36: Histórico de las transacciones de ingreso de usuario
Solicitud de tarjetas no registradas. Estas tarjetas no están asociadas a un docente y por lo tanto
el acceso es denegado.
Figura 37: Histórico de las transacciones negadas
Agregar un docente: Se agrega el docente Saúl Rodríguez, lo cual se puede evidenciar en la
siguiente figura.
75
Figura 38: Agregar Docente
76
4.4. MANUAL DE USUARIO
Para hacer un correcto uso de la aplicación el administrador del sistema debe seguir los siguientes
pasos.
1. Iniciar XAMPP
Ejecutando los módulos Apache y MySQL
En caso que tenga operando IIS (Internet Information Services) cambie el puerto del
servidor Apache TCP 80 a otro puerto como el TCP 8000, en la siguiente imagen se
observa que está operando en el puerto TCP 8001
Figura 39: Panel de Control XAMPP
2. Abrir el sitio web de la solución http://localhost:8001/usbaccess/
77
Figura 40: Interfaz Web
3. Inicie sesión, usando un usuario y contraseña válido. El usuario por defecto es admin y la
contraseña admin
4. Las opciones del sitio web son las siguientes
Figura 41: Opciones del Sitio Web
a. Usuarios: este formulario permite administrar, es decir, crear, editar, eliminar,
exportar, e imprimir los usuarios
b. Docentes: este formulario permite administrar, es decir, crear, editar, eliminar,
exportar, e imprimir los docentes
c. Tarjetas: este formulario permite administrar, es decir, crear, editar, eliminar,
exportar, e imprimir las tarjetas
d. Registro ingresos: este formulario permite consultar los ingresos que se han
realizado
78
e. Solicitudes Ingreso Tarjetas No Registradas: este formulario permite consultar
los números identificadores de las tarjetas que sin tener permiso habilitado han
intentado ingresar
f. Cerrar sesión: finaliza el uso de la aplicación web
5. Registre las tarjetas: Permite configurar las tarjetas que tendrán acceso para la apertura
de la puerta. Es posible habilitarla o inhabilitarla, las tarjetas que no se encuentren
registradas por defecto están inhabilitadas
6. Registre los docentes: requiere haber iniciado sesión. Permite asociarse una tarjeta, y
asociarse una cuenta de usuario para hacer uso del sitio web.
7. Registre los usuarios del aplicativo web: requiere haber iniciado sesión. Permite darle
acceso al aplicativo web, no requiere asociarse a un docente, crea un usuario y una
contraseña
En cada uno de los formularios aparecen los siguientes botones:
permite exportar los resultados de la consulta a archivo de Excel, Word, PDF; el
menú que aparece es el siguiente
Figura 42: Opciones de exportar
, permite imprimir todos los datos
, permite imprimir los datos de la página que se está visualizando.
, permite adicionar un nuevo docente, usuario o tarjeta, depende del formulario activo.
, permite eliminar los registros que están seleccionados.
, permite actualizar los registros que se están observando
79
, permite buscar registros que contengan el texto en cualquiera de los
campos
A continuación se observan los botones que aplica a los registros individualmente, es decir, solo
aplican para la fila en la que son presionados:
, permite seleccionar el registro actual
, permite ver el registro actual en otro formulario
, permite editar el registro actual en otro formulario
, permite borrar el registro actual
, permite copiar el registro actual
Cuando se escoge la opción “Usuarios” del menú, se observa la siguiente pantalla
Figura 43: Administrar Usuarios
Esta vista permite crear, editar o borrar los usuarios que podran hacer uso de la aplicación.
Cuando se escoge la opción “Docentes” del menú, se observa la siguiente pantalla
80
Figura 44: Administrar Docentes
Esta vista permite agregar, editar o borrar los docentes que tendran acceso al espacion mediante
tarjeta.
Cuando se escoge la opción “Tarjetas” del menú, se observa la siguiente pantalla
Figura 45: Administrar Tarjetas
Esta vista permite crear, editar o borrar tarjetas. Asi mismo se podran autorizar o denegar accesos
según sea el caso.
Cuando se escoge la opción “Registro Ingresos” del menú, se observa la siguiente pantalla
81
Figura 46: Administrar Registros
Esta vista permite obtener reportes de ingresos según los filtros aplicados en la consulta.
Cuando se escoge la opción “Solicitudes Ingreso Tarjetas No Registradas” del menú, se observa
la siguiente pantalla
Figura 47: Tarjetas no Registradas
Esta vista permite verificar el número de la tarjeta que ha pasado por el lector y que no se
encuentra registrada dentro del sistema. Su utilidad principal es validar el ID de una tarjeta nueva
para asociársela a un docente nuevo que necesite acceder a este espacio.
82
En caso de agregar un usuario, requiere digitarse el nombre, correo, nombre de usuario,
contraseña, e indicar si es administrador escribiendo un 1 o un 0
Figura 48: Usuarios
En caso de agregar un docente, requiere digitarse la información nombre, correo y facultad; si
desea que este docente, pueda ingresar a la aplicación web, debe seleccionar uno de los usuarios
creado previamente; si desea que el usuario tenga tarjeta de ingreso, puede seleccionar una tarjeta
creada previamente
83
Figura 49: Docentes
En caso de agregar una tarjeta, requiere indicarse el número de la tarjeta y si está habilitada con
un 1, o inhabilitada con un 0:
Figura 50: Tarjetas
84
8. Registre tarjetas: requiere haber iniciado sesión. Permite configurar las tarjetas que
tendrán acceso para la apertura de la puerta. Es posible habilitarla o inhabilitarla, las
tarjetas que no se encuentren registradas por defecto están inhabilitadas.
9. Registre docentes: requiere haber iniciado sesión. Permite asociarse una tarjeta, y
asociarse una cuenta de usuario para hacer uso del sitio web.
10. Registre usuarios del aplicativo web: requiere haber iniciado sesión. Permite darle
acceso al aplicativo web, no requiere asociarse a un docente, crea un usuario y una
contraseña.
11. Extraer reporte de uso del espacio: Esta funcionalidad se puede obtener en la vista
Registro de Ingresos, donde mediante la aplicación de filtros por fecha o búsqueda rápida
por apellido, nombre o ID de la tarjeta se puede tener los registros almacenados en la base
de datos y exportarlos a diferentes formatos de archivo como Word, Excel y PDF.
85
5. CONCLUISIONES
Con la realización de este proyecto se puede concluir que es posible realizar integraciones de
software y hardware para obtener resultados y almacenamiento de datos de manera automática.
La aplicación de la tecnología RFID en identificación de personas resulta una manera útil de
controlar el acceso a espacios físicos o información clasificada.
El registro de la información en una base de datos a través del método de inserción directa,
resulta ser más rápido y seguro que la conexión a un servidor WEB.
El proyecto resulta muy práctico a escala real, ya que permite no solo controlar el acceso, sino
que tendrá la funcionalidad de extraer informes de ingresos de todos los usuarios, siendo una
herramienta estadística interesante para analizar los flujos de docentes, las horas de utilización y
tiempos muertos del espacio.
Se puede concluir que Arduino es una plataforma que permite realizar un sin número de
aplicaciones para las cuales existen gran variedad de ayudas, siendo muy abierta a cualquier tipo
de integración con cualquier sistema de información.
86
6. TRABAJOS FUTUROS
Con el fin de mejorar el proyecto desarrollado en esta investigación, se propone los siguientes
cambios.
Adicionar código para almacenamiento de la base de datos de usuarios en el controlador arduino,
de forma tal que la solución funcione en modo desconectado. Es decir, no se requiere una
conexión estable con el servidor, sino que se actualice la información una vez se restablezca la
comunicación.
Adicionar código para el almacenamiento de los registros de ingreso en una memoria micro SD,
y así poder extraer la información desde el controlador arduino.
Agregar entradas y salidas digitales al controlador arduino y conectar sensores para monitorear el
estado de la puerta.
Adicionar código para identificar el controlador arduino en la red de datos de manera que se
pueda enviar datos desde la aplicación WEB para ejecutar acciones en la operación de la
cerradura.
Crear un aplicativo móvil para Android y/o iOS que también permita la administración de
usuarios.
87
REFERENCIAS
[1] N. Gordón, Control de Acceso en la Entrada del Instituto Geofísico Utilizando Tecnología
RFID, Quito, 2009.
[2] D. S. Morales Tejada, Prototipo de Control de Acceso Peatonal al Campus de la Corporación
Universitaria Lasallista, Caldas, 2012.
[3] A. Cervantes Najera, Sistema de información y control de acceso basado en tecnología
RFID, 2006.
[4] J. A. A. Sánchez, Sistema de Control de Acceso con RFID, Mexico D.F., 2008.
[5] D. I. Tapia, Identificación por Radiofrecuencia: Fundamentos y Aplicaciones, Salamanca,
2007.
[6] H. R. Morillo, Computación Ubicua mediante Dispositivos RFID.
[7] S. A. Fernández, RFID: La tecnología de identificación por radiofrecuencia, Madrid, 2006.
[8] M. C. P. Paredes, Diseño y construcción de un prototipo de RED para el control de ingreso a
sitios de acceso masivo utilizando la tecnología de identificación por radio frecuencia
(RFID), Quito, 2007.
[9] P. Pupiales, Diseño de un sistema de control de acceso utilizando la tecnología RFID para la
empresa Soluciones G cuatro del Ecuador CIA. LTDA., Quito.
[10] J. M. Angulo, Microcontroladores PIC: Diseño práctico de aplicaciones, Madrid: Mc Graw
Hill, 2005.
[11] F. E. Valdés, Microcontroladores: Fundamentos y Aplicaciones con PIC, España:
Marcombo, 2007.
[12] D. Ibrahim, PIC Basic Projects: 30 Projects using PIC BASIC and PIC BASIC PRO,
Oxford: MPG Books, 2006.
[13] E. M. Perez, Microcontroladores PIC: Sistema Integrado para el Aprendizaje, Barcelona:
Marcombo, 2007.
[14] G. Gridling, Introduction To Microcontrollers, Vienna, 2007.
[15] E. M. Pérez, Sistemas Electrónicos Digitales, Barcelona: Marcombo, 2008.
88
[16] S. Augarten, The Most Widely Used Computer on a Chip: The TMS 1000, New York, 1983.
[17] C. B. Viejo, Fundamentos de Electrónica Digital, Madrid: Thomson, 2005.
[18] Microchip, «http://www.atmel.com,» [En línea].
[19] M. Rouse, «http://whatis.techtarget.com/,» 2010. [En línea].
[20] J. A. Montoya, «Blog Microcontroladores,» Septiembre 2009. [En línea]. Available:
http://blogmicrocontroladores.blogspot.com.co/.
[21] G. d. J. López, Diseño e implementación de sotware y Hardware de un registrador de
variables eléctricas con comunicaciones Ethernet, Latacunga, 2013.
[22] L. F. Basarte Bozal, Diseño y fabricación de una tarjeta PCB para el control de un robot
autobalanceado basado en Arduino, Pamplona, 2014.
[23] J. F. Villa, «Jose Francisco Sevilla 2016,» Abril 2016. [En línea]. Available:
https://josefranciscosevilla2016.wordpress.com.
[24] J. Hernándo, Sistemas de telecomunicación, Madrid: Servicio de publicaciones E.T.S.I.
Telecomunicación., 1991.
[25] J. L. B. Palma, Desarrollo De Un Sistema De Control De Ingresos De Vehiculos, Utilizando
Picy Tecnología Rfid Para Mejorar Las Operaciones De Seguridad De La Universidad
Tecnica De Babahoyo, Babahoyo, Ecuador, 2012.
[26] D. A. Cadena y L. G. Romero, Diseño e Implementación de un Sistema de Control e
Inventario Electrónico a Través de la Internet Basado en la Tecnología RFID para los
Laboratorios del DEEE-ESPE, Sangolqui, Ecuador, 2011.
[27] N. Sathish y P. Ranjana, «Secure Remote Access Fleet Entry Management System Using
UHF Band RFID,» Proceedings of International Conference on Internet Computing and
Information Communications, pp. 141-149, 2014.
[28] D. L. Araujo, Dispositico Electrónico para el Control de la Trazabilidad del Ganado,
Santiago de Cali, 2012.
[29] G. K. Verma y P. Tripathi, «A Digital Security System with Door Lock System Using RFID
Technology,» International Journal of Computer Applications, pp. 6-8, 2010.
[30] J. Rock, «RFID Door Locking Systems,» Hospitality Upgrade, pp. 130-132, 2007.
[31] J. M. Atehortua, Prototipo a Pequeña Escala de un Sistema de Control RFID para los Puntos
89
de Chequeo de Autobuses de Servicio Público, Medellín, 2013.
[32] Stronglink Technology Co., Ltd, «Strong Link,» 2016. [En línea]. Available:
http://www.stronglink-rfid.com/.
[33] HW Group, «HW Group,» [En línea]. Available: http://www.hw-
group.com/products/hercules/index_es.html.
[34] StrongLink, Mifare Reader / Writer SL025B User Manual, 2012.
[35] Arduino, «Arduino,» 2016. [En línea]. Available:
http://playground.arduino.cc/Learning/MFRC522.
[36] Arduino, «Arduino,» 2016. [En línea]. Available:
http://playground.arduino.cc/Code/Timer1.
[37] Arduino, «Arduino,» 2016. [En línea]. Available:
https://www.arduino.cc/en/Tutorial/WebClient.
[38] J. Brathwaite, «Panama Hiteck,» 9 Septiembre 2015. [En línea]. Available:
https://panamahitek.com/conectar-arduino-base-datos-mysql/.
[39] D. Almeida, Diseño de implementación de un prototipo para un sistema de monitoreo de
personal basado en RFID, 2008.
[40] R. Green, Plataforma Tecnológica Regional, hacia el fortalecimiento, 2007.
[41] J. M. Herrera, Estudio, Diseño y simulación de un sistema de RFID Basado en EPC., 2011.
[42] J. Herrera, Tecnología RFID aplicada al control de accesos, 2011.
[43] C. Larman, Applying UML and Patterns: An Introduction to Object-Oriented Analysis and
Design. Westford, Pearson Education, 2004.
[44] J. A. Peñaloza Calderon, Red de PLC's y variadores de velocidad con protocolos Ethernet y
Modbus, Bucaramanga, 2009.
[45] G. López Frias, Diseño e implementación de software y hardware de un registrador de
variables eléctricas con comunicaciones ethernet basado en tecnología arduino y sistema de
supervisión hmi, Latacunga, 2013.
90
GLOSARIO
Amperaje: Unidad de intensidad de una corriente eléctrica.
Cristal oscilador: Circuito electrónico que produce una señal electrónica repetitiva, a menudo
una onda senoidal o una onda cuadrada.
Frecuencia: Magnitud que mide el número de repeticiones por unidad de tiempo de cualquier
fenómeno o suceso periódico. Según el Sistema Internacional (SI), la frecuencia se mide en
hercios (Hz).
HF: Alta frecuencia (High Frequency).
I/O: Entradas/Salidas (input/output).
LF: Baja frecuencia (Low Frequency).
Memoria: Dispositivo dedicado al almacenamiento de información.
Microprocesador: Circuito integrado central y más complejo que constituye la unidad central de
procesamiento (CPU) de un computador o dispositivo electrónico catalogado como
microcomputador.
MySQL: Sistema de administración de bases de datos relacionales de código abierto
RFID: (siglas de Radio Frequency IDentification, en español identificación por radiofrecuencia)
es un sistema de almacenamiento y recuperación de datos remoto que usa dispositivos
denominados etiquetas, tarjetas, transpondedores o tags RFID. El propósito fundamental de la
tecnología RFID es transmitir la identidad de un objeto (similar a un número de serie único)
mediante ondas de radio. Las tecnologías RFID se agrupan dentro de las denominadas Auto ID
91
(automatic identification, o identificación automática).
Tag: rótulo, etiqueta, identificador. Conjunto de bits o de caracteres que identifica diversas
condiciones acerca de los datos de un archivo, y que se encuentra frecuentemente en los registros
de encabezamiento de tales archivos.
Trama informática: la trama alude al enlace interno entre los distintos elementos que componen
un todo. Es utilizado el término en varios sentidos.
En informática se conoce la trama como el paquete de datos, que son los paquetes o grupos de
información, de tamaño pequeño, que se transmiten.
UDP: UDP User Datagram Protocol proporciona un nivel no fiable de transporte de datagramas,
dado que añade muy poca información sobre los mismos (8 bytes, frente a los 20 bytes que usa el
protocolo TCP). La primera consecuencia de esto es que por cada paquete enviado se envía una
mayor cantidad de datos, pero también al reducir la información y comprobaciones de estos se
aumenta la velocidad a la que se transfieren.
Protocolo TCP: Transport Control Protocol proporciona un transporte fiable de flujo de bits
entre aplicaciones. Se utiliza para enviar de forma fiable grandes cantidades de información,
liberando al programador de aplicaciones de tener que gestionar la fiabilidad de la conexión
(retransmisiones, pérdidas de paquetes, orden en que llegan los paquetes, duplicados de
paquetes...), encargándose el propio protocolo de su gestión.
XAMPP: Servidor independiente, funciona como plataforma para la gestión de bases de datos
MySQL, el servidor Web Apache y los intérpretes para lenguajes de script: PHP y Perl.