Télécharger Imprimer la page

Publicité

Liens rapides

Publicité

loading

Sommaire des Matières pour Matrix EBLOCKS 2

  • Page 2 CP9329 RFID Systèmes Guide de l'étudiant...
  • Page 3 Contenu Introduction à la RFID Le système RFID ......................................5 Applications RFID......................................6 Composants du système RFID Lecteur........................................7 Transpondeur......................................7 2.2.1 Passifs ..........................................7 2.2.2 Semi-active ........................................7 2.2.3 Actif ..........................................7 Anatomie d'un transpondeur RFID passif Communications par transpondeur.................................8 La structure d'un transpondeur ................................9 Le module de lecture RFID Communication avec l'hôte..................................11 Séquences de commande ..................................13 Configuration du module de lecture ..............................14...
  • Page 4 10.6 Autres travaux......................................29 Utilisation du mode Mifare 11.1 Vue d'ensemble.......................................30 11.2 Octet d'état du mode Mifare ..................................31 Exercice 5 - Communications du module de lecture en mode Mifare 12.1 Introduction ......................................32 12.2 Objectif........................................32 12.3 Exigences.........................................32 12.4 Le programme Flowcode en détail..............................32 12.4.1 Fonction d'initialisation ..................................33 12.4.2...
  • Page 5 Introduction à la RFID Le système RFID La technologie de l'identification par radiofréquence (RFID) est en cours de développement depuis de nombreuses années. L'augmentation récente des applications est le résultat du développement de petits dispositifs logiques, peu coûteux et de faible puissance, qui peuvent être intégrés dans des transpondeurs (également appelés étiquettes) peu coûteux (voire jetables).
  • Page 6 Applications RFID L'utilisation de la signalisation par radiofréquence permet à la RFID de fonctionner dans des environnements où d'autres systèmes rencontreraient des difficultés, par exemple dans des environnements sales où il y a de la saleté et de la graisse, dans des conditions météorologiques défavorables où il y a de la pluie, de la neige et de la glace, ou dans des endroits où...
  • Page 7 Composants du système RFID Lecteur Un lecteur RFID émet de l'énergie RF (radiofréquence) à partir de son antenne et tente d'établir une communication avec tous les transpondeurs compatibles détectés. Le lecteur fait généralement partie d'un système hôte qui utilise les données stockées dans chaque transpondeur. Plusieurs lecteurs peuvent être utilisés pour suivre le mouvement des transpondeurs d'un endroit à...
  • Page 8 Anatomie d'un transpondeur RFID passif Transpondeur communications Un transpondeur RFID passif se compose d'un dispositif logique de faible puissance et d'une bobine d'antenne. Un transpondeur passif n'a pas d'alimentation interne, de sorte que la bobine d'antenne sert à la fois à alimenter le dispositif et à communiquer avec le lecteur. Lorsqu'un transpondeur entre dans le champ RF d'un lecteur, une partie de l'énergie électromagnétique émise par l'antenne du lecteur est absorbée et génère de l'électricité...
  • Page 9 Le transpondeur RFID passif est réveillé et alimenté par le champ RF d'un lecteur et transmet les données par modulation de charge La structure d'un transpondeur Le dispositif logique du transpondeur contient le circuit d'interface RF, un circuit de contrôle de l'alimentation, une logique de contrôle du système et une mémoire non volatile (mémoire qui ne perd pas ses données lorsque l'alimentation est coupée - pendant au moins 10 ans).
  • Page 11 Le lecteur RFID module Hôte communications La communication entre le module de lecture et le système hôte utilise une interface série RS-232 de niveau logique, utilisant les lignes de transmission de données (TXD) et de réception de données (RXD). Cette interface est compatible avec le récepteur/émetteur asynchrone universel (UART, USART, AUSART, etc.) contenu dans de nombreux microcontrôleurs.
  • Page 12 Ces commandes communes sont prises en charge par les transpondeurs ICODE et Mifare, bien qu'il y ait des différences dans le format des données pour chaque type de transpondeur. Les transpondeurs Mifare et le module de lecture en mode Mifare prennent en charge certaines commandes supplémentaires.
  • Page 13 Commande séquences Chaque commande envoyée au module de lecture entraîne le renvoi d'un octet d'état indiquant le résultat de la commande et l'état du module de lecture. Lorsqu'une commande demandant des données est envoyée au module de lecture RFID, celui-ci renvoie d'abord l'octet d'état puis, si l'octet d'état n'indique pas d'erreur, les données sont renvoyées.
  • Page 14 Module de lecture configuration Le module RWD-MICODE est compatible avec deux groupes principaux de types de transpondeurs de 13,56 MHz : ICODE et Mifare. Le type de transpondeur à détecter peut être sélectionné en programmant un emplacement (emplacement 3) dans la mémoire interne du lecteur RFID. Carte de la mémoire interne du module de lecture RFID RWD-MICODE Emplacement Taux d'interrogation des étiquettes (par défaut= 50= 100ms) Réservé...
  • Page 15 Le système RFID E-blocks2 configuration Connexion des cartes du système RFID E-blocks2 Le RFID E-blocks2 est utilisé pour fournir les interfaces de contrôle et d'antenne pour une variété de modules de lecture RFID. Pour réaliser les exercices de ce cours, l'E-blocks2 RFID est équipé du module de lecture RWD-MICODE. Il fonctionne à une fréquence radio de 13,56 MHz et utilise l'antenne intégrée dans le circuit imprimé.
  • Page 16 Les systèmes RFID exercent E-blocks2 configuration PIC BL0011 Arduino BL0055 Port C Port B Port A D8-13 (B) D0-7 (D) A0-5 (C) Exercice 1 BL0197 BL0167 BL0197 BL0167 Exercice 2 BL0197 BL0167 BL0169 BL0197 BL0167 BL0169 Exercice 3 BL0197 BL0167 BL0169 BL0197 BL0167...
  • Page 17 Utilisation du mode ICODE Vue d'ensemble Les transpondeurs ICODE sont des dispositifs relativement simples, contenant 128 octets de mémoire accessibles par blocs de 4 octets. Blocs de 4 octets UID0 UID1 UID2 UID3 UID4 UID5 UID6 UID7 Configura octet d'information Mémoire de ccess co octet de lecture/écriture de l'utilisateur...
  • Page 18 7. Exercice 1 - Communication du module de lecture en mode ICODE. Introduction Le composant Flowcode RFID fournit toutes les fonctions nécessaires pour contrôler le module de lecture RWD-MICODE. Il s'agit notamment de la fonction Initialise, qui configure la liaison de communication entre le contrôleur hôte et le module de lecture RFID, et de la fonction GetRFIDStatus, qui obtient la valeur actuelle de l'octet d'état du module de lecture.
  • Page 19 7. Exercice 1 - Communication du module de lecture en mode ICODE. Valeur Importance Toujours Défaut interne ou d'antenne Toujours Toujours Erreur RS232 (communications avec le contrôleur du système) Communication avec le transpondeur OK UID du transpondeur accepté Erreur d'écriture de la mémoire du module de lecture Rappel - Octet d'état du module de lecture RFID en mode ICODE : 7.4.2 Fonction GetRFIDStatus...
  • Page 20 Autres travaux sur Tester la portée de détection du lecteur avec le transpondeur dans différentes orientations (bord d'abord, côté premier, etc.) Certains transpondeurs sont conçus pour fonctionner sans être retirés des portefeuilles ou des sacs à main. Placez différents matériaux, du papier, du tissu, des plastiques et des métaux - y compris des pièces de monnaie et des feuilles d'aluminium - entre le lecteur et le transpondeur et observez l'effet sur la détection.
  • Page 21 Exercice 2 - Obtenir l'UID d'un transpondeur en mode ICODE Introduction Chaque transpondeur RFID est programmé avec un numéro d'identification unique qui est envoyé à chaque dispositif de lecture qui provoque le réveil du transpondeur. Dans de nombreuses applications pratiques, rien d'autre n'est nécessaire. Ce numéro d'identification unique peut être utilisé pour identifier la personne ou l'objet portant le transpondeur.
  • Page 22 Exigences Cet exercice nécessite les éléments suivants (voir section 5.2 informations de configuration) : • un microcontrôleur, soit le PIC BL0011, soit l'Arduino Uno BL0055 • une copie de Flowcode, version 8 ou ultérieure, fonctionnant sur le PC • un E-blocks2 RFID (BL0197) avec un module de lecture RWD-MICODE •...
  • Page 23 8.4.2 Fonction ReadRFIDUID Lorsque la fonction GetRFIDUID est exécutée avec succès, l'UID de 8 octets du transpondeur est stocké dans une mémoire tampon créée par le composant RFID. La fonction ReadRFIDUID ne lit qu'un seul de ces octets. L'utilisateur spécifie l'octet à extraire en ajoutant un paramètre dont la valeur est comprise entre 0 et 7. Les 8 octets doivent être lus individuellement pour obtenir l'UID complet du transpondeur auquel on accède.
  • Page 24 Exercice 3 - Lecture des données du transpondeur en mode ICODE Introduction La mémoire interne des transpondeurs ICODE est organisée en blocs de 32 bits. Ceux-ci sont transférés entre le contrôleur hôte et le lecteur RFID sous la forme de quatre octets de 8 bits. Les transpondeurs ICODE contiennent 128 octets de mémoire, soit 32 blocs de 4 octets.
  • Page 25 Objectif Écrire un programme Flowcode qui : • détecter la présence d'un transpondeur ICODE particulier ; • lire l'UID du transpondeur ; • lire les données du bloc 5 de la mémoire du transpondeur ; • afficher les 4 octets de données obtenus à partir du bloc 5 sur l'écran LCD. Exigences Cet exercice nécessite les éléments suivants (voir section 5.2 informations de configuration) : •...
  • Page 26 9.4.2 Fonction ReadRFIDBuffer Si la fonction ReadRFIDBlock est exécutée avec succès, les 4 octets de données du bloc sélectionné dans le transpondeur sont stockés dans une mémoire tampon créée par le composant RFID. Les différents octets du bloc de données peuvent ensuite être lus à l'aide de la fonction ReadRFIDBuffer'. La fonction doit savoir lequel des 4 octets doit être lu et une valeur doit donc être fournie (0 à...
  • Page 27 Exercice 4 - Ecriture des données du transpondeur en mode ICODE 10.1 Introduction Le résultat des exercices précédents est la capacité de détecter, d'identifier et de lire les données d'un transpondeur ICODE par le module de lecture RFID. L'étape suivante consiste à modifier ce programme pour écrire des blocs de données dans la mémoire du transpondeur. Cela permettra de stocker des informations dans la mémoire d'un transpondeur et de les modifier si nécessaire.
  • Page 28 Les 4 octets doivent être écrits individuellement avant l'exécution de la fonction "WriteRFIDBlock", sinon des données aléatoires peuvent être envoyées. 10.4.2 Fonction WriteRFIDBlock La fonction WriteRFIDBlock permet au module de lecture d'écrire quatre octets de données à partir de la mémoire tampon créée par le composant Flowcode RFID, dans un bloc de mémoire spécifié...
  • Page 29 • ajouter une boîte de décision pour vérifier si une touche a été enfoncée - c'est-à-dire si la variable 'keyval', renvoyée par la macro GetNumber, n'est pas 255 ; • si aucune touche n'a été pressée, retour au début du programme. Lorsqu'une touche a été enfoncée : •...
  • Page 30 Utilisation du mode Mifare 11.1 Vue d'ensemble Les transpondeurs Mifare fonctionnent à la même fréquence radio que les transpondeurs ICODE et peuvent utiliser la même configuration d'antenne. Cependant, ils ne sont pas compatibles avec le transfert de données ICODE. Le module de lecture doit être configuré différemment pour établir la communication. Il existe trois principaux types de transpondeurs Mifare : Mifare Ultralight Mifare 1k Mifare 4k...
  • Page 31 Lors de l'utilisation du format Valeur, trois commandes supplémentaires sont disponibles : • Incrémenter - ajouter une valeur de 4 octets à la valeur du bloc de mémoire ; • Décrémenter - soustraire une valeur de 4 octets de la valeur du bloc de mémoire ; •...
  • Page 32 Exercice 5 - Communications du module de lecture en mode Mifare 12.1 Introduction Le but de cet exercice est équivalent à celui de l'exercice 1, dans la section ICODE. Il a pour but de confirmer la sélection correcte du mode Mifare. Il utilise les fonctions Initialise et GetRFIDStatus pour configurer la liaison de communication et lire la valeur actuelle de l'octet d'état du module de lecture.
  • Page 33 12.4.1 Initialisation de la fonction La fonction Initialiser envoie les informations de configuration nécessaires au module de lecture en utilisant le protocole sélectionné dans le panneau des propriétés du composant. La valeur renvoyée est l'octet d'état du module de lecture généré lorsque le protocole a été sélectionné. Elle peut être utilisée pour confirmer la présence du module de lecture RFID et l'exécution réussie du mandat.
  • Page 34 12.6 Autres travaux sur Introduire une étiquette ICODE dans le lecteur et confirmer qu'elle ne peut pas être détectée en mode Mifare.
  • Page 35 Exercice 6 - Obtention de l'UID à partir d'un transpondeur Mifare Classic 13.1 Introduction La valeur de l'octet d'état du module de lecture renvoyé lorsqu'un transpondeur Mifare Classic est détecté dépend de la taille de la mémoire de données du transpondeur disponible.
  • Page 36 Données transférées entre le contrôleur hôte et le module de lecture par cette fonction : Envoyer Caractère ASCII (valeur décimale= 85). Recevoir <status> La valeur renvoyée est l'octet d'état du module de lecture. Cet octet indiquera l'état du module de lecture. cate lorsqu'un transpondeur est accédé...
  • Page 37 • puis utiliser la macro ReadRFIDUID pour lire chacun des quatre octets UID à tour de rôle et les afficher sur l'écran LCD ; • S'il est impossible d'accéder à un transpondeur, effacez l'écran LCD et recommencez la procédure en boucle. Compilez le programme et transférez-le dans la puce PIC.
  • Page 38 Exercice 7 - Utilisation des clés de sécurité 14.1 Introduction Les transpondeurs Mifare 1k ont 1024 octets de mémoire organisés en seize secteurs. Chaque secteur contient quatre blocs, avec seize octets de mémoire dans chaque bloc. Les transpondeurs Mifare 4k disposent de 4096 octets de mémoire organisés en quarante secteurs, dont trente-deux contiennent quatre blocs, les huit autres ayant seize secteurs.
  • Page 39 14.1.1 Sécurité Les transpondeurs Mifare contiennent des dispositifs de sécurité qui contrôlent l'accès aux secteurs de la mémoire au moyen de deux clés de sécurité et des règles d'accès correspondantes. Les clés, appelées clé A et clé B, ont chacune une longueur de six octets. Les règles d'accès définissent quelle clé doit être utilisée pour effectuer des commandes de lecture/écriture sur chaque bloc de mémoire.
  • Page 40 14.3 Exigences Cet exercice nécessite les éléments suivants (voir section 5.2 informations de configuration) : • un microcontrôleur, soit le PIC BL0011, soit l'Arduino Uno BL0055 • une copie de Flowcode, version 8 ou ultérieure, fonctionnant sur le PC • un E-blocks2 RFID (BL0197) avec un module de lecture RWD-MICODE •...
  • Page 41 14.4.2 Fonction StoreRFIDKey Le module de lecture RWD-MICODE contient une matrice de mémoire qui permet de stocker jusqu'à trente-deux clés de 6 octets. Les clés peuvent être stockées dans le module de lecture à l'aide de la fonction StoreRFIDKey, qui envoie la commande 'K' au module de lecture. Données transférées entre le contrôleur hôte et le module de lecture par cette fonction : Envoyer Caractère ASCII (valeur décimale= 75)
  • Page 42 Par exemple : Lire les seize octets de données du bloc 5 d'un transpondeur Mifare, en utilisant la clé stockée à l'index 2 du tableau comme clé A. Envoyer Caractère ASCII (valeur décimale= 82). Envoyer <adresse du bloc> Envoyer <index de la clé> Recevoir <status>...
  • Page 43 14.5 Ce qu'il faut faire Soit vous écrivez le programme Flowcode en vous inspirant des étapes suivantes, soit vous modifiez le programme de l'exercice 3 en ignorant les sections en italique : Rédigez le programme Flowcode en vous inspirant des étapes suivantes : •...
  • Page 44 Exercice 8 - Écrire des données dans un transpondeur Mifare 15.1 Introduction Jusqu'à présent, les exercices sur le mode Mifare ont examiné les problèmes liés à la détection, à l'identification et à la lecture des données d'un transpondeur Mifare par le module de lecture RFID. L'étape suivante consiste à modifier ce programme pour écrire des blocs de données dans la mémoire du transpondeur. Cela permettra de stocker des informations dans la mémoire d'un transpondeur et de les modifier si nécessaire.
  • Page 45 15.4.1 Fonction WriteRFIDBuffer Les données à envoyer au bloc mémoire du transpondeur sont d'abord écrites dans une mémoire tampon du module de lecture, créée par le composant RFID à l'aide de la fonction WriteRFIDBuffer. La fonction doit savoir sur lequel des quatre octets de la mémoire tampon elle doit écrire, et une adresse (0 à 3) doit donc être fournie dans la zone Paramètres des propriétés de la macro.
  • Page 46 Lorsqu'un transpondeur est détecté : • utiliser la macro ReadRFIDBlock pour lire les données du bloc 5 de la mémoire du transpondeur, en utilisant 5 comme octet d'adresse et 0 comme octet de Key_type dans les paramètres ; • utiliser la valeur de l'octet de statut renvoyé pour déterminer si la commande de lecture a été exécutée correctement ; si la commande n'a pas été...
  • Page 47 Exercice 9 - Utilisation du format Value 16.1 Introduction Les transpondeurs Mifare classiques peuvent utiliser des blocs de mémoire de 16 octets pour stocker des valeurs numériques de 4 octets (32 bits) en utilisant un format spécial de "valeur" qui permet d'utiliser trois commandes supplémentaires. Dans le format Value, un bloc de seize octets ne stocke que quatre octets de données, mais les stocke deux fois, et stocke également la forme inversée (complément à...
  • Page 48 16.1.2 La fonction IncrementRFIDValue La commande Mifare Increment prend la valeur de 4 octets stockée dans le bloc source, y ajoute le nombre de 4 octets fourni et stocke le résultat dans le bloc de destination. Tous les autres octets du bloc sont ajustés pour conserver les octets du format Valeur. La séquence est la suivante : Envoyer Caractère ASCII (valeur décimale= 73).
  • Page 49 16.1.3 La fonction DecrementRFIDValue La commande Mifare Decrement prend la valeur de 4 octets stockée dans le bloc source, en soustrait le nombre de 4 octets supplémentaire et stocke le résultat dans le bloc de destination. Tous les autres octets du bloc sont ajustés pour conserver les octets du format Valeur. La séquence est la suivante : Envoyer Caractère ASCII (valeur décimale= 68).
  • Page 50 16.1.4 La fonction TransferRFIDValue La commande de transfert Mifare prend la valeur de 4 octets stockée dans le bloc source et la copie dans le bloc de destination. Tous les autres octets du bloc sont ajustés pour conserver les octets du format Valeur. La séquence est la suivante Envoyer Caractère ASCII (valeur décimale= 84).
  • Page 51 16.3 Exigences Cet exercice nécessite les éléments suivants (voir section 5.2 informations de configuration) : • un microcontrôleur, soit le PIC BL0011, soit l'Arduino Uno BL0055 • une copie de Flowcode, version 8 ou ultérieure, fonctionnant sur le PC • un E-blocks2 RFID (BL0197) avec un module de lecture RWD-MICODE •...
  • Page 52 Le diagramme suivant illustre ces changements : Les données étant stockées au format Valeur, seuls les quatre premiers octets sont significatifs. L'écran affiche les huit premiers des seize octets stockés dans le bloc. Quatre d'entre eux sont des données et les quatre suivants sont l'inverse des données. Par exemple, l'affichage peut se présenter comme suit : Pour prouver que les quatre octets de données fonctionnent comme un seul mot de 32 bits, essayez de décrémenter la valeur da- ta en dessous de zéro.

Ce manuel est également adapté pour:

Cp9329