NXP NFC Reader Library  v4.040.05.011646
NXP NFC Reader Library Documentation

Introduction

  • This document describes the NXP NFC Reader Library Version that supports the Reader Frontend ICs namely PN5180, PNEV512B, CLRC663 and Reader NFC Controller PN7462AU. The source code is intended to run on NXP LPC1769/LPC11U68 connected to PNEV512B v1.5 CE Certified blue board/CLRC663 Blue board v3.0 / PN5180 TFBGA64 performance board v1.0, FRDM-K82 Board connected to PN5180/RC663/PN512B, RasperryPi Board connected to PN5180/RC663/PN512B and on the PN7462AU CortexM0 based uC.



  • Intended Audience:
    • This document is a reference to be used by the SW designers, implementers and integrators.

Overview

The NXP reader library is encapsulated into Layers and Components written in ANSI C. The library structure provides a modular way of programming and setting up the reader interface. The reader library consists of below layers


LayerModel

layer_model.png

API Reference

Simplified API Layer

Contains Simplified APIs for access to NxpNfcRdLib functionality.

Network Protocol Layer

The Network Protocol Layer implements the Simple NDEF Exchange Protocol(SNEP) component.

NFC Link Layer

The NFC Link Layer implements the Logical Link Control Protocol component.

Card Emulation Layer

The Card Emulation Layer implements the commands for emulated card components.

Activity Layer

The NFC Activity Layer implements the Discovery loop component.

  • Discovery Loop
    Discovery Loop implements Poll phases and Listen Phase.

Application Layer

The Application Layer implements the commands of contactless smart cards.

Protocol Abstraction Layer

The Protocol Abstraction Layer implements the activation and exchange within the protocol of the contactless communication.

Hardware Abstraction Layer

The Hardware Abstraction Layer implements the Hardware specific elements of the reader.

Bus Abstraction Layer

The Bus Abstraction Layer is defining the interface used.

  • Component : LpcOpenSpi
    BAL LpcOpen SPI interface is used to abstract SPI interface of a LPCOpen microcontroller library which is part of a seperate project released with this Library (ex: lpc_chip_175x_6x, lpc_chip_11u6x).
  • Component : LpcOpenI2c
    BAL LpcOpen I2C interface is used to abstract I2C interface of a LPCOpen microcontroller library which is part of a seperate project released with this Library (ex: lpc_chip_175x_6x, lpc_chip_11u6x).

Common Layer

  • KeyStore
    Storage of the keys, like MIFARE keys.
  • CryptoSym
    Used for Symmetric Cryptography operations.
  • CryptoRng
    Used to generate random numbers for CryptoSym.
  • Cid Manager
    The CID manager manages the CID of all cards.
  • Tools
    Some tools are attached to calculate the CRC or Parity.
  • PhLog
    Every block has a logging functionality, which can be used.
  • Operating System Abstraction Layer
    Operating system abstraction layer Abstraction APIs.

Other

References



[1] Data sheet - MF1S50yyyX MIFARE Classic 1K - Mainstream contactless smart card IC for fast and easy solution development, available on NXP web

[2] Data sheet - MFR523; Contactless reader IC, BU-ID Doc. No. 115235, available on NXP Web

[3] Data sheet - CLRC663; Contactless reader IC, BU-ID Doc. No. 171110, available on NXP Web

[4] Datasheet - MIFARE Ultralight; MF0ICU1, MIFARE Ultralight contactless single-ticket IC, BU-ID Doc. No. 028638, available on NXP Web

[5] ISO/IEC Standard - ISO/IEC14443 Identification cards - Contactless integrated circuit cards - Proximity cards

[6] JIS Standard - JIS X 6319 Specification of implementation for integrated circuit(s) cards - Part 4: High Speed proximity cards

[7] ISO/IEC Standard - ISO 18092 Information technology - Telecommunications and information exchange between systems - Near Field Communication- Interface and Protocol (NFCIP-1)

[8] Application Note - AN11021 CLRC663 Software Design Guide for NXPRdLib, available on NXP Web

[9] Data Sheet MIFARE DESFire; MF3ICDx21_41_81, MIFARE DESFire EV1 contactless multi-application IC, BU-ID Doc. No. 134036, available on NXP docu control

[10] Data Sheet MIFARE Plus; MF1PLUSx0y1, Mainstream contactless smart card IC for fast and easy solution development, BU-ID Doc. No. 163734, available at NXP docu control

[11] Data Sheet MIFARE Ultralight C; MF0ICU2, BU-ID Doc. No. 171432, available on NXP Web

[12] Data Sheet ICODE ILT , smart label IC; will be available on NXP Web

[13] Data Sheet ISO/IEC Standard - ISO 18000-3 Information technology AIDC techniques - RFID for item management - Air interface, Part 3 - Parameters for air interface communications at 13.56 Mhz, M1 stands for Mode 1, M3 stands for Mode 3

[14] ISO/IEC Standard - ISO/IEC15693 Identification cards - Contactless integrated circuit(s) cards - Vicinity cards

[15] NFC Forum Standard - NFC Forum Type 1,2,3,4 Tag Operation Specification

[16] NFC Forum Standard - Activity Specification

[17] NFC Forum Standard - Digital Protocol Specification


DISCLAIMER OF WARRANTIES:

YOU AGREE THAT NXP HAS MADE NO EXPRESS WARRANTIES TO YOU REGARDING THE
SOFTWARE AND THAT THE SOFTWARE IS BEING PROVIDED TO YOU "AS IS" WITHOUT
WARRANTY OF ANY KIND.
NXP DISCLAIMS ALL WARRANTIES WITH REGARD TO THE SOFTWARE, EXPRESS OR
IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES OF FITNESS
FOR A PARTICULAR PURPOSE, MERCHANTABILITY, MERCHANTABLE QUALITY OR
NONINFRINGEMENT OF THIRD PARTY RIGHTS.
Some states or jurisdictions do not allow the exclusion of implied warranties so the above
limitations or parts of it may not apply to you.

LIMITATION OF LIABILITY:

IN NO EVENT WILL NXP BE LIABLE TO YOU FOR ANY LOSS OF USE, INTERRUPTION OF
BUSINESS, OR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES OF ANY KIND (INCLUDING LOST PROFITS) REGARDLESS OF THE FORM OF
ACTION WHETHER IN CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT PRODUCT
LIABILITY OR OTHERWISE, EVEN IF ENDUSER HAS BEEN ADVISED OF THE POSSIBILITY
OF SUCH DAMAGES.
Some states or jurisdictions do not allow the exclusion or limitation of incidental or consequential
damages, so the above limitation, exclusion or parts of it may not apply to you.

Revision History

Release Date Notes
4.040.05.011646 Nov 2016 Patch Updates on top of 4.040.05.001642
Linux Porting updates for phOsal_ThreadDelay and
Enable On-Board Pull Up by SW for IRQ pin used for RC523
4.040.05.001642 Oct 2016 Linux Support, Freedom platform support, Simplified Layer
4.022.00.001626 (PRC-M6) June 2016 Pre Release Check, with OSAL+Platform Restructuring
See Operating System Abstraction Layer
4.010.04.001617 April 2016 Incremental code drop Week 17, 2016
4.010.03.001609 Mar 2016 Incremental code drop Week 9, 2016
4.010.02.001606 Feb 2016 Incremental code drop Week 6, 2016
4.010.01.021604 Jan 2016 Incremental code drop Week 4, 2016
4.010.01.001604 Jan 2016 Incremental code drop Week 9, 2016
4.010.01.001603 Jan 2016 Incremental code drop Week 3, 2016
4.010.00.001602 Jan 2016 R Gate Release for Week 02, 2016
4.010.00.001551 Dec 2015 V Gate Release for Week 51, 2015
3.092.12.001546 Nov 2015 Incremental code drop Week 47, 2015
3.092.11.001546 Nov 2015 Incremental code drop Week 46, 2015
3.092.10.001539 Sept 2015 Incremental code drop Week 39, 2015
3.092.09.001539 Sept 2015 Incremental code drop Week 39, 2015
3.092.08.001537 Sept 2015 Incremental code drop Week 37, 2015
3.092.07.001537 Sept 2015 Incremental code drop Week 37, 2015
3.092.06.011536 August 2015 Incremental code drop Week 36, 2015
3.092.06.001535 August 2015 Incremental code drop Week 35, 2015
3.092.05.001534 August 2015 Incremental code drop Week 34, 2015
3.092.04.001533 August 2015 Incremental code drop Week 33, 2015
3.092.03.001532 August 2015 Incremental code drop Week 32, 2015
3.092.02.001531 July 2015 Incremental code drop Week 31, 2015
3.092.01.001530 July 2015 Incremental code drop Week 30, 2015
3.092.00.001529 July 2015 A Gate Release for Week 29, 2015
3.082.06.001528 July 2015 Incremental code drop Week 28, 2015
3.082.05.001526 June 2015 Incremental code drop Week 26, 2015
3.082.04.001524 June 2015 Incremental code drop Week 24, 2015
3.082.03.001522 May 2015 Incremental code drop Week 22, 2015
3.082.02.001520 May 2015 Incremental code drop Week 20, 2015
3.082.01.001518 April 2015 Incremental code drop Week 18, 2015
3.082.00.001516 April 2015 A1 Gate Release for Week 16, 2015
3.072.00.011514 April 2015 Internal Release with T4T Card Emulation implementation
3.072.00.001512 March 2015 Internal Release with LLCP 1.1 and SNEP 1.0 implementation
3.062.00.021509 February 2015 Internal Release for Discovery Loop for Error Code Changes
3.062.00.001506 February 2015 Internal Release for Discovery Loop and 14443-4 Card Mode Release
3.052.00.001451 December 2014 Internal Release for 18092 Target Mode Release
3.042.00.001443 November 2014 Internal Release for ISO15693 Extended Commands and ICODE SLIX2 new commands
3.032.00.001441 October 2014 Internal release with HAL and PAL Changes
3.020.00.001432 August 2014 Beta Release for Card Emulation for PN512
3.010.00.001407 February 2014 Final Release for P2P Extensions for PN512 and CLRC663
2.1.0.0 January 2014 Official Release for P2P Extensions for PN512 and CLRC663
2.0.4.2 December 2013 First Official Release for P2P Extensions for PN512 and CLRC663
2.0.4.1 August 2013 Development Release for P2P Extensions for PN512 and CLRC663
2.0.4.0 December 2012 P2P Extensions for PN512 and CLRC663
2.0.2.0 May 2012 Mifare Ultralight EV1 Beta Release
2.0 May 2011 First Official Release
1.1 August 2010 Second Release
1.0 March 2010 First Release