NFC (Near Field Communication) is a set of short-range (typically up to 10cm) wireless communication technologies designed to offer light-weight and secure communication between two devices. While NFC was invented by NXP (Phillips at the time), Nokia and Sony, the main body behind the NFC 'standard' today is the NFC Forum, who are responsible for publishing and maintaining a variety of standards relating to NFC technology.
NFC operates at 13.56MHz, and is based around an "initiator" and "target" model where the initiator generates a small magnetic field that powers the target, meaning that the target does not require a power source. This means of communication is referred to as Passive Communication, and is used to read and write to small, inexpensive 13.56MHz RFID tags based on standards like ISO14443A. Active communication (peer-to-peer) is also possible when both devices are powered, where each device alternately creates its own magentic field, with the secondary device as a target and vice versa in continuous rotation.
While the PN53x family of transceivers from NXP are compatible with a number of 13.56MHz RFID card standards, by far the most popular standard is ISO14443A. A variety of manufacturers produce ISO14443A compatible cards or chips, but the most common are based around the Mifare family from NXP. Mifare Classic and Mifare Ultralight are probably the most frequently encountered and useful for basic projects, though many tags with improved security and encryption also exist (Mifare DESFire, etc.). All of the tags sold at adafruit.com are Mifare Classic 1K, meaning that they contains 1K (1024 bytes) of programmable EEPROM memory which can be read and modified in passive mode by the initiator device (the PN532).
While all ISO14443A cards share certain common characteristics on the highest level (defined by the four part standard), each set of Mifare chips (Classic, Ultralight, Plus, DESFire, etc.) has it's own features and peculiarities. The two most common formats are described below.
- Mifare Classic: These cards are extremely common, and contain 1K or 4K of EEPROM, with basic security for each 64 byte (1K/4K cards) or 256 byte (4K cards) sector.
- Mifare Ultralight: Contains 512 bytes of EEPROM, including 32-bits of OTP memory. These tags are inexpensive, often come in sticker format and are are frequently used for transportation ticketing, concert tickets, etc.
Active or "Peer-to-Peer" communication is still based around the Initiator/Target model described earlier, but both devices are actively powered and switch roles from being an Initiator or a Target during the communication. When one device is initiating a conversation with the other, it enables it's magnetic field and the receiving device listens in (with it's own magnetic field disabled). Afterwards, the target/recipient device may need to respond and will in turn activate it's own magnetic field and the original device will be configured as the target. Despite two devices being present, only one magnetic field is active at a time, with each device constantly enabling or disabling its own magnetic field.
ToDo: Add better description of active mode, but I need to test it out a bit first myself!
The NFC Data Exchange Format (NDEF) is a standardised data format that can be used to exchange information between any compatible NFC device and another NFC device or tag. The data format consists of NDEF Messages and NDEF Records. The standard is maintained by the NFC Forum and is freely available for consultation but requires accepting a license agreement to download.
The NDEF format is used to store and exchange information like URIs, plain text, etc., using a commonly understood format. NFC tags like Mifare Classic cards can be configured as NDEF tags, and data written to them by one NFC device (NDEF Records) can be understood and accessed by any other NDEF compatible device. NDEF messages can also be used to exchange data between two active NFC devices in "peer-to-peer" mode. By adhering to the NDEF data exchange format during communication, devices that would otherwise have no meaningful knowledge of each other or common language are able to share data in an organised, mutually understandable manner.
The NDEF standard includes numerous Record Type Definitions (RTDs) that define how information like URIs should be stored, and each NDEF device, tag or message can contained multiple RTDs. Standard RTD definitions are described in "NFC Record Type Definition (RTD) Specification” maintained by the NFC Forum.
* NDEF Overview: This page offers a more detailed explanation of NDEF, including how Mifare Classic cards can be used to store NDEF messages.
NOTE: The dedicated NDEF page is still a work in progress and some information is currently incomplete.
For more details about NFC/RFID and this chip we suggest the following fantastic resources:
- RFID selection guide - a lot of details about RFID in general
- Nokia's Introduction to NFC - a lot of details about NFC in general
- NXP S50 chip datasheet , the chip inside MiFare classic tags
- NXP PN532 Short Form Datasheet
- NXP PN532 Long Form Datasheet
- NXP PN532 User Manual
- NXP PN532 App Note
- Using PN532 with libnfc