Réalisation de prototype de technologie NFC

Il est possible de réaliser un prototype NFC en utilisant des cartes d'évaluation comme base et en fabricant l'antenne adaptée à son besoin (portée de l'antenne NFC et taille).

But du prototype NFC

Cet article présente les étapes de la réalisation d'un prototype NFC qui valide le principe de paramétrage d'un produit à l'aide d'une communication NFC via un smartphone. Ce paramétrage consiste à allumer une LED rouge ou verte suivant le message enregistré sur le Tag par le smartphone. L'intérêt est double pour ce démonstrateur. Il servira à la fois d'exemple de produit intégrant la technologie NFC mais également d'un support de test pour réaliser une batterie d'essais permettant de juger de la robustesse de la communication NFC, des contraintes d'intégration possibles, vis-à-vis de la cohabitation avec plusieurs autres composants, mais aussi de tests de fonctionnalité.

Le tag NFC est connecté à une passerelle ethernet (pour l'exemple ici). L'objectif est simple, une fois la carte mise en place dans le boitier de la passerelle, il faudra pouvoir configurer le Tag NFC de la passerelle sous tension et aussi hors tension. Une fois la passerelle alimentée, il faudra que la bonne LED s'allume. Par ailleurs, du fait du boitier, la portée minimale de l'antenne devra être de 1cm pour être supérieure à la distance boitier-antenne.

L'élément qui fera office de Reader sera un smartphone équipé de la NFC et non un Reader comme le CR95HF. Le logiciel pour envoyer du smartphone vers le Tag, le message sera celui déjà présent sur le smartphone pour gérer une communication NFC. En effet, tous les formats de messages sont standard.

Enfin le programme qui viendra lire la configuration du Tag pour venir allumer la LED sera développé pour tourner sur un microcontrôleur de la famille STM32 de STMicroelectronics.

Développement du programme de démonstration

Pour développer un programme permettant d'allumer une LED suivant la configuration enregistrée dans le Tag, j'utilise une carte d'évaluation de STMicroelectronics avec le microcontrôleur STM32F407.

realisation de prototype de technologie nfc 0

Prototype (sur la carte à trous, on voit la LED rouge et la LED verte)

Le prototype utilise également un Tag présent sur la matrice d'antenne de ST auquel est ajoutée une antenne fabriquée avec du fil de cuivre émaillé. La géométrie de l'antenne permet de répondre aux besoin en termes de portée et de taille. Une carte d'interface est nécessaire. Cette carte d'interface contient deux LED, une rouge et une verte, et des résistances de pull-up pour le bus I2C reliant le Tag au microcontrôleur. Elle permet également de relier le Tag de NXP.

Pour réaliser la programmation du STM32F407, on peut utiliser un logiciel de développement software comme IAR. IAR est un logiciel spécialisé dans la programmation de microcontrôleur pour des applications de système embarquée. Il permet une compilation rapide de projet entier en utilisant automatiquement une compilation séparée. Par ailleurs, il possède une fonction de débogage permettant de lire dans les registres du microcontrôleur et de faire une exécution pas à pas du programme testé.

Il faut tout d'abord aller sur le site de STMicroelectronics télécharger les drivers permettant d'utiliser plus facilement le microcontrôleur et le Tag M24SR. Ces drivers sont tous distribués gratuitement par ST dans une archive englobant le code source d'une carte d'évaluation du Tag M24SR mais avec un microcontrôleur STM32F1xx. L'archive contient également les drivers permettant d'utiliser un STM32F407. L'architecture du code source récupérée est illustrée ci dessous :

realisation de prototype de technologie nfc 1

Architecture du firmware récupéré pour mon programme de démonstration

Dans cette architecture, chaque couche est dépendante de la couche qui lui est directement inférieure. Mais par le biais de #define dans certains fichiers .h, on peut changer de configuration hardware et donc facilement, car cela a été prévu, changer de choix de microcontrôleur.

Néanmoins, cela confronte à un problème lors du développement du programme de démonstration au niveau de la communication I2C. En effet, après vérification à l'oscilloscope, on constate que les messages transmis en I2C dans le code ne se retrouvent pas sur le bus I2C. Après investigations, on constate qu'un certain pourcentage d'octets est transmis. Dès lors, on modifie le driver I2C gérant l'envoi de messages sur le bus I2C pour rajouter un délai entre l'envoi de chaque octet.

Réalisation du démonstrateur NFC

On choisit d'utiliser les Tags M24SR et NTAG I2C pour le démonstrateur et laisser de côté le TI car sa mémoire n'étant composée uniquement de SRAM, il n'aurait pas pu conserver d'informations hors tension et le AMS car sa capacité de stockage est trop faible (1 kbit). On peut voir sur ci dessous les schémas de la fonction NFC.

Schéma du circuit d'adaptation d'impédance pour l'antenne RFID-NFC

realisation de prototype de technologie nfc 2

Schéma électronique d'implantation du M24SR

realisation de prototype de technologie nfc 3

Datasheet du M24SR64 (tag NFC RFID)

realisation de prototype de technologie nfc 4

Schéma d'implantation électronique du NTAG I2C.

La partie préplacement des composants est une étape importante dans la conception d'une carte électronique. En effet, le concepteur de la carte n'est pas toujours celui qui en assurera le routage. C'est même parfois un routeur extérieur qui effectuera ce travail. Néanmoins, au vu de l'importance que porte le routage sur les aspects CEM du circuit mais plus généralement sur le bon fonctionnement du circuit, le concepteur indique donc par le préplacement ses conseils aux routeurs. Cela lui permet également de détecter d'éventuels problèmes possibles de routage.

Le préplacement commence par une classification des différentes fonctions et des éléments susceptibles d'être perturbateurs. Ainsi, on garde à l'esprit que la fonction NFC doit rester éloignée des transformateurs utilisés dans la protection Ethernet. Les longueurs des pistes doivent être réduites autant que possible. Par ailleurs, certains éléments du circuit comme l'alimentation font l'objet d'une attention particulière. En effet, l'alimentation de la carte est assurée par un convertisseur Buck transformant le 12 V du primaire en 3,3 V. Il est fortement recommandé de rapprocher au maximum la diode, la self et la capacité intervenant dans la conversion de tension.

Un autre facteur important doit également être pris en compte lors du préplacement, ce sont les contraintes mécaniques dues au boitier. Ceci a notamment limité les possibilités de placement pour les gros composants. Ce préplacement fait pour finir l'objet de discussion et de correction avec le routeur.