nfc basics

22
University of Castilla-La Mancha, Spain MAmI Research Lab Near Field Communication Quick Start Jesús Fontecha Diezma

Upload: jesus-fontecha

Post on 13-Jun-2015

2.032 views

Category:

Technology


0 download

DESCRIPTION

Presentation about the fundamentals of Near Field Communication technology and its use with JavaME

TRANSCRIPT

Page 1: Nfc basics

1

University of Castilla-La Mancha, SpainMAmI Research Lab

Near Field CommunicationQuick Start

Jesús Fontecha Diezma

Page 2: Nfc basics

2

INTRODUCCIÓN A NFC

• Basado en la identificación por radiofrecuencia (RFID)• Propósito: Transmisión de la identidad de un

objeto mediante ondas de radio• Componentes• Lectores RFID• Etiquetas o tags RFID

Introducción a NFCCaracterísticas EspecificacionesElementosFormatosModos de funcionamiento

Comparación tecnologíasUsos Programación NFC

APIs JavaME & NFC

SDK Nokia Leer/Escribr tags Peer-to-peer

Page 3: Nfc basics

3

INTRODUCCIÓN A NFC

• NFC Posible gracias al NFC Forum• 115 miembros

Introducción a NFCCaracterísticas EspecificacionesElementosFormatosModos de funcionamiento

Comparación tecnologíasUsos Programación NFC

APIs JavaME & NFC

SDK Nokia Leer/Escribr tags Peer-to-peer

• Promueve la implantación y estandarización de NFC

Page 4: Nfc basics

4

CARACTERÍSTICAS Y ESPECIFICACIONES

• ¿Tecnología o protocolo?• Aprobado como estándar ISO en 2003 ISO14443• Compatible con otras tecnologías• Bluetooth, WiFi, RFID,…

• Trabaja en la banda de los 13,56MHz• No requiere licencia de uso

• Transmisión a distintas velocidades (106kb/s, 212kb/s, 424kb/s)

• Corto alcance de interacción (escasos cms)• ¿Limitación? NO Es la clave• Control del usuario

Introducción a NFCCaracterísticas EspecificacionesElementosFormatosModos de funcionamiento

Comparación tecnologíasUsos Programación NFC

APIs JavaME & NFC

SDK Nokia Leer/Escribr tags Peer-to-peer

Page 5: Nfc basics

5

CARACTERÍSTICAS Y ESPECIFICACIONES

• Comunicación NFC 5 fases (similar al Bluetooth)• Pero… transparente al usuario• p.e. “no existe pareamiento”

Introducción a NFCCaracterísticas EspecificacionesElementosFormatosModos de funcionamiento

Comparación tecnologíasUsos Programación NFC

APIs JavaME & NFC

SDK Nokia Leer/Escribr tags Peer-to-peer

Descubrimiento Autenticación Negociación Transferencia Reconocimiento

• Incluye• Procedimiento de autenticación seguro•Mecanismo anti-colisiones

• Fácil e intuitivo•Mejora la usabilidad y la experiencia del usuario

Page 6: Nfc basics

6

ELEMENTOS

• Tipos

Introducción a NFCCaracterísticas EspecificacionesElementosFormatosModos de funcionamiento

Comparación tecnologíasUsos Programación NFC

APIs JavaME & NFC

SDK Nokia Leer/Escribr tags Peer-to-peer

Activos Pasivos

Procesamiento – Iniciar conversación

Semi-pasivos

Page 7: Nfc basics

7

ELEMENTOS

• Etiquetas NFC-RFID• Emiten una señal de respuesta a otra señal

enviada por un lector• Tipos: Activas, pasivas, semi-pasivas• Etiquetas MIFare (ISO 14443 A)

• Las más comunes• Define el almacenamiento de los datos• 1KB de memoria EEPROM• Almacenamiento en bytes• Sectores protegidos con claves

• Multitud de objetos NFC

Introducción a NFCCaracterísticas EspecificacionesElementosFormatosModos de funcionamiento

Comparación tecnologíasUsos Programación NFC

APIs JavaME & NFC

SDK Nokia Leer/Escribr tags Peer-to-peer

Page 8: Nfc basics

8

ELEMENTOS

• Dispositivos• Lectores• Teléfonos móviles

• Lector NFC embebido

• Funcionamiento• El lector emite una señal de radio• Entra en contacto con la etiqueta• Se activa el microchip de la etiqueta• Se transfiere la información

Introducción a NFCCaracterísticas EspecificacionesElementosFormatosModos de funcionamiento

Comparación tecnologíasUsos Programación NFC

APIs JavaME & NFC

SDK Nokia Leer/Escribr tags Peer-to-peer

Page 9: Nfc basics

9

FORMATOS

Introducción a NFCCaracterísticas EspecificacionesElementosFormatosModos de funcionamiento

Comparación tecnologíasUsos Programación NFC

APIs JavaME & NFC

SDK Nokia Leer/Escribr tags Peer-to-peer

• Procedentes del estándar común• Se definen varios tipos

• Dentro de estos tipos están las etiquetas de tecnología MIFARE, DESFire, Topaz,… que cumplen la ISO.

Page 10: Nfc basics

10

FORMATOS

Introducción a NFCCaracterísticas EspecificacionesElementosFormatosModos de funcionamiento

Comparación tecnologíasUsos Programación NFC

APIs JavaME & NFC

SDK Nokia Leer/Escribr tags Peer-to-peer

• NDEF (NFC Data Exchange Format)• Para el intercambio de información• Registrado por el NFC Forum• Datos empaquetados• Cabecera (bytes reservados ) + Payload

• Implementado por las APIs que quieren hacer uso de NFC.• p.e. “Contactless Communication API”

(JSR257) o Google API

Page 11: Nfc basics

11

MODOS DE FUNCIONAMIENTO

Introducción a NFCCaracterísticas EspecificacionesElementosFormatosModos de funcionamiento

Comparación tecnologíasUsos Programación NFC

APIs JavaME & NFC

SDK Nokia Leer/Escribr tags Peer-to-peer

• Para comunicaciones p2p entre dispositivos NFC• Deben soportar el estándar NFCIP-1

ACTIVO PASIVO

- Ambos dispositivos generan su propio campo electromagnético- Ambos necesitan energía para transmitir

-Solo un dispositivo genera campo electromagnético-El otro se aprovecha de la modulación para transmitir

Page 12: Nfc basics

12

COMPARACIÓN TECNOLOGÍAS

Introducción a NFCCaracterísticas EspecificacionesElementosFormatosModos de funcionamiento

Comparación tecnologíasUsos Programación NFC

APIs JavaME & NFC

SDK Nokia Leer/Escribr tags Peer-to-peer

Page 13: Nfc basics

13

USOS

Introducción a NFCCaracterísticas EspecificacionesElementosFormatosModos de funcionamiento

Comparación tecnologíasUsos Programación NFC

APIs JavaME & NFC

SDK Nokia Leer/Escribr tags Peer-to-peer

Page 14: Nfc basics

14

PROGRAMACIÓN NFC

Introducción a NFCCaracterísticas EspecificacionesElementosFormatosModos de funcionamiento

Comparación tecnologíasUsos Programación NFC

APIs JavaME & NFC

SDK Nokia Leer/Escribr tags Peer-to-peer

• ¿Qué hace falta?

IDE SDK Java - JavaME

Nokia - Symbian Android

API

Page 15: Nfc basics

15

APIs

Introducción a NFCCaracterísticas EspecificacionesElementosFormatosModos de funcionamiento

Comparación tecnologíasUsos Programación NFC

APIs JavaME & NFC

SDK Nokia Leer/Escribr tags Peer-to-peer

• JavaMe Contactless Communication API• Google API.

Page 16: Nfc basics

16

APIs

Introducción a NFCCaracterísticas EspecificacionesElementosFormatosModos de funcionamiento

Comparación tecnologíasUsos Programación NFC

APIs JavaME & NFC

SDK Nokia Leer/Escribr tags Peer-to-peer

• JavaME: JSR-257

javax.microedition.contactlessProporciona funciones comunes a todos los dispositivos NFC.

javax.microedition.contactless.ndefProporciona funcionalidad para el intercambio de datos en formato NDEF (NFC Data Exchange Format) con otros dispositivos NFC.

javax.microedition.contactless.rfNos permite interactuar con dispositivos RF físicos.

javax.microedition.contactless.scNos facilita la comunicación con tarjetas inteligentes externas (Smart Cards SC).

javax.microedition.contactless.visualProporciona formas de leer la información almacenada en códigos de barras (etiquetas visuales) y de generar dichas etiquetas.

Page 17: Nfc basics

17

SDK Nokia

Introducción a NFCCaracterísticas EspecificacionesElementosFormatosModos de funcionamiento

Comparación tecnologíasUsos Programación NFC

APIs JavaME & NFC

SDK Nokia Leer/Escribr tags Peer-to-peer

• Descargar el SDK para el teléfono o plataforma a utilizar• Abrir el IDE• Añadir nueva plataforma Java

• Seleccionar el SDK• ¡Ya podemos usar el API!• Emular aplicaciones

• Los APIs proceden del estándar NDEF• Funciones y métodos similares.

Page 18: Nfc basics

18

LEER/ESCRIBIR TAGS

Introducción a NFCCaracterísticas EspecificacionesElementosFormatosModos de funcionamiento

Comparación tecnologíasUsos Programación NFC

APIs JavaME & NFC

SDK Nokia Leer/Escribr tags Peer-to-peer

• Descubrimiento de dispositivos y Listener// Get DiscoveryManager instance and set TargetListener// for NDEF_TAG targetDiscoveryManager dm = DiscoveryManager.getInstance();try {

dm.addTargetListener(listener,TargetType.NDEF_TAG);}catch (ContactlessException ce) {// handle exception}• Descubrimiento de registros y Listener// Get DiscoveryManager instance and set TargetListener// for NDEF_TAG and NFC_PEER targetsDiscoveryManager dm = DiscoveryManager.getInstance();try {

NDEFRecordType recordType = new NDEFRecordType(NDEFRecordType.MIME,"MyType");

dm.addNDEFRecordListener(listener, recordType);}catch (. . .) {

// handle exception}

Page 19: Nfc basics

19

LEER/ESCRIBIR TAGS

Introducción a NFCCaracterísticas EspecificacionesElementosFormatosModos de funcionamiento

Comparación tecnologíasUsos Programación NFC

APIs JavaME & NFC

SDK Nokia Leer/Escribr tags Peer-to-peer

• Leer con funcionalidad PushRegistrypublic class YYY implements NDEFRecordListener {

public void recordDetected(NDEFMessage ndefMessage) {NDEFRecord[] records = ndefMessage.getRecords();for (int i=0; i<records.length; i++) {

// Handle data}

}}

• Push Registry: Arranque automático de MIDlets al aproximar el móvil a una etiqueta.• Declarado en el .jad de nuestro MIDlet.• Implementado en el .java del MIDlet.• Definido en las propiedades del proyecto en el IDE.

Page 20: Nfc basics

20

LEER/ESCRIBIR TAGS

Introducción a NFCCaracterísticas EspecificacionesElementosFormatosModos de funcionamiento

Comparación tecnologíasUsos Programación NFC

APIs JavaME & NFC

SDK Nokia Leer/Escribr tags Peer-to-peer

• Leer y Escribir (Intercambio de datos)public void targetDetected(TargetProperties[] prop) {

// Select first targetTargetProperties target = prop[0];try {

// NDEF_TAG target foundString url = target.getUrl();// Open NDEFTagConnection to the targetconn =

(NDEFTagConnection)Connector.open(url);// Read data from the targetNDEFMessage message = conn.readNDEF();NDEFRecord[] records =

message.getRecords();// Handle data// Modify records or create new messageconn.writeNDEF(message);

data = conn.readNDEF();conn.close();

} catch (. ..) {

// handle exception}

}

Page 21: Nfc basics

21

LEER/ESCRIBIR TAGS

Introducción a NFCCaracterísticas EspecificacionesElementosFormatosModos de funcionamiento

Comparación tecnologíasUsos Programación NFC

APIs JavaME & NFC

SDK Nokia Leer/Escribr tags Peer-to-peer

• Comunicación entre dispositivos a través de NFC• Uso del protocolo NFCIP-1

Iniciador

Objetivo

NFCIPConnection conn = (NFCIPConnection)Connector.open("nfc:rf;type=nfcip;mode=initiator");byte[] message = ... conn.send(message); byte[] response = conn.receive();

NFCIPConnection conn = (NFCIPConnection) Connector.open(“nfc:rf;type=nfcip;mode=target"); byte[] message = conn.receive(); byte[] response = ...; conn.send(response);

Page 22: Nfc basics

22

Jesús Fontecha Diezma

Near Field Communication Quick Start