Blog Zenika

#CodeTheWorld

IoT & Mobilité

NFC – Nouvelle Façon de Communiquer ?

Ce billet est le premier d’une série autour de la technologie NFC et particulièrement de son utilisation avec Android. Je vais commencer par présenter ce qu’est le NFC, détailler rapidement une partie de ses spécifications, et présenter son utilisation avec Android.

NFC, qu’est ce que c’est ?

NFC, pour Near Field Communication, est une technologie de communication dite sans contact spécifiée par le NFC Forum en 2004. Cette spécification est basée sur la technologie RFID (Radio Frequency IDentification) et a surtout été pensée pour les appareils mobiles, même si elle ne s’y limite pas. Les puces NFC utilisent la seule bande de fréquence standardisée au niveau mondial des puces RFID, à savoir 13.56MHz (ISO 14443). Cette fréquence permet une portée théorique de 1 m, mais le NFC Forum limite cette portée à 10 cm.
Il existe 4 normes de communication :

  • ISO 14443 A
  • ISO 14443 B
  • Felica (poussée par Sony, supportée par le NFC Forum, non standardisée, utilisée surtout au Japon)
  • ISO 15693 (non supportée par le NFC Forum).

Ces 4 normes sont supportées par Android sous les noms respectifs NfcA, NfcB, NfcF et NfcV.
On distingue généralement 2 types d’appareil NFC : les readers/writers et les Tags.
Les Tags sont des éléments passifs composés d’une puce et d’une antenne, alimentés par le champ magnétique généré par un reader/writer.
Le NFC Forum définit 4 types de Tags, de type 1 à type 4.
Les Tags les plus courants sont les Felica (Type 3) au Japon, et les Mifare(Type 2, ISO 14443 A) partout dans le monde. La capacité de ces derniers varie entre 48 octets et 4ko.

NFC Data Exchange Format

Le format NDEF permet la communication entre 2 appareils NFC.
Ce format contient une en-tête permettant d’identifier le Tag, de le bloquer en lecture seule. Un message NDEF est composé de potentiellement plusieurs enregistrements. Il peut donc, dans la limite de la place disponible, contenir plusieurs informations.
La spécification NDEF prédéfinie un certain nombre de types d’information possibles, notamment texte brute, URI, MimeType… (voir spécifications)
Voici par exemple le message NDEF pour l’adresse du blog http://blogzenika.wpcomstaging.com

D1 01 10 55
03 62 6C 6F
67 2E 7A 65
6E 69 6B 61
2E 63 6F 6D

Détails

D1 indique que le message ne contient qu’un enregistrement, qu’il n’est pas tronqué, que son type est défini par le NFC Forum, et enfin que la taille du payload (le contenu de l’enregistrement) est indiquée sur 1 octet.
01 est la taille du type, donc 1 octet.
10 est la taille du payload, donc 16 octets.
55 est le type, U en hexadécimal, donc une Uri.
Les 16 octets suivants sont donc le payload. Le premier octet indique le préfix de l’Uri (03 pour « http:// », pour « http://www. » on aurait 01), le reste correspond à « blog.zenika.com ».

NFC et Android

Le NFC est supporté par Android depuis la version 2.3 (Gingerbread) de l’OS. Des améliorations conséquentes ont été apportées avec Ice Cream Sandwich. Je dénombre 4 utilisations possibles du NFC avec Android.

Mode Reader

Il s’agit du mode le plus simple d’utilisation. Il ne nécessite d’ailleurs aucune application spécifique supplémentaire sur les appareils Android compatibles NFC, car elle y existe déjà.
Ainsi, le passage de l’appareil sur le Tag ci-dessus lancera automatiquement le navigateur sur l’adresse http://blogzenika.wpcomstaging.com.
Mais ce comportement par défaut, ne fonctionne que pour les types d’information standards.
Pour lire du contenu spécifique, ou pour obtenir un comportement différent, il faudra alors écrire une application spécifique.

Cas d’usage

Ce mode est celui qui possède le plus de cas d’usage. On peut tout de même en citer quelques-uns.

  • Marketing

Une marque peut créer un Tag contenant un code promotionnel, ou une URL spécifique, permettant au client d’obtenir une réduction. Ce Tag pouvant être « caché » dans un panneau publicitaire. On peut également imaginer un Tag dans une boutique permettant de télécharger l’application officielle de la marque.

  • Logistique

Ce mode d’utilisation permet également de remplacer le code 2D ou 3D. Il est ainsi possible dans un entrepôt de référencer un rayon grâce à un Tag NFC.

  • Divers

Les cas d’usage étant illimités, je n’en citerai qu’un dernier. On peut créer un Tag qu’on place à proximité d’une box wifi (ou d’un routeur) et qui contient le SSID et la clé d’identification du réseau.

Mode Writer

On parle ici de l’écriture sur un Tag passif, pas d’un échange de données entre 2 reader/writer (ce mode sera abordé ensuite).
Les cas d’usage cités ci-dessus nécessitent l’écriture préalable du Tag; il est tout à fait possible d’utiliser un appareil Android à cet effet.

Mode Passif

Dans ce mode, l’appareil Android agit comme s’il s’agissait d’un simple Tag. Il ne peut donc pas interagir dans ce mode avec un autre Tag passif, mais bel et bien avec un reader NFC (qui peut être ou non un appareil Android). Dans ce mode d’utilisation, c’est l’appareil Android qui fournit une information.

Cas d’usage

  • Marketing

L’appareil Android sert de carte de fidélité en fournissant l’identifiant du client au reader.

  • Logistique

L’appareil peut servir de carte de pointage.

Mode Point-à-point

Dans ce mode, une communication bidirectionnelle entre 2 appareils est effectuée. Chaque appareil joue le rôle de reader tour à tour.

Cas d’usage

Les cas d’usage, ici, sont tous les cas nécessitant un échange : échange de coordonnées sous forme de VCard, échange de fichiers, processus d’authentification.

Paiement sans contact

Je n’ai pas évoqué le paiement sans contact car l’API Android actuelle ne permet pas l’accès à un élément sécurisé (ex: carte sim). Or ceci est indispensable à un mécanisme tel que le paiement. Les expérimentations actuelles, telle que celle de Nice, utilisent des appareils spécifiquement conçus pour l’opération. Un projet en cours tente de fournir l’accès à cet élément sécurisé. Plus d’infos : Seek for Android

Conclusion

Le NFC est une technologie de demain dont les usages possibles sont sans limite. Dans les articles suivants, je présenterai des solutions techniques à quelques-uns des cas d’usage présentés dans ce billet

4 réflexions sur “NFC – Nouvelle Façon de Communiquer ?

  • Bonjour,

    Merci pour cet article.
    Juste pour préciser, il me semble que le mode « Passif » n’est pas disponible sur android. C’est bien dommage car ça nous prive de bon nombre de fonctionnalités.
    Cordialement

    Répondre
  • Olivier Gonthier

    Oui effectivement, le mode passif n’est pas disponible. Toutefois, c’est un choix assumé de la part de Google qui prône plutôt l’utilisation du mode peer-to-peer. 

    Pour plus de détails, lire cet article sur le positionnement de Google.

    Répondre
  • Guillaume Gerbaud

    Je ne vais pas faire de spoiler des articles à venir, mais je ne dirais pas que le mode passif est indisponible sur Android, je dirais plutôt qu’il est limité, à l’heure actuelle.

    Mais effectivement, c’est dommage

    Répondre
  • Bonjour
    d’après ce que je comprend il n’est aujourd’hui pas possible d’utiliser un téléphone de type s3 comme simple tag ?
    il n’y a pas moyen avec le mode peer-to-peer ?

    Répondre

Répondre à Guillaume GerbaudAnnuler la réponse.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

En savoir plus sur Blog Zenika

Abonnez-vous pour poursuivre la lecture et avoir accès à l’ensemble des archives.

Continue reading