Unidad Profesional Adolfo López Mateos
Escuela Superior de Ingeniería Mecánica y Eléctrica
CONTROL DE ACCESO MEDIANTE NFC
TESIS
QUE PARA OBTENER EL TÍTULO DE
INGENIERÍA EN COMUNICACIONES Y ELECTRÓNICA
PRESENTAN:
BENJAMÍN AGUSTÍN ARROYO BRIONES
GONZALO ANTONIO CONTRERAS BERNAL
ERICK ANTONIO ESPÍRITU DE LA PAZ
ASESORES:
M. EN C. JAFETH ASCENSIÓN ALONSO CARREÓN
M. EN C. GABRIELA SÁNCHEZ MELÉNDEZ
A
AGRADECIMIENTOS
De todo corazón agradezco a mi familia y a dios por siempre estar tanto en las buenas como en las malas. A mi papá Benjamín Agustín Arroyo García, a mi mamá Antonia Briones Rivera y a mi hermana Nancy Mireya Arroyo Briones que gracias a ellos soy lo que soy y estoy donde estoy. También a todos mis amigos, a los Mikes y a mis profesores por esos momentos que definieron mi presente y me convirtieron en el hombre que ahora soy
DEDICATORIAS
Les dedico esta tesis a mi papá, a mi mamá, a mi hermana, a mis amigos, a los Mikes ya todas las personas que en mi formación profesional me apoyaron incondicionalmente para concluir mis estudios, gracias a ellos alcance lograr mis metas, aprendí a siempre perseverar y ser constante en mi formación como profesionista y como persona.
B
AGRADECIMIENTOS
Es para mí un verdadero placer utilizar este espacio para expresar mis agradecimientos a las personas que me ayudaron, dieron sus consejos y me guiaron en este camino lleno de retos y obstáculos.
Me gustaría agradecer de manera especial y sincera al profesor Jafeth Alonso por haber creído en nosotros para realizar esta tesis y quien nos guió a través de este proyecto. Le agradezco también el habernos facilitado siempre los medios suficientes para llevar a cabo todas las actividades propuestas durante el desarrollo de esta tesis. Muchas gracias profesor.
Quiero expresar también mi más sincero agradecimiento a la profesora Gabriela Sánchez por su importante aporte y participación activa en el desarrollo de esta tesis. Le agradezco también por sus siempre atentas y rápidas respuestas a las diferentes inquietudes surgidas durante el desarrollo de este trabajo, lo cual se ha visto también reflejado en los buenos resultados obtenidos.
Quiero agradecer a todos los amigos y compañeros de clase, que hemos sufrido juntos los problemas que hacer una tesis conlleva, pero sobre todo hemos disfrutado la mejor etapa en la formación profesional.
El agradecimiento más profundo y sentido va para mi familia, sin su apoyo, colaboración e inspiración habría sido imposible llevar a cabo este duro desafío. A mi madre, Estela, por su ejemplo de lucha y honestidad; a mis abuelas Estela y Luchi por darme su consejo; a mi hermano Miguel por su tenacidad y superación, a mi compañera de vida Fabiola por su
a avillosa fo a de ale ta e a segui adela te…po ellos y para ellos.
Finalmente debo agradecer a la Escuela Superior de Ingeniería Mecánica y Eléctrica campus Zacatenco por haber abierto sus puertas para poder culminar mis estudios y haber apoyado para la realización de esta tesis.
DEDICATORIAS
La presente tesis se la dedico a mi madre, por ayudarme a superar esta etapa en mi formación como profesional, por hacer de mí una mejor persona, por enseñarme que con esfuerzo todo es posible, por darme aliento cuando estaba cansado, a levantarme cuando caía, a darme su consejo en momentos de necesidad, por alumbrar mi camino, por guiarme en el sendero correcto, pero, sobre todo, por haber creído en mí y darme su plena confianza.
También quiero dedicar esta tesis a mi hija Romina, por darme ese empuje y fuerza necesarias para seguir adelante y nunca darme por vencido en realizar mis sueños y cumplir mis metas, por enseñarme lo que en verdad importa y, sobre todo, por llegar a iluminar mi vida.
C
AGRADECIMIENTOS
Al M. en C. Jafeth Alonso y la M. en C. Gabriela Sánchez por su gran apoyo, su paciencia y su confianza, siempre estuvieron para apoyarnos y sin ustedes no lo habríamos logrado. GRACIAS.
Al Instituto Politécnico Nacional, mi Alma Mater, institución que me formó, forjó y me permitió cumplir mi sueño, ser ingeniero politécnico. Huélum.
A la ESIME Zacatenco que me enseñó tanto y cada día me hizo mejorar. Nuestros colores son ve de y la o po ue el ojo lo lleva os e la sa g e…
A mi familia, mis tías que fueron mi segunda madre, mis tíos y mis primos que me cobijaron y apoyaron siempre. A mi tía Juanita por su enorme apoyo, jamás podré pagarle todo lo que hizo por mí. A mi tía Ruth, mi inspiración, quien me demostró que siempre hay que luchar y no existen imposibles.
A mis padres por su apoyo incondicional y nunca me negaron mi sueño, les debo todo. A mis hermanas Cynthia y Nancy que me escucharon y me poyaron cuando más lo necesité. Los amo a los . Espí itu de la Paz, o i a ió ú i a pa a u a fa ilia ú i a…
A Nayelli quien me ha empujado a luchar y siempre superarme, te admiro, te amo.
A Gonzalo y Benjamín, mis amigos universitarios, con quienes luche hombro con hombro por 4 años. Lo log a os…
DEDICATORIAS
A mis sobrinas Andi, Pao y Auro, mis princesas, el motor de mi vida, el motivo para luchar cada día, las amo. A mi sobrino Vicente, no logré conocerte y sin embargo te amo. A mi nuevo sobrino, quien aún espero con ansia para jugar.
A mis abuelas Anita y Aurea que desde el cielo me cuidan, sé que pueden ver este logro que también es su logro.
A mis hermanas Cynthia y Nancy, guerreras incansables.
No te rindas, aún estás a tiempo
de alcanzar y comenzar de nuevo,
aceptar tus sombras,
enterrar tus miedos,
liberar el lastre,
retomar el vuelo.
No te rindas que la vida es eso,
continuar el viaje,
perseguir tus sueños,
destrabar el tiempo,
correr los escombros
y destapar el cielo.
No te rindas, por favor no cedas,
aunque el frío queme,
aunque el miedo muerda,
aunque el sol se esconda y se calle el viento,
aún hay fuego en tu alma,
aún hay vida en tus sueños
Porque la vida es tuya y tuyo también el deseo,
porque lo has querido y porque te quiero,
porque existe el vino y el amor, es cierto;
porque no hay heridas que no cure el tiempo.
Abrir las puertas,
quitar los cerrojos,
abandonar las murallas que te protegieron,
vivir la vida y aceptar el reto,
recuperar la risa,
ensayar un canto,
bajar la guardia y extender las manos,
desplegar las alas e intentar de nuevo,
celebrar la vida y retomar los cielos.
No te rindas, por favor no cedas,
aunque el frío queme,
aunque el miedo muerda,
aunque el sol se ponga y se calle el viento,
aún hay fuego en tu alma,
aún hay vida en tus sueños
Porque cada día es un comienzo nuevo,
porque esta es la hora y el mejor momento;
porque no estás solo...
i
TABLA DE CONTENIDO
Objetivos 1
Objetivo General 1
Objetivo Específicos 1
Justificación 1
1 Capítulo I: El Control de acceso 2
1.1 Seguridad física 2
1.2 Funcionamiento del sistema de control de acceso 3
1.3 Credenciales 3
1.4 Acceso a los componentes del sistema de control 3
1.5 Tipos de lectores 4
1.6 Riesgos de seguridad 5
1.7 Tecnología NFC 5
1.7.1 El Sistema RFID 5
1.7.1.1 Funcionamiento y componentes 5
1.7.1.2 Mejoras mediante RFID 7
1.7.1.3 Usos y limitaciones del RFID 8
1.7.1.4 La evolución hacia el NFC 9
1.8 Aspectos Generales 10
1.8.1 Definición del NFC 10
1.8.2 Características 10
1.8.3 Estandarización 10
1.8.4 Modos de operación 11
1.8.5 Arquitecturas de un dispositivo NFC 12
ii
1.9 NFC Forum 14
1.10 Etiquetas NFC 14
1.11 Establecimiento de la comunicación NFC 15
1.12 Formato de datos 15
1.12.1 NFC Data Exchange Format NDEF 15
1.12.2 Definición de Tipos de Registros (RTD) 16
2 Capitulo II: Requerimientos Técnicos para Desarrollo del Prototipo 17
2.1 Arduino 17
2.1.1 ¿Por qué Arduino? 17
2.1.2 Hardware 18
2.1.2.1 Placas E/S 18
2.1.3 Arduino UNO 19
2.1.3.1 Características técnicas del Arduino UNO 19
2.2 PN532 22
2.2.1 Descripción General 22
2.3 Eclipse 27
2.3.1 Arquitectura 27
2.3.2 Características 28
2.3.3 Historia 28
2.3.4 Radiografía 29
2.4 Android 30
2.4.1 Historia 30
2.4.2 Logos 31
2.4.3 Tipografía 31
2.4.4 ¿Qué significan las versiones de Android? 33
iii 2.4.6 ¿Qué desventajas existen en Android a comparación de iOS? 37
2.5 Análisis y programación de actividades del Proyecto 38
3 Capitulo III: Diseño del Prototipo 39
3.1 Aplicación Android 39
3.1.1 Aplicación para Usuario Estándar 39
3.1.1.1 Módulo 1 39
3.1.1.2 Módulo 2 40
3.1.2 Aplicación para Administrador 43
3.1.3 Desarrollo 45
3.2 Software para Arduino Uno y PN532 49
3.2.1 Entorno de desarrollo de Arduino 49
3.2.2 Estructuras de un código para Arduino 50
3.2.2.1 Variables y constantes 50
3.2.3 Desarrollo de aplicación Arduino para lectura de dispositivos 51
3.2.3.1 Fase 1: Librerías y Configuración 51
3.2.3.1.1 SPI.h 51
3.2.3.1.2 PN532_SPI.h 51
3.2.3.1.3 Llcp.h 52
3.2.3.1.4 Snep.h 52
3.2.3.2 Fase 2: Algoritmo de lectura 52
3.2.3.2.1 Recepción del mensaje NDEF 52
3.2.3.2.2 Lectura de etiquetas NFC 53
. . Desa ollo de apli a ió A dui o pa a es itu a de TAG’s NFC 54
3.3 Implementación 55
3.3.1 Prototipo NFC 55
iv
3.4 Costos del Prototipo 61
3.5 Análisis del Prototipo 62
4 Capitulo IV: Pruebas y Resultados 63
Conclusiones 66
ANEXO I: Código Aplicación de Lectura para Arduino UNO 67
ANEXO II: Código para Escritura de TAG´s usando Arduino UNO 68
ANEXO III: Código de App Co trol NFC 69
ANEXO IV: Código App Ad i -Co trol NFC 70
ANEXO V: Licencia BSD 71
ANEXO VI: Hojas de especificaciones del TRIAC MAC 12D 73
ANEXO VII: Hojas de Especificaciones del Optoacoplador MOC 3011 74
ANEXO VIII: Manual de la cerradura elé tri a Lloyd’s odelo LCH-1056 75
ANEXO IX: Artículo Publicado en
The “ iTe h, I te atio al Jou al of E gi ee i g “ ie es 80
v
ÍNDICE DE FIGURAS
Figura I.1. Funcionamiento del sistema RFID 6
Figura I.2. Elementos de un sistema RFID 7
Figura I.3. Modos de operación 11
Figura I.4. Logo del NFC Forum 14
Figura II.1. Arduino UNO 19
Figura II.2. Descripción del Arduino UNO 20
Figura II.3. Esquemático del Arduino UNO 21
Figura II.4. Diagrama de Bloques 23
Figura II.5. Esquemático del PN532 25
Figura II.6. Módulo PN532 25
Figura II.7. Módulo PN532. Vista lateral 26
Figura II.8. Llaveros con módulo NFC 26
Figura II.9. Módulo PN532. Vista frontal 26
Figura III.1. Módulo 1 de la App Control NFC 40
Figu a III. . Módulo de la App Co t ol NFC 40
Figura III.3. Guía de usuario 41
Figu a III. . Apli a ió Co t ol NFC Ad i 43
Figura III.5. IDE Arduino 49
Figura III.6. Esquemático del circuito de control 55
Figura III.7. Esquemático del prototipo 56
Figura III.8. Parte trasera del circuito 56
Figura III.9. Circuito montado y conectado 56
Figura III.10. Prototipo montado y conectado en la puerta 57
Figura III.11. Perforación vertical para cableado 57
Figura III.12. Perforación para cerradura 58
vi
Figura III.14. Conexión interna del circuito 60
Figura III.15. Puerta y sus conexiones internas 60
Figura III.16. Proceso de pintado 60
Figura III.17. Puerta y prototipo terminados y montados, vista exterior 63
Figura III.18. Puerta y prototipo terminados y montados, vista interior 64
Figura IV.1. Momento de acercamiento de una TAG NFC 64
Figura IV.2. Acceso aceptado y apertura de la puerta 65
Figura IV.3. Momento de acercamiento de un dispositivo Android con NFC 65
Figura IV.4. Android BEAM y apertura de la puerta 61
vii
ÍNDICE DE TABLAS
Tabla I.1. Comparativo Código de Barras/RFID 8
Tabla I.2. Tipos de etiquetas NFC 14
Tabla II.1. Características Técnicas 20
Tabla II.2. Datos de referencia 23
Tabla II.3. Descripción de los pines 24
Tabla II.4. Versiones de Eclipse 29
Tabla II.5. Características y especificaciones 31
Tabla II.6. Funciones de las versiones de Android 34
Tabla III.1. Tipos de Datos 50
Tabla III.2. Costo de desarrollo del proyecto 61
viii
ÍNDICE DE DIAGRAMAS
Diagrama II.1. Diagrama de Gantt del Proyecto 38
Diag a a III. . Diag a a de Flujo de la App Co t ol NFC 42
Diag a a III. . Diag a a de Flujo de la App Co t ol NFC Ad i 44
1
OBJETIVOS
OBJETIVO GENERAL
Desarrollar un sistema de control de acceso usando la tecnología NFC (Near Field Communication).
OBJETIVOS ESPECÍFICOS
Analizar la tecnología NFC y sus características.
Establecer una comunicación con la tecnología NFC.
Programar una aplicación Android para establecer comunicación con la tecnología NFC por medio de un teléfono móvil.
Implementar el prototipo usando etiquetas NFC como llaves.
JUSTIFICACIÓN
La tecnología inalámbrica NFC (Near Field Communication) cumplió 10 años en 2013 ya que el estándar ISO/IEC se aprobó el 8 de diciembre del 2003. Sin embargo, ha pasado mucho sin que se aclarara su validez práctica a pesar de la información de los consorcios cuyos fabricantes de equipos móviles trataron de comenzar a impulsar esta tecnología.
El aprovechamiento de la tecnología NFC y explotación de ella en el campo de los accesos restringidos es una de las principales características de este proyecto. Debido a que esta tecnología a pesar de que se implementó desde el año 2003 no se le ha dado la atención necesaria para su estudio. Entre otros aspectos, la tecnología NFC nos proporciona numerosas ventajas y cabe mencionar algunos ejemplos de su aplicación como lo es transferir fotos, videos o música, tener una identificación y control del coche, tener una sesión en cajeros automáticos 2.0, realizar compras más allá de los códigos QR, poder identificarse en eventos, efectuar pagos móviles, el uso de etiquetas NFC, etc.
La implementación de accesos restringidos nos facilita tener costos pequeños y accesibles a toda persona. Ciertamente el hablar de su seguridad es un tema importante el cual es necesario tocar debido a que esta tecnología nos proporciona seguridad, confiabilidad y confidencialidad, sin mencionar que es ecológico ya que evita el uso de metales en la producción de llaves.
Por medio de la radiofrecuencia o el sistema RFID se aplica su transmisión y básicamente la tecnología NFC nos permite realizar una comunicación simple, segura e intuitiva entre dispositivos.
2
Capítulo I: El control de acceso
El control de acceso es la restricción selectiva de acceso a un lugar u otro recurso. El hecho de acceder a puede significar mucho, entrar, o usar. El permiso para acceder a un recurso se llama autorización.
Las herraduras y credenciales de inicio de sesión son dos mecanismos análogos de control de acceso.
1.1 La seguridad física
El control de acceso geográfico puede ser ejecutado por personal, o con un dispositivo, como un torniquete. Una alternativa de control de acceso en sentido estricto, es un sistema de control de presencia autorizada. Una variante es el control de salida, por ejemplo, de una tienda o de un país.
El control de acceso se refiere a la práctica de restringir la entrada a una propiedad, un edificio o una habitación a las personas no autorizadas. Control de acceso físico puede lograrse por un ser humano, a través de medios mecánicos, tales como cerraduras y llaves, o por medios tecnológicos tales como los sistemas de control de acceso como los lectores dactilares. Dentro de estos entornos, la gestión de claves físicas también puede ser empleada como un medio de gestión y seguimiento del acceso a las zonas con llaves mecánicas.
El control de acceso físico es una cuestión de ¿Quién? ¿Dónde? y ¿Cuándo? Un sistema de control de acceso determina quién tiene permiso para entrar o salir, donde se les permite salir o entrar, y cuando se les permite entrar o salir. Históricamente esto se logró parcialmente a través de llaves y cerraduras:
Cuando una puerta se cierra sólo alguien con una llave puede entrar por la puerta en función de cómo esté configurado el bloqueo.
Cerraduras mecánicas y llaves: no permiten la restricción de la entrega de llaves a los nuevos tiempos o fechas específicas. No proporcionan registros de la clave utilizada en cualquier puerta específica y las llaves pueden ser fácilmente copiados o transferidos a una persona no autorizada.
Cuando una llave mecánica se pierde o el titular de la clave ya no está autorizado a utilizar el área protegida, los bloqueos deben ser re-codificados.
3
1.2 El funcionamiento del sistema de control de acceso
Cuando se presenta una credencial a un lector, el lector envía la información de la credencial (por lo general un número) a un panel de control. El panel de control compara el número de la credencial con una lista de control de acceso, concede o deniega la solicitud presentada y envía un registro de transacciones de una base de datos. Cuando se niega el acceso basado en la lista de control de acceso, la puerta permanece bloqueada. Si hay una coincidencia entre la credencial y la lista de control de acceso, el panel de control opera un relevador (por ejemplo) que a su vez abre la puerta. El panel de control también hace caso omiso de una señal cuando la puerta está abierta para evitar una alarma. A menudo, el lector proporciona retroalimentación, tal como un LED rojo para un acceso denegado y un LED verde para un acceso concedido.
La descripción anterior ilustra una operación de un solo factor. Las credenciales se pueden transferir, subvirtiendo así la lista de control de acceso. Por ejemplo, Alicia tiene derechos de acceso a la sala de servidores, pero Juan no lo tiene. Alicia le da su credencial a Juan por lo que ahora tiene acceso a la sala de servidores. Para evitar esto, la autenticación de dos factores puede ser utilizada. En una transacción de dos factores, se necesitan la credencial presentada y un segundo factor para el acceso a determinados; otro factor puede ser un PIN, una segunda credencial, la intervención del operador, o una entrada biométrica.
Hay tres tipos de autenticación de la información:
Algo que el usuario sabe, por ejemplo, una contraseña, frase de paso o PIN Algo que el usuario tiene, como tarjetas inteligentes
Algo que el usuario es, tales como huellas dactilares, verificada por la medición biométrica
1.3 Credencial
Una credencial es un objeto físico, un conocimiento o una faceta de la existencia física de una persona, que permite a una persona el acceso a una instalación física determinada o a un sistema de información basado en computadora. Normalmente, las credenciales pueden ser algo que usted sabe, algo que tiene, algo que es o alguna combinación de estos elementos. La credencial más típica es una tarjeta de acceso, llavero, u otro dispositivo. Hay muchas tecnologías de tarjetas incluyendo banda magnética, código de barras, proximidad a 13,56 MHz, tarjeta magnética de 26 bits, tarjetas inteligentes de contacto y tarjetas inteligentes sin contacto, tecnologías biométricas típicas (incluyen huellas dactilares, reconocimiento facial, reconocimiento de iris, escáner de retina, voz y geometría de la mano).
1.4 Acceso a los componentes del sistema de control
4
cerradura eléctrica independiente. La cerradura se desbloquea por un operador con un interruptor. Para automatizar este sistema, la intervención del operador se sustituye por un lector. El lector puede ser un teclado, donde se introduce un código, podría ser un lector de tarjetas, o podría ser un lector biométrico. Los lectores no suelen hacer una decisión de acceso, pero envían un número de tarjeta a un panel de control de acceso que verifica el número con una lista de acceso. Para controlar la posición de la puerta se utiliza un interruptor magnético. En concepto del interruptor de la puerta no es diferente a las de los refrigeradores o las puertas del coche. En general, sólo se controla la entrada, y la salida no está controlada. En los casos en que la salida se controla, un segundo lector se utiliza en el lado opuesto de la puerta. En los casos en que no se controla la salida (salida libre) un dispositivo manda una solicitud para salir, los dispositivos de salida puede ser un botón pulsador o un detector de movimiento. Cuando se pulsa el botón o el detector de movimiento es activado, la alarma de la puerta se ignora temporalmente mientras se abre dicha puerta. La acción de salir de una pue ta si te e ue a i di ha pue ta elé t i a se lla a salida li e e á i a . Esta es u a característica de seguridad importante. En los casos en que el seguro debe estar desbloqueado eléctricamente a la salida.
1.5 Tipos de lectores
Lectores de control de acceso pueden ser clasificados por las funciones que son capaces de realizar:
Lectores básicos: basta con leer el número de tarjeta o PIN y lo remitirá a un panel de control. Este es el tipo más popular de los lectores de control de acceso. Ejemplos de estos lectores son Tiny RF RFLOGICS, ProxPoint por HID, etc.
Lectores semi-inteligentes: son todas las entradas y salidas necesarias para el control de hardware de la puerta, pero no toman ninguna decisión de acceso. Cuando un usuario presenta una tarjeta o PIN entra, el lector envía información al controlador principal y espera su respuesta. Si se interrumpe la conexión con el controlador principal, estos lectores dejan de funcionar o funcionan en modo degradado. Por lo general, los lectores semi-inteligentes están conectados a un panel de control a través de un bus RS-485. Ejemplos de estos lectores son InfoProx Lite IPL200 por CEM Systems y AP-510 por Apolo.
Lectores inteligentes: son todas las entradas y salidas necesarias para el control de hardware de la puerta, también tienen memoria y potencia de procesamiento necesaria para tomar decisiones de acceso independiente. Igual que los lectores semi-inteligentes que se conectan a un panel de control a través de un bus RS-485. El panel de control envía actualizaciones de configuración y recupera los eventos de los lectores. Ejemplos de estos lectores podrían ser InfoProx IPO200 por CEM Systems y AP-500 por Apolo. También hay una nueva generación de lectores inteligentes que se refiere como "lectores IP". Los sistemas con lectores de propiedad intelectual por lo general no tienen paneles de control tradicionales y los lectores se comunican directamente al PC que actúa como anfitrión.
5
1.6. Riesgos de seguridad
El riesgo de seguridad más común de la intrusión de un sistema de control de acceso es simplemente seguir un usuario legítimo a través de una puerta. A menudo, el usuario legítimo sostiene la puerta para el intruso. Este riesgo se puede minimizar mediante la capacitación y concienciación sobre la seguridad a usuarios. En las aplicaciones de seguridad donde es muy alto este riesgo se reduce al mínimo mediante el uso de un puerto de salida, a veces llamado un vestíbulo de seguridad donde se requiere la intervención del operador para asegurar una identificación válida.
El hardware de bloqueo de suplantación es bastante simple. Un imán fuerte puede operar el solenoide de control de los pernos en el hardware de bloqueo eléctrico. Las cerraduras de motor también son susceptibles a este ataque con un imán. También es posible manipular el poder de la cerradura ya sea mediante la eliminación o la adición de corriente.
1.7 Tecnología NFC
La tecnología conocida como Near Field Communication o NFC puede considerarse como un avance del RFID o Radio Frequency Identification. Básicamente, NFC permite realizar una comunicación simple, segura e intuitiva entre dispositivos.
NFC aparece como una evolución en el uso de aplicaciones dentro del teléfono móvil, pues se presenta como un sistema de comunicación sencilla, una alternativa para el manejo de pagos y una opción para el almacenamiento de datos de forma más segura para los dispositivos electrónicos móviles. La principal característica que hace que la tecnología NFC sea interesante y atractiva, es que complementa a otras tecnologías inalámbricas como el Bluetooth, WiFi y el mismo RFID. La principal diferencia entre NFC y los otros esquemas sin contacto, es que no está pensada para la transmisión masiva de datos, pero sí para un intercambio casi instantáneo de una poca cantidad de información y no necesita de un emparejamiento previo.
Para la mejor comprensión de la tecnología NFC, debemos primeramente conocer los principios de su antepasado, el sistema RFID.
1.7.1 El sistema RFID
1.7.1.1 Funcionamiento y componentes
6
[image:20.595.228.366.175.298.2]El funcionamiento de los sistemas de RFID es sencillo. Básicamente consta de tres partes como se ve en la Figura 1. Existe un lector RFID que de manera periódica busca en su zona de alcance la información contenida en las señales que son emitidas por alguna etiqueta RFID [1][2]. Estas etiquetas poseen la capacidad de adherirse a productos, personas o animales que necesitan ser identificados o seguidos. Una vez que se hayan recibido los datos, el lector los transfiere a un subsistema de procesamiento para la interpretación y el tratamiento correspondiente.
Figura I.1. Funcionamiento del sistema RFID
La onda tiene potencia suficiente como para despertar las etiquetas que se encuentren en la onda de interrogación; los parámetros de esta onda (frecuencia, amplitud, comandos, velocidades, entre otros) están definidos por el protocolo de comunicación. En otras palabras, el protocolo fija el lenguaje entre el lector y las etiquetas, así que ambos deben utilizar el mismo protocolo.
Cuando la etiqueta despierta responde al lector enviando su UID (identificador único). Como la etiqueta no tiene batería, la única forma que tiene de transmitir información es reflejar la onda que recibe, de forma similar a un heliógrafo reflejando la luz solar [2].
Una vez que se ha establecido la comunicación, el lector puede enviar comandos a la etiqueta para leer su memoria, grabar nueva información o incluso destruir la etiqueta.
Elegir correctamente cada uno de estos elementos es esencial para garantizar el correcto funcionamiento de la instalación.
Hay muchos tipos de lectores dependiendo del uso que vayan a tener: desde lectores fijos de largo alcance (para cintas de transporte, carretillas elevadoras o muelles de almacenes) a dispositivos portátiles para lectura manual [2][3]. Los lectores industriales suelen trabajar con varias antenas multiplexadas para asegurar una óptima cobertura en la zona de interrogación. Todos ellos se pueden conectar a la red local directamente, o bien a través de un ordenador puente.
Con respecto a las etiquetas, de nuevo hay múltiples opciones: desde los simples inlays (etiqueta RFID desnuda, en la que tanto la antena como el chip están desprotegidos), pasando por las etiquetas térmicas estándar (se pueden imprimir y a la vez grabar como RFID) hasta etiquetas robustas para ambientes industriales. Incluso hay etiquetas que soportan operación en entornos metálicos, líquidos o agresivos químicamente [3].
7 Figura I.2. Elementos de un sistema RFID
Considerando las etiquetas RFID, se puede decir que se componen principalmente por una antena, un transductor de radio y un material encapsulado o chip. Podemos clasificar a las etiquetas tomando en cuenta la fuente de alimentación, considerando esto, existen básicamente tres tipos [2]:
Etiquetas pasivas: Son las más económicas. No poseen fuente de alimentación propia, por lo que utilizan la pequeña corriente eléctrica inducida por la energía que reciben del lector, misma que es suficiente para poner en marcha su circuito y para realizar la transmisión de datos.
Etiquetas semi-pasivas: Reciben parte de su energía de una fuente propia de alimentación. Esta batería les sirve para alimentar solo sus circuitos, para la transmisión de información, utiliza la energía del lector.
Etiquetas activas: Son menos económicas que las anteriores pero poseen mayor capacidad de almacenamiento tanto para sus circuitos, como la transmisión de la información.
1.7.1.2 Mejoras mediante RFID
8 Tabla I.1. Comparativo Código de Barras/RFID
1.7.1.3 Usos y limitaciones del RFID
Existe un amplio abanico de necesidades de identificación que se cubren perfectamente mediante la utilización de RFID [2] [3]:
Identificación de activos: cada activo tiene una etiqueta con el número de inventario, descripción, usuario y estado de mantenimiento.
Trazabilidad en la alimentación: la etiqueta de cada unidad de almacenamiento (SKU) tiene el número de lote, fabricante, fecha de caducidad y referencia del cliente.
Control de proceso: la etiqueta contiene datos de identificación (lote y referencia) y parámetros de proceso.
Identificación personal: los nuevos pasaportes y DNI contienen información encriptada que permite evitar falsificaciones.
Prevención de copias ilegales: los artículos originales contienen el número de serie en el chip, de forma que cuando se van a utilizar es posible comprobar este dato.
Identificación de animales en granjas y mascotas.
Aunque tiene muchas ventajas, también tiene limitaciones:
Limitaciones intrínsecas a la tecnología:
o Radio de lectura entre 10 cm y 10 m, dependiendo de la potencia del lector, y de la sensibilidad de la etiqueta.
9
Amortización de la inversión (ROI): antes de implantar esta tecnología es necesario realizar un estudio detallado de las mejoras que el usuario va a obtener de ella, y si es posible, calcular el ahorro que supone.
Los usuarios tienen que familiarizarse con la tecnología. Aunque es muy sencilla y fiable, implica un cambio en la forma de trabajo, y los usuarios tienen que confiar en una etiqueta que contiene la información pero esta no es visible si no es mediante un lector apropiado.
1.7.1.4 La evolución hacia el NFC
El Near Field Communication brinda nuevas funciones a la tecnología RFID. Esto se debe a la combinación de un lector y una etiqueta RFID en un mismo equipo NFC [3][4]. De esta manera se facilita la comunicación en ambas direcciones entre dos dispositivos y se quiebra la separación funcional de los esquemas RFID, es decir, el lector por un lado y las etiquetas por el otro.
Es necesario considerar que la tecnología NFC tiene algunas diferencias con RFID, a pesar de que ambas utilizan el mismo tipo de chip y que deriva de la otra. Lo que debe quedar claro es que aunque NFC es un nuevo estándar que aparece a raíz de RFID, su misión no es reemplazarlo, más bien, complementarlo aumentando sus funciones.
Realizando una comparación entre NFC y RFID, encontramos que la primera posee la capacidad de cómputo necesaria para ejecutar operaciones, hecho que hace fácil su integración en dispositivos como teléfonos móviles. Además NFC provee una comunicación peer to peer, medio que permite intercambiar información entre dos dispositivos.
Otra cuestión que tiene NFC es que permite rangos pequeños de comunicación, y por ende posee una seguridad inherente, punto que lo hace preferible para cuestiones de comunicación que requieren seguridad como los medios de pago o intercambio de información personal. Además NFC no puede ser activado de forma remota, involuntariamente o por accidente. El teléfono obliga a que deba existir un acercamiento entre dispositivos antes de iniciar una comunicación.
10
1.8
Aspectos Generales
1.8.1 Definición del NFC
Near Field Communication (NFC), es una tecnología de comunicación de corto alcance, que permite el intercambio de datos entre dos dispositivos de manera inalámbrica. Es compatible con infraestructuras RFID, debido a que es un derivado del mismo [4].
El NFC fue creado en el año 2002 como un proyecto encabezado por Nokia, Philips y Sony, mismas empresas que componen la asociación NFC Forum, para promover la utilización de este sistema en dispositivos móviles. En el 2003 fue aprobada como estándar ISO/IEC [4].
El sistema de corto alcance se compone de dos elementos: un iniciador y un objetivo, en donde cualquier dispositivo con NFC puede adoptar las funciones o el comportamiento de una de estas partes. El NFC puede ser instalado en cámaras fotográficas, reproductores, televisores, teléfonos celulares y hasta en controles remotos.
1.8.2 Características
El NFC proporciona la comunicación inalámbrica de corto alcance mediante un campo magnético que permite el intercambio de datos, y opera en un ambiente en donde los dispositivos se encuentran separados una distancia de 4 centímetros como máximo. El sistema se maneja en la banda de frecuencias no licenciada de fc=13.56 MHz, y un ancho de banda que oscila a 7 kHz a cada lado de fc. Las comunicaciones pueden ser half o full dúplex [4][5]. Se utiliza el esquema de modulación Amplitud Shift Keying (ASK) y la codificación Manchester. Se disponen de tres velocidades de transmisión 106, 212 y 404 Kbps que son fijadas por el dispositivo que inicia la conexión.
Un dispositivo NFC que comienza la comunicación y controla el intercambio de información es conocido como iniciador (similar al lector RFID), y el que responde al iniciador es conocido como objetivo. La comunicación puede realizarse en modo activo o bien en modo pasivo.
1.8.3 Estandarización
Existen diferentes estándares para el NFC, como los detenidos por ISO /IEC (International Organization for Standarization/ International Electrotechnical Comision), el ETSI (European Telecommunications Standards Institute) y también el ECMA (European Computer Manufacturers Association). Estos especifican aspectos importantes en los sistemas NFC como la tasa de transferencia, el esquema para la codificación y modulación así como otros parámetros.
11 1.8.4 Modos de operación
Teniendo en cuenta el modo de operación, el NFCIP-1 y el NFCIP-2 son los protocolos más significativos. A continuación se describen brevemente [5]:
NFCIP-1: Combina dos protocolos de comunicación que pertenecen al RFID, tales como el MIFARE y el FeliCa, e incluye en ellos nuevos protocolos de transporte.
NFCIP-2: Hace posible la combinación del NFC con lectores RFID logrando así una compatibilidad.
Como se mencionó anteriormente, para establecer una comunicación existen dos modos [5][6]:
Modo pasivo: Debe existir un dispositivo que reciba y otro que emita, este último dispone de fuente eléctrica propia para funcionar, y debe generar una señal para el intercambio de datos. Por el otro lado el dispositivo receptor no posee baterías y debe aprovechar el campo incidente del emisor para el funcionamiento de sus circuitos.
Modo Activo: Los dispositivos poseen energía propia, por lo que ambos son capaces de generar el campo electromagnético para la transferencia de datos.
Para los dispositivos NFC es posible hacer la comunicación en el aire con otro, actuando como etiqueta o haciendo de lector / escritor. Referente a esto, el NFC Forum define los siguientes modos de operación:
Peer to peer: Es utilizado cuando surge la necesidad de transmitir una reducida cantidad de datos (unos pocos kilobytes). Si se desea elevar la cantidad de datos en la transmisión, la tecnología NFC es utilizada para concretar una conexión inalámbrica con el soporte necesario para la comunicación, como por ejemplo Bluetooth.
Lectura/escritura: En este modo, se tiene la capacidad de leer y escribir las etiquetas. El dispositivo puede leer cuatro tipos de etiquetas, mismas que fueron definidas en el NFC Forum. Una vez establecida la comunicación es posible el intercambio de texto (en pequeñas cantidades), una dirección de internet o un número de teléfono.
[image:25.595.217.379.629.755.2] Emulación de tarjeta inteligente: Un lector puede identificar a un dispositivo NFC, como si este fuera una etiqueta NFC o una tarjeta inteligente. Este modo puede ser usado para medios de pago, transacciones bancarias, pagos rápidos y control de acceso.
12 1.8.5 Arquitectura de un dispositivo NFC
En un dispositivo móvil NFC, es posible distinguir entre dos componentes fundamentales [6]:
Chip NFC y antena: Este conjunto permite la comunicación y el intercambio de datos entre los sistemas NFC a muy poca distancia, por medio de un campo magnético. El chip se encuentra conectado al controlador banda base del teléfono, que es el encargado de la comunicación del móvil.
Elemento seguro (SE): Es un chip independiente que contiene las aplicaciones basadas en claves de seguridad, tiene como propósito permitir las transacciones seguras. Existen varias implementaciones para este elemento y se diferencian en su ubicación dentro del móvil.
A continuación se detallan las implementaciones para el elemento seguro [5] [6]:
o SE incorporado en el circuito del móvil: Es la arquitectura más utilizada en los proyectos a nivel mundial. En este caso el SE puede ser un chip ya montado en la placa base o conectado a ella de alguna manera. Su ventaja principal es que ya posee todas las certificaciones hardware y software necesarios, sin embargo, este modelo acarrea todo un problema cuando el usuario quiera cambiar de teléfono y deba de gestionar las credenciales de pago.
o Tarjeta de memoria utilizada como SE: En esta implementación una tarjeta de memoria incorpora un chip con un micro controlador y una memoria flash.
o Tarjeta SIM como SE: Esta solución es más llamativa para las operadoras, porque de esta forma toda la gestión de la información estará a su cargo. En este modelo, la tarjeta SIM incorpora la aplicación de pago, dicha aplicación puede cargarse en la propia tarjeta SIM.
1.8.6 Aplicaciones de NFC
Pagos mediante móvil
Esta aplicación es la más conocida de la tecnología NFC, y es que pasando el terminal móvil por un sensor se puede producir una transacción de manera cómoda y ágil. Para esta transmisión se requiere un terminal NFC y además disponer de una SIM NFC insertada en el terminal que contiene los datos bancarios de forma segura.
Según una encuesta realizada a más de 1.000 expertos el NFC superará en el 2020 a los pagos con la tarjeta de crédito.
13
Otra de las grandes empresas que se ha lanzado a este sistema es Google, a través de su Google Wallet. Este producto es sencillamente un widget que se puede descargar en el teléfono móvil y autorizar la conexión con la SIM NFC. A partir de allí se pueden realizar pagos pasando el terminal por un punto de pago CitiPass y solo será necesario un click para confirmar e insertar el número PIN de la tarjeta bancaria. Este sistema funciona con cualquiera de las tarjetas MasterCard asociadas con Citipass.
Una empresa como Carrefour también quiere pasarse al nuevo sistema NFC mediante el se vi io Mo Pa ie , esta apli a ió óvil pe ite ealiza los pedidos y pagos e estos supermercados a través del terminal, luego el personal de Carrefour prepara la compra y la dejan lista para que el usuario se persone en el kiosko Mon Panier y se lleve su compra.
Acceso a instalaciones con acreditación:
Un ejemplo de esta aplicación es el piloto que se realiza en la Universidad Católica de Murcia donde los estudiantes utilizan el NFC del terminal para acceder a las instalaciones del campus y además esta acreditación permite realizar un control de asistencia automático.
Se prevé también que este piloto se amplíe y se pueda llegar a utilizar para que los estudiantes se muevan a través de la red de transporte gracias al bono electrónico de NFC. Este piloto está financiado por Banco Santander y Vodafone.
Carteles NFC-Publicidad:
Una empresa australiana de telecomunicaciones (Telstra) ha lanzado una campaña de posters que incorporan NFC.
El usuario acercando el móvil a la etiqueta NFC que se encuentra en el poster publicitario puede de esta manera descargarse aplicaciones, muestras gratuitas del servicio de música que ofrece la compañía e incluso recargarse la tarjeta prepago.
Ya se han distribuido 20 cabinas de teléfono en Melbourne y Sydney que incorporan estas etiquetas tan particulares.
Libros con contenidos Multimedia:
La tecnología NFC puede incluirse en los libros a través de etiquetas que se encuentran en las hojas del interior. Gracias a acercar el terminal móvil a estas etiquetas existe la posibilidad de descargarse archivos multimedia que complementan las lecturas. Catch the Sun, un libro sobre los vuelos en globo, integra este sistema.
Integración en automóviles:
14
Además recientemente BlackBerry y Porche 911 han realizado la integración del terminal móvil con el automóvil a través de una simple etiqueta NFC. Esta integración permite poder acceder a través del display del coche a la música de la BlackBerry, o llamar a través del micrófono instalado en el coche de entre otras posibilidades.
1.9 NFC Forum
En el año 2004, se constituye el NFC Forum, definiéndose como una organización sin fines de lucro que busca promocionar la utilización del NFC en dispositivos a través del desarrollo de ciertas especificaciones que intentan unificar los sistemas NFC [4].
El NFC Forum fue creado por las tres entidades pioneras en el NFC, Philips, Sony y Nokia, y ahora ya cuenta con más de una centena de miembros, entre ellos, empresas del rubro tecnológico, organismos económicos y otras organizaciones sin fines de lucro.
Esta asociación fomenta el desarrollo de un ambiente en donde se consiga que las aplicaciones para el NFC sean seguras y puedan funcionar unas con otras sin problema. Para lograr esto se definen especificaciones tanto para la arquitectura de los sistemas, como los protocolos para lograr la operatividad en conjunto.
Figura I. 4. Logo del NFC Forum
1.10 Etiquetas NFC
Constituyen una parte importante de la tecnología NFC, implementan un almacenamiento pasivo en la espera de que algún lector NFC requiera la información que retienen. El NFC Forum ha definido cuatro tipos de etiquetas [4] [6].
En las especificaciones de las etiquetas se establecen las características de cada uno de los cuatro tipos, de manera tal a lograr la compatibilidad y operatividad de los dispositivos en sus diferentes modos de lectura o escritura. En estas especificaciones se fijan varios parámetros como los que se muestran a continuación en la Tabla I.2.
15
1.11 Establecimiento de la comunicación NFC
En los sistemas NFC se pueden distinguir cinco etapas importantes que están presentes durante el establecimiento de la transacción [6]. Estas fases son:
Descubrimiento: En esta fase inicial, los dispositivos se rastrean mutuamente y luego inician el reconocimiento.
Autenticación: Cada uno de los dispositivos verifican si en el otro extremo su par está autorizado o si deben establecer una conexión segura a través de un cifrado correspondiente.
Negociación: Hasta este punto se definen parámetros como la tasa de transmisión, la identidad del dispositivo, la aplicación, y si es el caso, también la acción que van a solicitar.
Transferencia: En esta fase ya puede realizarse el intercambio de datos.
Confirmación: El receptor confirma el establecimiento de la comunicación y la transferencia de los datos.
Un aspecto que no debe pasarse por alto durante las transacciones, es la seguridad. Teniendo en cuenta esto, es posible utilizar un cifrado AES y triple DES para emular la protección que ofrece una tarjeta bancaria inteligente.
1.12 Formato de datos
Para que las etiquetas y los dispositivos puedan comunicarse entre sí, y se pueda conseguir la compatibilidad entre dispositivos NFC y RFID de los diferentes fabricantes, el NFC Forum definió un formato de datos estandarizado.
1.12.1 NFC Data Exchange Format NDEF
Se define un formato de encapsulación de mensaje para intercambiar información entre dispositivos NFC, ya sea de un dispositivo a una etiqueta o entre dos dispositivos NFC activos, también se especifican las reglas para construir un mensaje NDEF correcto, así como una cadena ordenada de registros NDEF.
16 Con este formato pueden transmitirse varios tipos de información, como:
Documentos o fragmentos XML, imágenes de diversos formatos y datos encriptados.
Cadenas de información encapsulada.
Documentos múltiples que guardan alguna relación lógica.
1.12.2 Definición de Tipos de Registros (RTD)
Proporciona las pautas para la especificación de los tipos de registros, que pueden ser incluidos en mensaje NDEF. Esta especificación soporta aplicaciones específicas NFC [4].
El NFC Forum define dos tipos: NFC Forum External Types y NFC Forum Well-Known Types, siendo el primero creado para dar a otros organismos la posibilidad de especificar sus propios tipos de forma independiente.
Con respecto al NFC Forum Well-Known Types, es necesario decir que fue estandarizado por las especificaciones del NFC Forum, que proporciona la pauta para el procesamiento y representación de los datos. Ellos son:
Text Record Type: Sólo texto simple, ninguna aplicación específica asignada.
Uniform Resource Identifier (URI) Record Type: Correo electrónico, direcciones de Internet, números de teléfono u otros códigos de identificación.
Smart Poster Record Type: Es una extensión del tipo de registro URI, que proporciona información adicional acerca del URI, como iconos o acciones recomendadas.
Generic Control Record Type: Proporciona una estructura para cualquier actividad de control.
Signature Record Type: Una firma está prevista para certificar la veracidad de los datos.
Connection Handover: Ofrece traspaso de una conexión NFC a otra tecnología de comunicación con mayor rendimiento de datos (por ejemplo, Bluetooth).
17
Capítulo II: Requerimientos Técnicos para Desarrollo
del Prototipo
NFC es un avance de otra tecnología llamada RFID, la cual está compuesta principalmente por un Tag o etiqueta, un lector y un sistema de procesamiento. NFC combina un lector y una etiqueta RFID en un mismo equipo. Permite rangos pequeños de comunicación, por ello, posee una seguridad inherente, no puede ser activado de forma remota o involuntaria, es obligatoria la existencia de un acercamiento entre dispositivos antes de iniciar la comunicación. El sistema se maneja en la banda de frecuencias no licenciada de 13.56 MHz. NFC tiene diversos modos de operación, como son: peer to peer (transmisión de una cantidad reducida de datos), lectura/escritura (leer y escribir tarjetas o TAG’s) y emulación de tarjeta (método de pago, transacciones, etc.).
Para establecer una comunicación entre dispositivos NFC se necesitan ciertos requerimientos técnicos tanto de hardware como de software, en este capítulo se mostrarán estos requerimientos, además se programarán las actividades a realizar para la elaboración del proyecto, esto se verá reflejado en un diagrama de Gantt.
2.1 Arduino
Arduino es una herramienta para hacer que los ordenadores puedan sentir y controlar el mundo físico a través de tu ordenador personal [7]. Es una plataforma de desarrollo de computación física (physical computing) de código abierto, basada en una placa con un sencillo microcontrolador y un entorno de desarrollo para crear software (programas) para la placa.
Puedes usar Arduino para crear objetos interactivos, leyendo datos de una gran variedad de interruptores y sensores y controlar multitud de tipos de luces, motores y otros actuadores físicos. Los proyectos de Arduino pueden ser autónomos o comunicarse con un programa (software) que se ejecute en tu ordenador (ej. Flash, Processing, MaxMSP). El software es de código abierto.
El lenguaje de programación de Arduino es una implementación de Wiring, una plataforma de computación física parecida, que a su vez se basa en Processing, un entorno de programación multimedia.
2.1.1 ¿Por qué Arduino?
18
Asequible - Las placas Arduino son más asequibles comparadas con otras plataformas de microcontroladores. La versiones más caras de los módulos de Arduino no superan los 6 €.
Multi-Plataforma - El software de Arduino funciona en los sistemas operativos Windows, Macintosh OSX y Linux. La mayoría de los entornos para microcontroladores están limitados a Windows.
Entorno de programación simple y directo - El entorno de programación de Arduino es fácil de usar para principiantes y lo suficientemente flexible para los usuarios avanzados. Pensando en los profesores, Arduino está basado en el entorno de programación de Procesing con lo que el estudiante que aprenda a programar en este entorno se sentirá familiarizado con el entorno de desarrollo Arduino.
Software ampliable y de código abierto- El software Arduino está publicado bajo una licencia libre y preparado para ser ampliado por programadores experimentados. El lenguaje puede ampliarse a través de librerías de C++, y si se está interesado en profundizar en los detalles técnicos, se puede dar el salto a la programación en el lenguaje AVR C en el que está basado. De igual modo se puede añadir directamente código en AVR C en los desarrollos.
Hardware ampliable y de Código abierto - Arduino está basado en los microcontroladores ATMEGA168, ATMEGA328 y ATMEGA1280. Los planos de los módulos están publicados bajo licencia Creative Commons, por lo que diseñadores de circuitos con experiencia pueden hacer su propia versión del módulo, ampliándolo u optimizándolo.
2.1.2 Hardware
Hay múltiples versiones de la placa Arduino. La mayoría usan el ATmega168 de Atmel, mientras que las placas más antiguas usan el ATmega8 [7] [9].
Nota: Los diseños de referencia para Arduino se distribuyen bajo licencia Creative Commons Attribution-ShareAlike 2.5.
2.1.2.1 Placas E/S
Diecimila: Esta es la placa Arduino más popular. Se conecta al ordenador con un cable estándar USB y contiene todo lo que necesitas para programar y usar la placa. Puede ser ampliada con variedad de dispositivos: placas hijas con características específicas.
Nano: Una placa compacta diseñada para uso como tabla de pruebas, el Nano se conecta al ordenador usando un cable USB Mini-B.
Bluetooth: El Arduino BT contiene un módulo bluetooth que permite comunicación y programación sin cables. Es compatible con los dispositivos Arduino.
19
Mini: Esta es la placa más pequeña de Arduino. Trabaja bien en tabla de pruebas o para aplicaciones en las que prima el espacio. Se conecta al ordenador usando el cable Mini USB.
Serial: Es una placa básica que usa RS232 como un interfaz con el ordenador para programación y comunicación. Esta placa es fácil de ensamblar incluso como ejercicio de aprendizaje.
2.1.3 Arduino UNO
Arduino Uno es una placa electrónica basada en el microcontrolador ATmega328. Cuenta con 14 entradas/salidas digitales, de las cuales 6 se pueden utilizar como salidas PWM (Modulación por ancho de pulsos) y otras 6 son entradas analógicas. Además, incluye un resonador cerámico de 16 MHz, un conector USB, un conector de alimentación, una cabecera ICSP y un botón de reseteado. La placa incluye todo lo necesario para que el microcontrolador haga su trabajo, basta conectarla a un ordenador con un cable USB o a la corriente eléctrica a través de un transformador [7].
Figura II.1. Arduino UNO
2.1.3.1 Características técnicas del Arduino UNO
Un sistema electrónico es cualquier disposición de componentes electrónicos con un conjunto definido de entradas y salidas. Una placa Arduino, por tanto, puede pensarse de forma simplificada como un sistema que acepta información en forma de señal de entrada, desarrolla ciertas operaciones sobre ésta y luego produce señales de salida.
En los sistemas electrónicos, una magnitud física variable se representa generalmente mediante una señal eléctrica que varía de manera tal que describe esa magnitud. Por lo general, se hace referencia a las señales continuas como señales analógicas, mientras que asociamos las señales discretas a señales digitales: el ejemplo más claro es el de las señales binarias, donde la señal sólo pueden tomar dos niveles, 0 o 1.
20 Tabla II.1. Características Técnicas
Figura II.2. Descripción del Arduino UNO
Empezando según las agujas del reloj [7] [10]:
Terminal de referencia analógica (naranja)
Tierra digital (verde claro)
Terminales digitales 2-13 (verde)
Terminales digitales 0-1/ E/S serie - TX/RX (verde oscuro) - Estos pines no se pueden utilizar como e/s digitales (digitalRead () y digitalWrite ()) si estás utilizando comunicación serie (por ejemplo Serial.begin).
Botón de reinicio - S1 (azul oscuro)
Programador serie en circuito "In-circuit Serial Programmer" o "ICSP" (azul celeste).
21 Terminales de alimentación y tierra (alimentación: naranja, tierras: naranja claro)
Entrada de alimentación externa (9-12VDC) - X1 (rosa)
Selector de alimentación externa o por USB (coloca un jumper en los dos pines más cercanos de la alimentación que quieras) - SV1 (púrpura). En las versiones nuevas de Arduino la selección de alimentación es automática por lo que puede que no tengas este selector.
[image:35.595.97.515.325.576.2]USB (utilizado para subir programas a la placa y para comunicaciones serie entre la placa y el ordenador; puede utilizarse como alimentación de la placa) (amarillo)
22
2.2 PN532
2.2.1 Descripción General
El PN532 es un módulo de transmisión integrado para comunicaciones inalámbricas que trabaja en la frecuencia de 13.56 MHZ que incluye un microcontrolador basado en el núcleo 80C52. El módulo de transmisión utiliza el concepto de modulación y demodulación completamente integrada para las diferentes clases de métodos de comunicación inalámbrica y los protocolos en la banda de 13.56 MHZ [8].
El PN532 soporta 4 diferentes modos de operación:
Lectura/escritura con soporte de ISO 14443A/MIRAFE® y el esquema de FeliCa™.
ISO 14443B solo en modo de lectura/escritura.
Modo de interface de tarjeta soportando ISO 14443A/MIFARE® y el esquema de FeliCa™.
Modo NFCIP-1.
Activando el modo de lectura/escritura para el lector ISO 14443A/MIRAFE® y el modo de lectura/escritura para el modo ISO 14443B, el transmisor interno de PN532 es capaz de manejar una antena de lectura/escritura diseñada para la comunicación con las tarjetas ISO14443A / MIFARE ® y transpondedores sin la necesidad de circuitería activa adicional.
La parte de recepción proporciona una implementación robusta y eficiente de una circuitería de demodulación y decodificación de las señales compatibles de tarjetas y transpondedores ISO 14443 / MIFARE ® e ISO 14443B. La parte digital se encarga de la elaboración de tramas ISO14443A y detección de errores (Paridad y CRC).
Activando el modo de lectura/escritura de FeliCa™, el módulo de transmisión del PN532 soporta el esquema de comunicaciones de FeliCa™. El receptor provee una robusta y eficiente implementación de circuitería de demodulación y decodificado de señales de FeliCa™. La parte digital maneja las tramas FeliCa™ y la detección de errores CRC. El PN532 soporta comunicaciones inalámbricas de velocidades de más de 424 Kbps en ambas direcciones usando el modo de FeliCa™.
Adicionalmente, el módulo de transmisión del PN532 ofrece la posibilidad de comunicarse directamente con un segundo dispositivo NFCIP-1 con el modo NFCIP-1. El modo NFCIP-1 ofrece diferentes velocidades de transmisión por encima de los 424 Kbit/s de acuerdo al estándar ECMA 240 NFCIP-1. La parte digital maneja la creación completa de tramas NFCIP-1 y la detección de errores.
Para el intercambio de datos se implementaron diferentes interfaces:
Interface SPI.
23
Serial UART (similar al RS232 con niveles de voltajes de 0 a PVDD).
El PN532 implementa un regulador de bajo voltaje, permitiéndole ser conectado directamente a una batería, así como un interruptor de potencia media para suministrar y controlar la potencia del chip seguro incluido.
[image:37.595.98.485.144.512.2]Figura II.4. Diagrama de Bloques
25 Figura II.5. Esquemático del PN532
26 Figura II.7. Módulo PN532. Vista lateral
Figura II.8. Llaveros con módulo NFC
27
2.3 Eclipse
Eclipse es un programa informático compuesto por un conjunto de herramientas de programación de código abierto multiplataforma para desarrollar lo que el proyecto llama "Aplicaciones de Cliente Enriquecido", opuesto a las aplicaciones "Cliente-liviano" basadas en navegadores. Esta plataforma, ha sido usada para desarrollar entornos de desarrollo integrados (del inglés IDE), como el IDE de Java llamado Java Development Toolkit (JDT) y el compilador (ECJ) que se entrega como parte de Eclipse (y que son usados también para desarrollar el mismo Eclipse). Sin embargo, también se puede usar para otros tipos de aplicaciones cliente, como BitTorrent o Azureus.
Eclipse es también una comunidad de usuarios. Un ejemplo es el recientemente creado Eclipse Modeling Project, cubriendo casi todas las áreas de Model Driven Engineering.
Eclipse fue desarrollado originalmente por IBM como el sucesor de su familia de herramientas para VisualAge. Eclipse es ahora desarrollado por la Fundación Eclipse, una organización independiente sin ánimo de lucro que fomenta una comunidad de código abierto y un conjunto de productos complementarios, capacidades y servicios.
Eclipse fue liberado originalmente bajo la Common Public License, pero después fue re-licenciado bajo la Eclipse Public License. La Free Software Foundation ha dicho que ambas licencias son licencias de software libre, pero son incompatibles con Licencia pública general de GNU (GNU GPL) [11].
2.3.1 Arquitectura
La base para Eclipse es la Plataforma de cliente enriquecido (del Inglés Rich Client Platform RCP). Los siguientes componentes constituyen la plataforma de cliente enriquecido [11]:
Plataforma principal - inicio de Eclipse, ejecución de plugins.
OSGi - una plataforma para bundling estándar.
El Standard Widget Toolkit (SWT) - Un widget toolkit portable.
JFace - manejo de archivos, manejo de texto, editores de texto .
El Workbench de Eclipse - vistas, editores, perspectivas, asistentes
28
El entorno de desarrollo integrado (IDE) de Eclipse emplea módulos (en inglés plug-in) para proporcionar toda su funcionalidad al frente de la plataforma de cliente enriquecido, a diferencia de otros entornos monolíticos donde las funcionalidades están todas incluidas, las necesite el usuario o no. Este mecanismo de módulos es una plataforma ligera para componentes de software. Adicionalmente le permite a Eclipse extenderse usando otros lenguajes de programación como son C/C++ y Python, permite a Eclipse trabajar con lenguajes para procesado de texto como LaTeX, aplicaciones en red como Telnet y Sistema de gestión de base de datos. La arquitectura plugin permite escribir cualquier extensión deseada en el ambiente, como sería Gestión de la configuración. Se provee soporte para Java y CVS en el SDK de Eclipse. Y no tiene por qué ser usado únicamente con estos lenguajes, ya que soporta otros lenguajes de programación.
La definición que da el proyecto Eclipse acerca de su software es: "una especie de herramienta universal - un IDE abierto y extensible para todo y nada en particular".
En cuanto a las aplicaciones clientes, Eclipse provee al programador con frameworks muy ricos para el desarrollo de aplicaciones gráficas, definición y manipulación de modelos de software, aplicaciones web, etc. Por ejemplo, GEF (Graphic Editing Framework - Framework para la edición gráfica) es un plugin de Eclipse para el desarrollo de editores visuales que pueden ir desde procesadores de texto wysiwyg hasta editores de diagramas UML, interfaces gráficas para el usuario (GUI), etc. Dado que los editores realizados con GEF "viven" dentro de Eclipse, además de poder ser usadosconjuntamente con otros plugins, hacen uso de su interfaz gráfica personalizable y profesional.
2.3.2 Características
Eclipse dispone de un Editor de texto con resaltado de sintaxis. La compilación es en tiempo real. Tiene pruebas unitarias con JUnit, control de versiones con CVS, integración con Ant, asistentes (wizards) para creación de proyectos, clases, tests, etc., y refactorización.
Asimismo, a través de "plugins" libremente disponibles es posible añadir control de versiones con Subversion e integración con Hibernate [11].
2.3.3 Historia
29 Tabla II.4. Versiones de Eclipse
Versión Fecha de lanzamiento Versión de plataforma Proyectos Mars Junio de 2015 - Mars projects
Luna 25 Junio 2014 4.4 Luna projects
Kepler 26 de junio de 2013 4.3 Kepler projects
Juno 27 de junio de 2012 4.2 Juno projects
Índigo 22 de junio de 2011 3.7 Índigo projects
Helios 23 junio de 2010 3.6 Helios projects
Galileo 24 de junio de 2009 3.5 Galileo projects
Ganymede 25 junio de 2008 3.4 Ganymede projects
Europa 29 de junio de 2007 3.3 Europa projects
Callisto 30 de junio de 2006 3.2 Callisto projects
Eclipse 3.1 28 de junio 2005 3.1
Eclipse 3.0 28 de junio de 2004 3.0
2.3.4 Radiografía
Los datos y cifras relacionados con Eclipse, mostrados a continuación, permitirán profundizar un poco más en el producto.
Como puede verse en la tabla siguiente, la versión 3.2.1 posee más de 2 millones de líneas de código (para el proyecto Eclipse). Estos datos son de acuerdo a SLOCCount.6 Utilizando esta cifra y aplicando el modelo COCOMO, podemos ver que requeriría un esfuerzo para producir un software de este tamaño de 604 persona-año (para ello se ha utilizado la fórmula 2.4*(KSLOC ** 1.05)).
30
2.4 Android
Es un sistema operativo basado en el kernel de Linux diseñado principalmente para dispositivos móviles con pantalla táctil, como teléfonos inteligentes o tabletas, inicialmente desarrollado por Android, Inc. Google respaldó económicamente y más tarde compró esta empresa en 2005. Android fue presentado en 2007 junto la fundación del Open Handset Alliance: un consorcio de compañías de hardware, software y telecomunicaciones para avanzar en los estándares abiertos de los dispositivos móviles. El primer móvil con el sistema operativo Android fue el HTC Dream y se vendió en octubre de 2008 [13].
2.4.1 Historia
Fue desarrollado inicialmente por Android Inc., una firma comprada por Google en 2005. Tiene una gran comunidad de desarrolladores escribiendo aplicaciones para extender la funcionalidad de los dispositivos. A la fecha, se ha llegado ya al 1.000.000 de aplicaciones (de las cuales, dos tercios son gratuitas y en comparación con la App Store más baratas) disponibles para la tienda de aplicaciones oficial de Android: Google Play, sin tener en cuenta aplicaciones de otras tiendas no oficiales para Android como la tienda de aplicaciones Samsung Apps de Samsung, slideme de java y Amazon appstore. No es un sistema operativo libre de malware, aunque la mayoría de ello es descargado de sitios de terceros.
El anuncio del sistema Android se realizó el 5 de noviembre de 2007 junto con la creación de la Open Handset Alliance, un consorcio de 78 compañías de hardware, software y telecomunicaciones dedicadas al desarrollo de estándares abiertos para dispositivos móviles. Google liberó la mayoría del código de Android bajo la licencia Apache, una licencia libre y de código abierto.
La estructura del sistema operativo Android se compone de aplicaciones que se ejecutan en un framework Java de aplicaciones orientadas a objetos sobre el núcleo de las bibliotecas de Java en una máquina virtual Dalvik con compilación en tiempo de ejecución. Las bibliotecas escritas en lenguaje C incluyen un administrador de interfaz gráfica (surface manager), un framework OpenCore, una base de datos relacional SQLite, una Interfaz de programación de API gráfica OpenGL ES 2.0 3D, un motor de renderizado WebKit, un motor gráfico SGL, SSL y una biblioteca estándar de C Bionic. El sistema operativo está compuesto por 12 millones de líneas de código, incluyendo 3 millones de líneas de XML, 2.8 millones de líneas de lenguaje C, 2.1 millones de líneas de Java y 1.75 millones de líneas de C++.