La RFID et la NFC sont deux technologies de communication de données à distance. Dans son principe de fonctionnement, on considère la NFC comme faisant partie de la famille RFID. La principale différence se tient à la distance de la portée de communication.
Si la RFID permet de recevoir et d’émettre des ondes radio jusqu’à plus de 100 mètres (dans le cas tags actifs, c’est-à-dire dotés d’une batterie autonome), la NFC est limitée à tout au plus 20 cm dans les meilleurs des cas. Dans la réalité, la portée de la NFC est même plutôt de l’ordre de 0 à 5 cm.
Il existe une autre différence entre NFC et RFID : la fréquence d’onde radio utilisée. Tandis que la RFID dispose de nombreuses plages de fréquence, la NFC se limite à la haute fréquence de 13,56 MHz.
Acronyme de Radio Frequency Indentification, RFID peut être traduit en français par « identification par radiofréquence ». Le système RFID utilise essentiellement les ondes radio haute fréquence pour transmettre et mémoriser des données. La toute première application de cette technologie date de 1935 lorsque les Britanniques cherchaient à distinguer sur leurs radars les avions amis des avions ennemis. On utilisait alors le fameux transpondeur, un moyen d’identification encore utilisé aujourd’hui dans l’aéronautique.
Le système NFC, pour Near Field Communication ou communication en champ proche, est un héritier de la technologie RFID. C’est la raison pour laquelle on peut les confondre. La NFC consiste donc également à émettre des données par voie d’ondes radio, mais à courte distance uniquement.
Les différents dispositifs dotés du système NFC utilisent tous la même fréquence d’onde radio (13,56 MHz) dans le but principal de limiter la portée à 20 cm grand maximum. Ceci répondant à des exigences de sécurité des données.
// for I2C Communication (0x24)
#include <Wire.h>
#include "PN532_I2C.h"
#include <PN532.h>
#include <NfcAdapter.h>
PN532_I2C pn532_i2c(Wire);
NfcAdapter nfc = NfcAdapter(pn532_i2c);
String tagId = "None";
byte nuidPICC[4];
void setup(void) {
Serial.begin(115200);
Serial.println("System initialized");
nfc.begin();
}
void loop() {
readNFC();
}
void readNFC() {
uint8_t success;
if (nfc.tagPresent())
{
Serial.println("===NEW TAG===============");
NfcTag tag = nfc.read();
tag.print();
tagId = tag.getUidString();
Serial.print("Tag id : ");
Serial.println(tagId);
NdefMessage message = NdefMessage();
Serial.println("=========================");
}
delay(1000);
}
// for SPI Communication
/*
* --------------------------------------------------------------------------------------------------------------------
*
* Typical pin layout used:
* -----------------------------------------------------------------------------------------
* MFRC522 Arduino Arduino Arduino Arduino Arduino
* Reader/PCD Uno/101 Mega Nano v3 Leonardo/Micro Pro Micro
* Signal Pin Pin Pin Pin Pin Pin
* -----------------------------------------------------------------------------------------
* RST/Reset RST 9 5 D9 RESET/ICSP-5 RST
* SPI SS SDA(SS) 10 53 D10 10 10
* SPI MOSI MOSI 11 / ICSP-4 51 D11 ICSP-4 16
* SPI MISO MISO 12 / ICSP-1 50 D12 ICSP-1 14
* SPI SCK SCK 13 / ICSP-3 52 D13 ICSP-3 15
*/
#include <SPI.h>
#include <MFRC522.h>
// For Mega Here
#define RST_PIN 5 // Configurable, see typical pin layout above
#define SS_PIN 53 // Configurable, see typical pin layout above
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance
void setup() {
Serial.begin(9600); // Initialize serial communications with the PC
while (!Serial); // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4)
SPI.begin(); // Init SPI bus
mfrc522.PCD_Init(); // Init MFRC522
mfrc522.PCD_DumpVersionToSerial(); // Show details of PCD - MFRC522 Card Reader details
Serial.println(F("Scan PICC to see UID, SAK, type, and data blocks..."));
}
void loop() {
// Look for new cards
if ( ! mfrc522.PICC_IsNewCardPresent()) {
return;
}
// Select one of the cards
if ( ! mfrc522.PICC_ReadCardSerial()) {
return;
}
// Dump debug info about the card; PICC_HaltA() is automatically called
mfrc522.PICC_DumpToSerial(&(mfrc522.uid));
}
Caractéristiques | PN532 | PN5180 | RC522 |
---|---|---|---|
Alimentation | |||
- 5V | ✅Oui | ✅Oui | ⛔Non (Danger) |
- 3,3V | ✅Oui | ✅Oui | ✅Oui |
Interface | |||
- UART | ✅Oui | ⛔Non | ✴️Oui (Modif Hardware) |
- I2C | ✅Oui | ⛔Non | ✴️Oui (V2 only) |
- SPI | ✅Oui | ✅Oui | ✅Oui |
Fréquence | |||
- 125 kHz (BF) | ⛔Non | ⛔Non | ⛔Non |
- 13,56 MHz (HF) | ✅Oui | ✅Oui | ✅Oui |
- 868 MHz (UHF) | ⛔Non | ⛔Non | ⛔Non |
Carte / Badge | |||
- MIFARE | ✅Oui | ✅Oui | ✅Oui |
- ISO/IEC 14443 A-B | ✅Oui | ✅Oui | ⛔Non |
- NFC tag 1-2-3-4A-4B | ✅Oui (Reader) | ✅Oui (Reader) | ⛔Non |