NXP NFC Reader Library: Main Page

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

  • BAL (Bus Abstraction Layer)
  • HAL (Hardware Abstraction Layer)
  • PAL (Protocol Abstraction Layer)
  • SA (Simplified API Layer)
  • AL (Application Layer)
  • AC (Activity Layer)
  • CE (Host Card Emulation)
  • LN (Link Abstraction Layer)

  • NP (Network Protocol Layer)

    Each Layer consists of different components having a generic interface and a specific implementation. Find more information on the usage of the reader library in the related Application Notes [13],[8]

LayerModel

API Reference

Simplified API Layer

Contains Simplified APIs for access to NxpNfcRdLib functionality.

  • Simplified API Layer

Network Protocol Layer

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

  • NFCForum-SNEP
    SNEP 1.0 component

NFC Link Layer

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

  • NFCForum-LLCP
    LLCP 1.1 component

Card Emulation Layer

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

  • NFC Forum Type 4A Card Emulation
    NFC Forum T4T 2.0 component

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.

  • MIFARE(R) Classic
    Commandset as described in [1]
  • Type 1 tag
    Commandset as described in [5]
  • MIFARE(R) Ultralight
    Commandset as described in [4]
  • Felica
    Part of Felica Open commandset. Read, Write, Request Response, Request Service, REQC, ATQC are implemented according to [6]. Please be aware that the command 'Read' is described within NFC Forum Type 3 Tag Operation as 'Check' command and 'Write' as 'Update' command. REQC and ATQC are part of the polling sequence described in [15].
  • MIFARE DESFire (R)
    Commandset as described in [9]
  • ICode SLI
    ICODE SLI family as described in http://www.nxp.com/products/identification_and_security/smart_label_tag_ics/icode/index.html
  • ISO/IEC 15693
    ISO/IEC 15693 Commandset as described in [14]
  • ISO/IEC 18000-3 Mode3
    ICODE ILT Commandset as described in [12]
  • Tag Operation Layer
    Commandset as described in [15]

Protocol Abstraction Layer

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

  • ISO/IEC 14443-3A, as described in [5]
  • ISO/IEC 14443-3B, as described in [5]
  • ISO/IEC 14443-4A, as described in [5]
  • ISO/IEC 14443-4, as described in [5]
  • MIFARE(R) needs to be included for any MIFARE card.
  • ISO/IEC 14443-4mC, as described in [5]
  • Felica compliant protocol, as described in [6],
    parts of it are also part of ISO 18092, see [10]
  • ISO/IEC 15693 / ISO/IEC 18000-3M1, protocol as described in [14]
  • ISO/IEC 18000-3 Mode3, as described in [13]
  • ISO/IEC 18092 Mode Initiator, the DEP protocol as well as the
    passive/active communication mode, described in [7]
  • ISO/IEC 18092 Mode Target, the DEP protocol as well as the
    passive/active communication mode, described in [7]

Hardware Abstraction Layer

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

  • component : Rc523
    Reader Specifics for the RC523. It therefore also covers PN512 and RC522.
    Find more information in [2]
  • component : Rc663
    Reader Specifics for the RC663. Find more information on this product in [3]
  • component : Pn5180
    Reader Specifics for the Pn5180.

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

  • Error Code Collection
    A collection of error codes known.
  • Platform Definitions
    Definitions for specific platform.
  • (Private definitions)

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
Generated by doxygen 1.8.12


NXP NFC Reader Library: Modules

Modules
Here is a list of all modules:
[detail level 123]
▼ Bus Abstraction Layer | These components implement the interfaces between physical host-device and physical reader-device
Component : LpcOpenSpi | Component abstracting the functionality of LPC Open stack SPI interface
Component : LpcOpenI2c | Component abstracting the functionality of LPC Open stack I2C interface
Component : KinetisSpi | Component abstracting the functionality of Kinetis KSDK 2.0 SPI interface
Component : KinetisI2C | Component abstracting the functionality of Kinetis KSDK 2.0 I2C interface
Component : Linux Kernel Spi | Component without functionality to ease implementation of additional busses
Component : Linux User Spi | Component without functionality to ease implementation of additional busses
Component : Linux User I2C | Component without functionality to ease implementation of additional busses
▼ Hardware Abstraction Layer | These are the components which are used to abstract the functionality of the physical reader device to a generic interface
► component : Rc663 | RC663 Reader HAL
Commands | Supported ReaderIC commands
Internal | Internal definitions
Register Definitions | Register definitions
Configuration | Custom configuration related to NFC IC Hardware settings
► component : Rc523 | RC523 Reader HAL
Commands | Supported ReaderIC commands
Internal | Internal definitions
Register Definitions | Register definitions
Configuration | Custom Configuration of hardware related settings
► component : Pn5180 | Pn5180 HAL component
Instruction | Pn5180 Instruction functions
Internal | Pn5180 Int functions
▼ Protocol Abstraction Layer | Contains Hardware-Independent implementations of various contactless protocols
► ISO/IEC 14443-3A | These Components implement the ISO/IEC 14443-3 Type-A contactless protocol
Component : Software |
► ISO/IEC 14443-3B | These Components implement the ISO/IEC 14443-3 Type-B contactless protocol
Component : Software |
► ISO/IEC 14443-4A | These Components configure PHPAL_I14443P4A
Component : Software |
► ISO/IEC 14443-4 | These Components implement the ISO/IEC 14443-4:2008(E) contactless protocol
Component : Software |
► MIFARE(R) | These Components implement the MIFARE(R) Classic, MIFARE(R) Ultralight, MIFARE(R) DESFire and MIFARE(R) Plus products
Component : Software |
PhpalMifare_Stub |
► ISO/IEC 14443-4mC | This component implements the PICC side of ISO/IEC 14443-4 Protocol
Component : Software |
► Felica | These Components implement the Felica (contactless) protocol
Component : Software |
► ISO/IEC 15693 / ISO/IEC 18000-3M1 | These component implements the protocol layer (activation) commands of ISO/IEC 15693 (ISO/IEC 18000-3M1) vicinity protocol
Component : Software |
► ISO/IEC 18000-3 Mode3 | These Components implement the ISO/IEC 18000-3 Mode3 support
Component : Software |
► ISO/IEC 18092 Mode Initiator | These Components implement the ISO/IEC ISO18092 contact-less protocol
Component : Software |
► ISO/IEC 18092 Mode Target | This Component implements the ISO/IEC ISO18092 Target mode contact-less protocol
Component : Software |
▼ Simplified API Layer | Contains Simplified APIs for access to NxpNfcRdLib functionality
► NXP NFC Library Top Level API | NXP NFC Library Top Level API
NXP NFC Library Definitions | Common defines used within the API of NFC library
NXP NFC Library Configuration Tags | These tags are used as bConfigTag parameter for phNfcLib_SetConfig_Value, phNfcLib_SetConfig and phNfcLib_GetConfig
NXP NFC Library Functions | All Public Functions of the NFC Library
▼ Application Layer | Contains Application specific implementations for various contactless cards (DESFIRE (R), MIFARE (R), MIFARE Plus (R) and the like
► MIFARE(R) Classic | These Functions implement the MIFARE(R) Classic commands
Component : Software |
► Type 1 tag | These Components implement the Type 1 Tag commands
Component : Software |
► MIFARE(R) Ultralight | These Components implement the MIFARE(R) Ultralight, C, Ultralight EV1 commands
Component : Software |
► Felica | These Components implement the Felica commands
Component : Software |
► MIFARE DESFire (R) | These Functions implement the MIFARE DESFire(R) EV1 commands
Component : Software |
► ISO/IEC 15693 | These Components implement the ISO/IEC 15693 commands
Component : Software |
► ICode SLI | These Components implement the ICode SLI commands
Component : Software |
► ISO/IEC 18000-3 Mode3 | These Components implement the ICODE ILT support
Component : Software |
► Tag Operation Layer | This Component implements tag operations for different NFC Tag types T1T, T2T, T3T,T4T and T5T
Component : Software |
▼ Common | Common Components without dependencies
► Cid Manager | Eases Multiple-Card-Management by providing and locking CIDs
Component : Software | Software implementation
► KeyStore | This is only a wrapper layer to abstract the different KeyStore implementations
Component : Software | Keystore implementation in Software
PhKeyStore_Rc663 |
► CryptoSym | This is only a wrapper layer to abstract the different CryptoSym implementations
Component : Software | Software implementation of the Symmetric Cryptography interface
► CryptoRng | This is only a wrapper layer to abstract the different crypto random number generator implementations
Component : Software | Software implementation of the phCryptoRng interface
Tools | This component implements tools that are necessary for many different software modules
PhLog |
Operating System Abstraction Layer | This component implements the OSAL APIs used by the Nxp Reader Library
Platform Component | These Components implement the Platform abstraction layer
▼ Activity Layer | This Layer Contains implementation of Discovery Loop component
► Discovery Loop | Discovery loop component as per NFC Forum Activity Specification 1.1 and EMVCo Digital 2.5 specification
Component : Software |
▼ Host Card Emulation | This Layer Contains implementation of HCE component
► NFC Forum Type 4A Card Emulation | This component implements the card emulation of NFC Forum Type 4A Tag
Component : Software |
▼ Link Abstraction Layer | This Layer Contains implementation of LLCP component
► NFCForum-LLCP | This Component implements the NFCForum Logical Link Control Protocol (LLCP) version 1.1
Component : Software | Implementation of NFCForum Logical Link Control Protocol (LLCP) 1.1
▼ Network Protocol Layer | This Layer Contains implementation of SNEP component
► NFCForum-SNEP | This component implements the NFC Forum Simple NDEF Exchange Protocol (SNEP) version 1.0
Component : Software | Implementation of NFC Forum Simple NDEF Exchange Protocol (SNEP) 1.0
▼ Other | Contains all other components or definitions
Generic Definitions | Contains definitions which are generic throughout the library
Type Definitions | Contains definitions for types defined within NxpRdLib
Platform Definitions | Platform depending definitions for memory location of variables
Error Code Collection | Common Error Codes
(Private definitions) | Private definitions and functions of all components
NXP Build | Controls build behaviour of components
Platform HOST Porting Component | These Components implement the Platform HOST porting abstraction layer


NXP NFC Reader Library: Bus Abstraction Layer

Modules | Data Structures | Functions
Bus Abstraction Layer

These components implement the interfaces between physical host-device and physical reader-device. More...

Collaboration diagram for Bus Abstraction Layer:

Modules

Component : LpcOpenSpi
Component abstracting the functionality of LPC Open stack SPI interface.
Component : LpcOpenI2c
Component abstracting the functionality of LPC Open stack I2C interface.
Component : KinetisSpi
Component abstracting the functionality of Kinetis KSDK 2.0 SPI interface.
Component : KinetisI2C
Component abstracting the functionality of Kinetis KSDK 2.0 I2C interface.
Component : Linux Kernel Spi
Component without functionality to ease implementation of additional busses.
Component : Linux User Spi
Component without functionality to ease implementation of additional busses.
Component : Linux User I2C
Component without functionality to ease implementation of additional busses.

Data Structures

struct phbalReg_Type_t
BAL type structure. More...

Functions

phStatus_t | phbalReg_GetPortList (void *pDataParams, uint16_t wPortBufSize, uint8_t *pPortNames, uint16_t *pNumOfPorts)
List all available ports. More...
phStatus_t | phbalReg_SetPort (void *pDataParams, uint8_t *pPortName)
Select port to be used. More...
phStatus_t | phbalReg_OpenPort (void *pDataParams)
Open communication port. More...
phStatus_t | phbalReg_ClosePort (void *pDataParams)
Close communication port. More...
phStatus_t | phbalReg_Exchange (void *pDataParams, uint16_t wOption, uint8_t *pTxBuffer, uint16_t wTxLength, uint16_t wRxBufSize, uint8_t *pRxBuffer, uint16_t *pRxLength)
Perform data exchange on the bus. More...
phStatus_t | phbalReg_SetConfig (void *pDataParams, uint16_t wConfig, uint16_t wValue)
Set configuration parameter. More...
phStatus_t | phbalReg_GetConfig (void *pDataParams, uint16_t wConfig, uint16_t *pValue)
Get configuration parameter. More...

Generic BAL configuration parameters

#define | PHBAL_REG_CONFIG_WRITE_TIMEOUT_MS 0x0000U
Configure transmission timeout in milliseconds. More...
#define | PHBAL_REG_CONFIG_READ_TIMEOUT_MS 0x0001U
Configure reception timeout in milliseconds. More...

BAL types

#define | PHBAL_REG_TYPE_SPI 0x0001U
Configure transmission timeout in milliseconds. More...
#define | PHBAL_REG_TYPE_I2C 0x0002U
Configure reception timeout in milliseconds. More...
#define | PHBAL_REG_TYPE_SERIAL_WIN 0x0003U
Configure reception timeout in milliseconds. More...

Detailed Description

These components implement the interfaces between physical host-device and physical reader-device.

Macro Definition Documentation

§ PHBAL_REG_CONFIG_WRITE_TIMEOUT_MS

#define PHBAL_REG_CONFIG_WRITE_TIMEOUT_MS 0x0000U

Configure transmission timeout in milliseconds.

§ PHBAL_REG_CONFIG_READ_TIMEOUT_MS

#define PHBAL_REG_CONFIG_READ_TIMEOUT_MS 0x0001U

Configure reception timeout in milliseconds.

§ PHBAL_REG_TYPE_SPI

#define PHBAL_REG_TYPE_SPI 0x0001U

Configure transmission timeout in milliseconds.

§ PHBAL_REG_TYPE_I2C

#define PHBAL_REG_TYPE_I2C 0x0002U

Configure reception timeout in milliseconds.

§ PHBAL_REG_TYPE_SERIAL_WIN

#define PHBAL_REG_TYPE_SERIAL_WIN 0x0003U

Configure reception timeout in milliseconds.

Function Documentation

§ phbalReg_GetPortList()

phStatus_t phbalReg_GetPortList | ( | void * | pDataParams,
 |  | uint16_t | wPortBufSize,
 |  | uint8_t * | pPortNames,
 |  | uint16_t * | pNumOfPorts
 | ) |  |

List all available ports.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_BUFFER_OVERFLOW | Given enumeration buffer is too small.
PH_ERR_INTERFACE_ERROR | Error while enumerating devices.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wPortBufSize | Buffer Size of Port Name String.
[out] | pPortNames | Port Name as Multi-String.
[out] | pNumOfPorts | Number of found port strings.

§ phbalReg_SetPort()

phStatus_t phbalReg_SetPort | ( | void * | pDataParams,
 |  | uint8_t * | pPortName
 | ) |  |

Select port to be used.

Example SerialWin: The caller has to ensure that pPortName is valid throughout the whole lifetime of pDataParams.
Furthermore, the caller is responsible for prepending "\\.\" if COM ports above COM9 need to be accessed.

Example:

strcpy(pPortName, "COM9"); <-- correct
strcpy(pPortName, "\\\\.\\COM9"); <-- correct
strcpy(pPortName, "\\\\.\\COM10"); <-- correct
strcpy(pPortName, "COM10"); <-- wrong
Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pPortName | Port Name as String.

§ phbalReg_OpenPort()

phStatus_t phbalReg_OpenPort ( void * pDataParams )

Open communication port.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_USE_CONDITION | Communication port is already open.
PH_ERR_INTERFACE_ERROR | Error while opening port.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phbalReg_ClosePort()

phStatus_t phbalReg_ClosePort ( void * pDataParams )

Close communication port.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_USE_CONDITION | Communication port is not open.
PH_ERR_INTERFACE_ERROR | Error while closing port.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phbalReg_Exchange()

phStatus_t phbalReg_Exchange | ( | void * | pDataParams,
 |  | uint16_t | wOption,
 |  | uint8_t * | pTxBuffer,
 |  | uint16_t | wTxLength,
 |  | uint16_t | wRxBufSize,
 |  | uint8_t * | pRxBuffer,
 |  | uint16_t * | pRxLength
 | ) |  |

Perform data exchange on the bus.

This API is used for command exchange between front-end CLIF and HOST. SPI : This API will also perform required flow control for particular front-end.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | wOption is invalid.
PH_ERR_IO_TIMEOUT | No response received within given time frame.
PH_ERR_BUFFER_OVERFLOW | Response is too big for either given receive buffer or internal buffer.
PH_ERR_INTERFACE_ERROR | Communication error.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wOption | Option parameter.
[in] | pTxBuffer | Data to transmit.
[in] | wTxLength | Number of bytes to transmit.
[in] | wRxBufSize | Size of receive buffer / Number of bytes to receive (depending on implementation).
[out] | pRxBuffer | Received data.
[out] | pRxLength | Number of received data bytes.

§ phbalReg_SetConfig()

phStatus_t phbalReg_SetConfig | ( | void * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t | wValue
 | ) |  |

Set configuration parameter.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_UNSUPPORTED_PARAMETER | Configuration is not supported or invalid.
PH_ERR_INVALID_PARAMETER | Parameter value is invalid.
PH_ERR_INTERFACE_ERROR | Communication error.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wConfig | Configuration identifier.
[in] | wValue | Configuration value.

§ phbalReg_GetConfig()

phStatus_t phbalReg_GetConfig | ( | void * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t * | pValue
 | ) |  |

Get configuration parameter.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_UNSUPPORTED_PARAMETER | Configuration is not supported or invalid.
PH_ERR_INTERFACE_ERROR | Communication error.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wConfig | Configuration identifier.
[out] | pValue | Configuration value.


NXP NFC Reader Library: Component : LpcOpenSpi

Data Structures | Macros | Functions
Component : LpcOpenSpi
Bus Abstraction Layer

Component abstracting the functionality of LPC Open stack SPI interface. More...

Collaboration diagram for Component : LpcOpenSpi:

Data Structures

struct phbalReg_LpcOpenSpi_DataParams_t
LPC Open SPI BAL parameter structure. More...

Macros

#define PHBAL_REG_LPCOPEN_SPI_ID 0x0DU
ID for LPC Open SPI BAL component.

Functions

phStatus_t phbalReg_LpcOpenSpi_Init (phbalReg_LpcOpenSpi_DataParams_t *pDataParams, uint16_t wSizeOfDataParams)
Initialize the LPC Open SPI BAL layer. More...

Detailed Description

Component abstracting the functionality of LPC Open stack SPI interface.

Function Documentation

§ phbalReg_LpcOpenSpi_Init()

phStatus_t phbalReg_LpcOpenSpi_Init | ( | phbalReg_LpcOpenSpi_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams
 | ) |  |

Initialize the LPC Open SPI BAL layer.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_DATA_PARAMS | Parameter structure size is invalid.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wSizeOfDataParams | Specifies the size of the data parameter structure.


NXP NFC Reader Library: phbalReg_LpcOpenSpi_DataParams_t Struct Reference

phbalReg_LpcOpenSpi_DataParams_t Struct Reference
Bus Abstraction Layer » Component : LpcOpenSpi

LPC Open SPI BAL parameter structure. More...

Detailed Description

LPC Open SPI BAL parameter structure.

The documentation for this struct was generated from the following file:
  • phbalReg.h


NXP NFC Reader Library: Component : LpcOpenI2c

Data Structures | Macros | Functions
Component : LpcOpenI2c
Bus Abstraction Layer

Component abstracting the functionality of LPC Open stack I2C interface. More...

Collaboration diagram for Component : LpcOpenI2c:

Data Structures

struct phbalReg_LpcOpenI2c_DataParams_t
LPC Open I2C BAL parameter structure. More...

Macros

#define PHBAL_REG_LPCOPEN_I2C_ID 0x0EU
ID for LPC Open I2C BAL component.

Functions

phStatus_t phbalReg_LpcOpenI2c_Init (phbalReg_LpcOpenI2c_DataParams_t *pDataParams, uint16_t wSizeOfDataParams)
Initialize the LPC Open I2C BAL layer. More...

Detailed Description

Component abstracting the functionality of LPC Open stack I2C interface.

Function Documentation

§ phbalReg_LpcOpenI2c_Init()

phStatus_t phbalReg_LpcOpenI2c_Init | ( | phbalReg_LpcOpenI2c_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams
 | ) |  |

Initialize the LPC Open I2C BAL layer.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_DATA_PARAMS | Parameter structure size is invalid.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wSizeOfDataParams | Specifies the size of the data parameter structure.


NXP NFC Reader Library: phbalReg_LpcOpenI2c_DataParams_t Struct Reference

phbalReg_LpcOpenI2c_DataParams_t Struct Reference
Bus Abstraction Layer » Component : LpcOpenI2c

LPC Open I2C BAL parameter structure. More...

Detailed Description

LPC Open I2C BAL parameter structure.

The documentation for this struct was generated from the following file:
  • phbalReg.h


NXP NFC Reader Library: Component : KinetisSpi

Data Structures | Macros | Functions
Component : KinetisSpi
Bus Abstraction Layer

Component abstracting the functionality of Kinetis KSDK 2.0 SPI interface. More...

Collaboration diagram for Component : KinetisSpi:

Data Structures

struct phbalReg_KinetisSpi_DataParams_t
Kinetis SPI BAL parameter structure. More...

Macros

#define PHBAL_REG_KINETIS_SPI_ID 0x0FU
ID for Kinetis SPI BAL component.

Functions

phStatus_t phbalReg_KinetisSpi_Init (phbalReg_KinetisSpi_DataParams_t *pDataParams, uint16_t wSizeOfDataParams)
Initialize the Kinetis SPI BAL layer. More...

Detailed Description

Component abstracting the functionality of Kinetis KSDK 2.0 SPI interface.

Function Documentation

§ phbalReg_KinetisSpi_Init()

phStatus_t phbalReg_KinetisSpi_Init | ( | phbalReg_KinetisSpi_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams
 | ) |  |

Initialize the Kinetis SPI BAL layer.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_DATA_PARAMS | Parameter structure size is invalid.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wSizeOfDataParams | Specifies the size of the data parameter structure.


NXP NFC Reader Library: phbalReg_KinetisSpi_DataParams_t Struct Reference

phbalReg_KinetisSpi_DataParams_t Struct Reference
Bus Abstraction Layer » Component : KinetisSpi

Kinetis SPI BAL parameter structure. More...

Detailed Description

Kinetis SPI BAL parameter structure.

The documentation for this struct was generated from the following file:
  • phbalReg.h


NXP NFC Reader Library: Component : KinetisI2C

Data Structures | Macros | Functions
Component : KinetisI2C
Bus Abstraction Layer

Component abstracting the functionality of Kinetis KSDK 2.0 I2C interface. More...

Collaboration diagram for Component : KinetisI2C:

Data Structures

struct phbalReg_KinetisI2C_DataParams_t
Kinetis I2C BAL parameter structure. More...

Macros

#define PHBAL_REG_KINETIS_I2C_ID 0x10U
ID for Kinetis I2C BAL component.

Functions

phStatus_t phbalReg_KinetisI2C_Init (phbalReg_KinetisI2C_DataParams_t *pDataParams, uint16_t wSizeOfDataParams)
Initialize the Kinetis I2C BAL layer. More...

Detailed Description

Component abstracting the functionality of Kinetis KSDK 2.0 I2C interface.

Function Documentation

§ phbalReg_KinetisI2C_Init()

phStatus_t phbalReg_KinetisI2C_Init | ( | phbalReg_KinetisI2C_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams
 | ) |  |

Initialize the Kinetis I2C BAL layer.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_DATA_PARAMS | Parameter structure size is invalid.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wSizeOfDataParams | Specifies the size of the data parameter structure.


NXP NFC Reader Library: phbalReg_KinetisI2C_DataParams_t Struct Reference

phbalReg_KinetisI2C_DataParams_t Struct Reference
Bus Abstraction Layer » Component : KinetisI2C

Kinetis I2C BAL parameter structure. More...

Detailed Description

Kinetis I2C BAL parameter structure.

The documentation for this struct was generated from the following file:
  • phbalReg.h


NXP NFC Reader Library: Component : Linux Kernel Spi

Data Structures | Macros | Functions
Component : Linux Kernel Spi
Bus Abstraction Layer

Component without functionality to ease implementation of additional busses. More...

Collaboration diagram for Component : Linux Kernel Spi:

Data Structures

struct phbalReg_LinuxKernelSpi_DataParams_t
BAL Linux Kernel Spi parameter structure. More...

Macros

#define PHBAL_REG_LINUX_KERNEL_SPI_ID 0x11U
ID for Linux Kernel Spi BAL component.

Functions

phStatus_t phbalReg_LinuxKernelSpi_Init (phbalReg_LinuxKernelSpi_DataParams_t *pDataParams, uint16_t wSizeOfDataParams)
Initialise the BAL Linux Kernel Spi layer. More...

Detailed Description

Component without functionality to ease implementation of additional busses.

Function Documentation

§ phbalReg_LinuxKernelSpi_Init()

phStatus_t phbalReg_LinuxKernelSpi_Init | ( | phbalReg_LinuxKernelSpi_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams
 | ) |  |

Initialise the BAL Linux Kernel Spi layer.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_DATA_PARAMS | Parameter structure size is invalid.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wSizeOfDataParams | Specifies the size of the data parameter structure.


NXP NFC Reader Library: phbalReg_LinuxKernelSpi_DataParams_t Struct Reference

Data Fields
phbalReg_LinuxKernelSpi_DataParams_t Struct Reference
Bus Abstraction Layer » Component : Linux Kernel Spi

BAL Linux Kernel Spi parameter structure. More...

Data Fields

phbalReg_Type_t sBal_Struct
Layer ID for this BAL component, NEVER MODIFY!

Detailed Description

BAL Linux Kernel Spi parameter structure.

The documentation for this struct was generated from the following file:
  • phbalReg.h


NXP NFC Reader Library: Component : Linux User Spi

Data Structures | Macros | Functions
Component : Linux User Spi
Bus Abstraction Layer

Component without functionality to ease implementation of additional busses. More...

Collaboration diagram for Component : Linux User Spi:

Data Structures

struct phbalReg_LinuxUserSpi_DataParams_t
BAL Linux User Spi parameter structure. More...

Macros

#define PHBAL_REG_LINUX_USER_SPI_ID 0x12U
ID for Linux User Spi BAL component.

Functions

phStatus_t phbalReg_LinuxUserSpi_Init (phbalReg_LinuxUserSpi_DataParams_t *pDataParams, uint16_t wSizeOfDataParams)
Initialise the BAL Linux User Spi layer. More...

Detailed Description

Component without functionality to ease implementation of additional busses.

Function Documentation

§ phbalReg_LinuxUserSpi_Init()

phStatus_t phbalReg_LinuxUserSpi_Init | ( | phbalReg_LinuxUserSpi_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams
 | ) |  |

Initialise the BAL Linux User Spi layer.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_DATA_PARAMS | Parameter structure size is invalid.


NXP NFC Reader Library: phbalReg_LinuxUserSpi_DataParams_t Struct Reference

Data Fields
phbalReg_LinuxUserSpi_DataParams_t Struct Reference
Bus Abstraction Layer » Component : Linux User Spi

BAL Linux User Spi parameter structure. More...

Data Fields

phbalReg_Type_t sBal_Struct
Layer ID for this BAL component, NEVER MODIFY!

Detailed Description

BAL Linux User Spi parameter structure.

The documentation for this struct was generated from the following file:
  • phbalReg.h


NXP NFC Reader Library: Component : Linux User I2C

Data Structures | Macros | Functions
Component : Linux User I2C
Bus Abstraction Layer

Component without functionality to ease implementation of additional busses. More...

Collaboration diagram for Component : Linux User I2C:

Data Structures

struct phbalReg_LinuxUserI2C_DataParams_t
BAL Linux User I2C parameter structure. More...

Macros

#define PHBAL_REG_LINUX_USER_I2C_ID 0x13U
ID for Linux User I2C BAL component.

Functions

phStatus_t phbalReg_LinuxUserI2C_Init (phbalReg_LinuxUserI2C_DataParams_t *pDataParams, uint16_t wSizeOfDataParams)
Initialise the BAL Linux User I2C layer. More...

Detailed Description

Component without functionality to ease implementation of additional busses.

Function Documentation

§ phbalReg_LinuxUserI2C_Init()

phStatus_t phbalReg_LinuxUserI2C_Init | ( | phbalReg_LinuxUserI2C_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams
 | ) |  |

Initialise the BAL Linux User I2C layer.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_DATA_PARAMS | Parameter structure size is invalid.


NXP NFC Reader Library: phbalReg_LinuxUserI2C_DataParams_t Struct Reference

Data Fields
phbalReg_LinuxUserI2C_DataParams_t Struct Reference
Bus Abstraction Layer » Component : Linux User I2C

BAL Linux User I2C parameter structure. More...

Data Fields

phbalReg_Type_t sBal_Struct
Layer ID for this BAL component, NEVER MODIFY!

Detailed Description

BAL Linux User I2C parameter structure.

The documentation for this struct was generated from the following file:
  • phbalReg.h


NXP NFC Reader Library: phbalReg_Type_t Struct Reference

Data Fields
phbalReg_Type_t Struct Reference
Bus Abstraction Layer

BAL type structure. More...

Data Fields

uint16_t wId
Layer ID for this BAL component, NEVER MODIFY!
uint8_t bBalType
BAL type used by HAL to configure the BAL configured at runtime. More...

Detailed Description

BAL type structure.

Field Documentation

§ bBalType

uint8_t phbalReg_Type_t::bBalType

BAL type used by HAL to configure the BAL configured at runtime.

The documentation for this struct was generated from the following file:
  • phbalReg.h


NXP NFC Reader Library: Hardware Abstraction Layer

Modules | Data Structures | Typedefs | Functions
Hardware Abstraction Layer

These are the components which are used to abstract the functionality of the physical reader device to a generic interface. More...

Collaboration diagram for Hardware Abstraction Layer:

Modules

component : Rc663
RC663 Reader HAL.
component : Rc523
RC523 Reader HAL.
component : Pn5180
Pn5180 HAL component.

Data Structures

struct phhalHw_Nfc_Ic_DataParams_t
HAL parameter structure. More...

Typedefs

typedef void(* ppRFCallBck_t) (void *pDataParams)
RF callback which will be called by ISR handler implementation in Platform Layer. More...

Functions

phStatus_t | phhalHw_Nfc_IC_Init (phhalHw_Nfc_Ic_DataParams_t *pDataParams, uint16_t wSizeOfDataParams, void *pBalDataParams, void *pKeyStoreDataParams, uint8_t *pTxBuffer, uint16_t wTxBufSize, uint8_t *pRxBuffer, uint16_t wRxBufSize)
Initialize the HAL component. More...
phStatus_t | phhalHw_Exchange (void *pDataParams, uint16_t wOption, uint8_t *pTxBuffer, uint16_t wTxLength, uint8_t **ppRxBuffer, uint16_t *pRxLength)
Perform data exchange with target/PICC in initiator/PCD mode. More...
phStatus_t | phhalHw_ApplyProtocolSettings (void *pDataParams, uint8_t bMode)
Configure reader IC for a particular reader/initiator protocol. More...
phStatus_t | phhalHw_MfcAuthenticateKeyNo (void *pDataParams, uint8_t bBlockNo, uint8_t bKeyType, uint16_t wKeyNo, uint16_t wKeyVersion, uint8_t *pUid)
Perform MIFARE(R) Classic authentication using a key number. More...
phStatus_t | phhalHw_MfcAuthenticate (void *pDataParams, uint8_t bBlockNo, uint8_t bKeyType, uint8_t *pKey, uint8_t *pUid)
Perform MIFARE(R) Classic authentication using a key. More...
phStatus_t | phhalHw_SetConfig (void *pDataParams, uint16_t wConfig, uint16_t wValue)
Set configuration parameter. More...
phStatus_t | phhalHw_GetConfig (void *pDataParams, uint16_t wConfig, uint16_t *pValue)
Get configuration parameter. More...
phStatus_t | phhalHw_FieldOn (void *pDataParams)
Switch ON the RF-field. More...
phStatus_t | phhalHw_FieldOff (void *pDataParams)
Switch off the RF-field. More...
phStatus_t | phhalHw_FieldReset (void *pDataParams)
Perform RF-Reset. More...
phStatus_t | phhalHw_Wait (void *pDataParams, uint8_t bUnit, uint16_t wTimeout)
phhalHw_Wait function waits/loops until the input time value is elapsed. More...
phStatus_t | phhalHw_Transmit (void *pDataParams, uint16_t wOption, uint8_t *pTxBuffer, uint16_t wTxLength)
Used to transmit data. More...
phStatus_t | phhalHw_Receive (void *pDataParams, uint16_t wOption, uint8_t **ppRxBuffer, uint16_t *pRxLength)
Used to receive data. More...
phStatus_t | phhalHw_Autocoll (void *pDataParams, uint16_t wMode, uint8_t **ppRxBuffer, uint16_t *pRxLength, uint16_t *pProtParams)
Used to configure the IC to NFC target or card mode based on the configured option. More...
phStatus_t | phhalHw_Lpcd (void *pDataParams)
Perform Low-Power-Card-Detection. More...
phStatus_t | phhalHw_AsyncAbort (void *pDataParams)
Used to asynchronously stop HAL waiting for RF event and exit from HAL. More...
phStatus_t | phhalHw_I18000p3m3Inventory (void *pDataParams, uint8_t *pSelCmd, uint8_t bSelCmdLen, uint8_t bNumValidBitsinLastByte, uint8_t *pBeginRndCmd, uint8_t bTSprocessing, uint8_t **ppRxBuffer, uint16_t *wRxBufferLen)
ISO 18000p3m3 Inventory command. More...
phStatus_t | phhalHw_I18000p3m3ResumeInventory (void *pDataParams, uint8_t **ppRxBuffer, uint16_t *wRxBufferLen)
ISO 18000p3m3 resume inventory command. More...
phStatus_t | phhalHw_EventConsume (void *pDataParams)
Used to consume all the event generated in Hal. More...
phStatus_t | phhalHw_EventWait (void *pDataParams, uint32_t dwEventTimeout)
Used to wait any event generate in Hal. More...
phStatus_t | phhalHw_DeInit (void *pDataParams)
De-initializes the contactless IC HAL. More...

HAL events

#define | E_PH_OSAL_EVT_WAITING 0
#define | E_PH_OSAL_EVT_RF (1 << 0)
Event posted by CLIF ISR once the interrupt line goes high to the CLIF HAL. More...
#define | E_PH_OSAL_EVT_ABORT (1 << 5)
Event posted by the application to shut down the reader library thread. More...

Communication configuration parameters \n

These parameters are used to configure hardware/HAL in a particular manner before performing an operation.

#define | PHHAL_HW_CONFIG_PARITY 0x0000U
Enable (PH_ON) or Disable (PH_OFF) Parity. More...
#define | PHHAL_HW_CONFIG_TXCRC 0x0001U
Enable (PH_ON) or disable (PH_OFF) transmit CRC. More...
#define | PHHAL_HW_CONFIG_RXCRC 0x0002U
Enable (PH_ON) or disable (PH_OFF) receive CRC. More...
#define | PHHAL_HW_CONFIG_TXLASTBITS 0x0003U
Set number of valid bits for the last transmitted byte. More...
#define | PHHAL_HW_CONFIG_RXLASTBITS 0x0004U
Get number of valid bits of last received byte. More...
#define | PHHAL_HW_CONFIG_RXALIGN 0x0005U
Set Rx-Aligned Bits. More...
#define | PHHAL_HW_CONFIG_RXWAIT_US 0x0006U
Configure receiver deaf-time (time after a send where every reception is ignored) in microseconds. More...
#define | PHHAL_HW_CONFIG_TXWAIT_US 0x0007U
Set Tx wait time (time between last RxIrq and Tx of succeeding frame) in microseconds. More...
#define | PHHAL_HW_CONFIG_TXDATARATE_FRAMING 0x0009U
Configure data-rate and framing for transmission. More...
#define | PHHAL_HW_CONFIG_CLEARBITSAFTERCOLL 0x0008U
Enable or disable clearing of bits after collision. More...
#define | PHHAL_HW_CONFIG_RXDATARATE_FRAMING 0x000AU
Configure data-rate and framing for reception. More...
#define | PHHAL_HW_CONFIG_MODINDEX 0x000BU
Set modulation index (unit and value are hardware-dependent). More...
#define | PHHAL_HW_CONFIG_ASK100 0x000CU
Enable (PH_ON) or disable (PH_OFF) 100% modulation. More...
#define | PHHAL_HW_CONFIG_TIMEOUT_VALUE_US 0x000DU
Set RC timeout (in [us]). More...
#define | PHHAL_HW_CONFIG_TIMEOUT_VALUE_MS 0x000EU
Set RC timeout (in [ms]). More...
#define | PHHAL_HW_CONFIG_SUBCARRIER 0x000FU
Sub-carrier setting for ISO 15693. More...
#define | PHHAL_HW_CONFIG_FIELD_OFF_TIME 0x0013U
Set the field off time for field-reset ([ms]); Note: A value of 0 is not allowed. More...
#define | PHHAL_HW_CONFIG_FIELD_RECOVERY_TIME 0x0014U
Set the field recovery time for field-reset ([ms]); Note: For ISO15693 operation, this should be at least set to 1ms. More...
#define | PHHAL_HW_CONFIG_SYMBOL_START 0x0015U
Disable / Set the SOF symbol of a frame. More...
#define | PHHAL_HW_CONFIG_SYMBOL_END 0x0016U
Disable / Set the EOF symbol of a frame. More...
#define | PHHAL_HW_CONFIG_CRCTYPE 0x0017U
Sets the CRC type for Tx(PHHAL_HW_CONFIG_TXCRC) and Rx(PHHAL_HW_CONFIG_RXCRC). More...
#define | PHHAL_HW_CONFIG_TXWAIT_MS 0x0018U
Set TxWait (time between last RxIrq and transmit start of succeeding frame) in milliseconds. More...
#define | PHHAL_HW_CONFIG_JEWEL_MODE 0x0020U
Set the PH_ON/PH_OFF Jewel exchange mode. More...
#define | PHHAL_HW_CONFIG_CARD_TYPE 0x0021U
Get config to get the card type.
#define | PHHAL_HW_CONFIG_DISABLE_MF_CRYPTO1 0x002EU
Disable MIFARE(R) Classic Crypto1. More...
#define | PHHAL_HW_CONFIG_TXBUFFER_OFFSET 0x002FU
Set/Get an offset value
A value at this offset on HAL Tx Buffer can be read or written by using
Get/Set(PHHAL_HW_CONFIG_TXBUFFER) once the offset is set using this parameter. More...
#define | PHHAL_HW_CONFIG_RXBUFFER_STARTPOS 0x0030U
Set/Get start position of RX buffer to be used (never changed by HAL). More...
#define | PHHAL_HW_CONFIG_RXBUFFER_BUFSIZE 0x0031U
Get size of Rx buffer set at HAL initialization. More...
#define | PHHAL_HW_CONFIG_TXBUFFER_BUFSIZE 0x0032U
Get size of TX buffer set at HAL initialization. More...
#define | PHHAL_HW_CONFIG_TXBUFFER_LENGTH 0x0033U
Set/Get the amount of valid bytes in Tx buffer. More...
#define | PHHAL_HW_CONFIG_TXBUFFER 0x0034U
Access the transmit buffer(TxBuffer) at the byte offset defined by PHHAL_HW_CONFIG_TXBUFFER_OFFSET. More...
#define | PHHAL_HW_CONFIG_SETMINFDT 0x0051U
Set/Reset minimum FDT (only for proximity check). More...
#define | PHHAL_HW_CONFIG_EXT_RF_ON 0x0052U
Get the status of external RF field. More...
#define | PHHAL_HW_CONFIG_RXMULTIPLE 0x0053U
Enable (PH_ON) or disable (PH_OFF) multiple reception. More...
#define | PHHAL_HW_CONFIG_ACTIVEMODE 0x0054U
Get the status if active communication mode is PH_ON / PH_OFF. More...
#define | PHHAL_HW_CONFIG_MFHALTED 0x0055U
Set/Reset MFHalted bit in MifNFCReg. More...
#define | PHHAL_HW_CONFIG_RFCA 0x0056U
Enable/disable RF collision avoidance for passive communication mode. More...
#define | PHHAL_HW_CONFIG_RFON_INTERRUPT 0x0057U
Enable RF-ON interrupt
. More...
#define | PHHAL_HW_CONFIG_TARGET_DATARATE_FRAMING 0x0059U
Get the framing and speed at which target is operating. More...
#define | PHHAL_HW_CONFIG_OPE_MODE 0x005AU
Configure operation mode for this Layer. More...
#define | PHHAL_HW_CONFIG_NFCIP_STARTBYTE 0x005CU
Enable/Disable handling start byte at 106kbps in NFCIP Mode of communication. More...
#define | PHHAL_HW_CONFIG_SET_SYMBOL_SEND 0x005DU
Enable symbol send (PH_ON). More...
#define | PHHAL_HW_CONFIG_SET_EMD 0x005EU
Enable (PH_ON) or Disable (PH_OFF) EMD error check for Emvco. More...

IC specific configuration parameters

These are not applicable to all ICs and are not mandatory to be implemented to comply with this HAL specification.

#define | PHHAL_HW_CONFIG_TIMING_MODE 0x8010U
Sets the exchange time measurement mode in the IC. More...
#define | PHHAL_HW_CONFIG_TIMING_US 0x8011U
Retrieve elapsed time of receive timer ([us]). More...
#define | PHHAL_HW_CONFIG_TIMING_MS 0x8012U
Retrieve elapsed time of receive timer ([ms]). More...
#define | PHHAL_HW_CONFIG_MAX_PRECACHED_BYTES 0x8035U
Configures the max. More...
#define | PHHAL_HW_CONFIG_BAL_CONNECTION 0x8040U
Set the BAL connection type. More...
#define | PHHAL_HW_CONFIG_SERIAL_BITRATE 0x8041U
Bit rate for serial UART communication for Rc523, CLRC663
valid values range from - PHHAL_HW_RS232_BITRATE_9600 to
PHHAL_HW_RS232_BITRATE_460800.
#define | PHHAL_HW_CONFIG_RFRESET_ON_TIMEOUT 0x8050U
Perform an RF-reset in case of a timeout (only for phhalHw_Exchange)
Valid values are PH_ON, PH_OFF.
#define | PHHAL_HW_CONFIG_ADDITIONAL_INFO 0x802FU
Get any additional information that the HAL might provide For example any specific error information.

Card Configuration

#define | PHHAL_HW_CARDTYPE_CURRENT 0x0000U
Re-Apply settings for current communication mode. More...
#define | PHHAL_HW_CARDTYPE_ISO14443A 0x0001U
ISO/IEC 14443A mode. More...
#define | PHHAL_HW_CARDTYPE_ISO14443B 0x0002U
ISO/IEC 14443B mode. More...
#define | PHHAL_HW_CARDTYPE_FELICA_212 0x0003U
Felica (JIS X 6319) mode. More...
#define | PHHAL_HW_CARDTYPE_ISO15693 0x0004U
ISO/IEC 15693 mode. More...
#define | PHHAL_HW_CARDTYPE_ICODEEPCUID 0x0005U
NXP I-Code EPC/UID mode. More...
#define | PHHAL_HW_CARDTYPE_I18000P3M3 0x0006U
ISO/IEC 18000-3 mode3. More...
#define | PHHAL_HW_CARDTYPE_I18092M_ACTIVE_106 0x0007U
ISO/IEC ISO18092 (NFC) initiator mode at 106 baud. More...
#define | PHHAL_HW_CARDTYPE_I18092M_ACTIVE_212 0x0008U
ISO/IEC ISO18092 (NFC) initiator mode at 212 baud. More...
#define | PHHAL_HW_CARDTYPE_I18092M_ACTIVE_424 0x0009U
ISO/IEC ISO18092 (NFC) initiator mode at 424 baud. More...
#define | PHHAL_HW_CARDTYPE_FELICA_424 0x000AU
Felica mode at 424 baud. More...
#define | PHHAL_HW_CARDTYPE_UNKNOWN 0x00FFU
Unknown card type. More...

CRC Values

#define | PHHAL_HW_CRCTYPE_CRC5 0x0001U
5 bit length, polynomial x^5+x^3+1, preset value 01001b, residue 00000b. More...
#define | PHHAL_HW_CRCTYPE_CRC16 0x0002U
ISO/IEC 13239, 16 bit length, polynomial x^16+x^12+x^5+1, preset value 0xFFFF, residue 0x1D0F. More...
#define | PHHAL_HW_CRCOPTION_INVERTED 0x0100U
To indicate that the CRC generated should be inverted. More...

RF Data rate values

#define | PHHAL_HW_RF_DATARATE_106 0x0000U
Data rate setting for 106 kBit/s. More...
#define | PHHAL_HW_RF_DATARATE_212 0x0001U
Data rate setting for 212 kBit/s. More...
#define | PHHAL_HW_RF_DATARATE_424 0x0002U
Data rate setting for 424 kBit/s. More...
#define | PHHAL_HW_RF_DATARATE_848 0x0003U
Data rate setting for 848 kBit/s. More...
#define | PHHAL_HW_RF_TX_DATARATE_1_OUT_OF_256 0x000AU
Data rate setting for ISO15693 '1 out of 256' mode. More...
#define | PHHAL_HW_RF_TX_DATARATE_1_OUT_OF_4 0x000BU
Data rate setting for ISO15693 '1 out of 4' mode. More...
#define | PHHAL_HW_RF_RX_DATARATE_LOW 0x000CU
Data rate setting for ISO15693 low data rate. More...
#define | PHHAL_HW_RF_RX_DATARATE_HIGH 0x000DU
Data rate setting for ISO15693 high data rate. More...
#define | PHHAL_HW_RF_RX_DATARATE_FAST_LOW 0x000EU
Data rate setting for ISO15693 fast (low*2) data rate (FAST INVENTORY (PAGE) READ). More...
#define | PHHAL_HW_RF_RX_DATARATE_FAST_HIGH 0x000FU
Data rate setting for ISO15693 fast (high*2) data rate (FAST INVENTORY (PAGE) READ). More...
#define | PHHAL_HW_RF_DATARATE_EPCUID 0x0010U
Data rate setting for EPC/UID. More...
#define | PHHAL_HW_RF_TX_DATARATE_I18000P3M3 0x0011U
Tx data rate setting for ISO18000-3 mode3. More...
#define | PHHAL_HW_RF_TX_DATARATE_I18000P3M3_TARI1888 0x0012U
Tx data rate setting for ISO18000-3 mode3. More...
#define | PHHAL_HW_RX_I18000P3M3_FL_423_MAN2 0x0013U
ICode ISO18000-3 Mode3 424 kBit/s (M=2). More...
#define | PHHAL_HW_RX_I18000P3M3_FL_847_MAN2 0x0014U
ICode ISO18000-3 Mode3 847 kBit/s (M=2). More...
#define | PHHAL_HW_RX_I18000P3M3_FL_423_MAN4 0x0015U
ICode ISO18000-3 Mode3 424 kBit/s (M=4). More...
#define | PHHAL_HW_RX_I18000P3M3_FL_847_MAN4 0x0016U
ICode ISO18000-3 Mode3 847 kBit/s (M=4). More...

RF Framing Mode Values

#define | PHHAL_HW_RF_TYPE_A_FRAMING 0x0100U
Data rate setting for 106 kBit/s. More...
#define | PHHAL_HW_RF_TYPE_B_FRAMING 0x0200U
Data rate setting for 212 kBit/s. More...
#define | PHHAL_HW_RF_TYPE_F_FRAMING 0x0300U
Data rate setting for 424 kBit/s. More...
#define | PHHAL_HW_RF_TYPE_ACTIVE_FRAMING 0x0400U
Data rate setting for 848 kBit/s. More...
#define | PHHAL_HW_RF_DATARATE_OPTION_MASK 0x00FFU
Option-mask for data rate. More...
#define | PHHAL_HW_RF_FRAMING_OPTION_MASK 0xFF00U
Option-mask for framing. More...
#define | PHHAL_HW_RF_TYPE_A_START_BYTE 0xF0U
Start byte used at passive 106kbps. More...

Helper macros used for \ref phhalHw_Autocoll.

Used to extract data rate and framing values.

#define | PHHAL_HW_GETFRAMING(protParams) ((protParams) >> 8)
#define | PHHAL_HW_GETBITRATE(protParams) ((protParams) & 0x00FF)

RF sub carrier Values

#define | PHHAL_HW_SUBCARRIER_SINGLE 0x0000U
Sub carrier setting for ISO15693 single sub carrier. More...
#define | PHHAL_HW_SUBCARRIER_DUAL 0x0001U
Sub carrier setting for ISO15693 / EPC V2 dual sub carrier. More...
#define | PHHAL_HW_SUBCARRIER_QUAD 0x0002U
Sub carrier setting for EPC V2 quad sub carrier. More...

Time units

#define | PHHAL_HW_TIME_MICROSECONDS 0x0000U
Time in microseconds (us). More...
#define | PHHAL_HW_TIME_MILLISECONDS 0x0001U
Time in milliseconds (ms). More...

Timing mode settings

#define | PHHAL_HW_TIMING_MODE_OFF 0x0000U
Time measurement disabled. More...
#define | PHHAL_HW_TIMING_MODE_FDT 0x0001U
Measures time from Tx-end until Rx-begin. More...
#define | PHHAL_HW_TIMING_MODE_COMM 0x0002U
Measures the duration of the complete communication. More...
#define | PHHAL_HW_TIMING_MODE_OPTION_MASK 0xFF00U
Additional option-mask for time measurement. More...
#define | PHHAL_HW_TIMING_MODE_OPTION_DEFAULT 0x0000U
The timing value is accumulated on each exchange until it gets retrieved by phhalHw_GetConfig. More...
#define | PHHAL_HW_TIMING_MODE_OPTION_AUTOCLEAR 0x0100U
Automatically resets the current timing value prior to any communication. More...

Field reset default times

#define | PHHAL_HW_FIELD_OFF_DEFAULT 0x0005U
Default field-off time. More...
#define | PHHAL_HW_FIELD_RECOVERY_DEFAULT 0x0005U
Default field-recovery time. More...

Frame Symbols (use #PH_OFF to disable)

#define | PHHAL_HW_SYMBOL_ICODEEPCUID_SSOF 0x0001U
ICode EPC/UID short start of frame. More...
#define | PHHAL_HW_SYMBOL_ICODEEPCUID_LSOF 0x0002U
ICode EPC/UID long start of frame. More...
#define | PHHAL_HW_SYMBOL_ICODEEPCUID_CEOF 0x0003U
ICode EPC/UID common end of frame. More...
#define | PHHAL_HW_SYMBOL_ICODEEPCUID_CS 0x0004U
ICode EPC/UID close slot. More...
#define | PHHAL_HW_SYMBOL_I15693_SOF 0x0005U
ISO15693 SOF (automatically chosen between 1/256 and 1/4). More...
#define | PHHAL_HW_SYMBOL_I18000P3M3_PREAMBLE 0x0006U
ISO18000-3 mode3 preamble. More...
#define | PHHAL_HW_SYMBOL_I18000P3M3_FSYNC 0x0007U
ISO18000-3 mode3 frame-sync. More...

MIFARE Classic authenticate options

#define | PHHAL_HW_MFC_KEYA 0x0AU
MIFARE Classic key type A. More...
#define | PHHAL_HW_MFC_KEYB 0x0BU
MIFARE Classic key type B. More...
#define | PHHAL_HW_MFC_KEY_LENGTH 0x06U
Length of a MIFARE Classic key (for completeness). More...

BAL Connection types

#define | PHHAL_HW_BAL_CONNECTION_RS232 0x0000U
Reader IC is connected via RS232. More...
#define | PHHAL_HW_BAL_CONNECTION_SPI 0x0001U
Reader IC is connected via SPI. More...
#define | PHHAL_HW_BAL_CONNECTION_I2C 0x0002U
Reader IC is connected via I2C. More...

RS232 Bitrate Values

#define | PHHAL_HW_RS232_BITRATE_7200 0x0000U
7.200 kBit/s. More...
#define | PHHAL_HW_RS232_BITRATE_9600 0x0001U
9.600 kBit/s. More...
#define | PHHAL_HW_RS232_BITRATE_14400 0x0002U
14.400 kBit/s. More...
#define | PHHAL_HW_RS232_BITRATE_19200 0x0003U
19.200 kBit/s. More...
#define | PHHAL_HW_RS232_BITRATE_38400 0x0004U
38.400 kBit/s. More...
#define | PHHAL_HW_RS232_BITRATE_57600 0x0005U
57.500 kBit/s. More...
#define | PHHAL_HW_RS232_BITRATE_115200 0x0006U
115.200 kBit/s. More...
#define | PHHAL_HW_RS232_BITRATE_128000 0x0007U
128.000 kBit/s. More...
#define | PHHAL_HW_RS232_BITRATE_230400 0x0008U
230.400 kBit/s. More...
#define | PHHAL_HW_RS232_BITRATE_460800 0x0009U
460.800 kBit/s. More...
#define | PHHAL_HW_RS232_BITRATE_921600 0x000AU
921.600 kBit/s. More...
#define | PHHAL_HW_RS232_BITRATE_1228800 0x000BU
1.228.800 kBit/s. More...

Min FDT values

#define | PHHAL_HW_MINFDT_106_US 91+10
(n * 128 + 84) / 13.56; n = 9. More...
#define | PHHAL_HW_MINFDT_212_US 87+40
(n * 128 + 148) / 13.56; n = 8. More...
#define | PHHAL_HW_MINFDT_424_US 84+35
(n * 128 + 116) / 13.56; n = 8. More...
#define | PHHAL_HW_MINFDT_848_US 83+45
(n * 128 + 100) / 13.56; n = 8. More...

Framing mode values

#define | PHHAL_HW_I14443A_106_FRAMING 0x00
ISO/IEC 14443A/MIFARE and passive communication mode 106 kBit. More...
#define | PHHAL_HW_ACTIVE_MODE_FRAMING 0x01
Active communication mode. More...
#define | PHHAL_HW_FELICA_FRAMING 0x02
FeliCa and passive communication mode 212 and 424 kBit. More...
#define | PHHAL_HW_I14443B_FRAMING 0x03
ISO/IEC 14443B. More...

Target Bit Coding

#define | PHHAL_HW_EMULATE_TYPE_A_TARGET 0x0001U
Bit setting to emulate Type A target. More...
#define | PHHAL_HW_EMULATE_TYPE_B_TARGET 0x0002U
Bit setting to emulate Type B target. More...
#define | PHHAL_HW_EMULATE_TYPE_F_TARGET 0x0004U
Bit setting to emulate Type F target. More...

Felica Response Frame Coding \n

Applicable when PHHAL_HW_CONFIG_RXMULTIPLE is enable

#define | PHHAL_HW_REQC_MIN_LEN 19U
Minimum length of valid ReqC response when multiple reception is enabled. More...
#define | PHHAL_HW_RESP_FRAME_SIZE 32U
Frame size of one felica response when multiple reception is enable. More...
#define | PHHAL_HW_STATUS_FRAME_LEN_BYTE_POS 28U
Byte position where length information in felica response frame. More...
#define | PHHAL_HW_STATUS_FRAME_ERR_BYTE_POS 29U
Byte position where error information in felica response frame. More...
#define | PHHAL_HW_STATUS_FRAME_CL_ERR_POS (1 << 0)
Bit position for contact less Error in felica response frame. More...
#define | PHHAL_HW_STATUS_FRAME_DATA_ERR_POS (1 << 1)
Bit position for data(CRC or Parity) error in felica response frame. More...
#define | PHHAL_HW_STATUS_FRAME_PROT_ERR_POS (1 << 2)
Bit position for protocol error in felica response frame. More...
#define | PHHAL_HW_STATUS_FRAME_COLL_ERR_POS (1 << 3)
Bit position for collision error in felica response frame. More...
#define | PHHAL_HW_STATUS_FRAME_LEN_ERR_POS (1 << 4)
Bit position for length error in felica response frame. More...
#define | PHHAL_HW_STATUS_FRAME_ERR_MASK 0x1FU
Bit mask for error byte in felica response frame. More...
#define | PHHAL_HW_STATUS_FRAME_LEN_MASK 0x1FU
Bit mask for Length byte in felica response frame. More...

Parameter values for ISO/IEC 18000p3m3 HAL APIs \n

#define | PHHAL_HW_I18000P3M3_GET_MAX_RESPS 0
Gets responses from more than one slots limited by the RX buffer size and number of slots. More...
#define | PHHAL_HW_I18000P3M3_ONE_TS_ONLY 1
Gets response for only one time slot.
#define | PHHAL_HW_I18000P3M3_GET_TAG_HANDLE 2
Gets response for only one time slot. More...
#define | PHHAL_HW_I18000P3M3_PERFORM_RESIZE 3
Perform Resize Round.
#define | PHHAL_HW_I18000P3M3_SESSION_S0 0x00U
Session S0. More...
#define | PHHAL_HW_I18000P3M3_SESSION_S2 0x02U
Session S2. More...
#define | PHHAL_HW_I18000P3M3_TARGET_INVENTORIED_S0 0x00U
INVENTORIED_S0 target. More...
#define | PHHAL_HW_I18000P3M3_TARGET_INVENTORIED_S2 0x02U
INVENTORIED_S2 target. More...
#define | PHHAL_HW_I18000P3M3_TARGET_SL 0x04U
SL target. More...
#define | PHHAL_HW_I18000P3M3_UPDN_INCREMENT 0x06U
Increment Q. More...
#define | PHHAL_HW_I18000P3M3_UPDN_NOCHANGE 0x00U
Do not change Q. More...
#define | PHHAL_HW_I18000P3M3_UPDN_DECREMENT 0x03U
Decrement Q. More...
#define | PHHAL_HW_I18000P3M3_CMD_RESIZE_ROUND 0x09U
ResizeRound command code. More...

Detailed Description

These are the components which are used to abstract the functionality of the physical reader device to a generic interface.

HAL API usage in common use cases are described in the sequence diagrams below

Reader mode: This sequence diagram describes the usage of HAL APIs to implement a simple reader mode application.

Passive initiator mode: This sequence diagram describes the usage of HAL APIs to implement a simple ISO 18092 Initiator in
passive communication mode.

Card mode: This sequence diagram describes the usage of HAL APIs to implement a ISO 14443-3A PICC / ISO 18092 passive target.

Active initiator: This sequence diagram describes the usage of HAL APIs to implement ISO 18092 initiator in active communication mode.

Active target: This sequence diagram describes the usage of HAL APIs to implement ISO 18092 target in active communication mode.

Low power card detection(LPCD): This sequence diagram describes the usage of HAL APIs to implement a simple ISO/IEC 14443-3a
reader that uses LPCD functionality of reader IC.

ISO 18000P3M3 Inventory: This sequence diagram describes the usage of HAL APIs to implement a simple application that
inventories and activates an ISO 18000p3m3 tag.

ISO 18000P3M3 Resume Inventory: This sequence diagram describes the usage of HAL APIs to implement a simple application that
inventories and activates an ISO 18000p3m3 tag.
In this specific diagram, it is shown how to use phhalHw_I18000p3m3ResumeInventory() API.

OSAL usage in HAL: This sequence diagram describes the usage of OS event from within the HAL.
HAL uses OSAL call to wait for a CLIF event that is triggered by a CLIF interrupt.

Macro Definition Documentation

§ E_PH_OSAL_EVT_RF

#define E_PH_OSAL_EVT_RF (1 << 0)

Event posted by CLIF ISR once the interrupt line goes high to the CLIF HAL.

§ E_PH_OSAL_EVT_ABORT

#define E_PH_OSAL_EVT_ABORT (1 << 5)

Event posted by the application to shut down the reader library thread.

§ PHHAL_HW_CONFIG_PARITY

#define PHHAL_HW_CONFIG_PARITY 0x0000U

Enable (PH_ON) or Disable (PH_OFF) Parity.

§ PHHAL_HW_CONFIG_TXCRC

#define PHHAL_HW_CONFIG_TXCRC 0x0001U

Enable (PH_ON) or disable (PH_OFF) transmit CRC.

§ PHHAL_HW_CONFIG_RXCRC

#define PHHAL_HW_CONFIG_RXCRC 0x0002U

Enable (PH_ON) or disable (PH_OFF) receive CRC.

§ PHHAL_HW_CONFIG_TXLASTBITS

#define PHHAL_HW_CONFIG_TXLASTBITS 0x0003U

Set number of valid bits for the last transmitted byte.

Valid range is 1 to 7

§ PHHAL_HW_CONFIG_RXLASTBITS

#define PHHAL_HW_CONFIG_RXLASTBITS 0x0004U

Get number of valid bits of last received byte.

Valid range is 1 to 7

§ PHHAL_HW_CONFIG_RXALIGN

#define PHHAL_HW_CONFIG_RXALIGN 0x0005U

Set Rx-Aligned Bits.

Used for reception of bit oriented frames. RxAlign defines the bit position for the first bit received to be stored in the FIFO. Further received bits are stored at the following bit positions. Used only for bitwise anti-collision at 106kbps. For all other modes it is set to logic 0.

§ PHHAL_HW_CONFIG_RXWAIT_US

#define PHHAL_HW_CONFIG_RXWAIT_US 0x0006U

Configure receiver deaf-time (time after a send where every reception is ignored) in microseconds.

This is the time for which the IC cannot receive any data after transmit.

§ PHHAL_HW_CONFIG_TXWAIT_US

#define PHHAL_HW_CONFIG_TXWAIT_US 0x0007U

Set Tx wait time (time between last RxIrq and Tx of succeeding frame) in microseconds.

§ PHHAL_HW_CONFIG_TXDATARATE_FRAMING

#define PHHAL_HW_CONFIG_TXDATARATE_FRAMING 0x0009U

Configure data-rate and framing for transmission.

Use LSB for data-rate and MSB to specify framing.
MSB values can be PHHAL_HW_RF_TYPE_A_FRAMING, PHHAL_HW_RF_TYPE_B_FRAMING, PHHAL_HW_RF_TYPE_F_FRAMING
LSB values can be PHHAL_HW_RF_DATARATE_106, PHHAL_HW_RF_DATARATE_212, PHHAL_HW_RF_DATARATE_424, PHHAL_HW_RF_DATARATE_848

§ PHHAL_HW_CONFIG_CLEARBITSAFTERCOLL

#define PHHAL_HW_CONFIG_CLEARBITSAFTERCOLL 0x0008U

Enable or disable clearing of bits after collision.

Deprecated. Not used anymore.

§ PHHAL_HW_CONFIG_RXDATARATE_FRAMING

#define PHHAL_HW_CONFIG_RXDATARATE_FRAMING 0x000AU

Configure data-rate and framing for reception.

Use LSB for data-rate and MSB to specify framing.
MSB values can be PHHAL_HW_RF_TYPE_A_FRAMING, PHHAL_HW_RF_TYPE_B_FRAMING, PHHAL_HW_RF_TYPE_F_FRAMING
LSB values can be PHHAL_HW_RF_DATARATE_106, PHHAL_HW_RF_DATARATE_212, PHHAL_HW_RF_DATARATE_424, PHHAL_HW_RF_DATARATE_848

§ PHHAL_HW_CONFIG_MODINDEX

#define PHHAL_HW_CONFIG_MODINDEX 0x000BU

Set modulation index (unit and value are hardware-dependent).

Example values are

  • PHHAL_HW_RC663_MODINDEX_I14443B
  • PHHAL_HW_RC663_MODINDEX_I15693
  • PHHAL_HW_RC663_MODINDEX_EPCUID
  • PHHAL_HW_RC663_MODINDEX_I18000P3M3

§ PHHAL_HW_CONFIG_ASK100

#define PHHAL_HW_CONFIG_ASK100 0x000CU

Enable (PH_ON) or disable (PH_OFF) 100% modulation.

§ PHHAL_HW_CONFIG_TIMEOUT_VALUE_US

#define PHHAL_HW_CONFIG_TIMEOUT_VALUE_US 0x000DU

Set RC timeout (in [us]).

§ PHHAL_HW_CONFIG_TIMEOUT_VALUE_MS

#define PHHAL_HW_CONFIG_TIMEOUT_VALUE_MS 0x000EU

Set RC timeout (in [ms]).

§ PHHAL_HW_CONFIG_SUBCARRIER

#define PHHAL_HW_CONFIG_SUBCARRIER 0x000FU

Sub-carrier setting for ISO 15693.

Possible values are
PHHAL_HW_SUBCARRIER_SINGLE,
PHHAL_HW_SUBCARRIER_DUAL,
PHHAL_HW_SUBCARRIER_QUAD

§ PHHAL_HW_CONFIG_FIELD_OFF_TIME

#define PHHAL_HW_CONFIG_FIELD_OFF_TIME 0x0013U

Set the field off time for field-reset ([ms]); Note: A value of 0 is not allowed.

Default value is PHHAL_HW_FIELD_OFF_DEFAULT

§ PHHAL_HW_CONFIG_FIELD_RECOVERY_TIME

#define PHHAL_HW_CONFIG_FIELD_RECOVERY_TIME 0x0014U

Set the field recovery time for field-reset ([ms]); Note: For ISO15693 operation, this should be at least set to 1ms.

Default value is PHHAL_HW_FIELD_RECOVERY_DEFAULT

§ PHHAL_HW_CONFIG_SYMBOL_START

#define PHHAL_HW_CONFIG_SYMBOL_START 0x0015U

Disable / Set the SOF symbol of a frame.

Sets the start of frame symbol for a frame for ICODE EPIC UID, ISO 15693, ISO 18000p3m3. The values can be one of:

  • PH_OFF - Disable SoF
  • PHHAL_HW_SYMBOL_ICODEEPCUID_SSOF - Short start of frame
  • PHHAL_HW_SYMBOL_ICODEEPCUID_LSOF - Long start of frame
  • PHHAL_HW_SYMBOL_ICODEEPCUID_CS - Close slot
  • PHHAL_HW_SYMBOL_I15693_SOF - SOF for ISO 15693. Automatically chosen between 1/256 and 1/4
  • PHHAL_HW_SYMBOL_I18000P3M3_PREAMBLE - ISO 18000p3m3 Preamble
  • PHHAL_HW_SYMBOL_I18000P3M3_FSYNC - ISO 18000p3m3 Frame Sync

§ PHHAL_HW_CONFIG_SYMBOL_END

#define PHHAL_HW_CONFIG_SYMBOL_END 0x0016U

Disable / Set the EOF symbol of a frame.

Sets the end of frame symbol for a frame for ICODE EPIC UID protocol.
PH_OFF - Disable EoF
PHHAL_HW_SYMBOL_ICODEEPCUID_CEOF - Common end of frame

§ PHHAL_HW_CONFIG_CRCTYPE

#define PHHAL_HW_CONFIG_CRCTYPE 0x0017U

Sets the CRC type for Tx(PHHAL_HW_CONFIG_TXCRC) and Rx(PHHAL_HW_CONFIG_RXCRC).

Values can be one of
PHHAL_HW_CRCTYPE_CRC5,
PHHAL_HW_CRCTYPE_CRC16
optionally combined with the following inversion option.
PHHAL_HW_CRCOPTION_INVERTED.

§ PHHAL_HW_CONFIG_TXWAIT_MS

#define PHHAL_HW_CONFIG_TXWAIT_MS 0x0018U

Set TxWait (time between last RxIrq and transmit start of succeeding frame) in milliseconds.

§ PHHAL_HW_CONFIG_JEWEL_MODE

#define PHHAL_HW_CONFIG_JEWEL_MODE 0x0020U

Set the PH_ON/PH_OFF Jewel exchange mode.

This should be done by user before T1T/Jewel functions are called.

§ PHHAL_HW_CONFIG_DISABLE_MF_CRYPTO1

#define PHHAL_HW_CONFIG_DISABLE_MF_CRYPTO1 0x002EU

Disable MIFARE(R) Classic Crypto1.

Disables the MIFARE crypto1 in the IC. Only value PH_OFF is allowed.
The MIFARE Crypto1 will be enabled by the MFAuthent command. This bit cannot be set by software.

§ PHHAL_HW_CONFIG_TXBUFFER_OFFSET

#define PHHAL_HW_CONFIG_TXBUFFER_OFFSET 0x002FU

Set/Get an offset value
A value at this offset on HAL Tx Buffer can be read or written by using
Get/Set(PHHAL_HW_CONFIG_TXBUFFER) once the offset is set using this parameter.

Used by Protocol components.

§ PHHAL_HW_CONFIG_RXBUFFER_STARTPOS

#define PHHAL_HW_CONFIG_RXBUFFER_STARTPOS 0x0030U

Set/Get start position of RX buffer to be used (never changed by HAL).

§ PHHAL_HW_CONFIG_RXBUFFER_BUFSIZE

#define PHHAL_HW_CONFIG_RXBUFFER_BUFSIZE 0x0031U

Get size of Rx buffer set at HAL initialization.

This is read-only parameter.
Used by protocols to know the Rx buffer size for chaining purposes.

§ PHHAL_HW_CONFIG_TXBUFFER_BUFSIZE

#define PHHAL_HW_CONFIG_TXBUFFER_BUFSIZE 0x0032U

Get size of TX buffer set at HAL initialization.

This is read-only parameter.
Used by protocols to know the TxBuffer size.

§ PHHAL_HW_CONFIG_TXBUFFER_LENGTH

#define PHHAL_HW_CONFIG_TXBUFFER_LENGTH 0x0033U

Set/Get the amount of valid bytes in Tx buffer.

§ PHHAL_HW_CONFIG_TXBUFFER

#define PHHAL_HW_CONFIG_TXBUFFER 0x0034U

Access the transmit buffer(TxBuffer) at the byte offset defined by PHHAL_HW_CONFIG_TXBUFFER_OFFSET.

Used to get or set two bytes from/to a particular position in TxBuffer.
The position in transmit buffer is defined by setting TXBUFFER_OFFSET.
Used by protocol components.

§ PHHAL_HW_CONFIG_SETMINFDT

#define PHHAL_HW_CONFIG_SETMINFDT 0x0051U

Set/Reset minimum FDT (only for proximity check).

Used to set minimum frame delay time (timeout) in microseconds as required for proximity check
command of MIFARE Plus.

§ PHHAL_HW_CONFIG_EXT_RF_ON

#define PHHAL_HW_CONFIG_EXT_RF_ON 0x0052U

Get the status of external RF field.

Returned values are PH_ON or PH_OFF. Deprecated.

§ PHHAL_HW_CONFIG_RXMULTIPLE

#define PHHAL_HW_CONFIG_RXMULTIPLE 0x0053U

Enable (PH_ON) or disable (PH_OFF) multiple reception.

Please refer to phpalFelica.h and phpalFelica_ReqC function documentation to know the frame format in which the data is returned.

§ PHHAL_HW_CONFIG_ACTIVEMODE

#define PHHAL_HW_CONFIG_ACTIVEMODE 0x0054U

Get the status if active communication mode is PH_ON / PH_OFF.

Used by protocols to know the mode.

§ PHHAL_HW_CONFIG_MFHALTED

#define PHHAL_HW_CONFIG_MFHALTED 0x0055U

Set/Reset MFHalted bit in MifNFCReg.

When set, this indicates that the IC is set to HALT mode in card operation mode at 106 kBit.
Once set, when phhalHw_Autocoll API is called in card/target mode, will only accept WUPA/ALL_REQ command to respond.

§ PHHAL_HW_CONFIG_RFCA

#define PHHAL_HW_CONFIG_RFCA 0x0056U

Enable/disable RF collision avoidance for passive communication mode.

(PH_ON or PH_OFF).
This parameter should be set before phhalHw_FieldOn to perform Initial RFCA. By default after IC HAL initialization, this should be set to PH_ON

§ PHHAL_HW_CONFIG_RFON_INTERRUPT

#define PHHAL_HW_CONFIG_RFON_INTERRUPT 0x0057U

Enable RF-ON interrupt
.

This is typically used in card/target mode. When there is no external RF, this configuration is set in the HAL
and the controller can go into a wait state for the external RF-ON interrupt to occur.

§ PHHAL_HW_CONFIG_TARGET_DATARATE_FRAMING

#define PHHAL_HW_CONFIG_TARGET_DATARATE_FRAMING 0x0059U

Get the framing and speed at which target is operating.

Read-only parameter. RF data rate values in the LSB and framing in the MSB are returned.
MSB values can be PHHAL_HW_RF_TYPE_A_FRAMING, PHHAL_HW_RF_TYPE_B_FRAMING, PHHAL_HW_RF_TYPE_F_FRAMING
LSB values can be PHHAL_HW_RF_DATARATE_106, PHHAL_HW_RF_DATARATE_212, PHHAL_HW_RF_DATARATE_424

§ PHHAL_HW_CONFIG_OPE_MODE

#define PHHAL_HW_CONFIG_OPE_MODE 0x005AU

Configure operation mode for this Layer.

Values can be RD_LIB_MODE_NFC or RD_LIB_MODE_EMVCO

§ PHHAL_HW_CONFIG_NFCIP_STARTBYTE

#define PHHAL_HW_CONFIG_NFCIP_STARTBYTE 0x005CU

Enable/Disable handling start byte at 106kbps in NFCIP Mode of communication.

This is to tell the HAL to prepend the start byte as required for passive
communication mode at 106kbps.

§ PHHAL_HW_CONFIG_SET_SYMBOL_SEND

#define PHHAL_HW_CONFIG_SET_SYMBOL_SEND 0x005DU

Enable symbol send (PH_ON).

ISO/IEC 18000p3m3 protocol will use data send (PH_OFF).

§ PHHAL_HW_CONFIG_SET_EMD

#define PHHAL_HW_CONFIG_SET_EMD 0x005EU

Enable (PH_ON) or Disable (PH_OFF) EMD error check for Emvco.

The EMD check should be enabled only after ISO 14443A/B layer 3
activation.

§ PHHAL_HW_CONFIG_TIMING_MODE

#define PHHAL_HW_CONFIG_TIMING_MODE 0x8010U

Sets the exchange time measurement mode in the IC.

The values can be one of:
PHHAL_HW_TIMING_MODE_OFF - Time measurement disabled
PHHAL_HW_TIMING_MODE_FDT - Frame delay time to be measured
PHHAL_HW_TIMING_MODE_COMM - Overall time to be measured
PHHAL_HW_TIMING_MODE_OPTION_MASK - Additional option-mask for time measurement.
PHHAL_HW_TIMING_MODE_OPTION_DEFAULT - The timing value is accumulated on each exchange until it gets retrieved by phhalHw_GetConfig.
PHHAL_HW_TIMING_MODE_OPTION_AUTOCLEAR - Automatically resets the current timing value prior to any communication.

§ PHHAL_HW_CONFIG_TIMING_US

#define PHHAL_HW_CONFIG_TIMING_US 0x8011U

Retrieve elapsed time of receive timer ([us]).

§ PHHAL_HW_CONFIG_TIMING_MS

#define PHHAL_HW_CONFIG_TIMING_MS 0x8012U

Retrieve elapsed time of receive timer ([ms]).

§ PHHAL_HW_CONFIG_MAX_PRECACHED_BYTES

#define PHHAL_HW_CONFIG_MAX_PRECACHED_BYTES 0x8035U

Configures the max.

number of bytes which are pre-cached prior to command execution.
Bytes up to the maximum pre-cache limit can be written into the FIFO before the command is started.
The maximum pre-cache limit depends upon the FIFO size of the IC.
This will ensure faster transmission in comparison to starting the command and then writing the
parameters + data to the FIFO. Rc523(Pn512) and Rc663 HALs provide such a functionality.

§ PHHAL_HW_CONFIG_BAL_CONNECTION

#define PHHAL_HW_CONFIG_BAL_CONNECTION 0x8040U

Set the BAL connection type.

The default value is always PHHAL_HW_BAL_CONNECTION_RS232.
Other supported values are
PHHAL_HW_BAL_CONNECTION_SPI
PHHAL_HW_BAL_CONNECTION_I2C

§ PHHAL_HW_CARDTYPE_CURRENT

#define PHHAL_HW_CARDTYPE_CURRENT 0x0000U

Re-Apply settings for current communication mode.

§ PHHAL_HW_CARDTYPE_ISO14443A

#define PHHAL_HW_CARDTYPE_ISO14443A 0x0001U

ISO/IEC 14443A mode.

§ PHHAL_HW_CARDTYPE_ISO14443B

#define PHHAL_HW_CARDTYPE_ISO14443B 0x0002U

ISO/IEC 14443B mode.

§ PHHAL_HW_CARDTYPE_FELICA_212

#define PHHAL_HW_CARDTYPE_FELICA_212 0x0003U

Felica (JIS X 6319) mode.

§ PHHAL_HW_CARDTYPE_ISO15693

#define PHHAL_HW_CARDTYPE_ISO15693 0x0004U

ISO/IEC 15693 mode.

§ PHHAL_HW_CARDTYPE_ICODEEPCUID

#define PHHAL_HW_CARDTYPE_ICODEEPCUID 0x0005U

NXP I-Code EPC/UID mode.

§ PHHAL_HW_CARDTYPE_I18000P3M3

#define PHHAL_HW_CARDTYPE_I18000P3M3 0x0006U

ISO/IEC 18000-3 mode3.

§ PHHAL_HW_CARDTYPE_I18092M_ACTIVE_106

#define PHHAL_HW_CARDTYPE_I18092M_ACTIVE_106 0x0007U

ISO/IEC ISO18092 (NFC) initiator mode at 106 baud.

§ PHHAL_HW_CARDTYPE_I18092M_ACTIVE_212

#define PHHAL_HW_CARDTYPE_I18092M_ACTIVE_212 0x0008U

ISO/IEC ISO18092 (NFC) initiator mode at 212 baud.

§ PHHAL_HW_CARDTYPE_I18092M_ACTIVE_424

#define PHHAL_HW_CARDTYPE_I18092M_ACTIVE_424 0x0009U

ISO/IEC ISO18092 (NFC) initiator mode at 424 baud.

§ PHHAL_HW_CARDTYPE_FELICA_424

#define PHHAL_HW_CARDTYPE_FELICA_424 0x000AU

Felica mode at 424 baud.

§ PHHAL_HW_CARDTYPE_UNKNOWN

#define PHHAL_HW_CARDTYPE_UNKNOWN 0x00FFU

Unknown card type.

§ PHHAL_HW_CRCTYPE_CRC5

#define PHHAL_HW_CRCTYPE_CRC5 0x0001U

5 bit length, polynomial x^5+x^3+1, preset value 01001b, residue 00000b.

§ PHHAL_HW_CRCTYPE_CRC16

#define PHHAL_HW_CRCTYPE_CRC16 0x0002U

ISO/IEC 13239, 16 bit length, polynomial x^16+x^12+x^5+1, preset value 0xFFFF, residue 0x1D0F.

§ PHHAL_HW_CRCOPTION_INVERTED

#define PHHAL_HW_CRCOPTION_INVERTED 0x0100U

To indicate that the CRC generated should be inverted.

This should be ORed with the CRCTYPEs above.

§ PHHAL_HW_RF_DATARATE_106

#define PHHAL_HW_RF_DATARATE_106 0x0000U

Data rate setting for 106 kBit/s.

§ PHHAL_HW_RF_DATARATE_212

#define PHHAL_HW_RF_DATARATE_212 0x0001U

Data rate setting for 212 kBit/s.

§ PHHAL_HW_RF_DATARATE_424

#define PHHAL_HW_RF_DATARATE_424 0x0002U

Data rate setting for 424 kBit/s.

§ PHHAL_HW_RF_DATARATE_848

#define PHHAL_HW_RF_DATARATE_848 0x0003U

Data rate setting for 848 kBit/s.

§ PHHAL_HW_RF_TX_DATARATE_1_OUT_OF_256

#define PHHAL_HW_RF_TX_DATARATE_1_OUT_OF_256 0x000AU

Data rate setting for ISO15693 '1 out of 256' mode.

§ PHHAL_HW_RF_TX_DATARATE_1_OUT_OF_4

#define PHHAL_HW_RF_TX_DATARATE_1_OUT_OF_4 0x000BU

Data rate setting for ISO15693 '1 out of 4' mode.

§ PHHAL_HW_RF_RX_DATARATE_LOW

#define PHHAL_HW_RF_RX_DATARATE_LOW 0x000CU

Data rate setting for ISO15693 low data rate.

§ PHHAL_HW_RF_RX_DATARATE_HIGH

#define PHHAL_HW_RF_RX_DATARATE_HIGH 0x000DU

Data rate setting for ISO15693 high data rate.

§ PHHAL_HW_RF_RX_DATARATE_FAST_LOW

#define PHHAL_HW_RF_RX_DATARATE_FAST_LOW 0x000EU

Data rate setting for ISO15693 fast (low*2) data rate (FAST INVENTORY (PAGE) READ).

§ PHHAL_HW_RF_RX_DATARATE_FAST_HIGH

#define PHHAL_HW_RF_RX_DATARATE_FAST_HIGH 0x000FU

Data rate setting for ISO15693 fast (high*2) data rate (FAST INVENTORY (PAGE) READ).

§ PHHAL_HW_RF_DATARATE_EPCUID

#define PHHAL_HW_RF_DATARATE_EPCUID 0x0010U

Data rate setting for EPC/UID.

§ PHHAL_HW_RF_TX_DATARATE_I18000P3M3

#define PHHAL_HW_RF_TX_DATARATE_I18000P3M3 0x0011U

Tx data rate setting for ISO18000-3 mode3.

TARI Value = 9.44us

§ PHHAL_HW_RF_TX_DATARATE_I18000P3M3_TARI1888

#define PHHAL_HW_RF_TX_DATARATE_I18000P3M3_TARI1888 0x0012U

Tx data rate setting for ISO18000-3 mode3.

TARI Value = 18.88 us

§ PHHAL_HW_RX_I18000P3M3_FL_423_MAN2

#define PHHAL_HW_RX_I18000P3M3_FL_423_MAN2 0x0013U

ICode ISO18000-3 Mode3 424 kBit/s (M=2).

§ PHHAL_HW_RX_I18000P3M3_FL_847_MAN2

#define PHHAL_HW_RX_I18000P3M3_FL_847_MAN2 0x0014U

ICode ISO18000-3 Mode3 847 kBit/s (M=2).

§ PHHAL_HW_RX_I18000P3M3_FL_423_MAN4

#define PHHAL_HW_RX_I18000P3M3_FL_423_MAN4 0x0015U

ICode ISO18000-3 Mode3 424 kBit/s (M=4).

§ PHHAL_HW_RX_I18000P3M3_FL_847_MAN4

#define PHHAL_HW_RX_I18000P3M3_FL_847_MAN4 0x0016U

ICode ISO18000-3 Mode3 847 kBit/s (M=4).

§ PHHAL_HW_RF_TYPE_A_FRAMING

#define PHHAL_HW_RF_TYPE_A_FRAMING 0x0100U

Data rate setting for 106 kBit/s.

§ PHHAL_HW_RF_TYPE_B_FRAMING

#define PHHAL_HW_RF_TYPE_B_FRAMING 0x0200U

Data rate setting for 212 kBit/s.

§ PHHAL_HW_RF_TYPE_F_FRAMING

#define PHHAL_HW_RF_TYPE_F_FRAMING 0x0300U

Data rate setting for 424 kBit/s.

§ PHHAL_HW_RF_TYPE_ACTIVE_FRAMING

#define PHHAL_HW_RF_TYPE_ACTIVE_FRAMING 0x0400U

Data rate setting for 848 kBit/s.

§ PHHAL_HW_RF_DATARATE_OPTION_MASK

#define PHHAL_HW_RF_DATARATE_OPTION_MASK 0x00FFU

Option-mask for data rate.

§ PHHAL_HW_RF_FRAMING_OPTION_MASK

#define PHHAL_HW_RF_FRAMING_OPTION_MASK 0xFF00U

Option-mask for framing.

§ PHHAL_HW_RF_TYPE_A_START_BYTE

#define PHHAL_HW_RF_TYPE_A_START_BYTE 0xF0U

Start byte used at passive 106kbps.

§ PHHAL_HW_SUBCARRIER_SINGLE

#define PHHAL_HW_SUBCARRIER_SINGLE 0x0000U

Sub carrier setting for ISO15693 single sub carrier.

§ PHHAL_HW_SUBCARRIER_DUAL

#define PHHAL_HW_SUBCARRIER_DUAL 0x0001U

Sub carrier setting for ISO15693 / EPC V2 dual sub carrier.

§ PHHAL_HW_SUBCARRIER_QUAD

#define PHHAL_HW_SUBCARRIER_QUAD 0x0002U

Sub carrier setting for EPC V2 quad sub carrier.

§ PHHAL_HW_TIME_MICROSECONDS

#define PHHAL_HW_TIME_MICROSECONDS 0x0000U

Time in microseconds (us).

§ PHHAL_HW_TIME_MILLISECONDS

#define PHHAL_HW_TIME_MILLISECONDS 0x0001U

Time in milliseconds (ms).

§ PHHAL_HW_TIMING_MODE_OFF

#define PHHAL_HW_TIMING_MODE_OFF 0x0000U

Time measurement disabled.

§ PHHAL_HW_TIMING_MODE_FDT

#define PHHAL_HW_TIMING_MODE_FDT 0x0001U

Measures time from Tx-end until Rx-begin.

§ PHHAL_HW_TIMING_MODE_COMM

#define PHHAL_HW_TIMING_MODE_COMM 0x0002U

Measures the duration of the complete communication.

§ PHHAL_HW_TIMING_MODE_OPTION_MASK

#define PHHAL_HW_TIMING_MODE_OPTION_MASK 0xFF00U

Additional option-mask for time measurement.

§ PHHAL_HW_TIMING_MODE_OPTION_DEFAULT

#define PHHAL_HW_TIMING_MODE_OPTION_DEFAULT 0x0000U

The timing value is accumulated on each exchange until it gets retrieved by phhalHw_GetConfig.

§ PHHAL_HW_TIMING_MODE_OPTION_AUTOCLEAR

#define PHHAL_HW_TIMING_MODE_OPTION_AUTOCLEAR 0x0100U

Automatically resets the current timing value prior to any communication.

§ PHHAL_HW_FIELD_OFF_DEFAULT

#define PHHAL_HW_FIELD_OFF_DEFAULT 0x0005U

Default field-off time.

§ PHHAL_HW_FIELD_RECOVERY_DEFAULT

#define PHHAL_HW_FIELD_RECOVERY_DEFAULT 0x0005U

Default field-recovery time.

§ PHHAL_HW_SYMBOL_ICODEEPCUID_SSOF

#define PHHAL_HW_SYMBOL_ICODEEPCUID_SSOF 0x0001U

ICode EPC/UID short start of frame.

§ PHHAL_HW_SYMBOL_ICODEEPCUID_LSOF

#define PHHAL_HW_SYMBOL_ICODEEPCUID_LSOF 0x0002U

ICode EPC/UID long start of frame.

§ PHHAL_HW_SYMBOL_ICODEEPCUID_CEOF

#define PHHAL_HW_SYMBOL_ICODEEPCUID_CEOF 0x0003U

ICode EPC/UID common end of frame.

§ PHHAL_HW_SYMBOL_ICODEEPCUID_CS

#define PHHAL_HW_SYMBOL_ICODEEPCUID_CS 0x0004U

ICode EPC/UID close slot.

§ PHHAL_HW_SYMBOL_I15693_SOF

#define PHHAL_HW_SYMBOL_I15693_SOF 0x0005U

ISO15693 SOF (automatically chosen between 1/256 and 1/4).

§ PHHAL_HW_SYMBOL_I18000P3M3_PREAMBLE

#define PHHAL_HW_SYMBOL_I18000P3M3_PREAMBLE 0x0006U

ISO18000-3 mode3 preamble.

§ PHHAL_HW_SYMBOL_I18000P3M3_FSYNC

#define PHHAL_HW_SYMBOL_I18000P3M3_FSYNC 0x0007U

ISO18000-3 mode3 frame-sync.

§ PHHAL_HW_MFC_KEYA

#define PHHAL_HW_MFC_KEYA 0x0AU

MIFARE Classic key type A.

§ PHHAL_HW_MFC_KEYB

#define PHHAL_HW_MFC_KEYB 0x0BU

MIFARE Classic key type B.

§ PHHAL_HW_MFC_KEY_LENGTH

#define PHHAL_HW_MFC_KEY_LENGTH 0x06U

Length of a MIFARE Classic key (for completeness).

§ PHHAL_HW_BAL_CONNECTION_RS232

#define PHHAL_HW_BAL_CONNECTION_RS232 0x0000U

Reader IC is connected via RS232.

§ PHHAL_HW_BAL_CONNECTION_SPI

#define PHHAL_HW_BAL_CONNECTION_SPI 0x0001U

Reader IC is connected via SPI.

§ PHHAL_HW_BAL_CONNECTION_I2C

#define PHHAL_HW_BAL_CONNECTION_I2C 0x0002U

Reader IC is connected via I2C.

§ PHHAL_HW_RS232_BITRATE_7200

#define PHHAL_HW_RS232_BITRATE_7200 0x0000U

7.200 kBit/s.

§ PHHAL_HW_RS232_BITRATE_9600

#define PHHAL_HW_RS232_BITRATE_9600 0x0001U

9.600 kBit/s.

§ PHHAL_HW_RS232_BITRATE_14400

#define PHHAL_HW_RS232_BITRATE_14400 0x0002U

14.400 kBit/s.

§ PHHAL_HW_RS232_BITRATE_19200

#define PHHAL_HW_RS232_BITRATE_19200 0x0003U

19.200 kBit/s.

§ PHHAL_HW_RS232_BITRATE_38400

#define PHHAL_HW_RS232_BITRATE_38400 0x0004U

38.400 kBit/s.

§ PHHAL_HW_RS232_BITRATE_57600

#define PHHAL_HW_RS232_BITRATE_57600 0x0005U

57.500 kBit/s.

§ PHHAL_HW_RS232_BITRATE_115200

#define PHHAL_HW_RS232_BITRATE_115200 0x0006U

115.200 kBit/s.

§ PHHAL_HW_RS232_BITRATE_128000

#define PHHAL_HW_RS232_BITRATE_128000 0x0007U

128.000 kBit/s.

§ PHHAL_HW_RS232_BITRATE_230400

#define PHHAL_HW_RS232_BITRATE_230400 0x0008U

230.400 kBit/s.

§ PHHAL_HW_RS232_BITRATE_460800

#define PHHAL_HW_RS232_BITRATE_460800 0x0009U

460.800 kBit/s.

§ PHHAL_HW_RS232_BITRATE_921600

#define PHHAL_HW_RS232_BITRATE_921600 0x000AU

921.600 kBit/s.

§ PHHAL_HW_RS232_BITRATE_1228800

#define PHHAL_HW_RS232_BITRATE_1228800 0x000BU

1.228.800 kBit/s.

§ PHHAL_HW_MINFDT_106_US

#define PHHAL_HW_MINFDT_106_US 91+10

(n * 128 + 84) / 13.56; n = 9.

§ PHHAL_HW_MINFDT_212_US

#define PHHAL_HW_MINFDT_212_US 87+40

(n * 128 + 148) / 13.56; n = 8.

§ PHHAL_HW_MINFDT_424_US

#define PHHAL_HW_MINFDT_424_US 84+35

(n * 128 + 116) / 13.56; n = 8.

§ PHHAL_HW_MINFDT_848_US

#define PHHAL_HW_MINFDT_848_US 83+45

(n * 128 + 100) / 13.56; n = 8.

§ PHHAL_HW_I14443A_106_FRAMING

#define PHHAL_HW_I14443A_106_FRAMING 0x00

ISO/IEC 14443A/MIFARE and passive communication mode 106 kBit.

§ PHHAL_HW_ACTIVE_MODE_FRAMING

#define PHHAL_HW_ACTIVE_MODE_FRAMING 0x01

Active communication mode.

§ PHHAL_HW_FELICA_FRAMING

#define PHHAL_HW_FELICA_FRAMING 0x02

FeliCa and passive communication mode 212 and 424 kBit.

§ PHHAL_HW_I14443B_FRAMING

#define PHHAL_HW_I14443B_FRAMING 0x03

ISO/IEC 14443B.

§ PHHAL_HW_EMULATE_TYPE_A_TARGET

#define PHHAL_HW_EMULATE_TYPE_A_TARGET 0x0001U

Bit setting to emulate Type A target.

§ PHHAL_HW_EMULATE_TYPE_B_TARGET

#define PHHAL_HW_EMULATE_TYPE_B_TARGET 0x0002U

Bit setting to emulate Type B target.

§ PHHAL_HW_EMULATE_TYPE_F_TARGET

#define PHHAL_HW_EMULATE_TYPE_F_TARGET 0x0004U

Bit setting to emulate Type F target.

§ PHHAL_HW_REQC_MIN_LEN

#define PHHAL_HW_REQC_MIN_LEN 19U

Minimum length of valid ReqC response when multiple reception is enabled.

§ PHHAL_HW_RESP_FRAME_SIZE

#define PHHAL_HW_RESP_FRAME_SIZE 32U

Frame size of one felica response when multiple reception is enable.

§ PHHAL_HW_STATUS_FRAME_LEN_BYTE_POS

#define PHHAL_HW_STATUS_FRAME_LEN_BYTE_POS 28U

Byte position where length information in felica response frame.

§ PHHAL_HW_STATUS_FRAME_ERR_BYTE_POS

#define PHHAL_HW_STATUS_FRAME_ERR_BYTE_POS 29U

Byte position where error information in felica response frame.

§ PHHAL_HW_STATUS_FRAME_CL_ERR_POS

#define PHHAL_HW_STATUS_FRAME_CL_ERR_POS (1 << 0)

Bit position for contact less Error in felica response frame.

§ PHHAL_HW_STATUS_FRAME_DATA_ERR_POS

#define PHHAL_HW_STATUS_FRAME_DATA_ERR_POS (1 << 1)

Bit position for data(CRC or Parity) error in felica response frame.

§ PHHAL_HW_STATUS_FRAME_PROT_ERR_POS

#define PHHAL_HW_STATUS_FRAME_PROT_ERR_POS (1 << 2)

Bit position for protocol error in felica response frame.

§ PHHAL_HW_STATUS_FRAME_COLL_ERR_POS

#define PHHAL_HW_STATUS_FRAME_COLL_ERR_POS (1 << 3)

Bit position for collision error in felica response frame.

§ PHHAL_HW_STATUS_FRAME_LEN_ERR_POS

#define PHHAL_HW_STATUS_FRAME_LEN_ERR_POS (1 << 4)

Bit position for length error in felica response frame.

§ PHHAL_HW_STATUS_FRAME_ERR_MASK

#define PHHAL_HW_STATUS_FRAME_ERR_MASK 0x1FU

Bit mask for error byte in felica response frame.

§ PHHAL_HW_STATUS_FRAME_LEN_MASK

#define PHHAL_HW_STATUS_FRAME_LEN_MASK 0x1FU

Bit mask for Length byte in felica response frame.

§ PHHAL_HW_I18000P3M3_GET_MAX_RESPS

#define PHHAL_HW_I18000P3M3_GET_MAX_RESPS 0

Gets responses from more than one slots limited by the RX buffer size and number of slots.

§ PHHAL_HW_I18000P3M3_GET_TAG_HANDLE

#define PHHAL_HW_I18000P3M3_GET_TAG_HANDLE 2

Gets response for only one time slot.

Also sends a ReqRN to get the tag handle for this slot.

§ PHHAL_HW_I18000P3M3_SESSION_S0

#define PHHAL_HW_I18000P3M3_SESSION_S0 0x00U

Session S0.

§ PHHAL_HW_I18000P3M3_SESSION_S2

#define PHHAL_HW_I18000P3M3_SESSION_S2 0x02U

Session S2.

§ PHHAL_HW_I18000P3M3_TARGET_INVENTORIED_S0

#define PHHAL_HW_I18000P3M3_TARGET_INVENTORIED_S0 0x00U

INVENTORIED_S0 target.

§ PHHAL_HW_I18000P3M3_TARGET_INVENTORIED_S2

#define PHHAL_HW_I18000P3M3_TARGET_INVENTORIED_S2 0x02U

INVENTORIED_S2 target.

§ PHHAL_HW_I18000P3M3_TARGET_SL

#define PHHAL_HW_I18000P3M3_TARGET_SL 0x04U

SL target.

§ PHHAL_HW_I18000P3M3_UPDN_INCREMENT

#define PHHAL_HW_I18000P3M3_UPDN_INCREMENT 0x06U

Increment Q.

§ PHHAL_HW_I18000P3M3_UPDN_NOCHANGE

#define PHHAL_HW_I18000P3M3_UPDN_NOCHANGE 0x00U

Do not change Q.

§ PHHAL_HW_I18000P3M3_UPDN_DECREMENT

#define PHHAL_HW_I18000P3M3_UPDN_DECREMENT 0x03U

Decrement Q.

§ PHHAL_HW_I18000P3M3_CMD_RESIZE_ROUND

#define PHHAL_HW_I18000P3M3_CMD_RESIZE_ROUND 0x09U

ResizeRound command code.

Typedef Documentation

§ ppRFCallBck_t

typedef void(* ppRFCallBck_t) (void *pDataParams)

RF callback which will be called by ISR handler implementation in Platform Layer.

Return values
None

Function Documentation

§ phhalHw_Nfc_IC_Init()

phStatus_t phhalHw_Nfc_IC_Init | ( | phhalHw_Nfc_Ic_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams,
 |  | void * | pBalDataParams,
 |  | void * | pKeyStoreDataParams,
 |  | uint8_t * | pTxBuffer,
 |  | uint16_t | wTxBufSize,
 |  | uint8_t * | pRxBuffer,
 |  | uint16_t | wRxBufSize
 | ) |  |

Initialize the HAL component.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wSizeOfDataParams | Specifies the size of the data parameter structure.
[in] | pBalDataParams | Pointer to the lower layers parameter structure.
[in] | pKeyStoreDataParams | Pointer to configuration buffer for LoadReg mode; See description above.
[in] | pTxBuffer | Pointer to global transmit buffer used by the phhalHw_Exchange() function.
[in] | wTxBufSize | Size of the global transmit buffer.
[in] | pRxBuffer | Pointer to global receive buffer used by the phhalHw_Exchange() function.
[in] | wRxBufSize | Size of the global receive buffer. Specify the buffer +1 byte, because one byte is reserved for SPI communication.

§ phhalHw_Exchange()

phStatus_t phhalHw_Exchange | ( | void * | pDataParams,
 |  | uint16_t | wOption,
 |  | uint8_t * | pTxBuffer,
 |  | uint16_t | wTxLength,
 |  | uint8_t ** | ppRxBuffer,
 |  | uint16_t * | pRxLength
 | ) |  |

Perform data exchange with target/PICC in initiator/PCD mode.

This is a blocking exchange function to be used by all PAL components of reader, initiator. Frame step option required for T1T/Jewel protocol can be set using a SetConfig - PHHAL_HW_CONFIG_JEWEL_MODE It is recommended that the Tx Buffer pointer supplied to this function is word aligned (word alignment specific to the micro-controller platform where this is used)

Before this function is called, it is expected that the user/upper layer has performed

  • BAL initialization (where applicable) - Example - phbalReg_Serial_Init()
  • HAL initialization - Example phhalHw_Rc523_Init();
  • Load the protocol - phhalHw_ApplyProtocolSettings()
  • Field ON - phhalHw_FieldOn(); or phhalHw_FieldReset()
  • Wait for initial guard time using phhalHw_Wait() in case phhalHw_FieldOn() was called earlier
  • Set or modify any configuration parameters using phhalHw_SetConfig()
  • Call phhalHw_Exchange() with relevant protocol command/data.

wOption can be one of:

  • PH_EXCHANGE_DEFAULT

wOption can be combined with:

  • PH_EXCHANGE_BUFFERED_BIT
  • PH_EXCHANGE_LEAVE_BUFFER_BIT

Note: When activated in target mode using phhalHw_Autocoll API, exchange should not be used.
Please refer to PHHAL_HW_CONFIG_PARITY from where all the configuration parameters are defined that will affect the behavior of this API.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | wOption is invalid.
PH_ERR_SUCCESS_INCOMPLETE_BYTE | Operation successful, incomplete byte received; Retrieve number of valid bits of last byte with PHHAL_HW_CONFIG_RXLASTBITS.
PH_ERR_IO_TIMEOUT | No response detected within the configured time frame.
PH_ERR_INTEGRITY_ERROR | Response received but CRC or parity is invalid.
PH_ERR_COLLISION_ERROR | Response received but a collision occurred; Retrieve number of valid bits of last byte with PHHAL_HW_CONFIG_RXLASTBITS.
PH_ERR_BUFFER_OVERFLOW | Internal receive buffer is too small for transmission or smaller than the response.
PH_ERR_FRAMING_ERROR | Frame format is either invalid for configured protocol or corrupted.
PH_ERR_PROTOCOL_ERROR | Frame format is definitely invalid for configured protocol or received response by Type 1 Tag is less than 4 Bytes.
PH_ERR_ABORTED | Returned when this API exits after phhalHw_AsyncAbort API is called from another thread.
PH_ERR_EXT_RF_ERROR | External RF is ON during this exchange or if peer RF did not turn ON within Tadt in Active Mode.
PH_ERR_READ_WRITE_ERROR | Hardware problem.
PH_ERR_TEMPERATURE_ERROR | Hardware problem.
PH_ERR_INTERFACE_ERROR | Hardware problem.
PH_ERR_INTERNAL_ERROR | Unexpected Hardware problem or Software logic that should never be executed.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wOption | Option parameter.
[in] | pTxBuffer | Data to transmit.
[in] | wTxLength | Number of bytes to transmit.
[out] | ppRxBuffer | Pointer to received data.
[out] | pRxLength | Number of received data bytes.

§ phhalHw_ApplyProtocolSettings()

phStatus_t phhalHw_ApplyProtocolSettings | ( | void * | pDataParams,
 |  | uint8_t | bMode
 | ) |  |

Configure reader IC for a particular reader/initiator protocol.

Used to apply hardware settings for a particular protocol for reader, initiator modes. Example: ISO 14443-3A, ISO 14443-3B, ISO 18092 initiator etc. For target or card emulation phhalHw_Autocoll should be used. An IC specific configuration for setting antenna type before applying protocol settings may be required during development phase and this should be managed by IC specific HALs.

bMode can be:

  • PHHAL_HW_CARDTYPE_CURRENT
  • PHHAL_HW_CARDTYPE_ISO14443A
  • PHHAL_HW_CARDTYPE_ISO14443B
  • PHHAL_HW_CARDTYPE_FELICA_212
  • PHHAL_HW_CARDTYPE_ISO15693
  • PHHAL_HW_CARDTYPE_ICODEEPCUID
  • PHHAL_HW_CARDTYPE_I18000P3M3
  • PHHAL_HW_CARDTYPE_I18092M_ACTIVE_106
  • PHHAL_HW_CARDTYPE_I18092M_ACTIVE_212
  • PHHAL_HW_CARDTYPE_I18092M_ACTIVE_424
  • PHHAL_HW_CARDTYPE_FELICA_424

Before this function is called, it is expected that the user/upper layer has performed

  • BAL initialization (where applicable) - Example - phbalReg_Serial_Init()
  • HAL initialization - Example phhalHw_Rc523_Init();

Only after calling this function, the RF field has to be turned ON using phhalHw_FieldOn() or phhalHw_FieldReset()

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | bCardType is invalid or not supported.
PH_ERR_INTERFACE_ERROR | Hardware problem.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bMode | Mode in which the IC hardware is to be configured.

§ phhalHw_MfcAuthenticateKeyNo()

phStatus_t phhalHw_MfcAuthenticateKeyNo | ( | void * | pDataParams,
 |  | uint8_t | bBlockNo,
 |  | uint8_t | bKeyType,
 |  | uint16_t | wKeyNo,
 |  | uint16_t | wKeyVersion,
 |  | uint8_t * | pUid
 | ) |  |

Perform MIFARE(R) Classic authentication using a key number.

wKeyVersion and wKeyNo parameters are assigned for a particular key.
When hardware key store is used, the keys are stored in the reader IC.
The keys are referenced by using key number and key version.
When software key store is used (please refer to phKeyStore.h), the key number
and key version are as assigned in the phKeyStore_Sw_KeyVersionPair_t structure.
Before this function is called, it is expected that the user/upper layer has performed

  • BAL initialization (where applicable) - Example - phbalReg_Serial_Init()
  • HAL initialization - Example phhalHw_Rc523_Init();
  • Load the protocol - phhalHw_ApplyProtocolSettings()
  • Field ON - phhalHw_FieldOn(); or phhalHw_FieldReset()
  • Wait for initial Guard time using phhalHw_Wait()
  • Activate the MIFARE Classic / MIFARE Plus SL1 card using ISO14443-3A commands.
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | bKeyType, wKeyNo or wKeyVersion is invalid.
PH_ERR_IO_TIMEOUT | Error in authentication.
PH_ERR_AUTH_ERROR | Error in authentication.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bBlockNo | Block number on card to authenticate to.
[in] | bKeyType | Either PHHAL_HW_MFC_KEYA or PHHAL_HW_MFC_KEYB.
[in] | wKeyNo | Key number to be used in authentication.
[in] | wKeyVersion | Key version to be used in authentication.
[in] | pUid | Serial number of current cascade level; uint8_t[4].

§ phhalHw_MfcAuthenticate()

phStatus_t phhalHw_MfcAuthenticate | ( | void * | pDataParams,
 |  | uint8_t | bBlockNo,
 |  | uint8_t | bKeyType,
 |  | uint8_t * | pKey,
 |  | uint8_t * | pUid
 | ) |  |

Perform MIFARE(R) Classic authentication using a key.

Here the 6 byte MIFARE Key is supplied as an argument (pKey).

Before this function is called, it is expected that the user/upper layer has performed

  • BAL initialization (where applicable) - Example - phbalReg_Serial_Init()
  • HAL initialization - Example phhalHw_Rc523_Init();
  • Load the protocol - phhalHw_ApplyProtocolSettings();
  • Field ON - phhalHw_FieldOn();
  • Wait for initial Guard time using phhalHw_Wait();
  • Activate the MIFARE Classic / MIFARE Plus SL1 card using ISO14443-3A commands
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | bKeyType is invalid.
PH_ERR_IO_TIMEOUT | Error in authentication.
PH_ERR_AUTH_ERROR | Error in authentication.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bBlockNo | Block number on card to authenticate to.
[in] | bKeyType | Either PHHAL_HW_MFC_KEYA or PHHAL_HW_MFC_KEYB
[in] | pKey | Key to be used in authentication.
[in] | pUid | Serial number of current cascade level; uint8_t[4].

§ phhalHw_SetConfig()

phStatus_t phhalHw_SetConfig | ( | void * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t | wValue
 | ) |  |

Set configuration parameter.

All mandatory configuration parameters are to be implemented to be compliant to generic HAL specification
Refer PHHAL_HW_CONFIG_PARITY and subsequent configuration parameters that can be set using this API.

This operation is performed by user application or upper layer to set/change the behavior of the HAL APIs. For example - To enable parity during phhalHw_Exchange(),
phhalHw_SetConfig(pHal, PHHAL_HW_CONFIG_PARITY, PH_ON); needs to be called.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_UNSUPPORTED_PARAMETER | Configuration is not supported or invalid.
PH_ERR_INVALID_PARAMETER | Parameter value is invalid.
PH_ERR_PARAMETER_OVERFLOW | Setting the parameter value would lead to an overflow.
PH_ERR_INTERFACE_ERROR | Communication error.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wConfig | Configuration identifier.
[in] | wValue | Configuration value.

§ phhalHw_GetConfig()

phStatus_t phhalHw_GetConfig | ( | void * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t * | pValue
 | ) |  |

Get configuration parameter.

All mandatory configuration parameters are to be implemented to be compliant to generic HAL specification.
Refer PHHAL_HW_CONFIG_PARITY and subsequent configuration parameters whose value can be read using this API.

This operation is performed by user application or upper layer to get the value of a configuration parameter of the HAL. For example - To get the number of last bits received during phhalHw_Exchange(),
phhalHw_GetConfig(pHal, PHHAL_HW_CONFIG_RXLASTBITS, &wLastBits); needs to be called.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_UNSUPPORTED_PARAMETER | Configuration is not supported or invalid.
PH_ERR_INVALID_PARAMETER | Parameter value is invalid.
PH_ERR_PARAMETER_OVERFLOW | The parameter value is larger than the range of pValue.
PH_ERR_INTERFACE_ERROR | Communication error.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wConfig | Configuration identifier.
[out] | pValue | Configuration value.

§ phhalHw_FieldOn()

phStatus_t phhalHw_FieldOn ( void * pDataParams )

Switch ON the RF-field.

If the configuration parameter PHHAL_HW_CONFIG_RFCA is set, it performs initial RF collision avoidance(I-RFCA) in initiator/reader mode before switching ON the field.
If parameter PHHAL_HW_CONFIG_RFCA is not set, field ON is done without performing RFCA.
This API shall be called only after phhalHw_ApplyProtocolSettings. An example sequence is given below

  • BAL initialization (where applicable) - Example - phbalReg_Serial_Init()
  • HAL initialization - Example phhalHw_Rc523_Init();
  • Load the protocol - phhalHw_ApplyProtocolSettings(pHal, PHHAL_HW_CARDTYPE_I18092M_ACTIVE_106);
  • Field ON - phhalHw_FieldOn();
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INTERFACE_ERROR | Communication error.
PH_ERR_RF_ERROR | External RF is detected during RF Collision avoidance when RFCA is enabled.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phhalHw_FieldOff()

phStatus_t phhalHw_FieldOff ( void * pDataParams )

Switch off the RF-field.

If this API is called when communication mode is "active initiator", this will reset the Auto-RF OFF behavior of the active initiator mode

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INTERFACE_ERROR | Communication error.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phhalHw_FieldReset()

phStatus_t phhalHw_FieldReset ( void * pDataParams )

Perform RF-Reset.

Switches OFF, waits for a configured time, and then turns the RF back to ON.
This is expected to retain the protocol settings that were applied before calling this function. The time to wait before RF ON is configured using a SetConfig call.

PHHAL_HW_CONFIG_FIELD_OFF_TIME (in milliseconds) can be set to a particular value to keep the field OFF for the configured time value before turning it ON.

PHHAL_HW_CONFIG_FIELD_RECOVERY_TIME (in milliseconds) can be set to a particular value to wait for RF recovery time after field is switched ON.

A typical sequence in which this API is called is given below

  • BAL initialization (where applicable) - Example - phbalReg_Serial_Init()
  • HAL initialization - Example phhalHw_Rc523_Init();
  • Load the protocol - phhalHw_ApplyProtocolSettings();
  • Field ON - phhalHw_FieldOn();
  • Wait for initial guard time - phalHw_Wait();
  • Send/Receive protocol commands
  • Field reset - phhalHw_FieldReset();
  • Restart activation commands followed by other protocol commands.
  • Field OFF - phhalHw_FieldOff();
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INTERFACE_ERROR | Communication error.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phhalHw_Wait()

phStatus_t phhalHw_Wait | ( | void * | pDataParams,
 |  | uint8_t | bUnit,
 |  | uint16_t | wTimeout
 | ) |  |

phhalHw_Wait function waits/loops until the input time value is elapsed.

This function can be configured to generate Time delays in micro or milliseconds. This can be used as initial RF guard time delay in discovery loop

A typical sequence in which this API is called is given below

  • BAL initialization (where applicable) - Example - phbalReg_Serial_Init();
  • HAL initialization - Example phhalHw_Rc523_Init();
  • Load the protocol - phhalHw_ApplyProtocolSettings();
  • Field ON - phhalHw_FieldOn();
  • Wait for initial guard time - phalHw_Wait(pHal, 5100, PHHAL_HW_TIME_MICROSECONDS);
  • Send/Receive protocol commands
  • Field Reset - phhalHw_FieldReset();
  • Restart activation commands followed by other protocol commands.
  • Field OFF - phhalHw_FieldOff();
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | bUnit is invalid.
PH_ERR_INTERFACE_ERROR | Communication error.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bUnit | Unit of given timeout value (either PHHAL_HW_TIME_MICROSECONDS or PHHAL_HW_TIME_MILLISECONDS).
[in] | wTimeout | Timeout value.

§ phhalHw_Transmit()

phStatus_t phhalHw_Transmit | ( | void * | pDataParams,
 |  | uint16_t | wOption,
 |  | uint8_t * | pTxBuffer,
 |  | uint16_t | wTxLength
 | ) |  |

Used to transmit data.

This is a generic transmit-only function that can be used in initiator/PCD and target modes.

In the initiator/reader mode, the FWT timer starts after last bit transmitted to handle timeout and is automatically stopped after first bit is received in a phhalHw_Receive() function call.

Note: Special behavior: To use phhalHw_Transmit API in target mode phhalHw_Autocoll API shall be executed before.

wOption can be one of:

  • PH_TRANSMIT_DEFAULT
  • PH_TRANSMIT_PREV_FRAME

If wOption can be combined with:

  • PH_TRANSMIT_BUFFERED_BIT
  • PH_TRANSMIT_LEAVE_BUFFER_BIT

NOTE : PH_TRANSMIT_PREV_FRAME cannot be combined with any of the buffering options above.

A typical sequence in which this API is called in initiator mode is given below

  • BAL initialization (where applicable) - Example - phbalReg_Serial_Init();
  • HAL initialization - Example phhalHw_Rc523_Init();
  • Load the protocol - phhalHw_ApplyProtocolSettings(pHal, PHHAL_HW_CARDTYPE_I18092M_ACTIVE_106);
  • Field ON - phhalHw_FieldOn();
  • Wait for initial guard time - phalHw_Wait(pHal, 5100, PHHAL_HW_TIME_MICROSECONDS);
  • Transmit the ATR_REQ - phhalHw_Transmit(pHal, PH_EXCHANGE_DEFAULT, pATR_REQ, wATR_len);
  • Receive the response - phhalHw_Receive(pHal, 0x00, &pResponse, &wRxLen);
  • Other command exchanges
  • Field OFF - phhalHw_FieldOff();

A typical sequence in which this API is called in target/PICC mode is given below

  • BAL initialization (where applicable) - Example - phbalReg_Serial_Init()
  • HAL initialization - Example phhalHw_Rc523_Init();
  • HAL specific listen mode configuration - Example phhalHw_Rc523_SetListenParameters(pHal, pSENS_RES, pNfcId1, bSelelctResponse, pFelicaResponse, bNfcId3);
  • Start target mode - phhalHw_Autocoll(pHal, 0x05, &pResponse, &wRxlen, &wProtParams);
  • if (pResponse is valid ATR_REQ) then phhalHw_Transmit(pHal, PH_TRANSMIT_DEFAULT, pATR_RES, wATR_len);
  • Receive the response - phhalHw_Receive(pHal, 0x00, &pResponse, &wRxLen);
  • Other response/command exchanges
  • Termination of the target flow.
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | wOption parameter is invalid.
PH_ERR_INTERFACE_ERROR | Communication error.
PH_ERR_EXT_RF_ERROR | In active mode if External RF is present during this transmit or in passive target mode if external field is not present before initiating this transmit.
PH_ERR_ABORTED | Returned when this API exits after phhalHw_AsyncAbort API is called from another thread.
PH_ERR_INTERNAL_ERROR | If transmission was not successful due to some Hardware or Memory alignment issues.
PH_ERR_BUFFER_OVERFLOW | If the buffer provided by PAL or Application to HAL exceeds the HAL Tx Buffer and other platform specific reasons.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wOption | Option parameter.
[in] | pTxBuffer | Data to transmit.
[in] | wTxLength | Number of bytes to transmit.

§ phhalHw_Receive()

phStatus_t phhalHw_Receive | ( | void * | pDataParams,
 |  | uint16_t | wOption,
 |  | uint8_t ** | ppRxBuffer,
 |  | uint16_t * | pRxLength
 | ) |  |

Used to receive data.

Can be used in initiator/PCD and target/PICC Modes.

Note: Special behavior: To use phhalHw_Receive API in target Mode, phhalHw_Autocoll API shall be executed previously. In target mode this API will wait for receive interrupt or external RF OFF interrupt (in case of passive mode).

wOption is RFU and should be set to 0x00

A typical sequence in which this API is called in initiator mode is given below

  • BAL initialization (where applicable) - Example - phbalReg_Serial_Init()
  • HAL initialization - Example phhalHw_Rc523_Init();
  • Load the protocol - phhalHw_ApplyProtocolSettings(pHal, PHHAL_HW_CARDTYPE_I18092M_ACTIVE_106);
  • Field ON - phhalHw_FieldOn()
  • Wait for initial guard time - phalHw_Wait(pHal, 5100, PHHAL_HW_TIME_MICROSECONDS);
  • Transmit the ATR_REQ - phhalHw_Transmit(pHal, PH_EXCHANGE_DEFAULT, pATR_REQ, wATR_len);
  • Receive the response - phhalHw_Receive(pHal, 0x00, &pResponse, &wRxLen);
  • Other command exchanges
  • Field OFF - phhalHw_FieldOff();

A typical sequence in which this API is called in target/PICC mode is given below

  • BAL initialization (where applicable) - Example - phbalReg_Serial_Init()
  • HAL initialization - Example phhalHw_Rc523_Init();
  • HAL specific listen mode configuration - Example phhalHw_Rc523_SetListenParameters(pHal, pSENS_RES, pNfcId1, bSelelctResponse, pFelicaResponse, bNfcId3);
  • Start target mode - phhalHw_Autocoll(pHal, 0x05, &pResponse, &wRxlen, &wProtParams);
  • if (pResponse is valid RATS) then phhalHw_Transmit(pHal, PH_EXCHANGE_DEFAULT, pATS, wATS_len);
  • Receive the response - phhalHw_Receive(pHal, 0x00, &pResponse, &wRxLen);
  • Other response/command exchanges
  • Termination of the target flow.
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | The option provided is invalid.
PH_ERR_IO_TIMEOUT | No response detected within the configured time frame.
PH_ERR_INTEGRITY_ERROR | Response received but CRC or parity is invalid.
PH_ERR_COLLISION_ERROR | Response received but a collision occurred; Retrieve number of valid bits of last byte with PHHAL_HW_CONFIG_RXLASTBITS.
PH_ERR_BUFFER_OVERFLOW | Internal receive buffer is smaller than the received response.
PH_ERR_FRAMING_ERROR | Frame format is either invalid for configured protocol or corrupted.
PH_ERR_PROTOCOL_ERROR | Frame format is definitely invalid for configured protocol.
PH_ERR_ABORTED | Returned when this API exits after phhalHw_AsyncAbort API is called from another thread.
PH_ERR_EXT_RF_ERROR | In passive target mode, external reader/initiator switched OFF its field before/during reception or if peer RF did not turn ON within Tadt in Active Mode.
PH_ERR_READ_WRITE_ERROR | Hardware problem.
PH_ERR_TEMPERATURE_ERROR | Hardware problem.
PH_ERR_INTERFACE_ERROR | Communication error.
PH_ERR_INTERNAL_ERROR | Unexpected Hardware problem (like in active mode if modem state is WAIT_RECIEVE but the internal RF field is ON).
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wOption | Option parameter. RFU. Should be set to 0x00.
[out] | ppRxBuffer | Pointer to received data.
[out] | pRxLength | Number of received data bytes.

§ phhalHw_Autocoll()

phStatus_t phhalHw_Autocoll | ( | void * | pDataParams,
 |  | uint16_t | wMode,
 |  | uint8_t ** | ppRxBuffer,
 |  | uint16_t * | pRxLength,
 |  | uint16_t * | pProtParams
 | ) |  |

Used to configure the IC to NFC target or card mode based on the configured option.

Before calling this API phhalHw_FieldOff API should be called.

This is a blocking call that waits for reception of polling frames for the technologies mentioned in the wMode bit map and terminates with a response having command buffer received from an external reader/initiator. After target / PICC activation, the CRC is validated and removed before handing over the received frame to the caller. If target is activated in Active communication mode, then Auto RF-OFF is enabled by this API. The technologies mentioned in wMode or a combination of these depends on the hardware capability.
Note: If PHHAL_HW_CONFIG_MFHALTED configuration parameter is set then this function will only respond to WUPA/ALL_REQ.

IC specific phhalHw_XXX_SetListenParameters API has to be called to configure the NFC Type A, Type B(Optional) and Type F responses in the IC before calling this function.

The LSB and MSB of wMode has to be coded as follows.

     | - - - - - - - - - - - - - - - - - - - - - - - -|
 bit |  7 | 6 | 5 | 4 | 3 |   2    |   1     |   0    |
     | - - - - - - - - - - - - - - - - - - - - - - - -|
 Val |  x | x | x | x | x | Type F |  Type B | Type A |
     | - - - - - - - - - - - - - - - - - - - - - - - -|

The LSB codes target/PICC technology supported for NFC passive technology and MSB codes target/PICC technology supported for NFC active technology

A typical sequence in which this API is called in a target/PICC use case is given below

  • BAL initialization (where applicable) - Example - phbalReg_Serial_Init()
  • HAL initialization - Example phhalHw_Rc523_Init();
  • HAL specific listen mode configuration - Example phhalHw_Rc523_SetListenParameters(pHal, pSENS_RES, pNfcId1, bSelelctResponse, pFelicaResponse, bNfcId3);
  • Field OFF - phhalHw_FieldOff();
  • Start target mode - phhalHw_Autocoll(pHal, 0x05, &pResponse, &wRxlen, &wProtParams);
  • if (pResponse is valid ATR_REQ) then phhalHw_Transmit(pHal, PH_EXCHANGE_DEFAULT, pATR_RES, wATR_len);
  • Receive the next command - phhalHw_Receive(pHal, 0x00, &pResponse, &wRxLen);
  • Other response/command exchanges
  • Termination of the target flow.
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_IO_TIMEOUT | No response received.
PH_ERR_EXT_RF_ERROR | External RF was OFF when this API is called or switched OFF before active/passive activation.
PH_ERR_PROTOCOL_ERROR | Protocol error.
PH_ERR_INTEGRITY_ERROR | Response received but CRC or Parity is invalid.
PH_ERR_BUFFER_OVERFLOW | Internal receive buffer is too small for transmission or smaller than the response.
PH_ERR_FRAMING_ERROR | Frame format is either invalid for configured protocol or corrupted.
PH_ERR_PROTOCOL_ERROR | Frame format is definitely invalid for configured protocol.
PH_ERR_ABORTED | Returned when this API exits after phhalHw_AsyncAbort API is called from another thread.
PH_ERR_READ_WRITE_ERROR | Hardware problem.
PH_ERR_TEMPERATURE_ERROR | Hardware problem.
PH_ERR_INTERFACE_ERROR | Communication error.
PH_ERR_UNSUPPORTED_COMMAND | Target Mode is not supported by the Front End/Nfc Controller
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wMode | Bitmap of the modes that this will support in target/card emulation mode.
[out] | ppRxBuffer | Pointer to received data after Activation. It can be an error frame or ATR_REQ/RATS.
[out] | pRxLength | Number of received data bytes.
[out] pProtParams Contains frame mode in the MSB Byte and Rx speed information in the LSB Byte. MSB value can be one of PHHAL_HW_RF_TYPE_A_FRAMING, PHHAL_HW_RF_TYPE_B_FRAMING, PHHAL_HW_RF_TYPE_F_FRAMING.
LSB value can be one of PHHAL_HW_RF_DATARATE_106, PHHAL_HW_RF_DATARATE_212, PHHAL_HW_RF_DATARATE_424, PHHAL_HW_RF_DATARATE_848.

§ phhalHw_Lpcd()

phStatus_t phhalHw_Lpcd ( void * pDataParams )

Perform Low-Power-Card-Detection.

Note: IC specific API has to be called to configure required parameters for LPCD before calling this function. Example - phhalHw_Rc663_Cmd_Lpcd_SetConfig for CLRC663 has to be called to configure LPCD.

A typical sequence in which this API is called is given below

  • BAL initialization (where applicable) - Example - phbalReg_Serial_Init()
  • HAL initialization - Example phhalHw_Rc663_Init();
  • HAL specific LPCD configuration - phhalHw_Rc663_phhalHw_Rc663_Cmd_Lpcd_SetConfig(pHal, bLPCD_MODE, I_Value, Q_Value, wPowerDownTimeMs, wDetectionTimeUs);
  • Start LPCD - phhalHw_Lpcd(pHal); This blocks until a card comes in the field or due to disturbance in the field.
  • Upon LPCD return - phhalHw_ApplyProtocolSettings(pHal, PHHAL_HW_CARDTYPE_ISO14443A);
  • Turn ON the field - phhalHw_FieldOn();
  • Wait for initial guard time - phalHw_Wait(pHal, 5100, PHHAL_HW_TIME_MICROSECONDS);
  • Start card activation and subsequent card read/write command exchanges.
  • Turn OFF the field - phhalHw_FieldOff();
  • Termination of the application flow.
Returns
Status code
Return values
PH_ERR_SUCCESS | Card present.
PH_ERR_IO_TIMEOUT | No card found.
Other | Depending on implementation and underlying component.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phhalHw_AsyncAbort()

phStatus_t phhalHw_AsyncAbort ( void * pDataParams )

Used to asynchronously stop HAL waiting for RF event and exit from HAL.

Note: This function will post an 'abort' event which is used by the HAL to move into 'Idle' state and exit from polling for RF Event. The functions that were waiting for a HAL event will return PH_ERR_ABORTED error code once this function is executed.

This function shall be called in a task other than the task where reader library is running. This API can be called at any time after the HAL has been initialized and any of the HAL operations like transmit, receive, exchange, autocoll are in progress.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phhalHw_I18000p3m3Inventory()

phStatus_t phhalHw_I18000p3m3Inventory | ( | void * | pDataParams,
 |  | uint8_t * | pSelCmd,
 |  | uint8_t | bSelCmdLen,
 |  | uint8_t | bNumValidBitsinLastByte,
 |  | uint8_t * | pBeginRndCmd,
 |  | uint8_t | bTSprocessing,
 |  | uint8_t ** | ppRxBuffer,
 |  | uint16_t * | wRxBufferLen
 | ) |  |

ISO 18000p3m3 Inventory command.

Note: This function does ISO18000p3m3 BeginRound Sends an Ack Optionally sends a ReqRN Stores the information related to tag reply in the HAL RX Buffer Continues with NextSlot or else pauses and returns based on the option specified Can return multi card information based on the configuration option and the size of HAL RX Buffer. The bTSprocessing (Time slot processing behavior) can take the following values

  • PHHAL_HW_I18000P3M3_GET_MAX_RESPS - Gets responses from more than one slot limited by the Rx Buffer size and number of slots specified in begin round.
  • PHHAL_HW_I18000P3M3_ONE_TS_ONLY - Gets response for only one time slot. Here the number of time slots should be zero in the begin round command.
  • PHHAL_HW_I18000P3M3_GET_TAG_HANDLE - Gets response for only one time slot. Also send a ReqRN to get the tag handle for this slot. Here the number of time slots should be zero in the begin round command.

The response is a Pointer to a buffer containing the result of the inventory. The buffer may contain the result of one or more timeslots. Each timeslot result has the following structure: 1 Byte time slot status ( 0 ... Tag response available. 'Tag reply length field', 'Valid bits in last byte field' and 'Tag reply field' are present. 1 ... Tag response available. In addition to three field above, 'Tag handle field' also present. 2 ... No tag replied in timeslot. 'Tag reply length field', 'Valid bits in last byte field' and 'Tag reply field', 'Tag Handle' are not present. 3 ... Two or more tags responded in the timeslot. (Collision). Tag Reply Length, valid bits in last byte and tag reply field not present. ) 1 Byte 'Tag reply' Length (1-66) 1 Byte Valid bits in last Byte (0-7, 0 means all bits are valid) 0-66 Bytes Tag reply 0 or 2 Bytes Handle of the tag, in case the field

A typical sequence in which this API is called is given below

  • BAL initialization (where applicable) - Example - phbalReg_Serial_Init()
  • HAL initialization - Example phhalHw_Rc663_Init();
  • Load ISO 1800p3m3 protocol - phhalHw_ApplyProtocolSettings(pHal, PHHAL_HW_CARDTYPE_I18000P3M3);
  • Turn ON the field - phhalHw_FieldOn();
  • Wait for initial guard time - phalHw_Wait(pHal, 5100, PHHAL_HW_TIME_MICROSECONDS);
  • Start inventory - phhalHw_I18000p3m3Inventory(pHal,pSelectFrame, bSelectFrameLen, bNumValidBits, pBeginRndFrame, bTSProcessing, &pResponse, &wRxLen);
  • Use phpalI18000p3m3 and phalI18000p3m3 APIs to further communicate with the tag.
  • Turn OFF the field - phhalHw_FieldOff();
  • Termination of the application flow.
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_IO_TIMEOUT | When there is no tag in the field.
PH_ERR_INVALID_PARAMETER | If wrong value specified for bNumValidBits or pBeginRound.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pSelCmd | ISO 18000p3m3 Select command frame.
[in] | bSelCmdLen | Select command length in bytes- 1 to 39 bytes.
[in] | bNumValidBitsinLastByte | Number of valid bits in last byte of pSelCmd.
[in] | pBeginRndCmd | ISO 18000p3m3 BeginRound command frame. This is 17bits i.e., 3 bytes are expected. CRC5 should not be provided.
[in] | bTSprocessing | TimeSlot processing behavior.
[out] | ppRxBuffer | Pointer to HAL RX Buffer containing response from single/multiple tags.
[out] | wRxBufferLen | Length of response in HAL RX Buffer.

§ phhalHw_I18000p3m3ResumeInventory()

phStatus_t phhalHw_I18000p3m3ResumeInventory | ( | void * | pDataParams,
 |  | uint8_t ** | ppRxBuffer,
 |  | uint16_t * | wRxBufferLen
 | ) |  |

ISO 18000p3m3 resume inventory command.

Note: This function is to be called after phhalHw_I18000p3m3Inventory. This internally calls the ISO 18000p3m3 NextSlot command once or multiple times to get responses from remaining slots.

Resume inventory also returns the response similar to phhalHw_I18000p3m3Inventory.

A typical sequence in which this API is called is given below

  • BAL initialization (where applicable) - Example - phbalReg_Serial_Init()
  • HAL initialization - Example phhalHw_Rc663_Init();
  • Load ISO 1800p3m3 protocol - phhalHw_ApplyProtocolSettings(pHal, PHHAL_HW_CARDTYPE_I18000P3M3);
  • Turn ON the field - phhalHw_FieldOn();
  • Wait for initial guard time - phalHw_Wait(pHal, 5100, PHHAL_HW_TIME_MICROSECONDS);
  • Start inventory - phhalHw_I18000p3m3Inventory(pHal,pSelectFrame, bSelectFrameLen, bNumValidBits, pBeginRndFrame, bTSProcessing, &pResponse, &wRxLen);
  • Store the responses received for the tags.
  • If inventory has to be continued then issue the ResumeInventory command - phhalHw_I18000p3m3ResumeInventory(pHal, &pResponse, &wRxLen);
  • Use phpalI18000p3m3 and phalI18000p3m3 APIs to further communicate with the tag.
  • Turn OFF the field - phhalHw_FieldOff();
  • Termination of the application flow.
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_IO_TIMEOUT | When there is no tag in the field.
PH_ERR_USE_CONDITION | If called when the phhalHw_I18000p3m3 was not called previously with bTSprocessing = PHHAL_HW_I18000P3M3_GET_MAX_RESPS.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[out] | ppRxBuffer | Pointer to HAL Rx Buffer containing response from single/multiple tags.
[out] | wRxBufferLen | Length of response in hal Rx Buffer.

§ phhalHw_EventConsume()

phStatus_t phhalHw_EventConsume ( void * pDataParams )

Used to consume all the event generated in Hal.

This function is called before calling phhalHw_EventWait() in normal case to consume all the events.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_DATA_PARAMS | Parameter structure size is invalid.
PH_ERR_UNSUPPORTED_COMMAND | Command not supported.
PH_ERR_INVALID_PARAMETER | Invalid handle for events is provided.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phhalHw_EventWait()

phStatus_t phhalHw_EventWait | ( | void * | pDataParams,
 |  | uint32_t | dwEventTimeout
 | ) |  |

Used to wait any event generate in Hal.

This is a blocking call that waits for any event generated in Hal. Except in No Rtos case, the tread will be suspended and will be resumed if any event is generated.

Before calling this function, the interrupt have to enabled.

A typical sequence in which this API is called is given below

  • BAL initialization (where applicable) - Example - phPlatform_Init();
  • Field OFF - Example - phhalHw_FieldOff();
  • Consume all the Hal events - phhalHw_EventConsume()
  • Set Config to wait for external Rf On. - Example - phhalHw_SetConfig(); for PHHAL_HW_CONFIG_RFON_INTERRUPT
  • Event Wait. - phhalHw_EventWait();
  • Set Config OFF for external Rf On. - Example - phhalHw_SetConfig(); for PHHAL_HW_CONFIG_RFON_INTERRUPT
  • Proceed further according to the Interrupt enabled.
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_IO_TIMEOUT | No Event generated
PH_ERR_ABORTED | Returned when this API exits after phhalHw_AsyncAbort API is called from another thread.
PH_ERR_INVALID_DATA_PARAMS | Parameter structure size is invalid.
PH_ERR_UNSUPPORTED_COMMAND | Command not supported.
PH_ERR_INVALID_PARAMETER | Invalid handle for events is provided.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | dwEventTimeout | Timeout for Event in milliseconds.

§ phhalHw_DeInit()

phStatus_t phhalHw_DeInit ( void * pDataParams )

De-initializes the contactless IC HAL.

Note: This API resets the HAL context data. The Tx and Rx buffers are made invalid The connection to BAL is made invalid All contactless IP interrupts are disabled. No other HAL APIs can be called after de-initializing the HAL till the phhalHw_<IC>_Init() function is called.

This API shall be called during the application termination sequence to de-initialize the HAL.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.


NXP NFC Reader Library: component : Rc663

Modules | Data Structures | Macros | Functions
component : Rc663
Hardware Abstraction Layer

RC663 Reader HAL. More...

Collaboration diagram for component : Rc663:

Modules

Commands
Supported ReaderIC commands.
Internal
Internal definitions.
Register Definitions
Register definitions.
Configuration
Custom configuration related to NFC IC Hardware settings.

Data Structures

struct phhalHw_Rc663_DataParams_t
Rc663 HAL parameter structure. More...

Macros

#define | PHHAL_HW_RC663_ID 0x01
ID for Rc663 HAL component. More...
#define | PHHAL_HW_RC663_DEFAULT_TIMEOUT 150U
Default timeout in microseconds. More...
#define | PHHAL_HW_RC663_SHADOW_COUNT 0x0010U
Number of shadowed configurations. More...

Functions

phStatus_t phhalHw_Rc663_Init (phhalHw_Rc663_DataParams_t *pDataParams, uint16_t wSizeOfDataParams, void *pBalDataParams, uint8_t *pLoadRegConfig, uint8_t *pTxBuffer, uint16_t wTxBufSize, uint8_t *pRxBuffer, uint16_t wRxBufSize)
Initialize the HAL component. More...

Custom configuration

#define | PHHAL_HW_RC663_CONFIG_FIFOSIZE (PH_CONFIG_CUSTOM_BEGIN)
Configure FIFO-Size. More...
#define | PHHAL_HW_RC663_CONFIG_LOADREG_MODE (PH_CONFIG_CUSTOM_BEGIN+1)
Enable (PH_ON) or disable (PH_OFF) LoadReg Mode. More...
#define | PHHAL_HW_RC663_CONFIG_WATERLEVEL (PH_CONFIG_CUSTOM_BEGIN+2)
Configure the Water Level.

FIFO configuration values

#define | PHHAL_HW_RC663_VALUE_FIFOSIZE_255 0x0000U
Configure FIFO-Size to 256 bytes.
#define | PHHAL_HW_RC663_VALUE_FIFOSIZE_512 0x0001U
Configure FIFO-Size to 512 bytes.

Detailed Description

RC663 Reader HAL.

Note: This HAL takes care the "Request Guard Time".

See also
phpalI14443p3a_RequestA
phpalI14443p3a_WakeUpA

Macro Definition Documentation

§ PHHAL_HW_RC663_ID

#define PHHAL_HW_RC663_ID 0x01

ID for Rc663 HAL component.

§ PHHAL_HW_RC663_DEFAULT_TIMEOUT

#define PHHAL_HW_RC663_DEFAULT_TIMEOUT 150U

Default timeout in microseconds.

§ PHHAL_HW_RC663_SHADOW_COUNT

#define PHHAL_HW_RC663_SHADOW_COUNT 0x0010U

Number of shadowed configurations.

§ PHHAL_HW_RC663_CONFIG_FIFOSIZE

#define PHHAL_HW_RC663_CONFIG_FIFOSIZE (PH_CONFIG_CUSTOM_BEGIN)

Configure FIFO-Size.

§ PHHAL_HW_RC663_CONFIG_LOADREG_MODE

#define PHHAL_HW_RC663_CONFIG_LOADREG_MODE (PH_CONFIG_CUSTOM_BEGIN+1)

Enable (PH_ON) or disable (PH_OFF) LoadReg Mode.

If this mode is enabled (it's disabled by default) then LoadReg is used
if an operation mode changes instead of applying library constants.
This is useful if custom antenna configuration values are required to be applied.
The parameters for LoadReg are taken from pLoadRegConfig which is an input parameter
of phhalHw_Rc663_Init. Refer there for a detailed description of pLoadRegConfig.

Function Documentation

§ phhalHw_Rc663_Init()

phStatus_t phhalHw_Rc663_Init | ( | phhalHw_Rc663_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams,
 |  | void * | pBalDataParams,
 |  | uint8_t * | pLoadRegConfig,
 |  | uint8_t * | pTxBuffer,
 |  | uint16_t | wTxBufSize,
 |  | uint8_t * | pRxBuffer,
 |  | uint16_t | wRxBufSize
 | ) |  |

Initialize the HAL component.

A note on pLoadRegConfig:
This is used if PHHAL_HW_RC663_CONFIG_LOADREG_MODE is enabled.
It is defined as follows:

[MSB] [LSB]
31...............16..................8.................0
+------------------+------------------+----------------+
| wEEAddress (16b) | bRegAddress (8b) | bNumBytes (8b) |
+------------------+------------------+----------------+
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wSizeOfDataParams | Specifies the size of the data parameter structure.
[in] | pBalDataParams | Pointer to the lower layers parameter structure.
[in] | pLoadRegConfig | Pointer to configuration buffer for LoadReg mode; See description above.
[in] | pTxBuffer | Pointer to global transmit buffer used by the phhalHw_Exchange() function.
[in] | wTxBufSize | Size of the global transmit buffer.
[in] | pRxBuffer | Pointer to global receive buffer used by the phhalHw_Exchange() function.
[in] | wRxBufSize | Size of the global receive buffer. Specify the buffer +1 byte, because one byte is reserved for SPI communication.


NXP NFC Reader Library: Commands

Functions
Commands
Hardware Abstraction Layer » component : Rc663

Supported ReaderIC commands. More...

Collaboration diagram for Commands:

Functions

phStatus_t | phhalHw_Rc663_Cmd_Lpcd (phhalHw_Rc663_DataParams_t *pDataParams)
Perform Low-Power-Card-Detection. More...
phStatus_t | phhalHw_Rc663_Cmd_Lpcd_GetConfig (phhalHw_Rc663_DataParams_t *pDataParams, uint8_t *pI, uint8_t *pQ)
Perform Low-Power-Card-Detection Configuration Procedure. More...
phStatus_t | phhalHw_Rc663_Cmd_Lpcd_SetConfig (phhalHw_Rc663_DataParams_t *pDataParams, uint8_t bMode, uint8_t bI, uint8_t bQ, uint16_t wPowerDownTimeMs, uint16_t wDetectionTimeUs)
Performs a SetConfig. More...
phStatus_t | phhalHw_Rc663_Cmd_LoadKey (phhalHw_Rc663_DataParams_t *pDataParams, uint8_t *pKey)
Load a MIFARE key into the key-buffer. More...
phStatus_t | phhalHw_Rc663_Cmd_AckReq (phhalHw_Rc663_DataParams_t *pDataParams, uint8_t *pCmdBuffer, uint16_t wLen, uint8_t *pRxBuffer, uint16_t *wRxBufferLen)
Performs a query, an Ack and a Req-Rn as per ISO 18000-3M3 protocol. More...
phStatus_t | phhalHw_Rc663_Cmd_WriteE2 (phhalHw_Rc663_DataParams_t *pDataParams, uint16_t wAddress, uint8_t bData)
Write one byte of data to a given EEPROM address. More...
phStatus_t | phhalHw_Rc663_Cmd_WriteE2Page (phhalHw_Rc663_DataParams_t *pDataParams, uint16_t wAddress, uint8_t *pData, uint8_t bDataLen)
Write a number of data bytes to a given EEPROM page. More...
phStatus_t | phhalHw_Rc663_Cmd_ReadE2 (phhalHw_Rc663_DataParams_t *pDataParams, uint16_t wAddress, uint16_t wNumBytes, uint8_t *pData)
Read one byte from a given EEPROM address. More...
phStatus_t | phhalHw_Rc663_Cmd_LoadReg (phhalHw_Rc663_DataParams_t *pDataParams, uint16_t wEEAddress, uint8_t bRegAddress, uint8_t bNumBytes)
Copies a defined number of bytes from the EEPROM into the register set, beginning at the given register address RegAdr. More...
phStatus_t | phhalHw_Rc663_Cmd_LoadProtocol (phhalHw_Rc663_DataParams_t *pDataParams, uint8_t bTxProtocol, uint8_t bRxProtocol)
Initializes protected registers for a dedicated protocol. More...
phStatus_t | phhalHw_Rc663_Cmd_LoadKeyE2 (phhalHw_Rc663_DataParams_t *pDataParams, uint8_t bKeyNo)
Load a MIFARE key from EEPROM into the key-buffer. More...
phStatus_t | phhalHw_Rc663_Cmd_StoreKeyE2 (phhalHw_Rc663_DataParams_t *pDataParams, uint8_t bKeyNo, uint8_t *pKeys, uint8_t bNumberOfKeys)
Write one or more MIFARE key(s) into EEPROM. More...
phStatus_t | phhalHw_Rc663_Cmd_SoftReset (phhalHw_Rc663_DataParams_t *pDataParams)
Performs a Soft reset. More...

Low-Power-Card-Detection Modes

#define | PHHAL_HW_RC663_CMD_LPCD_MODE_DEFAULT 0x00U
Default mode. More...
#define | PHHAL_HW_RC663_CMD_LPCD_MODE_POWERDOWN 0x01U
Powers down the IC for a certain amount of time and performs LPC after wakeup. More...
#define | PHHAL_HW_RC663_CMD_LPCD_MODE_POWERDOWN_GUARDED 0x02U
Same as PHHAL_HW_RC663_CMD_LPCD_MODE_POWERDOWN, but uses the timeout set with either PHHAL_HW_CONFIG_TIMING_US or PHHAL_HW_CONFIG_TIMING_MS as abort criteria. More...
#define | PHHAL_HW_RC663_CMD_LPCD_MODE_OPTION_TRIMM_LPO 0x80U
Or this bit to the desired mode to perform LPO trimming together with the command.
#define | PHHAL_HW_RC663_CMD_LPCD_MODE_OPTION_IGNORE_IQ 0x40U
Or this bit to the desired mode to prevent the function to set I and Q channel values.
#define | PHHAL_HW_RC663_CMD_LPCD_MODE_OPTION_MASK 0xF0U
Mask for option bits within Mode byte.

Detailed Description

Supported ReaderIC commands.

Macro Definition Documentation

§ PHHAL_HW_RC663_CMD_LPCD_MODE_DEFAULT

#define PHHAL_HW_RC663_CMD_LPCD_MODE_DEFAULT 0x00U

Default mode.

Try LPCD until timeout is reached.

§ PHHAL_HW_RC663_CMD_LPCD_MODE_POWERDOWN

#define PHHAL_HW_RC663_CMD_LPCD_MODE_POWERDOWN 0x01U

Powers down the IC for a certain amount of time and performs LPC after wakeup.

If no card is found the IC is powered down again and the procedure is restarted. If a card is found the function returns and the IC remains powered up.

§ PHHAL_HW_RC663_CMD_LPCD_MODE_POWERDOWN_GUARDED

#define PHHAL_HW_RC663_CMD_LPCD_MODE_POWERDOWN_GUARDED 0x02U

Same as PHHAL_HW_RC663_CMD_LPCD_MODE_POWERDOWN, but uses the timeout set with either PHHAL_HW_CONFIG_TIMING_US or PHHAL_HW_CONFIG_TIMING_MS as abort criteria.

Be advised that the guard-timer in this case is only running during the power-up phases, so the timeout has to be adjusted properly.

Function Documentation

§ phhalHw_Rc663_Cmd_Lpcd()

phStatus_t phhalHw_Rc663_Cmd_Lpcd ( phhalHw_Rc663_DataParams_t * pDataParams )

Perform Low-Power-Card-Detection.

In default-mode the bPowerDownTimeMs and bDetectionTimeUs parameters are not used.
The timeout set with PHHAL_HW_CONFIG_TIMEOUT_VALUE_US or PHHAL_HW_CONFIG_TIMEOUT_VALUE_MS is always used as stop-condition.

Returns
Status code
Return values
PH_ERR_SUCCESS | Card present.
PH_ERR_IO_TIMEOUT | No card found.
Other | Depending on implementation and underlying component.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phhalHw_Rc663_Cmd_Lpcd_GetConfig()

phStatus_t phhalHw_Rc663_Cmd_Lpcd_GetConfig | ( | phhalHw_Rc663_DataParams_t * | pDataParams,
 |  | uint8_t * | pI,
 |  | uint8_t * | pQ
 | ) |  |

Perform Low-Power-Card-Detection Configuration Procedure.

Returns the I and Q channel values for the current antenna status. This is inteded to be used to retrieve the I and Q channel values in case of no card on antenna. The values can directly be used as parameters for the phhalHw_Rc663_Cmd_Lpcd function.

Returns
Status code
Return values
PH_ERR_SUCCESS | Trimming successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[out] | pI | I-Channel value in case of no card on antenna.
[out] | pQ | Q-Channel value in case of no card on antenna.

§ phhalHw_Rc663_Cmd_Lpcd_SetConfig()

phStatus_t phhalHw_Rc663_Cmd_Lpcd_SetConfig | ( | phhalHw_Rc663_DataParams_t * | pDataParams,
 |  | uint8_t | bMode,
 |  | uint8_t | bI,
 |  | uint8_t | bQ,
 |  | uint16_t | wPowerDownTimeMs,
 |  | uint16_t | wDetectionTimeUs
 | ) |  |

Performs a SetConfig.

Sets the bMode,I, Q, wPowerDownTimeMs, and wDetectionTimeUs channel values for the current antenna status. This is intended to be used to set the input parameters for LPCD.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bMode | One of the above LPCD modes.
[in] | bI | I-Channel value in case of no card on antenna.
[in] | bQ | Q-Channel value in case of no card on antenna.
[in] | wPowerDownTimeMs | Power-Down time in milliseconds if power-down mode is used.
[in] | wDetectionTimeUs | Detection time in microseconds if power-down mode is used.

§ phhalHw_Rc663_Cmd_LoadKey()

phStatus_t phhalHw_Rc663_Cmd_LoadKey | ( | phhalHw_Rc663_DataParams_t * | pDataParams,
 |  | uint8_t * | pKey
 | ) |  |

Load a MIFARE key into the key-buffer.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pKey | 6 byte MIFARE key.

§ phhalHw_Rc663_Cmd_AckReq()

phStatus_t phhalHw_Rc663_Cmd_AckReq | ( | phhalHw_Rc663_DataParams_t * | pDataParams,
 |  | uint8_t * | pCmdBuffer,
 |  | uint16_t | wLen,
 |  | uint8_t * | pRxBuffer,
 |  | uint16_t * | wRxBufferLen
 | ) |  |

Performs a query, an Ack and a Req-Rn as per ISO 18000-3M3 protocol.

The complete query (BeginRound) shall be provided as an input in the pCmdBuffer. Refer ISO/IEC FDIS 18000-3:2010(E) section 6.3.3.4.11.2.1 for format of BeginRound command. phpalI18000p3m3_CreateBeginRoundCmd can also be used for creating the BeginRound command. The content of pCmdBuffer is not validated in this API.

All answers to the command are returned back in pRxBuffer.

This implements AckReq command of RC663. See phhalHw_I18000p3m3Inventory for an alternative API designed to facilitate detection of ISO 18000-3M3 tags with more flexibility.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pCmdBuffer | Pointer to query command buffer.
[in] | wLen | Length of the pCmdBuffer.
[out] | pRxBuffer | Pointer to receive output of CmdAckReq.
[out] | wRxBufferLen | Length of the Data read.

§ phhalHw_Rc663_Cmd_WriteE2()

phStatus_t phhalHw_Rc663_Cmd_WriteE2 | ( | phhalHw_Rc663_DataParams_t * | pDataParams,
 |  | uint16_t | wAddress,
 |  | uint8_t | bData
 | ) |  |

Write one byte of data to a given EEPROM address.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wAddress | 2 byte Address; Range is 0x0000 - 0x1FFF.
[in] | bData | Data byte to write.

§ phhalHw_Rc663_Cmd_WriteE2Page()

phStatus_t phhalHw_Rc663_Cmd_WriteE2Page | ( | phhalHw_Rc663_DataParams_t * | pDataParams,
 |  | uint16_t | wAddress,
 |  | uint8_t * | pData,
 |  | uint8_t | bDataLen
 | ) |  |

Write a number of data bytes to a given EEPROM page.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wAddress | 2 byte Address; Range is 0x0000 - 0x007F.
[in] | pData | Pointer to data byte array.
[in] | bDataLen | Number of data bytes to write; Range is 1 - 64.

§ phhalHw_Rc663_Cmd_ReadE2()

phStatus_t phhalHw_Rc663_Cmd_ReadE2 | ( | phhalHw_Rc663_DataParams_t * | pDataParams,
 |  | uint16_t | wAddress,
 |  | uint16_t | wNumBytes,
 |  | uint8_t * | pData
 | ) |  |

Read one byte from a given EEPROM address.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wAddress | 2 byte Address; Range is 0x0000 - 0x1FFF.
[in] | wNumBytes | Number of data bytes to read; Range is 0(256) - 256.
[out] | pData | Requested data bytes.

§ phhalHw_Rc663_Cmd_LoadReg()

phStatus_t phhalHw_Rc663_Cmd_LoadReg | ( | phhalHw_Rc663_DataParams_t * | pDataParams,
 |  | uint16_t | wEEAddress,
 |  | uint8_t | bRegAddress,
 |  | uint8_t | bNumBytes
 | ) |  |

Copies a defined number of bytes from the EEPROM into the register set, beginning at the given register address RegAdr.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wEEAddress | 2 byte EEPROM Address; Range is 0x00C0 - 0x17FF.
[in] | bRegAddress | Register Address; Range is 0x00 - 0xFF.
[in] | bNumBytes | Number of bytes to copy; Range is 1 - 255.

§ phhalHw_Rc663_Cmd_LoadProtocol()

phStatus_t phhalHw_Rc663_Cmd_LoadProtocol | ( | phhalHw_Rc663_DataParams_t * | pDataParams,
 |  | uint8_t | bTxProtocol,
 |  | uint8_t | bRxProtocol
 | ) |  |

Initializes protected registers for a dedicated protocol.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bTxProtocol | Tx-Protocol (see PHHAL_HW_RC663_RXTX_* defines).
[in] | bRxProtocol | Rx-Protocol (see PHHAL_HW_RC663_RXTX_* defines).

§ phhalHw_Rc663_Cmd_LoadKeyE2()

phStatus_t phhalHw_Rc663_Cmd_LoadKeyE2 | ( | phhalHw_Rc663_DataParams_t * | pDataParams,
 |  | uint8_t | bKeyNo
 | ) |  |

Load a MIFARE key from EEPROM into the key-buffer.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bKeyNo | Key number in EEPROM; Range is 0x00 - 0xFF.

§ phhalHw_Rc663_Cmd_StoreKeyE2()

phStatus_t phhalHw_Rc663_Cmd_StoreKeyE2 | ( | phhalHw_Rc663_DataParams_t * | pDataParams,
 |  | uint8_t | bKeyNo,
 |  | uint8_t * | pKeys,
 |  | uint8_t | bNumberOfKeys
 | ) |  |

Write one or more MIFARE key(s) into EEPROM.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bKeyNo | Key number in EEPROM; Range is 0x00 - 0xFF.
[in] | pKeys | Pointer to MIFARE key array.
[in] | bNumberOfKeys | Number of keys to write.

§ phhalHw_Rc663_Cmd_SoftReset()

phStatus_t phhalHw_Rc663_Cmd_SoftReset ( phhalHw_Rc663_DataParams_t * pDataParams )

Performs a Soft reset.

Note: It is up to the caller to wait until the IC is powered-up and ready again.
In addition to that, the caller should call phhalHw_ApplyProtocolSettings again to re-configure the IC.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.


NXP NFC Reader Library: Internal

Macros | Functions
Internal
Hardware Abstraction Layer » component : Rc663

Internal definitions. More...

Collaboration diagram for Internal:

Macros

#define | PHHAL_HW_RC663_I18000P3M3_M_MANCHESTER_2 0x02U
ISO 18000p3m3 Sub-carrier type.
#define | PHHAL_HW_RC663_I18000P3M3_SW_T1_MAX_US 78U
ISO 18000p3m3 Timeout constants.
#define | PHHAL_HW_RC663_I18000P3M3_CMD_NEXT_SLOT 0x00
ISO 18000p3m3 Command Codes.

Functions

phStatus_t | phhalHw_Rc663_WriteFifo (phhalHw_Rc663_DataParams_t *pDataParams, uint8_t *pData, uint16_t wLength, uint16_t *pBytesWritten)
Validate the FIFO Buffer space in Rc663 and perform phhalHw_Rc663_WriteData. More...
phStatus_t | phhalHw_Rc663_ReadFifo (phhalHw_Rc663_DataParams_t *pDataParams, uint16_t wDataSize, uint8_t *pData, uint16_t *pLength)
Read Data from Fifo buffer. More...
phStatus_t | phhalHw_Rc663_FlushFifo (phhalHw_Rc663_DataParams_t *pDataParams)
Clear Fifo buffer. More...
phStatus_t | phhalHw_Rc663_WriteData (phhalHw_Rc663_DataParams_t *pDataParams, uint8_t bAddress, uint8_t *pData, uint16_t wLength)
Perform actual Write to Rc663 FIFO with the data passed. More...
phStatus_t | phhalHw_Rc663_ReadData (phhalHw_Rc663_DataParams_t *pDataParams, uint8_t bAddress, uint16_t wLength, uint8_t *pData)
Perform actual read from Rc663 FIFO for the address passed. More...
phStatus_t | phhalHw_Rc663_SetCardMode (phhalHw_Rc663_DataParams_t *pDataParams, uint16_t wTxDataRate, uint16_t wRxDataRate, uint16_t wSubcarrier)
Apply card mode register settings (Tx and Rx Data Rate) according to given parameters. More...
phStatus_t | phhalHw_Rc663_SetConfig_Int (phhalHw_Rc663_DataParams_t *pDataParams, uint16_t wConfig, uint16_t wValue)
Set configuration parameter (Internal). More...
phStatus_t | phhalHw_Rc663_SetRxWait (phhalHw_Rc663_DataParams_t *pDataParams, uint16_t wTimeEtu)
Sets the RxWait time. More...
phStatus_t | phhalHw_Rc663_SetTxWait (phhalHw_Rc663_DataParams_t *pDataParams, uint16_t wTimeUs)
Sets the TxWait time in microseconds. More...
phStatus_t | phhalHw_Rc663_SetFdt (phhalHw_Rc663_DataParams_t *pDataParams, uint8_t bUnit, uint16_t wTimeout)
Sets the Frame Delay Time (Timeout). More...
phStatus_t | phhalHw_Rc663_GetFdt (phhalHw_Rc663_DataParams_t *pDataParams, phStatus_t wExchangeStatus, uint32_t *pTime)
Retrieves the Frame Delay Time of the last command. More...
phStatus_t | phhalHw_Rc663_GetDigiDelay (phhalHw_Rc663_DataParams_t *pDataParams, uint8_t bIsTimeout, uint16_t *pDelayUs)
Returns the delay of the digital circuitry for the current protocol. More...
phStatus_t | phhalHw_Rc663_GetTxBuffer (phhalHw_Rc663_DataParams_t *pDataParams, uint8_t bIsExchange, uint8_t **pTxBuffer, uint16_t *pTxBufferLen, uint16_t *pTxBufferSize)
Returns the TxBuffer pointer, length and size. More...
phStatus_t | phhalHw_Rc663_GetRxBuffer (phhalHw_Rc663_DataParams_t *pDataParams, uint8_t bIsExchange, uint8_t **pRxBuffer, uint16_t *pRxBufferLen, uint16_t *pRxBufferSize)
Returns the RxBuffer pointer, length and size. More...
phStatus_t | phhalHw_Rc663_MfcAuthenticate_Int (phhalHw_Rc663_DataParams_t *pDataParams, uint8_t bBlockNo, uint8_t bKeyType, uint8_t *pUid)
Build and Execute MIFARE(R) Classic Authentication command. More...
phStatus_t | phhalHw_Rc663_Command_Int (phhalHw_Rc663_DataParams_t *pDataParams, uint8_t bCmd, uint16_t wOption, uint8_t bIrq0WaitFor, uint8_t bIrq1WaitFor, uint8_t *pTxBuffer, uint16_t wTxLength, uint16_t wRxBufferSize, uint8_t *pRxBuffer, uint16_t *pRxLength)
Execute a Reader-specific command. More...
phStatus_t | phhalHw_Rc663_WaitIrq (phhalHw_Rc663_DataParams_t *pDataParams, uint8_t bEnableIrqs, uint8_t bWaitUntilPowerUp, uint8_t bIrq0WaitFor, uint8_t bIrq1WaitFor, uint8_t *pIrq0Reg, uint8_t *pIrq1Reg)
Wait until one of the given interrupts occurs. More...
phStatus_t | phhalHw_Rc663_EPCV2_Init (phhalHw_Rc663_DataParams_t *pDataParams)
Initialize Rc663 registers for 18000p3m3 protocol. More...
phStatus_t | phhalHw_Rc663_GetErrorStatus (phhalHw_Rc663_DataParams_t *pDataParams, uint16_t *wBufferLen, uint16_t *wBufferSize)
Read different errors present. More...
phStatus_t | phhalHw_Rc663_GetMultiReg (phhalHw_Rc663_DataParams_t *pDataParams, uint8_t *pData)
Function will read Multiple Registers and return of data read from multiple registers. More...
phStatus_t | phhalHw_Rc663_ReStartRx (phhalHw_Rc663_DataParams_t *pDataParams)
Specific for EMVCo. More...
phStatus_t | phhalHw_Rc663_CheckForEmdError (phhalHw_Rc663_DataParams_t *pDataParams, uint8_t bIrq0WaitFor, uint8_t bIrq1WaitFor, uint32_t *pdwMultiReg, uint32_t *pdwPrevReg)
Function is used to detect and Suppress EMVCo EMD Noise during reception. More...
void | phhalHw_Rc663_CreateRespFrame (uint8_t *bInBuff, uint8_t bDataPos, uint8_t *bOutBuff)
This function will return the answer to ReqC in 32 byte multi slot frame format. More...
phStatus_t | phhalHw_Rc663_FrameRxMultiplePkt (phhalHw_Rc663_DataParams_t *pDataParams)
Form packet which contains a series of ReqC responses(if multiple response received) in multi-slot response format and update Hal Rx buffer. More...

Timing related constants

#define | PHHAL_HW_RC663_TIMER_RELOAD_MAX 0xFFFFU
Maximum reload value of internal timers. More...
#define | PHHAL_HW_RC663_TIMER0_FREQ 13.56f
Internal timer frequency of Timer0. More...
#define | PHHAL_HW_RC663_ETU_I14443 9.44f
Duration of one ETU for ISO14443 at 106 kBit/s in [us]. More...
#define | PHHAL_HW_RC663_ETU_212 4.7f
Duration of one ETU at 212 kBit/s in [us]. More...
#define | PHHAL_HW_RC663_ETU_424 2.4f
Duration of one ETU at 424 kBit/s in [us]. More...
#define | PHHAL_HW_RC663_ETU_848 1.2f
Duration of one ETU at 848 kBit/s in [us]. More...
#define | PHHAL_HW_RC663_ETU_I15693_HIGH 18.88f
Duration of one ETU for ISO15693 in [us]. More...
#define | PHHAL_HW_RC663_ETU_I15693 37.76f
Duration of one ETU for ISO15693 in [us]. More...
#define | PHHAL_HW_RC663_ETU_EPCUID 37.76f
Duration of one ETU for EPC/UID in [us]. More...
#define | PHHAL_HW_RC663_ETU_I18000 9.44f
Duration of one ETU for 18000p3m3 in [us]. More...
#define | PHHAL_HW_RC663_I14443_ADD_DELAY_US 15
Additional digital timeout delay for ISO14443. More...
#define | PHHAL_HW_RC663_I15693_ADD_DELAY_US 120
Additional digital timeout delay for ISO15693. More...
#define | PHHAL_HW_RC663_DIGI_DELAY_TXWAIT_DBFREQ 8U
Chip digital delay in ETUs for TxWait. More...
#define | PHHAL_HW_RC663_I18000P3M3_CRC_TYPE_PRESET 0x7AU
CRC type and preset register value for I18000p3m3. More...
#define | PHHAL_HW_RC663_RXTX_TIMER_START 0x0010U
Start timer manually. More...

Memory related constants

#define | PHHAL_HW_RC663_MAX_NUM_REGS 0x80U
Maximum number of registers. More...
#define | PHHAL_HW_RC663_MAX_NUM_KEYS 0x100U
Maximum possible number of keys in the EEPROM. More...
#define | PHHAL_HW_RC663_MAX_TX_SETTINGS 32U
Maximum possible number of Tx-Settings in the EEPROM. More...
#define | PHHAL_HW_RC663_MAX_RX_SETTINGS 64U
Maximum possible number of Rx-Settings in the EEPROM. More...
#define | PHHAL_HW_RC663_EEPROM_SIZE 0x2000U
Size of the EEPROM. More...
#define | PHHAL_HW_RC663_EEPROM_SECTION2_BEGIN 0xC0U
Beginning of Section2 in the EEPROM. More...
#define | PHHAL_HW_RC663_EEPROM_SECTION2_END 0x17FFU
End of Section2 in the EEPROM. More...
#define | PHHAL_HW_RC663_EEPROM_NUM_PAGES 0x80U
Number of pages within EEPROM. More...
#define | PHHAL_HW_RC663_EEPROM_PAGE_SIZE 0x40U
Size of a page in EEPROM. More...

RXTX settings for #PHHAL_HW_RC663_CMD_LOADPROTOCOL

#define | PHHAL_HW_RC663_RXTX_I14443A_106 0x00U
ISO14443A Operating mode at 106kbit/s. More...
#define | PHHAL_HW_RC663_RXTX_I14443A_212 0x01U
ISO14443A Operating mode at 212kbit/s. More...
#define | PHHAL_HW_RC663_RXTX_I14443A_424 0x02U
ISO14443A Operating mode at 414kbit/s. More...
#define | PHHAL_HW_RC663_RXTX_I14443A_848 0x03U
ISO14443A Operating mode at 848kbit/s. More...
#define | PHHAL_HW_RC663_RXTX_I14443B_106 0x04U
ISO14443B Operating mode at 106kbit/s. More...
#define | PHHAL_HW_RC663_RXTX_I14443B_212 0x05U
ISO14443B Operating mode at 212kbit/s. More...
#define | PHHAL_HW_RC663_RXTX_I14443B_424 0x06U
ISO14443B Operating mode at 414kbit/s. More...
#define | PHHAL_HW_RC663_RXTX_I14443B_848 0x07U
ISO14443B Operating mode at 848kbit/s. More...
#define | PHHAL_HW_RC663_RXTX_FELICA_212 0x08U
FeliCa Operating mode at 212kbit/s. More...
#define | PHHAL_HW_RC663_RXTX_FELICA_424 0x09U
FeliCa Operating mode at 424kbit/s. More...
#define | PHHAL_HW_RC663_RXTX_I15693_1OO4 0x0AU
ISO15693 One-Out-Of-Four Operating mode. More...
#define | PHHAL_HW_RC663_RXTX_I15693_1OO256 0x0CU
ISO15693 One-Out-Of-256 Operating mode. More...
#define | PHHAL_HW_RC663_RXTX_I15693_HIGH_SSC 0x0AU
ISO15693 High-Speed (RX) Operating mode (Single Subcarrier). More...
#define | PHHAL_HW_RC663_RXTX_I15693_FAST 0x0BU
ISO15693 Fast-Speed (RX) Operating mode (Single Subcarrier). More...
#define | PHHAL_HW_RC663_RXTX_I15693_HIGH_DSC 0x0CU
ISO15693 High-Speed (RX) Operating mode (Dual Subcarrier). More...
#define | PHHAL_HW_RC663_RXTX_EPC_UID 0x0DU
ICode EPC/UID. More...
#define | PHHAL_HW_RC663_RXTX_I18000P3M3_DS_M2 0x0EU
ICode ISO18000-3 Mode3 424 kBit/s (M=2). More...
#define | PHHAL_HW_RC663_RXTX_I18000P3M3_DS_M4 0x0FU
ICode ISO18000-3 Mode3 424 kBit/s (M=4). More...
#define | PHHAL_HW_RC663_RXTX_I18000P3M3_QS_M2 0x10U
ICode ISO18000-3 Mode3 848 kBit/s (M=2). More...
#define | PHHAL_HW_RC663_RXTX_I18000P3M3_QS_M4 0x11U
ICode ISO18000-3 Mode3 848 kBit/s (M=4). More...

RS232 speed settings

#define | PHHAL_HW_RC663_SERIALSPEED_7200 0xFAU
7.200 kBit/s. More...
#define | PHHAL_HW_RC663_SERIALSPEED_9600 0xEBU
9.600 kBit/s. More...
#define | PHHAL_HW_RC663_SERIALSPEED_14400 0xDAU
14.400 kBit/s. More...
#define | PHHAL_HW_RC663_SERIALSPEED_19200 0xCBU
19.200 kBit/s. More...
#define | PHHAL_HW_RC663_SERIALSPEED_38400 0xABU
38.400 kBit/s. More...
#define | PHHAL_HW_RC663_SERIALSPEED_57600 0x9AU
57.500 kBit/s. More...
#define | PHHAL_HW_RC663_SERIALSPEED_115200 0x7AU
115.200 kBit/s. More...
#define | PHHAL_HW_RC663_SERIALSPEED_128000 0x74U
128.000 kBit/s. More...
#define | PHHAL_HW_RC663_SERIALSPEED_230400 0x5AU
230.400 kBit/s. More...
#define | PHHAL_HW_RC663_SERIALSPEED_460800 0x3AU
460.800 kBit/s. More...
#define | PHHAL_HW_RC663_SERIALSPEED_921600 0x1CU
921.600 kBit/s. More...
#define | PHHAL_HW_RC663_SERIALSPEED_1228800 0x15U
1.228.800 kBit/s. More...

MIFARE(R) Classic stuff

#define | PHHAL_HW_RC663_MFC_AUTHA_CMD 0x60U
MIFARE(R) Classic AUTHA command code. More...
#define | PHHAL_HW_RC663_MFC_AUTHB_CMD 0x61U
MIFARE(R) Classic AUTHB command code. More...
#define | PHHAL_HW_RC663_MFC_KEY_LENGTH 0x06U
Lengh of a MIFARE(R) Classic key. More...

Custom command option

#define PHHAL_HW_RC663_OPTION_FIFO_NOCLEAR 0x0080U
Do not clear FIFO prior to command execution. More...

RC663 Derivatives IC ID

#define | PHHAL_HW_CLRC663_PRODUCT_ID1 0x0100U
Product ID for CLRC663. More...
#define | PHHAL_HW_CLRC663_PRODUCT_ID2 0x0140U
Product ID for CLRC663. More...
#define | PHHAL_HW_MFRC631_PRODUCT_ID 0xC000U
Product ID for MFRC632. More...
#define | PHHAL_HW_MFRC630_PRODUCT_ID 0x8000U
Product ID for MFRC630. More...
#define | PHHAL_HW_SLRC610_PRODUCT_ID 0x2000U
Product ID for SLRC610. More...

Detailed Description

Internal definitions.

Macro Definition Documentation

§ PHHAL_HW_RC663_TIMER_RELOAD_MAX

#define PHHAL_HW_RC663_TIMER_RELOAD_MAX 0xFFFFU

Maximum reload value of internal timers.

§ PHHAL_HW_RC663_TIMER0_FREQ

#define PHHAL_HW_RC663_TIMER0_FREQ 13.56f

Internal timer frequency of Timer0.

§ PHHAL_HW_RC663_ETU_I14443

#define PHHAL_HW_RC663_ETU_I14443 9.44f

Duration of one ETU for ISO14443 at 106 kBit/s in [us].

§ PHHAL_HW_RC663_ETU_212

#define PHHAL_HW_RC663_ETU_212 4.7f

Duration of one ETU at 212 kBit/s in [us].

§ PHHAL_HW_RC663_ETU_424

#define PHHAL_HW_RC663_ETU_424 2.4f

Duration of one ETU at 424 kBit/s in [us].

§ PHHAL_HW_RC663_ETU_848

#define PHHAL_HW_RC663_ETU_848 1.2f

Duration of one ETU at 848 kBit/s in [us].

§ PHHAL_HW_RC663_ETU_I15693_HIGH

#define PHHAL_HW_RC663_ETU_I15693_HIGH 18.88f

Duration of one ETU for ISO15693 in [us].

§ PHHAL_HW_RC663_ETU_I15693

#define PHHAL_HW_RC663_ETU_I15693 37.76f

Duration of one ETU for ISO15693 in [us].

§ PHHAL_HW_RC663_ETU_EPCUID

#define PHHAL_HW_RC663_ETU_EPCUID 37.76f

Duration of one ETU for EPC/UID in [us].

§ PHHAL_HW_RC663_ETU_I18000

#define PHHAL_HW_RC663_ETU_I18000 9.44f

Duration of one ETU for 18000p3m3 in [us].

§ PHHAL_HW_RC663_I14443_ADD_DELAY_US

#define PHHAL_HW_RC663_I14443_ADD_DELAY_US 15

Additional digital timeout delay for ISO14443.

§ PHHAL_HW_RC663_I15693_ADD_DELAY_US

#define PHHAL_HW_RC663_I15693_ADD_DELAY_US 120

Additional digital timeout delay for ISO15693.

§ PHHAL_HW_RC663_DIGI_DELAY_TXWAIT_DBFREQ

#define PHHAL_HW_RC663_DIGI_DELAY_TXWAIT_DBFREQ 8U

Chip digital delay in ETUs for TxWait.

§ PHHAL_HW_RC663_I18000P3M3_CRC_TYPE_PRESET

#define PHHAL_HW_RC663_I18000P3M3_CRC_TYPE_PRESET 0x7AU

CRC type and preset register value for I18000p3m3.

§ PHHAL_HW_RC663_RXTX_TIMER_START

#define PHHAL_HW_RC663_RXTX_TIMER_START 0x0010U

Start timer manually.

§ PHHAL_HW_RC663_MAX_NUM_REGS

#define PHHAL_HW_RC663_MAX_NUM_REGS 0x80U

Maximum number of registers.

§ PHHAL_HW_RC663_MAX_NUM_KEYS

#define PHHAL_HW_RC663_MAX_NUM_KEYS 0x100U

Maximum possible number of keys in the EEPROM.

§ PHHAL_HW_RC663_MAX_TX_SETTINGS

#define PHHAL_HW_RC663_MAX_TX_SETTINGS 32U

Maximum possible number of Tx-Settings in the EEPROM.

§ PHHAL_HW_RC663_MAX_RX_SETTINGS

#define PHHAL_HW_RC663_MAX_RX_SETTINGS 64U

Maximum possible number of Rx-Settings in the EEPROM.

§ PHHAL_HW_RC663_EEPROM_SIZE

#define PHHAL_HW_RC663_EEPROM_SIZE 0x2000U

Size of the EEPROM.

§ PHHAL_HW_RC663_EEPROM_SECTION2_BEGIN

#define PHHAL_HW_RC663_EEPROM_SECTION2_BEGIN 0xC0U

Beginning of Section2 in the EEPROM.

§ PHHAL_HW_RC663_EEPROM_SECTION2_END

#define PHHAL_HW_RC663_EEPROM_SECTION2_END 0x17FFU

End of Section2 in the EEPROM.

§ PHHAL_HW_RC663_EEPROM_NUM_PAGES

#define PHHAL_HW_RC663_EEPROM_NUM_PAGES 0x80U

Number of pages within EEPROM.

§ PHHAL_HW_RC663_EEPROM_PAGE_SIZE

#define PHHAL_HW_RC663_EEPROM_PAGE_SIZE 0x40U

Size of a page in EEPROM.

§ PHHAL_HW_RC663_RXTX_I14443A_106

#define PHHAL_HW_RC663_RXTX_I14443A_106 0x00U

ISO14443A Operating mode at 106kbit/s.

§ PHHAL_HW_RC663_RXTX_I14443A_212

#define PHHAL_HW_RC663_RXTX_I14443A_212 0x01U

ISO14443A Operating mode at 212kbit/s.

§ PHHAL_HW_RC663_RXTX_I14443A_424

#define PHHAL_HW_RC663_RXTX_I14443A_424 0x02U

ISO14443A Operating mode at 414kbit/s.

§ PHHAL_HW_RC663_RXTX_I14443A_848

#define PHHAL_HW_RC663_RXTX_I14443A_848 0x03U

ISO14443A Operating mode at 848kbit/s.

§ PHHAL_HW_RC663_RXTX_I14443B_106

#define PHHAL_HW_RC663_RXTX_I14443B_106 0x04U

ISO14443B Operating mode at 106kbit/s.

§ PHHAL_HW_RC663_RXTX_I14443B_212

#define PHHAL_HW_RC663_RXTX_I14443B_212 0x05U

ISO14443B Operating mode at 212kbit/s.

§ PHHAL_HW_RC663_RXTX_I14443B_424

#define PHHAL_HW_RC663_RXTX_I14443B_424 0x06U

ISO14443B Operating mode at 414kbit/s.

§ PHHAL_HW_RC663_RXTX_I14443B_848

#define PHHAL_HW_RC663_RXTX_I14443B_848 0x07U

ISO14443B Operating mode at 848kbit/s.

§ PHHAL_HW_RC663_RXTX_FELICA_212

#define PHHAL_HW_RC663_RXTX_FELICA_212 0x08U

FeliCa Operating mode at 212kbit/s.

§ PHHAL_HW_RC663_RXTX_FELICA_424

#define PHHAL_HW_RC663_RXTX_FELICA_424 0x09U

FeliCa Operating mode at 424kbit/s.

§ PHHAL_HW_RC663_RXTX_I15693_1OO4

#define PHHAL_HW_RC663_RXTX_I15693_1OO4 0x0AU

ISO15693 One-Out-Of-Four Operating mode.

§ PHHAL_HW_RC663_RXTX_I15693_1OO256

#define PHHAL_HW_RC663_RXTX_I15693_1OO256 0x0CU

ISO15693 One-Out-Of-256 Operating mode.

§ PHHAL_HW_RC663_RXTX_I15693_HIGH_SSC

#define PHHAL_HW_RC663_RXTX_I15693_HIGH_SSC 0x0AU

ISO15693 High-Speed (RX) Operating mode (Single Subcarrier).

§ PHHAL_HW_RC663_RXTX_I15693_FAST

#define PHHAL_HW_RC663_RXTX_I15693_FAST 0x0BU

ISO15693 Fast-Speed (RX) Operating mode (Single Subcarrier).

§ PHHAL_HW_RC663_RXTX_I15693_HIGH_DSC

#define PHHAL_HW_RC663_RXTX_I15693_HIGH_DSC 0x0CU

ISO15693 High-Speed (RX) Operating mode (Dual Subcarrier).

§ PHHAL_HW_RC663_RXTX_EPC_UID

#define PHHAL_HW_RC663_RXTX_EPC_UID 0x0DU

ICode EPC/UID.

§ PHHAL_HW_RC663_RXTX_I18000P3M3_DS_M2

#define PHHAL_HW_RC663_RXTX_I18000P3M3_DS_M2 0x0EU

ICode ISO18000-3 Mode3 424 kBit/s (M=2).

§ PHHAL_HW_RC663_RXTX_I18000P3M3_DS_M4

#define PHHAL_HW_RC663_RXTX_I18000P3M3_DS_M4 0x0FU

ICode ISO18000-3 Mode3 424 kBit/s (M=4).

§ PHHAL_HW_RC663_RXTX_I18000P3M3_QS_M2

#define PHHAL_HW_RC663_RXTX_I18000P3M3_QS_M2 0x10U

ICode ISO18000-3 Mode3 848 kBit/s (M=2).

§ PHHAL_HW_RC663_RXTX_I18000P3M3_QS_M4

#define PHHAL_HW_RC663_RXTX_I18000P3M3_QS_M4 0x11U

ICode ISO18000-3 Mode3 848 kBit/s (M=4).

§ PHHAL_HW_RC663_SERIALSPEED_7200

#define PHHAL_HW_RC663_SERIALSPEED_7200 0xFAU

7.200 kBit/s.

§ PHHAL_HW_RC663_SERIALSPEED_9600

#define PHHAL_HW_RC663_SERIALSPEED_9600 0xEBU

9.600 kBit/s.

§ PHHAL_HW_RC663_SERIALSPEED_14400

#define PHHAL_HW_RC663_SERIALSPEED_14400 0xDAU

14.400 kBit/s.

§ PHHAL_HW_RC663_SERIALSPEED_19200

#define PHHAL_HW_RC663_SERIALSPEED_19200 0xCBU

19.200 kBit/s.

§ PHHAL_HW_RC663_SERIALSPEED_38400

#define PHHAL_HW_RC663_SERIALSPEED_38400 0xABU

38.400 kBit/s.

§ PHHAL_HW_RC663_SERIALSPEED_57600

#define PHHAL_HW_RC663_SERIALSPEED_57600 0x9AU

57.500 kBit/s.

§ PHHAL_HW_RC663_SERIALSPEED_115200

#define PHHAL_HW_RC663_SERIALSPEED_115200 0x7AU

115.200 kBit/s.

§ PHHAL_HW_RC663_SERIALSPEED_128000

#define PHHAL_HW_RC663_SERIALSPEED_128000 0x74U

128.000 kBit/s.

§ PHHAL_HW_RC663_SERIALSPEED_230400

#define PHHAL_HW_RC663_SERIALSPEED_230400 0x5AU

230.400 kBit/s.

§ PHHAL_HW_RC663_SERIALSPEED_460800

#define PHHAL_HW_RC663_SERIALSPEED_460800 0x3AU

460.800 kBit/s.

§ PHHAL_HW_RC663_SERIALSPEED_921600

#define PHHAL_HW_RC663_SERIALSPEED_921600 0x1CU

921.600 kBit/s.

§ PHHAL_HW_RC663_SERIALSPEED_1228800

#define PHHAL_HW_RC663_SERIALSPEED_1228800 0x15U

1.228.800 kBit/s.

§ PHHAL_HW_RC663_MFC_AUTHA_CMD

#define PHHAL_HW_RC663_MFC_AUTHA_CMD 0x60U

MIFARE(R) Classic AUTHA command code.

§ PHHAL_HW_RC663_MFC_AUTHB_CMD

#define PHHAL_HW_RC663_MFC_AUTHB_CMD 0x61U

MIFARE(R) Classic AUTHB command code.

§ PHHAL_HW_RC663_MFC_KEY_LENGTH

#define PHHAL_HW_RC663_MFC_KEY_LENGTH 0x06U

Lengh of a MIFARE(R) Classic key.

§ PHHAL_HW_RC663_OPTION_FIFO_NOCLEAR

#define PHHAL_HW_RC663_OPTION_FIFO_NOCLEAR 0x0080U

Do not clear FIFO prior to command execution.

§ PHHAL_HW_CLRC663_PRODUCT_ID1

#define PHHAL_HW_CLRC663_PRODUCT_ID1 0x0100U

Product ID for CLRC663.

§ PHHAL_HW_CLRC663_PRODUCT_ID2

#define PHHAL_HW_CLRC663_PRODUCT_ID2 0x0140U

Product ID for CLRC663.

§ PHHAL_HW_MFRC631_PRODUCT_ID

#define PHHAL_HW_MFRC631_PRODUCT_ID 0xC000U

Product ID for MFRC632.

§ PHHAL_HW_MFRC630_PRODUCT_ID

#define PHHAL_HW_MFRC630_PRODUCT_ID 0x8000U

Product ID for MFRC630.

§ PHHAL_HW_SLRC610_PRODUCT_ID

#define PHHAL_HW_SLRC610_PRODUCT_ID 0x2000U

Product ID for SLRC610.

Function Documentation

§ phhalHw_Rc663_WriteFifo()

phStatus_t phhalHw_Rc663_WriteFifo | ( | phhalHw_Rc663_DataParams_t * | pDataParams,
 |  | uint8_t * | pData,
 |  | uint16_t | wLength,
 |  | uint16_t * | pBytesWritten
 | ) |  |

Validate the FIFO Buffer space in Rc663 and perform phhalHw_Rc663_WriteData.

Note that in opposite to phhalHw_Rc663_ReadFifo, this command only supports up to 255 bytes.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pData | input data.
[in] | wLength | length of input data.
[out] | pBytesWritten | Number of written bytes.

§ phhalHw_Rc663_ReadFifo()

phStatus_t phhalHw_Rc663_ReadFifo | ( | phhalHw_Rc663_DataParams_t * | pDataParams,
 |  | uint16_t | wDataSize,
 |  | uint8_t * | pData,
 |  | uint16_t * | pLength
 | ) |  |

Read Data from Fifo buffer.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wDataSize | size of data buffer.
[out] | pData | output data.
[out] | pLength | number of output data bytes.

§ phhalHw_Rc663_FlushFifo()

phStatus_t phhalHw_Rc663_FlushFifo ( phhalHw_Rc663_DataParams_t * pDataParams )

Clear Fifo buffer.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phhalHw_Rc663_WriteData()

phStatus_t phhalHw_Rc663_WriteData | ( | phhalHw_Rc663_DataParams_t * | pDataParams,
 |  | uint8_t | bAddress,
 |  | uint8_t * | pData,
 |  | uint16_t | wLength
 | ) |  |

Perform actual Write to Rc663 FIFO with the data passed.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bAddress | Start-Register Address.
[in] | pData | Register Values; uint8_t[wLength].
[in] | wLength | Number of Values.

§ phhalHw_Rc663_ReadData()

phStatus_t phhalHw_Rc663_ReadData | ( | phhalHw_Rc663_DataParams_t * | pDataParams,
 |  | uint8_t | bAddress,
 |  | uint16_t | wLength,
 |  | uint8_t * | pData
 | ) |  |

Perform actual read from Rc663 FIFO for the address passed.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bAddress | Register Address.
[in] | wLength | Number of Values.
[out] | pData | Register Values; uint8_t[wLength].

§ phhalHw_Rc663_SetCardMode()

phStatus_t phhalHw_Rc663_SetCardMode | ( | phhalHw_Rc663_DataParams_t * | pDataParams,
 |  | uint16_t | wTxDataRate,
 |  | uint16_t | wRxDataRate,
 |  | uint16_t | wSubcarrier
 | ) |  |

Apply card mode register settings (Tx and Rx Data Rate) according to given parameters.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wTxDataRate | TxDataRate HAL config.
[in] | wRxDataRate | RxDataRate HAL config.
[in] | wSubcarrier | SubCarrier HAL config.

§ phhalHw_Rc663_SetConfig_Int()

phStatus_t phhalHw_Rc663_SetConfig_Int | ( | phhalHw_Rc663_DataParams_t * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t | wValue
 | ) |  |

Set configuration parameter (Internal).

This is needed since phhalHw_Rc663_SetCardMode would cause a recursive call to phhalHw_SetConfig which is bad for 805x based systems.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_UNSUPPORTED_PARAMETER | Configuration is not supported or invalid.
PH_ERR_INVALID_PARAMETER | Parameter value is invalid.
PH_ERR_PARAMETER_OVERFLOW | Setting the parameter value would lead to an overflow.
PH_ERR_INTERFACE_ERROR | Communication error.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wConfig | Configuration Identifier.
[in] | wValue | Configuration Value.

§ phhalHw_Rc663_SetRxWait()

phStatus_t phhalHw_Rc663_SetRxWait | ( | phhalHw_Rc663_DataParams_t * | pDataParams,
 |  | uint16_t | wTimeEtu
 | ) |  |

Sets the RxWait time.

Note: RxWait is defined between the last transmitted bit and the activation of the receiver.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wTimeEtu | RxWait time in ETUs.

§ phhalHw_Rc663_SetTxWait()

phStatus_t phhalHw_Rc663_SetTxWait | ( | phhalHw_Rc663_DataParams_t * | pDataParams,
 |  | uint16_t | wTimeUs
 | ) |  |

Sets the TxWait time in microseconds.

Note: TxWait is defined between the last received bit and the next transmitted bit.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wTimeUs | TxWait time in microseconds.

§ phhalHw_Rc663_SetFdt()

phStatus_t phhalHw_Rc663_SetFdt | ( | phhalHw_Rc663_DataParams_t * | pDataParams,
 |  | uint8_t | bUnit,
 |  | uint16_t | wTimeout
 | ) |  |

Sets the Frame Delay Time (Timeout).

Note: Frame Delay Time is defined between the last transmitted bit and the first received bit.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bUnit | Unit of given timeout value (either PHHAL_HW_TIME_MICROSECONDS or PHHAL_HW_TIME_MILLISECONDS).
[in] | wTimeout | Timeout value.

§ phhalHw_Rc663_GetFdt()

phStatus_t phhalHw_Rc663_GetFdt | ( | phhalHw_Rc663_DataParams_t * | pDataParams,
 |  | phStatus_t | wExchangeStatus,
 |  | uint32_t * | pTime
 | ) |  |

Retrieves the Frame Delay Time of the last command.

Note: Frame Delay Time is defined between the last transmitted bit and the first received bit.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wExchangeStatus | Status code returned by exchange function.
[out] | pTime | Calculated time in microseconds from timer contents.

§ phhalHw_Rc663_GetDigiDelay()

phStatus_t phhalHw_Rc663_GetDigiDelay | ( | phhalHw_Rc663_DataParams_t * | pDataParams,
 |  | uint8_t | bIsTimeout,
 |  | uint16_t * | pDelayUs
 | ) |  |

Returns the delay of the digital circuitry for the current protocol.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bIsTimeout | Wheter the returned delay is added to a timeout (PH_ON) or is used for measurement (PH_OFF).
[out] | pDelayUs | The digital delay in microseconds.

§ phhalHw_Rc663_GetTxBuffer()

phStatus_t phhalHw_Rc663_GetTxBuffer | ( | phhalHw_Rc663_DataParams_t * | pDataParams,
 |  | uint8_t | bIsExchange,
 |  | uint8_t ** | pTxBuffer,
 |  | uint16_t * | pTxBufferLen,
 |  | uint16_t * | pTxBufferSize
 | ) |  |

Returns the TxBuffer pointer, length and size.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bIsExchange | Whether this is for Exchange (PH_ON) or not (PH_OFF).
[out] | pTxBuffer | Pointer to the TxBuffer.
[out] | pTxBufferLen | Number of bytes already in the TxBuffer.
[out] | pTxBufferSize | Size of the TxBuffer.

§ phhalHw_Rc663_GetRxBuffer()

phStatus_t phhalHw_Rc663_GetRxBuffer | ( | phhalHw_Rc663_DataParams_t * | pDataParams,
 |  | uint8_t | bIsExchange,
 |  | uint8_t ** | pRxBuffer,
 |  | uint16_t * | pRxBufferLen,
 |  | uint16_t * | pRxBufferSize
 | ) |  |

Returns the RxBuffer pointer, length and size.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bIsExchange | Whether this is for Exchange (PH_ON) or not (PH_OFF).
[out] | pRxBuffer | Pointer to the RxBuffer.
[out] | pRxBufferLen | Number of bytes already in the RxBuffer.
[out] | pRxBufferSize | Size of the RxBuffer.

§ phhalHw_Rc663_MfcAuthenticate_Int()

phStatus_t phhalHw_Rc663_MfcAuthenticate_Int | ( | phhalHw_Rc663_DataParams_t * | pDataParams,
 |  | uint8_t | bBlockNo,
 |  | uint8_t | bKeyType,
 |  | uint8_t * | pUid
 | ) |  |

Build and Execute MIFARE(R) Classic Authentication command.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bBlockNo | Block-number on card to authenticate to.
[in] | bKeyType | Either PHHAL_HW_MFC_KEYA or PHHAL_HW_MFC_KEYB.
[in] | pUid | Serial number of current cascade level; uint8_t[4].

§ phhalHw_Rc663_Command_Int()

phStatus_t phhalHw_Rc663_Command_Int | ( | phhalHw_Rc663_DataParams_t * | pDataParams,
 |  | uint8_t | bCmd,
 |  | uint16_t | wOption,
 |  | uint8_t | bIrq0WaitFor,
 |  | uint8_t | bIrq1WaitFor,
 |  | uint8_t * | pTxBuffer,
 |  | uint16_t | wTxLength,
 |  | uint16_t | wRxBufferSize,
 |  | uint8_t * | pRxBuffer,
 |  | uint16_t * | pRxLength
 | ) |  |

Execute a Reader-specific command.

Internal function for executing all commands except Transceive/Transmit/Receive.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bCmd | Command code.
[in] | wOption | Option parameter.
[in] | bIrq0WaitFor | Bitmask of interrupts in Irq0 register to wait for.
[in] | bIrq1WaitFor | Bitmask of interrupts in Irq1 register to wait for.
[in] | pTxBuffer | Data to transmit.
[in] | wTxLength | Length of input data.
[in] | wRxBufferSize | Size of receive buffer.
[out] | pRxBuffer | Pointer to received data.
[out] | pRxLength | Number of received data bytes.

§ phhalHw_Rc663_WaitIrq()

phStatus_t phhalHw_Rc663_WaitIrq | ( | phhalHw_Rc663_DataParams_t * | pDataParams,
 |  | uint8_t | bEnableIrqs,
 |  | uint8_t | bWaitUntilPowerUp,
 |  | uint8_t | bIrq0WaitFor,
 |  | uint8_t | bIrq1WaitFor,
 |  | uint8_t * | pIrq0Reg,
 |  | uint8_t * | pIrq1Reg
 | ) |  |

Wait until one of the given interrupts occurs.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bEnableIrqs | Whether to enable (PH_ON) Irqs to wait for or not (PH_OFF).
[in] | bWaitUntilPowerUp | Whether to wait (PH_ON) until the StandBy bit in command register is cleared or not (PH_OFF).
[in] | bIrq0WaitFor | Bitmask of interrupts in Irq0 register to wait for.
[in] | bIrq1WaitFor | Bitmask of interrupts in Irq1 register to wait for.
[out] | pIrq0Reg | Contents of Irq0 register.
[out] | pIrq1Reg | Contents of Irq1 register.

§ phhalHw_Rc663_EPCV2_Init()

phStatus_t phhalHw_Rc663_EPCV2_Init ( phhalHw_Rc663_DataParams_t * pDataParams )

Initialize Rc663 registers for 18000p3m3 protocol.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phhalHw_Rc663_GetErrorStatus()

phStatus_t phhalHw_Rc663_GetErrorStatus | ( | phhalHw_Rc663_DataParams_t * | pDataParams,
 |  | uint16_t * | wBufferLen,
 |  | uint16_t * | wBufferSize
 | ) |  |

Read different errors present.

/w

Return values
Error | code
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[out] | wBufferLen | Number of bytes already in the TxBuffer.
[out] | wBufferSize | Size of the TxBuffer.

§ phhalHw_Rc663_GetMultiReg()

phStatus_t phhalHw_Rc663_GetMultiReg | ( | phhalHw_Rc663_DataParams_t * | pDataParams,
 |  | uint8_t * | pData
 | ) |  |

Function will read Multiple Registers and return of data read from multiple registers.

Specific for EMVCo

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[out] | pData | Received data.

§ phhalHw_Rc663_ReStartRx()

phStatus_t phhalHw_Rc663_ReStartRx ( phhalHw_Rc663_DataParams_t * pDataParams )

Specific for EMVCo.

Function will re-start/Put device in Receiving Phase

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phhalHw_Rc663_CheckForEmdError()

phStatus_t phhalHw_Rc663_CheckForEmdError | ( | phhalHw_Rc663_DataParams_t * | pDataParams,
 |  | uint8_t | bIrq0WaitFor,
 |  | uint8_t | bIrq1WaitFor,
 |  | uint32_t * | pdwMultiReg,
 |  | uint32_t * | pdwPrevReg
 | ) |  |

Function is used to detect and Suppress EMVCo EMD Noise during reception.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bIrq0WaitFor | Bitmask of interrupts in Irq0 register to wait for.
[in] | bIrq1WaitFor | Bitmask of interrupts in Irq1 register to wait for.
[out] | pdwMultiReg | Contains Multiple Registry Read Value.
[out] | pdwPrevReg | Contains previous operation Multiple Registry Read value.

§ phhalHw_Rc663_CreateRespFrame()

void phhalHw_Rc663_CreateRespFrame | ( | uint8_t * | bInBuff,
 |  | uint8_t | bDataPos,
 |  | uint8_t * | bOutBuff
 | ) |  |

This function will return the answer to ReqC in 32 byte multi slot frame format.

Size of output frame is PHHAL_HW_RESP_FRAME_SIZE byte.

Note: This function is only valid when multiple reception PHHAL_HW_CONFIG_RXMULTIPLE is enabled.

Parameters
[in] | bInBuff | Pointer to Rx buffer.
[in] | bDataPos | position of card response in Rxbuffer.
[out] | bOutBuff | Pointer to buffer which store frame of PHHAL_HW_RESP_FRAME_SIZE size.

§ phhalHw_Rc663_FrameRxMultiplePkt()

phStatus_t phhalHw_Rc663_FrameRxMultiplePkt ( phhalHw_Rc663_DataParams_t * pDataParams )

Form packet which contains a series of ReqC responses(if multiple response received) in multi-slot response format and update Hal Rx buffer.

This function will use function phhalHw_Rc663_CreateRespFrame to frame each card responses multi-slot frame format.

Note: This function is only valid when multiple reception PHHAL_HW_CONFIG_RXMULTIPLE is enabled.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and under-laying component.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.


NXP NFC Reader Library: Register Definitions

Macros | Functions
Register Definitions
Hardware Abstraction Layer » component : Rc663

Register definitions. More...

Collaboration diagram for Register Definitions:

Macros

#define | PHHAL_HW_RC663_REG_COMMAND 0x00
Command Register. More...
#define | PHHAL_HW_RC663_REG_HOSTCTRL 0x01
Host-Control Register. More...
#define | PHHAL_HW_RC663_REG_ERROR 0x0A
Error Register. More...
#define | PHHAL_HW_RC663_REG_STATUS 0x0B
Status Register. More...
#define | PHHAL_HW_RC663_REG_RXBITCTRL 0x0C
Rx-Bit-Control Register. More...
#define | PHHAL_HW_RC663_REG_RXCOLL 0x0D
Rx-Coll Register. More...
#define | PHHAL_HW_RC663_REG_DRVMODE 0x28
Driver Mode Register. More...
#define | PHHAL_HW_RC663_REG_TXAMP 0x29
Tx Amplifier Register. More...
#define | PHHAL_HW_RC663_REG_DRVCON 0x2A
Driver Control Register. More...
#define | PHHAL_HW_RC663_REG_TXI 0x2B
TxI Register. More...
#define | PHHAL_HW_RC663_REG_TXCRCCON 0x2C
Tx-CRC Control Register. More...
#define | PHHAL_HW_RC663_REG_RXCRCCON 0x2D
Rx-CRC Control Register. More...
#define | PHHAL_HW_RC663_REG_TXDATANUM 0x2E
Tx-DataNum Register. More...
#define | PHHAL_HW_RC663_REG_TXMODWIDTH 0x2F
Tx-Modwidth Register. More...
#define | PHHAL_HW_RC663_REG_TXSYM10BURSTLEN 0x30
Symbol 0 and 1 Register. More...
#define | PHHAL_HW_RC663_REG_TXWAITCTRL 0x31
Tx-Wait Control Register. More...
#define | PHHAL_HW_RC663_REG_TXWAITLO 0x32
TxWaitLo Register. More...
#define | PHHAL_HW_RC663_REG_FRAMECON 0x33
Frame control register. More...
#define | PHHAL_HW_RC663_REG_RXSOFD 0x34
RxSOFD Register. More...
#define | PHHAL_HW_RC663_REG_RXCTRL 0x35
Rx Control Register. More...
#define | PHHAL_HW_RC663_REG_RXWAIT 0x36
Rx-Wait Register. More...
#define | PHHAL_HW_RC663_REG_RXTHRESHOLD 0x37
Rx-Threshold Register. More...
#define | PHHAL_HW_RC663_REG_RCV 0x38
Receiver Register. More...
#define | PHHAL_HW_RC663_REG_RXANA 0x39
Rx-Analog Register. More...
#define | PHHAL_HW_RC663_REG_SERIALSPEED 0x3B
Serial Speed Register. More...
#define | PHHAL_HW_RC663_REG_LPO_TRIMM 0x3C
LPO_TRIMM Register. More...
#define | PHHAL_HW_RC663_REG_PLL_CTRL 0x3D
PLL Control Register. More...
#define | PHHAL_HW_RC663_REG_PLL_DIV 0x3E
PLL DivO Register. More...
#define | PHHAL_HW_RC663_REG_LPCD_QMIN 0x3F
LPCD QMin Register. More...
#define | PHHAL_HW_RC663_REG_LPCD_QMAX 0x40
LPCD QMax Register. More...
#define | PHHAL_HW_RC663_REG_LPCD_IMIN 0x41
LPCD IMin Register. More...
#define | PHHAL_HW_RC663_REG_LPCD_RESULT_I 0x42
LPCD Result(I) Register. More...
#define | PHHAL_HW_RC663_REG_LPCD_RESULT_Q 0x43
LPCD Result(Q) Register. More...
#define | PHHAL_HW_RC663_TXBITMOD 0x48
Transmitter bit modulus Register. More...
#define | PHHAL_HW_RC663_REG_TXDATACON 0x4A
Transmitter data configuration register. More...
#define | PHHAL_HW_RC663_REG_TXDATAMOD 0x4B
Transmitter data modulation Register. More...
#define | PHHAL_HW_RC663_REG_TXSYMFREQ 0x4C
Transmitter Symbol Frequency. More...
#define | PHHAL_HW_RC663_REG_TXSYM0H 0x4D
Transmitter Symbol 0 High Register. More...
#define | PHHAL_HW_RC663_REG_TXSYM0L 0x4E
Transmitter Symbol 0 Low Register. More...
#define | PHHAL_HW_RC663_REG_TXSYM1H 0x4F
Transmitter Symbol 1 High Register. More...
#define | PHHAL_HW_RC663_REG_TXSYM1L 0x50
Transmitter Symbol 1 Low Register. More...
#define | PHHAL_HW_RC663_REG_TXSYM2 0x51
Tx Symbol 2 Register. More...
#define | PHHAL_HW_RC663_REG_TXSYM3 0x52
Tx Symbol 3 Register. More...
#define | PHHAL_HW_RC663_REG_TXSYM10LEN 0x53
Transmitter Symbol 0 + Symbol 1 Length Register. More...
#define | PHHAL_HW_RC663_REG_TXSYM32LEN 0x54
Transmitter symbol 3 + symbol 2 length register. More...
#define | PHHAL_HW_RC663_REG_TXSYM10BURSTCTRL 0x55
Symbol 0 and 1 Register. More...
#define | PHHAL_HW_RC663_REG_TXSYM10MOD 0x56
Symbol 0 and 1 Register. More...
#define | PHHAL_HW_RC663_REG_TXSYM32MOD 0x57
Transmitter symbol 3 + symbol 2 modulation register. More...
#define | PHHAL_HW_RC663_REG_RXBITMOD 0x58
Receiver bit modulation register. More...
#define | PHHAL_HW_RC663_REG_RXEOFSYM 0x59
Receiver end of frame symbol register. More...
#define | PHHAL_HW_RC663_REG_RXSYNCVAlH 0x5A
Receiver synchronisation value high register. More...
#define | PHHAL_HW_RC663_REG_RXSYNCVAlL 0x5B
Receiver synchronisation value low register. More...
#define | PHHAL_HW_RC663_REG_RXSYNCMOD 0x5C
Receiver synchronisation mode register. More...
#define | PHHAL_HW_RC663_REG_RXMOD 0x5D
Receiver modulation register. More...
#define | PHHAL_HW_RC663_REG_RXCORR 0x5E
Receiver Correlation Register. More...
#define | PHHAL_HW_RC663_REG_RXSVETTE 0x5F
Calibration register of the receiver. More...
#define | PHHAL_HW_RC663_REG_DACVAL 0x64
DAC value Register. More...
#define | PHHAL_HW_RC663_REG_TESTMOD 0x66
Test mode Register. More...
#define | PHHAL_HW_RC663_REG_ANAXTAL 0x71
Analog Xtal register. More...
#define | PHHAL_HW_RC663_REG_SIGPROTEST 0x72
EPCv2 mode Register. More...
#define | PHHAL_HW_RC663_REG_VERSION 0x7F
Version Register. More...

Functions

phStatus_t | phhalHw_Rc663_WriteRegister (phhalHw_Rc663_DataParams_t *pDataParams, uint8_t bAddress, uint8_t bValue)
Write to 8bit address of CL front-end register. More...
phStatus_t | phhalHw_Rc663_ReadRegister (phhalHw_Rc663_DataParams_t *pDataParams, uint8_t bAddress, uint8_t *pValue)
Read 8bit register address from CL front-ends. More...

Fifo Registers

#define | PHHAL_HW_RC663_REG_FIFOCONTROL 0x02
FIFO-Control Register. More...
#define | PHHAL_HW_RC663_REG_WATERLEVEL 0x03
WaterLevel Register. More...
#define | PHHAL_HW_RC663_REG_FIFOLENGTH 0x04
FIFO-Length Register. More...
#define | PHHAL_HW_RC663_REG_FIFODATA 0x05
FIFO-Data Register. More...

IRQ Registers

#define | PHHAL_HW_RC663_REG_IRQ0 0x06
IRQ0 Register. More...
#define | PHHAL_HW_RC663_REG_IRQ1 0x07
IRQ1 Register. More...
#define | PHHAL_HW_RC663_REG_IRQ0EN 0x08
IRQ0EN Register. More...
#define | PHHAL_HW_RC663_REG_IRQ1EN 0x09
IRQ1EN Register. More...

Timer Registers

#define | PHHAL_HW_RC663_REG_TCONTROL 0x0E
Timer Control Register. More...
#define | PHHAL_HW_RC663_REG_T0CONTROL 0x0F
Timer0 Control Register. More...
#define | PHHAL_HW_RC663_REG_T0RELOADHI 0x10
Timer0 Reload(High) Register. More...
#define | PHHAL_HW_RC663_REG_T0RELOADLO 0x11
Timer0 Reload(Low) Register. More...
#define | PHHAL_HW_RC663_REG_T0COUNTERVALHI 0x12
Timer0 Counter(High) Register. More...
#define | PHHAL_HW_RC663_REG_T0COUNTERVALLO 0x13
Timer0 Counter(Low) Register. More...
#define | PHHAL_HW_RC663_REG_T1CONTROL 0x14
Timer1 Control Register. More...
#define | PHHAL_HW_RC663_REG_T1RELOADHI 0x15
Timer1 Reload(High) Register. More...
#define | PHHAL_HW_RC663_REG_T1RELOADLO 0x16
Timer1 Reload(Low) Register. More...
#define | PHHAL_HW_RC663_REG_T1COUNTERVALHI 0x17
Timer1 Counter(High) Register. More...
#define | PHHAL_HW_RC663_REG_T1COUNTERVALLO 0x18
Timer1 Counter(Low) Register. More...
#define | PHHAL_HW_RC663_REG_T2CONTROL 0x19
Timer2 Control Register. More...
#define | PHHAL_HW_RC663_REG_T2RELOADHI 0x1A
Timer2 Reload(High) Register. More...
#define | PHHAL_HW_RC663_REG_T2RELOADLO 0x1B
Timer2 Reload(Low) Register. More...
#define | PHHAL_HW_RC663_REG_T2COUNTERVALHI 0x1C
Timer2 Counter(High) Register. More...
#define | PHHAL_HW_RC663_REG_T2COUNTERVALLO 0x1D
Timer2 Counter(Low) Register. More...
#define | PHHAL_HW_RC663_REG_T3CONTROL 0x1E
Timer3 Control Register. More...
#define | PHHAL_HW_RC663_REG_T3RELOADHI 0x1F
Timer3 Reload(High) Register. More...
#define | PHHAL_HW_RC663_REG_T3RELOADLO 0x20
Timer3 Reload(Low) Register. More...
#define | PHHAL_HW_RC663_REG_T3COUNTERVALHI 0x21
Timer3 Counter(High) Register. More...
#define | PHHAL_HW_RC663_REG_T3COUNTERVALLO 0x22
Timer3 Counter(Low) Register. More...
#define | PHHAL_HW_RC663_REG_T4CONTROL 0x23
Timer4 Control Register. More...
#define | PHHAL_HW_RC663_REG_T4RELOADHI 0x24
Timer4 Reload(High) Register. More...
#define | PHHAL_HW_RC663_REG_T4RELOADLO 0x25
Timer4 Reload(Low) Register. More...
#define | PHHAL_HW_RC663_REG_T4COUNTERVALHI 0x26
Timer4 Counter(High) Register. More...
#define | PHHAL_HW_RC663_REG_T4COUNTERVALLO 0x27
Timer4 Counter(Low) Register. More...

Command Register Contents (0x00)

#define | PHHAL_HW_RC663_BIT_STANDBY 0x80U
Standby bit; If set, the IC transits to standby mode. More...
#define | PHHAL_HW_RC663_CMD_IDLE 0x00U
No action; cancels current command execution. More...
#define | PHHAL_HW_RC663_CMD_LPCD 0x01U
Low Power Card Detection. More...
#define | PHHAL_HW_RC663_CMD_LOADKEY 0x02U
Reads a key from the FIFO buffer and puts it into the key buffer. More...
#define | PHHAL_HW_RC663_CMD_MFAUTHENT 0x03U
Performs the Mifare standard authentication (in Mifare Reader/Writer mode only). More...
#define | PHHAL_HW_RC663_CMD_ACKREQ 0x04U
Performs a Query, a Ack and a Req-Rn for EPC V2. More...
#define | PHHAL_HW_RC663_CMD_RECEIVE 0x05U
Activates the receiver circuitry. More...
#define | PHHAL_HW_RC663_CMD_TRANSMIT 0x06U
Transmits data from the FIFO buffer to Card. More...
#define | PHHAL_HW_RC663_CMD_TRANSCEIVE 0x07U
Like PHHAL_HW_RC663_CMD_TRANSMIT but automatically activates the receiver after transmission is finished. More...
#define | PHHAL_HW_RC663_CMD_WRITEE2 0x08U
Gets one byte from FIFO buffer and writes it to the internal EEPROM. More...
#define | PHHAL_HW_RC663_CMD_WRITEE2PAGE 0x09U
Gets up to 64 Bytes from FIFO buffer and writes it to the EEPROM. More...
#define | PHHAL_HW_RC663_CMD_READE2 0x0AU
Reads data from EEPROM and puts it into the FIFO buffer. More...
#define | PHHAL_HW_RC663_CMD_LOADREG 0x0CU
Reads data from EEPROM and initializes the registers. More...
#define | PHHAL_HW_RC663_CMD_LOADPROTOCOL 0x0DU
Reads data from EEPROM and initializes the registers needed for a protocol change. More...
#define | PHHAL_HW_RC663_CMD_LOADKEYE2 0x0EU
Copies a Mifare key from the EEPROM into the key buffer. More...
#define | PHHAL_HW_RC663_CMD_STOREKEYE2 0x0FU
Stores a Mifare key into the EEPROM. More...
#define | PHHAL_HW_RC663_CMD_SOFTRESET 0x1FU
Resets the IC. More...
#define | PHHAL_HW_RC663_MASK_COMMAND 0x1FU
Mask for Command-bits. More...

Host-Control Register Contents (0x01)

#define | PHHAL_HW_RC663_BIT_REGEN 0x80U
#define | PHHAL_HW_RC663_BIT_BUSHOST 0x40U
#define | PHHAL_HW_RC663_BIT_BUSSAM 0x20U
#define | PHHAL_HW_RC663_MASK_SAMINTERFACE 0x0CU

FIFO-Control Register Contents (0x02)

#define | PHHAL_HW_RC663_BIT_FIFOSIZE 0x80U
#define | PHHAL_HW_RC663_BIT_HIALERT 0x40U
#define | PHHAL_HW_RC663_BIT_LOALERT 0x20U
#define | PHHAL_HW_RC663_BIT_FLUSHFIFO 0x10U
#define | PHHAL_HW_RC663_BIT_WATERLEVEL_HI 0x04U
#define | PHHAL_HW_RC663_MASK_FIFOLENGTH_HI 0x03U

IRQ0 Register(s) Contents (0x06/0x08)

#define | PHHAL_HW_RC663_BIT_SET 0x80U
#define | PHHAL_HW_RC663_BIT_IRQINV 0x80U
#define | PHHAL_HW_RC663_BIT_HIALERTIRQ 0x40U
#define | PHHAL_HW_RC663_BIT_LOALERTIRQ 0x20U
#define | PHHAL_HW_RC663_BIT_IDLEIRQ 0x10U
#define | PHHAL_HW_RC663_BIT_TXIRQ 0x08U
#define | PHHAL_HW_RC663_BIT_RXIRQ 0x04U
#define | PHHAL_HW_RC663_BIT_ERRIRQ 0x02U
#define | PHHAL_HW_RC663_BIT_EMDIRQ 0x01U

IRQ1 Register(s) Contents (0x07/0x09)

#define | PHHAL_HW_RC663_BIT_IRQPUSHPULL 0x80U
#define | PHHAL_HW_RC663_BIT_GLOBALIRQ 0x40U
#define | PHHAL_HW_RC663_BIT_IRQPINEN 0x40U
#define | PHHAL_HW_RC663_BIT_LPCDIRQ 0x20U
#define | PHHAL_HW_RC663_BIT_TIMER4IRQ 0x10U
#define | PHHAL_HW_RC663_BIT_TIMER3IRQ 0x08U
#define | PHHAL_HW_RC663_BIT_TIMER2IRQ 0x04U
#define | PHHAL_HW_RC663_BIT_TIMER1IRQ 0x02U
#define | PHHAL_HW_RC663_BIT_TIMER0IRQ 0x01U

Error Register Contents (0x0A)

#define | PHHAL_HW_RC663_BIT_EE_ERR 0x80U
#define | PHHAL_HW_RC663_BIT_FIFOWRERR 0x40U
#define | PHHAL_HW_RC663_BIT_FIFOOVL 0x20U
#define | PHHAL_HW_RC663_BIT_MINFRAMEERR 0x10U
#define | PHHAL_HW_RC663_BIT_NODATAERR 0x08U
#define | PHHAL_HW_RC663_BIT_COLLDET 0x04U
#define | PHHAL_HW_RC663_BIT_PROTERR 0x02U
#define | PHHAL_HW_RC663_BIT_INTEGERR 0x01U

Status Register Contents (0x0B)

#define | PHHAL_HW_RC663_BIT_CRYPTO1ON 0x20U
#define | PHHAL_HW_RC663_MASK_COMMSTATE 0x07U

Rx-Bit-Control Register Contents (0x0C)

#define | PHHAL_HW_RC663_BIT_VALUESAFTERCOLL 0x80U
#define | PHHAL_HW_RC663_BIT_NOCOLL 0x08U
#define | PHHAL_HW_RC663_MASK_RXALIGN 0x70U
#define | PHHAL_HW_RC663_MASK_RXLASTBITS 0x07U

Rx-Coll Register Contents (0x0D)

#define | PHHAL_HW_RC663_BIT_COLLPOSVALID 0x80U
#define | PHHAL_HW_RC663_MASK_COLLPOS 0x7FU

Timer-Control Register Contents (0x0E)

#define | PHHAL_HW_RC663_BIT_T3RUNNING 0x80U
#define | PHHAL_HW_RC663_BIT_T2RUNNING 0x40U
#define | PHHAL_HW_RC663_BIT_T1RUNNING 0x20U
#define | PHHAL_HW_RC663_BIT_T0RUNNING 0x10U
#define | PHHAL_HW_RC663_BIT_T3STARTSTOPNOW 0x08U
#define | PHHAL_HW_RC663_BIT_T2STARTSTOPNOW 0x04U
#define | PHHAL_HW_RC663_BIT_T1STARTSTOPNOW 0x02U
#define | PHHAL_HW_RC663_BIT_T0STARTSTOPNOW 0x01U

T[0-3]-Control Register Contents (0x0F/0x14/0x19/0x1E)

#define | PHHAL_HW_RC663_BIT_TSTOP_RX 0x80U
Stop timer on receive interrupt. More...
#define | PHHAL_HW_RC663_BIT_TAUTORESTARTED 0x08U
Auto-restart timer after underflow. More...
#define | PHHAL_HW_RC663_BIT_TSTART_TX 0x10U
Start timer on transmit interrupt. More...
#define | PHHAL_HW_RC663_BIT_TSTART_LFO 0x20U
Use this timer for LFO trimming. More...
#define | PHHAL_HW_RC663_BIT_TSTART_LFO_UV 0x30U
Use this timer for LFO trimming (generate UV at a trimming event). More...
#define | PHHAL_HW_RC663_MASK_TSTART 0x30U
Mask for TSTART bits. More...
#define | PHHAL_HW_RC663_VALUE_TCLK_1356_MHZ 0x00U
Use 13.56MHz as input clock. More...
#define | PHHAL_HW_RC663_VALUE_TCLK_212_KHZ 0x01U
Use 212KHz as input clock. More...
#define | PHHAL_HW_RC663_VALUE_TCLK_T0 0x02U
Use timer0 as input clock. More...
#define | PHHAL_HW_RC663_VALUE_TCLK_T1 0x03U
Use timer1 as input clock. More...

T4-Control Register Contents (0x23)

#define | PHHAL_HW_RC663_BIT_T4RUNNING 0x80U
#define | PHHAL_HW_RC663_BIT_T4STARTSTOPNOW 0x40U
#define | PHHAL_HW_RC663_BIT_T4AUTOTRIMM 0x20U
#define | PHHAL_HW_RC663_BIT_T4AUTOLPCD 0x10U
#define | PHHAL_HW_RC663_BIT_T4AUTORESTARTED 0x08U
#define | PHHAL_HW_RC663_BIT_T4AUTOWAKEUP 0x04U
#define | PHHAL_HW_RC663_VALUE_TCLK_LFO_64_KHZ 0x00U
#define | PHHAL_HW_RC663_VALUE_TCLK_LFO_8_KHZ 0x01U
#define | PHHAL_HW_RC663_VALUE_TCLK_LFO_4_KHZ 0x02U
#define | PHHAL_HW_RC663_VALUE_TCLK_LFO_2_KHZ 0x03U

Driver Mode Register Contents (0x28)

#define | PHHAL_HW_RC663_BIT_TX2INV 0x80U
#define | PHHAL_HW_RC663_BIT_TX1INV 0x40U
#define | PHHAL_HW_RC663_BIT_TXEN 0x08U
#define | PHHAL_HW_RC663_BIT_RFON 0x04U
#define | PHHAL_HW_RC663_BIT_TPUSHON 0x02U
#define | PHHAL_HW_RC663_BIT_TPULLON 0x01U

Tx Amplifier Register Contents (0x29)

#define | PHHAL_HW_RC663_MASK_CW_AMPLITUDE 0xC0U
#define | PHHAL_HW_RC663_MASK_RESIDUAL_CARRIER 0x1FU

Driver Control Register Contents (0x2A)

#define | PHHAL_HW_RC663_BIT_CWMAX 0x10U
#define | PHHAL_HW_RC663_BIT_DISOVSHTPREV 0x08U
#define | PHHAL_HW_RC663_BIT_DRIVERINV 0x04U
#define | PHHAL_HW_RC663_VALUE_DRIVERSEL_LOW 0x00U
#define | PHHAL_HW_RC663_VALUE_DRIVERSEL_TXENV 0x01U
#define | PHHAL_HW_RC663_VALUE_DRIVERSEL_SIGIN 0x02U

Tx-/Rx-CRC Control Register Contents (0x2C/0x2D)

#define | PHHAL_HW_RC663_BIT_RXFORCECRCWRITE 0x80U
#define | PHHAL_HW_RC663_BIT_CRCINVERT 0x02U
#define | PHHAL_HW_RC663_BIT_CRCEN 0x01U
#define | PHHAL_HW_RC663_MASK_CRCPRESETVAL 0x70U
#define | PHHAL_HW_RC663_MASK_CRCTYPE 0x0CU
#define | PHHAL_HW_RC663_MASK_CRCTYPE5 0x00U
#define | PHHAL_HW_RC663_MASK_CRCTYPE16 0x08U

Tx-DataNum Register Contents (0x2E)

#define | PHHAL_HW_RC663_BIT_KEEPBITGRID 0x10U
#define | PHHAL_HW_RC663_BIT_DATAEN 0x08U
#define | PHHAL_HW_RC663_MASK_TXLASTBITS 0x07U
#define | PHHAL_HW_RC663_MASK_SYMBOL_SEND 0x08U

Tx-Wait Control Register Contents (0x31)

#define | PHHAL_HW_RC663_BIT_TXWAIT_START_RX 0x80U
#define | PHHAL_HW_RC663_BIT_TXWAIT_DBFREQ 0x40U
#define | PHHAL_HW_RC663_MASK_TXWAITHI 0x38U
#define | PHHAL_HW_RC663_MASK_TXSTOPBITLEN 0x07U

Frame Control Register Contents (0x33)

#define | PHHAL_HW_RC663_BIT_TXPARITYEN 0x80U
#define | PHHAL_HW_RC663_BIT_RXPARITYEN 0x40U
#define | PHHAL_HW_RC663_VALUE_STOP_SYM3 0x0CU
#define | PHHAL_HW_RC663_VALUE_STOP_SYM2 0x08U
#define | PHHAL_HW_RC663_VALUE_STOP_SYM1 0x04U
#define | PHHAL_HW_RC663_VALUE_START_SYM2 0x03U
#define | PHHAL_HW_RC663_VALUE_START_SYM1 0x02U
#define | PHHAL_HW_RC663_VALUE_START_SYM0 0x01U
#define | PHHAL_HW_RC663_MASK_STARTSYM 0x03U
#define | PHHAL_HW_RC663_MASK_STOPSYM 0x0CU

Rx Control Register Contents (0x35)

#define | PHHAL_HW_RC663_BIT_RXALLOWBITS 0x80U
#define | PHHAL_HW_RC663_BIT_RXMULTIPLE 0x40U
#define | PHHAL_HW_RC663_BIT_RXEOFTYPE 0x20U
#define | PHHAL_HW_RC663_BIT_EGT_CHECK 0x10U
#define | PHHAL_HW_RC663_BIT_EMD_SUPPRESSION 0x08U
#define | PHHAL_HW_RC663_MASK_RXBAUDRATE 0x07U

Rx-Wait Register Contents (0x36)

#define | PHHAL_HW_RC663_BIT_RXWAITDBFREQ 0x80U
#define | PHHAL_HW_RC663_MASK_RXWAIT 0x7FU

Rx-Threshold Register Contents (0x37)

#define | PHHAL_HW_RC663_MASK_MINLEVEL 0xF0U
#define | PHHAL_HW_RC663_MASK_MINLEVELP 0x0FU

Rx-Receiver Register Contents (0x38)

#define | PHHAL_HW_RC663_BIT_RX_SINGLE 0x80U
#define | PHHAL_HW_RC663_BIT_RX_SHORT_MIX2ADC 0x40U
#define | PHHAL_HW_RC663_BIT_USE_SMALL_EVAL 0x04U
#define | PHHAL_HW_RC663_MASK_RX_SIGPRO_IN_SEL 0x30U
#define | PHHAL_HW_RC663_MASK_COLLLEVEL 0x03U

Rx-Analog Register Contents (0x39)

#define | PHHAL_HW_RC663_BIT_RX_OC_ENABLE 0x20U
#define | PHHAL_HW_RC663_BIT_RX_HP_LOWF 0x10U
#define | PHHAL_HW_RC663_MASK_VMID_R_SEL 0xC0U
#define | PHHAL_HW_RC663_MASK_RCV_HPCF 0x0CU
#define | PHHAL_HW_RC663_MASK_RCV_GAIN 0x03U

Serial-Speed Register Contents (0x3B)

#define | PHHAL_HW_RC663_MASK_BR_T0 0xE0U
#define | PHHAL_HW_RC663_MASK_BR_T1 0x1FU

LPCD Result(Q) Register Contents (0x43)

#define PHHAL_HW_RC663_BIT_LPCDIRQ_CLR 0x40U

Tx-BitMod Register Contents (0x48)

#define | PHHAL_HW_RC663_BIT_TXMSBFIRST 0x80U
#define | PHHAL_HW_RC663_BIT_TXPARITYTYPE 0x20U
#define | PHHAL_HW_RC663_BIT_TXSTOPBITTYPE 0x08U
#define | PHHAL_HW_RC663_BIT_TXSTARTBITTYPE 0x02U
#define | PHHAL_HW_RC663_BIT_TXSTARTBITEN 0x01U

Rx-BitMod Register Contents (0x58)

#define | PHHAL_HW_RC663_BIT_RXSTOPONINVPAR 0x20U
#define | PHHAL_HW_RC663_BIT_RXSTOPONLEN 0x10U
#define | PHHAL_HW_RC663_BIT_RXMSBFIRST 0x08U
#define | PHHAL_HW_RC663_BIT_RXSTOPBITEN 0x04U
#define | PHHAL_HW_RC663_BIT_RXPARITYTYPE 0x02U

Rx-Mod Register Contents (0x5D)

#define | PHHAL_HW_RC663_BIT_PREFILTER 0x20U
#define | PHHAL_HW_RC663_BIT_RECTFILTER 0x10U
#define | PHHAL_HW_RC663_BIT_SYNCHIGH 0x08U
#define | PHHAL_HW_RC663_BIT_CORRINV 0x04U
#define | PHHAL_HW_RC663_BIT_FSK 0x02U
#define | PHHAL_HW_RC663_BIT_BPSK 0x01U

Detailed Description

Register definitions.

Macro Definition Documentation

§ PHHAL_HW_RC663_REG_COMMAND

#define PHHAL_HW_RC663_REG_COMMAND 0x00

Command Register.

Used for starting / stopping commands and for sending the IC into standby mode.

§ PHHAL_HW_RC663_REG_HOSTCTRL

#define PHHAL_HW_RC663_REG_HOSTCTRL 0x01

Host-Control Register.

Configure Host and SAM interfaces.

§ PHHAL_HW_RC663_REG_FIFOCONTROL

#define PHHAL_HW_RC663_REG_FIFOCONTROL 0x02

FIFO-Control Register.

Set FIFO size and retrieve FIFO parameters.
Note: Also contains 1 additional Water-Level bit (MSB) and 2 additional FIFO-Length bits (also MSB).

§ PHHAL_HW_RC663_REG_WATERLEVEL

#define PHHAL_HW_RC663_REG_WATERLEVEL 0x03

WaterLevel Register.

FIFO WaterLevel configuration.

§ PHHAL_HW_RC663_REG_FIFOLENGTH

#define PHHAL_HW_RC663_REG_FIFOLENGTH 0x04

FIFO-Length Register.

Retrieve the number of bytes within the FIFO.

§ PHHAL_HW_RC663_REG_FIFODATA

#define PHHAL_HW_RC663_REG_FIFODATA 0x05

FIFO-Data Register.

Writing to this register moves a byte into the FIFO while incrementing the FIFO length and raising the internal WaterLevel.

§ PHHAL_HW_RC663_REG_IRQ0

#define PHHAL_HW_RC663_REG_IRQ0 0x06

IRQ0 Register.

Read or modify the first 7 IRQ bits.

§ PHHAL_HW_RC663_REG_IRQ1

#define PHHAL_HW_RC663_REG_IRQ1 0x07

IRQ1 Register.

Read or modify the second 7 IRQ bits.

§ PHHAL_HW_RC663_REG_IRQ0EN

#define PHHAL_HW_RC663_REG_IRQ0EN 0x08

IRQ0EN Register.

Enable or disable the first IRQ bits or invert the IRQ propagation.

§ PHHAL_HW_RC663_REG_IRQ1EN

#define PHHAL_HW_RC663_REG_IRQ1EN 0x09

IRQ1EN Register.

Enable or disable the second IRQ bits or enable/disable PushPull mode.

§ PHHAL_HW_RC663_REG_ERROR

#define PHHAL_HW_RC663_REG_ERROR 0x0A

Error Register.

Contains bits for the occured erros.

§ PHHAL_HW_RC663_REG_STATUS

#define PHHAL_HW_RC663_REG_STATUS 0x0B

Status Register.

Contains the Crypto1 state and information about the ComState.

§ PHHAL_HW_RC663_REG_RXBITCTRL

#define PHHAL_HW_RC663_REG_RXBITCTRL 0x0C

Rx-Bit-Control Register.

Set/Get Bit-granularity and collision information.

§ PHHAL_HW_RC663_REG_RXCOLL

#define PHHAL_HW_RC663_REG_RXCOLL 0x0D

Rx-Coll Register.

Contains information about the collision position after a collision.

§ PHHAL_HW_RC663_REG_TCONTROL

#define PHHAL_HW_RC663_REG_TCONTROL 0x0E

Timer Control Register.

Provides timer control and status information for all timers.

§ PHHAL_HW_RC663_REG_T0CONTROL

#define PHHAL_HW_RC663_REG_T0CONTROL 0x0F

Timer0 Control Register.

Configure the timer.

§ PHHAL_HW_RC663_REG_T0RELOADHI

#define PHHAL_HW_RC663_REG_T0RELOADHI 0x10

Timer0 Reload(High) Register.

Set the most significant byte of the Reload-Value.

§ PHHAL_HW_RC663_REG_T0RELOADLO

#define PHHAL_HW_RC663_REG_T0RELOADLO 0x11

Timer0 Reload(Low) Register.

Set the least significant byte of the Reload-Value.

§ PHHAL_HW_RC663_REG_T0COUNTERVALHI

#define PHHAL_HW_RC663_REG_T0COUNTERVALHI 0x12

Timer0 Counter(High) Register.

Get the most significant byte of the Counter-Value.

§ PHHAL_HW_RC663_REG_T0COUNTERVALLO

#define PHHAL_HW_RC663_REG_T0COUNTERVALLO 0x13

Timer0 Counter(Low) Register.

Get the least significant byte of the Counter-Value.

§ PHHAL_HW_RC663_REG_T1CONTROL

#define PHHAL_HW_RC663_REG_T1CONTROL 0x14

Timer1 Control Register.

Configure the timer.

§ PHHAL_HW_RC663_REG_T1RELOADHI

#define PHHAL_HW_RC663_REG_T1RELOADHI 0x15

Timer1 Reload(High) Register.

Set the most significant byte of the Reload-Value.

§ PHHAL_HW_RC663_REG_T1RELOADLO

#define PHHAL_HW_RC663_REG_T1RELOADLO 0x16

Timer1 Reload(Low) Register.

Set the least significant byte of the Reload-Value.

§ PHHAL_HW_RC663_REG_T1COUNTERVALHI

#define PHHAL_HW_RC663_REG_T1COUNTERVALHI 0x17

Timer1 Counter(High) Register.

Get the most significant byte of the Counter-Value.

§ PHHAL_HW_RC663_REG_T1COUNTERVALLO

#define PHHAL_HW_RC663_REG_T1COUNTERVALLO 0x18

Timer1 Counter(Low) Register.

Get the least significant byte of the Counter-Value.

§ PHHAL_HW_RC663_REG_T2CONTROL

#define PHHAL_HW_RC663_REG_T2CONTROL 0x19

Timer2 Control Register.

Configure the timer.

§ PHHAL_HW_RC663_REG_T2RELOADHI

#define PHHAL_HW_RC663_REG_T2RELOADHI 0x1A

Timer2 Reload(High) Register.

Set the most significant byte of the Reload-Value.

§ PHHAL_HW_RC663_REG_T2RELOADLO

#define PHHAL_HW_RC663_REG_T2RELOADLO 0x1B

Timer2 Reload(Low) Register.

Set the least significant byte of the Reload-Value.

§ PHHAL_HW_RC663_REG_T2COUNTERVALHI

#define PHHAL_HW_RC663_REG_T2COUNTERVALHI 0x1C

Timer2 Counter(High) Register.

Get the most significant byte of the Counter-Value.

§ PHHAL_HW_RC663_REG_T2COUNTERVALLO

#define PHHAL_HW_RC663_REG_T2COUNTERVALLO 0x1D

Timer2 Counter(Low) Register.

Get the least significant byte of the Counter-Value.

§ PHHAL_HW_RC663_REG_T3CONTROL

#define PHHAL_HW_RC663_REG_T3CONTROL 0x1E

Timer3 Control Register.

Configure the timer.

§ PHHAL_HW_RC663_REG_T3RELOADHI

#define PHHAL_HW_RC663_REG_T3RELOADHI 0x1F

Timer3 Reload(High) Register.

Set the most significant byte of the Reload-Value.

§ PHHAL_HW_RC663_REG_T3RELOADLO

#define PHHAL_HW_RC663_REG_T3RELOADLO 0x20

Timer3 Reload(Low) Register.

Set the least significant byte of the Reload-Value.

§ PHHAL_HW_RC663_REG_T3COUNTERVALHI

#define PHHAL_HW_RC663_REG_T3COUNTERVALHI 0x21

Timer3 Counter(High) Register.

Get the most significant byte of the Counter-Value.

§ PHHAL_HW_RC663_REG_T3COUNTERVALLO

#define PHHAL_HW_RC663_REG_T3COUNTERVALLO 0x22

Timer3 Counter(Low) Register.

Get the least significant byte of the Counter-Value.

§ PHHAL_HW_RC663_REG_T4CONTROL

#define PHHAL_HW_RC663_REG_T4CONTROL 0x23

Timer4 Control Register.

Configure the timer.

§ PHHAL_HW_RC663_REG_T4RELOADHI

#define PHHAL_HW_RC663_REG_T4RELOADHI 0x24

Timer4 Reload(High) Register.

Set the most significant byte of the Reload-Value.

§ PHHAL_HW_RC663_REG_T4RELOADLO

#define PHHAL_HW_RC663_REG_T4RELOADLO 0x25

Timer4 Reload(Low) Register.

Set the least significant byte of the Reload-Value.

§ PHHAL_HW_RC663_REG_T4COUNTERVALHI

#define PHHAL_HW_RC663_REG_T4COUNTERVALHI 0x26

Timer4 Counter(High) Register.

Get the most significant byte of the Counter-Value.

§ PHHAL_HW_RC663_REG_T4COUNTERVALLO

#define PHHAL_HW_RC663_REG_T4COUNTERVALLO 0x27

Timer4 Counter(Low) Register.

Get the least significant byte of the Counter-Value.

§ PHHAL_HW_RC663_REG_DRVMODE

#define PHHAL_HW_RC663_REG_DRVMODE 0x28

Driver Mode Register.

Enable / Invert the Tx-Driver and set the Clock Mode.

§ PHHAL_HW_RC663_REG_TXAMP

#define PHHAL_HW_RC663_REG_TXAMP 0x29

Tx Amplifier Register.

Modify Amplitude and Carrier settings.

§ PHHAL_HW_RC663_REG_DRVCON

#define PHHAL_HW_RC663_REG_DRVCON 0x2A

Driver Control Register.

Select / Invert drivers.

§ PHHAL_HW_RC663_REG_TXI

#define PHHAL_HW_RC663_REG_TXI 0x2B

TxI Register.

Contains Overshoot prevention and current control settings.

§ PHHAL_HW_RC663_REG_TXCRCCON

#define PHHAL_HW_RC663_REG_TXCRCCON 0x2C

Tx-CRC Control Register.

Configure CRC parameters transmission.

§ PHHAL_HW_RC663_REG_RXCRCCON

#define PHHAL_HW_RC663_REG_RXCRCCON 0x2D

Rx-CRC Control Register.

Configure CRC parameters for reception.

§ PHHAL_HW_RC663_REG_TXDATANUM

#define PHHAL_HW_RC663_REG_TXDATANUM 0x2E

Tx-DataNum Register.

Set TxLastBits and configure KeepBitGrid functionality.

§ PHHAL_HW_RC663_REG_TXMODWIDTH

#define PHHAL_HW_RC663_REG_TXMODWIDTH 0x2F

Tx-Modwidth Register.

Set the modulation width.

§ PHHAL_HW_RC663_REG_TXSYM10BURSTLEN

#define PHHAL_HW_RC663_REG_TXSYM10BURSTLEN 0x30

Symbol 0 and 1 Register.

Configure Burst-lengths of both symbols.

§ PHHAL_HW_RC663_REG_TXWAITCTRL

#define PHHAL_HW_RC663_REG_TXWAITCTRL 0x31

Tx-Wait Control Register.

Enable / Configure Tx Waiting-Time.

§ PHHAL_HW_RC663_REG_TXWAITLO

#define PHHAL_HW_RC663_REG_TXWAITLO 0x32

TxWaitLo Register.

Contains the Least-Significant-Bits for the Tx Waiting-Time.

§ PHHAL_HW_RC663_REG_FRAMECON

#define PHHAL_HW_RC663_REG_FRAMECON 0x33

Frame control register.

Contains active Start/Stop symbol and Parity settings.

§ PHHAL_HW_RC663_REG_RXSOFD

#define PHHAL_HW_RC663_REG_RXSOFD 0x34

RxSOFD Register.

Contains Start-of-Frame and subcarrier detection bits.

§ PHHAL_HW_RC663_REG_RXCTRL

#define PHHAL_HW_RC663_REG_RXCTRL 0x35

Rx Control Register.

Configure Receiver settings such as baudrate and EMD-suppression feature.

§ PHHAL_HW_RC663_REG_RXWAIT

#define PHHAL_HW_RC663_REG_RXWAIT 0x36

Rx-Wait Register.

Configure Receiver Deaf-Time.

§ PHHAL_HW_RC663_REG_RXTHRESHOLD

#define PHHAL_HW_RC663_REG_RXTHRESHOLD 0x37

Rx-Threshold Register.

Configure Receiver Threshold.

§ PHHAL_HW_RC663_REG_RCV

#define PHHAL_HW_RC663_REG_RCV 0x38

Receiver Register.

Configure Collision-Level and other features.

§ PHHAL_HW_RC663_REG_RXANA

#define PHHAL_HW_RC663_REG_RXANA 0x39

Rx-Analog Register.

Configure analog settings and parameters for Receiver circuitry.

§ PHHAL_HW_RC663_REG_SERIALSPEED

#define PHHAL_HW_RC663_REG_SERIALSPEED 0x3B

Serial Speed Register.

Configure serial baudrates.

§ PHHAL_HW_RC663_REG_LPO_TRIMM

#define PHHAL_HW_RC663_REG_LPO_TRIMM 0x3C

LPO_TRIMM Register.

Trimm Control Input for Low Power Oscillator.

§ PHHAL_HW_RC663_REG_PLL_CTRL

#define PHHAL_HW_RC663_REG_PLL_CTRL 0x3D

PLL Control Register.

Configure PLL settings.

§ PHHAL_HW_RC663_REG_PLL_DIV

#define PHHAL_HW_RC663_REG_PLL_DIV 0x3E

PLL DivO Register.

Contains PLL output.

§ PHHAL_HW_RC663_REG_LPCD_QMIN

#define PHHAL_HW_RC663_REG_LPCD_QMIN 0x3F

LPCD QMin Register.

Configure IMax(2) and QMin values for LPCD.

§ PHHAL_HW_RC663_REG_LPCD_QMAX

#define PHHAL_HW_RC663_REG_LPCD_QMAX 0x40

LPCD QMax Register.

Configure IMax(1) and QMax values for LPCD.

§ PHHAL_HW_RC663_REG_LPCD_IMIN

#define PHHAL_HW_RC663_REG_LPCD_IMIN 0x41

LPCD IMin Register.

Configure IMax(0) and IMin values for LPCD.

§ PHHAL_HW_RC663_REG_LPCD_RESULT_I

#define PHHAL_HW_RC663_REG_LPCD_RESULT_I 0x42

LPCD Result(I) Register.

Contains I-Channel results of LPCD.

§ PHHAL_HW_RC663_REG_LPCD_RESULT_Q

#define PHHAL_HW_RC663_REG_LPCD_RESULT_Q 0x43

LPCD Result(Q) Register.

Contains Q-Channel results of LPCD.

§ PHHAL_HW_RC663_TXBITMOD

#define PHHAL_HW_RC663_TXBITMOD 0x48

Transmitter bit modulus Register.

Define Tx data interpretation.

§ PHHAL_HW_RC663_REG_TXDATACON

#define PHHAL_HW_RC663_REG_TXDATACON 0x4A

Transmitter data configuration register.

Contains Type of data encoding, subcarrier frequency of envelope and frequency of bitstream.

§ PHHAL_HW_RC663_REG_TXDATAMOD

#define PHHAL_HW_RC663_REG_TXDATAMOD 0x4B

Transmitter data modulation Register.

Configure Frame step, miller coding, Pulse type, Inversion of envelop of data and Envelop type

§ PHHAL_HW_RC663_REG_TXSYMFREQ

#define PHHAL_HW_RC663_REG_TXSYMFREQ 0x4C

Transmitter Symbol Frequency.

Configure Frequency for Transmitter symbol

§ PHHAL_HW_RC663_REG_TXSYM0H

#define PHHAL_HW_RC663_REG_TXSYM0H 0x4D

Transmitter Symbol 0 High Register.

Contains value for Transmitter Symbol 0.

§ PHHAL_HW_RC663_REG_TXSYM0L

#define PHHAL_HW_RC663_REG_TXSYM0L 0x4E

Transmitter Symbol 0 Low Register.

Contains value for Transmitter Symbol 0.

§ PHHAL_HW_RC663_REG_TXSYM1H

#define PHHAL_HW_RC663_REG_TXSYM1H 0x4F

Transmitter Symbol 1 High Register.

Contains value for Transmitter Symbol 1.

§ PHHAL_HW_RC663_REG_TXSYM1L

#define PHHAL_HW_RC663_REG_TXSYM1L 0x50

Transmitter Symbol 1 Low Register.

Contains value for Transmitter Symbol 1.

§ PHHAL_HW_RC663_REG_TXSYM2

#define PHHAL_HW_RC663_REG_TXSYM2 0x51

Tx Symbol 2 Register.

Contains Symbol definition for Symbol 2.

§ PHHAL_HW_RC663_REG_TXSYM3

#define PHHAL_HW_RC663_REG_TXSYM3 0x52

Tx Symbol 3 Register.

Contains Symbol definition for Symbol 3.

§ PHHAL_HW_RC663_REG_TXSYM10LEN

#define PHHAL_HW_RC663_REG_TXSYM10LEN 0x53

Transmitter Symbol 0 + Symbol 1 Length Register.

Contains Length of Transmitter Symbol 0 + Symbol 1.

§ PHHAL_HW_RC663_REG_TXSYM32LEN

#define PHHAL_HW_RC663_REG_TXSYM32LEN 0x54

Transmitter symbol 3 + symbol 2 length register.

Contains No. of Valid bits in Tx Symbol 2 and Tx Symbol 3 registers.

§ PHHAL_HW_RC663_REG_TXSYM10BURSTCTRL

#define PHHAL_HW_RC663_REG_TXSYM10BURSTCTRL 0x55

Symbol 0 and 1 Register.

Configure Burst-control of both symbols.

§ PHHAL_HW_RC663_REG_TXSYM10MOD

#define PHHAL_HW_RC663_REG_TXSYM10MOD 0x56

Symbol 0 and 1 Register.

Configure Modulation Register of both symbols.

§ PHHAL_HW_RC663_REG_TXSYM32MOD

#define PHHAL_HW_RC663_REG_TXSYM32MOD 0x57

Transmitter symbol 3 + symbol 2 modulation register.

Configures Miller encoding, Pulse type and Envelope type.

§ PHHAL_HW_RC663_REG_RXBITMOD

#define PHHAL_HW_RC663_REG_RXBITMOD 0x58

Receiver bit modulation register.

Contains Receiver data configurations.

§ PHHAL_HW_RC663_REG_RXEOFSYM

#define PHHAL_HW_RC663_REG_RXEOFSYM 0x59

Receiver end of frame symbol register.

This Register defines the pattern of the EOF symbol.

§ PHHAL_HW_RC663_REG_RXSYNCVAlH

#define PHHAL_HW_RC663_REG_RXSYNCVAlH 0x5A

Receiver synchronisation value high register.

Defines the high byte of the Start Of Frame (SOF) pattern, which must be in front of the receiving data.

§ PHHAL_HW_RC663_REG_RXSYNCVAlL

#define PHHAL_HW_RC663_REG_RXSYNCVAlL 0x5B

Receiver synchronisation value low register.

Defines the low byte of the Start Of Frame (SOF) Pattern, which must be in front of the receiving data.

§ PHHAL_HW_RC663_REG_RXSYNCMOD

#define PHHAL_HW_RC663_REG_RXSYNCMOD 0x5C

Receiver synchronisation mode register.

Contains Rx sync values.

§ PHHAL_HW_RC663_REG_RXMOD

#define PHHAL_HW_RC663_REG_RXMOD 0x5D

Receiver modulation register.

Contains Reciever configuration registers.

§ PHHAL_HW_RC663_REG_RXCORR

#define PHHAL_HW_RC663_REG_RXCORR 0x5E

Receiver Correlation Register.

Contains Correlation Frequency, Correlation Speed and Correlation Length.

§ PHHAL_HW_RC663_REG_RXSVETTE

#define PHHAL_HW_RC663_REG_RXSVETTE 0x5F

Calibration register of the receiver.

Contains Fabrication calibration of the receiver.

§ PHHAL_HW_RC663_REG_DACVAL

#define PHHAL_HW_RC663_REG_DACVAL 0x64

DAC value Register.

Contains DAC Value.

§ PHHAL_HW_RC663_REG_TESTMOD

#define PHHAL_HW_RC663_REG_TESTMOD 0x66

Test mode Register.

Contains Test Level enable and Test mode configuration.

§ PHHAL_HW_RC663_REG_ANAXTAL

#define PHHAL_HW_RC663_REG_ANAXTAL 0x71

Analog Xtal register.

Contains Xtal mode and Xtal bypassreg.

§ PHHAL_HW_RC663_REG_SIGPROTEST

#define PHHAL_HW_RC663_REG_SIGPROTEST 0x72

EPCv2 mode Register.

Enables or Disables Testmode Rx and EPCv2 mode.

§ PHHAL_HW_RC663_REG_VERSION

#define PHHAL_HW_RC663_REG_VERSION 0x7F

Version Register.

Contains IC Version and Subversion.

§ PHHAL_HW_RC663_BIT_STANDBY

#define PHHAL_HW_RC663_BIT_STANDBY 0x80U

Standby bit; If set, the IC transits to standby mode.

§ PHHAL_HW_RC663_CMD_IDLE

#define PHHAL_HW_RC663_CMD_IDLE 0x00U

No action; cancels current command execution.

§ PHHAL_HW_RC663_CMD_LPCD

#define PHHAL_HW_RC663_CMD_LPCD 0x01U

Low Power Card Detection.

§ PHHAL_HW_RC663_CMD_LOADKEY

#define PHHAL_HW_RC663_CMD_LOADKEY 0x02U

Reads a key from the FIFO buffer and puts it into the key buffer.

§ PHHAL_HW_RC663_CMD_MFAUTHENT

#define PHHAL_HW_RC663_CMD_MFAUTHENT 0x03U

Performs the Mifare standard authentication (in Mifare Reader/Writer mode only).

§ PHHAL_HW_RC663_CMD_ACKREQ

#define PHHAL_HW_RC663_CMD_ACKREQ 0x04U

Performs a Query, a Ack and a Req-Rn for EPC V2.

§ PHHAL_HW_RC663_CMD_RECEIVE

#define PHHAL_HW_RC663_CMD_RECEIVE 0x05U

Activates the receiver circuitry.

§ PHHAL_HW_RC663_CMD_TRANSMIT

#define PHHAL_HW_RC663_CMD_TRANSMIT 0x06U

Transmits data from the FIFO buffer to Card.

§ PHHAL_HW_RC663_CMD_TRANSCEIVE

#define PHHAL_HW_RC663_CMD_TRANSCEIVE 0x07U

Like PHHAL_HW_RC663_CMD_TRANSMIT but automatically activates the receiver after transmission is finished.

§ PHHAL_HW_RC663_CMD_WRITEE2

#define PHHAL_HW_RC663_CMD_WRITEE2 0x08U

Gets one byte from FIFO buffer and writes it to the internal EEPROM.

§ PHHAL_HW_RC663_CMD_WRITEE2PAGE

#define PHHAL_HW_RC663_CMD_WRITEE2PAGE 0x09U

Gets up to 64 Bytes from FIFO buffer and writes it to the EEPROM.

§ PHHAL_HW_RC663_CMD_READE2

#define PHHAL_HW_RC663_CMD_READE2 0x0AU

Reads data from EEPROM and puts it into the FIFO buffer.

§ PHHAL_HW_RC663_CMD_LOADREG

#define PHHAL_HW_RC663_CMD_LOADREG 0x0CU

Reads data from EEPROM and initializes the registers.

§ PHHAL_HW_RC663_CMD_LOADPROTOCOL

#define PHHAL_HW_RC663_CMD_LOADPROTOCOL 0x0DU

Reads data from EEPROM and initializes the registers needed for a protocol change.

§ PHHAL_HW_RC663_CMD_LOADKEYE2

#define PHHAL_HW_RC663_CMD_LOADKEYE2 0x0EU

Copies a Mifare key from the EEPROM into the key buffer.

§ PHHAL_HW_RC663_CMD_STOREKEYE2

#define PHHAL_HW_RC663_CMD_STOREKEYE2 0x0FU

Stores a Mifare key into the EEPROM.

§ PHHAL_HW_RC663_CMD_SOFTRESET

#define PHHAL_HW_RC663_CMD_SOFTRESET 0x1FU

Resets the IC.

§ PHHAL_HW_RC663_MASK_COMMAND

#define PHHAL_HW_RC663_MASK_COMMAND 0x1FU

Mask for Command-bits.

§ PHHAL_HW_RC663_BIT_TSTOP_RX

#define PHHAL_HW_RC663_BIT_TSTOP_RX 0x80U

Stop timer on receive interrupt.

§ PHHAL_HW_RC663_BIT_TAUTORESTARTED

#define PHHAL_HW_RC663_BIT_TAUTORESTARTED 0x08U

Auto-restart timer after underflow.

§ PHHAL_HW_RC663_BIT_TSTART_TX

#define PHHAL_HW_RC663_BIT_TSTART_TX 0x10U

Start timer on transmit interrupt.

§ PHHAL_HW_RC663_BIT_TSTART_LFO

#define PHHAL_HW_RC663_BIT_TSTART_LFO 0x20U

Use this timer for LFO trimming.

§ PHHAL_HW_RC663_BIT_TSTART_LFO_UV

#define PHHAL_HW_RC663_BIT_TSTART_LFO_UV 0x30U

Use this timer for LFO trimming (generate UV at a trimming event).

§ PHHAL_HW_RC663_MASK_TSTART

#define PHHAL_HW_RC663_MASK_TSTART 0x30U

Mask for TSTART bits.

§ PHHAL_HW_RC663_VALUE_TCLK_1356_MHZ

#define PHHAL_HW_RC663_VALUE_TCLK_1356_MHZ 0x00U

Use 13.56MHz as input clock.

§ PHHAL_HW_RC663_VALUE_TCLK_212_KHZ

#define PHHAL_HW_RC663_VALUE_TCLK_212_KHZ 0x01U

Use 212KHz as input clock.

§ PHHAL_HW_RC663_VALUE_TCLK_T0

#define PHHAL_HW_RC663_VALUE_TCLK_T0 0x02U

Use timer0 as input clock.

§ PHHAL_HW_RC663_VALUE_TCLK_T1

#define PHHAL_HW_RC663_VALUE_TCLK_T1 0x03U

Use timer1 as input clock.

Function Documentation

§ phhalHw_Rc663_WriteRegister()

phStatus_t phhalHw_Rc663_WriteRegister | ( | phhalHw_Rc663_DataParams_t * | pDataParams,
 |  | uint8_t | bAddress,
 |  | uint8_t | bValue
 | ) |  |

Write to 8bit address of CL front-end register.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INTERFACE_ERROR | Hardware problem
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bAddress | Register Address.
[in] | bValue | Register Value.

§ phhalHw_Rc663_ReadRegister()

phStatus_t phhalHw_Rc663_ReadRegister | ( | phhalHw_Rc663_DataParams_t * | pDataParams,
 |  | uint8_t | bAddress,
 |  | uint8_t * | pValue
 | ) |  |

Read 8bit register address from CL front-ends.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INTERFACE_ERROR | Hardware problem
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bAddress | Register Address.
[out] | pValue | Register Value.


NXP NFC Reader Library: Configuration

Configuration
Hardware Abstraction Layer » component : Rc663

Custom configuration related to NFC IC Hardware settings. More...

Collaboration diagram for Configuration:

Memory related constants

#define | PHHAL_HW_RC663_PRECACHED_255BYTES 0xFFU
Maximum number of bytes to precache into FIFO before triggering a command for 255 FIFO. More...
#define | PHHAL_HW_RC663_PRECACHED_512BYTES 0x200U
Maximum number of bytes to precache into FIFO before triggering a command for 512 FIFO. More...

Modulation indices

#define | PHHAL_HW_RC663_MODINDEX_I14443B 0xCCU
Default modulation index for ISO14443B. More...
#define | PHHAL_HW_RC663_MODINDEX_FELICA 0x17U
Default modulation index for Felica. More...
#define | PHHAL_HW_RC663_MODINDEX_I15693 0x10U
Default modulation index for ISO15693. More...
#define | PHHAL_HW_RC663_MODINDEX_EPCUID 0x10U
Default modulation index for EPC/UID. More...
#define | PHHAL_HW_RC663_MODINDEX_I18000P3M3 0x10U
Default modulation index for ISO18000-3 Mode3. More...

RxThreshold values

#define | PHHAL_HW_RC663_RXTHRESHOLD_I14443A_106 0x3FU
RxThreshold for ISO14443A @ 106kbit/s. More...
#define | PHHAL_HW_RC663_RXTHRESHOLD_I14443A_212 0x3FU
RxThreshold for ISO14443A @ 212kbit/s. More...
#define | PHHAL_HW_RC663_RXTHRESHOLD_I14443A_424 0x3FU
RxThreshold for ISO14443A @ 424kbit/s. More...
#define | PHHAL_HW_RC663_RXTHRESHOLD_I14443A_848 0x3FU
RxThreshold for ISO14443A @ 848kbit/s. More...
#define | PHHAL_HW_RC663_RXTHRESHOLD_I14443B_106 0x3FU
RxThreshold for ISO14443B @ 106kbit/s. More...
#define | PHHAL_HW_RC663_RXTHRESHOLD_I14443B_212 0x3FU
RxThreshold for ISO14443B @ 212kbit/s. More...
#define | PHHAL_HW_RC663_RXTHRESHOLD_I14443B_424 0x3FU
RxThreshold for ISO14443B @ 424kbit/s. More...
#define | PHHAL_HW_RC663_RXTHRESHOLD_I14443B_848 0x3FU
RxThreshold for ISO14443B @ 848kbit/s. More...
#define | PHHAL_HW_RC663_RXTHRESHOLD_FELICA_212 0x3FU
RxThreshold for Felica @ 212kbit/s. More...
#define | PHHAL_HW_RC663_RXTHRESHOLD_FELICA_424 0x3FU
RxThreshold for Felica @ 424kbit/s. More...
#define | PHHAL_HW_RC663_RXTHRESHOLD_I15693_FAST 0x44U
RxThreshold for ISO15693 @ High. More...
#define | PHHAL_HW_RC663_RXTHRESHOLD_I15693_FAST_HIGH 0x44U
RxThreshold for ISO15693 @ Fast_High. More...
#define | PHHAL_HW_RC663_RXTHRESHOLD_EPCUID 0x4EU
RxThreshold for EPC/UID. More...
#define | PHHAL_HW_RC663_RXTHRESHOLD_I18000P3M3 0x36U
RxThreshold for ISO18000-3 Mode3. More...

LPCD min. timer reload values

#define | PHHAL_HW_RC663_LPCD_T3_RELOAD_MIN 0x0010U
Default minimum for T3 reload value (used only for PHHAL_HW_RC663_CMD_LPCD_MODE_DEFAULT mode). More...
#define | PHHAL_HW_RC663_LPCD_T4_RELOAD_MIN 0x0005U
Default minimum for T4 reload value (used only for PHHAL_HW_RC663_CMD_LPCD_MODE_DEFAULT mode). More...

Feature selection

#define PHHAL_HW_RC663_FEATURE_FIFO_UNDERFLOW_CHECK
Checks for FIFO underflow during data transmission if defined. More...

Detailed Description

Custom configuration related to NFC IC Hardware settings.

Macro Definition Documentation

§ PHHAL_HW_RC663_PRECACHED_255BYTES

#define PHHAL_HW_RC663_PRECACHED_255BYTES 0xFFU

Maximum number of bytes to precache into FIFO before triggering a command for 255 FIFO.

§ PHHAL_HW_RC663_PRECACHED_512BYTES

#define PHHAL_HW_RC663_PRECACHED_512BYTES 0x200U

Maximum number of bytes to precache into FIFO before triggering a command for 512 FIFO.

§ PHHAL_HW_RC663_MODINDEX_I14443B

#define PHHAL_HW_RC663_MODINDEX_I14443B 0xCCU

Default modulation index for ISO14443B.

§ PHHAL_HW_RC663_MODINDEX_FELICA

#define PHHAL_HW_RC663_MODINDEX_FELICA 0x17U

Default modulation index for Felica.

§ PHHAL_HW_RC663_MODINDEX_I15693

#define PHHAL_HW_RC663_MODINDEX_I15693 0x10U

Default modulation index for ISO15693.

§ PHHAL_HW_RC663_MODINDEX_EPCUID

#define PHHAL_HW_RC663_MODINDEX_EPCUID 0x10U

Default modulation index for EPC/UID.

§ PHHAL_HW_RC663_MODINDEX_I18000P3M3

#define PHHAL_HW_RC663_MODINDEX_I18000P3M3 0x10U

Default modulation index for ISO18000-3 Mode3.

§ PHHAL_HW_RC663_RXTHRESHOLD_I14443A_106

#define PHHAL_HW_RC663_RXTHRESHOLD_I14443A_106 0x3FU

RxThreshold for ISO14443A @ 106kbit/s.

§ PHHAL_HW_RC663_RXTHRESHOLD_I14443A_212

#define PHHAL_HW_RC663_RXTHRESHOLD_I14443A_212 0x3FU

RxThreshold for ISO14443A @ 212kbit/s.

§ PHHAL_HW_RC663_RXTHRESHOLD_I14443A_424

#define PHHAL_HW_RC663_RXTHRESHOLD_I14443A_424 0x3FU

RxThreshold for ISO14443A @ 424kbit/s.

§ PHHAL_HW_RC663_RXTHRESHOLD_I14443A_848

#define PHHAL_HW_RC663_RXTHRESHOLD_I14443A_848 0x3FU

RxThreshold for ISO14443A @ 848kbit/s.

§ PHHAL_HW_RC663_RXTHRESHOLD_I14443B_106

#define PHHAL_HW_RC663_RXTHRESHOLD_I14443B_106 0x3FU

RxThreshold for ISO14443B @ 106kbit/s.

§ PHHAL_HW_RC663_RXTHRESHOLD_I14443B_212

#define PHHAL_HW_RC663_RXTHRESHOLD_I14443B_212 0x3FU

RxThreshold for ISO14443B @ 212kbit/s.

§ PHHAL_HW_RC663_RXTHRESHOLD_I14443B_424

#define PHHAL_HW_RC663_RXTHRESHOLD_I14443B_424 0x3FU

RxThreshold for ISO14443B @ 424kbit/s.

§ PHHAL_HW_RC663_RXTHRESHOLD_I14443B_848

#define PHHAL_HW_RC663_RXTHRESHOLD_I14443B_848 0x3FU

RxThreshold for ISO14443B @ 848kbit/s.

§ PHHAL_HW_RC663_RXTHRESHOLD_FELICA_212

#define PHHAL_HW_RC663_RXTHRESHOLD_FELICA_212 0x3FU

RxThreshold for Felica @ 212kbit/s.

§ PHHAL_HW_RC663_RXTHRESHOLD_FELICA_424

#define PHHAL_HW_RC663_RXTHRESHOLD_FELICA_424 0x3FU

RxThreshold for Felica @ 424kbit/s.

§ PHHAL_HW_RC663_RXTHRESHOLD_I15693_FAST

#define PHHAL_HW_RC663_RXTHRESHOLD_I15693_FAST 0x44U

RxThreshold for ISO15693 @ High.

§ PHHAL_HW_RC663_RXTHRESHOLD_I15693_FAST_HIGH

#define PHHAL_HW_RC663_RXTHRESHOLD_I15693_FAST_HIGH 0x44U

RxThreshold for ISO15693 @ Fast_High.

§ PHHAL_HW_RC663_RXTHRESHOLD_EPCUID

#define PHHAL_HW_RC663_RXTHRESHOLD_EPCUID 0x4EU

RxThreshold for EPC/UID.

§ PHHAL_HW_RC663_RXTHRESHOLD_I18000P3M3

#define PHHAL_HW_RC663_RXTHRESHOLD_I18000P3M3 0x36U

RxThreshold for ISO18000-3 Mode3.

§ PHHAL_HW_RC663_LPCD_T3_RELOAD_MIN

#define PHHAL_HW_RC663_LPCD_T3_RELOAD_MIN 0x0010U

Default minimum for T3 reload value (used only for PHHAL_HW_RC663_CMD_LPCD_MODE_DEFAULT mode).

§ PHHAL_HW_RC663_LPCD_T4_RELOAD_MIN

#define PHHAL_HW_RC663_LPCD_T4_RELOAD_MIN 0x0005U

Default minimum for T4 reload value (used only for PHHAL_HW_RC663_CMD_LPCD_MODE_DEFAULT mode).

§ PHHAL_HW_RC663_FEATURE_FIFO_UNDERFLOW_CHECK

#define PHHAL_HW_RC663_FEATURE_FIFO_UNDERFLOW_CHECK

Checks for FIFO underflow during data transmission if defined.


NXP NFC Reader Library: phhalHw_Rc663_DataParams_t Struct Reference

Data Fields
phhalHw_Rc663_DataParams_t Struct Reference
Hardware Abstraction Layer » component : Rc663

Rc663 HAL parameter structure. More...

Data Fields

uint16_t wId
Layer ID for this component, NEVER MODIFY!. More...
void * | pBalDataParams
Pointer to the lower layers parameter structure. More...
uint8_t * pLoadRegConfig
Pointer to configuration buffer for LoadReg mode; Refer to phhalHw_Rc663_Init. More...
uint8_t * pTxBuffer
Pointer to global transmit buffer used by the Exchange() function. More...
uint8_t * pRxBuffer
Pointer to global receive buffer used by the Exchange() function. More...
uint32_t dwTimingUs
Current timing value. More...
uint16_t wCfgShadow [PHHAL_HW_RC663_SHADOW_COUNT]
Configuration shadow; Stores configuration for current card type. More...
uint16_t wTxBufSize
Size of the global transmit buffer. More...
uint16_t wTxBufLen
Number of valid bytes within the transmit buffer. More...
uint16_t wRxBufSize
Size of the global receive buffer. More...
uint16_t wRxBufLen
Number of valid bytes within the receive buffer. More...
uint16_t wRxBufStartPos
Starting position within the global receive buffer. More...
uint16_t wMaxPrecachedBytes
Holds the max. More...
uint16_t wTimingMode
Current timing measurement mode. More...
uint16_t wFieldOffTime
Field-Off-Time in milliseconds. More...
uint16_t wFieldRecoveryTime
Field-Recovery-Time in milliseconds. More...
uint16_t wAdditionalInfo
Storage for additional error information. More...
uint16_t wPowerDownTimeMs
Power-Down time in milliseconds if power-down mode is used. More...
uint16_t wDetectionTimeUs
Detection time in microseconds if power-down mode is used. More...
uint16_t dwFdtPc
Current timing value backup for PC. More...
uint8_t bLoadRegMode
Whether LoadReg-Mode is enabled or not. More...
uint8_t bCardType
Type of card for which the hal is configured for. More...
uint8_t bTimeoutUnit
Unit of current timeout value (either PHHAL_HW_TIME_MICROSECONDS or PHHAL_HW_TIME_MILLISECONDS). More...
uint8_t bSymbolStart
Preamble of a frame. More...
uint8_t bSymbolEnd
Trailer symbol of a frame. More...
uint8_t bFifoSize
Fifo-Size setting. More...
uint8_t bBalConnectionType
Type of the underlying BAL connection. More...
uint8_t bRfResetAfterTo
Storage for PHHAL_HW_CONFIG_RFRESET_ON_TIMEOUT setting. More...
uint8_t bMode
One of the above LPCD modes. More...
uint8_t bI
I-Channel value in case of no card on antenna. More...
uint8_t bQ
Q-Channel value in case of no card on antenna. More...
uint8_t bJewelActivated
Set the PH_ON/PH_OFF Jewel exchange mode. More...
uint8_t bCRC5Enabled
Set the PH_ON/PH_OFF for 18000P3M3 CRC5. More...
uint8_t bOpeMode
Operation mode. More...
uint8_t bEmdNoiseMaxDataLen
EMVCo EMD noise check length. More...
uint8_t bRxMultiple
Flag indicates whether RX multiple is to be enabled or not. More...
uint8_t bNfcipMode
Enable/Disable to handle start byte at 106kbps in NFCIP-1 mode. More...
uint8_t bCheckEmdErr
Enable/Disable to perform Emvco EMD error check. More...
uint8_t | abStoredCRC [2]
StoredCRC of ISO 18000p3m3 tag. More...
uint16_t wCurrentSlotCount
ISO 18000p3m3 slot count at time of buffer overflow (PH_ERR_SUCCESS_CHAINING). More...
uint8_t bSession
Inventory session of ISO 18000p3m3. More...
uint8_t b18000p3m3Q
ISO18000p3m3 Q i.e slot count value. More...
phOsal_EventObj_t HwEventObj
Event Object. More...
ppRFCallBck_t pRFISRCallback
Application RF callback called by ISR handler. More...

Detailed Description

Rc663 HAL parameter structure.

Field Documentation

§ wId

uint16_t phhalHw_Rc663_DataParams_t::wId

Layer ID for this component, NEVER MODIFY!.

§ pBalDataParams

void* phhalHw_Rc663_DataParams_t::pBalDataParams

Pointer to the lower layers parameter structure.

§ pLoadRegConfig

uint8_t* phhalHw_Rc663_DataParams_t::pLoadRegConfig

Pointer to configuration buffer for LoadReg mode; Refer to phhalHw_Rc663_Init.

§ pTxBuffer

uint8_t* phhalHw_Rc663_DataParams_t::pTxBuffer

Pointer to global transmit buffer used by the Exchange() function.

§ pRxBuffer

uint8_t* phhalHw_Rc663_DataParams_t::pRxBuffer

Pointer to global receive buffer used by the Exchange() function.

§ dwTimingUs

uint32_t phhalHw_Rc663_DataParams_t::dwTimingUs

Current timing value.

§ wCfgShadow

uint16_t phhalHw_Rc663_DataParams_t::wCfgShadow[PHHAL_HW_RC663_SHADOW_COUNT]

Configuration shadow; Stores configuration for current card type.

§ wTxBufSize

uint16_t phhalHw_Rc663_DataParams_t::wTxBufSize

Size of the global transmit buffer.

§ wTxBufLen

uint16_t phhalHw_Rc663_DataParams_t::wTxBufLen

Number of valid bytes within the transmit buffer.

§ wRxBufSize

uint16_t phhalHw_Rc663_DataParams_t::wRxBufSize

Size of the global receive buffer.

§ wRxBufLen

uint16_t phhalHw_Rc663_DataParams_t::wRxBufLen

Number of valid bytes within the receive buffer.

§ wRxBufStartPos

uint16_t phhalHw_Rc663_DataParams_t::wRxBufStartPos

Starting position within the global receive buffer.

§ wMaxPrecachedBytes

uint16_t phhalHw_Rc663_DataParams_t::wMaxPrecachedBytes

Holds the max.

number of bytes which are pre-cached prior to command execution.

§ wTimingMode

uint16_t phhalHw_Rc663_DataParams_t::wTimingMode

Current timing measurement mode.

§ wFieldOffTime

uint16_t phhalHw_Rc663_DataParams_t::wFieldOffTime

Field-Off-Time in milliseconds.

§ wFieldRecoveryTime

uint16_t phhalHw_Rc663_DataParams_t::wFieldRecoveryTime

Field-Recovery-Time in milliseconds.

§ wAdditionalInfo

uint16_t phhalHw_Rc663_DataParams_t::wAdditionalInfo

Storage for additional error information.

§ wPowerDownTimeMs

uint16_t phhalHw_Rc663_DataParams_t::wPowerDownTimeMs

Power-Down time in milliseconds if power-down mode is used.

§ wDetectionTimeUs

uint16_t phhalHw_Rc663_DataParams_t::wDetectionTimeUs

Detection time in microseconds if power-down mode is used.

§ dwFdtPc

uint16_t phhalHw_Rc663_DataParams_t::dwFdtPc

Current timing value backup for PC.

§ bLoadRegMode

uint8_t phhalHw_Rc663_DataParams_t::bLoadRegMode

Whether LoadReg-Mode is enabled or not.

§ bCardType

uint8_t phhalHw_Rc663_DataParams_t::bCardType

Type of card for which the hal is configured for.

§ bTimeoutUnit

uint8_t phhalHw_Rc663_DataParams_t::bTimeoutUnit

Unit of current timeout value (either PHHAL_HW_TIME_MICROSECONDS or PHHAL_HW_TIME_MILLISECONDS).

§ bSymbolStart

uint8_t phhalHw_Rc663_DataParams_t::bSymbolStart

Preamble of a frame.

§ bSymbolEnd

uint8_t phhalHw_Rc663_DataParams_t::bSymbolEnd

Trailer symbol of a frame.

§ bFifoSize

uint8_t phhalHw_Rc663_DataParams_t::bFifoSize

Fifo-Size setting.

§ bBalConnectionType

uint8_t phhalHw_Rc663_DataParams_t::bBalConnectionType

Type of the underlying BAL connection.

Refer to PHHAL_HW_CONFIG_BAL_CONNECTION.

§ bRfResetAfterTo

uint8_t phhalHw_Rc663_DataParams_t::bRfResetAfterTo

Storage for PHHAL_HW_CONFIG_RFRESET_ON_TIMEOUT setting.

§ bMode

uint8_t phhalHw_Rc663_DataParams_t::bMode

One of the above LPCD modes.

§ bI

uint8_t phhalHw_Rc663_DataParams_t::bI

I-Channel value in case of no card on antenna.

§ bQ

uint8_t phhalHw_Rc663_DataParams_t::bQ

Q-Channel value in case of no card on antenna.

§ bJewelActivated

uint8_t phhalHw_Rc663_DataParams_t::bJewelActivated

Set the PH_ON/PH_OFF Jewel exchange mode.

§ bCRC5Enabled

uint8_t phhalHw_Rc663_DataParams_t::bCRC5Enabled

Set the PH_ON/PH_OFF for 18000P3M3 CRC5.

§ bOpeMode

uint8_t phhalHw_Rc663_DataParams_t::bOpeMode

Operation mode.

One of NFC, EMVCo, ISO.

§ bEmdNoiseMaxDataLen

uint8_t phhalHw_Rc663_DataParams_t::bEmdNoiseMaxDataLen

EMVCo EMD noise check length.

§ bRxMultiple

uint8_t phhalHw_Rc663_DataParams_t::bRxMultiple

Flag indicates whether RX multiple is to be enabled or not.

§ bNfcipMode

uint8_t phhalHw_Rc663_DataParams_t::bNfcipMode

Enable/Disable to handle start byte at 106kbps in NFCIP-1 mode.

§ bCheckEmdErr

uint8_t phhalHw_Rc663_DataParams_t::bCheckEmdErr

Enable/Disable to perform Emvco EMD error check.

§ abStoredCRC

uint8_t phhalHw_Rc663_DataParams_t::abStoredCRC[2]

StoredCRC of ISO 18000p3m3 tag.

§ wCurrentSlotCount

uint16_t phhalHw_Rc663_DataParams_t::wCurrentSlotCount

ISO 18000p3m3 slot count at time of buffer overflow (PH_ERR_SUCCESS_CHAINING).

§ bSession

uint8_t phhalHw_Rc663_DataParams_t::bSession

Inventory session of ISO 18000p3m3.

§ b18000p3m3Q

uint8_t phhalHw_Rc663_DataParams_t::b18000p3m3Q

ISO18000p3m3 Q i.e slot count value.

§ HwEventObj

phOsal_EventObj_t phhalHw_Rc663_DataParams_t::HwEventObj

Event Object.

§ pRFISRCallback

ppRFCallBck_t phhalHw_Rc663_DataParams_t::pRFISRCallback

Application RF callback called by ISR handler.

The documentation for this struct was generated from the following file:
  • phhalHw.h


NXP NFC Reader Library: component : Rc523

Modules | Data Structures | Macros | Functions
component : Rc523
Hardware Abstraction Layer

RC523 Reader HAL. More...

Collaboration diagram for component : Rc523:

Modules

Commands
Supported ReaderIC commands.
Internal
Internal definitions.
Register Definitions
Register definitions.
Configuration
Custom Configuration of hardware related settings.

Data Structures

struct phhalHw_Rc523_DataParams_t
Rc523 HAL parameter structure. More...

Macros

#define | PHHAL_HW_RC523_ID 0x02
ID for Rc523 HAL component. More...
#define | PHHAL_HW_RC523_SHADOW_COUNT 0x000FU
Number of shadowed configurations. More...

Functions

phStatus_t phhalHw_Rc523_Init (phhalHw_Rc523_DataParams_t *pDataParams, uint16_t wSizeOfDataParams, void *pBalDataParams, void *pKeyStoreDataParams, uint8_t *pTxBuffer, uint16_t wTxBufSize, uint8_t *pRxBuffer, uint16_t wRxBufSize)
Initialize the HAL component. More...

Detailed Description

RC523 Reader HAL.

This HAL supports all the additional features required for Pn512 :
Pn512 and Rc523 are compatible for the common features that they support.

Macro Definition Documentation

§ PHHAL_HW_RC523_ID

#define PHHAL_HW_RC523_ID 0x02

ID for Rc523 HAL component.

§ PHHAL_HW_RC523_SHADOW_COUNT

#define PHHAL_HW_RC523_SHADOW_COUNT 0x000FU

Number of shadowed configurations.

Function Documentation

§ phhalHw_Rc523_Init()

phStatus_t phhalHw_Rc523_Init | ( | phhalHw_Rc523_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams,
 |  | void * | pBalDataParams,
 |  | void * | pKeyStoreDataParams,
 |  | uint8_t * | pTxBuffer,
 |  | uint16_t | wTxBufSize,
 |  | uint8_t * | pRxBuffer,
 |  | uint16_t | wRxBufSize
 | ) |  |

Initialize the HAL component.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wSizeOfDataParams | Specifies the size of the data parameter structure.
[in] | pBalDataParams | Pointer to the lower layers parameter structure.
[in] | pKeyStoreDataParams | Pointer to the parameter structure of the keyStore layer.
[in] | pTxBuffer | Pointer to global transmit buffer used by the phhalHw_Exchange() function.
[in] | wTxBufSize | Size of the global transmit buffer.
[in] | pRxBuffer | Pointer to global receive buffer used by the phhalHw_Exchange() function.
[in] | wRxBufSize | Size of the global receive buffer. Specify the buffer +1 byte, because one byte is reserved for SPI communication.


NXP NFC Reader Library: Commands

Functions
Commands
Hardware Abstraction Layer » component : Rc523

Supported ReaderIC commands. More...

Collaboration diagram for Commands:

Functions

phStatus_t | phhalHw_Rc523_Cmd_Mem (phhalHw_Rc523_DataParams_t *pDataParams, uint8_t *pDataIn, uint8_t bDataLength, uint8_t *pDataOut)
Transfers either 25 bytes into internal buffer or returns 25 bytes from internal buffer. More...
phStatus_t | phhalHw_Rc523_Cmd_GenerateRandomId (phhalHw_Rc523_DataParams_t *pDataParams)
Generates a 10 byte random ID. More...
phStatus_t | phhalHw_Rc523_Cmd_CalcCrc (phhalHw_Rc523_DataParams_t *pDataParams, uint8_t *pData, uint16_t wDataLength, uint16_t *pCrcResult)
Calculates a CRC over the input data and returns the result. More...
phStatus_t | phhalHw_Rc523_Cmd_SoftReset (phhalHw_Rc523_DataParams_t *pDataParams)
Performs a Softreset. More...
phStatus_t | phhalHw_Rc523_SetListenParameters (phhalHw_Rc523_DataParams_t *pDataParams, uint8_t *pSensRes, uint8_t *pNfcId1, uint8_t SelRes, uint8_t *pPollingResp, uint8_t bNfcId3)
Stores data for phhalHw_Autocoll (i.e. More...

Detailed Description

Supported ReaderIC commands.

Function Documentation

§ phhalHw_Rc523_Cmd_Mem()

phStatus_t phhalHw_Rc523_Cmd_Mem | ( | phhalHw_Rc523_DataParams_t * | pDataParams,
 |  | uint8_t * | pDataIn,
 |  | uint8_t | bDataLength,
 |  | uint8_t * | pDataOut
 | ) |  |

Transfers either 25 bytes into internal buffer or returns 25 bytes from internal buffer.

If bDataLength equals zero, 25 bytes from the internal buffer are put into pDataOut.
If bDataLength is 25, 25 bytes from pDataIn are copied into the internal buffer.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | bDataLength is neither zero nor 25.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pDataIn | 25 bytes In-data or ignored if bDataLength equals zero.
[in] | bDataLength | Data length. Either zero or 25.
[out] | pDataOut | 25 bytes Out-data or ignored if bDataLength is nonzero.

§ phhalHw_Rc523_Cmd_GenerateRandomId()

phStatus_t phhalHw_Rc523_Cmd_GenerateRandomId ( phhalHw_Rc523_DataParams_t * pDataParams )

Generates a 10 byte random ID.

The generated RandomId is stored in the internal buffer (the first 10 bytes get overridden).
It can be retrieved using the function phhalHw_Rc523_Cmd_Mem.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phhalHw_Rc523_Cmd_CalcCrc()

phStatus_t phhalHw_Rc523_Cmd_CalcCrc | ( | phhalHw_Rc523_DataParams_t * | pDataParams,
 |  | uint8_t * | pData,
 |  | uint16_t | wDataLength,
 |  | uint16_t * | pCrcResult
 | ) |  |

Calculates a CRC over the input data and returns the result.

Note: The CRC calculation parameters are taken from the respective registers.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pData | CRC input data.
[in] | wDataLength | Length of input data.
[out] | pCrcResult | Calculated CRC.

§ phhalHw_Rc523_Cmd_SoftReset()

phStatus_t phhalHw_Rc523_Cmd_SoftReset ( phhalHw_Rc523_DataParams_t * pDataParams )

Performs a Softreset.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phhalHw_Rc523_SetListenParameters()

phStatus_t phhalHw_Rc523_SetListenParameters | ( | phhalHw_Rc523_DataParams_t * | pDataParams,
 |  | uint8_t * | pSensRes,
 |  | uint8_t * | pNfcId1,
 |  | uint8_t | SelRes,
 |  | uint8_t * | pPollingResp,
 |  | uint8_t | bNfcId3
 | ) |  |

Stores data for phhalHw_Autocoll (i.e.

phhalHw_Rc523_Autocoll) command into internal buffer.

Note: Only applicable if in Target mode.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | bDataLength is neither zero nor 25.
Other | Depending on implementation and under-laying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pSensRes | 2 bytes.
[in] | pNfcId1 | 3 bytes; The first NfcId1 byte is fixed to 08h and the check byte is calculated automatically.
[in] | SelRes | 1 byte.
[in] | pPollingResp | 2 bytes (shall be 01h, FEh) + 6 bytes NfcId2 + 8 bytes Pad + 2 bytes SystemCode.
[in] | bNfcId3 | 1 byte.


NXP NFC Reader Library: Internal

Macros | Functions
Internal
Hardware Abstraction Layer » component : Rc523

Internal definitions. More...

Collaboration diagram for Internal:

Macros

#define | PHHAL_HW_RC523_TIMER_FREQ 13.56f
RC internal timer frequency. More...
#define | PHHAL_HW_RC523_TIMER_MAX_VALUE_US 39586813
RC maximum timer value in microseconds. More...
#define | PHHAL_HW_RC523_TIMER_SHIFT 4.8f
Shift of the internal RC timer in ETUs. More...
#define | PHHAL_HW_RC523_ETU_106 9.44f
Duration of one ETU at 106 kBit/s in [us]. More...
#define | PHHAL_HW_RC523_ETU_212 4.7f
Duration of one ETU at 212 kBit/s in [us]. More...
#define | PHHAL_HW_RC523_ETU_424 2.4f
Duration of one ETU at 424 kBit/s in [us]. More...
#define | PHHAL_HW_RC523_ETU_848 1.2f
Duration of one ETU at 848 kBit/s in [us]. More...
#define | PHHAL_HW_RC523_REQC_MIN_LEN 19U
Minimum length of valid ReqC response when multiple reception is enable. More...
#define | PHHAL_HW_RC523_MFC_AUTHA_CMD 0x60U
MIFARE(R) Classic AUTHA command code. More...
#define | PHHAL_HW_RC523_MFC_AUTHB_CMD 0x61U
MIFARE(R) Classic AUTHB command code. More...

Functions

phStatus_t | phhalHw_Rc523_WriteFifo (phhalHw_Rc523_DataParams_t *pDataParams, uint8_t *pData, uint16_t wLength, uint16_t *pBytesWritten)
Write Data to Fifo buffer. More...
phStatus_t | phhalHw_Rc523_ReadFifo (phhalHw_Rc523_DataParams_t *pDataParams, uint16_t wBufSize, uint8_t *pData, uint16_t *pLength)
Read Data from Fifo buffer. More...
phStatus_t | phhalHw_Rc523_FlushFifo (phhalHw_Rc523_DataParams_t *pDataParams)
Clear Fifo buffer. More...
phStatus_t | phhalHw_Rc523_WriteData (phhalHw_Rc523_DataParams_t *pDataParams, uint8_t bAddress, uint8_t *pData, uint16_t wLength)
Write multiple values to a single register address. More...
phStatus_t | phhalHw_Rc523_ReadData (phhalHw_Rc523_DataParams_t *pDataParams, uint8_t bAddress, uint16_t wLength, uint8_t *pData)
Read multiple values from single register address. More...
phStatus_t | phhalHw_Rc523_ExchangeTransmit (phhalHw_Rc523_DataParams_t *pDataParams, uint8_t bCmdCode, uint8_t *pTxBuffer, uint16_t wTxLength)
Transmit part of Exchange command. More...
phStatus_t | phhalHw_Rc523_ExchangeReceive (phhalHw_Rc523_DataParams_t *pDataParams, uint8_t **ppRxBuffer, uint16_t *pRxLength)
Receive part of Exchange command. More...
phStatus_t | phhalHw_Rc523_SetFdt (phhalHw_Rc523_DataParams_t *pDataParams, uint16_t wConfig, uint16_t wTimeout)
This function will calculate and store Timer Pre-scaler and Timer ReLoad values (Lower and Higher bytes). More...
phStatus_t | phhalHw_Rc523_GetFdt (phhalHw_Rc523_DataParams_t *pDataParams, phStatus_t wExchangeStatus, uint32_t *pTime)
Retrieves the Frame Delay Time of the last command. More...
phStatus_t | phhalHw_Rc523_GetTxBuffer (phhalHw_Rc523_DataParams_t *pDataParams, uint8_t bIsExchange, uint8_t **pTxBuffer, uint16_t *pTxBufferLen, uint16_t *pTxBufferSize)
Returns the TxBuffer pointer, length and size. More...
phStatus_t | phhalHw_Rc523_GetRxBuffer (phhalHw_Rc523_DataParams_t *pDataParams, uint8_t bIsExchange, uint8_t **pRxBuffer, uint16_t *pRxBufferLen, uint16_t *pRxBufferSize)
Returns the RxBuffer pointer, length and size. More...
phStatus_t | phhalHw_Rc523_WaitIrq (phhalHw_Rc523_DataParams_t *pDataParams, uint8_t bIrq0WaitFor, uint8_t bIrq1WaitFor, uint8_t *pIrq0Reg, uint8_t *pIrq1Reg)
Wait until one of the given interrupts occurs. More...
phStatus_t | phhalHw_Rc523_LoadTimeout (phhalHw_Rc523_DataParams_t *pDataParams)
Configure registers for Frame Delay Time (Timeout) values. More...
phStatus_t | phhalHw_Rc523_StartTxWaitTimer (phhalHw_Rc523_DataParams_t *pDataParams)
Configure registers for TxWait and start timer. More...
void | phhalHw_Rc523_CreateRespFrame (uint8_t *bInBuff, uint8_t bDataPos, uint8_t *bOutBuff)
This function will return the answer to ReqC in 32 byte multi slot frame format. More...
phStatus_t | phhalHw_Rc523_FrameRxMultiplePkt (phhalHw_Rc523_DataParams_t *pDataParams)
Frame packet which contains a series of ReqC responses(if multiple response received) in multi-slot response format and update Hal Rx buffer. More...
phStatus_t | phhalHw_Rc523_CheckForEmdError (phhalHw_Rc523_DataParams_t *pDataParams, uint8_t bIrq0WaitFor, uint8_t bIrq1WaitFor, uint8_t *pIrq0Reg, uint8_t *pIrq1Reg)
EMD error handling function on PN512. More...
phStatus_t | phhalHw_Rc523_ReStartRx (phhalHw_Rc523_DataParams_t *pDataParams)
Restart Receiver function on PN512. More...
phStatus_t | phhalHw_Rc523_GetMultiReg (phhalHw_Rc523_DataParams_t *pDataParams, uint8_t *pData)
Get MultiReg function on PN512. More...
phStatus_t | phhalHw_Rc523_GetError (phhalHw_Rc523_DataParams_t *pDataParams)
Get error from ErrorReg of PN512. More...

Timing related constants

#define PHHAL_HW_RC523_FELICA_ADD_DELAY_US 240U
Additional digital timeout delay for Felica. More...

RS232 speed settings

#define | PHHAL_HW_RC523_SERIALSPEED_7200 0xFAU
7.200 kBit/s. More...
#define | PHHAL_HW_RC523_SERIALSPEED_9600 0xEBU
9.600 kBit/s. More...
#define | PHHAL_HW_RC523_SERIALSPEED_14400 0xDAU
14.400 kBit/s. More...
#define | PHHAL_HW_RC523_SERIALSPEED_19200 0xCBU
19.200 kBit/s. More...
#define | PHHAL_HW_RC523_SERIALSPEED_38400 0xABU
38.400 kBit/s. More...
#define | PHHAL_HW_RC523_SERIALSPEED_57600 0x9AU
57.500 kBit/s. More...
#define | PHHAL_HW_RC523_SERIALSPEED_115200 0x7AU
115.200 kBit/s. More...
#define | PHHAL_HW_RC523_SERIALSPEED_128000 0x74U
128.000 kBit/s. More...
#define | PHHAL_HW_RC523_SERIALSPEED_230400 0x5AU
230.400 kBit/s. More...
#define | PHHAL_HW_RC523_SERIALSPEED_460800 0x3AU
460.800 kBit/s. More...
#define | PHHAL_HW_RC523_SERIALSPEED_921600 0x1CU
921.600 kBit/s. More...
#define | PHHAL_HW_RC523_SERIALSPEED_1228800 0x15U
1.228.800 kBit/s. More...

EMD noise detection settings

#define | PHHAL_HWRC523_EMD_NOISE_ERROR (PHHAL_HW_RC523_BIT_COLLERR | PHHAL_HW_RC523_BIT_CRCERR | PHHAL_HW_RC523_BIT_PARITYERR | PHHAL_HW_RC523_BIT_PROTERR)
#define | PHHAL_HWRC523_EMD_NOISE_CHECK(dwReg)
#define | PHHAL_HW_RC523_EMV_NOISE_MAXLEN 2U
#define | PHHAL_HW_RC523_ISO_NOISE_MAXLEN 1U

Detailed Description

Internal definitions.

Macro Definition Documentation

§ PHHAL_HW_RC523_TIMER_FREQ

#define PHHAL_HW_RC523_TIMER_FREQ 13.56f

RC internal timer frequency.

§ PHHAL_HW_RC523_TIMER_MAX_VALUE_US

#define PHHAL_HW_RC523_TIMER_MAX_VALUE_US 39586813

RC maximum timer value in microseconds.

§ PHHAL_HW_RC523_TIMER_SHIFT

#define PHHAL_HW_RC523_TIMER_SHIFT 4.8f

Shift of the internal RC timer in ETUs.

§ PHHAL_HW_RC523_ETU_106

#define PHHAL_HW_RC523_ETU_106 9.44f

Duration of one ETU at 106 kBit/s in [us].

§ PHHAL_HW_RC523_ETU_212

#define PHHAL_HW_RC523_ETU_212 4.7f

Duration of one ETU at 212 kBit/s in [us].

§ PHHAL_HW_RC523_ETU_424

#define PHHAL_HW_RC523_ETU_424 2.4f

Duration of one ETU at 424 kBit/s in [us].

§ PHHAL_HW_RC523_ETU_848

#define PHHAL_HW_RC523_ETU_848 1.2f

Duration of one ETU at 848 kBit/s in [us].

§ PHHAL_HW_RC523_REQC_MIN_LEN

#define PHHAL_HW_RC523_REQC_MIN_LEN 19U

Minimum length of valid ReqC response when multiple reception is enable.

§ PHHAL_HW_RC523_FELICA_ADD_DELAY_US

#define PHHAL_HW_RC523_FELICA_ADD_DELAY_US 240U

Additional digital timeout delay for Felica.

§ PHHAL_HW_RC523_SERIALSPEED_7200

#define PHHAL_HW_RC523_SERIALSPEED_7200 0xFAU

7.200 kBit/s.

§ PHHAL_HW_RC523_SERIALSPEED_9600

#define PHHAL_HW_RC523_SERIALSPEED_9600 0xEBU

9.600 kBit/s.

§ PHHAL_HW_RC523_SERIALSPEED_14400

#define PHHAL_HW_RC523_SERIALSPEED_14400 0xDAU

14.400 kBit/s.

§ PHHAL_HW_RC523_SERIALSPEED_19200

#define PHHAL_HW_RC523_SERIALSPEED_19200 0xCBU

19.200 kBit/s.

§ PHHAL_HW_RC523_SERIALSPEED_38400

#define PHHAL_HW_RC523_SERIALSPEED_38400 0xABU

38.400 kBit/s.

§ PHHAL_HW_RC523_SERIALSPEED_57600

#define PHHAL_HW_RC523_SERIALSPEED_57600 0x9AU

57.500 kBit/s.

§ PHHAL_HW_RC523_SERIALSPEED_115200

#define PHHAL_HW_RC523_SERIALSPEED_115200 0x7AU

115.200 kBit/s.

§ PHHAL_HW_RC523_SERIALSPEED_128000

#define PHHAL_HW_RC523_SERIALSPEED_128000 0x74U

128.000 kBit/s.

§ PHHAL_HW_RC523_SERIALSPEED_230400

#define PHHAL_HW_RC523_SERIALSPEED_230400 0x5AU

230.400 kBit/s.

§ PHHAL_HW_RC523_SERIALSPEED_460800

#define PHHAL_HW_RC523_SERIALSPEED_460800 0x3AU

460.800 kBit/s.

§ PHHAL_HW_RC523_SERIALSPEED_921600

#define PHHAL_HW_RC523_SERIALSPEED_921600 0x1CU

921.600 kBit/s.

§ PHHAL_HW_RC523_SERIALSPEED_1228800

#define PHHAL_HW_RC523_SERIALSPEED_1228800 0x15U

1.228.800 kBit/s.

§ PHHAL_HW_RC523_MFC_AUTHA_CMD

#define PHHAL_HW_RC523_MFC_AUTHA_CMD 0x60U

MIFARE(R) Classic AUTHA command code.

§ PHHAL_HW_RC523_MFC_AUTHB_CMD

#define PHHAL_HW_RC523_MFC_AUTHB_CMD 0x61U

MIFARE(R) Classic AUTHB command code.

Function Documentation

§ phhalHw_Rc523_WriteFifo()

phStatus_t phhalHw_Rc523_WriteFifo | ( | phhalHw_Rc523_DataParams_t * | pDataParams,
 |  | uint8_t * | pData,
 |  | uint16_t | wLength,
 |  | uint16_t * | pBytesWritten
 | ) |  |

Write Data to Fifo buffer.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and under-laying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pData | input data
[in] | wLength | length of input data
[out] | pBytesWritten | Number of written bytes

§ phhalHw_Rc523_ReadFifo()

phStatus_t phhalHw_Rc523_ReadFifo | ( | phhalHw_Rc523_DataParams_t * | pDataParams,
 |  | uint16_t | wBufSize,
 |  | uint8_t * | pData,
 |  | uint16_t * | pLength
 | ) |  |

Read Data from Fifo buffer.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and under-laying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wBufSize | size of output buffer
[out] | pData | output data
[out] | pLength | number of output data bytes

§ phhalHw_Rc523_FlushFifo()

phStatus_t phhalHw_Rc523_FlushFifo ( phhalHw_Rc523_DataParams_t * pDataParams )

Clear Fifo buffer.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and under-laying component.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phhalHw_Rc523_WriteData()

phStatus_t phhalHw_Rc523_WriteData | ( | phhalHw_Rc523_DataParams_t * | pDataParams,
 |  | uint8_t | bAddress,
 |  | uint8_t * | pData,
 |  | uint16_t | wLength
 | ) |  |

Write multiple values to a single register address.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and under-laying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bAddress | Start-Register Address
[in] | pData | Register Values; uint8_t[wLength]
[in] | wLength | Number of Values

§ phhalHw_Rc523_ReadData()

phStatus_t phhalHw_Rc523_ReadData | ( | phhalHw_Rc523_DataParams_t * | pDataParams,
 |  | uint8_t | bAddress,
 |  | uint16_t | wLength,
 |  | uint8_t * | pData
 | ) |  |

Read multiple values from single register address.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and under-laying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bAddress | Register Address
[in] | wLength | Number of Values
[out] | pData | Register Values; uint8_t[wLength]

§ phhalHw_Rc523_ExchangeTransmit()

phStatus_t phhalHw_Rc523_ExchangeTransmit | ( | phhalHw_Rc523_DataParams_t * | pDataParams,
 |  | uint8_t | bCmdCode,
 |  | uint8_t * | pTxBuffer,
 |  | uint16_t | wTxLength
 | ) |  |

Transmit part of Exchange command.

See also
phhalHw_Exchange
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and under-laying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bCmdCode | Command-Code of command.
[in] | pTxBuffer | Data to transmit.
[in] | wTxLength | Length of data to transmit.

§ phhalHw_Rc523_ExchangeReceive()

phStatus_t phhalHw_Rc523_ExchangeReceive | ( | phhalHw_Rc523_DataParams_t * | pDataParams,
 |  | uint8_t ** | ppRxBuffer,
 |  | uint16_t * | pRxLength
 | ) |  |

Receive part of Exchange command.

See also
phhalHw_Exchange
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and under-laying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[out] | ppRxBuffer | Pointer to received data.
[out] | pRxLength | Number of received data bytes.

§ phhalHw_Rc523_SetFdt()

phStatus_t phhalHw_Rc523_SetFdt | ( | phhalHw_Rc523_DataParams_t * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t | wTimeout
 | ) |  |

This function will calculate and store Timer Pre-scaler and Timer ReLoad values (Lower and Higher bytes).

For function phhalHw_Wait, this function will directly set register with calculated values. This function will calculate and store value for PHHAL_HW_CONFIG_TXWAIT_US or PHHAL_HW_CONFIG_TXWAIT_MS or PHHAL_HW_CONFIG_TIMEOUT_VALUE_US or PHHAL_HW_CONFIG_TIMEOUT_VALUE_MS.
wConfig can be one of:

  • PHHAL_HW_TIME_MICROSECONDS : Calculate values in microseconds.
  • PHHAL_HW_TIME_MILLISECONDS : Calculate values in milliseconds.
  • PHHAL_HW_CONFIG_TXWAIT_US : Calculate values for TxWait in microseconds.
  • PHHAL_HW_CONFIG_TXWAIT_MS : Calculate values for TxWait in milliseconds.
  • PHHAL_HW_CONFIG_TIMEOUT_VALUE_US : Calculate values for FDT in microseconds.
  • PHHAL_HW_CONFIG_TIMEOUT_VALUE_MS : Calculate values for FDT in milliseconds.

Note: Frame Delay Time (FDT) is defined between the last transmitted bit and the first received bit.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and under-laying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wConfig | Configuration Identifier.
[in] | wTimeout | Time-out value.

§ phhalHw_Rc523_GetFdt()

phStatus_t phhalHw_Rc523_GetFdt | ( | phhalHw_Rc523_DataParams_t * | pDataParams,
 |  | phStatus_t | wExchangeStatus,
 |  | uint32_t * | pTime
 | ) |  |

Retrieves the Frame Delay Time of the last command.

Note: Frame Delay Time is defined between the last transmitted bit and the first received bit.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and under-laying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wExchangeStatus | Status code returned by exchange function.
[out] | pTime | Calculated time in microseconds from timer contents.

§ phhalHw_Rc523_GetTxBuffer()

phStatus_t phhalHw_Rc523_GetTxBuffer | ( | phhalHw_Rc523_DataParams_t * | pDataParams,
 |  | uint8_t | bIsExchange,
 |  | uint8_t ** | pTxBuffer,
 |  | uint16_t * | pTxBufferLen,
 |  | uint16_t * | pTxBufferSize
 | ) |  |

Returns the TxBuffer pointer, length and size.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bIsExchange | Whether this is for Exchange (PH_ON) or not (PH_OFF).
[out] | pTxBuffer | Pointer to the TxBuffer.
[out] | pTxBufferLen | Number of bytes already in the TxBuffer.
[out] | pTxBufferSize | Size of the TxBuffer.

§ phhalHw_Rc523_GetRxBuffer()

phStatus_t phhalHw_Rc523_GetRxBuffer | ( | phhalHw_Rc523_DataParams_t * | pDataParams,
 |  | uint8_t | bIsExchange,
 |  | uint8_t ** | pRxBuffer,
 |  | uint16_t * | pRxBufferLen,
 |  | uint16_t * | pRxBufferSize
 | ) |  |

Returns the RxBuffer pointer, length and size.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bIsExchange | Whether this is for Exchange (PH_ON) or not (PH_OFF).
[out] | pRxBuffer | Pointer to the RxBuffer.
[out] | pRxBufferLen | Number of bytes already in the RxBuffer.
[out] | pRxBufferSize | Size of the RxBuffer.

§ phhalHw_Rc523_WaitIrq()

phStatus_t phhalHw_Rc523_WaitIrq | ( | phhalHw_Rc523_DataParams_t * | pDataParams,
 |  | uint8_t | bIrq0WaitFor,
 |  | uint8_t | bIrq1WaitFor,
 |  | uint8_t * | pIrq0Reg,
 |  | uint8_t * | pIrq1Reg
 | ) |  |

Wait until one of the given interrupts occurs.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and under-laying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bIrq0WaitFor | Bitmask of interrupts in CommIrq register to wait for.
[in] | bIrq1WaitFor | Bitmask of interrupts in DivIrq register to wait for.
[out] | pIrq0Reg | Contents of CommIrq register.
[out] | pIrq1Reg | Contents of DivIrq register.

§ phhalHw_Rc523_LoadTimeout()

phStatus_t phhalHw_Rc523_LoadTimeout ( phhalHw_Rc523_DataParams_t * pDataParams )

Configure registers for Frame Delay Time (Timeout) values.

Registers value are calculated and stored by function phhalHw_Rc523_SetFdt.

Note: Frame Delay Time is defined between the last transmitted bit and the first received bit.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and under-laying component.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phhalHw_Rc523_StartTxWaitTimer()

phStatus_t phhalHw_Rc523_StartTxWaitTimer ( phhalHw_Rc523_DataParams_t * pDataParams )

Configure registers for TxWait and start timer.

Registers value are calculated and stored by function phhalHw_Rc523_SetFdt.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and under-laying component.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phhalHw_Rc523_CreateRespFrame()

void phhalHw_Rc523_CreateRespFrame | ( | uint8_t * | bInBuff,
 |  | uint8_t | bDataPos,
 |  | uint8_t * | bOutBuff
 | ) |  |

This function will return the answer to ReqC in 32 byte multi slot frame format.

Size of output frame is PHHAL_HW_RESP_FRAME_SIZE byte.

Note: This function is only valid when multiple reception PHHAL_HW_CONFIG_RXMULTIPLE is enabled.

Parameters
[in] | bInBuff | Pointer to Rx buffer.
[in] | bDataPos | position of card response in Rxbuffer.
[out] | bOutBuff | Pointer to buffer which store frame of PHHAL_HW_RESP_FRAME_SIZE size.

§ phhalHw_Rc523_FrameRxMultiplePkt()

phStatus_t phhalHw_Rc523_FrameRxMultiplePkt ( phhalHw_Rc523_DataParams_t * pDataParams )

Frame packet which contains a series of ReqC responses(if multiple response received) in multi-slot response format and update Hal Rx buffer.

This function will use function phhalHw_Rc523_CreateRespFrame to frame each card responses multi-slot frame format.

Note: This function is only valid when multiple reception PHHAL_HW_CONFIG_RXMULTIPLE is enabled.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and under-laying component.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phhalHw_Rc523_CheckForEmdError()

phStatus_t phhalHw_Rc523_CheckForEmdError | ( | phhalHw_Rc523_DataParams_t * | pDataParams,
 |  | uint8_t | bIrq0WaitFor,
 |  | uint8_t | bIrq1WaitFor,
 |  | uint8_t * | pIrq0Reg,
 |  | uint8_t * | pIrq1Reg
 | ) |  |

EMD error handling function on PN512.

Return values
Other Depending on implementation and under-laying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bIrq0WaitFor | Bitmask of interrupts in Irq0 register to wait for.
[in] | bIrq1WaitFor | Bitmask of interrupts in Irq1 register to wait for.
[out] | pIrq0Reg | Contains Register Read Value.
[out] | pIrq1Reg | Contains Register Read Value.

§ phhalHw_Rc523_ReStartRx()

phStatus_t phhalHw_Rc523_ReStartRx ( phhalHw_Rc523_DataParams_t * pDataParams )

Restart Receiver function on PN512.

Return values
Other Depending on implementation and under-laying component.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phhalHw_Rc523_GetMultiReg()

phStatus_t phhalHw_Rc523_GetMultiReg | ( | phhalHw_Rc523_DataParams_t * | pDataParams,
 |  | uint8_t * | pData
 | ) |  |

Get MultiReg function on PN512.

Return values
Other Depending on implementation and under-laying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[out] | pData | Pointer to buffer which store register values.

§ phhalHw_Rc523_GetError()

phStatus_t phhalHw_Rc523_GetError ( phhalHw_Rc523_DataParams_t * pDataParams )

Get error from ErrorReg of PN512.

Return values
.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.


NXP NFC Reader Library: Register Definitions

Functions
Register Definitions
Hardware Abstraction Layer » component : Rc523

Register definitions. More...

Collaboration diagram for Register Definitions:

Functions

phStatus_t | phhalHw_Rc523_WriteRegister (phhalHw_Rc523_DataParams_t *pDataParams, uint8_t bAddress, uint8_t bValue)
Write to 8bit address of CL front-end register. More...
phStatus_t | phhalHw_Rc523_ReadRegister (phhalHw_Rc523_DataParams_t *pDataParams, uint8_t bAddress, uint8_t *pValue)
Read 8bit register address from CL front-ends. More...

Register definitions of Page 0

Following all register definitions of Page 0.

#define | PHHAL_HW_RC523_REG_PAGE 0x00U
Page register.
#define | PHHAL_HW_RC523_REG_COMMAND 0x01U
Command register. More...
#define | PHHAL_HW_RC523_REG_COMMIEN 0x02U
CommIEn register. More...
#define | PHHAL_HW_RC523_REG_DIVIEN 0x03U
DivIEn register. More...
#define | PHHAL_HW_RC523_REG_COMMIRQ 0x04U
CommIrq register. More...
#define | PHHAL_HW_RC523_REG_DIVIRQ 0x05U
DivIrq register. More...
#define | PHHAL_HW_RC523_REG_ERROR 0x06U
Error register. More...
#define | PHHAL_HW_RC523_REG_STATUS1 0x07U
Status1 register. More...
#define | PHHAL_HW_RC523_REG_STATUS2 0x08U
Status2 register. More...
#define | PHHAL_HW_RC523_REG_FIFODATA 0x09U
Fifo register. More...
#define | PHHAL_HW_RC523_REG_FIFOLEVEL 0x0AU
FifoLevel register. More...
#define | PHHAL_HW_RC523_REG_WATERLEVEL 0x0BU
WaterLevel register. More...
#define | PHHAL_HW_RC523_REG_CONTROL 0x0CU
Control register. More...
#define | PHHAL_HW_RC523_REG_BITFRAMING 0x0DU
Bit framing register. More...
#define | PHHAL_HW_RC523_REG_COLL 0x0EU
Collision register. More...

Register definitions of Page 1

Following all register definitions of Page 1.

#define | PHHAL_HW_RC523_REG_MODE 0x11U
Mode register. More...
#define | PHHAL_HW_RC523_REG_TXMODE 0x12U
TxMode register. More...
#define | PHHAL_HW_RC523_REG_RXMODE 0x13U
RxMode register. More...
#define | PHHAL_HW_RC523_REG_TXCONTROL 0x14U
TxControl register. More...
#define | PHHAL_HW_RC523_REG_TXASK 0x15U
TxAsk register. More...
#define | PHHAL_HW_RC523_REG_TXSEL 0x16U
TxSel register. More...
#define | PHHAL_HW_RC523_REG_RXSEL 0x17U
RxSel register. More...
#define | PHHAL_HW_RC523_REG_RXTHRESHOLD 0x18U
RxThreshold register. More...
#define | PHHAL_HW_RC523_REG_DEMOD 0x19U
Demod register. More...
#define | PHHAL_HW_RC523_REG_FELNFC2 0x1BU
FelNFC2Reg register. More...
#define | PHHAL_HW_RC523_REG_MFTX 0x1CU
MfTx register. More...
#define | PHHAL_HW_RC523_REG_MFRX 0x1DU
MfRx register. More...
#define | PHHAL_HW_RC523_REG_TYPEB 0x1EU
TypeB register. More...
#define | PHHAL_HW_RC523_REG_SERIALSPEED 0x1FU
SerialSpeed register. More...

Register definitions of Page 2

Following all register definitions of Page 2.

#define | PHHAL_HW_RC523_REG_CRCRESULT1 0x21U
CRCResult1 register. More...
#define | PHHAL_HW_RC523_REG_CRCRESULT2 0x22U
CRCResult2 register. More...
#define | PHHAL_HW_RC523_REG_GSNOFF 0x23U
GSNOff register. More...
#define | PHHAL_HW_RC523_REG_MODWIDTH 0x24U
ModWidth register. More...
#define | PHHAL_HW_RC523_REG_TXBITPHASE 0x25U
#define | PHHAL_HW_RC523_REG_RFCFG 0x26U
RfCfg register. More...
#define | PHHAL_HW_RC523_REG_GSN 0x27U
GSN register. More...
#define | PHHAL_HW_RC523_REG_CWGSP 0x28U
CWGSP register. More...
#define | PHHAL_HW_RC523_REG_MODGSP 0x29U
MODGSP register. More...
#define | PHHAL_HW_RC523_REG_TMODE 0x2AU
TMode register. More...
#define | PHHAL_HW_RC523_REG_TPRESCALER 0x2BU
TPrescaler register. More...
#define | PHHAL_HW_RC523_REG_TRELOADHI 0x2CU
TReloadHi register. More...
#define | PHHAL_HW_RC523_REG_TRELOADLO 0x2DU
TReloadLo register. More...
#define | PHHAL_HW_RC523_REG_TCOUNTERVALHI 0x2EU
TCounterValHi register. More...
#define | PHHAL_HW_RC523_REG_TCOUNTERVALLO 0x2FU
TCounterValLo register. More...

Register definitions of Page 3

Following all register definitions of Page 3.

#define | PHHAL_HW_RC523_REG_TESTSEL1 0x31U
Test register. More...
#define | PHHAL_HW_RC523_REG_TESTSEL2 0x32U
Test register. More...
#define | PHHAL_HW_RC523_REG_TESTPINEN 0x33U
Test register. More...
#define | PHHAL_HW_RC523_REG_TESTPINVALUE 0x34U
Test register. More...
#define | PHHAL_HW_RC523_REG_TESTBUS 0x35U
Test register. More...
#define | PHHAL_HW_RC523_REG_AUTOTEST 0x36U
Test register. More...
#define | PHHAL_HW_RC523_REG_VERSION 0x37U
Contains the product number and the version. More...
#define | PHHAL_HW_RC523_REG_ANALOGTEST 0x38U
Test register. More...
#define | PHHAL_HW_RC523_REG_TESTDAC1 0x39U
Test register. More...
#define | PHHAL_HW_RC523_REG_TESTDAC2 0x3AU
Test register. More...
#define | PHHAL_HW_RC523_REG_TESTADC 0x3BU
Test register. More...

Command Register Contents (0x01)

#define | PHHAL_HW_RC523_BIT_RCVOFF 0x20U
Switches the receiver on/off. More...
#define | PHHAL_HW_RC523_BIT_POWERDOWN 0x10U
Switches Ic to Power Down mode. More...
#define | PHHAL_HW_RC523_CMD_IDLE 0x00U
No action; cancels current command execution. More...
#define | PHHAL_HW_RC523_CMD_MEM 0x01U
Copy configuration data from Fifo to internal Buffer or if Fifo empty vice versa. More...
#define | PHHAL_HW_RC523_CMD_RANDOMIDS 0x02U
Replaces stored IDs with random ones. More...
#define | PHHAL_HW_RC523_CMD_CALCCRC 0x03U
Activate the CRC-Coprocessor. More...
#define | PHHAL_HW_RC523_CMD_TRANSMIT 0x04U
Transmits data from the FIFO buffer to Card. More...
#define | PHHAL_HW_RC523_CMD_NOCMDCHANGE 0x07U
No change; Use together with e.g. More...
#define | PHHAL_HW_RC523_CMD_RECEIVE 0x08U
Activates the receiver circuitry. More...
#define | PHHAL_HW_RC523_CMD_TRANSCEIVE 0x0CU
Like PHHAL_HW_RC523_CMD_TRANSMIT but automatically activates the receiver after transmission is finished. More...
#define | PHHAL_HW_RC523_CMD_AUTOCOLL 0x0DU
Handles Felica polling or MIFARE anti-collision in Target mode. More...
#define | PHHAL_HW_RC523_CMD_AUTHENT 0x0EU
Performs the Mifare Classic authentication (in Mifare Reader/Writer mode only). More...
#define | PHHAL_HW_RC523_CMD_SOFTRESET 0x0FU
Resets the IC. More...
#define | PHHAL_HW_RC523_MASK_COMMAND 0x0FU
Mask for Command-bits. More...

CommIEn/CommIrq Register Contents (0x02/0x04)

#define | PHHAL_HW_RC523_BIT_SET 0x80U
Bit position to set/clear dedicated IRQ bits. More...
#define | PHHAL_HW_RC523_BIT_IRQINV 0x80U
Inverts the output of IRQ Pin. More...
#define | PHHAL_HW_RC523_BIT_TXI 0x40U
Bit position for Transmit Interrupt Enable/Request. More...
#define | PHHAL_HW_RC523_BIT_RXI 0x20U
Bit position for Receive Interrupt Enable/Request. More...
#define | PHHAL_HW_RC523_BIT_IDLEI 0x10U
Bit position for Idle Interrupt Enable/Request. More...
#define | PHHAL_HW_RC523_BIT_HIALERTI 0x08U
Bit position for HiAlert Interrupt Enable/Request. More...
#define | PHHAL_HW_RC523_BIT_LOALERTI 0x04U
Bit position for LoAlert Interrupt Enable/Request. More...
#define | PHHAL_HW_RC523_BIT_ERRI 0x02U
Bit position for Error Interrupt Enable/Request. More...
#define | PHHAL_HW_RC523_BIT_TIMERI 0x01U
Bit position for Timer Interrupt Enable/Request. More...

DivIEn/DivIrq Register Contents (0x03/0x05)

#define | PHHAL_HW_RC523_BIT_IRQPUSHPULL 0x80U
Sets the IRQ pin to Push Pull mode. More...
#define | PHHAL_HW_RC523_BIT_MFINACT 0x10U
Bit position for MfInAct Interrupt Enable/Request. More...
#define | PHHAL_HW_RC523_BIT_CRCI 0x04U
Bit position for CRC Interrupt Enable/Request. More...
#define | PHHAL_HW_RC523_BIT_EXT_RF_ON 0x02U
Bit position for External RF ON. More...
#define | PHHAL_HW_RC523_BIT_EXT_RF_OFF 0x01U
Bit position for External RF OFF. More...

Error Register Contents (0x06)

#define | PHHAL_HW_RC523_BIT_WRERR 0x80U
Bit position for Write Access Error. More...
#define | PHHAL_HW_RC523_BIT_TEMPERR 0x40U
Bit position for Temperature Error. More...
#define | PHHAL_HW_RC523_BIT_RFERR 0x20U
Bit position for RF Error. More...
#define | PHHAL_HW_RC523_BIT_BUFFEROVFL 0x10U
Bit position for Buffer Overflow Error. More...
#define | PHHAL_HW_RC523_BIT_COLLERR 0x08U
Bit position for Collision Error. More...
#define | PHHAL_HW_RC523_BIT_CRCERR 0x04U
Bit position for CRC Error. More...
#define | PHHAL_HW_RC523_BIT_PARITYERR 0x02U
Bit position for Parity Error. More...
#define | PHHAL_HW_RC523_BIT_PROTERR 0x01U
Bit position for Protocol Error. More...

Status1 Register Contents (0x07)

#define | PHHAL_HW_RC523_BIT_CRCOK 0x40U
Bit position for status CRC OK. More...
#define | PHHAL_HW_RC523_BIT_CRCREADY 0x20U
Bit position for status CRC Ready. More...
#define | PHHAL_HW_RC523_BIT_IRQ 0x10U
Bit position for status IRQ is active. More...
#define | PHHAL_HW_RC523_BIT_TRUNNUNG 0x08U
Bit position for status Timer is running. More...
#define | PHHAL_HW_RC523_BIT_RFON 0x04U
Bit position for status External RF. More...
#define | PHHAL_HW_RC523_BIT_HIALERT 0x02U
Bit position for status HiAlert. More...
#define | PHHAL_HW_RC523_BIT_LOALERT 0x01U
Bit position for status LoAlert. More...

Status2 Register Contents (0x08)

#define | PHHAL_HW_RC523_BIT_TEMPSENSOFF 0x80U
Bit position to switch Temperature sensors on/off. More...
#define | PHHAL_HW_RC523_BIT_I2CFORCEHS 0x40U
Bit position to forece High speed mode for I2C Interface. More...
#define | PHHAL_HW_RC523_BIT_TARGET_ACTIVATED 0x10U
Bit position for reader status Target Activated. More...
#define | PHHAL_HW_RC523_BIT_CRYPTO1ON 0x08U
Bit position for reader status Crypto is on. More...
#define | PHHAL_HW_RC523_MASK_MODEMBITS 0x07U
Bitmask for MODEM Status bits. More...
#define | PHHAL_HW_RC523_BIT_IDLE 0x00U
Bits represent MODEM Status as IDLE. More...
#define | PHHAL_HW_RC523_BIT_WAIT_FOR_STARTSEND 0x01U
Bits represent MODEM Status as Wait for StartSend. More...
#define | PHHAL_HW_RC523_BIT_WAIT_FOR_DATA 0x05U
Bits represent MODEM Status as Wait for data. More...

FifoLevel Register Contents (0x0A)

#define PHHAL_HW_RC523_BIT_FLUSHBUFFER 0x80U
Clears Fifo buffer if set to 1. More...

WaterLevel Register Contents (0x0B)

#define PHHAL_HW_RC523_MASK_WATERLEVEL 0x3FU
Bitmask for Waterlevel bits. More...

Control Register Contents (0x0C)

#define | PHHAL_HW_RC523_BIT_TSTOPNOW 0x80U
Stops timer if set to 1. More...
#define | PHHAL_HW_RC523_BIT_TSTARTNOW 0x40U
Starts timer if set to 1. More...
#define | PHHAL_HW_RC523_BIT_INITIATOR 0x10U
If set to 1, the IC acts as initiator, otherwise as target. More...
#define | PHHAL_HW_RC523_MASK_RXBITS 0x07U
Bitmask for RxLast bits. More...

BitFraming Register Contents (0x0D)

#define | PHHAL_HW_RC523_BIT_STARTSEND 0x80U
Starts transmission in transceive command if set to 1. More...
#define | PHHAL_HW_RC523_MASK_TXBITS 0x07U
Bitmask for TxLast bits. More...
#define | PHHAL_HW_RC523_MASK_RXALIGN 0x70U
Bitmask for RxAlign bits. More...

Collision Register Contents (0x0E)

#define | PHHAL_HW_RC523_BIT_VALUESAFTERCOLL 0x80U
Activates mode to keep data after collision. More...
#define | PHHAL_HW_RC523_BIT_COLLPOSNOTVALID 0x20U
Whether collision position is valid or not. More...
#define | PHHAL_HW_RC523_MASK_COLLPOS 0x1FU
Bitmask for CollPos bits. More...

Mode Register Contents (0x11)

#define | PHHAL_HW_RC523_BIT_MSBFIRST 0x80U
Sets CRC coprocessor with MSB first. More...
#define | PHHAL_HW_RC523_BIT_TXWAITRF 0x20U
Waits until RF is enabled until transmission is started, else starts immediately. More...
#define | PHHAL_HW_RC523_BIT_POLMFIN 0x08U
Inverts polarity of MfinActIrq. More...
#define | PHHAL_HW_RC523_BIT_MODEDETOFF 0x04U
Set to logic 1, the internal mode detector is switched off during PHHAL_HW_RC523_CMD_AUTOCOLL. More...
#define | PHHAL_HW_RC523_MASK_CRCPRESET 0x03U
Bitmask for CRCPreset bits. More...

TxMode / RxMode Register Contents (0x12/0x13)

#define | PHHAL_HW_RC523_BIT_CRCEN 0x80U
Activates transmit or receive CRC. More...
#define | PHHAL_HW_RC523_BIT_848KBPS 0x30U
Activates speed of 848kbps. More...
#define | PHHAL_HW_RC523_BIT_424KBPS 0x20U
Activates speed of 424kbps. More...
#define | PHHAL_HW_RC523_BIT_212KBPS 0x10U
Activates speed of 212kbps. More...
#define | PHHAL_HW_RC523_BIT_106KBPS 0x00U
Activates speed of 106kbps. More...
#define | PHHAL_HW_RC523_BIT_INVMOD 0x08U
Activates inverted transmission mode. More...
#define | PHHAL_HW_RC523_BIT_RXNOERR 0x08U
If set, receiver ignores less than 4 bits. More...
#define | PHHAL_HW_RC523_BIT_RXMULTIPLE 0x04U
Activates reception mode for multiple responses. More...
#define | PHHAL_HW_RC523_BIT_TYPEB 0x03U
Activates Type B communication mode. More...
#define | PHHAL_HW_RC523_BIT_FELICA 0x02U
Activates Felica communication mode. More...
#define | PHHAL_HW_RC523_BIT_ACTIVE 0x01U
Activates Active communication mode. More...
#define | PHHAL_HW_RC523_BIT_MIFARE 0x00U
Activates Mifare communication mode. More...
#define | PHHAL_HW_RC523_BIT_MIFARE_CE 0x80U
Activates Mifare communication mode. More...
#define | PHHAL_HW_RC523_MASK_SPEED 0x70U
Bitmask for Tx/RxSpeed bits. More...
#define | PHHAL_HW_RC523_SHIFT_SPEED 0x04U
Number of bits to be shifted. More...
#define | PHHAL_HW_RC523_MASK_FRAMING 0x03U
Bitmask for Tx/RxFraming bits. More...
#define | PHHAL_HW_RC523_BIT_AUTORF_OFF 0x80U
Bitmask for Auto RF Off. More...
#define | PHHAL_HW_RC523_BIT_CA_ON 0x08U
Bitmask for CA. More...
#define | PHHAL_HW_RC523_BIT_DETECT_SYNC 0x40U
Bitmask for Detect Sync. More...
#define | PHHAL_HW_RC523_BIT_INITIAL_RF_ON 0x04U
Bitmask for Initial RF on. More...
#define | PHHAL_HW_RC523_BIT_TX2RFAutoEN 0x02U
Bitmask for Auto RF ON. More...
#define | PHHAL_HW_RC523_BIT_TX1RFAutoEN 0x1U
Bitmask for Auto RF ON. More...

TxControl Register Contents (0x14)

#define | PHHAL_HW_RC523_BIT_INVTX2ON 0x80U
Inverts the Tx2 output if drivers are switched on. More...
#define | PHHAL_HW_RC523_BIT_INVTX1ON 0x40U
Inverts the Tx1 output if drivers are switched on. More...
#define | PHHAL_HW_RC523_BIT_INVTX2OFF 0x20U
Inverts the Tx2 output if drivers are switched off. More...
#define | PHHAL_HW_RC523_BIT_INVTX1OFF 0x10U
Inverts the Tx1 output if drivers are switched off. More...
#define | PHHAL_HW_RC523_BIT_TX2CW 0x08U
Does not modulate the Tx2 output, only constant wave. More...
#define | PHHAL_HW_RC523_BIT_CHECKRF 0x04U
Set to logic 1, RF field cannot be activated if external RF field is detected. More...
#define | PHHAL_HW_RC523_BIT_TX2RFEN 0x02U
Switches the driver for Tx2 pin on. More...
#define | PHHAL_HW_RC523_BIT_TX1RFEN 0x01U
Switches the driver for Tx1 pin on. More...

TxASK Register Contents (0x15)

#define PHHAL_HW_RC523_BIT_FORCE100ASK 0x40U
Activates 100ASK mode independent of driver settings. More...

TxSel Register Contents (0x16)

#define | PHHAL_HW_RC523_MASK_DRIVERSEL 0x30U
Bitmask for DriverSel bits. More...
#define | PHHAL_HW_RC523_MASK_MFOUTSEL 0x0FU
Bitmask for MfOutSel bits. More...

RxSel Register Contents (0x17)

#define | PHHAL_HW_RC523_MASK_UARTSEL 0xC0U
Bitmask for UartSel bits. More...
#define | PHHAL_HW_RC523_MASK_RXWAIT 0x3FU
Bitmask for RxWait bits. More...

RxThreshold Register Contents (0x18)

#define | PHHAL_HW_RC523_MASK_MINLEVEL 0xF0U
Bitmask for MinLevel bits. More...
#define | PHHAL_HW_RC523_MASK_COLLEVEL 0x07U
Bitmask for CollLevel bits. More...

Demod Register Contents (0x19)

#define | PHHAL_HW_RC523_BIT_FIXIQ 0x20U
If set and the lower bit of AddIQ is cleared, the receiving is fixed to I channel. More...
#define | PHHAL_HW_RC523_MASK_ADDIQ 0xC0U
Bitmask for ADDIQ bits. More...
#define | PHHAL_HW_RC523_MASK_TAURCV 0x0CU
Bitmask for TauRcv bits. More...
#define | PHHAL_HW_RC523_MASK_TAUSYNC 0x03U
Bitmask for TauSync bits. More...

FelNFC2Reg Register Contents (0x1B)

#define PHHAL_HW_RC523_WAIT_FOR_SELECTED 0x80U
Bitmask for WaitForSelected bit. More...

MfTx Register Contents (0x1C)

#define | PHHAL_HW_RC523_MASK_TXWAIT 0x03U
Bitmask for TxWait bits. More...
#define | PHHAL_HW_RC523_BIT_MFHALTED 0x04U
Set to logic 1, Responds only for ALL_REQ ("52"). More...

MfRx Register Contents (0x1D)

#define PHHAL_HW_RC523_BIT_PARITYDISABLE 0x10U
Disables the parity generation and sending independent from the mode. More...

ISO/IEC 14443 Type B configuration Register Contents (0x1E)

#define PHHAL_HW_RC523_MASK_RXEOFREQ 0x40U
Bitmask for RX EOF required for Type B. More...

RFCfg Register Contents (0x26)

#define PHHAL_HW_RC523_MASK_RXGAIN 0x70U
Bitmask for RxGain bits. More...

GsN Register Contents (0x27)

#define | PHHAL_HW_RC523_MASK_CWGSN 0xF0U
Bitmask for CWGsN bits. More...
#define | PHHAL_HW_RC523_MASK_MODGSN 0x0FU
Bitmask for ModGsN bits. More...

CWGsP Register Contents (0x28)

#define PHHAL_HW_RC523_MASK_CWGSP 0x3FU
Bitmask for CWGsP bits. More...

ModGsP Register Contents (0x29)

#define PHHAL_HW_RC523_MASK_MODGSP 0x3FU
Bitmask for ModGsP bits. More...

TMode Register Contents (0x2A)

#define | PHHAL_HW_RC523_BIT_TAUTO 0x80U
Sets the Timer start/stop conditions to Auto mode. More...
#define | PHHAL_HW_RC523_BIT_TAUTORESTART 0x10U
Restarts the timer automatically after counting down to 0. More...
#define | PHHAL_HW_RC523_MASK_TGATED 0x60U
Bitmask for TGated bits. More...
#define | PHHAL_HW_RC523_MASK_TPRESCALER_HI 0x0FU
Bitmask for TPrescalerHi bits. More...

Detailed Description

Register definitions.

Macro Definition Documentation

§ PHHAL_HW_RC523_REG_COMMAND

#define PHHAL_HW_RC523_REG_COMMAND 0x01U

Command register.

Contains Command bits, PowerDown bit and bit to switch receiver off.

§ PHHAL_HW_RC523_REG_COMMIEN

#define PHHAL_HW_RC523_REG_COMMIEN 0x02U

CommIEn register.

Contains Communication interrupt enable bits and bit for Interrupt inversion.

§ PHHAL_HW_RC523_REG_DIVIEN

#define PHHAL_HW_RC523_REG_DIVIEN 0x03U

DivIEn register.

Contains RfOn, RfOff, CRC and Mode Interrupt enable and bit to switch Interrupt pin to PushPull mode.

§ PHHAL_HW_RC523_REG_COMMIRQ

#define PHHAL_HW_RC523_REG_COMMIRQ 0x04U

CommIrq register.

Contains Communication interrupt request bits.

§ PHHAL_HW_RC523_REG_DIVIRQ

#define PHHAL_HW_RC523_REG_DIVIRQ 0x05U

DivIrq register.

Contains RfOn, RfOff, CRC and Mode Interrupt request.

§ PHHAL_HW_RC523_REG_ERROR

#define PHHAL_HW_RC523_REG_ERROR 0x06U

Error register.

Contains Protocol, Parity, CRC, Collision, Buffer overflow, Temperature and RF error flags.

§ PHHAL_HW_RC523_REG_STATUS1

#define PHHAL_HW_RC523_REG_STATUS1 0x07U

Status1 register.

Contains status information about Lo- and HiAlert, RF-field on, Timer, Interrupt request and CRC status.

§ PHHAL_HW_RC523_REG_STATUS2

#define PHHAL_HW_RC523_REG_STATUS2 0x08U

Status2 register.

Contains information about internal states and Temperature sensor switch.

§ PHHAL_HW_RC523_REG_FIFODATA

#define PHHAL_HW_RC523_REG_FIFODATA 0x09U

Fifo register.

Read/Write Fifo. Writing to register increments the Fifo level, reading decrements it.

§ PHHAL_HW_RC523_REG_FIFOLEVEL

#define PHHAL_HW_RC523_REG_FIFOLEVEL 0x0AU

FifoLevel register.

Contains the actual level (number of bytes) of the Fifo.

§ PHHAL_HW_RC523_REG_WATERLEVEL

#define PHHAL_HW_RC523_REG_WATERLEVEL 0x0BU

WaterLevel register.

Contains the Waterlevel value for the Fifo.

§ PHHAL_HW_RC523_REG_CONTROL

#define PHHAL_HW_RC523_REG_CONTROL 0x0CU

Control register.

Contains information about last received bits, and to Start and stop the Timer unit.

§ PHHAL_HW_RC523_REG_BITFRAMING

#define PHHAL_HW_RC523_REG_BITFRAMING 0x0DU

Bit framing register.

Contains information of last bits to send, to align received bits in Fifo and activate sending.

§ PHHAL_HW_RC523_REG_COLL

#define PHHAL_HW_RC523_REG_COLL 0x0EU

Collision register.

Contains all necessary bits for Collision handling.

§ PHHAL_HW_RC523_REG_MODE

#define PHHAL_HW_RC523_REG_MODE 0x11U

Mode register.

Contains bits for auto wait on Rf and MSB first for CRC calculation.

§ PHHAL_HW_RC523_REG_TXMODE

#define PHHAL_HW_RC523_REG_TXMODE 0x12U

TxMode register.

Contains Transmit Framing, Speed, CRC enable, bit for inverse mode and TXMix bit.

§ PHHAL_HW_RC523_REG_RXMODE

#define PHHAL_HW_RC523_REG_RXMODE 0x13U

RxMode register.

Contains Transmit Framing, Speed, CRC enable, bit for multiple receive and to filter errors.

§ PHHAL_HW_RC523_REG_TXCONTROL

#define PHHAL_HW_RC523_REG_TXCONTROL 0x14U

TxControl register.

Contains bits to activate and configure Tx1 and Tx2 and bit to activate 100% modulation.

§ PHHAL_HW_RC523_REG_TXASK

#define PHHAL_HW_RC523_REG_TXASK 0x15U

TxAsk register.

Contains Tx ASK settings.

§ PHHAL_HW_RC523_REG_TXSEL

#define PHHAL_HW_RC523_REG_TXSEL 0x16U

TxSel register.

Contains SigoutSel, DriverSel and LoadModSel bits.

§ PHHAL_HW_RC523_REG_RXSEL

#define PHHAL_HW_RC523_REG_RXSEL 0x17U

RxSel register.

Contains UartSel and RxWait bits.

§ PHHAL_HW_RC523_REG_RXTHRESHOLD

#define PHHAL_HW_RC523_REG_RXTHRESHOLD 0x18U

RxThreshold register.

Contains MinLevel and CollLevel for detection.

§ PHHAL_HW_RC523_REG_DEMOD

#define PHHAL_HW_RC523_REG_DEMOD 0x19U

Demod register.

Contains bits for time constants, hysteresis and IQ demodulator settings.

§ PHHAL_HW_RC523_REG_FELNFC2

#define PHHAL_HW_RC523_REG_FELNFC2 0x1BU

FelNFC2Reg register.

Contains bits for Disabling Active Communication mode.

§ PHHAL_HW_RC523_REG_MFTX

#define PHHAL_HW_RC523_REG_MFTX 0x1CU

MfTx register.

Mifare transmission settings.

§ PHHAL_HW_RC523_REG_MFRX

#define PHHAL_HW_RC523_REG_MFRX 0x1DU

MfRx register.

Mifare reception settings.

§ PHHAL_HW_RC523_REG_TYPEB

#define PHHAL_HW_RC523_REG_TYPEB 0x1EU

TypeB register.

Used for ISO/IEC 14443 Type B configuration.

§ PHHAL_HW_RC523_REG_SERIALSPEED

#define PHHAL_HW_RC523_REG_SERIALSPEED 0x1FU

SerialSpeed register.

Contains speed settings for RS232 interface.

§ PHHAL_HW_RC523_REG_CRCRESULT1

#define PHHAL_HW_RC523_REG_CRCRESULT1 0x21U

CRCResult1 register.

Contains MSByte of CRC Result.

§ PHHAL_HW_RC523_REG_CRCRESULT2

#define PHHAL_HW_RC523_REG_CRCRESULT2 0x22U

CRCResult2 register.

Contains LSByte of CRC Result.

§ PHHAL_HW_RC523_REG_GSNOFF

#define PHHAL_HW_RC523_REG_GSNOFF 0x23U

GSNOff register.

Contains the conductance and the modulation settings for the N-MOS transistor for LoadModulation.

§ PHHAL_HW_RC523_REG_MODWIDTH

#define PHHAL_HW_RC523_REG_MODWIDTH 0x24U

ModWidth register.

Contains modulation width setting.

§ PHHAL_HW_RC523_REG_RFCFG

#define PHHAL_HW_RC523_REG_RFCFG 0x26U

RfCfg register.

Contains sensitivity of Rf Level detector, the receiver gain factor and the RfLevelAmp.

§ PHHAL_HW_RC523_REG_GSN

#define PHHAL_HW_RC523_REG_GSN 0x27U

GSN register.

Contains the conductance and the modulation settings for the N-MOS transistor during active modulation.

§ PHHAL_HW_RC523_REG_CWGSP

#define PHHAL_HW_RC523_REG_CWGSP 0x28U

CWGSP register.

Contains the conductance for the P-Mos transistor.

§ PHHAL_HW_RC523_REG_MODGSP

#define PHHAL_HW_RC523_REG_MODGSP 0x29U

MODGSP register.

Contains the modulation index for the PMos transistor.

§ PHHAL_HW_RC523_REG_TMODE

#define PHHAL_HW_RC523_REG_TMODE 0x2AU

TMode register.

Contains all settings for the timer and the highest 4 bits of the prescaler.

§ PHHAL_HW_RC523_REG_TPRESCALER

#define PHHAL_HW_RC523_REG_TPRESCALER 0x2BU

TPrescaler register.

Contains the lowest byte of the pre-scaler.

§ PHHAL_HW_RC523_REG_TRELOADHI

#define PHHAL_HW_RC523_REG_TRELOADHI 0x2CU

TReloadHi register.

Contains the high byte of the reload value.

§ PHHAL_HW_RC523_REG_TRELOADLO

#define PHHAL_HW_RC523_REG_TRELOADLO 0x2DU

TReloadLo register.

Contains the low byte of the reload value.

§ PHHAL_HW_RC523_REG_TCOUNTERVALHI

#define PHHAL_HW_RC523_REG_TCOUNTERVALHI 0x2EU

TCounterValHi register.

Contains the high byte of the counter value.

§ PHHAL_HW_RC523_REG_TCOUNTERVALLO

#define PHHAL_HW_RC523_REG_TCOUNTERVALLO 0x2FU

TCounterValLo register.

Contains the low byte of the counter value.

§ PHHAL_HW_RC523_REG_TESTSEL1

#define PHHAL_HW_RC523_REG_TESTSEL1 0x31U

Test register.

§ PHHAL_HW_RC523_REG_TESTSEL2

#define PHHAL_HW_RC523_REG_TESTSEL2 0x32U

Test register.

§ PHHAL_HW_RC523_REG_TESTPINEN

#define PHHAL_HW_RC523_REG_TESTPINEN 0x33U

Test register.

§ PHHAL_HW_RC523_REG_TESTPINVALUE

#define PHHAL_HW_RC523_REG_TESTPINVALUE 0x34U

Test register.

§ PHHAL_HW_RC523_REG_TESTBUS

#define PHHAL_HW_RC523_REG_TESTBUS 0x35U

Test register.

§ PHHAL_HW_RC523_REG_AUTOTEST

#define PHHAL_HW_RC523_REG_AUTOTEST 0x36U

Test register.

§ PHHAL_HW_RC523_REG_VERSION

#define PHHAL_HW_RC523_REG_VERSION 0x37U

Contains the product number and the version.

§ PHHAL_HW_RC523_REG_ANALOGTEST

#define PHHAL_HW_RC523_REG_ANALOGTEST 0x38U

Test register.

§ PHHAL_HW_RC523_REG_TESTDAC1

#define PHHAL_HW_RC523_REG_TESTDAC1 0x39U

Test register.

§ PHHAL_HW_RC523_REG_TESTDAC2

#define PHHAL_HW_RC523_REG_TESTDAC2 0x3AU

Test register.

§ PHHAL_HW_RC523_REG_TESTADC

#define PHHAL_HW_RC523_REG_TESTADC 0x3BU

Test register.

§ PHHAL_HW_RC523_BIT_RCVOFF

#define PHHAL_HW_RC523_BIT_RCVOFF 0x20U

Switches the receiver on/off.

§ PHHAL_HW_RC523_BIT_POWERDOWN

#define PHHAL_HW_RC523_BIT_POWERDOWN 0x10U

Switches Ic to Power Down mode.

§ PHHAL_HW_RC523_CMD_IDLE

#define PHHAL_HW_RC523_CMD_IDLE 0x00U

No action; cancels current command execution.

§ PHHAL_HW_RC523_CMD_MEM

#define PHHAL_HW_RC523_CMD_MEM 0x01U

Copy configuration data from Fifo to internal Buffer or if Fifo empty vice versa.

§ PHHAL_HW_RC523_CMD_RANDOMIDS

#define PHHAL_HW_RC523_CMD_RANDOMIDS 0x02U

Replaces stored IDs with random ones.

§ PHHAL_HW_RC523_CMD_CALCCRC

#define PHHAL_HW_RC523_CMD_CALCCRC 0x03U

Activate the CRC-Coprocessor.

Remark: The result of the CRC calculation can be read from e.g. PHHAL_HW_RC523_REG_CRCRESULT1.

§ PHHAL_HW_RC523_CMD_TRANSMIT

#define PHHAL_HW_RC523_CMD_TRANSMIT 0x04U

Transmits data from the FIFO buffer to Card.

§ PHHAL_HW_RC523_CMD_NOCMDCHANGE

#define PHHAL_HW_RC523_CMD_NOCMDCHANGE 0x07U

No change; Use together with e.g.

PHHAL_HW_RC523_BIT_POWERDOWN to keep current command-state.

§ PHHAL_HW_RC523_CMD_RECEIVE

#define PHHAL_HW_RC523_CMD_RECEIVE 0x08U

Activates the receiver circuitry.

§ PHHAL_HW_RC523_CMD_TRANSCEIVE

#define PHHAL_HW_RC523_CMD_TRANSCEIVE 0x0CU

Like PHHAL_HW_RC523_CMD_TRANSMIT but automatically activates the receiver after transmission is finished.

§ PHHAL_HW_RC523_CMD_AUTOCOLL

#define PHHAL_HW_RC523_CMD_AUTOCOLL 0x0DU

Handles Felica polling or MIFARE anti-collision in Target mode.

§ PHHAL_HW_RC523_CMD_AUTHENT

#define PHHAL_HW_RC523_CMD_AUTHENT 0x0EU

Performs the Mifare Classic authentication (in Mifare Reader/Writer mode only).

§ PHHAL_HW_RC523_CMD_SOFTRESET

#define PHHAL_HW_RC523_CMD_SOFTRESET 0x0FU

Resets the IC.

§ PHHAL_HW_RC523_MASK_COMMAND

#define PHHAL_HW_RC523_MASK_COMMAND 0x0FU

Mask for Command-bits.

§ PHHAL_HW_RC523_BIT_SET

#define PHHAL_HW_RC523_BIT_SET 0x80U

Bit position to set/clear dedicated IRQ bits.

§ PHHAL_HW_RC523_BIT_IRQINV

#define PHHAL_HW_RC523_BIT_IRQINV 0x80U

Inverts the output of IRQ Pin.

§ PHHAL_HW_RC523_BIT_TXI

#define PHHAL_HW_RC523_BIT_TXI 0x40U

Bit position for Transmit Interrupt Enable/Request.

§ PHHAL_HW_RC523_BIT_RXI

#define PHHAL_HW_RC523_BIT_RXI 0x20U

Bit position for Receive Interrupt Enable/Request.

§ PHHAL_HW_RC523_BIT_IDLEI

#define PHHAL_HW_RC523_BIT_IDLEI 0x10U

Bit position for Idle Interrupt Enable/Request.

§ PHHAL_HW_RC523_BIT_HIALERTI

#define PHHAL_HW_RC523_BIT_HIALERTI 0x08U

Bit position for HiAlert Interrupt Enable/Request.

§ PHHAL_HW_RC523_BIT_LOALERTI

#define PHHAL_HW_RC523_BIT_LOALERTI 0x04U

Bit position for LoAlert Interrupt Enable/Request.

§ PHHAL_HW_RC523_BIT_ERRI

#define PHHAL_HW_RC523_BIT_ERRI 0x02U

Bit position for Error Interrupt Enable/Request.

§ PHHAL_HW_RC523_BIT_TIMERI

#define PHHAL_HW_RC523_BIT_TIMERI 0x01U

Bit position for Timer Interrupt Enable/Request.

§ PHHAL_HW_RC523_BIT_IRQPUSHPULL

#define PHHAL_HW_RC523_BIT_IRQPUSHPULL 0x80U

Sets the IRQ pin to Push Pull mode.

§ PHHAL_HW_RC523_BIT_MFINACT

#define PHHAL_HW_RC523_BIT_MFINACT 0x10U

Bit position for MfInAct Interrupt Enable/Request.

§ PHHAL_HW_RC523_BIT_CRCI

#define PHHAL_HW_RC523_BIT_CRCI 0x04U

Bit position for CRC Interrupt Enable/Request.

§ PHHAL_HW_RC523_BIT_EXT_RF_ON

#define PHHAL_HW_RC523_BIT_EXT_RF_ON 0x02U

Bit position for External RF ON.

§ PHHAL_HW_RC523_BIT_EXT_RF_OFF

#define PHHAL_HW_RC523_BIT_EXT_RF_OFF 0x01U

Bit position for External RF OFF.

§ PHHAL_HW_RC523_BIT_WRERR

#define PHHAL_HW_RC523_BIT_WRERR 0x80U

Bit position for Write Access Error.

§ PHHAL_HW_RC523_BIT_TEMPERR

#define PHHAL_HW_RC523_BIT_TEMPERR 0x40U

Bit position for Temperature Error.

§ PHHAL_HW_RC523_BIT_RFERR

#define PHHAL_HW_RC523_BIT_RFERR 0x20U

Bit position for RF Error.

§ PHHAL_HW_RC523_BIT_BUFFEROVFL

#define PHHAL_HW_RC523_BIT_BUFFEROVFL 0x10U

Bit position for Buffer Overflow Error.

§ PHHAL_HW_RC523_BIT_COLLERR

#define PHHAL_HW_RC523_BIT_COLLERR 0x08U

Bit position for Collision Error.

§ PHHAL_HW_RC523_BIT_CRCERR

#define PHHAL_HW_RC523_BIT_CRCERR 0x04U

Bit position for CRC Error.

§ PHHAL_HW_RC523_BIT_PARITYERR

#define PHHAL_HW_RC523_BIT_PARITYERR 0x02U

Bit position for Parity Error.

§ PHHAL_HW_RC523_BIT_PROTERR

#define PHHAL_HW_RC523_BIT_PROTERR 0x01U

Bit position for Protocol Error.

§ PHHAL_HW_RC523_BIT_CRCOK

#define PHHAL_HW_RC523_BIT_CRCOK 0x40U

Bit position for status CRC OK.

§ PHHAL_HW_RC523_BIT_CRCREADY

#define PHHAL_HW_RC523_BIT_CRCREADY 0x20U

Bit position for status CRC Ready.

§ PHHAL_HW_RC523_BIT_IRQ

#define PHHAL_HW_RC523_BIT_IRQ 0x10U

Bit position for status IRQ is active.

§ PHHAL_HW_RC523_BIT_TRUNNUNG

#define PHHAL_HW_RC523_BIT_TRUNNUNG 0x08U

Bit position for status Timer is running.

§ PHHAL_HW_RC523_BIT_RFON

#define PHHAL_HW_RC523_BIT_RFON 0x04U

Bit position for status External RF.

§ PHHAL_HW_RC523_BIT_HIALERT

#define PHHAL_HW_RC523_BIT_HIALERT 0x02U

Bit position for status HiAlert.

§ PHHAL_HW_RC523_BIT_LOALERT

#define PHHAL_HW_RC523_BIT_LOALERT 0x01U

Bit position for status LoAlert.

§ PHHAL_HW_RC523_BIT_TEMPSENSOFF

#define PHHAL_HW_RC523_BIT_TEMPSENSOFF 0x80U

Bit position to switch Temperature sensors on/off.

§ PHHAL_HW_RC523_BIT_I2CFORCEHS

#define PHHAL_HW_RC523_BIT_I2CFORCEHS 0x40U

Bit position to forece High speed mode for I2C Interface.

§ PHHAL_HW_RC523_BIT_TARGET_ACTIVATED

#define PHHAL_HW_RC523_BIT_TARGET_ACTIVATED 0x10U

Bit position for reader status Target Activated.

§ PHHAL_HW_RC523_BIT_CRYPTO1ON

#define PHHAL_HW_RC523_BIT_CRYPTO1ON 0x08U

Bit position for reader status Crypto is on.

§ PHHAL_HW_RC523_MASK_MODEMBITS

#define PHHAL_HW_RC523_MASK_MODEMBITS 0x07U

Bitmask for MODEM Status bits.

§ PHHAL_HW_RC523_BIT_IDLE

#define PHHAL_HW_RC523_BIT_IDLE 0x00U

Bits represent MODEM Status as IDLE.

§ PHHAL_HW_RC523_BIT_WAIT_FOR_STARTSEND

#define PHHAL_HW_RC523_BIT_WAIT_FOR_STARTSEND 0x01U

Bits represent MODEM Status as Wait for StartSend.

§ PHHAL_HW_RC523_BIT_WAIT_FOR_DATA

#define PHHAL_HW_RC523_BIT_WAIT_FOR_DATA 0x05U

Bits represent MODEM Status as Wait for data.

§ PHHAL_HW_RC523_BIT_FLUSHBUFFER

#define PHHAL_HW_RC523_BIT_FLUSHBUFFER 0x80U

Clears Fifo buffer if set to 1.

§ PHHAL_HW_RC523_MASK_WATERLEVEL

#define PHHAL_HW_RC523_MASK_WATERLEVEL 0x3FU

Bitmask for Waterlevel bits.

§ PHHAL_HW_RC523_BIT_TSTOPNOW

#define PHHAL_HW_RC523_BIT_TSTOPNOW 0x80U

Stops timer if set to 1.

§ PHHAL_HW_RC523_BIT_TSTARTNOW

#define PHHAL_HW_RC523_BIT_TSTARTNOW 0x40U

Starts timer if set to 1.

§ PHHAL_HW_RC523_BIT_INITIATOR

#define PHHAL_HW_RC523_BIT_INITIATOR 0x10U

If set to 1, the IC acts as initiator, otherwise as target.

§ PHHAL_HW_RC523_MASK_RXBITS

#define PHHAL_HW_RC523_MASK_RXBITS 0x07U

Bitmask for RxLast bits.

§ PHHAL_HW_RC523_BIT_STARTSEND

#define PHHAL_HW_RC523_BIT_STARTSEND 0x80U

Starts transmission in transceive command if set to 1.

§ PHHAL_HW_RC523_MASK_TXBITS

#define PHHAL_HW_RC523_MASK_TXBITS 0x07U

Bitmask for TxLast bits.

§ PHHAL_HW_RC523_MASK_RXALIGN

#define PHHAL_HW_RC523_MASK_RXALIGN 0x70U

Bitmask for RxAlign bits.

§ PHHAL_HW_RC523_BIT_VALUESAFTERCOLL

#define PHHAL_HW_RC523_BIT_VALUESAFTERCOLL 0x80U

Activates mode to keep data after collision.

§ PHHAL_HW_RC523_BIT_COLLPOSNOTVALID

#define PHHAL_HW_RC523_BIT_COLLPOSNOTVALID 0x20U

Whether collision position is valid or not.

§ PHHAL_HW_RC523_MASK_COLLPOS

#define PHHAL_HW_RC523_MASK_COLLPOS 0x1FU

Bitmask for CollPos bits.

§ PHHAL_HW_RC523_BIT_MSBFIRST

#define PHHAL_HW_RC523_BIT_MSBFIRST 0x80U

Sets CRC coprocessor with MSB first.

§ PHHAL_HW_RC523_BIT_TXWAITRF

#define PHHAL_HW_RC523_BIT_TXWAITRF 0x20U

Waits until RF is enabled until transmission is started, else starts immediately.

§ PHHAL_HW_RC523_BIT_POLMFIN

#define PHHAL_HW_RC523_BIT_POLMFIN 0x08U

Inverts polarity of MfinActIrq.

If bit is set to 1 IRQ occurs when Sigin line is 0.

§ PHHAL_HW_RC523_BIT_MODEDETOFF

#define PHHAL_HW_RC523_BIT_MODEDETOFF 0x04U

Set to logic 1, the internal mode detector is switched off during PHHAL_HW_RC523_CMD_AUTOCOLL.

§ PHHAL_HW_RC523_MASK_CRCPRESET

#define PHHAL_HW_RC523_MASK_CRCPRESET 0x03U

Bitmask for CRCPreset bits.

§ PHHAL_HW_RC523_BIT_CRCEN

#define PHHAL_HW_RC523_BIT_CRCEN 0x80U

Activates transmit or receive CRC.

§ PHHAL_HW_RC523_BIT_848KBPS

#define PHHAL_HW_RC523_BIT_848KBPS 0x30U

Activates speed of 848kbps.

§ PHHAL_HW_RC523_BIT_424KBPS

#define PHHAL_HW_RC523_BIT_424KBPS 0x20U

Activates speed of 424kbps.

§ PHHAL_HW_RC523_BIT_212KBPS

#define PHHAL_HW_RC523_BIT_212KBPS 0x10U

Activates speed of 212kbps.

§ PHHAL_HW_RC523_BIT_106KBPS

#define PHHAL_HW_RC523_BIT_106KBPS 0x00U

Activates speed of 106kbps.

§ PHHAL_HW_RC523_BIT_INVMOD

#define PHHAL_HW_RC523_BIT_INVMOD 0x08U

Activates inverted transmission mode.

§ PHHAL_HW_RC523_BIT_RXNOERR

#define PHHAL_HW_RC523_BIT_RXNOERR 0x08U

If set, receiver ignores less than 4 bits.

§ PHHAL_HW_RC523_BIT_RXMULTIPLE

#define PHHAL_HW_RC523_BIT_RXMULTIPLE 0x04U

Activates reception mode for multiple responses.

§ PHHAL_HW_RC523_BIT_TYPEB

#define PHHAL_HW_RC523_BIT_TYPEB 0x03U

Activates Type B communication mode.

§ PHHAL_HW_RC523_BIT_FELICA

#define PHHAL_HW_RC523_BIT_FELICA 0x02U

Activates Felica communication mode.

§ PHHAL_HW_RC523_BIT_ACTIVE

#define PHHAL_HW_RC523_BIT_ACTIVE 0x01U

Activates Active communication mode.

§ PHHAL_HW_RC523_BIT_MIFARE

#define PHHAL_HW_RC523_BIT_MIFARE 0x00U

Activates Mifare communication mode.

§ PHHAL_HW_RC523_BIT_MIFARE_CE

#define PHHAL_HW_RC523_BIT_MIFARE_CE 0x80U

Activates Mifare communication mode.

§ PHHAL_HW_RC523_MASK_SPEED

#define PHHAL_HW_RC523_MASK_SPEED 0x70U

Bitmask for Tx/RxSpeed bits.

§ PHHAL_HW_RC523_SHIFT_SPEED

#define PHHAL_HW_RC523_SHIFT_SPEED 0x04U

Number of bits to be shifted.

§ PHHAL_HW_RC523_MASK_FRAMING

#define PHHAL_HW_RC523_MASK_FRAMING 0x03U

Bitmask for Tx/RxFraming bits.

§ PHHAL_HW_RC523_BIT_AUTORF_OFF

#define PHHAL_HW_RC523_BIT_AUTORF_OFF 0x80U

Bitmask for Auto RF Off.

§ PHHAL_HW_RC523_BIT_CA_ON

#define PHHAL_HW_RC523_BIT_CA_ON 0x08U

Bitmask for CA.

§ PHHAL_HW_RC523_BIT_DETECT_SYNC

#define PHHAL_HW_RC523_BIT_DETECT_SYNC 0x40U

Bitmask for Detect Sync.

§ PHHAL_HW_RC523_BIT_INITIAL_RF_ON

#define PHHAL_HW_RC523_BIT_INITIAL_RF_ON 0x04U

Bitmask for Initial RF on.

§ PHHAL_HW_RC523_BIT_TX2RFAutoEN

#define PHHAL_HW_RC523_BIT_TX2RFAutoEN 0x02U

Bitmask for Auto RF ON.

§ PHHAL_HW_RC523_BIT_TX1RFAutoEN

#define PHHAL_HW_RC523_BIT_TX1RFAutoEN 0x1U

Bitmask for Auto RF ON.

§ PHHAL_HW_RC523_BIT_INVTX2ON

#define PHHAL_HW_RC523_BIT_INVTX2ON 0x80U

Inverts the Tx2 output if drivers are switched on.

§ PHHAL_HW_RC523_BIT_INVTX1ON

#define PHHAL_HW_RC523_BIT_INVTX1ON 0x40U

Inverts the Tx1 output if drivers are switched on.

§ PHHAL_HW_RC523_BIT_INVTX2OFF

#define PHHAL_HW_RC523_BIT_INVTX2OFF 0x20U

Inverts the Tx2 output if drivers are switched off.

§ PHHAL_HW_RC523_BIT_INVTX1OFF

#define PHHAL_HW_RC523_BIT_INVTX1OFF 0x10U

Inverts the Tx1 output if drivers are switched off.

§ PHHAL_HW_RC523_BIT_TX2CW

#define PHHAL_HW_RC523_BIT_TX2CW 0x08U

Does not modulate the Tx2 output, only constant wave.

§ PHHAL_HW_RC523_BIT_CHECKRF

#define PHHAL_HW_RC523_BIT_CHECKRF 0x04U

Set to logic 1, RF field cannot be activated if external RF field is detected.

§ PHHAL_HW_RC523_BIT_TX2RFEN

#define PHHAL_HW_RC523_BIT_TX2RFEN 0x02U

Switches the driver for Tx2 pin on.

§ PHHAL_HW_RC523_BIT_TX1RFEN

#define PHHAL_HW_RC523_BIT_TX1RFEN 0x01U

Switches the driver for Tx1 pin on.

§ PHHAL_HW_RC523_BIT_FORCE100ASK

#define PHHAL_HW_RC523_BIT_FORCE100ASK 0x40U

Activates 100ASK mode independent of driver settings.

§ PHHAL_HW_RC523_MASK_DRIVERSEL

#define PHHAL_HW_RC523_MASK_DRIVERSEL 0x30U

Bitmask for DriverSel bits.

§ PHHAL_HW_RC523_MASK_MFOUTSEL

#define PHHAL_HW_RC523_MASK_MFOUTSEL 0x0FU

Bitmask for MfOutSel bits.

§ PHHAL_HW_RC523_MASK_UARTSEL

#define PHHAL_HW_RC523_MASK_UARTSEL 0xC0U

Bitmask for UartSel bits.

§ PHHAL_HW_RC523_MASK_RXWAIT

#define PHHAL_HW_RC523_MASK_RXWAIT 0x3FU

Bitmask for RxWait bits.

§ PHHAL_HW_RC523_MASK_MINLEVEL

#define PHHAL_HW_RC523_MASK_MINLEVEL 0xF0U

Bitmask for MinLevel bits.

§ PHHAL_HW_RC523_MASK_COLLEVEL

#define PHHAL_HW_RC523_MASK_COLLEVEL 0x07U

Bitmask for CollLevel bits.

§ PHHAL_HW_RC523_BIT_FIXIQ

#define PHHAL_HW_RC523_BIT_FIXIQ 0x20U

If set and the lower bit of AddIQ is cleared, the receiving is fixed to I channel.

If set and the lower bit of AddIQ is set, the receiving is fixed to Q channel.

§ PHHAL_HW_RC523_MASK_ADDIQ

#define PHHAL_HW_RC523_MASK_ADDIQ 0xC0U

Bitmask for ADDIQ bits.

§ PHHAL_HW_RC523_MASK_TAURCV

#define PHHAL_HW_RC523_MASK_TAURCV 0x0CU

Bitmask for TauRcv bits.

§ PHHAL_HW_RC523_MASK_TAUSYNC

#define PHHAL_HW_RC523_MASK_TAUSYNC 0x03U

Bitmask for TauSync bits.

§ PHHAL_HW_RC523_WAIT_FOR_SELECTED

#define PHHAL_HW_RC523_WAIT_FOR_SELECTED 0x80U

Bitmask for WaitForSelected bit.

§ PHHAL_HW_RC523_MASK_TXWAIT

#define PHHAL_HW_RC523_MASK_TXWAIT 0x03U

Bitmask for TxWait bits.

§ PHHAL_HW_RC523_BIT_MFHALTED

#define PHHAL_HW_RC523_BIT_MFHALTED 0x04U

Set to logic 1, Responds only for ALL_REQ ("52").

§ PHHAL_HW_RC523_BIT_PARITYDISABLE

#define PHHAL_HW_RC523_BIT_PARITYDISABLE 0x10U

Disables the parity generation and sending independent from the mode.

§ PHHAL_HW_RC523_MASK_RXEOFREQ

#define PHHAL_HW_RC523_MASK_RXEOFREQ 0x40U

Bitmask for RX EOF required for Type B.

§ PHHAL_HW_RC523_MASK_RXGAIN

#define PHHAL_HW_RC523_MASK_RXGAIN 0x70U

Bitmask for RxGain bits.

§ PHHAL_HW_RC523_MASK_CWGSN

#define PHHAL_HW_RC523_MASK_CWGSN 0xF0U

Bitmask for CWGsN bits.

§ PHHAL_HW_RC523_MASK_MODGSN

#define PHHAL_HW_RC523_MASK_MODGSN 0x0FU

Bitmask for ModGsN bits.

§ PHHAL_HW_RC523_MASK_CWGSP

#define PHHAL_HW_RC523_MASK_CWGSP 0x3FU

Bitmask for CWGsP bits.

§ PHHAL_HW_RC523_MASK_MODGSP

#define PHHAL_HW_RC523_MASK_MODGSP 0x3FU

Bitmask for ModGsP bits.

§ PHHAL_HW_RC523_BIT_TAUTO

#define PHHAL_HW_RC523_BIT_TAUTO 0x80U

Sets the Timer start/stop conditions to Auto mode.

§ PHHAL_HW_RC523_BIT_TAUTORESTART

#define PHHAL_HW_RC523_BIT_TAUTORESTART 0x10U

Restarts the timer automatically after counting down to 0.

§ PHHAL_HW_RC523_MASK_TGATED

#define PHHAL_HW_RC523_MASK_TGATED 0x60U

Bitmask for TGated bits.

§ PHHAL_HW_RC523_MASK_TPRESCALER_HI

#define PHHAL_HW_RC523_MASK_TPRESCALER_HI 0x0FU

Bitmask for TPrescalerHi bits.

Function Documentation

§ phhalHw_Rc523_WriteRegister()

phStatus_t phhalHw_Rc523_WriteRegister | ( | phhalHw_Rc523_DataParams_t * | pDataParams,
 |  | uint8_t | bAddress,
 |  | uint8_t | bValue
 | ) |  |

Write to 8bit address of CL front-end register.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INTERFACE_ERROR | Hardware problem
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bAddress | Register Address.
[in] | bValue | Register Value.

§ phhalHw_Rc523_ReadRegister()

phStatus_t phhalHw_Rc523_ReadRegister | ( | phhalHw_Rc523_DataParams_t * | pDataParams,
 |  | uint8_t | bAddress,
 |  | uint8_t * | pValue
 | ) |  |

Read 8bit register address from CL front-ends.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INTERFACE_ERROR | Hardware problem
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bAddress | Register Address.
[out] | pValue | Register Value.


NXP NFC Reader Library: Configuration

Configuration
Hardware Abstraction Layer » component : Rc523

Custom Configuration of hardware related settings. More...

Collaboration diagram for Configuration:

Memory related constants

#define PHHAL_HW_RC523_PRECACHED_BYTES 0x40U
Maximum number of bytes to precache into FIFO before triggering a command. More...

Modulation indices

#define | PHHAL_HW_RC523_MODINDEX_I14443B 0x11U
Default modulation index for ISO14443B. More...
#define | PHHAL_HW_RC523_MODINDEX_FELICA 0x12U
Default modulation index for Felica. More...
#define | PHHAL_HW_RC523_MODINDEX_TARGET 0xF2U
Default conductance for LoadModulation. More...

RxThreshold values

#define | PHHAL_HW_RC523_RXTHRESHOLD_I14443A 0x55U
RxThreshold for ISO14443A. More...
#define | PHHAL_HW_RC523_RXTHRESHOLD_I14443B 0x50U
RxThreshold for ISO14443B. More...
#define | PHHAL_HW_RC523_RXTHRESHOLD_FELICA 0x55U
RxThreshold for Felica. More...

Feature selection

#define PHHAL_HW_RC523_FEATURE_FIFO_UNDERFLOW_CHECK
Checks for FIFO underflow during data transmission if defined. More...

Detailed Description

Custom Configuration of hardware related settings.

Macro Definition Documentation

§ PHHAL_HW_RC523_PRECACHED_BYTES

#define PHHAL_HW_RC523_PRECACHED_BYTES 0x40U

Maximum number of bytes to precache into FIFO before triggering a command.

§ PHHAL_HW_RC523_MODINDEX_I14443B

#define PHHAL_HW_RC523_MODINDEX_I14443B 0x11U

Default modulation index for ISO14443B.

§ PHHAL_HW_RC523_MODINDEX_FELICA

#define PHHAL_HW_RC523_MODINDEX_FELICA 0x12U

Default modulation index for Felica.

§ PHHAL_HW_RC523_MODINDEX_TARGET

#define PHHAL_HW_RC523_MODINDEX_TARGET 0xF2U

Default conductance for LoadModulation.

§ PHHAL_HW_RC523_RXTHRESHOLD_I14443A

#define PHHAL_HW_RC523_RXTHRESHOLD_I14443A 0x55U

RxThreshold for ISO14443A.

§ PHHAL_HW_RC523_RXTHRESHOLD_I14443B

#define PHHAL_HW_RC523_RXTHRESHOLD_I14443B 0x50U

RxThreshold for ISO14443B.

§ PHHAL_HW_RC523_RXTHRESHOLD_FELICA

#define PHHAL_HW_RC523_RXTHRESHOLD_FELICA 0x55U

RxThreshold for Felica.

§ PHHAL_HW_RC523_FEATURE_FIFO_UNDERFLOW_CHECK

#define PHHAL_HW_RC523_FEATURE_FIFO_UNDERFLOW_CHECK

Checks for FIFO underflow during data transmission if defined.


NXP NFC Reader Library: phhalHw_Rc523_DataParams_t Struct Reference

Data Fields
phhalHw_Rc523_DataParams_t Struct Reference
Hardware Abstraction Layer » component : Rc523

Rc523 HAL parameter structure. More...

Data Fields

uint16_t wId
Layer ID for this component, NEVER MODIFY!. More...
void * | pBalDataParams
Pointer to the lower layers parameter structure. More...
void * | pKeyStoreDataParams
Pointer to the parameter structure of the keyStore layer. More...
uint32_t dwTimingUs
Current timing value. More...
uint8_t * pTxBuffer
Pointer to global transmit buffer used by the phhalHw_Exchange() function. More...
uint8_t * pRxBuffer
Pointer to global receive buffer used by the phhalHw_Exchange() function. More...
uint16_t wTxBufSize
Size of the global transmit buffer. More...
uint16_t wTxBufLen
Number of valid bytes within the transmit buffer. More...
uint16_t wRxBufSize
Size of the global receive buffer. More...
uint16_t wRxBufLen
Number of valid bytes within the receive buffer. More...
uint16_t wRxBufStartPos
Starting position within the global receive buffer. More...
uint16_t wMaxPrecachedBytes
Holds the max. More...
uint16_t wCfgShadow [PHHAL_HW_RC523_SHADOW_COUNT]
Configuration shadow; Stores configuration for current card-type. More...
uint16_t wTimingMode
Current timing measurement mode. More...
uint16_t wFieldOffTime
Field-Off-Time in milliseconds. More...
uint16_t wFieldRecoveryTime
Field-Recovery-Time in milliseconds. More...
uint16_t wAdditionalInfo
Storage for additional error information. More...
uint16_t dwFdtPc
Current timing value backup for PC. More...
uint16_t wTargetMode
Used to indicate the mode and speed at which target is activated. More...
uint16_t bTxWaitPrescaler
Holds pre-scaler value for Tx wait. More...
uint16_t bTimeoutPrescaler
Holds pre-scaler value for timeout. More...
uint16_t wTxWaitReloadVal
Holds Timer reload value for Tx wait. More...
uint16_t wTimeoutReloadVal
Holds Timer reload value for timeout. More...
uint8_t bCardType
Type of card for which the HAL is configured for. More...
uint8_t bTimeoutUnit
Unit of current timeout value (either PHHAL_HW_TIME_MICROSECONDS or PHHAL_HW_TIME_MILLISECONDS). More...
uint8_t bBalConnectionType
Type of the underlying BAL connection. More...
uint8_t bRfResetAfterTo
Storage for PHHAL_HW_CONFIG_RFRESET_ON_TIMEOUT setting. More...
uint8_t bRxMultiple
Flag indicates whether RX multiple is to be enabled or not. More...
uint8_t bActiveMode
Flag indicates whether active mode is activated or not. More...
uint8_t bRfca
Flag indicates whether RFCA is to be enabled or not (PH_ON or PH_OFF, default - PH_ON). More...
uint8_t bJewelActivated
Set the PH_ON/PH_OFF jewel exchange mode. More...
uint8_t bOpeMode
Operation mode. More...
uint8_t bNfcipMode
Enable/Disable to handle start byte at 106kbps in NFCIP-1 mode. More...
uint8_t bSkipSend
Flag indicates whether Skip send should be performed or not in active target mode. More...
uint8_t bCheckEmdErr
Flag indicates EMD feature is enabled for ISO. More...
uint8_t bEmdNoiseMaxDataLen
EMD Max noise data length for ISO. More...
phOsal_EventObj_t HwEventObj
Handle for Event. More...
ppRFCallBck_t pRFISRCallback
Application RF callback called by ISR handler. More...

Detailed Description

Rc523 HAL parameter structure.

Field Documentation

§ wId

uint16_t phhalHw_Rc523_DataParams_t::wId

Layer ID for this component, NEVER MODIFY!.

§ pBalDataParams

void* phhalHw_Rc523_DataParams_t::pBalDataParams

Pointer to the lower layers parameter structure.

§ pKeyStoreDataParams

void* phhalHw_Rc523_DataParams_t::pKeyStoreDataParams

Pointer to the parameter structure of the keyStore layer.

§ dwTimingUs

uint32_t phhalHw_Rc523_DataParams_t::dwTimingUs

Current timing value.

§ pTxBuffer

uint8_t* phhalHw_Rc523_DataParams_t::pTxBuffer

Pointer to global transmit buffer used by the phhalHw_Exchange() function.

§ pRxBuffer

uint8_t* phhalHw_Rc523_DataParams_t::pRxBuffer

Pointer to global receive buffer used by the phhalHw_Exchange() function.

§ wTxBufSize

uint16_t phhalHw_Rc523_DataParams_t::wTxBufSize

Size of the global transmit buffer.

§ wTxBufLen

uint16_t phhalHw_Rc523_DataParams_t::wTxBufLen

Number of valid bytes within the transmit buffer.

§ wRxBufSize

uint16_t phhalHw_Rc523_DataParams_t::wRxBufSize

Size of the global receive buffer.

§ wRxBufLen

uint16_t phhalHw_Rc523_DataParams_t::wRxBufLen

Number of valid bytes within the receive buffer.

§ wRxBufStartPos

uint16_t phhalHw_Rc523_DataParams_t::wRxBufStartPos

Starting position within the global receive buffer.

§ wMaxPrecachedBytes

uint16_t phhalHw_Rc523_DataParams_t::wMaxPrecachedBytes

Holds the max.

number of bytes which are precached prior to command execution.

§ wCfgShadow

uint16_t phhalHw_Rc523_DataParams_t::wCfgShadow[PHHAL_HW_RC523_SHADOW_COUNT]

Configuration shadow; Stores configuration for current card-type.

§ wTimingMode

uint16_t phhalHw_Rc523_DataParams_t::wTimingMode

Current timing measurement mode.

§ wFieldOffTime

uint16_t phhalHw_Rc523_DataParams_t::wFieldOffTime

Field-Off-Time in milliseconds.

§ wFieldRecoveryTime

uint16_t phhalHw_Rc523_DataParams_t::wFieldRecoveryTime

Field-Recovery-Time in milliseconds.

§ wAdditionalInfo

uint16_t phhalHw_Rc523_DataParams_t::wAdditionalInfo

Storage for additional error information.

§ dwFdtPc

uint16_t phhalHw_Rc523_DataParams_t::dwFdtPc

Current timing value backup for PC.

§ wTargetMode

uint16_t phhalHw_Rc523_DataParams_t::wTargetMode

Used to indicate the mode and speed at which target is activated.

Lower byte indicates speed and higher byte indicates framing.

§ bTxWaitPrescaler

uint16_t phhalHw_Rc523_DataParams_t::bTxWaitPrescaler

Holds pre-scaler value for Tx wait.

§ bTimeoutPrescaler

uint16_t phhalHw_Rc523_DataParams_t::bTimeoutPrescaler

Holds pre-scaler value for timeout.

§ wTxWaitReloadVal

uint16_t phhalHw_Rc523_DataParams_t::wTxWaitReloadVal

Holds Timer reload value for Tx wait.

§ wTimeoutReloadVal

uint16_t phhalHw_Rc523_DataParams_t::wTimeoutReloadVal

Holds Timer reload value for timeout.

§ bCardType

uint8_t phhalHw_Rc523_DataParams_t::bCardType

Type of card for which the HAL is configured for.

§ bTimeoutUnit

uint8_t phhalHw_Rc523_DataParams_t::bTimeoutUnit

Unit of current timeout value (either PHHAL_HW_TIME_MICROSECONDS or PHHAL_HW_TIME_MILLISECONDS).

§ bBalConnectionType

uint8_t phhalHw_Rc523_DataParams_t::bBalConnectionType

Type of the underlying BAL connection.

Refer to PHHAL_HW_CONFIG_BAL_CONNECTION.

§ bRfResetAfterTo

uint8_t phhalHw_Rc523_DataParams_t::bRfResetAfterTo

Storage for PHHAL_HW_CONFIG_RFRESET_ON_TIMEOUT setting.

§ bRxMultiple

uint8_t phhalHw_Rc523_DataParams_t::bRxMultiple

Flag indicates whether RX multiple is to be enabled or not.

§ bActiveMode

uint8_t phhalHw_Rc523_DataParams_t::bActiveMode

Flag indicates whether active mode is activated or not.

§ bRfca

uint8_t phhalHw_Rc523_DataParams_t::bRfca

Flag indicates whether RFCA is to be enabled or not (PH_ON or PH_OFF, default - PH_ON).

§ bJewelActivated

uint8_t phhalHw_Rc523_DataParams_t::bJewelActivated

Set the PH_ON/PH_OFF jewel exchange mode.

§ bOpeMode

uint8_t phhalHw_Rc523_DataParams_t::bOpeMode

Operation mode.

One of NFC, EMVCo, ISO.

§ bNfcipMode

uint8_t phhalHw_Rc523_DataParams_t::bNfcipMode

Enable/Disable to handle start byte at 106kbps in NFCIP-1 mode.

§ bSkipSend

uint8_t phhalHw_Rc523_DataParams_t::bSkipSend

Flag indicates whether Skip send should be performed or not in active target mode.

§ bCheckEmdErr

uint8_t phhalHw_Rc523_DataParams_t::bCheckEmdErr

Flag indicates EMD feature is enabled for ISO.

§ bEmdNoiseMaxDataLen

uint8_t phhalHw_Rc523_DataParams_t::bEmdNoiseMaxDataLen

EMD Max noise data length for ISO.

§ HwEventObj

phOsal_EventObj_t phhalHw_Rc523_DataParams_t::HwEventObj

Handle for Event.

§ pRFISRCallback

ppRFCallBck_t phhalHw_Rc523_DataParams_t::pRFISRCallback

Application RF callback called by ISR handler.

The documentation for this struct was generated from the following file:
  • phhalHw.h


NXP NFC Reader Library: component : Pn5180

Modules | Data Structures | Macros | Functions
component : Pn5180
Hardware Abstraction Layer

Pn5180 HAL component. More...

Collaboration diagram for component : Pn5180:

Modules

Instruction
Pn5180 Instruction functions.
Internal
Pn5180 Int functions.

Data Structures

struct phhalHw_Pn5180_DataParams_t
PN5180 HAL component. More...

Macros

#define | PHHAL_HW_PN5180_ID 0x0E
ID for PN5180 HAL component.
#define | PHHAL_HW_PN5180_DEFAULT_TIMEOUT 150U
Default timeout in microseconds. More...
#define | PHHAL_HW_PN5180_DEFAULT_TIMEOUT_MILLI 50U
Default timeout in milliseconds.
#define | PHHAL_HW_PN5180_SHADOW_COUNT 0x10U
Pn5180 Shadow Register count.
#define | INSTR_BUFFER_SIZE 262
Used to form commands 259-Max buf size in writeregmultiple.

Functions

phStatus_t | phhalHw_Pn5180_Init (phhalHw_Pn5180_DataParams_t *pDataParams, uint16_t wSizeOfDataParams, void *pBalDataParams, void *pKeyStoreDataParams, uint8_t *pTxBuffer, uint16_t wTxBufSize, uint8_t *pRxBuffer, uint16_t wRxBufSize)
Initializes the PN5180 HAL component. More...
phStatus_t | phhalHw_Pn5180_SetListenParameters (phhalHw_Pn5180_DataParams_t *pDataParams, uint8_t *pSensRes, uint8_t *pNfcId1, uint8_t bSelRes, uint8_t *pPollingResp, uint8_t bNfcId3)
PN5180 implementation of phhalHw_SetListenParameters. More...

Detailed Description

Pn5180 HAL component.

Macro Definition Documentation

§ PHHAL_HW_PN5180_DEFAULT_TIMEOUT

#define PHHAL_HW_PN5180_DEFAULT_TIMEOUT 150U

Default timeout in microseconds.

Function Documentation

§ phhalHw_Pn5180_Init()

phStatus_t phhalHw_Pn5180_Init | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams,
 |  | void * | pBalDataParams,
 |  | void * | pKeyStoreDataParams,
 |  | uint8_t * | pTxBuffer,
 |  | uint16_t | wTxBufSize,
 |  | uint8_t * | pRxBuffer,
 |  | uint16_t | wRxBufSize
 | ) |  |

Initializes the PN5180 HAL component.

This function has to be called as part of the initialization of the HAL layer of the application that intends to use the PN517 as the reader IC front end.

Parameters
[in] | pDataParams | Pointer to data parameter of this HAL layer
[in] | wSizeOfDataParams | Size of the data parameter of the structure that was passed
[in] | pBalDataParams | Pointer to the lower layer parameter(BAL) structure
[in] | pKeyStoreDataParams | Pointer to the parameter structure of the keyStore layer.
[in] | pTxBuffer | Pointer to global transmit buffer that will be used by Exchange()
[in] | wTxBufSize | size of the global transmit buffer
[in] | pRxBuffer | Pointer to global receive buffer that will be used by Exchange()
[in] | wRxBufSize | Size of the global receive buffer

§ phhalHw_Pn5180_SetListenParameters()

phStatus_t phhalHw_Pn5180_SetListenParameters | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint8_t * | pSensRes,
 |  | uint8_t * | pNfcId1,
 |  | uint8_t | bSelRes,
 |  | uint8_t * | pPollingResp,
 |  | uint8_t | bNfcId3
 | ) |  |

PN5180 implementation of phhalHw_SetListenParameters.

See also
phhalHw_SetListenParameters
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pSensRes | 2 bytes.
[in] | pNfcId1 | 3 bytes; The first NfcId1 byte is fixed to 08h and the check byte is calculated automatically.
[in] | bSelRes | 1 byte.
[in] | pPollingResp | 2 bytes (shall be 01h, FEh) + 6 bytes NfcId2 + 8 bytes Pad + 2 bytes SystemCode.
[in] | bNfcId3 | 1 byte.


NXP NFC Reader Library: Instruction

Functions
Instruction
Hardware Abstraction Layer » component : Pn5180

Pn5180 Instruction functions. More...

Collaboration diagram for Instruction:

Functions

phStatus_t | phhalHw_Pn5180_Instr_Execute (phhalHw_Pn5180_DataParams_t *pDataParams, uint8_t bInstructionCode, uint8_t *pInstrPayload, uint16_t wInstrPayloadLength, uint16_t wExpectedResponseLength, uint8_t **ppInstrResponse)
Execute a PN5180 Instruction. More...
phStatus_t | phhalHw_Pn5180_Instr_WriteRegister (phhalHw_Pn5180_DataParams_t *pDataParams, uint8_t bRegister, uint32_t dwValue)
Write a 32 bit value (little endian) to a logical register. More...
phStatus_t | phhalHw_Pn5180_Instr_WriteRegisterOrMask (phhalHw_Pn5180_DataParams_t *pDataParams, uint8_t bRegister, uint32_t dwMask)
Perform a logical OR operation on a register using provided mask. More...
phStatus_t | phhalHw_Pn5180_Instr_WriteRegisterAndMask (phhalHw_Pn5180_DataParams_t *pDataParams, uint8_t bRegister, uint32_t dwMask)
Perform a logical AND operation on a register using provided mask. More...
phStatus_t | phhalHw_Pn5180_Instr_WriteRegisterMultiple (phhalHw_Pn5180_DataParams_t *pDataParams, uint8_t *pRegTypeValueSets, uint16_t wSizeOfRegTypeValueSets)
Perform a write register operation using a set of Register-Value pairs. More...
phStatus_t | phhalHw_Pn5180_Instr_ReadRegister (phhalHw_Pn5180_DataParams_t *pDataParams, uint8_t bRegister, uint32_t *pValue)
Read back content of a register. More...
phStatus_t | phhalHw_Pn5180_Instr_ReadRegisterMultiple (phhalHw_Pn5180_DataParams_t *pDataParams, uint8_t *pRegisters, uint8_t bNumOfRegisters, uint8_t **ppValues)
Perform a read register operation on a set of registers. More...
phStatus_t | phhalHw_Pn5180_Instr_WriteE2Prom (phhalHw_Pn5180_DataParams_t *pDataParams, uint8_t bE2PromAddress, uint8_t *pDataToWrite, uint8_t bDataLength)
Write values sequentially to E2PROM. More...
phStatus_t | phhalHw_Pn5180_Instr_ReadE2Prom (phhalHw_Pn5180_DataParams_t *pDataParams, uint8_t bE2PromAddress, uint8_t *pReadData, uint8_t bDataLength)
Read values sequentially to E2PROM. More...
phStatus_t | phhalHw_Pn5180_Instr_WriteTxData (phhalHw_Pn5180_DataParams_t *pDataParams, uint8_t *pTxBuffer, uint16_t wTxBufferLength)
Write Tx data to internal CLIF transmission buffer. More...
phStatus_t | phhalHw_Pn5180_Instr_SendData (phhalHw_Pn5180_DataParams_t *pDataParams, uint8_t *pTxBuffer, uint16_t wTxBufferLength, uint8_t bNumberOfValidBits)
Write Tx data to internal RF transmission buffer and start transmission using transceive command. More...
phStatus_t | phhalHw_Pn5180_Instr_RetrieveRxData (phhalHw_Pn5180_DataParams_t *pDataParams, uint8_t **pRxBuffer, uint16_t wExpectedRxDataLength)
Read data back from internal CLIF Rx buffer. More...
phStatus_t | phhalHw_Pn5180_Instr_SwitchModeStandby (phhalHw_Pn5180_DataParams_t *pDataParams, uint8_t bWakeupControlMask, uint16_t wWakeupCounterInMs)
Switch to standby mode. More...
phStatus_t | phhalHw_Pn5180_Instr_SwitchModeLpcd (phhalHw_Pn5180_DataParams_t *pDataParams, uint16_t wWakeupCounterInMs)
Switch to LPCD mode. More...
phStatus_t | phhalHw_Pn5180_Instr_SwitchModeAutocoll (phhalHw_Pn5180_DataParams_t *pDataParams, uint8_t bRfTechnologyMask, uint8_t bAutocollMode)
Switch to Autocoll mode. More...
phStatus_t | phhalHw_Pn5180_Instr_MifareAuthenticate (phhalHw_Pn5180_DataParams_t *pDataParams, uint8_t *pKey, uint8_t bKeyType, uint8_t bBlockNo, uint8_t *pUid)
Perform authentication on an activated Mifare Classic card. More...
phStatus_t | phhalHw_Pn5180_Instr_EpcGen2Inventory (phhalHw_Pn5180_DataParams_t *pDataParams, uint8_t *pSelectCommand, uint8_t bSelectCommandLength, uint8_t bSelectCommandBitsInLastByte, uint8_t *pBeginRoundCmmand, uint8_t bTimeslotProcessingBehavior)
Perform an ISO 18000-3M3 Inventory. More...
phStatus_t | phhalHw_Pn5180_Instr_EpcGen2RetrieveResultSize (phhalHw_Pn5180_DataParams_t *pDataParams, uint16_t *pResultSize)
Retrieve the size of a pending EPC GEN2 inventory result. More...
phStatus_t | phhalHw_Pn5180_Instr_EpcGen2RetrieveResult (phhalHw_Pn5180_DataParams_t *pDataParams, uint8_t **ppInventoryResult, uint16_t wResultSize)
Return the result of inventory. More...
phStatus_t | phhalHw_Pn5180_Instr_EpcGen2ResumeInventory (phhalHw_Pn5180_DataParams_t *pDataParams)
Resume an ISO 18000-3M3 Inventory. More...
phStatus_t | phhalHw_Pn5180_Instr_LoadRfConfiguration (phhalHw_Pn5180_DataParams_t *pDataParams, uint8_t bRfTxConfiguration, uint8_t bRfRxConfiguration)
Load RF Tx and Rx settings from E2PROM. More...
phStatus_t | phhalHw_Pn5180_Instr_UpdateRfConfiguration (phhalHw_Pn5180_DataParams_t *pDataParams, uint8_t *pRfConfiguration, uint8_t bRfConfigurationSize)
Update the RF configuration. More...
phStatus_t | phhalHw_Pn5180_Instr_RetrieveRfConfigurationSize (phhalHw_Pn5180_DataParams_t *pDataParams, uint8_t bRfConfiguration, uint8_t *pNumOfRegisters)
Retrieve the number of register-value pairs of the RF configuration. More...
phStatus_t | phhalHw_Pn5180_Instr_RetrieveRfConfiguration (phhalHw_Pn5180_DataParams_t *pDataParams, uint8_t bRfConfiguration, uint8_t **ppRfConfiguration, uint8_t bNumOfRegisters)
Retrieve the RF configuration. More...
phStatus_t | phhalHw_Pn5180_Instr_RfOn (phhalHw_Pn5180_DataParams_t *pDataParams, uint8_t bRfOnConfig)
Turns the RF field ON. More...
phStatus_t | phhalHw_Pn5180_Instr_RfOff (phhalHw_Pn5180_DataParams_t *pDataParams)
Turns the RF field OFF. More...
phStatus_t | phhalHw_Pn5180_Instr_ConfigureTestBusDigital (phhalHw_Pn5180_DataParams_t *pDataParams, uint8_t bTBSelect, uint8_t *pTBpos, uint8_t bTBposSize)
Configures the Digital Test BUS. More...
phStatus_t | phhalHw_Pn5180_Instr_ConfigureTestBusAnalog (phhalHw_Pn5180_DataParams_t *pDataParams, uint8_t bDAC1Config, uint8_t bDAC0Config)
Configures the Analog Test BUS. More...
phStatus_t | phhalHw_Pn5180_Instr_GetHALVersion (uint16_t *pValue)
Returns the current version of HAL only for I&V reporting purposes. More...
phStatus_t | phhalHw_Pn5180_Int_LPCD_SetConfig (phhalHw_Pn5180_DataParams_t *pDataParams, uint16_t wConfig, uint16_t wValue)
Set config for LFCD which is IC specific. More...
phStatus_t | phhalHw_Pn5180_Int_LPCD_GetConfig (phhalHw_Pn5180_DataParams_t *pDataParams, uint16_t wConfig, uint16_t *pValue)
Get config for LFCD which is IC specific. More...
phStatus_t | phhalHw_Pn5180_Instr_SwitchModeNormal (phhalHw_Pn5180_DataParams_t *pDataParams)
Switch to Normal mode. More...

Major Version

#define HAL_MAJOR_VER ((uint16_t)(3))

Minor Version

#define HAL_MINOR_VER ((uint16_t)(4))

PN5180 Instruction Codes.

To be used with phhalHw_Pn5180_Instr_Execute

#define | PHHAL_HW_PN5180_SET_INSTR_WRITE_REGISTER 0x00U
Write 32 bit value to a register. More...
#define | PHHAL_HW_PN5180_SET_INSTR_WRITE_REGISTER_OR_MASK 0x01U
Perform a logical OR operation on a register using provided mask. More...
#define | PHHAL_HW_PN5180_SET_INSTR_WRITE_REGISTER_AND_MASK 0x02U
Perform a logical AND operation on a register using provided mask. More...
#define | PHHAL_HW_PN5180_SET_INSTR_WRITE_REGISTER_MULTIPLE 0x03U
Perform a write register operation using a set of Register-Value pairs. More...
#define | PHHAL_HW_PN5180_GET_INSTR_READ_REGISTER 0x04U
Read back content of a register. More...
#define | PHHAL_HW_PN5180_GET_INSTR_READ_REGISTER_MULTIPLE 0x05U
Perform a read register operation on a set of registers. More...
#define | PHHAL_HW_PN5180_SET_INSTR_WRITE_E2PROM 0x06U
Write given values sequentially to E2PROM. More...
#define | PHHAL_HW_PN5180_GET_INSTR_READ_E2PROM 0x07U
Read out values from E2PROM sequentially. More...
#define | PHHAL_HW_PN5180_SET_INSTR_WRITE_TX_DATA 0x08U
Write Tx data to internal CLIF transmission buffer. More...
#define | PHHAL_HW_PN5180_SET_INSTR_SEND_DATA 0x09U
Write Tx data to internal RF transmission buffer and starts transmission using transceive command. More...
#define | PHHAL_HW_PN5180_GET_INSTR_RETRIEVE_RX_DATA 0x0AU
Read Rx data from internal RF reception buffer. More...
#define | PHHAL_HW_PN5180_SET_INSTR_SWITCH_MODE 0x0BU
Switch operation mode. More...
#define | PHHAL_HW_PN5180_GET_INSTR_MFC_AUTHENTICATE 0x0CU
Perform authentication on an activated Mifare Classic card. More...
#define | PHHAL_HW_PN5180_SET_INSTR_EPC_GEN2_INVENTORY 0x0DU
Perform an ISO 18000-3M3 Inventory. More...
#define | PHHAL_HW_PN5180_SET_INSTR_EPC_GEN2_RESUME_INVENTORY 0x0EU
Resume ISO18000-3M3 Inventory. More...
#define | PHHAL_HW_PN5180_GET_INSTR_EPC_GEN2_RETRIEVE_INVENTORY_RESULT_SIZE 0x0FU
Retrieve the size of a pending EPC GEN2 inventory result. More...
#define | PHHAL_HW_PN5180_GET_INSTR_EPC_GEN2_RETRIEVE_INVENTORY_RESULT 0x10U
Return the result of inventory. More...
#define | PHHAL_HW_PN5180_SET_INSTR_LOAD_RF_CONFIGURATION 0x11U
Load RF Tx and Rx settings from E2PROM. More...
#define | PHHAL_HW_PN5180_SET_INSTR_UPDATE_RF_CONFIGURATION 0x12U
Update the RF configuration. More...
#define | PHHAL_HW_PN5180_GET_INSTR_RETRIEVE_RF_CONFIGURATION_SIZE 0x13U
Retrieve the number of register-value pairs of the RF configuration. More...
#define | PHHAL_HW_PN5180_GET_INSTR_RETRIEVE_RF_CONFIGURATION 0x14U
Retrieve the RF configuration. More...
#define | PHHAL_HW_PN5180_SET_INSTR_CONFIGURE_TESTBUS_RFU 0x15U
Retrieve the RF configuration. More...
#define | PHHAL_HW_PN5180_GET_INSTR_FIELD_ON 0x16U
RF Field ON. More...
#define | PHHAL_HW_PN5180_GET_INSTR_FIELD_OFF 0x17U
RF field OFF. More...
#define | PHHAL_HW_PN5180_SET_INSTR_CONFIGURE_TESTBUS_DIGITAL 0x18U
Digital Testbus. More...
#define | PHHAL_HW_PN5180_SET_INSTR_CONFIGURE_TESTBUS_ANALOG 0x19U
Analog Testbus.

PN5180 Write multiple register operation type.

To be used with phhalHw_Pn5180_Instr_WriteRegisterMultiple.

#define | PHHAL_HW_PN5180_WRITE_MULTIPLE_TYPE_WRITE 0x01U
Write register operation requested. More...
#define | PHHAL_HW_PN5180_WRITE_MULTIPLE_TYPE_WRITE_OR_MASK 0x02U
Write register OR mask operation requested. More...
#define | PHHAL_HW_PN5180_WRITE_MULTIPLE_TYPE_WRITE_AND_MASK 0x03U
Write register AND mask operation requested. More...

PN5180 wakeup control bitmask defintion

#define | PHHAL_HW_PN5180_WAKEUP_CONTROL_MASK_WUP_ON_COUNTER 0x01U
Wake up from standby on wakeup counter expire. More...
#define | PHHAL_HW_PN5180_WAKEUP_CONTROL_MASK_WUP_ON_EXT_FIELD 0x02U
Wake up from standby due to external RF field. More...
#define | PHHAL_HW_PN5180_WAKEUP_CONTROL_MASK_ASSERT_GPO 0x04U
Assert GPO when leaving standby. More...

PN5180 autocoll RF technology bitmask definition

#define | PHHAL_HW_PN5180_AUTOCOLL_RF_TECHNOLOGY_MASK_NFC_A 0x01U
Autocoll for NFC-A (ISO14443 mode A) enabled. More...
#define | PHHAL_HW_PN5180_AUTOCOLL_RF_TECHNOLOGY_MASK_NFC_F 0x02U
Autocoll for NFC-F (FeliCa) enabled. More...
#define | PHHAL_HW_PN5180_AUTOCOLL_RF_TECHNOLOGY_MASK_ISO18092_ACTIVE 0x04U
Autocoll for ISO18092 target mode active enabled. More...
#define | PHHAL_HW_PN5180_AUTOCOLL_RF_TECHNOLOGY_MASK_NFC_F_ACTIVE 0x08U
Autocoll for NFC_F target mode active enabled. More...

PN5180 autocoll operation mode

#define | PHHAL_HW_PN5180_AUTOCOLL_MODE_TERMINATE_ON_RF_OFF 0x00U
Autocoll terminates when external field vanishes. More...
#define | PHHAL_HW_PN5180_AUTOCOLL_MODE_AUTONOMOUS_WITH_STANDBY 0x01U
Autocoll terminates only upon successful activation. More...
#define | PHHAL_HW_PN5180_AUTOCOLL_MODE_AUTONOMOUS_WITHOUT_STANDBY 0x02U
Autocoll terminates only upon successful activation. More...

PN5180 Mifare authentication key type definition and length defines

#define | PHHAL_HW_PN5180_INSTR_MFC_AUTHENTICATE_KEY_TYPE_A 0x60U
MIFARE Classic Key Type A. More...
#define | PHHAL_HW_PN5180_INSTR_MFC_AUTHENTICATE_KEY_TYPE_B 0x61U
MIFARE Classic Key Type B. More...
#define | PHHAL_HW_PN5180_MFC_UID_LEN 0x04U
MIFARE Classic Key Key Len. More...

PN5180 Timeslot processing behavior.

#define | PHHAL_HW_PN5180_EPC_GEN2_TIMESLOT_FILL_BUFFER 0x00U
EPC GEN2 inventory processes timeslots until buffer is full. More...
#define | PHHAL_HW_PN5180_EPC_GEN2_TIMESLOT_SINGLE 0x01U
EPC GEN2 inventory processes one timeslot only. More...
#define | PHHAL_HW_PN5180_EPC_GEN2_TIMESLOT_SINGLE_SELECT_TAG 0x02U
EPC GEN2 inventory processes one timeslot only. More...

PN5180 Switch Mode Type type.

#define | PHHAL_HW_PN5180_SWITCH_MODE_STANDBY 0x00U
PN5180 is in standby/sleep state to save power. More...
#define | PHHAL_HW_PN5180_SWITCH_MODE_LPCD 0x01U
PN5180 is in low power card detection mode. More...
#define | PHHAL_HW_PN5180_SWITCH_MODE_AUTOCOLL 0x02U
PN5180 is acting as RF listener, performing target mode activation autonomously. More...
#define | PHHAL_HW_PN5180_SWITCH_MODE_NORMAL 0x03U
PN5180 is in Normal modes. More...

PN5180 register, EEPROM & TX/RX buffer custom definitions.

To be used with phhalHw_Pn5180_Instr_WriteRegister, phhalHw_Pn5180_Instr_WriteRegisterOrMask, phhalHw_Pn5180_Instr_WriteRegisterAndMask, phhalHw_Pn5180_Instr_WriteRegisterMultiple, phhalHw_Pn5180_Instr_ReadRegister, phhalHw_Pn5180_Instr_ReadRegisterMultiple, phhalHw_Pn5180_Instr_WriteE2Prom, phhalHw_Pn5180_Instr_ReadE2Prom, phhalHw_Pn5180_Instr_WriteTxData, phhalHw_Pn5180_Instr_SendData, phhalHw_Pn5180_Instr_RetrieveRxData.

#define | PHHAL_HW_PN5180_MAX_REGISTER_TYPE_VALUE_SET 0x102U
Size of the buffer holding the register-type-value sets. More...
#define | PHHAL_HW_PN5180_MIN_REGISTER_TYPE_VALUE_SET 0x06U
Size of the buffer holding the register-type-value sets. More...
#define | PHHAL_HW_PN5180_E2PROM_MAX_DATA_LENGTH 0x41U
The E2PROM maximum payload length is 254 byte. More...
#define | PHHAL_HW_PN5180_E2PROM_MIN_DATA_LENGTH 0x01U
The E2PROM minimum payload length is 1 byte. More...
#define | PHHAL_HW_PN5180_E2PROM_MAX_ADDESS 0xFDU
The E2PROM maximum Address is 0x93. More...
#define | PHHAL_HW_PN5180_E2PROM_MIN_ADDESS 0x16U
The E2PROM minimum Address 0. More...
#define | PHHAL_HW_PN5180_TX_DATA_MAX_LENGTH 0x104U
The Transmission maximum payload length is 260 byte. More...
#define | PHHAL_HW_PN5180_TX_DATA_MIN_LENGTH 0x01U
The Transmission minimum payload length is 1 byte. More...
#define | PHHAL_HW_PN5180_RX_DATA_MAX_LENGTH 0x200U
The Retrieved Maximum data length is 512 byte. More...
#define | PHHAL_HW_PN5180_RX_DATA_MIN_LENGTH 0x01U
The Retrieved Minimum data length is 1 byte. More...
#define | PHHAL_HW_PN5180_INSTR_DATA_MIN_VALUE 0x01U
The Minimum data value 01. More...
#define | PHHAL_HW_PN5180_INVALID_REG_START_ADDRESS 0x43U
Regs from 0x42 to 0x7F are not implemented Update everytime regmap changes due to reg addition. More...
#define | PHHAL_HW_PN5180_INVALID_REG_END_ADDRESS 0x7FU
Regs from 0x29 to 0x7F are not implemented Update everytime regmap changes due to reg addition. More...
#define | PHHAL_HW_PN5180_MAX_REGISTERS_READ_MULTIPLE 18U
Maximum registers for multiple Read.
#define | PHHAL_HW_PN5180_BYTES_PER_REGISTER 4U
#define | PHHAL_HW_PN5180_SEND_DATA_FIXED_CMD_BYTES 2U
#define | PHHAL_HW_PN5180_WRITE_TX_DATA_FIXED_CMD_BYTES 1U

PN5180 Execute instruction custom definitions.

To be used with phhalHw_Pn5180_Instr_Execute.

#define | PHHAL_HW_PN5180_MAX_INSTRUCTION_CODE PHHAL_HW_PN5180_GET_INSTR_RETRIEVE_RF_CONFIGURATION
Maximum value of the instruction code. More...
#define | PHHAL_HW_PN5180_MIN_PAYLOAD_LENGTH 1U
Minimum payload length for the instruction. More...
#define | PHHAL_HW_PN5180_MAX_PAYLOAD_LENGTH 261U
Maximum payload length for the instruction. More...
#define | PHHAL_HW_PN5180_MAX_INSTRUCTION_LENGTH (1U + PHHAL_HW_PN5180_MAX_PAYLOAD_LENGTH)
Maximum length for the instruction. More...
#define | PHHAL_HW_PN5180_MAX_INST_RESPONSE_LENGTH (0x200U)
Maximum length for the instruction response.

PN5180 standby custom definitions.

To be used with phhalHw_Pn5180_Instr_SwitchModeStandby.

#define | PHHAL_HW_PN5180_WAKEUP_CONTROL_MASK
Mask value for wakeup control. More...
#define | PHHAL_HW_PN5180_MAX_WAKEUP_COUNTER (2690)
Maximum value for wakeup counter in msecs. More...

PN5180 Autocoll custom definitions.

To be used with phhalHw_Pn5180_Instr_SwitchModeAutocoll.

#define | PHHAL_HW_PN5180_MAX_AUTOCOLL_MODE PHHAL_HW_PN5180_WAKEUP_CONTROL_MASK_ASSERT_GPO
Maximum value for Autocoll mode. More...
#define | PHHAL_HW_PN5180_AUTOCOLL_MODE_MASK
Mask value for RF technology. More...
#define | PHHAL_HW_PN5180_MAX_AUTOCOLL_RF_TECHNOLOGY PHHAL_HW_PN5180_AUTOCOLL_RF_TECHNOLOGY_MASK_ISO18092_ACTIVE
Maximum value for RF technology. More...
#define | PHHAL_HW_PN5180_AUTOCOLL_RF_TECHNOLOGY_MASK
Mask value for RF technology. More...

PN5180 EPC GEN2 custom definitions.

To be used with phhalHw_Pn5180_Instr_EpcGen2Inventory, phhalHw_Pn5180_Instr_EpcGen2RetrieveResultSize, phhalHw_Pn5180_Instr_EpcGen2RetrieveResult, phhalHw_Pn5180_Instr_EpcGen2ResumeInventory.

#define | PHHAL_HW_PN5180_MIN_SELECT_COMMAND_LENGTH 1U
Minimum length of Select command. More...
#define | PHHAL_HW_PN5180_MAX_SELECT_COMMAND_LENGTH 39U
Maximum length of Select command. More...
#define | PHHAL_HW_PN5180_BEGIN_COMMAND_LENGTH 03U
length of Begin command. More...
#define | PHHAL_HW_PN5180_MAX_NUM_OF_BITS_FOR_LAST_BYTE 7U
Maximum number of bits to be transmitted in the last byte of pSelectCommand. More...
#define | PHHAL_HW_PN5180_MAX_EPC_GEN2_TIMESLOT (PHHAL_HW_PN5180_EPC_GEN2_TIMESLOT_SINGLE_SELECT_TAG)
Maximum EPC GEN2 TIMESLOT parameter. More...

PN5180 RF configuration custom definitions.

To be used with phhalHw_Pn5180_Instr_LoadRfConfiguration, phhalHw_Pn5180_Instr_UpdateRfConfiguration, phhalHw_Pn5180_Instr_RetrieveRfConfigurationSize, phhalHw_Pn5180_Instr_RetrieveRfConfiguration.

#define | PHHAL_HW_PN5180_MIN_RF_TX_CONFIGURATION_INDEX 0x00
Minimum RF configuration index for TX. More...
#define | PHHAL_HW_PN5180_MAX_RF_TX_CONFIGURATION_INDEX 0x1C
Maximum RF configuration index for TX. More...
#define | PHHAL_HW_PN5180_MIN_RF_RX_CONFIGURATION_INDEX 0x80
Minimum RF configuration index for RX. More...
#define | PHHAL_HW_PN5180_MAX_RF_RX_CONFIGURATION_INDEX 0x9D
Maximum RF configuration index for RX. More...
#define | PHHAL_HW_PN5180_MAX_RF_CONFIGURATION_INDEX PHHAL_HW_PN5180_MAX_RF_RX_CONFIGURATION_INDEX
Maximum RF configuration index. More...
#define | PHHAL_HW_PN5180_CURRENT_RF_CONFIGURATION_INDEX 0xFF
Current RF configuration index for TX/RX. More...
#define | PHHAL_HW_PN5180_RF_CONFIGURATION_SIZE 6U
Size of a single RF configuration 1 Byte Rx or Tx configuration index 1 Byte Register address within the RF configuration 4 Bytes value to be written into the register. More...
#define | PHHAL_HW_PN5180_RETRIEVE_RF_EACH_CONFIGURATION 5U
Size of a single RF configuration 1 Byte Register address within the RF configuration 4 Bytes value of the register. More...
#define | PHHAL_HW_PN5180_RETRIEVE_RF_CONFIGURATION_SIZE_RESPONSE 1U
#define | PHHAL_HW_PN5180_MAX_RF_CONFIGURATION_SIZE 252U
Maximum size of the RF configurations. More...
#define | PHHAL_HW_PN5180_MAX_RF_REGS 0x43
Max RF config regs- Not in Spec-Discussed with JP. More...
#define | PHHAL_HW_PN5180_UPDATE_RF_CONFIG_FIXED_CMD_BYTES 2U

PN5180 Load Configuration for Tx and Rx baudrates/reg values.

To be used with #phhalHw_Pn5180_ApplyProtocolSettings.

phhalHw_Pn5180_SetCardMode.

#define | PHHAL_HW_PN5180_RF_TX_ISO14443A_106_MILLER 0U
Type A baud rate @ 106 load configurations TX Value. More...
#define | PHHAL_HW_PN5180_RF_TX_ISO14443A_212_MILLER 1U
Type A baud rate @ 212 load configurations TX Value. More...
#define | PHHAL_HW_PN5180_RF_TX_ISO14443A_424_MILLER 2U
Type A baud rate @ 424 load configurations TX Value. More...
#define | PHHAL_HW_PN5180_RF_TX_ISO14443A_848_MILLER 3U
Type A baud rate @ 848 load configurations TX Value. More...
#define | PHHAL_HW_PN5180_RF_TX_ISO14443B_106_NRZ 4U
Type B baud rate @ 106 load configurations TX Value. More...
#define | PHHAL_HW_PN5180_RF_TX_ISO14443B_212_NRZ 5U
Type B baud rate @ 212 load configurations TX Value. More...
#define | PHHAL_HW_PN5180_RF_TX_ISO14443B_424_NRZ 6U
Type B baud rate @ 424 load configurations TX Value. More...
#define | PHHAL_HW_PN5180_RF_TX_ISO14443B_848_NRZ 7U
Type B baud rate @ 848 load configurations TX Value. More...
#define | PHHAL_HW_PN5180_RF_TX_FELICA_212 8U
Type F baud rate @ 212 load configurations TX Value. More...
#define | PHHAL_HW_PN5180_RF_TX_FELICA_424 9U
Type F baud rate @ 484 load configurations TX Value. More...
#define | PHHAL_HW_PN5180_RF_TX_NFC_AI_106_106 0x0AU
Active Initiator baud rate @ 106 load configurations TX Value. More...
#define | PHHAL_HW_PN5180_RF_TX_NFC_AI_212_212 0x0BU
Active Initiator baud rate @ 212 load configurations TX Value. More...
#define | PHHAL_HW_PN5180_RF_TX_NFC_AI_424_424 0x0CU
Active Initiator baud rate @ 424 load configurations TX Value. More...
#define | PHHAL_HW_PN5180_RF_TX_ISO15693_26_1OF4_ASK100 0x0DU
Type V (ISO 15693 ) load configurations TX Value. More...
#define | PHHAL_HW_PN5180_RF_TX_ISO15693_26_1OF4_ASK10 0x0EU
Type V (ISO 15693 ) load configurations TX Value. More...
#define | PHHAL_HW_PN5180_RF_TX_ISO180003M3_TARI_18_88_ASK 0x0FU
ISO 18000P3M3 load configurations TX Value. More...
#define | PHHAL_HW_PN5180_RF_TX_ISO180003M3_TARI_9_44_ASK 0x10U
ISO 18000P3M3 load configurations TX Value. More...
#define | PHHAL_HW_PN5180_RF_TX_ISO14443A_PICC_106_MANCH_SUBC 0x13U
Type A Card mode baud rate @ 106 load configurations TX Value. More...
#define | PHHAL_HW_PN5180_RF_TX_ISO14443A_PICC_212_BPSK 0x14U
Type A Card mode baud rate @ 212 load configurations TX Value. More...
#define | PHHAL_HW_PN5180_RF_TX_ISO14443A_PICC_424_BPSK 0x15U
Type A Card mode baud rate @ 424 load configurations TX Value. More...
#define | PHHAL_HW_PN5180_RF_TX_ISO14443A_PICC_848_BPSK 0x16U
Type A Card mode baud rate @ 848 load configurations TX Value. More...
#define | PHHAL_HW_PN5180_RF_TX_NFC_PT_212 0x17U
Passive Target baud rate @ 212 load configurations TX Value. More...
#define | PHHAL_HW_PN5180_RF_TX_NFC_PT_424 0x18U
Passive Target baud rate @ 424 load configurations TX Value. More...
#define | PHHAL_HW_PN5180_RF_TX_NFC_AT_106 0x19U
Active Target baud rate @ 106 load configurations TX Value. More...
#define | PHHAL_HW_PN5180_RF_TX_NFC_AT_212 0x1AU
Active Target baud rate @ 212 load configurations TX Value. More...
#define | PHHAL_HW_PN5180_RF_TX_NFC_AT_424 0x1BU
Active Target baud rate @ 424 load configurations TX Value. More...
#define | PHHAL_HW_PN5180_RF_TX_GTM_All_Al 0x1CU
General Target Mode configuration. More...
#define | PHHAL_HW_PN5180_RF_RX_ISO14443A_106_MANCH_SUBC 0x80U
Type A baud rate @ 106 load configurations RX Value. More...
#define | PHHAL_HW_PN5180_RF_RX_ISO14443A_212_BPSK 0x81U
Type A baud rate @ 212 load configurations RX Value. More...
#define | PHHAL_HW_PN5180_RF_RX_ISO14443A_424_BPSK 0x82U
Type A baud rate @ 424 load configurations RX Value. More...
#define | PHHAL_HW_PN5180_RF_RX_ISO14443A_848_BPSK 0x83U
Type A baud rate @ 848 load configurations RX Value. More...
#define | PHHAL_HW_PN5180_RF_RX_ISO14443B_106_BPSK 0x84U
Type B baud rate @ 106 load configurations RX Value. More...
#define | PHHAL_HW_PN5180_RF_RX_ISO14443B_212_BPSK 0x85U
Type B baud rate @ 212 load configurations RX Value. More...
#define | PHHAL_HW_PN5180_RF_RX_ISO14443B_424_BPSK 0x86U
Type B baud rate @ 424 load configurations RX Value. More...
#define | PHHAL_HW_PN5180_RF_RX_ISO14443B_848_BPSK 0x87U
Type B baud rate @ 848 load configurations RX Value. More...
#define | PHHAL_HW_PN5180_RF_RX_FELICA_212 0x88U
Type F baud rate @ 212 load configurations RX Value. More...
#define | PHHAL_HW_PN5180_RF_RX_FELICA_424 0x89U
Type F baud rate @ 424 load configurations RX Value. More...
#define | PHHAL_HW_PN5180_RF_RX_NFC_AI_106 0x8AU
Active Initiator @ baud rate 106 load configurations RX Value. More...
#define | PHHAL_HW_PN5180_RF_RX_NFC_AI_212 0x8BU
Active Initiator @ baud rate 212 load configurations RX Value. More...
#define | PHHAL_HW_PN5180_RF_RX_NFC_AI_424 0x8CU
Active Initiator @ baud rate 424 load configurations RX Value. More...
#define | PHHAL_HW_PN5180_RF_RX_ISO15693_26_1OF4_SC 0x8DU
Type V (ISO 15693 ) load configurations RX Value. More...
#define | PHHAL_HW_PN5180_RF_RX_ISO15693_53_1OF4_SC 0x8EU
Type V (ISO 15693 ) load configurations RX Value. More...
#define | PHHAL_HW_PN5180_RF_RX_ISO180003M3_MANCH424_4_PERIOD 0x8FU
ISO 18000P3M3 load configurations RX Value. More...
#define | PHHAL_HW_PN5180_RF_RX_ISO180003M3_MANCH424_2_PERIOD 0x90U
ISO 18000P3M3 load configurations RX Value. More...
#define | PHHAL_HW_PN5180_RF_RX_ISO180003M3_MANCH848_4_PERIOD 0x91U
ISO 18000P3M3 load configurations RX Value. More...
#define | PHHAL_HW_PN5180_RF_RX_ISO180003M3_MANCH848_2_PERIOD 0x92U
ISO 18000P3M3 load configurations RX Value. More...
#define | PHHAL_HW_PN5180_RF_RX_ISO14443A_PICC_106_MILLER 0x93U
Type A Card mode baud rate @ 106 load configurations RX Value. More...
#define | PHHAL_HW_PN5180_RF_RX_ISO14443A_PICC_212_MILLER 0x94U
Type A Card mode baud rate @ 212 load configurations RX Value. More...
#define | PHHAL_HW_PN5180_RF_RX_ISO14443A_PICC_424_MILLER 0x95U
Type A Card mode baud rate @ 424 load configurations RX Value. More...
#define | PHHAL_HW_PN5180_RF_RX_ISO14443A_PICC_848_MILLER 0x96U
Type A Card mode baud rate @ 848 load configurations RX Value. More...
#define | PHHAL_HW_PN5180_RF_RX_NFC_PT_212 0x97U
Passive Target baud rate @ 212 load configurations RX Value. More...
#define | PHHAL_HW_PN5180_RF_RX_NFC_PT_424 0x98U
Passive Target baud rate @ 424 load configurations RX Value. More...
#define | PHHAL_HW_PN5180_RF_RX_NFC_AT_106 0x99U
Active Initiator baud rate @ 106 load configurations RX Value. More...
#define | PHHAL_HW_PN5180_RF_RX_NFC_AT_212 0x9AU
Active Initiator baud rate @ 212 load configurations RX Value. More...
#define | PHHAL_HW_PN5180_RF_RX_NFC_AT_424 0x9BU
Active Initiator baud rate @ 424 load configurations RX Value. More...
#define | PHHAL_HW_PN5180_RF_RX_GTM_All_All 0x9CU
General Target Mode configuration. More...

PN5180 EEPROM custom definitions.

To be used with phhalHw_Pn5180_Instr_WriteE2Prom.

#define PHHAL_HW_PN5180_WRITE_E2PROM_FIXED_CMD_BYTES 3U

PN5180 ConfigureTestBus custom definitions.

To be used with phhalHw_Pn5180_Instr_ConfigureTestBusDigital.

#define | PHHAL_HW_PN5180_CONFIGURE_TESTBUS_DIGITAL_FIXED_CMD_BYTES 2U
#define | PHHAL_HW_PN5180_CONFIGURE_TESTBUS_ANALOG_CMD_BYTES 3U

LPCD configuration

#define | PHHAL_HW_CONFIG_SET_LPCD_WAKEUPTIME_MS 0x0070U
Used value for wakeup counter in msecs, i.e. More...
#define | PHHAL_HW_CONFIG_LPCD_MODE 0x0071U
Used to set options PHHAL_HW_PN5180_LPCD_MODE_DEFAULT or PHHAL_HW_PN5180_LPCD_MODE_POWERDOWN.
#define | PHHAL_HW_CONFIG_LPCD_REF 0x0072U
Used to set or get LPCD Ref.

LPCD modes

#define | PHHAL_HW_PN5180_LPCD_MODE_DEFAULT 0x00U
Default mode. More...
#define | PHHAL_HW_PN5180_LPCD_MODE_POWERDOWN 0x01U
Powers down the IC for a certain amount of time and performs LPC after wakeup. More...

Detailed Description

Pn5180 Instruction functions.

Macro Definition Documentation

§ PHHAL_HW_PN5180_SET_INSTR_WRITE_REGISTER

#define PHHAL_HW_PN5180_SET_INSTR_WRITE_REGISTER 0x00U

Write 32 bit value to a register.

§ PHHAL_HW_PN5180_SET_INSTR_WRITE_REGISTER_OR_MASK

#define PHHAL_HW_PN5180_SET_INSTR_WRITE_REGISTER_OR_MASK 0x01U

Perform a logical OR operation on a register using provided mask.

§ PHHAL_HW_PN5180_SET_INSTR_WRITE_REGISTER_AND_MASK

#define PHHAL_HW_PN5180_SET_INSTR_WRITE_REGISTER_AND_MASK 0x02U

Perform a logical AND operation on a register using provided mask.

§ PHHAL_HW_PN5180_SET_INSTR_WRITE_REGISTER_MULTIPLE

#define PHHAL_HW_PN5180_SET_INSTR_WRITE_REGISTER_MULTIPLE 0x03U

Perform a write register operation using a set of Register-Value pairs.

§ PHHAL_HW_PN5180_GET_INSTR_READ_REGISTER

#define PHHAL_HW_PN5180_GET_INSTR_READ_REGISTER 0x04U

Read back content of a register.

§ PHHAL_HW_PN5180_GET_INSTR_READ_REGISTER_MULTIPLE

#define PHHAL_HW_PN5180_GET_INSTR_READ_REGISTER_MULTIPLE 0x05U

Perform a read register operation on a set of registers.

§ PHHAL_HW_PN5180_SET_INSTR_WRITE_E2PROM

#define PHHAL_HW_PN5180_SET_INSTR_WRITE_E2PROM 0x06U

Write given values sequentially to E2PROM.

§ PHHAL_HW_PN5180_GET_INSTR_READ_E2PROM

#define PHHAL_HW_PN5180_GET_INSTR_READ_E2PROM 0x07U

Read out values from E2PROM sequentially.

§ PHHAL_HW_PN5180_SET_INSTR_WRITE_TX_DATA

#define PHHAL_HW_PN5180_SET_INSTR_WRITE_TX_DATA 0x08U

Write Tx data to internal CLIF transmission buffer.

§ PHHAL_HW_PN5180_SET_INSTR_SEND_DATA

#define PHHAL_HW_PN5180_SET_INSTR_SEND_DATA 0x09U

Write Tx data to internal RF transmission buffer and starts transmission using transceive command.

§ PHHAL_HW_PN5180_GET_INSTR_RETRIEVE_RX_DATA

#define PHHAL_HW_PN5180_GET_INSTR_RETRIEVE_RX_DATA 0x0AU

Read Rx data from internal RF reception buffer.

§ PHHAL_HW_PN5180_SET_INSTR_SWITCH_MODE

#define PHHAL_HW_PN5180_SET_INSTR_SWITCH_MODE 0x0BU

Switch operation mode.

Possible modes are: Normal, LPCD, Autocoll, Standby.

§ PHHAL_HW_PN5180_GET_INSTR_MFC_AUTHENTICATE

#define PHHAL_HW_PN5180_GET_INSTR_MFC_AUTHENTICATE 0x0CU

Perform authentication on an activated Mifare Classic card.

§ PHHAL_HW_PN5180_SET_INSTR_EPC_GEN2_INVENTORY

#define PHHAL_HW_PN5180_SET_INSTR_EPC_GEN2_INVENTORY 0x0DU

Perform an ISO 18000-3M3 Inventory.

§ PHHAL_HW_PN5180_SET_INSTR_EPC_GEN2_RESUME_INVENTORY

#define PHHAL_HW_PN5180_SET_INSTR_EPC_GEN2_RESUME_INVENTORY 0x0EU

Resume ISO18000-3M3 Inventory.

§ PHHAL_HW_PN5180_GET_INSTR_EPC_GEN2_RETRIEVE_INVENTORY_RESULT_SIZE

#define PHHAL_HW_PN5180_GET_INSTR_EPC_GEN2_RETRIEVE_INVENTORY_RESULT_SIZE 0x0FU

Retrieve the size of a pending EPC GEN2 inventory result.

§ PHHAL_HW_PN5180_GET_INSTR_EPC_GEN2_RETRIEVE_INVENTORY_RESULT

#define PHHAL_HW_PN5180_GET_INSTR_EPC_GEN2_RETRIEVE_INVENTORY_RESULT 0x10U

Return the result of inventory.

§ PHHAL_HW_PN5180_SET_INSTR_LOAD_RF_CONFIGURATION

#define PHHAL_HW_PN5180_SET_INSTR_LOAD_RF_CONFIGURATION 0x11U

Load RF Tx and Rx settings from E2PROM.

§ PHHAL_HW_PN5180_SET_INSTR_UPDATE_RF_CONFIGURATION

#define PHHAL_HW_PN5180_SET_INSTR_UPDATE_RF_CONFIGURATION 0x12U

Update the RF configuration.

§ PHHAL_HW_PN5180_GET_INSTR_RETRIEVE_RF_CONFIGURATION_SIZE

#define PHHAL_HW_PN5180_GET_INSTR_RETRIEVE_RF_CONFIGURATION_SIZE 0x13U

Retrieve the number of register-value pairs of the RF configuration.

§ PHHAL_HW_PN5180_GET_INSTR_RETRIEVE_RF_CONFIGURATION

#define PHHAL_HW_PN5180_GET_INSTR_RETRIEVE_RF_CONFIGURATION 0x14U

Retrieve the RF configuration.

§ PHHAL_HW_PN5180_SET_INSTR_CONFIGURE_TESTBUS_RFU

#define PHHAL_HW_PN5180_SET_INSTR_CONFIGURE_TESTBUS_RFU 0x15U

Retrieve the RF configuration.

§ PHHAL_HW_PN5180_GET_INSTR_FIELD_ON

#define PHHAL_HW_PN5180_GET_INSTR_FIELD_ON 0x16U

RF Field ON.

§ PHHAL_HW_PN5180_GET_INSTR_FIELD_OFF

#define PHHAL_HW_PN5180_GET_INSTR_FIELD_OFF 0x17U

RF field OFF.

§ PHHAL_HW_PN5180_SET_INSTR_CONFIGURE_TESTBUS_DIGITAL

#define PHHAL_HW_PN5180_SET_INSTR_CONFIGURE_TESTBUS_DIGITAL 0x18U

Digital Testbus.

§ PHHAL_HW_PN5180_WRITE_MULTIPLE_TYPE_WRITE

#define PHHAL_HW_PN5180_WRITE_MULTIPLE_TYPE_WRITE 0x01U

Write register operation requested.

§ PHHAL_HW_PN5180_WRITE_MULTIPLE_TYPE_WRITE_OR_MASK

#define PHHAL_HW_PN5180_WRITE_MULTIPLE_TYPE_WRITE_OR_MASK 0x02U

Write register OR mask operation requested.

§ PHHAL_HW_PN5180_WRITE_MULTIPLE_TYPE_WRITE_AND_MASK

#define PHHAL_HW_PN5180_WRITE_MULTIPLE_TYPE_WRITE_AND_MASK 0x03U

Write register AND mask operation requested.

§ PHHAL_HW_PN5180_WAKEUP_CONTROL_MASK_WUP_ON_COUNTER

#define PHHAL_HW_PN5180_WAKEUP_CONTROL_MASK_WUP_ON_COUNTER 0x01U

Wake up from standby on wakeup counter expire.

§ PHHAL_HW_PN5180_WAKEUP_CONTROL_MASK_WUP_ON_EXT_FIELD

#define PHHAL_HW_PN5180_WAKEUP_CONTROL_MASK_WUP_ON_EXT_FIELD 0x02U

Wake up from standby due to external RF field.

§ PHHAL_HW_PN5180_WAKEUP_CONTROL_MASK_ASSERT_GPO

#define PHHAL_HW_PN5180_WAKEUP_CONTROL_MASK_ASSERT_GPO 0x04U

Assert GPO when leaving standby.

§ PHHAL_HW_PN5180_AUTOCOLL_RF_TECHNOLOGY_MASK_NFC_A

#define PHHAL_HW_PN5180_AUTOCOLL_RF_TECHNOLOGY_MASK_NFC_A 0x01U

Autocoll for NFC-A (ISO14443 mode A) enabled.

§ PHHAL_HW_PN5180_AUTOCOLL_RF_TECHNOLOGY_MASK_NFC_F

#define PHHAL_HW_PN5180_AUTOCOLL_RF_TECHNOLOGY_MASK_NFC_F 0x02U

Autocoll for NFC-F (FeliCa) enabled.

§ PHHAL_HW_PN5180_AUTOCOLL_RF_TECHNOLOGY_MASK_ISO18092_ACTIVE

#define PHHAL_HW_PN5180_AUTOCOLL_RF_TECHNOLOGY_MASK_ISO18092_ACTIVE 0x04U

Autocoll for ISO18092 target mode active enabled.

§ PHHAL_HW_PN5180_AUTOCOLL_RF_TECHNOLOGY_MASK_NFC_F_ACTIVE

#define PHHAL_HW_PN5180_AUTOCOLL_RF_TECHNOLOGY_MASK_NFC_F_ACTIVE 0x08U

Autocoll for NFC_F target mode active enabled.

§ PHHAL_HW_PN5180_AUTOCOLL_MODE_TERMINATE_ON_RF_OFF

#define PHHAL_HW_PN5180_AUTOCOLL_MODE_TERMINATE_ON_RF_OFF 0x00U

Autocoll terminates when external field vanishes.

§ PHHAL_HW_PN5180_AUTOCOLL_MODE_AUTONOMOUS_WITH_STANDBY

#define PHHAL_HW_PN5180_AUTOCOLL_MODE_AUTONOMOUS_WITH_STANDBY 0x01U

Autocoll terminates only upon successful activation.

When external field vanishes, PN5180 enters standby. PN5180 wakes up again once external field is detected again.

§ PHHAL_HW_PN5180_AUTOCOLL_MODE_AUTONOMOUS_WITHOUT_STANDBY

#define PHHAL_HW_PN5180_AUTOCOLL_MODE_AUTONOMOUS_WITHOUT_STANDBY 0x02U

Autocoll terminates only upon successful activation.

PN5180 does use standby mode.

§ PHHAL_HW_PN5180_INSTR_MFC_AUTHENTICATE_KEY_TYPE_A

#define PHHAL_HW_PN5180_INSTR_MFC_AUTHENTICATE_KEY_TYPE_A 0x60U

MIFARE Classic Key Type A.

§ PHHAL_HW_PN5180_INSTR_MFC_AUTHENTICATE_KEY_TYPE_B

#define PHHAL_HW_PN5180_INSTR_MFC_AUTHENTICATE_KEY_TYPE_B 0x61U

MIFARE Classic Key Type B.

§ PHHAL_HW_PN5180_MFC_UID_LEN

#define PHHAL_HW_PN5180_MFC_UID_LEN 0x04U

MIFARE Classic Key Key Len.

§ PHHAL_HW_PN5180_EPC_GEN2_TIMESLOT_FILL_BUFFER

#define PHHAL_HW_PN5180_EPC_GEN2_TIMESLOT_FILL_BUFFER 0x00U

EPC GEN2 inventory processes timeslots until buffer is full.

§ PHHAL_HW_PN5180_EPC_GEN2_TIMESLOT_SINGLE

#define PHHAL_HW_PN5180_EPC_GEN2_TIMESLOT_SINGLE 0x01U

EPC GEN2 inventory processes one timeslot only.

§ PHHAL_HW_PN5180_EPC_GEN2_TIMESLOT_SINGLE_SELECT_TAG

#define PHHAL_HW_PN5180_EPC_GEN2_TIMESLOT_SINGLE_SELECT_TAG 0x02U

EPC GEN2 inventory processes one timeslot only.

If timeslot contains a valid tag response, the tag is also selected.

§ PHHAL_HW_PN5180_SWITCH_MODE_STANDBY

#define PHHAL_HW_PN5180_SWITCH_MODE_STANDBY 0x00U

PN5180 is in standby/sleep state to save power.

§ PHHAL_HW_PN5180_SWITCH_MODE_LPCD

#define PHHAL_HW_PN5180_SWITCH_MODE_LPCD 0x01U

PN5180 is in low power card detection mode.

§ PHHAL_HW_PN5180_SWITCH_MODE_AUTOCOLL

#define PHHAL_HW_PN5180_SWITCH_MODE_AUTOCOLL 0x02U

PN5180 is acting as RF listener, performing target mode activation autonomously.

§ PHHAL_HW_PN5180_SWITCH_MODE_NORMAL

#define PHHAL_HW_PN5180_SWITCH_MODE_NORMAL 0x03U

PN5180 is in Normal modes.

§ PHHAL_HW_PN5180_MAX_REGISTER_TYPE_VALUE_SET

#define PHHAL_HW_PN5180_MAX_REGISTER_TYPE_VALUE_SET 0x102U

Size of the buffer holding the register-type-value sets.

Maximum size supported is 258 = 43 sets.

§ PHHAL_HW_PN5180_MIN_REGISTER_TYPE_VALUE_SET

#define PHHAL_HW_PN5180_MIN_REGISTER_TYPE_VALUE_SET 0x06U

Size of the buffer holding the register-type-value sets.

Minimum size supported is 6 = 1 set.

§ PHHAL_HW_PN5180_E2PROM_MAX_DATA_LENGTH

#define PHHAL_HW_PN5180_E2PROM_MAX_DATA_LENGTH 0x41U

The E2PROM maximum payload length is 254 byte.

§ PHHAL_HW_PN5180_E2PROM_MIN_DATA_LENGTH

#define PHHAL_HW_PN5180_E2PROM_MIN_DATA_LENGTH 0x01U

The E2PROM minimum payload length is 1 byte.

§ PHHAL_HW_PN5180_E2PROM_MAX_ADDESS

#define PHHAL_HW_PN5180_E2PROM_MAX_ADDESS 0xFDU

The E2PROM maximum Address is 0x93.

§ PHHAL_HW_PN5180_E2PROM_MIN_ADDESS

#define PHHAL_HW_PN5180_E2PROM_MIN_ADDESS 0x16U

The E2PROM minimum Address 0.

§ PHHAL_HW_PN5180_TX_DATA_MAX_LENGTH

#define PHHAL_HW_PN5180_TX_DATA_MAX_LENGTH 0x104U

The Transmission maximum payload length is 260 byte.

§ PHHAL_HW_PN5180_TX_DATA_MIN_LENGTH

#define PHHAL_HW_PN5180_TX_DATA_MIN_LENGTH 0x01U

The Transmission minimum payload length is 1 byte.

§ PHHAL_HW_PN5180_RX_DATA_MAX_LENGTH

#define PHHAL_HW_PN5180_RX_DATA_MAX_LENGTH 0x200U

The Retrieved Maximum data length is 512 byte.

§ PHHAL_HW_PN5180_RX_DATA_MIN_LENGTH

#define PHHAL_HW_PN5180_RX_DATA_MIN_LENGTH 0x01U

The Retrieved Minimum data length is 1 byte.

§ PHHAL_HW_PN5180_INSTR_DATA_MIN_VALUE

#define PHHAL_HW_PN5180_INSTR_DATA_MIN_VALUE 0x01U

The Minimum data value 01.

§ PHHAL_HW_PN5180_INVALID_REG_START_ADDRESS

#define PHHAL_HW_PN5180_INVALID_REG_START_ADDRESS 0x43U

Regs from 0x42 to 0x7F are not implemented Update everytime regmap changes due to reg addition.

§ PHHAL_HW_PN5180_INVALID_REG_END_ADDRESS

#define PHHAL_HW_PN5180_INVALID_REG_END_ADDRESS 0x7FU

Regs from 0x29 to 0x7F are not implemented Update everytime regmap changes due to reg addition.

§ PHHAL_HW_PN5180_MAX_INSTRUCTION_CODE

#define PHHAL_HW_PN5180_MAX_INSTRUCTION_CODE PHHAL_HW_PN5180_GET_INSTR_RETRIEVE_RF_CONFIGURATION

Maximum value of the instruction code.

§ PHHAL_HW_PN5180_MIN_PAYLOAD_LENGTH

#define PHHAL_HW_PN5180_MIN_PAYLOAD_LENGTH 1U

Minimum payload length for the instruction.

§ PHHAL_HW_PN5180_MAX_PAYLOAD_LENGTH

#define PHHAL_HW_PN5180_MAX_PAYLOAD_LENGTH 261U

Maximum payload length for the instruction.

§ PHHAL_HW_PN5180_MAX_INSTRUCTION_LENGTH

#define PHHAL_HW_PN5180_MAX_INSTRUCTION_LENGTH (1U + PHHAL_HW_PN5180_MAX_PAYLOAD_LENGTH)

Maximum length for the instruction.

1 byte is for the instruction code

§ PHHAL_HW_PN5180_WAKEUP_CONTROL_MASK

#define PHHAL_HW_PN5180_WAKEUP_CONTROL_MASK
Value:
(PHHAL_HW_PN5180_WAKEUP_CONTROL_MASK_WUP_ON_COUNTER \
| PHHAL_HW_PN5180_WAKEUP_CONTROL_MASK_WUP_ON_EXT_FIELD \
| PHHAL_HW_PN5180_WAKEUP_CONTROL_MASK_ASSERT_GPO)
PHHAL_HW_PN5180_WAKEUP_CONTROL_MASK_WUP_ON_COUNTER
#define PHHAL_HW_PN5180_WAKEUP_CONTROL_MASK_WUP_ON_COUNTER
Wake up from standby on wakeup counter expire.
Definition: phhalHw_Pn5180_Instr.h:98
PHHAL_HW_PN5180_WAKEUP_CONTROL_MASK_WUP_ON_EXT_FIELD
#define PHHAL_HW_PN5180_WAKEUP_CONTROL_MASK_WUP_ON_EXT_FIELD
Wake up from standby due to external RF field.
Definition: phhalHw_Pn5180_Instr.h:99
PHHAL_HW_PN5180_WAKEUP_CONTROL_MASK_ASSERT_GPO
#define PHHAL_HW_PN5180_WAKEUP_CONTROL_MASK_ASSERT_GPO
Assert GPO when leaving standby.
Definition: phhalHw_Pn5180_Instr.h:100

Mask value for wakeup control.

§ PHHAL_HW_PN5180_MAX_WAKEUP_COUNTER

#define PHHAL_HW_PN5180_MAX_WAKEUP_COUNTER (2690)

Maximum value for wakeup counter in msecs.

§ PHHAL_HW_PN5180_MAX_AUTOCOLL_MODE

#define PHHAL_HW_PN5180_MAX_AUTOCOLL_MODE PHHAL_HW_PN5180_WAKEUP_CONTROL_MASK_ASSERT_GPO

Maximum value for Autocoll mode.

§ PHHAL_HW_PN5180_AUTOCOLL_MODE_MASK

#define PHHAL_HW_PN5180_AUTOCOLL_MODE_MASK
Value:
(PHHAL_HW_PN5180_AUTOCOLL_MODE_TERMINATE_ON_RF_OFF \
| PHHAL_HW_PN5180_AUTOCOLL_MODE_AUTONOMOUS_WITH_STANDBY \
| PHHAL_HW_PN5180_AUTOCOLL_MODE_AUTONOMOUS_WITHOUT_STANDBY)
PHHAL_HW_PN5180_AUTOCOLL_MODE_AUTONOMOUS_WITH_STANDBY
#define PHHAL_HW_PN5180_AUTOCOLL_MODE_AUTONOMOUS_WITH_STANDBY
Autocoll terminates only upon successful activation.
Definition: phhalHw_Pn5180_Instr.h:118
PHHAL_HW_PN5180_AUTOCOLL_MODE_AUTONOMOUS_WITHOUT_STANDBY
#define PHHAL_HW_PN5180_AUTOCOLL_MODE_AUTONOMOUS_WITHOUT_STANDBY
Autocoll terminates only upon successful activation.
Definition: phhalHw_Pn5180_Instr.h:119
PHHAL_HW_PN5180_AUTOCOLL_MODE_TERMINATE_ON_RF_OFF
#define PHHAL_HW_PN5180_AUTOCOLL_MODE_TERMINATE_ON_RF_OFF
Autocoll terminates when external field vanishes.
Definition: phhalHw_Pn5180_Instr.h:117

Mask value for RF technology.

§ PHHAL_HW_PN5180_MAX_AUTOCOLL_RF_TECHNOLOGY

#define PHHAL_HW_PN5180_MAX_AUTOCOLL_RF_TECHNOLOGY PHHAL_HW_PN5180_AUTOCOLL_RF_TECHNOLOGY_MASK_ISO18092_ACTIVE

Maximum value for RF technology.

§ PHHAL_HW_PN5180_AUTOCOLL_RF_TECHNOLOGY_MASK

#define PHHAL_HW_PN5180_AUTOCOLL_RF_TECHNOLOGY_MASK
Value:
(PHHAL_HW_PN5180_AUTOCOLL_RF_TECHNOLOGY_MASK_NFC_A \
| PHHAL_HW_PN5180_AUTOCOLL_RF_TECHNOLOGY_MASK_NFC_F \
| PHHAL_HW_PN5180_AUTOCOLL_RF_TECHNOLOGY_MASK_ISO18092_ACTIVE \
| PHHAL_HW_PN5180_AUTOCOLL_RF_TECHNOLOGY_MASK_NFC_F_ACTIVE)
PHHAL_HW_PN5180_AUTOCOLL_RF_TECHNOLOGY_MASK_NFC_F
#define PHHAL_HW_PN5180_AUTOCOLL_RF_TECHNOLOGY_MASK_NFC_F
Autocoll for NFC-F (FeliCa) enabled.
Definition: phhalHw_Pn5180_Instr.h:108
PHHAL_HW_PN5180_AUTOCOLL_RF_TECHNOLOGY_MASK_ISO18092_ACTIVE
#define PHHAL_HW_PN5180_AUTOCOLL_RF_TECHNOLOGY_MASK_ISO18092_ACTIVE
Autocoll for ISO18092 target mode active enabled.
Definition: phhalHw_Pn5180_Instr.h:109
PHHAL_HW_PN5180_AUTOCOLL_RF_TECHNOLOGY_MASK_NFC_F_ACTIVE
#define PHHAL_HW_PN5180_AUTOCOLL_RF_TECHNOLOGY_MASK_NFC_F_ACTIVE
Autocoll for NFC_F target mode active enabled.
Definition: phhalHw_Pn5180_Instr.h:110
PHHAL_HW_PN5180_AUTOCOLL_RF_TECHNOLOGY_MASK_NFC_A
#define PHHAL_HW_PN5180_AUTOCOLL_RF_TECHNOLOGY_MASK_NFC_A
Autocoll for NFC-A (ISO14443 mode A) enabled.
Definition: phhalHw_Pn5180_Instr.h:107

Mask value for RF technology.

§ PHHAL_HW_PN5180_MIN_SELECT_COMMAND_LENGTH

#define PHHAL_HW_PN5180_MIN_SELECT_COMMAND_LENGTH 1U

Minimum length of Select command.

§ PHHAL_HW_PN5180_MAX_SELECT_COMMAND_LENGTH

#define PHHAL_HW_PN5180_MAX_SELECT_COMMAND_LENGTH 39U

Maximum length of Select command.

§ PHHAL_HW_PN5180_BEGIN_COMMAND_LENGTH

#define PHHAL_HW_PN5180_BEGIN_COMMAND_LENGTH 03U

length of Begin command.

§ PHHAL_HW_PN5180_MAX_NUM_OF_BITS_FOR_LAST_BYTE

#define PHHAL_HW_PN5180_MAX_NUM_OF_BITS_FOR_LAST_BYTE 7U

Maximum number of bits to be transmitted in the last byte of pSelectCommand.

0 in case all bits shall be transmitted, otherwise 1-7.

§ PHHAL_HW_PN5180_MAX_EPC_GEN2_TIMESLOT

#define PHHAL_HW_PN5180_MAX_EPC_GEN2_TIMESLOT (PHHAL_HW_PN5180_EPC_GEN2_TIMESLOT_SINGLE_SELECT_TAG)

Maximum EPC GEN2 TIMESLOT parameter.

§ PHHAL_HW_PN5180_MIN_RF_TX_CONFIGURATION_INDEX

#define PHHAL_HW_PN5180_MIN_RF_TX_CONFIGURATION_INDEX 0x00

Minimum RF configuration index for TX.

§ PHHAL_HW_PN5180_MAX_RF_TX_CONFIGURATION_INDEX

#define PHHAL_HW_PN5180_MAX_RF_TX_CONFIGURATION_INDEX 0x1C

Maximum RF configuration index for TX.

§ PHHAL_HW_PN5180_MIN_RF_RX_CONFIGURATION_INDEX

#define PHHAL_HW_PN5180_MIN_RF_RX_CONFIGURATION_INDEX 0x80

Minimum RF configuration index for RX.

§ PHHAL_HW_PN5180_MAX_RF_RX_CONFIGURATION_INDEX

#define PHHAL_HW_PN5180_MAX_RF_RX_CONFIGURATION_INDEX 0x9D

Maximum RF configuration index for RX.

§ PHHAL_HW_PN5180_MAX_RF_CONFIGURATION_INDEX

#define PHHAL_HW_PN5180_MAX_RF_CONFIGURATION_INDEX PHHAL_HW_PN5180_MAX_RF_RX_CONFIGURATION_INDEX

Maximum RF configuration index.

§ PHHAL_HW_PN5180_CURRENT_RF_CONFIGURATION_INDEX

#define PHHAL_HW_PN5180_CURRENT_RF_CONFIGURATION_INDEX 0xFF

Current RF configuration index for TX/RX.

§ PHHAL_HW_PN5180_RF_CONFIGURATION_SIZE

#define PHHAL_HW_PN5180_RF_CONFIGURATION_SIZE 6U

Size of a single RF configuration 1 Byte Rx or Tx configuration index 1 Byte Register address within the RF configuration 4 Bytes value to be written into the register.

§ PHHAL_HW_PN5180_RETRIEVE_RF_EACH_CONFIGURATION

#define PHHAL_HW_PN5180_RETRIEVE_RF_EACH_CONFIGURATION 5U

Size of a single RF configuration 1 Byte Register address within the RF configuration 4 Bytes value of the register.

§ PHHAL_HW_PN5180_MAX_RF_CONFIGURATION_SIZE

#define PHHAL_HW_PN5180_MAX_RF_CONFIGURATION_SIZE 252U

Maximum size of the RF configurations.

It must be a multiple of PHHAL_HW_PN5180_RF_CONFIGURATION_SIZE.

§ PHHAL_HW_PN5180_MAX_RF_REGS

#define PHHAL_HW_PN5180_MAX_RF_REGS 0x43

Max RF config regs- Not in Spec-Discussed with JP.

§ PHHAL_HW_PN5180_RF_TX_ISO14443A_106_MILLER

#define PHHAL_HW_PN5180_RF_TX_ISO14443A_106_MILLER 0U

Type A baud rate @ 106 load configurations TX Value.

§ PHHAL_HW_PN5180_RF_TX_ISO14443A_212_MILLER

#define PHHAL_HW_PN5180_RF_TX_ISO14443A_212_MILLER 1U

Type A baud rate @ 212 load configurations TX Value.

§ PHHAL_HW_PN5180_RF_TX_ISO14443A_424_MILLER

#define PHHAL_HW_PN5180_RF_TX_ISO14443A_424_MILLER 2U

Type A baud rate @ 424 load configurations TX Value.

§ PHHAL_HW_PN5180_RF_TX_ISO14443A_848_MILLER

#define PHHAL_HW_PN5180_RF_TX_ISO14443A_848_MILLER 3U

Type A baud rate @ 848 load configurations TX Value.

§ PHHAL_HW_PN5180_RF_TX_ISO14443B_106_NRZ

#define PHHAL_HW_PN5180_RF_TX_ISO14443B_106_NRZ 4U

Type B baud rate @ 106 load configurations TX Value.

§ PHHAL_HW_PN5180_RF_TX_ISO14443B_212_NRZ

#define PHHAL_HW_PN5180_RF_TX_ISO14443B_212_NRZ 5U

Type B baud rate @ 212 load configurations TX Value.

§ PHHAL_HW_PN5180_RF_TX_ISO14443B_424_NRZ

#define PHHAL_HW_PN5180_RF_TX_ISO14443B_424_NRZ 6U

Type B baud rate @ 424 load configurations TX Value.

§ PHHAL_HW_PN5180_RF_TX_ISO14443B_848_NRZ

#define PHHAL_HW_PN5180_RF_TX_ISO14443B_848_NRZ 7U

Type B baud rate @ 848 load configurations TX Value.

§ PHHAL_HW_PN5180_RF_TX_FELICA_212

#define PHHAL_HW_PN5180_RF_TX_FELICA_212 8U

Type F baud rate @ 212 load configurations TX Value.

§ PHHAL_HW_PN5180_RF_TX_FELICA_424

#define PHHAL_HW_PN5180_RF_TX_FELICA_424 9U

Type F baud rate @ 484 load configurations TX Value.

§ PHHAL_HW_PN5180_RF_TX_NFC_AI_106_106

#define PHHAL_HW_PN5180_RF_TX_NFC_AI_106_106 0x0AU

Active Initiator baud rate @ 106 load configurations TX Value.

§ PHHAL_HW_PN5180_RF_TX_NFC_AI_212_212

#define PHHAL_HW_PN5180_RF_TX_NFC_AI_212_212 0x0BU

Active Initiator baud rate @ 212 load configurations TX Value.

§ PHHAL_HW_PN5180_RF_TX_NFC_AI_424_424

#define PHHAL_HW_PN5180_RF_TX_NFC_AI_424_424 0x0CU

Active Initiator baud rate @ 424 load configurations TX Value.

§ PHHAL_HW_PN5180_RF_TX_ISO15693_26_1OF4_ASK100

#define PHHAL_HW_PN5180_RF_TX_ISO15693_26_1OF4_ASK100 0x0DU

Type V (ISO 15693 ) load configurations TX Value.

§ PHHAL_HW_PN5180_RF_TX_ISO15693_26_1OF4_ASK10

#define PHHAL_HW_PN5180_RF_TX_ISO15693_26_1OF4_ASK10 0x0EU

Type V (ISO 15693 ) load configurations TX Value.

§ PHHAL_HW_PN5180_RF_TX_ISO180003M3_TARI_18_88_ASK

#define PHHAL_HW_PN5180_RF_TX_ISO180003M3_TARI_18_88_ASK 0x0FU

ISO 18000P3M3 load configurations TX Value.

§ PHHAL_HW_PN5180_RF_TX_ISO180003M3_TARI_9_44_ASK

#define PHHAL_HW_PN5180_RF_TX_ISO180003M3_TARI_9_44_ASK 0x10U

ISO 18000P3M3 load configurations TX Value.

§ PHHAL_HW_PN5180_RF_TX_ISO14443A_PICC_106_MANCH_SUBC

#define PHHAL_HW_PN5180_RF_TX_ISO14443A_PICC_106_MANCH_SUBC 0x13U

Type A Card mode baud rate @ 106 load configurations TX Value.

§ PHHAL_HW_PN5180_RF_TX_ISO14443A_PICC_212_BPSK

#define PHHAL_HW_PN5180_RF_TX_ISO14443A_PICC_212_BPSK 0x14U

Type A Card mode baud rate @ 212 load configurations TX Value.

§ PHHAL_HW_PN5180_RF_TX_ISO14443A_PICC_424_BPSK

#define PHHAL_HW_PN5180_RF_TX_ISO14443A_PICC_424_BPSK 0x15U

Type A Card mode baud rate @ 424 load configurations TX Value.

§ PHHAL_HW_PN5180_RF_TX_ISO14443A_PICC_848_BPSK

#define PHHAL_HW_PN5180_RF_TX_ISO14443A_PICC_848_BPSK 0x16U

Type A Card mode baud rate @ 848 load configurations TX Value.

§ PHHAL_HW_PN5180_RF_TX_NFC_PT_212

#define PHHAL_HW_PN5180_RF_TX_NFC_PT_212 0x17U

Passive Target baud rate @ 212 load configurations TX Value.

§ PHHAL_HW_PN5180_RF_TX_NFC_PT_424

#define PHHAL_HW_PN5180_RF_TX_NFC_PT_424 0x18U

Passive Target baud rate @ 424 load configurations TX Value.

§ PHHAL_HW_PN5180_RF_TX_NFC_AT_106

#define PHHAL_HW_PN5180_RF_TX_NFC_AT_106 0x19U

Active Target baud rate @ 106 load configurations TX Value.

§ PHHAL_HW_PN5180_RF_TX_NFC_AT_212

#define PHHAL_HW_PN5180_RF_TX_NFC_AT_212 0x1AU

Active Target baud rate @ 212 load configurations TX Value.

§ PHHAL_HW_PN5180_RF_TX_NFC_AT_424

#define PHHAL_HW_PN5180_RF_TX_NFC_AT_424 0x1BU

Active Target baud rate @ 424 load configurations TX Value.

§ PHHAL_HW_PN5180_RF_TX_GTM_All_Al

#define PHHAL_HW_PN5180_RF_TX_GTM_All_Al 0x1CU

General Target Mode configuration.

§ PHHAL_HW_PN5180_RF_RX_ISO14443A_106_MANCH_SUBC

#define PHHAL_HW_PN5180_RF_RX_ISO14443A_106_MANCH_SUBC 0x80U

Type A baud rate @ 106 load configurations RX Value.

§ PHHAL_HW_PN5180_RF_RX_ISO14443A_212_BPSK

#define PHHAL_HW_PN5180_RF_RX_ISO14443A_212_BPSK 0x81U

Type A baud rate @ 212 load configurations RX Value.

§ PHHAL_HW_PN5180_RF_RX_ISO14443A_424_BPSK

#define PHHAL_HW_PN5180_RF_RX_ISO14443A_424_BPSK 0x82U

Type A baud rate @ 424 load configurations RX Value.

§ PHHAL_HW_PN5180_RF_RX_ISO14443A_848_BPSK

#define PHHAL_HW_PN5180_RF_RX_ISO14443A_848_BPSK 0x83U

Type A baud rate @ 848 load configurations RX Value.

§ PHHAL_HW_PN5180_RF_RX_ISO14443B_106_BPSK

#define PHHAL_HW_PN5180_RF_RX_ISO14443B_106_BPSK 0x84U

Type B baud rate @ 106 load configurations RX Value.

§ PHHAL_HW_PN5180_RF_RX_ISO14443B_212_BPSK

#define PHHAL_HW_PN5180_RF_RX_ISO14443B_212_BPSK 0x85U

Type B baud rate @ 212 load configurations RX Value.

§ PHHAL_HW_PN5180_RF_RX_ISO14443B_424_BPSK

#define PHHAL_HW_PN5180_RF_RX_ISO14443B_424_BPSK 0x86U

Type B baud rate @ 424 load configurations RX Value.

§ PHHAL_HW_PN5180_RF_RX_ISO14443B_848_BPSK

#define PHHAL_HW_PN5180_RF_RX_ISO14443B_848_BPSK 0x87U

Type B baud rate @ 848 load configurations RX Value.

§ PHHAL_HW_PN5180_RF_RX_FELICA_212

#define PHHAL_HW_PN5180_RF_RX_FELICA_212 0x88U

Type F baud rate @ 212 load configurations RX Value.

§ PHHAL_HW_PN5180_RF_RX_FELICA_424

#define PHHAL_HW_PN5180_RF_RX_FELICA_424 0x89U

Type F baud rate @ 424 load configurations RX Value.

§ PHHAL_HW_PN5180_RF_RX_NFC_AI_106

#define PHHAL_HW_PN5180_RF_RX_NFC_AI_106 0x8AU

Active Initiator @ baud rate 106 load configurations RX Value.

§ PHHAL_HW_PN5180_RF_RX_NFC_AI_212

#define PHHAL_HW_PN5180_RF_RX_NFC_AI_212 0x8BU

Active Initiator @ baud rate 212 load configurations RX Value.

§ PHHAL_HW_PN5180_RF_RX_NFC_AI_424

#define PHHAL_HW_PN5180_RF_RX_NFC_AI_424 0x8CU

Active Initiator @ baud rate 424 load configurations RX Value.

§ PHHAL_HW_PN5180_RF_RX_ISO15693_26_1OF4_SC

#define PHHAL_HW_PN5180_RF_RX_ISO15693_26_1OF4_SC 0x8DU

Type V (ISO 15693 ) load configurations RX Value.

§ PHHAL_HW_PN5180_RF_RX_ISO15693_53_1OF4_SC

#define PHHAL_HW_PN5180_RF_RX_ISO15693_53_1OF4_SC 0x8EU

Type V (ISO 15693 ) load configurations RX Value.

§ PHHAL_HW_PN5180_RF_RX_ISO180003M3_MANCH424_4_PERIOD

#define PHHAL_HW_PN5180_RF_RX_ISO180003M3_MANCH424_4_PERIOD 0x8FU

ISO 18000P3M3 load configurations RX Value.

§ PHHAL_HW_PN5180_RF_RX_ISO180003M3_MANCH424_2_PERIOD

#define PHHAL_HW_PN5180_RF_RX_ISO180003M3_MANCH424_2_PERIOD 0x90U

ISO 18000P3M3 load configurations RX Value.

§ PHHAL_HW_PN5180_RF_RX_ISO180003M3_MANCH848_4_PERIOD

#define PHHAL_HW_PN5180_RF_RX_ISO180003M3_MANCH848_4_PERIOD 0x91U

ISO 18000P3M3 load configurations RX Value.

§ PHHAL_HW_PN5180_RF_RX_ISO180003M3_MANCH848_2_PERIOD

#define PHHAL_HW_PN5180_RF_RX_ISO180003M3_MANCH848_2_PERIOD 0x92U

ISO 18000P3M3 load configurations RX Value.

§ PHHAL_HW_PN5180_RF_RX_ISO14443A_PICC_106_MILLER

#define PHHAL_HW_PN5180_RF_RX_ISO14443A_PICC_106_MILLER 0x93U

Type A Card mode baud rate @ 106 load configurations RX Value.

§ PHHAL_HW_PN5180_RF_RX_ISO14443A_PICC_212_MILLER

#define PHHAL_HW_PN5180_RF_RX_ISO14443A_PICC_212_MILLER 0x94U

Type A Card mode baud rate @ 212 load configurations RX Value.

§ PHHAL_HW_PN5180_RF_RX_ISO14443A_PICC_424_MILLER

#define PHHAL_HW_PN5180_RF_RX_ISO14443A_PICC_424_MILLER 0x95U

Type A Card mode baud rate @ 424 load configurations RX Value.

§ PHHAL_HW_PN5180_RF_RX_ISO14443A_PICC_848_MILLER

#define PHHAL_HW_PN5180_RF_RX_ISO14443A_PICC_848_MILLER 0x96U

Type A Card mode baud rate @ 848 load configurations RX Value.

§ PHHAL_HW_PN5180_RF_RX_NFC_PT_212

#define PHHAL_HW_PN5180_RF_RX_NFC_PT_212 0x97U

Passive Target baud rate @ 212 load configurations RX Value.

§ PHHAL_HW_PN5180_RF_RX_NFC_PT_424

#define PHHAL_HW_PN5180_RF_RX_NFC_PT_424 0x98U

Passive Target baud rate @ 424 load configurations RX Value.

§ PHHAL_HW_PN5180_RF_RX_NFC_AT_106

#define PHHAL_HW_PN5180_RF_RX_NFC_AT_106 0x99U

Active Initiator baud rate @ 106 load configurations RX Value.

§ PHHAL_HW_PN5180_RF_RX_NFC_AT_212

#define PHHAL_HW_PN5180_RF_RX_NFC_AT_212 0x9AU

Active Initiator baud rate @ 212 load configurations RX Value.

§ PHHAL_HW_PN5180_RF_RX_NFC_AT_424

#define PHHAL_HW_PN5180_RF_RX_NFC_AT_424 0x9BU

Active Initiator baud rate @ 424 load configurations RX Value.

§ PHHAL_HW_PN5180_RF_RX_GTM_All_All

#define PHHAL_HW_PN5180_RF_RX_GTM_All_All 0x9CU

General Target Mode configuration.

§ PHHAL_HW_CONFIG_SET_LPCD_WAKEUPTIME_MS

#define PHHAL_HW_CONFIG_SET_LPCD_WAKEUPTIME_MS 0x0070U

Used value for wakeup counter in msecs, i.e.

after this amount of time IC will wakes up from standby.

§ PHHAL_HW_PN5180_LPCD_MODE_DEFAULT

#define PHHAL_HW_PN5180_LPCD_MODE_DEFAULT 0x00U

Default mode.

Try LPCD until timeout is reached.

§ PHHAL_HW_PN5180_LPCD_MODE_POWERDOWN

#define PHHAL_HW_PN5180_LPCD_MODE_POWERDOWN 0x01U

Powers down the IC for a certain amount of time and performs LPC after wakeup.

If no card is found the IC is powered down again and the procedure is restarted. If a card is found the function returns and the IC remains powered up.

Function Documentation

§ phhalHw_Pn5180_Instr_Execute()

phStatus_t phhalHw_Pn5180_Instr_Execute | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint8_t | bInstructionCode,
 |  | uint8_t * | pInstrPayload,
 |  | uint16_t | wInstrPayloadLength,
 |  | uint16_t | wExpectedResponseLength,
 |  | uint8_t ** | ppInstrResponse
 | ) |  |

Execute a PN5180 Instruction.

This function can be used the execute any PN5180 instruction. The instruction is composed of bInstructionCode and pInstrPayload. If the instruction also results in a response (in case of GET_* instructions) a pointer to a buffer containing the response (ppInstrResponse) is returned. The caller has to provide the length of the response using wExpectedResponseLength. Note: GET_* instructions always deliver a response, also in error cases. It's the responsibility of the caller to read out the status register to see if the response is valid (no exception occurred).

Returns
Status Code
Return values
PH_ERR_SUCCESS Execution of instruction successful.
Parameters
[in] | pDataParams | DataParams to this layer.
[in] | bInstructionCode | Instruction code to use. For instance PHHAL_HW_PN5180_SET_INSTR_WRITE_REGISTER
[in] | pInstrPayload | Payload to be used along with the instruction.
[in] | wInstrPayloadLength | Length of the payload.
[in] | wExpectedResponseLength | Number of bytes to be received as a response to the instruction. Only valid for GET_* instructions. 0 in case of SET_* instructions.
[out] | ppInstrResponse | Pointer to the received response.

§ phhalHw_Pn5180_Instr_WriteRegister()

phStatus_t phhalHw_Pn5180_Instr_WriteRegister | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint8_t | bRegister,
 |  | uint32_t | dwValue
 | ) |  |

Write a 32 bit value (little endian) to a logical register.

Returns
Status Code
Return values
PH_ERR_SUCCESS | Register successfully written.
PH_ERR_INVALID_PARAMETER | Unknown register address.
PH_ERR_READ_WRITE_ERROR | Register is read-only.
Parameters
[in] | pDataParams | DataParams to this layer.
[in] | bRegister | Address of the register.
[in] | dwValue | 32 Bit register value which has to be written.

§ phhalHw_Pn5180_Instr_WriteRegisterOrMask()

phStatus_t phhalHw_Pn5180_Instr_WriteRegisterOrMask | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint8_t | bRegister,
 |  | uint32_t | dwMask
 | ) |  |

Perform a logical OR operation on a register using provided mask.

This function is used to modify the content of register using a logical OR operation. The content of the register is read and a logical OR operation is performed with the provided mask. The modified content is written back to the register.

Returns
Status Code
Return values
PH_ERR_SUCCESS | Register successfully written.
PH_ERR_INVALID_PARAMETER | Unknown register address.
PH_ERR_READ_WRITE_ERROR | Register is read-only.
Parameters
[in] | pDataParams | DataParams to this layer.
[in] | bRegister | Address of the register.
[in] | dwMask | Bitmask used as operand for logical OR operation.

§ phhalHw_Pn5180_Instr_WriteRegisterAndMask()

phStatus_t phhalHw_Pn5180_Instr_WriteRegisterAndMask | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint8_t | bRegister,
 |  | uint32_t | dwMask
 | ) |  |

Perform a logical AND operation on a register using provided mask.

This function is used to modify the content of register using a logical AND operation. The content of the register is read and a logical AND operation is performed with the provided mask. The modified content is written back to the register.

Returns
Status Code
Return values
PH_ERR_SUCCESS | Register successfully written.
PH_ERR_INVALID_PARAMETER | Unknown register address.
PH_ERR_READ_WRITE_ERROR | Register is read-only.
Parameters
[in] | pDataParams | DataParams to this layer.
[in] | bRegister | Address of the register.
[in] | dwMask | Bitmask used as operand for logical AND operation.

§ phhalHw_Pn5180_Instr_WriteRegisterMultiple()

phStatus_t phhalHw_Pn5180_Instr_WriteRegisterMultiple | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint8_t * | pRegTypeValueSets,
 |  | uint16_t | wSizeOfRegTypeValueSets
 | ) |  |

Perform a write register operation using a set of Register-Value pairs.

This function behaves like phhalHw_Pn5180_Instr_WriteRegister, phhalHw_Pn5180_Instr_WriteRegisterOrMask and phhalHw_Pn5180_Instr_WriteRegisterAndMask with the possibility to combine them. In fact it takes an array of register-type-value set and performs appropriate action. The type reflects the action which is either write register, logical OR operation on a register or logical AND operation on a register. The array is passed in as a buffer (pRegTypeValueSets) which contains one or more sets. One set consists of 1 byte register address, 1 byte type (see PHHAL_HW_PN5180_WRITE_MULTIPLE_TYPE_WRITE) and 4 bytes value/mask.

Returns
Status Code
Return values
PH_ERR_SUCCESS | All registers successfully modified.
PH_ERR_INVALID_PARAMETER | At least one unknown register address provided, or general parameter error (e.g. wSizeOfRegTypeValueSets is higher than 258)
PH_ERR_READ_WRITE_ERROR | At least one register is read-only.
Parameters
[in] | pDataParams | DataParams to this layer.
[in] | pRegTypeValueSets | A buffer containing one or more sets Register-Type-Value sets.
[in] | wSizeOfRegTypeValueSets | Size of the buffer holding the register-type-value sets. Max. size supported is 258.

§ phhalHw_Pn5180_Instr_ReadRegister()

phStatus_t phhalHw_Pn5180_Instr_ReadRegister | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint8_t | bRegister,
 |  | uint32_t * | pValue
 | ) |  |

Read back content of a register.

This function is used to read back the content of a logical register whose address is given by bRegister. The content is available in output parameter pValue.

Returns
Status Code
Return values
PH_ERR_SUCCESS | Register successfully read out.
PH_ERR_INVALID_PARAMETER | Unknown register address provided or pValue set to NULL.
PH_ERR_READ_WRITE_ERROR | At least one register is write-only.
Parameters
[in] | pDataParams | DataParams to this layer.
[in] | bRegister | Address of the register.
[out] | pValue | Pointer to a uint32_t variable, where the result (value of the read out register) shall be written to.

§ phhalHw_Pn5180_Instr_ReadRegisterMultiple()

phStatus_t phhalHw_Pn5180_Instr_ReadRegisterMultiple | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint8_t * | pRegisters,
 |  | uint8_t | bNumOfRegisters,
 |  | uint8_t ** | ppValues
 | ) |  |

Perform a read register operation on a set of registers.

This function is used to read multiple logical register at once. The order of the register contents/values within the response (ppValues) corresponds to the order of the register addresses within pRegisters.

Returns
Status Code
Return values
PH_ERR_SUCCESS | All requested registers successfully read out.
PH_ERR_INVALID_PARAMETER | At least one unknown register address provided, or general parameter error (e.g. bNumOfRegisters is higher than 16)
PH_ERR_READ_WRITE_ERROR | At least one register is write-only.
Parameters
[in] | pDataParams | DataParams to this layer.
[in] | pRegisters | A buffer containing list of registers (one byte each) to be read out.
[in] | bNumOfRegisters | Number of registers to be read out (=size of pRegisters). Maximum size is 16.
[out] | ppValues | A pointer to a buffer which contains the result, in fact the register values read out. Size of the buffer is 4 * bNumOfRegisters.

§ phhalHw_Pn5180_Instr_WriteE2Prom()

phStatus_t phhalHw_Pn5180_Instr_WriteE2Prom | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint8_t | bE2PromAddress,
 |  | uint8_t * | pDataToWrite,
 |  | uint8_t | bDataLength
 | ) |  |

Write values sequentially to E2PROM.

This function is used to write one or more values to E2PROM. pDataToWrite shall contain the data to be written to E2PROM starting at the address bE2PromAddress. The data is written in sequential order.

Returns
Status Code
Return values
PH_ERR_SUCCESS | All data written.
PH_ERR_INVALID_PARAMETER | pDataToWrite or pDataParams is NULL.
PH_ERR_PARAMETER_OVERFLOW | Write operation attempts to write beyond end of E2PROM.
Parameters
[in] | pDataParams | DataParams to this layer.
[in] | bE2PromAddress | Start address within E2PROM.
[in] | pDataToWrite | Data to be written.
[in] | bDataLength | Number of bytes to be written.

§ phhalHw_Pn5180_Instr_ReadE2Prom()

phStatus_t phhalHw_Pn5180_Instr_ReadE2Prom | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint8_t | bE2PromAddress,
 |  | uint8_t * | pReadData,
 |  | uint8_t | bDataLength
 | ) |  |

Read values sequentially to E2PROM.

This function is used to write one or more values to E2PROM. pDataToWrite shall contain the data to be written to E2PROM starting at the address bE2PromAddress. The data is written in sequential order.

Returns
Status Code
Return values
PH_ERR_SUCCESS | All data read.
PH_ERR_INVALID_PARAMETER | pReadData or pDataParams is NULL.
PH_ERR_PARAMETER_OVERFLOW | Read operation attempts to read beyond end of E2PROM.
Parameters
[in] | pDataParams | DataParams to this layer.
[in] | bE2PromAddress | Start address within E2PROM.
[out] | pReadData | Read out data.
[in] | bDataLength | Number of bytes to be read.

§ phhalHw_Pn5180_Instr_WriteTxData()

phStatus_t phhalHw_Pn5180_Instr_WriteTxData | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint8_t * | pTxBuffer,
 |  | uint16_t | wTxBufferLength
 | ) |  |

Write Tx data to internal CLIF transmission buffer.

This function is used to write data into the internal CLIF transmission buffer. The size of this buffer is limited to 260 bytes. After this instruction has been executed, an RF transmission can be started by setting corresponding registers.

Returns
Status Code
Return values
PH_ERR_SUCCESS | All data written to internal Tx buffer.
PH_ERR_INVALID_PARAMETER | pTxBuffer or pDataParams is NULL, or wTxBufferLength > 260.
Parameters
[in] | pDataParams | DataParams to this layer.
[in] | pTxBuffer | Buffer containing the data to be used for RF transmission.
[in] | wTxBufferLength | Size of the buffer pTxBuffer.

§ phhalHw_Pn5180_Instr_SendData()

phStatus_t phhalHw_Pn5180_Instr_SendData | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint8_t * | pTxBuffer,
 |  | uint16_t | wTxBufferLength,
 |  | uint8_t | bNumberOfValidBits
 | ) |  |

Write Tx data to internal RF transmission buffer and start transmission using transceive command.

This function is used to write data to internal CLIF transmission buffer (see phhalHw_Pn5180_Instr_WriteTxData) and, additionally, start the RF transmission. wTxBufferLength and bNumberOfValidBits indicate the exact data length to be transmitted. For actual transmission, it is assumed that host has executed the transceiver command (by setting corresponding register). Note: When the instruction returns, transmission might still be ongoing, i.e. the instruction just starts the transmission but does not wait for end of transmission.

Returns
Status Code
Return values
PH_ERR_SUCCESS | All data written to internal Tx buffer and transmission started.
PH_ERR_INVALID_PARAMETER | pTxBuffer or pDataParams is NULL, bTxBufferLength > 260 or bNumberOfValidBits > 7.
Parameters
[in] | pDataParams | DataParams to this layer.
[in] | pTxBuffer | Buffer containing the data to be used for RF transmission.
[in] | wTxBufferLength | Size of the buffer pTxBuffer.
[in] | bNumberOfValidBits | Number of valid bits in last byte. 0 means all bits are transferred

§ phhalHw_Pn5180_Instr_RetrieveRxData()

phStatus_t phhalHw_Pn5180_Instr_RetrieveRxData | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint8_t ** | pRxBuffer,
 |  | uint16_t | wExpectedRxDataLength
 | ) |  |

Read data back from internal CLIF Rx buffer.

This function is used to retrieve data from internal CLIF receive buffer after successful reception. The size of this buffer is limited to 260 bytes. Note: This instruction does not check if reception was successful.

Returns
Status Code
Return values
PH_ERR_SUCCESS | Data successfully read.
PH_ERR_INVALID_PARAMETER | wExpectedRxDataLength is > 260.
Parameters
[in] | pDataParams | DataParams to this layer.
[in] | pRxBuffer | Pointer to the buffer holding the data.
[in] | wExpectedRxDataLength | Number of byte to be retrieved.

§ phhalHw_Pn5180_Instr_SwitchModeStandby()

phStatus_t phhalHw_Pn5180_Instr_SwitchModeStandby | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint8_t | bWakeupControlMask,
 |  | uint16_t | wWakeupCounterInMs
 | ) |  |

Switch to standby mode.

This function is used to put PN5180 into standby mode. The wake up conditions are defined using bWakeupControlMask parameter. The instruction does not check if system actually entered standby or standby was prevented. An interrupt is raised once PN5180 wakes up or in case standby was prevented. Optionally, a GPO is set on wake up.

Returns
Status Code
Return values
PH_ERR_SUCCESS | Instruction successfully executed.
PH_ERR_INVALID_PARAMETER | No wake up condition defined or wWakeupCounterInMs is out of range.
Parameters
[in] | pDataParams | DataParams to this layer.
[in] | bWakeupControlMask | Bitmask controlling the standby wakeup. For example see: PHHAL_HW_PN5180_WAKEUP_CONTROL_MASK_WUP_ON_COUNTER.
[in] | wWakeupCounterInMs | Used value for wakeup counter in msecs, i.e. after this amount of time PN5180 wakes up from standby. Maximum value is 2690.

§ phhalHw_Pn5180_Instr_SwitchModeLpcd()

phStatus_t phhalHw_Pn5180_Instr_SwitchModeLpcd | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint16_t | wWakeupCounterInMs
 | ) |  |

Switch to LPCD mode.

This function is used to put PN5180 into LPCD mode. The wait period in msecs between two LPCD cycles is defined by wWakeupCounterValue. During wait period PN5180 is in standby. The function returns immediately, i.e. it does not wait until a card has been detected. On detection of a card, PN5180 raises an interrupt and normal mode is entered again.

Returns
Status Code
Return values
PH_ERR_SUCCESS | Instruction successfully executed.
PH_ERR_INVALID_PARAMETER | wWakeupCounterInMs is out of range.
Parameters
[in] | pDataParams | DataParams to this layer.
[in] | wWakeupCounterInMs | Used value for wakeup counter in msecs, i.e. after this amount of time PN5180 wakes up from standby. Maximum value is 2690.

§ phhalHw_Pn5180_Instr_SwitchModeAutocoll()

phStatus_t phhalHw_Pn5180_Instr_SwitchModeAutocoll | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint8_t | bRfTechnologyMask,
 |  | uint8_t | bAutocollMode
 | ) |  |

Switch to Autocoll mode.

This function is used to put PN5180 into Autocoll mode in order to handle target mode activation. The termination condition depends on bAutocollMode. The function returns immediately, i.e. it does not wait until autocoll terminates. Once terminated, autocoll raises an interrupt and normal mode is entered again.

Returns
Status Code
Return values
PH_ERR_SUCCESS | Instruction successfully executed.
PH_ERR_INVALID_PARAMETER | wWakeupCounterInMs is 0.
Parameters
[in] | pDataParams | DataParams to this layer.
[in] | bRfTechnologyMask | Bitmask indicating the RF technology to listen for during Autocoll. For example see PHHAL_HW_PN5180_AUTOCOLL_RF_TECHNOLOGY_MASK_NFC_A.
[in] | bAutocollMode | Autocoll operation mode to be used. See for example PHHAL_HW_PN5180_AUTOCOLL_MODE_TERMINATE_ON_RF_OFF.

§ phhalHw_Pn5180_Instr_MifareAuthenticate()

phStatus_t phhalHw_Pn5180_Instr_MifareAuthenticate | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint8_t * | pKey,
 |  | uint8_t | bKeyType,
 |  | uint8_t | bBlockNo,
 |  | uint8_t * | pUid
 | ) |  |

Perform authentication on an activated Mifare Classic card.

This function is used to perform a Mifare Classic Authentication on an activated card. It takes the key, card UID and the key type to authenticate at given block address.

Returns
Status Code
Return values
PH_ERR_SUCCESS | Authentication successful.
PH_ERR_INVALID_PARAMETER | bKeyType wrong, pUid or pKey is NULL.
PH_ERR_IO_TIMEOUT | Timeout during authentication.
PH_ERR_AUTH_ERROR | Authentication failed.
Parameters
[in] | pDataParams | DataParams to this layer.
[in] | pKey | Key to be used for authentication. uint8_t[6].
[in] | bKeyType | Key type. Either PHHAL_HW_MFC_KEYA or PHHAL_HW_MFC_KEYB.
[in] | bBlockNo | Block-Number on card to authenticate to.
[in] | pUid | UID of the activated card. uint8_t[4].

§ phhalHw_Pn5180_Instr_EpcGen2Inventory()

phStatus_t phhalHw_Pn5180_Instr_EpcGen2Inventory | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint8_t * | pSelectCommand,
 |  | uint8_t | bSelectCommandLength,
 |  | uint8_t | bSelectCommandBitsInLastByte,
 |  | uint8_t * | pBeginRoundCmmand,
 |  | uint8_t | bTimeslotProcessingBehavior
 | ) |  |

Perform an ISO 18000-3M3 Inventory.

This function is used to perform an inventory of ISO18000-3M3 tags. It implements an autonomous execution of several commands according to ISO18000-3M3 in order to guarantee the timings specified by that standard.

Returns
Status Code
Return values
PH_ERR_SUCCESS | Inventory executed, internal response buffer filled according to the bTimeslotProcessingBehavior policy.
PH_ERR_INVALID_PARAMETER | pBeginRoundCommand is NULL or wrong value for one of bTimeslotProcessingBehavior, bSelectCommandBitsInLastByte or bSelectCommandLength.
Parameters
[in] | pDataParams | DataParams to this layer.
[in] | pSelectCommand | If present (not NULL) it contains the Select command (according to ISO18000-3, Table 47) which is sent prior to BeginRound command. CRC-16c shall not be included. Size of the buffer is between 1-39 bytes, inclusive.
[in] | bSelectCommandLength | Size of pSelectCommand buffer. 0 in case no Select Command shall be sent, otherwise 1-39.
[in] | bSelectCommandBitsInLastByte | Number of bits to be transmitted in the last byte of pSelectCommand. 0 in case all bits shall be transmitted, otherwise 1-7.
[in] | pBeginRoundCmmand | Buffer containing BeginRound command (according to ISO18000-3, Table 49). CRC-5 shall not be included. uint8_t[3].
[in] | bTimeslotProcessingBehavior | Timeslot processing behavior. Indicates how many timeslots shall be processed before returning response to the host. For example see: PHHAL_HW_PN5180_EPC_GEN2_TIMESLOT_FILL_BUFFER.

§ phhalHw_Pn5180_Instr_EpcGen2RetrieveResultSize()

phStatus_t phhalHw_Pn5180_Instr_EpcGen2RetrieveResultSize | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint16_t * | pResultSize
 | ) |  |

Retrieve the size of a pending EPC GEN2 inventory result.

This function is used to retrieve the size of the inventory result. The size reflects the payload size of the response to the next execution phhalHw_Pn5180_Instr_EpcGen2RetrieveResult. If the size is 0, then no more results are available which means inventory algorithm has finished.

Returns
Status Code
Return values
PH_ERR_SUCCESS | Instruction successfully executed, result size available in pResultSize.
PH_ERR_INVALID_PARAMETER | wResultSize is NULL.
Parameters
[in] | pDataParams | DataParams to this layer.
[out] | pResultSize | Size of the inventory result.

§ phhalHw_Pn5180_Instr_EpcGen2RetrieveResult()

phStatus_t phhalHw_Pn5180_Instr_EpcGen2RetrieveResult | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint8_t ** | ppInventoryResult,
 |  | uint16_t | wResultSize
 | ) |  |

Return the result of inventory.

This function is used to retrieve the result of a preceding call to phhalHw_Pn5180_Instr_EpcGen2Inventory or phhalHw_Pn5180_Instr_EpcGen2ResumeInventory instruction The size of the response is determined by pResultSize of phhalHw_Pn5180_Instr_EpcGen2RetrieveResultSize. The result (available in ppInventoryResult) actually contains the result for one or more processed timeslots.

Returns
Status Code
Return values
PH_ERR_SUCCESS | Instruction successfully executed, result size available in wResultSize.
PH_ERR_INVALID_PARAMETER | wResultSize is NULL.
Parameters
[in] | pDataParams | DataParams to this layer.
[out] ppInventoryResult Pointer to a buffer containing the result of the inventory. The buffer may contain the result of one or more timeslots. Each timeslot result has the following structure: 1 Byte Timeslot Status (
0 - Tag response available. "Tag Reply Length" field, "Valid bits in last byte" field, and "Tag reply" field present.
1 - Tag response available. "Tag Reply Length" field, "Valid bits in last byte" field, "Tag reply" field and "Tag handle" field present.
2 - No tag replied in timeslot. "Tag Reply Length" field, "Valid bits in last byte" field, and "Tag reply" field shall not be present.
3 - Two or more tags responded in the timeslot. (Collision). "Tag Reply Length" field, "Valid bits in last byte" field, and "Tag reply" field shall not be present.)
1 Byte 'Tag Reply' Length (1-66) 1 Byte Valid Bits in last Byte (0-7, 0 means all bits are valid) 0-66 Bytes Tag Reply 0 or 2 Bytes Handle of the tag, in case field "Timeslot Status" is set to "1". Otherwise field not present.
[in] | wResultSize | Size of the inventory result. phhalHw_Pn5180_Instr_EpcGen2RetrieveResultSize has to be called to retrieve the size.

§ phhalHw_Pn5180_Instr_EpcGen2ResumeInventory()

phStatus_t phhalHw_Pn5180_Instr_EpcGen2ResumeInventory ( phhalHw_Pn5180_DataParams_t * pDataParams )

Resume an ISO 18000-3M3 Inventory.

This function is used to resume the inventory algorithm in case it is paused. More specifically, this instruction has to be repeatedly called, as long as pResultSize of phhalHw_Pn5180_Instr_EpcGen2RetrieveResultSize is greater than 0. Typical sequence for a complete EPC GEN2 inventory is 1.) phhalHw_Pn5180_Instr_EpcGen2Inventory 2.) phhalHw_Pn5180_Instr_EpcGen2RetrieveResultSize 3.) if pResultSize is 0, inventory has finished. 4.) phhalHw_Pn5180_Instr_EpcGen2RetrieveResult 5.) phhalHw_Pn5180_Instr_EpcGen2ResumeInventory 6.) Go to step 2.

Returns
Status Code
Return values
PH_ERR_SUCCESS Inventory resumed, internal response buffer filled according to the bTimeslotProcessingBehavior policy set during execution of phhalHw_Pn5180_Instr_EpcGen2Inventory.
Parameters
[in] pDataParams DataParams to this layer.

§ phhalHw_Pn5180_Instr_LoadRfConfiguration()

phStatus_t phhalHw_Pn5180_Instr_LoadRfConfiguration | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint8_t | bRfTxConfiguration,
 |  | uint8_t | bRfRxConfiguration
 | ) |  |

Load RF Tx and Rx settings from E2PROM.

This function is used to load the RF configuration from E2PROM into internal CLIF registers. RF configuration refers to a unique combination of RF Technology, mode (target/initiator) and baud rate. RF configuration can be loaded separately for the CLIF receiver (Rx configuration) and transmitter (Tx configuration) path.

Returns
Status Code
Return values
PH_ERR_SUCCESS | RF configuration successfully loaded.
PH_ERR_INVALID_PARAMETER | bTxConfiguration or bRxConfiguration out of range.
Parameters
[in] | pDataParams | DataParams to this layer.
[in] | bRfTxConfiguration | Tx configuration index to be used. 0xff means Tx Configuration is not modified.
[in] | bRfRxConfiguration | Rx configuration index to be used. 0xff means Rx Configuration is not modified.

§ phhalHw_Pn5180_Instr_UpdateRfConfiguration()

phStatus_t phhalHw_Pn5180_Instr_UpdateRfConfiguration | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint8_t * | pRfConfiguration,
 |  | uint8_t | bRfConfigurationSize
 | ) |  |

Update the RF configuration.

This function is used to update the RF configuration within E2PROM. Only registers available within the respective RF configuration can be updated, registers can't be added or removed.

Returns
Status Code
Return values
PH_ERR_SUCCESS | RF configuration successfully updated.
PH_ERR_INVALID_PARAMETER | bRfConfigurationSize not a multiple of 6 or out of range. pRfConfiguration is NULL.
Parameters
[in] | pDataParams | DataParams to this layer.
[in] | pRfConfiguration | Array containing one or more configurations to be written. One configuration is a set of 1 Byte Rx or Tx configuration index 1 Byte Register address within the RF configuration 4 Bytes value to be written into the register.
[in] | bRfConfigurationSize | Size of pRfConfiguration. Must be a multiple of 6, maximum value is 252.

§ phhalHw_Pn5180_Instr_RetrieveRfConfigurationSize()

phStatus_t phhalHw_Pn5180_Instr_RetrieveRfConfigurationSize | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint8_t | bRfConfiguration,
 |  | uint8_t * | pNumOfRegisters
 | ) |  |

Retrieve the number of register-value pairs of the RF configuration.

This function is used to retrieve the size (number of registers) of a given RF configuration.

Returns
Status Code
Return values
PH_ERR_SUCCESS | RF configuration size retrieved.
PH_ERR_INVALID_PARAMETER | bRfConfiguration out of range or pNumOfRegisters is NULL.
Parameters
[in] | pDataParams | DataParams to this layer.
[in] | bRfConfiguration | Rf Tx or Rx configuration index to be used.
[out] | pNumOfRegisters | Number of registers (register-value pairs) within given Rf configuration.

§ phhalHw_Pn5180_Instr_RetrieveRfConfiguration()

phStatus_t phhalHw_Pn5180_Instr_RetrieveRfConfiguration | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint8_t | bRfConfiguration,
 |  | uint8_t ** | ppRfConfiguration,
 |  | uint8_t | bNumOfRegisters
 | ) |  |

Retrieve the RF configuration.

This function is used to read out an RF configuration. The register address-value-pairs are available in ppRfConfiguration. In order to know how many pairs are to be expected, first phhalHw_Pn5180_Instr_RetrieveRfConfigurationSize has to be executed.

Returns
Status Code
Return values
PH_ERR_SUCCESS | RF configuration successfully retrieved.
PH_ERR_INVALID_PARAMETER | bRfConfiguration out of range.
Parameters
[in] | pDataParams | DataParams to this layer.
[in] | bRfConfiguration | Rf Tx or Rx configuration index to be used.
[out] | ppRfConfiguration | Pointer to a buffer containing bNumOfRegisters configurations. One configuration is a set of 1 Byte Register address within the RF configuration 4 Bytes value to be written into the register.
[in] | bNumOfRegisters | Number of registers (register-value pairs) within given Rf configuration. To be retrieved upfront using phhalHw_Pn5180_Instr_RetrieveRfConfigurationSize.

§ phhalHw_Pn5180_Instr_RfOn()

phStatus_t phhalHw_Pn5180_Instr_RfOn | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint8_t | bRfOnConfig
 | ) |  |

Turns the RF field ON.

This function is used to turn the RF field ON. The configurations are available in ppRfOnConfig.

Returns
Status Code
Return values
PH_ERR_SUCCESS | RF Field turn ON sent to IC.
PH_ERR_INVALID_PARAMETER | bRfOnConfig out of range.
Parameters
[in] | pDataParams | DataParams to this layer.
[in] | bRfOnConfig | The ON Configuration.

§ phhalHw_Pn5180_Instr_RfOff()

phStatus_t phhalHw_Pn5180_Instr_RfOff ( phhalHw_Pn5180_DataParams_t * pDataParams )

Turns the RF field OFF.

This function is used to turn the RF field OFF.

Returns
Status Code
Return values
PH_ERR_SUCCESS | RF Field turn OFF sent to IC.
PH_ERR_INVALID_PARAMETER | PData params is null.
Parameters
[in] pDataParams DataParams to this layer.

§ phhalHw_Pn5180_Instr_ConfigureTestBusDigital()

phStatus_t phhalHw_Pn5180_Instr_ConfigureTestBusDigital | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint8_t | bTBSelect,
 |  | uint8_t * | pTBpos,
 |  | uint8_t | bTBposSize
 | ) |  |

Configures the Digital Test BUS.

This function is used to configure the Digital Test Bus.

Returns
Status Code
Return values
PH_ERR_SUCCESS | If the TestBus is configured successfully.
PH_ERR_INVALID_PARAMETER | PData params is null.
Parameters
[in] | pDataParams | DataParams to this layer.
[in] | bTBSelect | This value is written to the CLIF_TBCONTROL_REG.
[in] | pTBpos | 0xXY (X - Pad Location, Y - Testbus Bit position).
[in] | bTBposSize | pTBpos size 0 to 6 bytes.

§ phhalHw_Pn5180_Instr_ConfigureTestBusAnalog()

phStatus_t phhalHw_Pn5180_Instr_ConfigureTestBusAnalog | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint8_t | bDAC1Config,
 |  | uint8_t | bDAC0Config
 | ) |  |

Configures the Analog Test BUS.

This function is used to configure the Digital Test Bus.

Returns
Status Code
Return values
PH_ERR_SUCCESS | If the TestBus is configured successfully.
PH_ERR_INVALID_PARAMETER | PData params is null.
Parameters
[in] | pDataParams | DataParams to this layer.
[in] | bDAC1Config | define dac1 sources .
[in] | bDAC0Config | define dac0 sources .

§ phhalHw_Pn5180_Instr_GetHALVersion()

phStatus_t phhalHw_Pn5180_Instr_GetHALVersion ( uint16_t * pValue )

Returns the current version of HAL only for I&V reporting purposes.

This function returns the current version of HAL only for I&V reporting purposes.

Returns
Status Code
Return values
PH_ERR_SUCCESS when version number is returned.
Parameters
[out] pValue Version information.

§ phhalHw_Pn5180_Int_LPCD_SetConfig()

phStatus_t phhalHw_Pn5180_Int_LPCD_SetConfig | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t | wValue
 | ) |  |

Set config for LFCD which is IC specific.

This function can be used to set configuration parametrs of LPCD.

Returns
Status Code
Return values
PH_ERR_SUCCESS when successful.

§ phhalHw_Pn5180_Int_LPCD_GetConfig()

phStatus_t phhalHw_Pn5180_Int_LPCD_GetConfig | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t * | pValue
 | ) |  |

Get config for LFCD which is IC specific.

This function can be used to get configuration parameters of LPCD.

Returns
Status Code
Return values
PH_ERR_SUCCESS when successful.

§ phhalHw_Pn5180_Instr_SwitchModeNormal()

phStatus_t phhalHw_Pn5180_Instr_SwitchModeNormal ( phhalHw_Pn5180_DataParams_t * pDataParams )

Switch to Normal mode.

This function is used to put PN5180 into Normal mode.

Returns
Status Code
Return values
PH_ERR_SUCCESS Instruction successfully executed.


NXP NFC Reader Library: Internal

Macros | Functions
Internal
Hardware Abstraction Layer » component : Pn5180

Pn5180 Int functions. More...

Collaboration diagram for Internal:

Macros

#define | TIMER_FREQ 13.56
Pn5180 clk frequency. More...
#define | TMR_RELOAD_VALUE_MASK (0x000FFFFFUL)
The reload mask for the timer, also the maximum value that can be loaded into the timer reload register. More...
#define | PHHAL_HW_PN5180_MAX_FREQ 13560000
Pn5180 clk Maximum frequency = 13.56 MHz. More...
#define | PHHAL_HW_PN5180_MIN_FREQ 53000
Pn5180 clk Minimum frequency = 53 KHz. More...
#define | PHHAL_HW_PN5180_MAX_TIME_DELAY_MS 19784
Pn5180 Maximum Time Delay in milli second = 19.78443396226. More...
#define | PHHAL_HW_PN5180_MIN_TIME_DELAY_US 1
Pn5180 Minimum Time Delay in micro second = 0.00001886792. More...
#define | PHHAL_HW_PN5180_CONVERSION_MS_SEC 1000
MilliSec to Sec (In denominator for calculation purpose) –> 1000. More...
#define | PHHAL_HW_PN5180_CONVERSION_US_SEC 1000000
MicroSec to Sec (In denominator for calculation purpose) –> 1000000. More...
#define | PHHAL_HW_PN5180_I14443_ADD_DELAY_US 15
Additional digital timeout delay for ISO14443. More...
#define | PHHAL_HW_PN5180_I15693_ADD_DELAY_US 120
Additional digital timeout delay for ISO15693. More...
#define | PHHAL_HW_CHECK_IRQ_PIN_MASK 0x01U
Mask to Check for the IRQ PIN instead of polling for Status.
#define | PHHAL_HW_DISABLE_IRQ_CLEAR_MASK 0x80U
Mask to Disable the Clear of IRQ During the Wait for IRQ.

Functions

phStatus_t | phhalHw_Pn5180_GetRxBuffer (phhalHw_Pn5180_DataParams_t *pDataParams, uint8_t bIsExchange, uint8_t **pRxBuffer, uint16_t *pRxBufferLen, uint16_t *pRxBufferSize)
Returns the RxBuffer pointer, length and size. More...
phStatus_t | phhalHw_Pn5180_GetTxBuffer (phhalHw_Pn5180_DataParams_t *pDataParams, uint8_t bIsExchange, uint8_t **pTxBuffer, uint16_t *pTxBufferLen, uint16_t *pTxBufferSize)
Returns the TxBuffer pointer, length and size. More...
phStatus_t | phhalHw_Pn5180_SetConfig_Int (phhalHw_Pn5180_DataParams_t *pDataParams, uint16_t wConfig, uint16_t wValue)
Internal set config function. More...
phStatus_t | phhalHw_Pn5180_ReadData (phhalHw_Pn5180_DataParams_t *pDataParams, uint8_t **pData, uint16_t *pBytesRead)
Reads the data from the h/w buffer. More...
phStatus_t | phhalHw_Pn5180_TimerStart (phhalHw_Pn5180_DataParams_t *pDataParams, uint8_t bTimer, uint32_t dwStartCond, uint32_t dwStopCond, uint32_t wPrescaler, uint32_t dwLoadValue)
Generic timer routine. More...
phStatus_t | phhalHw_Pn5180_SetCardMode (phhalHw_Pn5180_DataParams_t *pDataParams, uint16_t wTxDataRate, uint16_t wRxDataRate, uint16_t wSubcarrier)
Apply card mode register settings (Tx and Rx Data Rate) according to given parameters. More...
phStatus_t | phhalHw_Pn5180_SetTmo (phhalHw_Pn5180_DataParams_t *pDataParams, uint16_t wTimeout, uint8_t bUnit)
Starts the timer as part of the time out behaviour. More...
phStatus_t | phhalHw_Pn5180_Int_Wait (phhalHw_Pn5180_DataParams_t *pDataParams, uint32_t dwLoadValue, uint32_t wPrescaler)
Internal wait function. More...
phStatus_t | phhalHw_Pn5180_Int_GetDigiDelay (phhalHw_Pn5180_DataParams_t *pDataParams, uint8_t bIsTimeout, uint16_t *pDelayUs)
Internal Get Digital Delay time function. More...
phStatus_t | phhalHw_Pn5180_Int_GetFdt (phhalHw_Pn5180_DataParams_t *pDataParams, phStatus_t wExchangeStatus, uint32_t *pTime)
Internal Get Frame Delay time function. More...
phStatus_t | phhalHw_Pn5180_Receive_Int (phhalHw_Pn5180_DataParams_t *pDataParams, uint32_t dwIrqWaitFor, uint8_t **ppRxBuffer, uint16_t *pRxLength, uint8_t bIrqEnable)
PN5180 implementation of common receive functionality. More...
phStatus_t | phhalHw_Pn5180_Int_IdleCommand (phhalHw_Pn5180_DataParams_t *pDataParams)
PN5180 implementation of loading of idle command. More...
phStatus_t | phhalHw_Pn5180_Int_LoadCommand (phhalHw_Pn5180_DataParams_t *pDataParams, uint8_t bCmd)
PN5180 implementation of loading a command. More...
phStatus_t | phhalHw_Pn5180_AutoSyncByte (phhalHw_Pn5180_DataParams_t *pDataParams)
PN5180 implementation of handling the F0 Sync byte automatically for P2P data exchange. More...

Rf Datarate Values

#define PHHAL_HW_RF_DATARATE_NO_CHANGE 0x00FFU
Data rate no change. More...

RF_STATUS_RF_ACTIVE_ERROR_CAUSE Values

#define RF_ACTIVE_ERROR_NO_EXT_FIELD_DETECTED 3

FSD Values

#define PHHAL_HW_PN5180_MAX_FSD 256

Detailed Description

Pn5180 Int functions.

Macro Definition Documentation

§ TIMER_FREQ

#define TIMER_FREQ 13.56

Pn5180 clk frequency.

§ TMR_RELOAD_VALUE_MASK

#define TMR_RELOAD_VALUE_MASK (0x000FFFFFUL)

The reload mask for the timer, also the maximum value that can be loaded into the timer reload register.

§ PHHAL_HW_PN5180_MAX_FREQ

#define PHHAL_HW_PN5180_MAX_FREQ 13560000

Pn5180 clk Maximum frequency = 13.56 MHz.

§ PHHAL_HW_PN5180_MIN_FREQ

#define PHHAL_HW_PN5180_MIN_FREQ 53000

Pn5180 clk Minimum frequency = 53 KHz.

§ PHHAL_HW_PN5180_MAX_TIME_DELAY_MS

#define PHHAL_HW_PN5180_MAX_TIME_DELAY_MS 19784

Pn5180 Maximum Time Delay in milli second = 19.78443396226.

§ PHHAL_HW_PN5180_MIN_TIME_DELAY_US

#define PHHAL_HW_PN5180_MIN_TIME_DELAY_US 1

Pn5180 Minimum Time Delay in micro second = 0.00001886792.

§ PHHAL_HW_PN5180_CONVERSION_MS_SEC

#define PHHAL_HW_PN5180_CONVERSION_MS_SEC 1000

MilliSec to Sec (In denominator for calculation purpose) –> 1000.

§ PHHAL_HW_PN5180_CONVERSION_US_SEC

#define PHHAL_HW_PN5180_CONVERSION_US_SEC 1000000

MicroSec to Sec (In denominator for calculation purpose) –> 1000000.

§ PHHAL_HW_PN5180_I14443_ADD_DELAY_US

#define PHHAL_HW_PN5180_I14443_ADD_DELAY_US 15

Additional digital timeout delay for ISO14443.

§ PHHAL_HW_PN5180_I15693_ADD_DELAY_US

#define PHHAL_HW_PN5180_I15693_ADD_DELAY_US 120

Additional digital timeout delay for ISO15693.

§ PHHAL_HW_RF_DATARATE_NO_CHANGE

#define PHHAL_HW_RF_DATARATE_NO_CHANGE 0x00FFU

Data rate no change.

Function Documentation

§ phhalHw_Pn5180_GetRxBuffer()

phStatus_t phhalHw_Pn5180_GetRxBuffer | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint8_t | bIsExchange,
 |  | uint8_t ** | pRxBuffer,
 |  | uint16_t * | pRxBufferLen,
 |  | uint16_t * | pRxBufferSize
 | ) |  |

Returns the RxBuffer pointer, length and size.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | DatParams to this layer.
[in] | bIsExchange | Exchange option specifier.
[out] | pRxBuffer | Pointer to HAL RX buffer.
[out] | pRxBufferLen | Length of the buffer.
[out] | pRxBufferSize | Size of the buffer.

§ phhalHw_Pn5180_GetTxBuffer()

phStatus_t phhalHw_Pn5180_GetTxBuffer | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint8_t | bIsExchange,
 |  | uint8_t ** | pTxBuffer,
 |  | uint16_t * | pTxBufferLen,
 |  | uint16_t * | pTxBufferSize
 | ) |  |

Returns the TxBuffer pointer, length and size.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | DatParams to this layer.
[in] | bIsExchange | Exchange option specifier.
[out] | pTxBuffer | Pointer to HAL TX buffer.
[out] | pTxBufferLen | Length of the buffer.
[out] | pTxBufferSize | Size of the buffer.

§ phhalHw_Pn5180_SetConfig_Int()

phStatus_t phhalHw_Pn5180_SetConfig_Int | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t | wValue
 | ) |  |

Internal set config function.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_UNSUPPORTED_PARAMETER | Configuration is not supported or invalid.
PH_ERR_INVALID_PARAMETER | Parameter value is invalid.
PH_ERR_PARAMETER_OVERFLOW | Setting the parameter value would lead to an overflow.
Parameters
[in] | pDataParams | DatParams to this layer.
[in] | wConfig | SetConfig option.
[in] | wValue | SetConfig value.

§ phhalHw_Pn5180_ReadData()

phStatus_t phhalHw_Pn5180_ReadData | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint8_t ** | pData,
 |  | uint16_t * | pBytesRead
 | ) |  |

Reads the data from the h/w buffer.

Parameters
[in] | pDataParams | DatParams to this layer.
[out] | pData | Data read from the h/w FIFO.
[out] | pBytesRead | Number of bytes read.

§ phhalHw_Pn5180_TimerStart()

phStatus_t phhalHw_Pn5180_TimerStart | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint8_t | bTimer,
 |  | uint32_t | dwStartCond,
 |  | uint32_t | dwStopCond,
 |  | uint32_t | wPrescaler,
 |  | uint32_t | dwLoadValue
 | ) |  |

Generic timer routine.

Parameters
[in] | pDataParams | DatParams to this layer.
[in] | bTimer | Timer1/2/3 to be used.
[in] | dwStartCond | Stop condition(s) for timer.
[in] | dwStopCond | Start condition(s) for timer.
[in] | wPrescaler | Prescalar to be used.
[in] | dwLoadValue | Value to be loaded to the timer count.

§ phhalHw_Pn5180_SetCardMode()

phStatus_t phhalHw_Pn5180_SetCardMode | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint16_t | wTxDataRate,
 |  | uint16_t | wRxDataRate,
 |  | uint16_t | wSubcarrier
 | ) |  |

Apply card mode register settings (Tx and Rx Data Rate) according to given parameters.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | DatParams to this layer.
[in] | wTxDataRate | TX data rate to be used.
[in] | wRxDataRate | RX data rate to be used.
[in] | wSubcarrier | Sub carrier to be used.

§ phhalHw_Pn5180_SetTmo()

phStatus_t phhalHw_Pn5180_SetTmo | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint16_t | wTimeout,
 |  | uint8_t | bUnit
 | ) |  |

Starts the timer as part of the time out behaviour.

Note
uses timer 1
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | DatParams to this layer.
[in] | wTimeout | Time out period.
[in] | bUnit | The unit unit used for specifying the delay.

§ phhalHw_Pn5180_Int_Wait()

phStatus_t phhalHw_Pn5180_Int_Wait | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint32_t | dwLoadValue,
 |  | uint32_t | wPrescaler
 | ) |  |

Internal wait function.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | DatParams to this layer.
[in] | dwLoadValue | the load count.
[in] | wPrescaler | Prescalar for the timer.

§ phhalHw_Pn5180_Int_GetDigiDelay()

phStatus_t phhalHw_Pn5180_Int_GetDigiDelay | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint8_t | bIsTimeout,
 |  | uint16_t * | pDelayUs
 | ) |  |

Internal Get Digital Delay time function.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | DatParams to this layer.
[in] | bIsTimeout | Timeout status.
[out] | pDelayUs | Delay time.

§ phhalHw_Pn5180_Int_GetFdt()

phStatus_t phhalHw_Pn5180_Int_GetFdt | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | phStatus_t | wExchangeStatus,
 |  | uint32_t * | pTime
 | ) |  |

Internal Get Frame Delay time function.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | DatParams to this layer.
[in] | wExchangeStatus | Exchange status.
[out] | pTime | Timeout value.

§ phhalHw_Pn5180_Receive_Int()

phStatus_t phhalHw_Pn5180_Receive_Int | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint32_t | dwIrqWaitFor,
 |  | uint8_t ** | ppRxBuffer,
 |  | uint16_t * | pRxLength,
 |  | uint8_t | bIrqEnable
 | ) |  |

PN5180 implementation of common receive functionality.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | DatParams to this layer.
[in] | dwIrqWaitFor | Irqs to wait for.
[out] | ppRxBuffer | Rx buffer.
[out] | pRxLength | received length.
[in] | bIrqEnable | enable IRQs.

§ phhalHw_Pn5180_Int_IdleCommand()

phStatus_t phhalHw_Pn5180_Int_IdleCommand ( phhalHw_Pn5180_DataParams_t * pDataParams )

PN5180 implementation of loading of idle command.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] pDataParams DatParams to this layer.

§ phhalHw_Pn5180_Int_LoadCommand()

phStatus_t phhalHw_Pn5180_Int_LoadCommand | ( | phhalHw_Pn5180_DataParams_t * | pDataParams,
 |  | uint8_t | bCmd
 | ) |  |

PN5180 implementation of loading a command.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | DatParams to this layer.
[in] | bCmd | CMD to load

§ phhalHw_Pn5180_AutoSyncByte()

phStatus_t phhalHw_Pn5180_AutoSyncByte ( phhalHw_Pn5180_DataParams_t * pDataParams )

PN5180 implementation of handling the F0 Sync byte automatically for P2P data exchange.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.


NXP NFC Reader Library: phhalHw_Pn5180_DataParams_t Struct Reference

Data Fields
phhalHw_Pn5180_DataParams_t Struct Reference
Hardware Abstraction Layer » component : Pn5180

PN5180 HAL component. More...

Data Fields

uint16_t wId
Layer ID for this component, NEVER MODIFY!
uint8_t bBalConnectionType
Type of the underlying BAL connection. More...
uint8_t bRfca
Flag indicates whether RFCA is to be enabled or not (PH_ON or PH_OFF, default - PH_ON). More...
void * | pBalDataParams
Points to the underlaying layer over which HAL is going to communicate.
void * | pKeyStoreDataParams
Pointer to the parameter structure of the keyStore layer. More...
uint8_t * pTxBuffer
Pointer to global transmit buffer used by the Exchange() function. More...
uint16_t wTxBufSize
Size of the global transmit buffer. More...
uint16_t wTxBufLen
Number of valid bytes within the transmit buffer. More...
uint8_t * pRxBuffer
Pointer to global receive buffer used by the Exchange() function. More...
uint16_t wRxBufSize
Size of the global receive buffer. More...
uint16_t wRxBufLen
Number of valid bytes within the receive buffer. More...
uint16_t wTxBufStartPos
Starting position within the global transmit buffer (used if TxBuffer equals RxBuffer). More...
uint16_t wRxBufStartPos
Starting position within the global receive buffer. More...
uint32_t dwTimingUs
Current timing value. More...
uint32_t dwTxWaitMs
TxWaitMs shadow.
uint16_t wTimingMode
Current timing measurement mode. More...
uint16_t dwFdtPc
Current timing value backup for PC.
uint16_t wFieldOffTime
Field-Off-Time in milliseconds. More...
uint16_t wFieldRecoveryTime
Field-Recovery-Time in milliseconds. More...
uint16_t wAdditionalInfo
Storage for additional error information. More...
uint16_t wTargetMode
Used to indicate the mode and speed at which Target is activated. More...
uint16_t wWakeupCounterInMs
[In] Used value for wakeup counter in msecs, i.e. More...
uint16_t wLpcdReference
Reference valu read from AGC_REF_CONFIG (check_card) register. More...
uint8_t bLpcdMode
LPCD Mode options. More...
uint8_t bSymbolStart
Preamble of a frame. More...
uint8_t bSymbolEnd
Trailer symbol of a frame. More...
uint8_t bRfResetAfterTo
Storage for PHHAL_HW_CONFIG_RFRESET_ON_TIMEOUT setting. More...
uint8_t bActiveMode
Flag indicates whether Active mode is activated or not. More...
uint8_t bJewelActivated
Set the PH_ON/PH_OFF Jewel exchange mode. More...
uint8_t bNfcipMode
Enable/Disable to handle Start Byte at 106kbps in NFCIP-1 mode. More...
uint8_t bCardType
Type of card for which the hal is configured for. More...
uint8_t bTimeoutUnit
Unit of current timeout value (either PHHAL_HW_TIME_MICROSECONDS or PHHAL_HW_TIME_MILLISECONDS). More...
uint8_t bRxMultiple
Flag indicates whether RX multiple is to be enabled or not. More...
uint8_t bSkipSend
Flag indicates whether Skip send should be performed or not in Active Target Mode. More...
uint8_t bTransmited
Flag indicates whether the data is transmitted.
uint8_t bMfcCryptoEnabled
Flag indicates whether the MFC Crypto is enabled or not. More...
uint8_t bCardMode
Flag indicates whether the SYSTEM_CONFIG_AUTOCOLL_STATE_A_MASK bit is set or not. More...
ppRFCallBck_t pRFISRCallback
Application RF callback called by ISR handler. More...
uint8_t bOpeMode
Used to differentiate between EMVCO or Normal Mode of this layer.
uint8_t bEmdFlag
Flag to Indicate Enable EMD Suppression.
uint16_t wCfgShadow [PHHAL_HW_PN5180_SHADOW_COUNT]
Configuration shadow; Stores configuration for current cardtype. More...
phOsal_EventObj_t HwEventObj
Handle for Event. More...

Detailed Description

PN5180 HAL component.

This structure holds all the data that are required for the PN5180 HAL operations.

Field Documentation

§ bBalConnectionType

uint8_t phhalHw_Pn5180_DataParams_t::bBalConnectionType

Type of the underlying BAL connection.

Refer to PHHAL_HW_CONFIG_BAL_CONNECTION.

§ bRfca

uint8_t phhalHw_Pn5180_DataParams_t::bRfca

Flag indicates whether RFCA is to be enabled or not (PH_ON or PH_OFF, default - PH_ON).

§ pKeyStoreDataParams

void* phhalHw_Pn5180_DataParams_t::pKeyStoreDataParams

Pointer to the parameter structure of the keyStore layer.

§ pTxBuffer

uint8_t* phhalHw_Pn5180_DataParams_t::pTxBuffer

Pointer to global transmit buffer used by the Exchange() function.

§ wTxBufSize

uint16_t phhalHw_Pn5180_DataParams_t::wTxBufSize

Size of the global transmit buffer.

§ wTxBufLen

uint16_t phhalHw_Pn5180_DataParams_t::wTxBufLen

Number of valid bytes within the transmit buffer.

§ pRxBuffer

uint8_t* phhalHw_Pn5180_DataParams_t::pRxBuffer

Pointer to global receive buffer used by the Exchange() function.

§ wRxBufSize

uint16_t phhalHw_Pn5180_DataParams_t::wRxBufSize

Size of the global receive buffer.

§ wRxBufLen

uint16_t phhalHw_Pn5180_DataParams_t::wRxBufLen

Number of valid bytes within the receive buffer.

§ wTxBufStartPos

uint16_t phhalHw_Pn5180_DataParams_t::wTxBufStartPos

Starting position within the global transmit buffer (used if TxBuffer equals RxBuffer).

§ wRxBufStartPos

uint16_t phhalHw_Pn5180_DataParams_t::wRxBufStartPos

Starting position within the global receive buffer.

§ dwTimingUs

uint32_t phhalHw_Pn5180_DataParams_t::dwTimingUs

Current timing value.

§ wTimingMode

uint16_t phhalHw_Pn5180_DataParams_t::wTimingMode

Current timing measurement mode.

§ wFieldOffTime

uint16_t phhalHw_Pn5180_DataParams_t::wFieldOffTime

Field-Off-Time in milliseconds.

§ wFieldRecoveryTime

uint16_t phhalHw_Pn5180_DataParams_t::wFieldRecoveryTime

Field-Recovery-Time in milliseconds.

§ wAdditionalInfo

uint16_t phhalHw_Pn5180_DataParams_t::wAdditionalInfo

Storage for additional error information.

§ wTargetMode

uint16_t phhalHw_Pn5180_DataParams_t::wTargetMode

Used to indicate the mode and speed at which Target is activated.

Lower Byte indicates Speed and Higher Byte indicates Framing.

§ wWakeupCounterInMs

uint16_t phhalHw_Pn5180_DataParams_t::wWakeupCounterInMs

[In] Used value for wakeup counter in msecs, i.e.

after this amount of time PN5180 wakes up from standby. Maximum value is 2690.

§ wLpcdReference

uint16_t phhalHw_Pn5180_DataParams_t::wLpcdReference

Reference valu read from AGC_REF_CONFIG (check_card) register.

§ bLpcdMode

uint8_t phhalHw_Pn5180_DataParams_t::bLpcdMode

LPCD Mode options.

§ bSymbolStart

uint8_t phhalHw_Pn5180_DataParams_t::bSymbolStart

Preamble of a frame.

§ bSymbolEnd

uint8_t phhalHw_Pn5180_DataParams_t::bSymbolEnd

Trailer symbol of a frame.

§ bRfResetAfterTo

uint8_t phhalHw_Pn5180_DataParams_t::bRfResetAfterTo

Storage for PHHAL_HW_CONFIG_RFRESET_ON_TIMEOUT setting.

§ bActiveMode

uint8_t phhalHw_Pn5180_DataParams_t::bActiveMode

Flag indicates whether Active mode is activated or not.

§ bJewelActivated

uint8_t phhalHw_Pn5180_DataParams_t::bJewelActivated

Set the PH_ON/PH_OFF Jewel exchange mode.

§ bNfcipMode

uint8_t phhalHw_Pn5180_DataParams_t::bNfcipMode

Enable/Disable to handle Start Byte at 106kbps in NFCIP-1 mode.

§ bCardType

uint8_t phhalHw_Pn5180_DataParams_t::bCardType

Type of card for which the hal is configured for.

§ bTimeoutUnit

uint8_t phhalHw_Pn5180_DataParams_t::bTimeoutUnit

Unit of current timeout value (either PHHAL_HW_TIME_MICROSECONDS or PHHAL_HW_TIME_MILLISECONDS).

§ bRxMultiple

uint8_t phhalHw_Pn5180_DataParams_t::bRxMultiple

Flag indicates whether RX multiple is to be enabled or not.

§ bSkipSend

uint8_t phhalHw_Pn5180_DataParams_t::bSkipSend

Flag indicates whether Skip send should be performed or not in Active Target Mode.

§ bMfcCryptoEnabled

uint8_t phhalHw_Pn5180_DataParams_t::bMfcCryptoEnabled

Flag indicates whether the MFC Crypto is enabled or not.

§ bCardMode

uint8_t phhalHw_Pn5180_DataParams_t::bCardMode

Flag indicates whether the SYSTEM_CONFIG_AUTOCOLL_STATE_A_MASK bit is set or not.

§ pRFISRCallback

ppRFCallBck_t phhalHw_Pn5180_DataParams_t::pRFISRCallback

Application RF callback called by ISR handler.

§ wCfgShadow

uint16_t phhalHw_Pn5180_DataParams_t::wCfgShadow[PHHAL_HW_PN5180_SHADOW_COUNT]

Configuration shadow; Stores configuration for current cardtype.

§ HwEventObj

phOsal_EventObj_t phhalHw_Pn5180_DataParams_t::HwEventObj

Handle for Event.

The documentation for this struct was generated from the following file:
  • phhalHw.h


NXP NFC Reader Library: phhalHw_Nfc_Ic_DataParams_t Struct Reference

phhalHw_Nfc_Ic_DataParams_t Struct Reference
Hardware Abstraction Layer

HAL parameter structure. More...

Detailed Description

HAL parameter structure.

The documentation for this struct was generated from the following file:
  • phhalHw.h


NXP NFC Reader Library: Protocol Abstraction Layer

Modules
Protocol Abstraction Layer

Contains Hardware-Independent implementations of various contactless protocols. More...

Collaboration diagram for Protocol Abstraction Layer:

Modules

ISO/IEC 14443-3A
These Components implement the ISO/IEC 14443-3 Type-A contactless protocol.
ISO/IEC 14443-3B
These Components implement the ISO/IEC 14443-3 Type-B contactless protocol.
ISO/IEC 14443-4A
These Components configure PHPAL_I14443P4A.
ISO/IEC 14443-4
These Components implement the ISO/IEC 14443-4:2008(E) contactless protocol.
MIFARE(R)
These Components implement the MIFARE(R) Classic, MIFARE(R) Ultralight, MIFARE(R) DESFire and MIFARE(R) Plus products.
ISO/IEC 14443-4mC
This component implements the PICC side of ISO/IEC 14443-4 Protocol.
Felica
These Components implement the Felica (contactless) protocol.
ISO/IEC 15693 / ISO/IEC 18000-3M1
These component implements the protocol layer (activation) commands of ISO/IEC 15693 (ISO/IEC 18000-3M1) vicinity protocol.
ISO/IEC 18000-3 Mode3
These Components implement the ISO/IEC 18000-3 Mode3 support.
ISO/IEC 18092 Mode Initiator
These Components implement the ISO/IEC ISO18092 contact-less protocol.
ISO/IEC 18092 Mode Target
This Component implements the ISO/IEC ISO18092 Target mode contact-less protocol.

Detailed Description

Contains Hardware-Independent implementations of various contactless protocols.


NXP NFC Reader Library: ISO/IEC 14443-3A

Modules | Macros | Functions
ISO/IEC 14443-3A
Protocol Abstraction Layer

These Components implement the ISO/IEC 14443-3 Type-A contactless protocol. More...

Collaboration diagram for ISO/IEC 14443-3A:

Modules

Component : Software

Macros

#define | PHPAL_I14443P3A_CASCADE_LEVEL_1 0x93
Cascade Level 1 code for ISO14443-3A anticollision/select command. More...
#define | PHPAL_I14443P3A_CASCADE_LEVEL_2 0x95
Cascade Level 2 code for ISO14443-3A anticollision/select command. More...
#define | PHPAL_I14443P3A_CASCADE_LEVEL_3 0x97
Cascade Level 3 code for ISO14443-3A anticollision/select command. More...
#define | PHPAL_I14443P3A_TIMEOUT_DEFAULT_MS 10
Timeout after card selection in milliseconds. More...

Functions

phStatus_t | phpalI14443p3a_SetConfig (void *pDataParams, uint16_t wConfig, uint16_t wValue)
Set configuration parameter. More...
phStatus_t | phpalI14443p3a_GetConfig (void *pDataParams, uint16_t wConfig, uint16_t *pValue)
Get configuration parameter. More...
phStatus_t | phpalI14443p3a_RequestA (void *pDataParams, uint8_t *pAtqa)
Perform a ISO14443-3A Request command. More...
phStatus_t | phpalI14443p3a_WakeUpA (void *pDataParams, uint8_t *pAtqa)
Perform a ISO14443-3A Wakeup command. More...
phStatus_t | phpalI14443p3a_HaltA (void *pDataParams)
Perform a ISO14443-3A Halt command. More...
phStatus_t | phpalI14443p3a_Anticollision (void *pDataParams, uint8_t bCascadeLevel, uint8_t *pUidIn, uint8_t bNvbUidIn, uint8_t *pUidOut, uint8_t *pNvbUidOut)
Perform a ISO14443-3A Anticollision or Select command. More...
phStatus_t | phpalI14443p3a_Select (void *pDataParams, uint8_t bCascadeLevel, uint8_t *pUidIn, uint8_t *pSak)
Perform a ISO14443-3A Select command. More...
phStatus_t | phpalI14443p3a_ActivateCard (void *pDataParams, uint8_t *pUidIn, uint8_t bLenUidIn, uint8_t *pUidOut, uint8_t *pLenUidOut, uint8_t *pSak, uint8_t *pMoreCardsAvailable)
Perform ISO14443-3A ReqA or WupA and Anticollision/Select commands for all cascade levels. More...
phStatus_t | phpalI14443p3a_Exchange (void *pDataParams, uint16_t wOption, uint8_t *pTxBuffer, uint16_t wTxLength, uint8_t **ppRxBuffer, uint16_t *pRxLength)
Perform ISO14443-3A Data Exchange with Picc. More...
phStatus_t | phpalI14443p3a_GetSerialNo (void *pDataParams, uint8_t *pUidOut, uint8_t *pLenUidOut)
Retrieve the serial number. More...

Poll Command

#define | PHPAL_I14443P3A_USE_REQA 0x00U
Indicate REQA command to be used for Type A Polling.
#define | PHPAL_I14443P3A_USE_WUPA 0x01U
Indicate WakeupA command to be used for Type A Polling.

Configuration

#define | PHPAL_I14443P3A_CONFIG_OPE_MODE 0x001U
Configure Operation Mode for this Layer. More...
#define | PHPAL_I14443P3A_CONFIG_POLL_CMD 0x002U
Configure which command to be used for Type A Polling. More...
#define | PHPAL_I14443P3A_CONFIG_TIMEOUT_VALUE_US 0x003U
Configure timeout in microseconds. More...

Detailed Description

These Components implement the ISO/IEC 14443-3 Type-A contactless protocol.

Macro Definition Documentation

§ PHPAL_I14443P3A_CASCADE_LEVEL_1

#define PHPAL_I14443P3A_CASCADE_LEVEL_1 0x93

Cascade Level 1 code for ISO14443-3A anticollision/select command.

§ PHPAL_I14443P3A_CASCADE_LEVEL_2

#define PHPAL_I14443P3A_CASCADE_LEVEL_2 0x95

Cascade Level 2 code for ISO14443-3A anticollision/select command.

§ PHPAL_I14443P3A_CASCADE_LEVEL_3

#define PHPAL_I14443P3A_CASCADE_LEVEL_3 0x97

Cascade Level 3 code for ISO14443-3A anticollision/select command.

§ PHPAL_I14443P3A_TIMEOUT_DEFAULT_MS

#define PHPAL_I14443P3A_TIMEOUT_DEFAULT_MS 10

Timeout after card selection in milliseconds.

§ PHPAL_I14443P3A_CONFIG_OPE_MODE

#define PHPAL_I14443P3A_CONFIG_OPE_MODE 0x001U

Configure Operation Mode for this Layer.

Possible values are
RD_LIB_MODE_EMVCO,
RD_LIB_MODE_NFC,
RD_LIB_MODE_ISO,
Default value is RD_LIB_MODE_NFC.

§ PHPAL_I14443P3A_CONFIG_POLL_CMD

#define PHPAL_I14443P3A_CONFIG_POLL_CMD 0x002U

Configure which command to be used for Type A Polling.

Possible values are
PHPAL_I14443P3A_USE_REQA,
PHPAL_I14443P3A_USE_WUPA,
Default value is PHPAL_I14443P3A_USE_REQA.

§ PHPAL_I14443P3A_CONFIG_TIMEOUT_VALUE_US

#define PHPAL_I14443P3A_CONFIG_TIMEOUT_VALUE_US 0x003U

Configure timeout in microseconds.

This shall be used by AL layers to set timeout for commands.

Function Documentation

§ phpalI14443p3a_SetConfig()

phStatus_t phpalI14443p3a_SetConfig | ( | void * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t | wValue
 | ) |  |

Set configuration parameter.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | wConfig | Configuration Identifier.
[in] | wValue | Configuration Value.

§ phpalI14443p3a_GetConfig()

phStatus_t phpalI14443p3a_GetConfig | ( | void * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t * | pValue
 | ) |  |

Get configuration parameter.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | wConfig | Configuration Identifier.
[out] | pValue | Configuration Value.

§ phpalI14443p3a_RequestA()

phStatus_t phpalI14443p3a_RequestA | ( | void * | pDataParams,
 |  | uint8_t * | pAtqa
 | ) |  |

Perform a ISO14443-3A Request command.

Note: The "Request Guard Time" (see 6.2.2, ISO/IEC 14443-3:2009(E)) is mandatory and is neither implemented here nor implemented in every Hardware Abstraction Layer layer.
Make sure that either the used HAL or the used application does comply to this rule.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[out] | pAtqa | AtqA; uint8_t[2].

§ phpalI14443p3a_WakeUpA()

phStatus_t phpalI14443p3a_WakeUpA | ( | void * | pDataParams,
 |  | uint8_t * | pAtqa
 | ) |  |

Perform a ISO14443-3A Wakeup command.

Note: The "Request Guard Time" (see 6.2.2, ISO/IEC 14443-3:2009(E)) is mandatory and is neither implemented here nor implemented in every Hardware Abstraction Layer layer.
Make sure that either the used HAL or the used application does comply to this rule.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[out] | pAtqa | AtqA; uint8_t[2].

§ phpalI14443p3a_HaltA()

phStatus_t phpalI14443p3a_HaltA ( void * pDataParams )

Perform a ISO14443-3A Halt command.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
Other | Depending on implementation and underlying component.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phpalI14443p3a_Anticollision()

phStatus_t phpalI14443p3a_Anticollision | ( | void * | pDataParams,
 |  | uint8_t | bCascadeLevel,
 |  | uint8_t * | pUidIn,
 |  | uint8_t | bNvbUidIn,
 |  | uint8_t * | pUidOut,
 |  | uint8_t * | pNvbUidOut
 | ) |  |

Perform a ISO14443-3A Anticollision or Select command.

bNvbUidIn != 0x40: Perform Anticollision command.
bNvbUidIn = 0x40: Perform Select command.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
PH_ERR_FRAMING_ERROR | Bcc invalid.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bCascadeLevel | cascade level code.
[in] | pUidIn | known Uid, can be NULL; uint8_t[0-4].
[in] | bNvbUidIn | number of valid bits of UidIn. MSB codes the valid bytes, LSB codes the valid bits.
[out] | pUidOut | complete Uid; uint8_t[4].
[out] | pNvbUidOut | number of valid bits of UidOut. MSB codes the valid bytes, LSB codes the valid bits.

§ phpalI14443p3a_Select()

phStatus_t phpalI14443p3a_Select | ( | void * | pDataParams,
 |  | uint8_t | bCascadeLevel,
 |  | uint8_t * | pUidIn,
 |  | uint8_t * | pSak
 | ) |  |

Perform a ISO14443-3A Select command.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bCascadeLevel | cascade level code.
[in] | pUidIn | Uid; uint8_t[4].
[out] | pSak | Select Acknowledge; uint8_t.

§ phpalI14443p3a_ActivateCard()

phStatus_t phpalI14443p3a_ActivateCard | ( | void * | pDataParams,
 |  | uint8_t * | pUidIn,
 |  | uint8_t | bLenUidIn,
 |  | uint8_t * | pUidOut,
 |  | uint8_t * | pLenUidOut,
 |  | uint8_t * | pSak,
 |  | uint8_t * | pMoreCardsAvailable
 | ) |  |

Perform ISO14443-3A ReqA or WupA and Anticollision/Select commands for all cascade levels.

If bLenUidIn is '0' –> CardUid not given, a ReqA is performed. If CardUid is given, a WupA is performed.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
PH_ERR_FRAMING_ERROR | Bcc invalid.
PH_ERR_LENGTH_ERROR | Given pUidIn is not complete.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pUidIn | known Uid, can be NULL if bLenUidIn is 0; uint8_t[4/7/10].
[in] | bLenUidIn | Length of known Uid; 0/4/7/10.
[out] | pUidOut | complete Uid; uint8_t[10].
[out] | pLenUidOut | Length of Uid; 4/7/10.
[out] | pSak | Select Acknowledge; uint8_t.
[out] | pMoreCardsAvailable | Whether there are more cards in the field or not; uint8_t.

§ phpalI14443p3a_Exchange()

phStatus_t phpalI14443p3a_Exchange | ( | void * | pDataParams,
 |  | uint16_t | wOption,
 |  | uint8_t * | pTxBuffer,
 |  | uint16_t | wTxLength,
 |  | uint8_t ** | ppRxBuffer,
 |  | uint16_t * | pRxLength
 | ) |  |

Perform ISO14443-3A Data Exchange with Picc.

wOption can be one of:

  • PH_EXCHANGE_DEFAULT
  • PH_EXCHANGE_BUFFER_FIRST
  • PH_EXCHANGE_BUFFER_CONT
  • PH_EXCHANGE_BUFFER_LAST

Alternatively, the following bits can be combined:

  • PH_EXCHANGE_BUFFERED_BIT
  • PH_EXCHANGE_LEAVE_BUFFER_BIT
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wOption | Option parameter.
[in] | pTxBuffer | Data to transmit.
[in] | wTxLength | Length of data to transmit.
[out] | ppRxBuffer | Pointer to received data.
[out] | pRxLength | number of received data bytes.

§ phpalI14443p3a_GetSerialNo()

phStatus_t phpalI14443p3a_GetSerialNo | ( | void * | pDataParams,
 |  | uint8_t * | pUidOut,
 |  | uint8_t * | pLenUidOut
 | ) |  |

Retrieve the serial number.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_USE_CONDITION | No Serial number available at the moment.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[out] | pUidOut | Last Uid; uint8_t[10].
[out] | pLenUidOut | Length of Uid; 4/7/10.


NXP NFC Reader Library: Component : Software

Data Structures | Macros | Functions
Component : Software
Protocol Abstraction Layer » ISO/IEC 14443-3A
Collaboration diagram for Component : Software:

Data Structures

struct phpalI14443p3a_Sw_DataParams_t
Software PAL-ISO14443P3A parameter structure. More...

Macros

#define PHPAL_I14443P3A_SW_ID 0x01
ID for Software ISO14443-3A layer. More...

Functions

phStatus_t phpalI14443p3a_Sw_Init (phpalI14443p3a_Sw_DataParams_t *pDataParams, uint16_t wSizeOfDataParams, void *pHalDataParams)
Initialise this layer. More...

Detailed Description

Macro Definition Documentation

§ PHPAL_I14443P3A_SW_ID

#define PHPAL_I14443P3A_SW_ID 0x01

ID for Software ISO14443-3A layer.

Function Documentation

§ phpalI14443p3a_Sw_Init()

phStatus_t phpalI14443p3a_Sw_Init | ( | phpalI14443p3a_Sw_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams,
 |  | void * | pHalDataParams
 | ) |  |

Initialise this layer.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wSizeOfDataParams | Specifies the size of the data parameter structure.
[in] | pHalDataParams | Pointer to the parameter structure of the underlying layer.


NXP NFC Reader Library: phpalI14443p3a_Sw_DataParams_t Struct Reference

Data Fields
phpalI14443p3a_Sw_DataParams_t Struct Reference
Protocol Abstraction Layer » ISO/IEC 14443-3A » Component : Software

Software PAL-ISO14443P3A parameter structure. More...

Data Fields

uint16_t wId
Layer ID for this component, NEVER MODIFY!
void * | pHalDataParams
Pointer to the parameter structure of the underlying layer. More...
uint8_t | abUid [10]
Array holding the activated UID. More...
uint8_t bUidLength
Length of UID stored in abUid. More...
uint8_t bUidComplete
Whether the UID is complete (1) or not (0). More...
uint8_t bOpeMode
Operation mode. More...
uint8_t bPollCmd
Used to differentiate which command to send REQA or WakeUpA command for polling.

Detailed Description

Software PAL-ISO14443P3A parameter structure.

Field Documentation

§ pHalDataParams

void* phpalI14443p3a_Sw_DataParams_t::pHalDataParams

Pointer to the parameter structure of the underlying layer.

§ abUid

uint8_t phpalI14443p3a_Sw_DataParams_t::abUid[10]

Array holding the activated UID.

§ bUidLength

uint8_t phpalI14443p3a_Sw_DataParams_t::bUidLength

Length of UID stored in abUid.

§ bUidComplete

uint8_t phpalI14443p3a_Sw_DataParams_t::bUidComplete

Whether the UID is complete (1) or not (0).

§ bOpeMode

uint8_t phpalI14443p3a_Sw_DataParams_t::bOpeMode

Operation mode.

One of NFC, EMVCo, ISO.

The documentation for this struct was generated from the following file:
  • phpalI14443p3a.h


NXP NFC Reader Library: ISO/IEC 14443-3B

Modules | Functions
ISO/IEC 14443-3B
Protocol Abstraction Layer

These Components implement the ISO/IEC 14443-3 Type-B contactless protocol. More...

Collaboration diagram for ISO/IEC 14443-3B:

Modules

Component : Software

Functions

phStatus_t | phpalI14443p3b_SetConfig (void *pDataParams, uint16_t wConfig, uint16_t wValue)
Set configuration value. More...
phStatus_t | phpalI14443p3b_GetConfig (void *pDataParams, uint16_t wConfig, uint16_t *pValue)
Get configuration value. More...
phStatus_t | phpalI14443p3b_RequestB (void *pDataParams, uint8_t bNumSlots, uint8_t bAfi, uint8_t bExtAtqb, uint8_t *pAtqb, uint8_t *pAtqbLen)
Perform a ISO14443-3B Request command. More...
phStatus_t | phpalI14443p3b_WakeUpB (void *pDataParams, uint8_t bNumSlots, uint8_t bAfi, uint8_t bExtAtqb, uint8_t *pAtqb, uint8_t *pAtqbLen)
Perform a ISO14443-3B Wakeup command. More...
phStatus_t | phpalI14443p3b_SlotMarker (void *pDataParams, uint8_t bSlotNumber, uint8_t *pAtqb, uint8_t *pAtqbLen)
Perform a ISO14443-3B Slot-MARKER command. More...
phStatus_t | phpalI14443p3b_HaltB (void *pDataParams)
Perform a ISO14443-3B Halt command. More...
phStatus_t | phpalI14443p3b_Attrib (void *pDataParams, uint8_t *pAtqb, uint8_t bAtqbLen, uint8_t bFsdi, uint8_t bCid, uint8_t bDri, uint8_t bDsi, uint8_t *pMbli)
Perform a ISO14443-3B Attrib command. More...
phStatus_t | phpalI14443p3b_ActivateCard (void *pDataParams, uint8_t *pPupi, uint8_t bPupiLength, uint8_t bNumSlots, uint8_t bAfi, uint8_t bExtAtqb, uint8_t bFsdi, uint8_t bCid, uint8_t bDri, uint8_t bDsi, uint8_t *pAtqb, uint8_t *pAtqbLen, uint8_t *pMbli, uint8_t *pMoreCardsAvailable)
Perform ISO14443-3B ReqB or WupB and Anticollision/Select commands for all cascade levels. More...
phStatus_t | phpalI14443p3b_Exchange (void *pDataParams, uint16_t wOption, uint8_t *pTxBuffer, uint16_t wTxLength, uint8_t **ppRxBuffer, uint16_t *pRxLength)
Perform ISO14443-3B Data Exchange with Picc. More...
phStatus_t | phpalI14443p3b_GetSerialNo (void *pDataParams, uint8_t *pPupi)
Retrieve the serial number. More...
phStatus_t | phpalI14443p3b_SetSerialNo (void *pDataParams, uint8_t *pPupi)
This function will update PUPI in this layer's parameter structure. More...
phStatus_t | phpalI14443p3b_SetHigherLayerInf (void *pDataParams, uint8_t *pTxBuffer, uint16_t wTxLength, uint8_t *pRxBuffer, uint16_t wRxBufSize)
Set higher layer information. More...
phStatus_t | phpalI14443p3b_GetHigherLayerResp (void *pDataParams, uint8_t **ppRxBuffer, uint16_t *pRxLength)
Get higher layer response. More...
phStatus_t | phpalI14443p3b_GetProtocolParams (void *pDataParams, uint8_t *pCidEnabled, uint8_t *pCid, uint8_t *pNadSupported, uint8_t *pFwi, uint8_t *pFsdi, uint8_t *pFsci)
Retrieve the ISO14443-3B protocol parameters. More...

14443-3B constant definitions

#define PHPAL_I14443P3B_CONFIG_ATTRIB_PARAM1 0x0000U
Set or get the AttribB param1 byte. More...

Configuration

#define | PHPAL_I14443P3B_CONFIG_OPE_MODE 0x0001U
Configure Operation Mode for this Layer. More...
#define | PHPAL_I14443P3B_CONFIG_POLL_CMD 0x0002U
Configure which command to be used for Type B Polling. More...
#define | PHPAL_I14443P3B_CONFIG_ATTRIB_RETRY_COUNT 0x0003U
Configure retry count for ATTRIB command. More...

Poll Command

#define | PHPAL_I14443P3B_USE_REQB 0x00U
Indicate REQB command to be used for Type B Polling.
#define | PHPAL_I14443P3B_USE_WUPB 0x01U
Indicate WakeupB command to be used for Type B Polling.

DRI/DSI Values

#define | PHPAL_I14443P3B_DATARATE_106 0x00U
DRI/DSI value for 106 kBit/s.
#define | PHPAL_I14443P3B_DATARATE_212 0x01U
DRI/DSI value for 212 kBit/s.
#define | PHPAL_I14443P3B_DATARATE_424 0x02U
DRI/DSI value for 424 kBit/s.
#define | PHPAL_I14443P3B_DATARATE_848 0x03U
DRI/DSI value for 848 kBit/s.
#define | PHPAL_I14443P3B_DATARATE_FORCE 0x80U
Flag that forces the use of the given baud rates.

Attrib Command Retry Values

#define | PHPAL_I14443P3B_ATTRIB_RETRY_MAX 1
Maximum retry value of ATTRIB during transmission and timeout error. More...
#define | PHPAL_I14443P3B_ATTRIB_RETRY_MIN 0
Minimum retry value of ATTRIB during transmission and timeout error. More...

Detailed Description

These Components implement the ISO/IEC 14443-3 Type-B contactless protocol.

Note: The "Timing before the PCD SOF" (see 7.1.7, ISO/IEC 14443-3:2009(E)) is mandatory and is neither implemented here nor implemented in every Hardware Abstraction Layer layer.
Make sure that either the used HAL or the used application does comply to this rule.

Macro Definition Documentation

§ PHPAL_I14443P3B_CONFIG_ATTRIB_PARAM1

#define PHPAL_I14443P3B_CONFIG_ATTRIB_PARAM1 0x0000U

Set or get the AttribB param1 byte.

§ PHPAL_I14443P3B_CONFIG_OPE_MODE

#define PHPAL_I14443P3B_CONFIG_OPE_MODE 0x0001U

Configure Operation Mode for this Layer.

Possible values are
RD_LIB_MODE_EMVCO,
RD_LIB_MODE_NFC,
RD_LIB_MODE_ISO,
Default value is RD_LIB_MODE_NFC.

§ PHPAL_I14443P3B_CONFIG_POLL_CMD

#define PHPAL_I14443P3B_CONFIG_POLL_CMD 0x0002U

Configure which command to be used for Type B Polling.

Possible values are
PHPAL_I14443P3B_USE_WUPB,
PHPAL_I14443P3B_USE_REQB,
Default value is PHPAL_I14443P3B_USE_REQB.

§ PHPAL_I14443P3B_CONFIG_ATTRIB_RETRY_COUNT

#define PHPAL_I14443P3B_CONFIG_ATTRIB_RETRY_COUNT 0x0003U

Configure retry count for ATTRIB command.

Possible values are
PHPAL_I14443P3B_ATTRIB_RETRY_MIN,
PHPAL_I14443P3B_ATTRIB_RETRY_MAX,
Default value is PHPAL_I14443P3B_ATTRIB_RETRY_MAX.
For mode RD_LIB_MODE_EMVCO retry count should be 1.

§ PHPAL_I14443P3B_ATTRIB_RETRY_MAX

#define PHPAL_I14443P3B_ATTRIB_RETRY_MAX 1

Maximum retry value of ATTRIB during transmission and timeout error.

§ PHPAL_I14443P3B_ATTRIB_RETRY_MIN

#define PHPAL_I14443P3B_ATTRIB_RETRY_MIN 0

Minimum retry value of ATTRIB during transmission and timeout error.

Function Documentation

§ phpalI14443p3b_SetConfig()

phStatus_t phpalI14443p3b_SetConfig | ( | void * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t | wValue
 | ) |  |

Set configuration value.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | wConfig | Configuration Identifier.
[in] | wValue | Configuration Value.

§ phpalI14443p3b_GetConfig()

phStatus_t phpalI14443p3b_GetConfig | ( | void * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t * | pValue
 | ) |  |

Get configuration value.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | wConfig | Configuration Identifier.
[out] | pValue | Configuration Value.

§ phpalI14443p3b_RequestB()

phStatus_t phpalI14443p3b_RequestB | ( | void * | pDataParams,
 |  | uint8_t | bNumSlots,
 |  | uint8_t | bAfi,
 |  | uint8_t | bExtAtqb,
 |  | uint8_t * | pAtqb,
 |  | uint8_t * | pAtqbLen
 | ) |  |

Perform a ISO14443-3B Request command.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | bNumSlots | Number of slots.
[in] | bAfi | AFI; Application Family Indentifier.
[in] | bExtAtqb | Enable Extended AtqB.
[out] | pAtqb | AtqB; uint8_t[13].
[out] | pAtqbLen | length of ATQB (12/13 bytes).

§ phpalI14443p3b_WakeUpB()

phStatus_t phpalI14443p3b_WakeUpB | ( | void * | pDataParams,
 |  | uint8_t | bNumSlots,
 |  | uint8_t | bAfi,
 |  | uint8_t | bExtAtqb,
 |  | uint8_t * | pAtqb,
 |  | uint8_t * | pAtqbLen
 | ) |  |

Perform a ISO14443-3B Wakeup command.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | bNumSlots | Number of slots.
[in] | bAfi | AFI; Application Family Indentifier.
[in] | bExtAtqb | Enable Extended AtqB.
[out] | pAtqb | AtqB; uint8_t[12/13].
[out] | pAtqbLen | length of ATQB (12/13 bytes).

§ phpalI14443p3b_SlotMarker()

phStatus_t phpalI14443p3b_SlotMarker | ( | void * | pDataParams,
 |  | uint8_t | bSlotNumber,
 |  | uint8_t * | pAtqb,
 |  | uint8_t * | pAtqbLen
 | ) |  |

Perform a ISO14443-3B Slot-MARKER command.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | bSlotNumber | Slot Number.
[out] | pAtqb | AtqB; uint8_t[12/13].
[out] | pAtqbLen | length of ATQB (12/13 bytes).

§ phpalI14443p3b_HaltB()

phStatus_t phpalI14443p3b_HaltB ( void * pDataParams )

Perform a ISO14443-3B Halt command.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
Other | Depending on implementation and underlying component.
Parameters
[in] pDataParams Pointer to this layers parameter structure.

§ phpalI14443p3b_Attrib()

phStatus_t phpalI14443p3b_Attrib | ( | void * | pDataParams,
 |  | uint8_t * | pAtqb,
 |  | uint8_t | bAtqbLen,
 |  | uint8_t | bFsdi,
 |  | uint8_t | bCid,
 |  | uint8_t | bDri,
 |  | uint8_t | bDsi,
 |  | uint8_t * | pMbli
 | ) |  |

Perform a ISO14443-3B Attrib command.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | pAtqb | Atqb from ReqB/WupB; uint8_t[12/13].
[in] | bAtqbLen | Length of Atqb.
[in] | bFsdi | Frame Size Integer; 0-8.
[in] | bCid | Card Identifier; 0-14.
[in] | bDri | Divisor Receive (PCD to PICC) Integer; 0-3.
[in] | bDsi | Divisor Send (PICC to PCD) Integer; 0-3.
[out] | pMbli | MBLI byte; uint8_t.

§ phpalI14443p3b_ActivateCard()

phStatus_t phpalI14443p3b_ActivateCard | ( | void * | pDataParams,
 |  | uint8_t * | pPupi,
 |  | uint8_t | bPupiLength,
 |  | uint8_t | bNumSlots,
 |  | uint8_t | bAfi,
 |  | uint8_t | bExtAtqb,
 |  | uint8_t | bFsdi,
 |  | uint8_t | bCid,
 |  | uint8_t | bDri,
 |  | uint8_t | bDsi,
 |  | uint8_t * | pAtqb,
 |  | uint8_t * | pAtqbLen,
 |  | uint8_t * | pMbli,
 |  | uint8_t * | pMoreCardsAvailable
 | ) |  |

Perform ISO14443-3B ReqB or WupB and Anticollision/Select commands for all cascade levels.

If bLenUidIn is '0' –> CardUid not given, a ReqB is performed. If CardUid is given, a WupB is performed.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | pPupi | Pointer to the known PUPI; uint8_t[4].
[in] | bPupiLength | Length of given PUPI, only a value of 0 or 4 is allowed.
[in] | bNumSlots | Number of slots.
[in] | bAfi | AFI; Application Family Indentifier.
[in] | bExtAtqb | Enable Extended AtqB.
[in] | bFsdi | Frame Size Integer; 0-8.
[in] | bCid | Card Identifier; 0-14.
[in] | bDri | Divisor Receive (PCD to PICC) Integer; 0-3.
[in] | bDsi | Divisor Send (PICC to PCD) Integer; 0-3.
[out] | pAtqb | AtqB; uint8_t[13].
[out] | pAtqbLen | length of ATQB (12/13 bytes).
[out] | pMbli | MBLI byte; uint8_t.
[out] | pMoreCardsAvailable | Whether there are more cards in the field or not; uint8_t.

§ phpalI14443p3b_Exchange()

phStatus_t phpalI14443p3b_Exchange | ( | void * | pDataParams,
 |  | uint16_t | wOption,
 |  | uint8_t * | pTxBuffer,
 |  | uint16_t | wTxLength,
 |  | uint8_t ** | ppRxBuffer,
 |  | uint16_t * | pRxLength
 | ) |  |

Perform ISO14443-3B Data Exchange with Picc.

wOption can be one of:

  • PH_EXCHANGE_DEFAULT
  • PH_EXCHANGE_BUFFER_FIRST
  • PH_EXCHANGE_BUFFER_CONT
  • PH_EXCHANGE_BUFFER_LAST

Alternatively, the following bits can be combined:

  • PH_EXCHANGE_BUFFERED_BIT
  • PH_EXCHANGE_LEAVE_BUFFER_BIT
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | wOption | Option parameter.
[in] | pTxBuffer | Data to transmit.
[in] | wTxLength | Length of data to transmit.
[out] | ppRxBuffer | Pointer to received data.
[out] | pRxLength | number of received data bytes.

§ phpalI14443p3b_GetSerialNo()

phStatus_t phpalI14443p3b_GetSerialNo | ( | void * | pDataParams,
 |  | uint8_t * | pPupi
 | ) |  |

Retrieve the serial number.

This function will provide 4 byte PUPI.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_USE_CONDITION | No PUPI available.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[out] | pPupi | Most recent PUPI.

§ phpalI14443p3b_SetSerialNo()

phStatus_t phpalI14443p3b_SetSerialNo | ( | void * | pDataParams,
 |  | uint8_t * | pPupi
 | ) |  |

This function will update PUPI in this layer's parameter structure.

This function must be called with valid PUPI. Once set the subsequent type B commands use this PUPI.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | pPupi | 4 byte PUPI.

§ phpalI14443p3b_SetHigherLayerInf()

phStatus_t phpalI14443p3b_SetHigherLayerInf | ( | void * | pDataParams,
 |  | uint8_t * | pTxBuffer,
 |  | uint16_t | wTxLength,
 |  | uint8_t * | pRxBuffer,
 |  | uint16_t | wRxBufSize
 | ) |  |

Set higher layer information.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_USE_CONDITION | Feature not available.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | pTxBuffer | Higher layer Information; Can be NULL if /c wTxLength is 0.
[in] | wTxLength | Length of the Higher layer Information. Can be 0.
[in] | pRxBuffer | Higher layer response buffer.
[in] | wRxBufSize | Size of Higher layer response buffer.

§ phpalI14443p3b_GetHigherLayerResp()

phStatus_t phpalI14443p3b_GetHigherLayerResp | ( | void * | pDataParams,
 |  | uint8_t ** | ppRxBuffer,
 |  | uint16_t * | pRxLength
 | ) |  |

Get higher layer response.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_USE_CONDITION | Feature not available.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[out] | ppRxBuffer | Higher layer response.
[out] | pRxLength | Length of Higher layer response.

§ phpalI14443p3b_GetProtocolParams()

phStatus_t phpalI14443p3b_GetProtocolParams | ( | void * | pDataParams,
 |  | uint8_t * | pCidEnabled,
 |  | uint8_t * | pCid,
 |  | uint8_t * | pNadSupported,
 |  | uint8_t * | pFwi,
 |  | uint8_t * | pFsdi,
 |  | uint8_t * | pFsci
 | ) |  |

Retrieve the ISO14443-3B protocol parameters.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[out] | pCidEnabled | Unequal '0' if Card Identifier is enabled.
[out] | pCid | Card Identifier.
[out] | pNadSupported | Node Address Support; Unequal '0' if supported.
[out] | pFwi | Frame Waiting Integer.
[out] | pFsdi | PCD Frame Size Integer; 0-8.
[out] | pFsci | PICC Frame Size Integer; 0-8.


NXP NFC Reader Library: Component : Software

Data Structures | Macros | Functions
Component : Software
Protocol Abstraction Layer » ISO/IEC 14443-3B
Collaboration diagram for Component : Software:

Data Structures

struct phpalI14443p3b_Sw_DataParams_t
Software PAL-ISO14443P3B parameter structure. More...

Macros

#define PHPAL_I14443P3B_SW_ID 0x01
ID for Software ISO14443-3B layer.

Functions

phStatus_t phpalI14443p3b_Sw_Init (phpalI14443p3b_Sw_DataParams_t *pDataParams, uint16_t wSizeOfDataParams, void *pHalDataParams)

Detailed Description

Function Documentation

§ phpalI14443p3b_Sw_Init()

phStatus_t phpalI14443p3b_Sw_Init | ( | phpalI14443p3b_Sw_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams,
 |  | void * | pHalDataParams
 | ) |  |
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | wSizeOfDataParams | Specifies the size of the data parameter structure.
[in] | pHalDataParams | Pointer to the parameter structure of the underlying layer.


NXP NFC Reader Library: phpalI14443p3b_Sw_DataParams_t Struct Reference

Data Fields
phpalI14443p3b_Sw_DataParams_t Struct Reference
Protocol Abstraction Layer » ISO/IEC 14443-3B » Component : Software

Software PAL-ISO14443P3B parameter structure. More...

Data Fields

uint16_t wId
Layer ID for this component, NEVER MODIFY!
void * | pHalDataParams
Pointer to the parameter structure of the underlying layer. More...
uint8_t bExtAtqb
Stores whether last request used extended ATQB. More...
uint8_t | pPupi [4]
Array holding the activated PUPI. More...
uint8_t bPupiValid
Whether the stored Pupi is valid (1) or not (0). More...
uint8_t bCidSupported
Cid Support indicator; Unequal '0' if supported. More...
uint8_t bNadSupported
Nad Support indicator; Unequal '0' if supported. More...
uint8_t bCid
Card Identifier; Ignored if bCidSupported is equal '0'. More...
uint8_t bFwi
Frame Waiting Integer. More...
uint8_t bFsci
PICC Frame Size Integer; 0-8;.
uint8_t bFsdi
(Current) PCD Frame Size Integer; 0-8;
uint8_t bDri
(Current) Divisor Receive (PCD to PICC) Integer; 0-3;
uint8_t bDsi
(Current) Divisor Send (PICC to PCD) Integer; 0-3;
uint8_t bAttribParam1
Param1 parameter for attrib command. More...
uint8_t * pHigherLayerInf
Pointer to higher layer information buffer. More...
uint16_t wHigherLayerInfLen
Length higher layer information. More...
uint8_t * pHigherLayerResp
Pointer to higher layer response buffer. More...
uint16_t wHigherLayerRespSize
Size of higher layer response buffer. More...
uint16_t wHigherLayerRespLen
Length of higher layer response. More...
uint8_t bOpeMode
Operation mode. More...
uint8_t bPollCmd
Used to differentiate which command to send REQA or WakeUpA command for polling.
uint8_t bRetryCount
Retry count for ATTRIB command as per NFC Digital Protocol Version 1.1
For mode RD_LIB_MODE_EMVCO retry count should be 1. More...

Detailed Description

Software PAL-ISO14443P3B parameter structure.

Field Documentation

§ pHalDataParams

void* phpalI14443p3b_Sw_DataParams_t::pHalDataParams

Pointer to the parameter structure of the underlying layer.

§ bExtAtqb

uint8_t phpalI14443p3b_Sw_DataParams_t::bExtAtqb

Stores whether last request used extended ATQB.

§ pPupi

uint8_t phpalI14443p3b_Sw_DataParams_t::pPupi[4]

Array holding the activated PUPI.

§ bPupiValid

uint8_t phpalI14443p3b_Sw_DataParams_t::bPupiValid

Whether the stored Pupi is valid (1) or not (0).

§ bCidSupported

uint8_t phpalI14443p3b_Sw_DataParams_t::bCidSupported

Cid Support indicator; Unequal '0' if supported.

§ bNadSupported

uint8_t phpalI14443p3b_Sw_DataParams_t::bNadSupported

Nad Support indicator; Unequal '0' if supported.

§ bCid

uint8_t phpalI14443p3b_Sw_DataParams_t::bCid

Card Identifier; Ignored if bCidSupported is equal '0'.

§ bFwi

uint8_t phpalI14443p3b_Sw_DataParams_t::bFwi

Frame Waiting Integer.

§ bAttribParam1

uint8_t phpalI14443p3b_Sw_DataParams_t::bAttribParam1

Param1 parameter for attrib command.

§ pHigherLayerInf

uint8_t* phpalI14443p3b_Sw_DataParams_t::pHigherLayerInf

Pointer to higher layer information buffer.

§ wHigherLayerInfLen

uint16_t phpalI14443p3b_Sw_DataParams_t::wHigherLayerInfLen

Length higher layer information.

§ pHigherLayerResp

uint8_t* phpalI14443p3b_Sw_DataParams_t::pHigherLayerResp

Pointer to higher layer response buffer.

§ wHigherLayerRespSize

uint16_t phpalI14443p3b_Sw_DataParams_t::wHigherLayerRespSize

Size of higher layer response buffer.

§ wHigherLayerRespLen

uint16_t phpalI14443p3b_Sw_DataParams_t::wHigherLayerRespLen

Length of higher layer response.

§ bOpeMode

uint8_t phpalI14443p3b_Sw_DataParams_t::bOpeMode

Operation mode.

One of NFC, EMVCo, ISO.

§ bRetryCount

uint8_t phpalI14443p3b_Sw_DataParams_t::bRetryCount

Retry count for ATTRIB command as per NFC Digital Protocol Version 1.1
For mode RD_LIB_MODE_EMVCO retry count should be 1.

The documentation for this struct was generated from the following file:
  • phpalI14443p3b.h


NXP NFC Reader Library: ISO/IEC 14443-4A

Modules | Functions
ISO/IEC 14443-4A
Protocol Abstraction Layer

These Components configure PHPAL_I14443P4A. More...

Collaboration diagram for ISO/IEC 14443-4A:

Modules

Component : Software

Functions

phStatus_t | phpalI14443p4a_Rats (void *pDataParams, uint8_t bFsdi, uint8_t bCid, uint8_t *pAts)
Perform a ISO14443-4A "Request Answer to Select" command. More...
phStatus_t | phpalI14443p4a_Pps (void *pDataParams, uint8_t bDri, uint8_t bDsi)
Perform a ISO14443-4A "Protocol and Parameter Selection" command. More...
phStatus_t | phpalI14443p4a_ActivateCard (void *pDataParams, uint8_t bFsdi, uint8_t bCid, uint8_t bDri, uint8_t bDsi, uint8_t *pAts)
Perform ISO14443-4A Rats and Pps commands. More...
phStatus_t | phpalI14443p4a_GetProtocolParams (void *pDataParams, uint8_t *pCidEnabled, uint8_t *pCid, uint8_t *pNadSupported, uint8_t *pFwi, uint8_t *pFsdi, uint8_t *pFsci)
Retrieve the ISO14443-4A protocol parameters. More...
phStatus_t | phpalI14443p4a_SetConfig (void *pDataParams, uint16_t wConfig, uint16_t wValue)
Set configuration parameter. More...

Configuration

#define | PHPAL_I14443P4A_CONFIG_OPE_MODE 0x01
Configure Operation Mode for this Layer. More...
#define | PHPAL_I14443P4A_CONFIG_RATS_RETRY_COUNT 0x02
Configure retry count for RATS command. More...

DRI/DSI Values

#define | PHPAL_I14443P4A_DATARATE_106 0x00U
DRI/DSI value for 106 kBit/s. More...
#define | PHPAL_I14443P4A_DATARATE_212 0x01U
DRI/DSI value for 212 kBit/s. More...
#define | PHPAL_I14443P4A_DATARATE_424 0x02U
DRI/DSI value for 424 kBit/s. More...
#define | PHPAL_I14443P4A_DATARATE_848 0x03U
DRI/DSI value for 848 kBit/s. More...

RATS Command Retry Values

#define | PHPAL_I14443P4A_RATS_RETRY_MAX 1
Maximum retry value of RATS during transmission and timeout error. More...
#define | PHPAL_I14443P4A_RATS_RETRY_MIN 0
Minimum retry value of RATS during transmission and timeout error. More...

Detailed Description

These Components configure PHPAL_I14443P4A.

These Components implement the additional ISO/IEC 14443-4 activation steps needed for ISO14443 Type-A cards.

Macro Definition Documentation

§ PHPAL_I14443P4A_CONFIG_OPE_MODE

#define PHPAL_I14443P4A_CONFIG_OPE_MODE 0x01

Configure Operation Mode for this Layer.

Possible values are
RD_LIB_MODE_EMVCO,
RD_LIB_MODE_NFC,
RD_LIB_MODE_ISO,
Default value is RD_LIB_MODE_NFC.

§ PHPAL_I14443P4A_CONFIG_RATS_RETRY_COUNT

#define PHPAL_I14443P4A_CONFIG_RATS_RETRY_COUNT 0x02

Configure retry count for RATS command.

Possible values are
PHPAL_I14443P4A_RATS_RETRY_MIN,
PHPAL_I14443P4A_RATS_RETRY_MAX,
Default value is PHPAL_I14443P4A_RATS_RETRY_MAX.
For mode RD_LIB_MODE_EMVCO retry count should be 1.

§ PHPAL_I14443P4A_DATARATE_106

#define PHPAL_I14443P4A_DATARATE_106 0x00U

DRI/DSI value for 106 kBit/s.

§ PHPAL_I14443P4A_DATARATE_212

#define PHPAL_I14443P4A_DATARATE_212 0x01U

DRI/DSI value for 212 kBit/s.

§ PHPAL_I14443P4A_DATARATE_424

#define PHPAL_I14443P4A_DATARATE_424 0x02U

DRI/DSI value for 424 kBit/s.

§ PHPAL_I14443P4A_DATARATE_848

#define PHPAL_I14443P4A_DATARATE_848 0x03U

DRI/DSI value for 848 kBit/s.

§ PHPAL_I14443P4A_RATS_RETRY_MAX

#define PHPAL_I14443P4A_RATS_RETRY_MAX 1

Maximum retry value of RATS during transmission and timeout error.

§ PHPAL_I14443P4A_RATS_RETRY_MIN

#define PHPAL_I14443P4A_RATS_RETRY_MIN 0

Minimum retry value of RATS during transmission and timeout error.

Function Documentation

§ phpalI14443p4a_Rats()

phStatus_t phpalI14443p4a_Rats | ( | void * | pDataParams,
 |  | uint8_t | bFsdi,
 |  | uint8_t | bCid,
 |  | uint8_t * | pAts
 | ) |  |

Perform a ISO14443-4A "Request Answer to Select" command.

[FSDI to FSD conversion]
---------------------------------------------------------------
FSDI         | 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07  | 08  |
---------------------------------------------------------------
FSD (bytes)  | 16 | 24 | 32 | 40 | 48 | 64 | 96 | 128 | 256 |
---------------------------------------------------------------
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bFsdi | Frame Size Integer; 0-8.
[in] | bCid | Card Identifier; 0-14.
[out] | pAts | Answer to Select; uint8_t[255].

§ phpalI14443p4a_Pps()

phStatus_t phpalI14443p4a_Pps | ( | void * | pDataParams,
 |  | uint8_t | bDri,
 |  | uint8_t | bDsi
 | ) |  |

Perform a ISO14443-4A "Protocol and Parameter Selection" command.

The following values for bDri and bDsi are possible:

  • PHPAL_I14443P4A_DATARATE_106
  • PHPAL_I14443P4A_DATARATE_212
  • PHPAL_I14443P4A_DATARATE_424
  • PHPAL_I14443P4A_DATARATE_848
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bDri | Divisor Receive (PCD to PICC) Integer; 0-3.
[in] | bDsi | Divisor Send (PICC to PCD) Integer; 0-3.

§ phpalI14443p4a_ActivateCard()

phStatus_t phpalI14443p4a_ActivateCard | ( | void * | pDataParams,
 |  | uint8_t | bFsdi,
 |  | uint8_t | bCid,
 |  | uint8_t | bDri,
 |  | uint8_t | bDsi,
 |  | uint8_t * | pAts
 | ) |  |

Perform ISO14443-4A Rats and Pps commands.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
PH_ERR_FRAMING_ERROR | Bcc invalid.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bFsdi | Frame Size Integer; 0-8.
[in] | bCid | Card Identifier; 0-14.
[in] | bDri | Divisor Receive (PCD to PICC) Integer; 0-3.
[in] | bDsi | Divisor Send (PICC to PCD) Integer; 0-3.
[out] | pAts | Answer to Select; uint8_t[255].

§ phpalI14443p4a_GetProtocolParams()

phStatus_t phpalI14443p4a_GetProtocolParams | ( | void * | pDataParams,
 |  | uint8_t * | pCidEnabled,
 |  | uint8_t * | pCid,
 |  | uint8_t * | pNadSupported,
 |  | uint8_t * | pFwi,
 |  | uint8_t * | pFsdi,
 |  | uint8_t * | pFsci
 | ) |  |

Retrieve the ISO14443-4A protocol parameters.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[out] | pCidEnabled | Unequal '0' if Card Identifier is enabled.
[out] | pCid | Card Identifier.
[out] | pNadSupported | Node Address Support; Unequal '0' if supported.
[out] | pFwi | Frame Waiting Integer.
[out] | pFsdi | PCD Frame Size Integer; 0-8.
[out] | pFsci | PICC Frame Size Integer; 0-8.

§ phpalI14443p4a_SetConfig()

phStatus_t phpalI14443p4a_SetConfig | ( | void * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t | wValue
 | ) |  |

Set configuration parameter.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | wConfig | Configuration Identifier.
[in] | wValue | Configuration Value.


NXP NFC Reader Library: Component : Software

Data Structures | Macros | Functions
Component : Software
Protocol Abstraction Layer » ISO/IEC 14443-4A
Collaboration diagram for Component : Software:

Data Structures

struct phpalI14443p4a_Sw_DataParams_t
Software PAL-ISO14443P4A parameter structure. More...

Macros

#define PHPAL_I14443P4A_SW_ID 0x01
ID for Software ISO14443-4A layer.

Functions

phStatus_t phpalI14443p4a_Sw_Init (phpalI14443p4a_Sw_DataParams_t *pDataParams, uint16_t wSizeOfDataParams, void *pHalDataParams)
Initialize this layer. More...

Detailed Description

Function Documentation

§ phpalI14443p4a_Sw_Init()

phStatus_t phpalI14443p4a_Sw_Init | ( | phpalI14443p4a_Sw_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams,
 |  | void * | pHalDataParams
 | ) |  |

Initialize this layer.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wSizeOfDataParams | Specifies the size of the data parameter structure.
[in] | pHalDataParams | Pointer to the parameter structure of the underlying layer.


NXP NFC Reader Library: phpalI14443p4a_Sw_DataParams_t Struct Reference

Data Fields
phpalI14443p4a_Sw_DataParams_t Struct Reference
Protocol Abstraction Layer » ISO/IEC 14443-4A » Component : Software

Software PAL-ISO14443P4A parameter structure. More...

Data Fields

uint16_t wId
Layer ID for this component, NEVER MODIFY!
void * pHalDataParams
Pointer to the parameter structure of the underlying layer. More...
uint8_t bCidSupported
Cid Support indicator; Unequal '0' if supported. More...
uint8_t bNadSupported
Nad Support indicator; Unequal '0' if supported. More...
uint8_t bCid
Card Identifier; Ignored if bCidSupported is equal '0'. More...
uint8_t bBitRateCaps
TA(1) byte of ATS; ISO/IEC 14443-4:2008, Section 5.2.4. More...
uint8_t bFwi
Frame Waiting Integer. More...
uint8_t bFsci
PICC Frame Size Integer; 0-8;.
uint8_t bFsdi
(Current) PCD Frame Size Integer; 0-8;
uint8_t bDri
(Current) Divisor Receive (PCD to PICC) Integer; 0-3;
uint8_t bDsi
(Current) Divisor Send (PICC to PCD) Integer; 0-3;
uint8_t bOpeMode
Operation mode. More...
uint8_t bRetryCount
Retry count for RATS command as per NFC Digital Protocol Version 1.1
For mode RD_LIB_MODE_EMVCO retry count should be 1. More...

Detailed Description

Software PAL-ISO14443P4A parameter structure.

Field Documentation

§ pHalDataParams

void* phpalI14443p4a_Sw_DataParams_t::pHalDataParams

Pointer to the parameter structure of the underlying layer.

§ bCidSupported

uint8_t phpalI14443p4a_Sw_DataParams_t::bCidSupported

Cid Support indicator; Unequal '0' if supported.

§ bNadSupported

uint8_t phpalI14443p4a_Sw_DataParams_t::bNadSupported

Nad Support indicator; Unequal '0' if supported.

§ bCid

uint8_t phpalI14443p4a_Sw_DataParams_t::bCid

Card Identifier; Ignored if bCidSupported is equal '0'.

§ bBitRateCaps

uint8_t phpalI14443p4a_Sw_DataParams_t::bBitRateCaps

TA(1) byte of ATS; ISO/IEC 14443-4:2008, Section 5.2.4.

§ bFwi

uint8_t phpalI14443p4a_Sw_DataParams_t::bFwi

Frame Waiting Integer.

§ bOpeMode

uint8_t phpalI14443p4a_Sw_DataParams_t::bOpeMode

Operation mode.

One of NFC, EMVCo, ISO.

§ bRetryCount

uint8_t phpalI14443p4a_Sw_DataParams_t::bRetryCount

Retry count for RATS command as per NFC Digital Protocol Version 1.1
For mode RD_LIB_MODE_EMVCO retry count should be 1.

The documentation for this struct was generated from the following file:
  • phpalI14443p4a.h


NXP NFC Reader Library: ISO/IEC 14443-4

Modules | Macros | Functions
ISO/IEC 14443-4
Protocol Abstraction Layer

These Components implement the ISO/IEC 14443-4:2008(E) contactless protocol. More...

Collaboration diagram for ISO/IEC 14443-4:

Modules

Component : Software

Macros

#define | PHPAL_I14443P4_CID_MAX 14
The last valid CID. More...
#define | PHPAL_I14443P4_FWI_MAX 14
The maximum allowed FWI value. More...
#define | PHPAL_I14443P4_FRAMESIZE_MAX 12
The maximum allowed FSDI/FSCI value. More...

Functions

phStatus_t | phpalI14443p4_SetProtocol (void *pDataParams, uint8_t bCidEnable, uint8_t bCid, uint8_t bNadEnable, uint8_t bNad, uint8_t bFwi, uint8_t bFsdi, uint8_t bFsci)
Set the ISO14443-4 protocol parameters. More...
phStatus_t | phpalI14443p4_ResetProtocol (void *pDataParams)
Reset the ISO14443-4 protocol parameters. More...
phStatus_t | phpalI14443p4_Deselect (void *pDataParams)
Deselect ISO14443-4 card. More...
phStatus_t | phpalI14443p4_PresCheck (void *pDataParams)
Perform presence check for current card. More...
phStatus_t | phpalI14443p4_Exchange (void *pDataParams, uint16_t wOption, uint8_t *pTxBuffer, uint16_t wTxLength, uint8_t **ppRxBuffer, uint16_t *pRxLength)
Perform ISO14443-4 Data Exchange with Picc. More...
phStatus_t | phpalI14443p4_SetConfig (void *pDataParams, uint16_t wConfig, uint16_t wValue)
Set configuration parameter. More...
phStatus_t | phpalI14443p4_GetConfig (void *pDataParams, uint16_t wConfig, uint16_t *pValue)
Get configuration parameter. More...

ISO14443-4 Parameters

#define | PHPAL_I14443P4_CONFIG_BLOCKNO 0x0000U
Set / Get Blocknumber.
#define | PHPAL_I14443P4_CONFIG_CID 0x0001U
Set / Get Card Identifier. More...
#define | PHPAL_I14443P4_CONFIG_NAD 0x0002U
Set / Get Node Address. More...
#define | PHPAL_I14443P4_CONFIG_FWI 0x0003U
Set / Get Frame Waiting Integer.
#define | PHPAL_I14443P4_CONFIG_FSI 0x0004U
Set / Get PCD & PICC Frame Size Integer. More...
#define | PHPAL_I14443P4_CONFIG_MAXRETRYCOUNT 0x0005U
Set / Get Maximum Retry Count.
#define | PHPAL_I14443P4_CONFIG_OPE_MODE 0x0006U
Configure Operation mode. More...

Detailed Description

These Components implement the ISO/IEC 14443-4:2008(E) contactless protocol.

Macro Definition Documentation

§ PHPAL_I14443P4_CID_MAX

#define PHPAL_I14443P4_CID_MAX 14

The last valid CID.

§ PHPAL_I14443P4_FWI_MAX

#define PHPAL_I14443P4_FWI_MAX 14

The maximum allowed FWI value.

§ PHPAL_I14443P4_FRAMESIZE_MAX

#define PHPAL_I14443P4_FRAMESIZE_MAX 12

The maximum allowed FSDI/FSCI value.

§ PHPAL_I14443P4_CONFIG_CID

#define PHPAL_I14443P4_CONFIG_CID 0x0001U

Set / Get Card Identifier.

wValue is parsed as follows:

* CidEnabled = (wValue & 0xFF00) ? 1 : 0;
* Cid = (wValue & 0x00FF);
*

§ PHPAL_I14443P4_CONFIG_NAD

#define PHPAL_I14443P4_CONFIG_NAD 0x0002U

Set / Get Node Address.

wValue is parsed as follows:

* NadEnabled = (wValue & 0xFF00) ? 1 : 0;
* Nad = (wValue & 0x00FF);
*

§ PHPAL_I14443P4_CONFIG_FSI

#define PHPAL_I14443P4_CONFIG_FSI 0x0004U

Set / Get PCD & PICC Frame Size Integer.

wValue is parsed as follows:

* Fsdi = ((wValue & 0xFF00) >> 8);
* Fsci = (wValue & 0x00FF);
*

§ PHPAL_I14443P4_CONFIG_OPE_MODE

#define PHPAL_I14443P4_CONFIG_OPE_MODE 0x0006U

Configure Operation mode.

Configure Operation Mode for this Layer.
Possible values are
RD_LIB_MODE_EMVCO,
RD_LIB_MODE_NFC,
RD_LIB_MODE_ISO,
Default value is RD_LIB_MODE_NFC.

Function Documentation

§ phpalI14443p4_SetProtocol()

phStatus_t phpalI14443p4_SetProtocol | ( | void * | pDataParams,
 |  | uint8_t | bCidEnable,
 |  | uint8_t | bCid,
 |  | uint8_t | bNadEnable,
 |  | uint8_t | bNad,
 |  | uint8_t | bFwi,
 |  | uint8_t | bFsdi,
 |  | uint8_t | bFsci
 | ) |  |

Set the ISO14443-4 protocol parameters.

This sets the protocol parameters for this layer. It is recommended to input this function with the parameters retrieved from either phpalI14443p4a_GetProtocolParams or phpalI14443p3b_GetProtocolParams respectively after card activation. Note: Refer to the ISO/IEC 14443-4:2008(E) specification for a detailed description of the parameters.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bCidEnable | Enable usage of Card Identifier; Unequal '0' if enabled.
[in] | bCid | Card Identifier; Ignored if bCidEnable is equal '0'.
[in] | bNadEnable | Enabler usage of Node Address; Unequal '0' if enabled.
[in] | bNad | Node Address; Ignored if bNadEnabled is equal '0'.
[in] | bFwi | Frame Waiting Integer.
[in] | bFsdi | PCD Frame Size Integer; 0-8
[in] | bFsci | PICC Frame Size Integer; 0-8

§ phpalI14443p4_ResetProtocol()

phStatus_t phpalI14443p4_ResetProtocol ( void * pDataParams )

Reset the ISO14443-4 protocol parameters.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phpalI14443p4_Deselect()

phStatus_t phpalI14443p4_Deselect ( void * pDataParams )

Deselect ISO14443-4 card.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phpalI14443p4_PresCheck()

phStatus_t phpalI14443p4_PresCheck ( void * pDataParams )

Perform presence check for current card.

(Perform R(NAK) polling as defined in ISO 14443-4:2008(E)).

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phpalI14443p4_Exchange()

phStatus_t phpalI14443p4_Exchange | ( | void * | pDataParams,
 |  | uint16_t | wOption,
 |  | uint8_t * | pTxBuffer,
 |  | uint16_t | wTxLength,
 |  | uint8_t ** | ppRxBuffer,
 |  | uint16_t * | pRxLength
 | ) |  |

Perform ISO14443-4 Data Exchange with Picc.

wOption can be one of:

  • PH_EXCHANGE_DEFAULT
  • PH_EXCHANGE_TXCHAINING
  • PH_EXCHANGE_RXCHAINING
  • PH_EXCHANGE_RXCHAINING_BUFSIZE

Additionally, the following options are also available:

  • PH_EXCHANGE_BUFFER_FIRST
  • PH_EXCHANGE_BUFFER_CONT
  • PH_EXCHANGE_BUFFER_LAST

Alternatively to the FIRST/CONT/LAST options, the following bits can be combined:

  • PH_EXCHANGE_BUFFERED_BIT
  • PH_EXCHANGE_LEAVE_BUFFER_BIT
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wOption | Option parameter.
[in] | pTxBuffer | Data to transmit.
[in] | wTxLength | Length of data to transmit.
[out] | ppRxBuffer | Pointer to received data.
[out] | pRxLength | number of received data bytes.

§ phpalI14443p4_SetConfig()

phStatus_t phpalI14443p4_SetConfig | ( | void * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t | wValue
 | ) |  |

Set configuration parameter.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wConfig | Configuration Identifier
[in] | wValue | Configuration Value

§ phpalI14443p4_GetConfig()

phStatus_t phpalI14443p4_GetConfig | ( | void * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t * | pValue
 | ) |  |

Get configuration parameter.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wConfig | Configuration Identifier
[out] | pValue | Configuration Value


NXP NFC Reader Library: Component : Software

Data Structures | Macros | Functions
Component : Software
Protocol Abstraction Layer » ISO/IEC 14443-4
Collaboration diagram for Component : Software:

Data Structures

struct phpalI14443p4_Sw_DataParams_t
ISO14443-4 parameter structure. More...

Macros

#define PHPAL_I14443P4_SW_ID 0x01
ID for Software ISO14443-4 layer.

Functions

phStatus_t phpalI14443p4_Sw_Init (phpalI14443p4_Sw_DataParams_t *pDataParams, uint16_t wSizeOfDataParams, void *pHalDataParams)
Initialise this layer. More...

Detailed Description

Function Documentation

§ phpalI14443p4_Sw_Init()

phStatus_t phpalI14443p4_Sw_Init | ( | phpalI14443p4_Sw_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams,
 |  | void * | pHalDataParams
 | ) |  |

Initialise this layer.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wSizeOfDataParams | Specifies the size of the data parameter structure.
[in] | pHalDataParams | Pointer to the parameter structure of the underlying layer.


NXP NFC Reader Library: phpalI14443p4_Sw_DataParams_t Struct Reference

Data Fields
phpalI14443p4_Sw_DataParams_t Struct Reference
Protocol Abstraction Layer » ISO/IEC 14443-4 » Component : Software

ISO14443-4 parameter structure. More...

Data Fields

uint16_t wId
Layer ID for this component, NEVER MODIFY!
void * pHalDataParams
Pointer to the parameter structure of the underlying layer. More...
uint8_t bStateNow
Current Exchange-State. More...
uint8_t bCidEnabled
Card Identifier Enabler; Unequal '0' if enabled. More...
uint8_t bCid
Card Identifier; Ignored if *pCidSupported is equal '0'. More...
uint8_t bNadEnabled
Node Address Enabler; Unequal '0' if enabled. More...
uint8_t bNad
Node Address; Ignored if bNadEnabled is equal '0'. More...
uint8_t bFwi
Frame Waiting Integer. More...
uint8_t bFsdi
PCD Frame Size Integer; 0-8;.
uint8_t bFsci
PICC Frame Size Integer; 0-8;.
uint8_t bPcbBlockNum
Current Block-Number; 0/1;.
uint8_t bMaxRetryCount
Maximum Retry count for ISO/IEC 14443-4:2008(E) Rule 4 and 5. More...
uint8_t bOpeMode
Operation mode. More...

Detailed Description

ISO14443-4 parameter structure.

Field Documentation

§ pHalDataParams

void* phpalI14443p4_Sw_DataParams_t::pHalDataParams

Pointer to the parameter structure of the underlying layer.

§ bStateNow

uint8_t phpalI14443p4_Sw_DataParams_t::bStateNow

Current Exchange-State.

§ bCidEnabled

uint8_t phpalI14443p4_Sw_DataParams_t::bCidEnabled

Card Identifier Enabler; Unequal '0' if enabled.

§ bCid

uint8_t phpalI14443p4_Sw_DataParams_t::bCid

Card Identifier; Ignored if *pCidSupported is equal '0'.

§ bNadEnabled

uint8_t phpalI14443p4_Sw_DataParams_t::bNadEnabled

Node Address Enabler; Unequal '0' if enabled.

§ bNad

uint8_t phpalI14443p4_Sw_DataParams_t::bNad

Node Address; Ignored if bNadEnabled is equal '0'.

§ bFwi

uint8_t phpalI14443p4_Sw_DataParams_t::bFwi

Frame Waiting Integer.

§ bMaxRetryCount

uint8_t phpalI14443p4_Sw_DataParams_t::bMaxRetryCount

Maximum Retry count for ISO/IEC 14443-4:2008(E) Rule 4 and 5.

§ bOpeMode

uint8_t phpalI14443p4_Sw_DataParams_t::bOpeMode

Operation mode.

One of NFC, EMVCo, ISO.

The documentation for this struct was generated from the following file:
  • phpalI14443p4.h


NXP NFC Reader Library: MIFARE(R)

Modules | Functions
MIFARE(R)
Protocol Abstraction Layer

These Components implement the MIFARE(R) Classic, MIFARE(R) Ultralight, MIFARE(R) DESFire and MIFARE(R) Plus products. More...

Collaboration diagram for MIFARE(R):

Modules

Component : Software
PhpalMifare_Stub

Functions

phStatus_t | phpalMifare_ExchangeL3 (void *pDataParams, uint16_t wOption, uint8_t *pTxBuffer, uint16_t wTxLength, uint8_t **ppRxBuffer, uint16_t *pRxLength)
Perform ISO14443-3 Data Exchange with MIFARE Picc. More...
phStatus_t | phpalMifare_ExchangeL4 (void *pDataParams, uint16_t wOption, uint8_t *pTxBuffer, uint16_t wTxLength, uint8_t **ppRxBuffer, uint16_t *pRxLength)
Perform ISO14443-4 Data Exchange with MIFARE Picc. More...
phStatus_t | phpalMifare_ExchangePc (void *pDataParams, uint16_t wOption, uint8_t *pTxBuffer, uint16_t wTxLength, uint8_t **ppRxBuffer, uint16_t *pRxLength)
Perform Proximity-Check Data Exchange with MIFARE Picc. More...
phStatus_t | phpalMifare_ExchangeRaw (void *pDataParams, uint16_t wOption, uint8_t *pTxBuffer, uint16_t wTxLength, uint8_t bTxLastBits, uint8_t **ppRxBuffer, uint16_t *pRxLength, uint8_t *pRxLastBits)
Perform Raw (No CRC, No Parity) Data Exchange with MIFARE Picc. More...
phStatus_t | phpalMifare_MfcAuthenticateKeyNo (void *pDataParams, uint8_t bBlockNo, uint8_t bKeyType, uint16_t wKeyNo, uint16_t wKeyVersion, uint8_t *pUid)
Perform MIFARE(R) Authenticate command with Picc using a key number. More...
phStatus_t | phpalMifare_MfcAuthenticate (void *pDataParams, uint8_t bBlockNo, uint8_t bKeyType, uint8_t *pKey, uint8_t *pUid)
Perform MIFARE(R) Authenticate command with Picc using a key. More...
phStatus_t | phpalMifare_SetMinFdtPc (void *pDataParams, uint16_t wValue)
Perform Setting min FDT for Proximity check. More...

Authenticate Options

#define | PHPAL_MIFARE_KEYA 0x0AU
MIFARE Classic Key Type A. More...
#define | PHPAL_MIFARE_KEYB 0x0BU
MIFARE Classic Key Type B. More...
#define | PHPAL_MIFARE_KEY_LENGTH 0x06U
Length of a MIFARE Classic key (for completeness). More...

Detailed Description

These Components implement the MIFARE(R) Classic, MIFARE(R) Ultralight, MIFARE(R) DESFire and MIFARE(R) Plus products.

Macro Definition Documentation

§ PHPAL_MIFARE_KEYA

#define PHPAL_MIFARE_KEYA 0x0AU

MIFARE Classic Key Type A.

§ PHPAL_MIFARE_KEYB

#define PHPAL_MIFARE_KEYB 0x0BU

MIFARE Classic Key Type B.

§ PHPAL_MIFARE_KEY_LENGTH

#define PHPAL_MIFARE_KEY_LENGTH 0x06U

Length of a MIFARE Classic key (for completeness).

Function Documentation

§ phpalMifare_ExchangeL3()

phStatus_t phpalMifare_ExchangeL3 | ( | void * | pDataParams,
 |  | uint16_t | wOption,
 |  | uint8_t * | pTxBuffer,
 |  | uint16_t | wTxLength,
 |  | uint8_t ** | ppRxBuffer,
 |  | uint16_t * | pRxLength
 | ) |  |

Perform ISO14443-3 Data Exchange with MIFARE Picc.

wOption can be one of:

  • PH_EXCHANGE_DEFAULT
  • PH_EXCHANGE_BUFFER_FIRST
  • PH_EXCHANGE_BUFFER_CONT
  • PH_EXCHANGE_BUFFER_LAST

Alternatively, the following bits can be combined:

  • PH_EXCHANGE_BUFFERED_BIT
  • PH_EXCHANGE_LEAVE_BUFFER_BIT
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wOption | Option parameter.
[in] | pTxBuffer | Data to transmit.
[in] | wTxLength | Length of data to transmit.
[out] | ppRxBuffer | Pointer to received data.
[out] | pRxLength | number of received data bytes.

§ phpalMifare_ExchangeL4()

phStatus_t phpalMifare_ExchangeL4 | ( | void * | pDataParams,
 |  | uint16_t | wOption,
 |  | uint8_t * | pTxBuffer,
 |  | uint16_t | wTxLength,
 |  | uint8_t ** | ppRxBuffer,
 |  | uint16_t * | pRxLength
 | ) |  |

Perform ISO14443-4 Data Exchange with MIFARE Picc.

wOption can be one of:

  • PH_EXCHANGE_DEFAULT
  • PH_EXCHANGE_TXCHAINING
  • PH_EXCHANGE_RXCHAINING
  • PH_EXCHANGE_RXCHAINING_BUFSIZE

Additionally, the following options are also available:

  • PH_EXCHANGE_BUFFER_FIRST
  • PH_EXCHANGE_BUFFER_CONT
  • PH_EXCHANGE_BUFFER_LAST

Alternatively to the FIRST/CONT/LAST options, the following bits can be combined:

  • PH_EXCHANGE_BUFFERED_BIT
  • PH_EXCHANGE_LEAVE_BUFFER_BIT
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wOption | Option parameter.
[in] | pTxBuffer | Data to transmit.
[in] | wTxLength | Length of data to transmit.
[out] | ppRxBuffer | Pointer to received data.
[out] | pRxLength | number of received data bytes.

§ phpalMifare_ExchangePc()

phStatus_t phpalMifare_ExchangePc | ( | void * | pDataParams,
 |  | uint16_t | wOption,
 |  | uint8_t * | pTxBuffer,
 |  | uint16_t | wTxLength,
 |  | uint8_t ** | ppRxBuffer,
 |  | uint16_t * | pRxLength
 | ) |  |

Perform Proximity-Check Data Exchange with MIFARE Picc.

Note: The wOption parameter is currently RFU.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wOption | Option parameter.
[in] | pTxBuffer | Data to transmit.
[in] | wTxLength | Length of data to transmit.
[out] | ppRxBuffer | Pointer to received data.
[out] | pRxLength | number of received data bytes.

§ phpalMifare_ExchangeRaw()

phStatus_t phpalMifare_ExchangeRaw | ( | void * | pDataParams,
 |  | uint16_t | wOption,
 |  | uint8_t * | pTxBuffer,
 |  | uint16_t | wTxLength,
 |  | uint8_t | bTxLastBits,
 |  | uint8_t ** | ppRxBuffer,
 |  | uint16_t * | pRxLength,
 |  | uint8_t * | pRxLastBits
 | ) |  |

Perform Raw (No CRC, No Parity) Data Exchange with MIFARE Picc.

wOption can be one of:

  • PH_EXCHANGE_DEFAULT
  • PH_EXCHANGE_BUFFER_FIRST
  • PH_EXCHANGE_BUFFER_CONT
  • PH_EXCHANGE_BUFFER_LAST

Alternatively, the following bits can be combined:

  • PH_EXCHANGE_BUFFERED_BIT
  • PH_EXCHANGE_LEAVE_BUFFER_BIT

In Sam non X configuration, wOption can be combined with the following options to instruct Sam to not do enciphering and/or deciphering.

  • #PHHAL_HW_SAMAV2_EXCHANGE_NO_ENCIPHERING_BIT
  • #PHHAL_HW_SAMAV2_EXCHANGE_NO_DECIPHERING_BIT
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wOption | Option parameter.
[in] | pTxBuffer | Data to transmit.
[in] | wTxLength | Length of input data.
[in] | bTxLastBits | Number of valid bits of last byte (Tx).
[out] | ppRxBuffer | Pointer to received data.
[out] | pRxLength | Number of received data bytes including incomplete byte.
[out] | pRxLastBits | Number of valid bits of last byte (Rx).

§ phpalMifare_MfcAuthenticateKeyNo()

phStatus_t phpalMifare_MfcAuthenticateKeyNo | ( | void * | pDataParams,
 |  | uint8_t | bBlockNo,
 |  | uint8_t | bKeyType,
 |  | uint16_t | wKeyNo,
 |  | uint16_t | wKeyVersion,
 |  | uint8_t * | pUid
 | ) |  |

Perform MIFARE(R) Authenticate command with Picc using a key number.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_IO_TIMEOUT | Error in authentication.
PH_ERR_AUTH_ERROR | Error in authentication.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bBlockNo | Block-Number on card to authenticate to.
[in] | bKeyType | Either PHPAL_MIFARE_KEYA or PHPAL_MIFARE_KEYB
[in] | wKeyNo | Key number to be used in authentication.
[in] | wKeyVersion | Key version to be used in authentication.
[in] | pUid | Serial number of current cascade level; uint8_t[4].

§ phpalMifare_MfcAuthenticate()

phStatus_t phpalMifare_MfcAuthenticate | ( | void * | pDataParams,
 |  | uint8_t | bBlockNo,
 |  | uint8_t | bKeyType,
 |  | uint8_t * | pKey,
 |  | uint8_t * | pUid
 | ) |  |

Perform MIFARE(R) Authenticate command with Picc using a key.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_IO_TIMEOUT | Error in authentication.
PH_ERR_AUTH_ERROR | Error in authentication.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bBlockNo | Block-Number on card to authenticate to.
[in] | bKeyType | Either PHPAL_MIFARE_KEYA or PHPAL_MIFARE_KEYB
[in] | pKey | Key to be used in authentication.
[in] | pUid | Serial number of current cascade level; uint8_t[4].

§ phpalMifare_SetMinFdtPc()

phStatus_t phpalMifare_SetMinFdtPc | ( | void * | pDataParams,
 |  | uint16_t | wValue
 | ) |  |

Perform Setting min FDT for Proximity check.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_IO_TIMEOUT | Error in authentication.
PH_ERR_AUTH_ERROR | Error in authentication.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wValue | Option parameter. '1' for setting '0' for resetting


NXP NFC Reader Library: Component : Software

Data Structures | Macros | Functions
Component : Software
Protocol Abstraction Layer » MIFARE(R)
Collaboration diagram for Component : Software:

Data Structures

struct phpalMifare_Sw_DataParams_t
Software PAL-MIFARE parameter structure. More...

Macros

#define PHPAL_MIFARE_SW_ID 0x02
ID for Software MIFARE layer. More...

Functions

phStatus_t phpalMifare_Sw_Init (phpalMifare_Sw_DataParams_t *pDataParams, uint16_t wSizeOfDataParams, void *pHalDataParams, void *pPalI14443p4DataParams)
Initialize this layer. More...

Detailed Description

Macro Definition Documentation

§ PHPAL_MIFARE_SW_ID

#define PHPAL_MIFARE_SW_ID 0x02

ID for Software MIFARE layer.

Function Documentation

§ phpalMifare_Sw_Init()

phStatus_t phpalMifare_Sw_Init | ( | phpalMifare_Sw_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams,
 |  | void * | pHalDataParams,
 |  | void * | pPalI14443p4DataParams
 | ) |  |

Initialize this layer.

Remark: pPalI14443p4DataParams can be NULL in case phpalMifare_ExchangeL4 and phpalMifare_ExchangePc are not needed.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wSizeOfDataParams | Specifies the size of the data parameter structure.
[in] | pHalDataParams | Pointer to the parameter structure of the underlying HAL layer.
[in] | pPalI14443p4DataParams | Pointer to the parameter structure of the underlying ISO14443-4 layer.


NXP NFC Reader Library: phpalMifare_Sw_DataParams_t Struct Reference

Data Fields
phpalMifare_Sw_DataParams_t Struct Reference
Protocol Abstraction Layer » MIFARE(R) » Component : Software

Software PAL-MIFARE parameter structure. More...

Data Fields

uint16_t wId
Layer ID for this component, NEVER MODIFY!
void * | pHalDataParams
Pointer to the parameter structure of the underlying HAL layer. More...
void * | pPalI14443p4DataParams
Pointer to the parameter structure of the underlying ISO14443-4 layer. More...

Detailed Description

Software PAL-MIFARE parameter structure.

Field Documentation

§ pHalDataParams

void* phpalMifare_Sw_DataParams_t::pHalDataParams

Pointer to the parameter structure of the underlying HAL layer.

§ pPalI14443p4DataParams

void* phpalMifare_Sw_DataParams_t::pPalI14443p4DataParams

Pointer to the parameter structure of the underlying ISO14443-4 layer.

The documentation for this struct was generated from the following file:
  • phpalMifare.h


NXP NFC Reader Library: PhpalMifare_Stub

PhpalMifare_Stub
Protocol Abstraction Layer » MIFARE(R)
Collaboration diagram for PhpalMifare_Stub:


NXP NFC Reader Library: ISO/IEC 14443-4mC

Modules | Functions
ISO/IEC 14443-4mC
Protocol Abstraction Layer

This component implements the PICC side of ISO/IEC 14443-4 Protocol. More...

Collaboration diagram for ISO/IEC 14443-4mC:

Modules

Component : Software

Functions

phStatus_t | phpalI14443p4mC_ResetProtocol (void *pDataParams)
Reset protocol parameters. More...
phStatus_t | phpalI14443p4mC_Activate (void *pDataParams, uint8_t *pRats, uint8_t bRatsLength, uint8_t *pAts, uint16_t wAtsLength)
Validates received RATS request and send ATS response. More...
phStatus_t | phpalI14443p4mC_Receive (void *pDataParams, uint16_t wOption, uint8_t **ppRxBuffer, uint16_t *pRxLength)
Perform receive operation and validate received block. More...
phStatus_t | phpalI14443p4mC_Transmit (void *pDataParams, uint16_t wOption, uint8_t *pTxBuffer, uint16_t wTxLength)
Transmit I-Block block. More...
phStatus_t | phpalI14443p4mC_Wtx (void *pDataParams)
Sends WTX request and receive WTX response. More...
phStatus_t | phpalI14443p4mC_SetConfig (void *pDataParams, uint16_t wConfig, uint16_t wValue)
Set configuration parameter. More...
phStatus_t | phpalI14443p4mC_GetConfig (void *pDataParams, uint16_t wConfig, uint16_t *pValue)
Get configuration parameter. More...

ISO14443-4 card mode data rates

#define | PHPAL_I14443P4MC_106 0x00
Set communication speed to 106 kbs. More...
#define | PHPAL_I14443P4MC_212 0x01
Set communication speed to 212 kbs. More...
#define | PHPAL_I14443P4MC_424 0x02
Set communication speed to 424 kbs. More...
#define | PHPAL_I14443P4MC_848 0x04
Set communication speed to 848 kbs. More...

ISO14443-4 card mode states

#define | PHPAL_I14443P4MC_STATE_NONE 0x00U
Initialized State. More...
#define | PHPAL_I14443P4MC_STATE_ATS 0x01U
State once we send successful ATS for RATS. More...
#define | PHPAL_I14443P4MC_STATE_PPS 0x02U
State once we receive PPS Request. More...
#define | PHPAL_I14443P4MC_STATE_RX 0x03U
Internal State once we are in Receive State. More...
#define | PHPAL_I14443P4MC_STATE_TX_I 0x04U
State once we have received successful I (Information) Block. More...
#define | PHPAL_I14443P4MC_STATE_TX_R 0x05U
State once we have received R Block. More...
#define | PHPAL_I14443P4MC_STATE_WTX 0x07U
State once we have received S Block (WTX). More...
#define | PHPAL_I14443P4MC_STATE_DESELECT 0x08U
State once we have received S Block (DESELECT). More...
#define | PHPAL_I14443P4MC_STATE_PARAMETERS 0x09U
State once we have received S Block (PARAMETERS). More...
#define | PHPAL_I14443P4MC_STATE_RESEND 0x0AU
State to handle errors, like in case of NAK. More...
#define | PHPAL_I14443P4MC_STATE_RXCHAINING 0x0BU
State to handle RX Data Chaining. More...
#define | PHPAL_I14443P4MC_STATE_TXCHAINING 0x0CU
State to handle TX Data Chaining. More...

ISO14443-4 card mode configuration parameters

#define | PHPAL_I14443P4MC_CONFIG_WTX 0x0000U
Enable/Disable WTX feature. More...
#define | PHPAL_I14443P4MC_CONFIG_WTX_VALUE 0x0001U
Set the WTX value. More...
#define | PHPAL_I14443P4MC_CONFIG_BLOCKNO 0x0002U
Get the value of current ISO14443-4 protocol block number. More...
#define | PHPAL_I14443P4MC_CONFIG_FSDI 0x0003U
Get the FSDI value. More...
#define | PHPAL_I14443P4MC_CONFIG_MODE 0x0004U
Set/Get the operation mode (RD_LIB_MODE_NFC or RD_LIB_MODE_ISO). More...
#define | PHPAL_I14443P4MC_CONFIG_FSD 0x0005U
Get the current frame size (FSD) value. More...
#define | PHPAL_I14443P4MC_CONFIG_WT_PERCENTAGE 0x0006U
Set/Get the percentage of actual time to be used in WTX timer. More...
#define | PHPAL_I14443P4MC_CONFIG_WT_DELTA 0x0007U
Set/Get the delta time to be subtracted from the time in WTX timer. More...
#define | PHPAL_I14443P4MC_CONFIG_CID_PRESENCE 0x0008U
Check if CID is present in current received block. More...
#define | PHPAL_I14443P4MC_CONFIG_NAD_PRESENCE 0x0009U
Check if NAD is present in current received I-block. More...

Detailed Description

This component implements the PICC side of ISO/IEC 14443-4 Protocol.

Macro Definition Documentation

§ PHPAL_I14443P4MC_106

#define PHPAL_I14443P4MC_106 0x00

Set communication speed to 106 kbs.

§ PHPAL_I14443P4MC_212

#define PHPAL_I14443P4MC_212 0x01

Set communication speed to 212 kbs.

§ PHPAL_I14443P4MC_424

#define PHPAL_I14443P4MC_424 0x02

Set communication speed to 424 kbs.

§ PHPAL_I14443P4MC_848

#define PHPAL_I14443P4MC_848 0x04

Set communication speed to 848 kbs.

§ PHPAL_I14443P4MC_STATE_NONE

#define PHPAL_I14443P4MC_STATE_NONE 0x00U

Initialized State.

§ PHPAL_I14443P4MC_STATE_ATS

#define PHPAL_I14443P4MC_STATE_ATS 0x01U

State once we send successful ATS for RATS.

§ PHPAL_I14443P4MC_STATE_PPS

#define PHPAL_I14443P4MC_STATE_PPS 0x02U

State once we receive PPS Request.

§ PHPAL_I14443P4MC_STATE_RX

#define PHPAL_I14443P4MC_STATE_RX 0x03U

Internal State once we are in Receive State.

§ PHPAL_I14443P4MC_STATE_TX_I

#define PHPAL_I14443P4MC_STATE_TX_I 0x04U

State once we have received successful I (Information) Block.

§ PHPAL_I14443P4MC_STATE_TX_R

#define PHPAL_I14443P4MC_STATE_TX_R 0x05U

State once we have received R Block.

§ PHPAL_I14443P4MC_STATE_WTX

#define PHPAL_I14443P4MC_STATE_WTX 0x07U

State once we have received S Block (WTX).

§ PHPAL_I14443P4MC_STATE_DESELECT

#define PHPAL_I14443P4MC_STATE_DESELECT 0x08U

State once we have received S Block (DESELECT).

§ PHPAL_I14443P4MC_STATE_PARAMETERS

#define PHPAL_I14443P4MC_STATE_PARAMETERS 0x09U

State once we have received S Block (PARAMETERS).

§ PHPAL_I14443P4MC_STATE_RESEND

#define PHPAL_I14443P4MC_STATE_RESEND 0x0AU

State to handle errors, like in case of NAK.

§ PHPAL_I14443P4MC_STATE_RXCHAINING

#define PHPAL_I14443P4MC_STATE_RXCHAINING 0x0BU

State to handle RX Data Chaining.

§ PHPAL_I14443P4MC_STATE_TXCHAINING

#define PHPAL_I14443P4MC_STATE_TXCHAINING 0x0CU

State to handle TX Data Chaining.

§ PHPAL_I14443P4MC_CONFIG_WTX

#define PHPAL_I14443P4MC_CONFIG_WTX 0x0000U

Enable/Disable WTX feature.

§ PHPAL_I14443P4MC_CONFIG_WTX_VALUE

#define PHPAL_I14443P4MC_CONFIG_WTX_VALUE 0x0001U

Set the WTX value.

§ PHPAL_I14443P4MC_CONFIG_BLOCKNO

#define PHPAL_I14443P4MC_CONFIG_BLOCKNO 0x0002U

Get the value of current ISO14443-4 protocol block number.

§ PHPAL_I14443P4MC_CONFIG_FSDI

#define PHPAL_I14443P4MC_CONFIG_FSDI 0x0003U

Get the FSDI value.

§ PHPAL_I14443P4MC_CONFIG_MODE

#define PHPAL_I14443P4MC_CONFIG_MODE 0x0004U

Set/Get the operation mode (RD_LIB_MODE_NFC or RD_LIB_MODE_ISO).

§ PHPAL_I14443P4MC_CONFIG_FSD

#define PHPAL_I14443P4MC_CONFIG_FSD 0x0005U

Get the current frame size (FSD) value.

§ PHPAL_I14443P4MC_CONFIG_WT_PERCENTAGE

#define PHPAL_I14443P4MC_CONFIG_WT_PERCENTAGE 0x0006U

Set/Get the percentage of actual time to be used in WTX timer.

§ PHPAL_I14443P4MC_CONFIG_WT_DELTA

#define PHPAL_I14443P4MC_CONFIG_WT_DELTA 0x0007U

Set/Get the delta time to be subtracted from the time in WTX timer.

§ PHPAL_I14443P4MC_CONFIG_CID_PRESENCE

#define PHPAL_I14443P4MC_CONFIG_CID_PRESENCE 0x0008U

Check if CID is present in current received block.

1 - Present; 0 - Not present.

§ PHPAL_I14443P4MC_CONFIG_NAD_PRESENCE

#define PHPAL_I14443P4MC_CONFIG_NAD_PRESENCE 0x0009U

Check if NAD is present in current received I-block.

1 - Present; 0 - Not present.

Function Documentation

§ phpalI14443p4mC_ResetProtocol()

phStatus_t phpalI14443p4mC_ResetProtocol ( void * pDataParams )

Reset protocol parameters.

Removes any state information stored in previous runs.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phpalI14443p4mC_Activate()

phStatus_t phpalI14443p4mC_Activate | ( | void * | pDataParams,
 |  | uint8_t * | pRats,
 |  | uint8_t | bRatsLength,
 |  | uint8_t * | pAts,
 |  | uint16_t | wAtsLength
 | ) |  |

Validates received RATS request and send ATS response.

The user has to call phpalI14443p4mC_Receive() once this function has returned with success status.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_EXT_RF_ERROR | External field turned OFF.
PH_ERR_PROTOCOL_ERROR | Protocol Error, RATS is invalid.
PH_ERR_INVALID_PARAMETER | Invalid input parameter, ATS is invalid.
Other | depending on implementation and underlying components.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure
[in] | pRats | Pointer to received RATS request
[in] | bRatsLength | RATS Length
[in] | pAts | ATS to be sent
[in] | wAtsLength | ATS length

§ phpalI14443p4mC_Receive()

phStatus_t phpalI14443p4mC_Receive | ( | void * | pDataParams,
 |  | uint16_t | wOption,
 |  | uint8_t ** | ppRxBuffer,
 |  | uint16_t * | pRxLength
 | ) |  |

Perform receive operation and validate received block.

Used to receive the next command from PCD after the Activate() is successful. Responses to S-block and R-Block are sent internally. Response to I-Block can be sent using phpalI14443p4mC_Transmit. This function also handles PPS request sent from the reader by sending a PPS response. An I-Frame received from the reader is returned back to the user. Handles DESELECT by sending DESELECT response Starts WTx timer before returning with the valid received packet to the caller

wOption can be one of:

  • PH_RECEIVE_DEFAULT
  • PH_RECEIVE_CHAINING
  • PH_RECEIVE_CHAINING_BUFSIZE
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_SUCCESS_CHAINING | RX chaining incomplete.
PH_ERR_SUCCESS_DESELECTED | Card got DESELECTED.
PH_ERR_EXT_RF_ERROR | External field turned OFF.
PH_ERR_BUFFER_OVERFLOW | Buffer overflow.
Other | depending on implementation and underlying components.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wOption | Option parameter.
[out] | ppRxBuffer | Pointer to received data.
[out] | pRxLength | Number of received data bytes.

§ phpalI14443p4mC_Transmit()

phStatus_t phpalI14443p4mC_Transmit | ( | void * | pDataParams,
 |  | uint16_t | wOption,
 |  | uint8_t * | pTxBuffer,
 |  | uint16_t | wTxLength
 | ) |  |

Transmit I-Block block.

This function transmits an information block. Stops the WTx timer if it is running.

wOption can be one of:

  • PH_TRANSMIT_DEFAULT
  • PH_TRANSMIT_BUFFER_FIRST
  • PH_TRANSMIT_BUFFER_CONT
  • PH_TRANSMIT_BUFFER_LAST
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_EXT_RF_ERROR | External field turned OFF.
PH_ERR_BUFFER_OVERFLOW | buffer overflow.
Other | depending on implementation and underlying components.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wOption | Option parameter.
[in] | pTxBuffer | I-Block data to transmit.
[in] | wTxLength | Length of data to transmit.

§ phpalI14443p4mC_Wtx()

phStatus_t phpalI14443p4mC_Wtx ( void * pDataParams )

Sends WTX request and receive WTX response.

Wait time extension request is sent by this function and this will block till it receives a response from the external reader.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Protocol Error.
Other | Depending on implementation and underlying component.
Parameters
[in] pDataParams Pointer to this layer's parameter structure

§ phpalI14443p4mC_SetConfig()

phStatus_t phpalI14443p4mC_SetConfig | ( | void * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t | wValue
 | ) |  |

Set configuration parameter.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | Parameter value is invalid.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wConfig | Configuration identifier.
[in] | wValue | Configuration value.

§ phpalI14443p4mC_GetConfig()

phStatus_t phpalI14443p4mC_GetConfig | ( | void * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t * | pValue
 | ) |  |

Get configuration parameter.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | Parameter value is invalid.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wConfig | Configuration identifier.
[out] | pValue | Configuration value.


NXP NFC Reader Library: Component : Software

Data Structures | Macros | Typedefs | Functions
Component : Software
Protocol Abstraction Layer » ISO/IEC 14443-4mC
Collaboration diagram for Component : Software:

Data Structures

struct phpalI14443p4mC_Sw_DataParams_t
ISO14443-4 card mode PAL parameter structure. More...

Macros

#define PHPAL_I14443P4MC_SW_ID 0x01U
ID for software I18092 MT component. More...

Typedefs

typedef void(* pWtxTimerCallback) (uint8_t bTimerId)
WTX timer call-back function type.

Functions

phStatus_t phpalI14443p4mC_Sw_Init (phpalI14443p4mC_Sw_DataParams_t *pDataParams, uint16_t wSizeOfDataParams, void *pHalDataParams, pWtxTimerCallback pWtxCallback)
Initializes this layer. More...

Detailed Description

Macro Definition Documentation

§ PHPAL_I14443P4MC_SW_ID

#define PHPAL_I14443P4MC_SW_ID 0x01U

ID for software I18092 MT component.

Event posted by response time extension timer ISR. Reader library thread listens to this event and sends the RTOx packet.

Function Documentation

§ phpalI14443p4mC_Sw_Init()

phStatus_t phpalI14443p4mC_Sw_Init | ( | phpalI14443p4mC_Sw_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams,
 |  | void * | pHalDataParams,
 |  | pWtxTimerCallback | pWtxCallback
 | ) |  |

Initializes this layer.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wSizeOfDataParams | Specifies the size of the data parameter structure.
[in] | pHalDataParams | Pointer to the parameter structure of the underlying layer.
[in] | pWtxCallback | Pointer to WTX timer call-back function


NXP NFC Reader Library: phpalI14443p4mC_Sw_DataParams_t Struct Reference

Data Fields
phpalI14443p4mC_Sw_DataParams_t Struct Reference
Protocol Abstraction Layer » ISO/IEC 14443-4mC » Component : Software

ISO14443-4 card mode PAL parameter structure. More...

Data Fields

uint16_t wId
Layer ID for this component, NEVER MODIFY. More...
uint16_t wLastTxLen
Length of last I block send. More...
void * | pHalDataParams
Pointer to the parameter structure of underlying hardware component. More...
void * | pPlatform
Pointer to Platform layer. More...
void * | pTimerHandle
Timer Handle (For WTX). More...
uint8_t bDisableWtx
WTX Disabler (i.e. More...
uint8_t bWtx
Frame Waiting Time Extension. More...
uint8_t bFsdi
FSDI parameter. More...
uint8_t bFsci
ATS FSCI parameter. More...
uint8_t bDr
ATS DR parameter. More...
uint8_t bDs
ATS DS parameter. More...
uint8_t bUnequalDrDs
DR and DS are different. More...
uint8_t bFwi
ATS FWI parameter. More...
uint8_t bSfgi
ATS SFGI parameter. More...
uint8_t bCidEnable
CID, Enabled = 1 or Disabled. More...
uint8_t bCidPresence
Flag to indicate CID presence in current command-response pair. More...
uint8_t bCid
CID parameter. More...
uint8_t bNadEnable
NAD, Enabled = 1 or Disabled. More...
uint8_t bNadPresence
Flag to indicate NAD presence in current command-response pair. More...
uint8_t bNad
NAD parameter. More...
uint8_t bStateNow
Current state. More...
uint8_t bBlockNr
Current block number. More...
uint8_t bChainingRx
We are chaining Rx. More...
uint8_t bChainingTx
We are chaining Tx. More...
uint8_t bOpMode
Operating mode - ISO or NFC. More...
uint16_t wWtDelta
Holds the configured delta time to be subtracted from the time in WTX timer. More...
uint8_t bWtPercentage
Percentage of actual wait time to be used in WTX timer. More...
pWtxTimerCallback | pWtxTimerCallback
Holds WTX timer call-back function address. More...

Detailed Description

ISO14443-4 card mode PAL parameter structure.

Field Documentation

§ wId

uint16_t phpalI14443p4mC_Sw_DataParams_t::wId

Layer ID for this component, NEVER MODIFY.

§ wLastTxLen

uint16_t phpalI14443p4mC_Sw_DataParams_t::wLastTxLen

Length of last I block send.

§ pHalDataParams

void* phpalI14443p4mC_Sw_DataParams_t::pHalDataParams

Pointer to the parameter structure of underlying hardware component.

§ pPlatform

void* phpalI14443p4mC_Sw_DataParams_t::pPlatform

Pointer to Platform layer.

§ pTimerHandle

void* phpalI14443p4mC_Sw_DataParams_t::pTimerHandle

Timer Handle (For WTX).

§ bDisableWtx

uint8_t phpalI14443p4mC_Sw_DataParams_t::bDisableWtx

WTX Disabler (i.e.

'0' if WTX enabled).

§ bWtx

uint8_t phpalI14443p4mC_Sw_DataParams_t::bWtx

Frame Waiting Time Extension.

§ bFsdi

uint8_t phpalI14443p4mC_Sw_DataParams_t::bFsdi

FSDI parameter.

§ bFsci

uint8_t phpalI14443p4mC_Sw_DataParams_t::bFsci

ATS FSCI parameter.

§ bDr

uint8_t phpalI14443p4mC_Sw_DataParams_t::bDr

ATS DR parameter.

§ bDs

uint8_t phpalI14443p4mC_Sw_DataParams_t::bDs

ATS DS parameter.

§ bUnequalDrDs

uint8_t phpalI14443p4mC_Sw_DataParams_t::bUnequalDrDs

DR and DS are different.

§ bFwi

uint8_t phpalI14443p4mC_Sw_DataParams_t::bFwi

ATS FWI parameter.

§ bSfgi

uint8_t phpalI14443p4mC_Sw_DataParams_t::bSfgi

ATS SFGI parameter.

§ bCidEnable

uint8_t phpalI14443p4mC_Sw_DataParams_t::bCidEnable

CID, Enabled = 1 or Disabled.

§ bCidPresence

uint8_t phpalI14443p4mC_Sw_DataParams_t::bCidPresence

Flag to indicate CID presence in current command-response pair.

§ bCid

uint8_t phpalI14443p4mC_Sw_DataParams_t::bCid

CID parameter.

§ bNadEnable

uint8_t phpalI14443p4mC_Sw_DataParams_t::bNadEnable

NAD, Enabled = 1 or Disabled.

§ bNadPresence

uint8_t phpalI14443p4mC_Sw_DataParams_t::bNadPresence

Flag to indicate NAD presence in current command-response pair.

§ bNad

uint8_t phpalI14443p4mC_Sw_DataParams_t::bNad

NAD parameter.

§ bStateNow

uint8_t phpalI14443p4mC_Sw_DataParams_t::bStateNow

Current state.

§ bBlockNr

uint8_t phpalI14443p4mC_Sw_DataParams_t::bBlockNr

Current block number.

§ bChainingRx

uint8_t phpalI14443p4mC_Sw_DataParams_t::bChainingRx

We are chaining Rx.

§ bChainingTx

uint8_t phpalI14443p4mC_Sw_DataParams_t::bChainingTx

We are chaining Tx.

§ bOpMode

uint8_t phpalI14443p4mC_Sw_DataParams_t::bOpMode

Operating mode - ISO or NFC.

§ wWtDelta

uint16_t phpalI14443p4mC_Sw_DataParams_t::wWtDelta

Holds the configured delta time to be subtracted from the time in WTX timer.

§ bWtPercentage

uint8_t phpalI14443p4mC_Sw_DataParams_t::bWtPercentage

Percentage of actual wait time to be used in WTX timer.

§ pWtxTimerCallback

pWtxTimerCallback phpalI14443p4mC_Sw_DataParams_t::pWtxTimerCallback

Holds WTX timer call-back function address.

The documentation for this struct was generated from the following file:
  • phpalI14443p4mC.h


NXP NFC Reader Library: Felica

Modules | Functions
Felica
Protocol Abstraction Layer

These Components implement the Felica (contactless) protocol. More...

Collaboration diagram for Felica:

Modules

Component : Software

Functions

phStatus_t | phpalFelica_ReqC (void *pDataParams, uint8_t *pSystemCode, uint8_t bNumTimeSlots, uint8_t **ppRxBuffer, uint16_t *wLen)
Perform the Felica ReqC command. More...
phStatus_t | phpalFelica_ActivateCard (void *pDataParams, uint8_t *pIDmPMm, uint8_t bIDmPMmLength, uint8_t *pSystemCode, uint8_t bNumTimeSlots, uint8_t *pRxBuffer, uint8_t *pRxLength, uint8_t *pMoreCardsAvailable)
This command activates a Felica card. More...
phStatus_t | phpalFelica_Exchange (void *pDataParams, uint16_t wOption, uint16_t wN, uint8_t *pTxBuffer, uint16_t wTxLength, uint8_t **ppRxBuffer, uint16_t *pRxLength)
Exchange data with the Picc. More...
phStatus_t | phpalFelica_SetConfig (void *pDataParams, uint16_t wConfig, uint16_t wValue)
Set configuration parameter. More...
phStatus_t | phpalFelica_GetConfig (void *pDataParams, uint16_t wConfig, uint16_t *pValue)
Get configuration parameter. More...
phStatus_t | phpalFelica_GetSerialNo (void *pDataParams, uint8_t *pUidOut, uint8_t *pLenUidOut)
As the card receives the Get Serial Number command, it shall respond with that one. More...
phStatus_t | phpalFelica_GetFrameInfo (void *pDataParams, uint8_t bFrameNum, uint8_t *pResponseBuffer, uint16_t *pwStatus, uint8_t **pID, uint8_t *pLen)
This function will provide information of given frame number(1 to N). More...
phStatus_t | phpalFelica_SetSerialNo (void *pDataParams, uint8_t *pIDmPMm)
This function will update IDmPMm in this layer's parameter structure. More...

Lengths

#define | PHPAL_FELICA_IDM_LENGTH 8U
UID length in bytes. More...
#define | PHPAL_FELICA_PMM_LENGTH 8U
PMm length in bytes. More...
#define | PHPAL_FELICA_BLOCK_LENGTH 4U
Block length in bytes. More...
#define | PHPAL_FELICA_PAGE_LENGTH 16U
Number of bytes per page. More...
#define | PHPAL_FELICA_ATQC_LENGTH 17U
Length of ATQC. More...
#define | PHPAL_FELICA_RD_LENGTH 2U
Length of Request Data (RD) in ATQC. More...
#define | PHPAL_FELICA_TXLENGTH_MAX 254U
Maximum length of a transmission package. More...

Definitions of the time slots for the ReqC command

#define | PHPAL_FELICA_NUMSLOTS_1 0x00
Value for bNumSlots = 1. More...
#define | PHPAL_FELICA_NUMSLOTS_2 0x01
Value for bNumSlots = 2. More...
#define | PHPAL_FELICA_NUMSLOTS_4 0x03
Value for bNumSlots = 4. More...
#define | PHPAL_FELICA_NUMSLOTS_8 0x07
Value for bNumSlots = 8. More...
#define | PHPAL_FELICA_NUMSLOTS_16 0x0F
Value for bNumSlots = 16. More...
#define | PHPAL_FELICA_PREAMBLE_LEN_48BITS 0x00
Lengths More...
#define | PHPAL_FELICA_PREAMBLE_LEN_56BITS 0x02
Preamble of 56 Bits. More...
#define | PHPAL_FELICA_PREAMBLE_LEN_64BITS 0x03
Preamble of 64 Bits. More...
#define | PHPAL_FELICA_PREAMBLE_LEN_72BITS 0x04
Preamble of 72 Bits. More...

System Code

#define | PHPAL_FELICA_SYSTEM_CODE_BYTE_0 0xFFU
#define | PHPAL_FELICA_SYSTEM_CODE_BYTE_1 0xFFU

Felica Parameters

#define | PHPAL_FELICA_CONFIG_RC 0x0000U
Set / Get Request Code (RC).
#define | PH_PALFELICA_CONFIG_NUM_RESPONSE_FRAMES 0x0001U
Get total number of response frame received. More...
#define | PHPAL_FELICA_PREAMBLE_LENGTH 0x0002U
Set / Get Preamble Length.

Detailed Description

These Components implement the Felica (contactless) protocol.

Macro Definition Documentation

§ PHPAL_FELICA_IDM_LENGTH

#define PHPAL_FELICA_IDM_LENGTH 8U

UID length in bytes.

§ PHPAL_FELICA_PMM_LENGTH

#define PHPAL_FELICA_PMM_LENGTH 8U

PMm length in bytes.

§ PHPAL_FELICA_BLOCK_LENGTH

#define PHPAL_FELICA_BLOCK_LENGTH 4U

Block length in bytes.

§ PHPAL_FELICA_PAGE_LENGTH

#define PHPAL_FELICA_PAGE_LENGTH 16U

Number of bytes per page.

§ PHPAL_FELICA_ATQC_LENGTH

#define PHPAL_FELICA_ATQC_LENGTH 17U

Length of ATQC.

§ PHPAL_FELICA_RD_LENGTH

#define PHPAL_FELICA_RD_LENGTH 2U

Length of Request Data (RD) in ATQC.

§ PHPAL_FELICA_TXLENGTH_MAX

#define PHPAL_FELICA_TXLENGTH_MAX 254U

Maximum length of a transmission package.

§ PHPAL_FELICA_NUMSLOTS_1

#define PHPAL_FELICA_NUMSLOTS_1 0x00

Value for bNumSlots = 1.

§ PHPAL_FELICA_NUMSLOTS_2

#define PHPAL_FELICA_NUMSLOTS_2 0x01

Value for bNumSlots = 2.

§ PHPAL_FELICA_NUMSLOTS_4

#define PHPAL_FELICA_NUMSLOTS_4 0x03

Value for bNumSlots = 4.

§ PHPAL_FELICA_NUMSLOTS_8

#define PHPAL_FELICA_NUMSLOTS_8 0x07

Value for bNumSlots = 8.

§ PHPAL_FELICA_NUMSLOTS_16

#define PHPAL_FELICA_NUMSLOTS_16 0x0F

Value for bNumSlots = 16.

§ PHPAL_FELICA_PREAMBLE_LEN_48BITS

#define PHPAL_FELICA_PREAMBLE_LEN_48BITS 0x00

Lengths

Preamble of 48 Bits.

§ PHPAL_FELICA_PREAMBLE_LEN_56BITS

#define PHPAL_FELICA_PREAMBLE_LEN_56BITS 0x02

Preamble of 56 Bits.

§ PHPAL_FELICA_PREAMBLE_LEN_64BITS

#define PHPAL_FELICA_PREAMBLE_LEN_64BITS 0x03

Preamble of 64 Bits.

§ PHPAL_FELICA_PREAMBLE_LEN_72BITS

#define PHPAL_FELICA_PREAMBLE_LEN_72BITS 0x04

Preamble of 72 Bits.

§ PH_PALFELICA_CONFIG_NUM_RESPONSE_FRAMES

#define PH_PALFELICA_CONFIG_NUM_RESPONSE_FRAMES 0x0001U

Get total number of response frame received.

Invalid if phpalFelica_ReqC function called with slot number PHPAL_FELICA_NUMSLOTS_1

Function Documentation

§ phpalFelica_ReqC()

phStatus_t phpalFelica_ReqC | ( | void * | pDataParams,
 |  | uint8_t * | pSystemCode,
 |  | uint8_t | bNumTimeSlots,
 |  | uint8_t ** | ppRxBuffer,
 |  | uint16_t * | wLen
 | ) |  |

Perform the Felica ReqC command.

Note: This function waits until all cards in all time slots have had time to reply even though only the first response is returned.
The formula used is 1208us * (n-1) according to JIS X 6319-4:2005.

Response format when bNumTimeSlots greater than PHPAL_FELICA_NUMSLOTS_1

  0                                                                           28         31
  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  |   LEN  |               PAYLOAD(MAX 19 BYTES)              |     PAD      |   STATUS   |
  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Format of Status Byte.

  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  |      |              |      |L|  |  |  |  |                                          |
  |      |              |      |e|Co|Pr|Da|CL|                                          |
  | RFU  |     LEN      | RFU  |n|ll|ot|ta|Er|                  RFU                     |
  | [7:5]|     [4:0]    | [7:5]|E|De|Er|Er|ro|                                          |
  |      |              |      |r|t |r |r |r |                                          |
  |      |              |      |r|  |  |  |  |                                          |
  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  |<-------Byte 28----->|<------Byte 29----->|<------Byte 30----->|<------Byte 31------>|

Response format when bNumTimeSlots is PHPAL_FELICA_NUMSLOTS_1

  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  |                   IDmPMm[16]                       |     RD[Optional]    |
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pSystemCode | System-Code; uint8_t[2].
[in] | bNumTimeSlots | Number of time slots to use. Refer to e.g. PHPAL_FELICA_NUMSLOTS_1 for valid values.
[out] | ppRxBuffer | Pointer to the HAL Rx buffer. 32bytes / slot information in case of multiple slots or else a single response containing IDmPMm.
[out] | wLen | Length of the content in the buffer.

§ phpalFelica_ActivateCard()

phStatus_t phpalFelica_ActivateCard | ( | void * | pDataParams,
 |  | uint8_t * | pIDmPMm,
 |  | uint8_t | bIDmPMmLength,
 |  | uint8_t * | pSystemCode,
 |  | uint8_t | bNumTimeSlots,
 |  | uint8_t * | pRxBuffer,
 |  | uint8_t * | pRxLength,
 |  | uint8_t * | pMoreCardsAvailable
 | ) |  |

This command activates a Felica card.

Note: If an IDm is passed to this function, it is stored as the current IDm and no real activation is done.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pIDmPMm | IDm followed by PMm; If supplied it is stored and no real activation is done.
[in] | bIDmPMmLength | IDm length; 0 or 16.
[in] | pSystemCode | System-Code; uint8_t[2].
[in] | bNumTimeSlots | Number of timeslots to use. Refer to e.g. PHPAL_FELICA_NUMSLOTS_1 for valid values.
[out] | pRxBuffer | 8 bytes NFCID2 + 8 bytes PAD; uint8_t[16].
[out] | pRxLength | Length of received data. 0 or 16.
[out] | pMoreCardsAvailable | Whether there are more cards in the field or not; uint8_t.

§ phpalFelica_Exchange()

phStatus_t phpalFelica_Exchange | ( | void * | pDataParams,
 |  | uint16_t | wOption,
 |  | uint16_t | wN,
 |  | uint8_t * | pTxBuffer,
 |  | uint16_t | wTxLength,
 |  | uint8_t ** | ppRxBuffer,
 |  | uint16_t * | pRxLength
 | ) |  |

Exchange data with the Picc.

wOption can be one of:

  • PH_EXCHANGE_DEFAULT
  • PH_EXCHANGE_BUFFER_FIRST
  • PH_EXCHANGE_BUFFER_CONT
  • PH_EXCHANGE_BUFFER_LAST

Alternatively, the following bits can be combined:

  • PH_EXCHANGE_BUFFERED_BIT
  • PH_EXCHANGE_LEAVE_BUFFER_BIT
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wOption | Option parameter.
[in] | wN | N to calculate the response timeout.
[in] | pTxBuffer | Data to transmit; Length and IDm is added automatically.
[in] | wTxLength | Length of data to transmit.
[out] | ppRxBuffer | Pointer to received data; Length, response code and IDm are removed automatically.
[out] | pRxLength | number of received data bytes.

§ phpalFelica_SetConfig()

phStatus_t phpalFelica_SetConfig | ( | void * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t | wValue
 | ) |  |

Set configuration parameter.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wConfig | Configuration Identifier.
[in] | wValue | Configuration Value.

§ phpalFelica_GetConfig()

phStatus_t phpalFelica_GetConfig | ( | void * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t * | pValue
 | ) |  |

Get configuration parameter.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wConfig | Configuration Identifier.
[out] | pValue | Configuration Value.

§ phpalFelica_GetSerialNo()

phStatus_t phpalFelica_GetSerialNo | ( | void * | pDataParams,
 |  | uint8_t * | pUidOut,
 |  | uint8_t * | pLenUidOut
 | ) |  |

As the card receives the Get Serial Number command, it shall respond with that one.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_USE_CONDITION | No Serial number available at the moment.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[out] | pUidOut | Last Uid (IDm + PMm); uint8_t[16].
[out] | pLenUidOut | Length of Uid; 0 or 16.

§ phpalFelica_GetFrameInfo()

phStatus_t phpalFelica_GetFrameInfo | ( | void * | pDataParams,
 |  | uint8_t | bFrameNum,
 |  | uint8_t * | pResponseBuffer,
 |  | uint16_t * | pwStatus,
 |  | uint8_t ** | pID,
 |  | uint8_t * | pLen
 | ) |  |

This function will provide information of given frame number(1 to N).

It will provide pointer to IDmPMm if frame status is PH_ERR_SUCCESS. pwStatus can be one of:

  • PH_ERR_SUCCESS
  • PH_ERR_PROTOCOL_ERROR
  • PH_ERR_COLLISION_ERROR
  • PH_ERR_INTEGRITY_ERROR
  • PH_ERR_LENGTH_ERROR

Note: This function is only valid when function phpalFelica_ReqC is called with slot number greater than PHPAL_FELICA_NUMSLOTS_1.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bFrameNum | Frame number. Frame number 0 is invalid.
[in] | pResponseBuffer | The pointer to the entire Felica response as obtained from ReqC API.
[out] | pwStatus | Frame status. Status will be Success, or one of collision, length, integrity, protocol errors.
[out] | pID | Pointer to IDmPMm in case of wStatus being success.
[out] | pLen | Length of IDmPMm data. 2 Request Data (RD) bytes are optional. This will indicate exact length.

§ phpalFelica_SetSerialNo()

phStatus_t phpalFelica_SetSerialNo | ( | void * | pDataParams,
 |  | uint8_t * | pIDmPMm
 | ) |  |

This function will update IDmPMm in this layer's parameter structure.

This function must be call after card or device is activated.

Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pIDmPMm | 16 byte IDmPMm.


NXP NFC Reader Library: Component : Software

Data Structures | Macros | Functions
Component : Software
Protocol Abstraction Layer » Felica
Collaboration diagram for Component : Software:

Data Structures

struct phpalFelica_Sw_DataParams_t
Felica parameter structure. More...

Macros

#define PHPAL_FELICA_SW_ID 0x01
ID for Software Felica layer.

Functions

phStatus_t phpalFelica_Sw_Init (phpalFelica_Sw_DataParams_t *pDataParams, uint16_t wSizeOfDataParams, void *pHalDataParams)
Initialise this layer. More...

Detailed Description

Function Documentation

§ phpalFelica_Sw_Init()

phStatus_t phpalFelica_Sw_Init | ( | phpalFelica_Sw_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams,
 |  | void * | pHalDataParams
 | ) |  |

Initialise this layer.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wSizeOfDataParams | Specifies the size of the data parameter structure.
[in] | pHalDataParams | Pointer to the parameter structure of the underlying layer.


NXP NFC Reader Library: phpalFelica_Sw_DataParams_t Struct Reference

Data Fields
phpalFelica_Sw_DataParams_t Struct Reference
Protocol Abstraction Layer » Felica » Component : Software

Felica parameter structure. More...

Data Fields

uint16_t wId
Layer ID for this component, NEVER MODIFY!
void * pHalDataParams
Pointer to the parameter structure of the underlying layer. More...
uint8_t aIDmPMm [PHPAL_FELICA_IDM_LENGTH+PHPAL_FELICA_PMM_LENGTH+PHPAL_FELICA_RD_LENGTH]
The Cards Manufacture ID (IDm), Manufacture Parameters (PMm) and Request Data length. More...
uint8_t bIDmPMmValid
Whether the stored IDm and PMm are valid (1) or not (0). More...
uint8_t bLength
Current data length, used internally for Exchange function. More...
uint8_t bRequestCode
Request code (RC) field of ReqC, default value is '0'. More...
uint8_t bTotalFrames
Holds total number of response frame received. More...
uint8_t bPreambleLen
Preamble length used for reception from tag. More...

Detailed Description

Felica parameter structure.

Field Documentation

§ pHalDataParams

void* phpalFelica_Sw_DataParams_t::pHalDataParams

Pointer to the parameter structure of the underlying layer.

§ aIDmPMm

uint8_t phpalFelica_Sw_DataParams_t::aIDmPMm[PHPAL_FELICA_IDM_LENGTH+PHPAL_FELICA_PMM_LENGTH+PHPAL_FELICA_RD_LENGTH]

The Cards Manufacture ID (IDm), Manufacture Parameters (PMm) and Request Data length.

§ bIDmPMmValid

uint8_t phpalFelica_Sw_DataParams_t::bIDmPMmValid

Whether the stored IDm and PMm are valid (1) or not (0).

§ bLength

uint8_t phpalFelica_Sw_DataParams_t::bLength

Current data length, used internally for Exchange function.

§ bRequestCode

uint8_t phpalFelica_Sw_DataParams_t::bRequestCode

Request code (RC) field of ReqC, default value is '0'.

§ bTotalFrames

uint8_t phpalFelica_Sw_DataParams_t::bTotalFrames

Holds total number of response frame received.

Value ranges from 1 to N
Ignored if phpalFelica_ReqC function called with slot number PHPAL_FELICA_NUMSLOTS_1.

§ bPreambleLen

uint8_t phpalFelica_Sw_DataParams_t::bPreambleLen

Preamble length used for reception from tag.

The documentation for this struct was generated from the following file:
  • phpalFelica.h


NXP NFC Reader Library: ISO/IEC 15693 / ISO/IEC 18000-3M1

Modules | Functions
ISO/IEC 15693 / ISO/IEC 18000-3M1
Protocol Abstraction Layer

These component implements the protocol layer (activation) commands of ISO/IEC 15693 (ISO/IEC 18000-3M1) vicinity protocol. More...

Collaboration diagram for ISO/IEC 15693 / ISO/IEC 18000-3M1:

Modules

Component : Software

Functions

phStatus_t | phpalSli15693_Inventory (void *pDataParams, uint8_t bFlags, uint8_t bAfi, uint8_t *pMask, uint8_t bMaskBitLength, uint8_t *pDsfid, uint8_t *pUid)
Perform a ISO15693 Inventory command. More...
phStatus_t | phpalSli15693_SendEof (void *pDataParams, uint8_t bOption, uint8_t *pDsfid, uint8_t *pUid, uint8_t *pUidLength, uint8_t *pData, uint16_t *pDataLength)
Send a ISO15693 EOF (End of Frame). More...
phStatus_t | phpalSli15693_StayQuiet (void *pDataParams)
Perform a ISO15693 StayQuiet command. More...
phStatus_t | phpalSli15693_Select (void *pDataParams)
Perform a ISO15693 Select command. More...
phStatus_t | phpalSli15693_ResetToReady (void *pDataParams)
Perform a ISO15693 ResetToReady command. More...
phStatus_t | phpalSli15693_Exchange (void *pDataParams, uint16_t wOption, uint8_t *pTxBuffer, uint16_t wTxLength, uint8_t **ppRxBuffer, uint16_t *pRxLength)
Perform ISO15693 Data Exchange with VICC. More...
phStatus_t | phpalSli15693_ActivateCard (void *pDataParams, uint8_t bOption, uint8_t bFlags, uint8_t bAfi, uint8_t *pMask, uint8_t bMaskBitLength, uint8_t *pDsfid, uint8_t *pUid, uint8_t *pMoreCardsAvailable)
Perform ISO15693 ActivateCard command. More...
phStatus_t | phpalSli15693_GetSerialNo (void *pDataParams, uint8_t *pUid, uint8_t *bUidLength)
Retrieve the serial number (UID). More...
phStatus_t | phpalSli15693_SetSerialNo (void *pDataParams, uint8_t *pUid, uint8_t bUidLength)
Set serial number (UID). More...
phStatus_t | phpalSli15693_SetConfig (void *pDataParams, uint16_t wConfig, uint16_t wValue)
Set value of the specified configuration identifier. More...
phStatus_t | phpalSli15693_GetConfig (void *pDataParams, uint16_t wConfig, uint16_t *pValue)
Get value of the specified configuration identifier. More...
phStatus_t | phpalSli15693_InventoryRead (void *pDataParams, uint8_t bFlags, uint8_t bAfi, uint8_t *pMask, uint8_t bMaskBitLength, uint8_t bBlockNo, uint16_t wNoOfBlocks, uint8_t *pUid, uint8_t *pUidLength, uint8_t *pData, uint16_t *pDataLength)
Perform ICODE SLI InventoryRead command. More...
phStatus_t | phpalSli15693_InventoryReadExtended (void *pDataParams, uint8_t bFlags, uint8_t bAfi, uint8_t bExtended, uint8_t bExtendedOptions, uint8_t *pMask, uint8_t bMaskBitLength, uint8_t bBlockNo, uint16_t wNoOfBlocks, uint8_t *pUid, uint8_t *pUidLength, uint8_t *pData, uint16_t *pDataLength)
Perform ICODE SLI InventoryRead command in extended mode. More...
phStatus_t | phpalSli15693_FastInventoryRead (void *pDataParams, uint8_t bFlags, uint8_t bAfi, uint8_t *pMask, uint8_t bMaskBitLength, uint8_t bBlockNo, uint16_t wNoOfBlocks, uint8_t *pUid, uint8_t *pUidLength, uint8_t *pData, uint16_t *pDataLength)
Perform ICODE SLI FastInventoryRead command. More...
phStatus_t | phpalSli15693_InventoryPageRead (void *pDataParams, uint8_t bFlags, uint8_t bAfi, uint8_t *pMask, uint8_t bMaskBitLength, uint8_t bPageNo, uint16_t wNoOfPages, uint8_t *pUid, uint8_t *pUidLength, uint8_t *pData, uint16_t *pDataLength)
Perform ICODE SLI InventoryPageRead command. More...
phStatus_t | phpalSli15693_FastInventoryPageRead (void *pDataParams, uint8_t bFlags, uint8_t bAfi, uint8_t *pMask, uint8_t bMaskBitLength, uint8_t bPageNo, uint16_t wNoOfPages, uint8_t *pUid, uint8_t *pUidLength, uint8_t *pData, uint16_t *pDataLength)
Perform ICODE SLI FastInventoryPageRead command. More...
phStatus_t | phpalSli15693_StayQuietPersistent (void *pDataParams)
Perform ICODE SLI Stay quite persistent command. More...

Configuration Types

These options shall be used along with phpalSli15693_SetConfig and phpalSli15693_GetConfig to configure PAL Sli15693 layer.

#define | PHPAL_SLI15693_CONFIG_FLAGS 0x0000U
Set or get the flags field. More...
#define | PHPAL_SLI15693_CONFIG_ADD_INFO 0x0001U
Get the additional error info. More...
#define | PHPAL_SLI15693_CONFIG_TIMEOUT_US 0x0002U
Set or get the current timeout in microseconds.
#define | PHPAL_SLI15693_CONFIG_TIMEOUT_MS 0x0003U
Set or get the current timeout in milliseconds.

EOF command options

Options for EOF command.

#define | PHPAL_SLI15693_EOF_NEXT_SLOT 0x00
Send an EOF with timing configuration for an inventory round.
#define | PHPAL_SLI15693_EOF_NEXT_SLOT_INV_READ 0x01
Send an EOF with timing configuration for inventory read or fast inventoryread" or \ref phpalSli15693_InventoryPageRead "inventory page read" or \ref phpalSli15693_FastInventoryPageRead "fast inventory page read".
#define | PHPAL_SLI15693_EOF_WRITE_ALIKE 0x02
Send an EOF with timing configuration for write alike commands without long waiting time PHPAL_SLI15693_TIMEOUT_LONG_US.
#define | PHPAL_SLI15693_EOF_WRITE_ALIKE_WITH_WAIT 0x03
Send an EOF with timing configuration for write alike commands with long waiting time PHPAL_SLI15693_TIMEOUT_LONG_US.

Activate Card command options

Options for activate card.

#define | PHPAL_SLI15693_ACTIVATE_ADDRESSED 0x0000U
Card will be in addressed state (i.e. More...
#define | PHPAL_SLI15693_ACTIVATE_SELECTED 0x0001U
Card will be in selected state (i.e. More...
#define | PHPAL_SLI15693_ACTIVATE_DEFAULT 0x0000U
Default option. More...

Timeouts.

#define | PHPAL_SLI15693_TIMEOUT_SHORT_US 324U
Timeout T1 in microseconds as defined in ISO/IEC 15693, 9.1.4.
#define | PHPAL_SLI15693_TIMEOUT_LONG_US 20000U
Extended timeout value in microseconds for long timeouts.

Request Flags 1 to 4 according to ISO 15693.

In a request, the field "flags" specifies the actions to be performed by the VICC. It consists of eight bits.

#define | PHPAL_SLI15693_FLAG_TWO_SUB_CARRIERS 0x01U
Sub-carrier_flag. More...
#define | PHPAL_SLI15693_FLAG_DATA_RATE 0x02U
Data_rate_flag. More...
#define | PHPAL_SLI15693_FLAG_INVENTORY 0x04U
Inventory_flag. More...
#define | PHPAL_SLI15693_FLAG_PROTOCOL_EXTENSION 0x08U
Protocol_Extension_flag. More...
#define | PHPAL_SLI15693_FLAG_INVENTORY_READ_EXTENSION 0x80U
Inventory Read Extension Flag. More...
#define | PHPAL_SLI15693_FLAG_SKIP_DATA 0x10U
Extended Inventory Read Options Flag. More...
#define | PHPAL_SLI15693_FLAG_UID_MODE 0x02U
Extended Inventory Read Options Flag If set the complete UID is transmitted by the VICC to the reader irrespective of the mask length.
#define | PHPAL_SLI15693_FLAG_QUIET 0x20U
Extended Inventory Read Options Flag If set the VICC will go to quiet state after receiving the command. More...
#define | PHPAL_SLI15693_FLAG_PERSISTENT 0x40U
Extended Inventory Read Options Flag If set the VICC will go to quiet state after receiving the command. More...

Request Flags 5 to 7 when inventory flag is not set.

Flag 8 is RFU and shall be set to zero.

#define | PHPAL_SLI15693_FLAG_SELECTED 0x10U
Select_flag. More...
#define | PHPAL_SLI15693_FLAG_ADDRESSED 0x20U
Address_flag. More...
#define | PHPAL_SLI15693_FLAG_OPTION 0x40U
Option_flag. More...

Request Flags 5 to 7 when inventory flag is set.

Flag 8 is RFU and shall be set to zero.

#define | PHPAL_SLI15693_MASK_INVENTORY_FLAGS 0xF0U
Inventory flags mask.
#define | PHPAL_SLI15693_FLAG_AFI 0x10U
AFI_flag. More...
#define | PHPAL_SLI15693_FLAG_NBSLOTS 0x20U
Nb_slots_flag. More...

Response Flags 1 and 4 according to ISO15693.

All others flags are RFU and shall not be interpreted.

#define | PHPAL_SLI15693_FLAG_RESP_ERROR 0x01U
Error_flag. More...
#define | PHPAL_SLI15693_FLAG_RESP_EXTERNSION 0x08U
Extension_flag. More...

Response error codes according to ISO15693.

Codes ranging from A0 - DF are custom command error codes.

#define | PHPAL_SLI15693_FLAG_ERROR_NOT_SUPPORTED 0x01U
The command is not supported, i.e. More...
#define | PHPAL_SLI15693_FLAG_ERROR_FORMAT 0x02U
The command is not recognized, for example: a format error occurred.
#define | PHPAL_SLI15693_FLAG_ERROR_OPTION 0x03U
The command option is not supported.
#define | PHPAL_SLI15693_FLAG_ERROR_GENERIC 0x0FU
Error with no information given or a specific error code is not supported.
#define | PHPAL_SLI15693_FLAG_ERROR_BLOCK_NA 0x10U
The specified block is not available (doesn't exist).
#define | PHPAL_SLI15693_FLAG_ERROR_BLOCK_LOCKED1 0x11U
The specified block is already locked and thus cannot be locked again.
#define | PHPAL_SLI15693_FLAG_ERROR_BLOCK_LOCKED2 0x12U
The specified block is locked and its content cannot be changed.
#define | PHPAL_SLI15693_FLAG_ERROR_BLOCK_WRITE1 0x13U
The specified block was not successfully programmed.
#define | PHPAL_SLI15693_FLAG_ERROR_BLOCK_WRITE2 0x14U
The specified block was not successfully locked.

Lengths

#define | PHPAL_SLI15693_UID_LENGTH 0x08U
UID length in bytes.
#define | PHPAL_SLI15693_BLOCK_LENGTH 0x04U
Block length in bytes.
#define | PHPAL_SLI15693_PAGE_LENGTH 0x10U
Number of bytes per page.

Detailed Description

These component implements the protocol layer (activation) commands of ISO/IEC 15693 (ISO/IEC 18000-3M1) vicinity protocol.

This implementation is based on ISO/IEC 15693-3:2009(E) specification. This layer also implements all activation related custom commands of NXP's ICODE SLI series of tags.

Different states of a VICC (Vicinity Integrated Circuit Card) and corresponding commands are shown below.

Note: PERSISTENT QUIET state is supported only by few ICODE SLI tags (like ICODE SLIX2). Refer function documentation for more information on commands.

Macro Definition Documentation

§ PHPAL_SLI15693_CONFIG_FLAGS

#define PHPAL_SLI15693_CONFIG_FLAGS 0x0000U

Set or get the flags field.

This shall be used to set or get the value of request flag field used in the commands sent by the library.

§ PHPAL_SLI15693_CONFIG_ADD_INFO

#define PHPAL_SLI15693_CONFIG_ADD_INFO 0x0001U

Get the additional error info.

When a response is received from the VICC with the error flag PHPAL_SLI15693_FLAG_RESP_ERROR set, library returns the custom error code PHPAL_SLI15693_ERR_ISO15693. This configuration option can be used to get the actual error code returned by VICC.

§ PHPAL_SLI15693_ACTIVATE_ADDRESSED

#define PHPAL_SLI15693_ACTIVATE_ADDRESSED 0x0000U

Card will be in addressed state (i.e.

SELECT command is not send) after activate card command.

After activate card with this option, to bring VICC to SELECTED state, select command can be used.

§ PHPAL_SLI15693_ACTIVATE_SELECTED

#define PHPAL_SLI15693_ACTIVATE_SELECTED 0x0001U

Card will be in selected state (i.e.

SELECT command is send) after activate card command.

§ PHPAL_SLI15693_ACTIVATE_DEFAULT

#define PHPAL_SLI15693_ACTIVATE_DEFAULT 0x0000U

Default option.

Same as PHPAL_SLI15693_ACTIVATE_ADDRESSED.

§ PHPAL_SLI15693_FLAG_TWO_SUB_CARRIERS

#define PHPAL_SLI15693_FLAG_TWO_SUB_CARRIERS 0x01U

Sub-carrier_flag.

If set two sub-carriers shall be used (VICC to VCD). Else a single sub-carrier frequency shall be used by the VICC.

§ PHPAL_SLI15693_FLAG_DATA_RATE

#define PHPAL_SLI15693_FLAG_DATA_RATE 0x02U

Data_rate_flag.

If set high data rate shall be used (VICC to VCD). Else low data rate shall be used.

§ PHPAL_SLI15693_FLAG_INVENTORY

#define PHPAL_SLI15693_FLAG_INVENTORY 0x04U

Inventory_flag.

Shall be set for inventory request. If set flags 5 to 8 meaning is as per this list. If not set flags 5 to 8 meaning is defined by this list.

§ PHPAL_SLI15693_FLAG_PROTOCOL_EXTENSION

#define PHPAL_SLI15693_FLAG_PROTOCOL_EXTENSION 0x08U

Protocol_Extension_flag.

If set protocol format is extended. Reserved for future use. No supported in current version.

§ PHPAL_SLI15693_FLAG_INVENTORY_READ_EXTENSION

#define PHPAL_SLI15693_FLAG_INVENTORY_READ_EXTENSION 0x80U

Inventory Read Extension Flag.

If set the additional features of inventory mentioned along with the command will be performed by the VICC

§ PHPAL_SLI15693_FLAG_SKIP_DATA

#define PHPAL_SLI15693_FLAG_SKIP_DATA 0x10U

Extended Inventory Read Options Flag.

If set no user memory data are requested from the tag If not set the tag will add the user memory blocks in the response as requested in command

§ PHPAL_SLI15693_FLAG_QUIET

#define PHPAL_SLI15693_FLAG_QUIET 0x20U

Extended Inventory Read Options Flag If set the VICC will go to quiet state after receiving the command.

§ PHPAL_SLI15693_FLAG_PERSISTENT

#define PHPAL_SLI15693_FLAG_PERSISTENT 0x40U

Extended Inventory Read Options Flag If set the VICC will go to quiet state after receiving the command.

§ PHPAL_SLI15693_FLAG_SELECTED

#define PHPAL_SLI15693_FLAG_SELECTED 0x10U

Select_flag.

If set only VICC in selected state shall respond. The Address_flag PHPAL_SLI15693_FLAG_ADDRESSED shall be set to 0 and the UID field will not be included in the request. If not set Request shall be executed by any VICC according to the setting of Address_flag PHPAL_SLI15693_FLAG_ADDRESSED.

§ PHPAL_SLI15693_FLAG_ADDRESSED

#define PHPAL_SLI15693_FLAG_ADDRESSED 0x20U

Address_flag.

If set request is addressed. UID field is included in request. It shall be executed only by the VICC whose UID matches the UID specified in the request. If not set request is not addressed. UID field is not included in request. It shall be executed by any VICC.

§ PHPAL_SLI15693_FLAG_OPTION

#define PHPAL_SLI15693_FLAG_OPTION 0x40U

Option_flag.

Meaning is defined by the command description. It shall be set to 0 if not otherwise defined by the command.

§ PHPAL_SLI15693_FLAG_AFI

#define PHPAL_SLI15693_FLAG_AFI 0x10U

AFI_flag.

If set AFI field is present in request. If not set AFI field is not present in request.

§ PHPAL_SLI15693_FLAG_NBSLOTS

#define PHPAL_SLI15693_FLAG_NBSLOTS 0x20U

Nb_slots_flag.

If set Use 1 slot instead of 16 slots for inventory. If not set use 16 slots.

§ PHPAL_SLI15693_FLAG_RESP_ERROR

#define PHPAL_SLI15693_FLAG_RESP_ERROR 0x01U

Error_flag.

Error detected. Error code is in the "Error" field of response. When a response is received from the VICC with the error flag set, library returns the custom error code PHPAL_SLI15693_ERR_ISO15693. The configuration option PHPAL_SLI15693_CONFIG_ADD_INFO can be used to get the actual error code returned by the VICC.

§ PHPAL_SLI15693_FLAG_RESP_EXTERNSION

#define PHPAL_SLI15693_FLAG_RESP_EXTERNSION 0x08U

Extension_flag.

Protocol format is extended. Reserved for future use.

§ PHPAL_SLI15693_FLAG_ERROR_NOT_SUPPORTED

#define PHPAL_SLI15693_FLAG_ERROR_NOT_SUPPORTED 0x01U

The command is not supported, i.e.

the request code is not recognized.

Function Documentation

§ phpalSli15693_Inventory()

phStatus_t phpalSli15693_Inventory | ( | void * | pDataParams,
 |  | uint8_t | bFlags,
 |  | uint8_t | bAfi,
 |  | uint8_t * | pMask,
 |  | uint8_t | bMaskBitLength,
 |  | uint8_t * | pDsfid,
 |  | uint8_t * | pUid
 | ) |  |

Perform a ISO15693 Inventory command.

When receiving the Inventory request, the VICC shall perform the anti-collision sequence. This is the fist command in the activation/detection sequence of VICC.

When issuing the inventory command, the reader shall set the Nb_slots_flag PHPAL_SLI15693_FLAG_NBSLOTS to the desired setting to select 1 slot or 16 slots for the inventory process.

The mask length indicates the number of significant bits of the mask value. It can have any value between 0 and 60 when 16 slots are used and any value between 0 and 64 when 1 slot is used. The mask value is contained in an integer number of bytes. If the mask length is not a multiple of 8 (bits), the mask value MSB shall be padded with the required number of null (set to 0) bits so that the mask value is contained in an integer number of bytes.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
PH_ERR_INVALID_PARAMETER | mask length or flag invalid.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | bFlags | Request flags byte.
[in] | bAfi | Application Family Identifier.
[in] | pMask | UID mask, holding known UID bits.
[in] | bMaskBitLength | Number of UID bits within pMask.
[out] | pDsfid | Data Storage Format Identifier.
[out] | pUid | Received UID.

§ phpalSli15693_SendEof()

phStatus_t phpalSli15693_SendEof | ( | void * | pDataParams,
 |  | uint8_t | bOption,
 |  | uint8_t * | pDsfid,
 |  | uint8_t * | pUid,
 |  | uint8_t * | pUidLength,
 |  | uint8_t * | pData,
 |  | uint16_t * | pDataLength
 | ) |  |

Send a ISO15693 EOF (End of Frame).

When 16 slots are used in the inventory process, to switch to the next slot, the reader shall send an EOF with option PHPAL_SLI15693_EOF_NEXT_SLOT.

To send EOF for write alike commands, PHPAL_SLI15693_EOF_WRITE_ALIKE or PHPAL_SLI15693_EOF_WRITE_ALIKE_WITH_WAIT shall be used. For ICODE SLI custom commands like Inventory Read, PHPAL_SLI15693_EOF_NEXT_SLOT_INV_READ option shall be used.

bOption can be one of:

  • PHPAL_SLI15693_EOF_NEXT_SLOT
  • PHPAL_SLI15693_EOF_WRITE_ALIKE
  • PHPAL_SLI15693_EOF_NEXT_SLOT_INV_READ
  • PHPAL_SLI15693_EOF_WRITE_ALIKE_WITH_WAIT
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
PH_ERR_INVALID_PARAMETER | Invalid option
PHPAL_SLI15693_ERR_ISO15693 | error response from VICC.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | bOption | Option parameter.
[out] | pDsfid | Data Storage Format Identifier.
[out] | pUid | Received Uid
[out] | pUidLength | Number of received UID bytes.
[out] | pData | Received data.
[out] | pDataLength | Number of received data bytes.

§ phpalSli15693_StayQuiet()

phStatus_t phpalSli15693_StayQuiet ( void * pDataParams )

Perform a ISO15693 StayQuiet command.

When receiving the Stay quiet command, the VICC shall enter the quiet state and shall not send back a response. There is no response to the stay quiet command.

In quiet state, the VICC shall not process any request where Inventory_flag is set and the VICC shall process any addressed request. The VICC shall exit the quiet state when reset (power off), receiving a Select request (It shall then go to the selected state if supported or return an error if not supported), receiving a Reset to ready request (It shall then go to the Ready state).

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
PH_ERR_USE_CONDITION | No UID available.
Other | Depending on implementation and underlying component.
Parameters
[in] pDataParams Pointer to this layers parameter structure.

§ phpalSli15693_Select()

phStatus_t phpalSli15693_Select ( void * pDataParams )

Perform a ISO15693 Select command.

When receiving the Select command, if the UID is equal to its own UID, the VICC shall enter the selected state and shall send a response. If the UID is different to its own and in selected state, the VICC shall return to the Ready state and shall not send a response. If the UID is different to its own and not in selected state, the VICC shall remain in its state and shall not send a response.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
PH_ERR_USE_CONDITION | No UID available.
PHPAL_SLI15693_ERR_ISO15693 | error response from VICC.
Other | Depending on implementation and underlying component.
Parameters
[in] pDataParams Pointer to this layers parameter structure.

§ phpalSli15693_ResetToReady()

phStatus_t phpalSli15693_ResetToReady ( void * pDataParams )

Perform a ISO15693 ResetToReady command.

When receiving a Reset to ready command, the VICC shall return to the Ready state.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
PHPAL_SLI15693_ERR_ISO15693 | error response from VICC.
Other | Depending on implementation and underlying component.
Parameters
[in] pDataParams Pointer to this layers parameter structure.

§ phpalSli15693_Exchange()

phStatus_t phpalSli15693_Exchange | ( | void * | pDataParams,
 |  | uint16_t | wOption,
 |  | uint8_t * | pTxBuffer,
 |  | uint16_t | wTxLength,
 |  | uint8_t ** | ppRxBuffer,
 |  | uint16_t * | pRxLength
 | ) |  |

Perform ISO15693 Data Exchange with VICC.

wOption can be one of:

  • PH_EXCHANGE_DEFAULT
  • PH_EXCHANGE_BUFFER_FIRST
  • PH_EXCHANGE_BUFFER_CONT
  • PH_EXCHANGE_BUFFER_LAST

Alternatively, the following bits can be combined:

  • PH_EXCHANGE_BUFFERED_BIT
  • PH_EXCHANGE_LEAVE_BUFFER_BIT
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PHPAL_SLI15693_ERR_ISO15693 | error response from VICC.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
PH_ERR_USE_CONDITION | No UID available.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | wOption | Option parameter.
[in] | pTxBuffer | Data to transmit. Flags, IC MFC code and UID will be added automatically.
[in] | wTxLength | Length of data to transmit.
[out] | ppRxBuffer | Pointer to received data.
[out] | pRxLength | number of received data bytes.

§ phpalSli15693_ActivateCard()

phStatus_t phpalSli15693_ActivateCard | ( | void * | pDataParams,
 |  | uint8_t | bOption,
 |  | uint8_t | bFlags,
 |  | uint8_t | bAfi,
 |  | uint8_t * | pMask,
 |  | uint8_t | bMaskBitLength,
 |  | uint8_t * | pDsfid,
 |  | uint8_t * | pUid,
 |  | uint8_t * | pMoreCardsAvailable
 | ) |  |

Perform ISO15693 ActivateCard command.

This function activates the first VICC detected during the collision resolution and optionally move it to selected state based on the wOption specified.

wOption can be one of:

  • PHPAL_SLI15693_ACTIVATE_DEFAULT
  • PHPAL_SLI15693_ACTIVATE_SELECTED
  • PHPAL_SLI15693_ACTIVATE_ADDRESSED
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
PH_ERR_INVALID_PARAMETER | mask length or flag invalid.
PHPAL_SLI15693_ERR_ISO15693 | error response from VICC.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | bOption | Selected or addressed
[in] | bFlags | Request flags byte.
[in] | bAfi | Application Family Identifier.
[in] | pMask | UID mask, holding known UID bits.
[in] | bMaskBitLength | Number of UID bits within pMask.
[out] | pDsfid | Data Storage Format Identifier.
[out] | pUid | Received UID of first found card
[out] | pMoreCardsAvailable | If there are more cards available this value is different from zero.

§ phpalSli15693_GetSerialNo()

phStatus_t phpalSli15693_GetSerialNo | ( | void * | pDataParams,
 |  | uint8_t * | pUid,
 |  | uint8_t * | bUidLength
 | ) |  |

Retrieve the serial number (UID).

This API is used to get the UID of current VICC with which this layer is communicating.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_USE_CONDITION | No UID available.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[out] | pUid | Buffer, holding the UID (8 bytes)
[out] | bUidLength | Length of received UID bytes.

§ phpalSli15693_SetSerialNo()

phStatus_t phpalSli15693_SetSerialNo | ( | void * | pDataParams,
 |  | uint8_t * | pUid,
 |  | uint8_t | bUidLength
 | ) |  |

Set serial number (UID).

When multiple VICCs are detected, this API shall be used to set a specific UID to this layer from the list of detected UIDs.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | UID length invalid.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | pUid | Buffer, holding the UID (8 bytes)
[in] | bUidLength | Length of UID in bytes.

§ phpalSli15693_SetConfig()

phStatus_t phpalSli15693_SetConfig | ( | void * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t | wValue
 | ) |  |

Set value of the specified configuration identifier.

The SetConfig command is used to set values for the different configuration parameters of this layer.

wConfig can be one of:

  • PHPAL_SLI15693_CONFIG_FLAGS
  • PHPAL_SLI15693_CONFIG_ADD_INFO
  • PHPAL_SLI15693_CONFIG_TIMEOUT_US
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_UNSUPPORTED_PARAMETER | Invalid wConfig.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | wConfig | Item to configure.
[in] | wValue | Value to set.

§ phpalSli15693_GetConfig()

phStatus_t phpalSli15693_GetConfig | ( | void * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t * | pValue
 | ) |  |

Get value of the specified configuration identifier.

The GetConfig command is used to retrieve values of different configuration parameters of this layer.

wConfig can be one of:

  • PHPAL_SLI15693_CONFIG_FLAGS
  • PHPAL_SLI15693_CONFIG_ADD_INFO
  • PHPAL_SLI15693_CONFIG_TIMEOUT_US
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_UNSUPPORTED_PARAMETER | Invalid wConfig.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | wConfig | Item to read.
[in] | pValue | Read value.

§ phpalSli15693_InventoryRead()

phStatus_t phpalSli15693_InventoryRead | ( | void * | pDataParams,
 |  | uint8_t | bFlags,
 |  | uint8_t | bAfi,
 |  | uint8_t * | pMask,
 |  | uint8_t | bMaskBitLength,
 |  | uint8_t | bBlockNo,
 |  | uint16_t | wNoOfBlocks,
 |  | uint8_t * | pUid,
 |  | uint8_t * | pUidLength,
 |  | uint8_t * | pData,
 |  | uint16_t * | pDataLength
 | ) |  |

Perform ICODE SLI InventoryRead command.

When receiving the INVENTORY READ request, the ICODE SLI tag performs the same as the anti-collision sequence, with the difference that instead of the UID and the DSFID, the requested memory content is re-transmitted from the ICODE SLI. If an error is detected, the ICODE SLI tag remains silent.

If the Option_flag PHPAL_SLI15693_FLAG_OPTION is not set, n blocks of data are re-transmitted. If the Option_flag is set, n blocks of data and the part of the UID which is not part of the mask are re-transmitted. Additionally the slot number in case of 16 slots, are returned. Instead of padding with zeros up to the next byte boundary, the corresponding bits of the UID are returned.

The number of bits of the re-transmitted UID can be calculated as follows:

  • 16 slots: 60 bits (bit 64 to bit 4) - mask length rounded up to the next byte boundary.
  • 1 slot: 64 bits - mask length rounded up to the next byte boundary.
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
PHPAL_SLI15693_ERR_ISO15693 | error response from VICC.
PH_ERR_INVALID_PARAMETER | mask length or flag or number of blocks invalid.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | bFlags | Request flags byte.
[in] | bAfi | Application Family Identifier.
[in] | pMask | UID mask, holding known UID bits.
[in] | bMaskBitLength | Number of UID bits within pMask.
[in] | bBlockNo | Block number of first block to read.
[in] | wNoOfBlocks | Number of blocks to read
[out] | pUid | Received UID
[out] | pUidLength | Number of received UID bytes.
[out] | pData | Received data.
[out] | pDataLength | Number of received data bytes.

§ phpalSli15693_InventoryReadExtended()

phStatus_t phpalSli15693_InventoryReadExtended | ( | void * | pDataParams,
 |  | uint8_t | bFlags,
 |  | uint8_t | bAfi,
 |  | uint8_t | bExtended,
 |  | uint8_t | bExtendedOptions,
 |  | uint8_t * | pMask,
 |  | uint8_t | bMaskBitLength,
 |  | uint8_t | bBlockNo,
 |  | uint16_t | wNoOfBlocks,
 |  | uint8_t * | pUid,
 |  | uint8_t * | pUidLength,
 |  | uint8_t * | pData,
 |  | uint16_t * | pDataLength
 | ) |  |

Perform ICODE SLI InventoryRead command in extended mode.

When receiving the INVENTORY READ EXTENDED request, the ICODE SLI tag performs the same as the anti-collision sequence, with the difference that instead of the UID and the DSFID, the requested memory content is re-transmitted from the ICODE SLI. If an error is detected, the ICODE SLI tag remains silent.

If the Option_flag PHPAL_SLI15693_FLAG_OPTION is not set, n blocks of data are re-transmitted. If the Option_flag is set, n blocks of data and the part of the UID which is not part of the mask are re-transmitted. Additionally the slot number in case of 16 slots, are returned. Instead of padding with zeros up to the next byte boundary, the corresponding bits of the UID are returned.

The number of bits of the re-transmitted UID can be calculated as follows:

  • 16 slots: 60 bits (bit 64 to bit 4) - mask length rounded up to the next byte boundary.
  • 1 slot: 64 bits - mask length rounded up to the next byte boundary.

Depending on different values of Extended Options the api behaves differently b1 - 0 –> Label responds independent from the EAS status b1 - 1 –> Only labels will respond which have the EAS enabled b2 - 0 –> UID will be transmitted as in regular mode b2 - 1 –> Complete UID will be transmitted b3 - 0 –> RFU b4 - 0 –> RFU b5 - 0 –> tag will add the user memory block in the response as requested b5 - 1 –> no user memory data is requested from the tag b6 & b7 - 00 –> Remain in current state b6 & b7 - 10 –> Go to quiet state after response b6 & b7 - 01 –> Go to persistent quiet state after response b6 & b7 - 11 –> Only tags in the PERSISTENT QUIET state will respond to the command b8 - 0 –> RFU

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
PHPAL_SLI15693_ERR_ISO15693 | error response from VICC.
PH_ERR_INVALID_PARAMETER | mask length or flag or number of blocks invalid.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | bFlags | Request flags byte.
[in] | bAfi | Application Family Identifier.
[in] | bExtended | Extended mode
[in] | bExtendedOptions | Features of the extended mode
[in] | pMask | UID mask, holding known UID bits.
[in] | bMaskBitLength | Number of UID bits within pMask.
[in] | bBlockNo | Block number of first block to read.
[in] | wNoOfBlocks | Number of blocks to read
[out] | pUid | Received UID
[out] | pUidLength | Number of received UID bytes.
[out] | pData | Received data.
[out] | pDataLength | Number of received data bytes.

§ phpalSli15693_FastInventoryRead()

phStatus_t phpalSli15693_FastInventoryRead | ( | void * | pDataParams,
 |  | uint8_t | bFlags,
 |  | uint8_t | bAfi,
 |  | uint8_t * | pMask,
 |  | uint8_t | bMaskBitLength,
 |  | uint8_t | bBlockNo,
 |  | uint16_t | wNoOfBlocks,
 |  | uint8_t * | pUid,
 |  | uint8_t * | pUidLength,
 |  | uint8_t * | pData,
 |  | uint16_t * | pDataLength
 | ) |  |

Perform ICODE SLI FastInventoryRead command.

When receiving the FAST INVENTORY READ command the ICODE SLI tag behaves the same as the INVENTORY READ command with the exceptions that the data rate in the direction ICODE SLI tag to the reader is twice than defined in ISO/IEC 15693-3 depending on the Datarate_flag 53 kbit (high data rate) or 13 kbit (low data rate).

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
PHPAL_SLI15693_ERR_ISO15693 | error response from VICC.
PH_ERR_INVALID_PARAMETER | mask length or flag or number of blocks invalid.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | bFlags | Request flags byte.
[in] | bAfi | Application Family Identifier.
[in] | pMask | UID mask, holding known UID bits.
[in] | bMaskBitLength | Number of UID bits within pMask.
[in] | bBlockNo | Block number of first block to read.
[in] | wNoOfBlocks | Number of blocks to read
[out] | pUid | Received UID
[out] | pUidLength | Number of received UID bytes.
[out] | pData | Received data.
[out] | pDataLength | Number of received data bytes.

§ phpalSli15693_InventoryPageRead()

phStatus_t phpalSli15693_InventoryPageRead | ( | void * | pDataParams,
 |  | uint8_t | bFlags,
 |  | uint8_t | bAfi,
 |  | uint8_t * | pMask,
 |  | uint8_t | bMaskBitLength,
 |  | uint8_t | bPageNo,
 |  | uint16_t | wNoOfPages,
 |  | uint8_t * | pUid,
 |  | uint8_t * | pUidLength,
 |  | uint8_t * | pData,
 |  | uint16_t * | pDataLength
 | ) |  |

Perform ICODE SLI InventoryPageRead command.

When receiving the Inventory Page Read request, the ICODE SLI tag performs the same as in the anti-collision sequence, with the difference that instead of the UID and the DSFID the requested memory content is re-transmitted from the tag.

If an error is detected the ICODE SLI tag remains silent.

If the Option_flag PHPAL_SLI15693_FLAG_OPTION is not set, n pages of data including page protection status (password protection condition) are re-transmitted. If the Option_flag is set, n pages (4 blocks = 16 byte) of data including page protection status (password protection condition) and the part of the UID which is not part of the mask are re-transmitted. Additionally the slot number in case of 16 slots, are returned.

The number of bits of the re-transmitted UID can be calculated as follows:

  • 16 slots: 60 bits (bit 64 to bit 4) - mask length rounded up to the next byte boundary.
  • 1 slot: 64 bits - mask length rounded up to the next byte boundary.

If a requested page is protected with the Read password and the valid Read password has not been transmitted before, the page is not read and only protection status (0x0F) is returned.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
PHPAL_SLI15693_ERR_ISO15693 | error response from VICC.
PH_ERR_INVALID_PARAMETER | mask length or flag or number of pages invalid.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | bFlags | Request flags byte.
[in] | bAfi | Application Family Identifier.
[in] | pMask | UID mask, holding known UID bits.
[in] | bMaskBitLength | Number of UID bits within pMask.
[in] | bPageNo | Block number of first page to read.
[in] | wNoOfPages | Number of pages to read
[out] | pUid | Received UID
[out] | pUidLength | Number of received UID bytes.
[out] | pData | Received data.
[out] | pDataLength | Number of received data bytes.

§ phpalSli15693_FastInventoryPageRead()

phStatus_t phpalSli15693_FastInventoryPageRead | ( | void * | pDataParams,
 |  | uint8_t | bFlags,
 |  | uint8_t | bAfi,
 |  | uint8_t * | pMask,
 |  | uint8_t | bMaskBitLength,
 |  | uint8_t | bPageNo,
 |  | uint16_t | wNoOfPages,
 |  | uint8_t * | pUid,
 |  | uint8_t * | pUidLength,
 |  | uint8_t * | pData,
 |  | uint16_t * | pDataLength
 | ) |  |

Perform ICODE SLI FastInventoryPageRead command.

When receiving the Fast Inventory Page Read command the ICODE SLI tag behaves the same as in the Inventory Page Read command with the exceptions that the data rate in the direction of tag to the reader is twice as defined in ISO/IEC 15693-3, depending on the datarate_flag 53 kbit (high data rate) or 13 kbit (low data rate).

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
PHPAL_SLI15693_ERR_ISO15693 | error response from VICC.
PH_ERR_INVALID_PARAMETER | mask length or flag or number of pages invalid.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | bFlags | Request flags byte.
[in] | bAfi | Application Family Identifier.
[in] | pMask | UID mask, holding known UID bits.
[in] | bMaskBitLength | Number of UID bits within pMask.
[in] | bPageNo | Block number of first page to read.
[in] | wNoOfPages | Number of pages to read
[out] | pUid | Received UID
[out] | pUidLength | Number of received UID bytes.
[out] | pData | Received data.
[out] | pDataLength | Number of received data bytes.

§ phpalSli15693_StayQuietPersistent()

phStatus_t phpalSli15693_StayQuietPersistent ( void * pDataParams )

Perform ICODE SLI Stay quite persistent command.

When receiving the STAY QUIET PERSISTENT command, the tag enters the persistent quiet state and will not send back a response.

The STAY QUIET PERSISTENT command provides the same behavior as the mandatory STAY QUIET command with the only difference at a reset (power off), the tag will turn to the ready state, if the power off time is exceeding the persistent time. Refer the corresponding ICODE SLI tag specification for the value of persistent time.

The tag will exit the persistent quiet state when:

  • reset (power off) exceeding the persistent time.
  • receiving a SELECT request. It shall then go to the Selected state.
  • receiving a RESET TO READY request. It shall then go to the Ready state.
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
PH_ERR_USE_CONDITION | No UID available.
Other | Depending on implementation and underlying component.
Parameters
[in] pDataParams Pointer to this layers parameter structure.


NXP NFC Reader Library: Component : Software

Data Structures | Macros | Typedefs | Functions
Component : Software
Protocol Abstraction Layer » ISO/IEC 15693 / ISO/IEC 18000-3M1
Collaboration diagram for Component : Software:

Data Structures

struct phpalSli15693_Sw_DataParams
Software Sli15693 PAL parameter structure. More...

Macros

#define PHPAL_SLI15693_SW_ID 0x01
ID for this layer (Software Sli15693 layer). More...

Typedefs

typedef struct phpalSli15693_Sw_DataParams phpalSli15693_Sw_DataParams_t
Software Sli15693 PAL parameter structure.

Functions

phStatus_t phpalSli15693_Sw_Init (phpalSli15693_Sw_DataParams_t *pDataParams, uint16_t wSizeOfDataParams, void *pHalDataParams)
Initialize PAL Sli15693 layer. More...

Detailed Description

Macro Definition Documentation

§ PHPAL_SLI15693_SW_ID

#define PHPAL_SLI15693_SW_ID 0x01

ID for this layer (Software Sli15693 layer).

phpalSli15693_Sw_DataParams::wId is initialized with this ID in the initialization function phpalSli15693_Sw_Init.

Function Documentation

§ phpalSli15693_Sw_Init()

phStatus_t phpalSli15693_Sw_Init | ( | phpalSli15693_Sw_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams,
 |  | void * | pHalDataParams
 | ) |  |

Initialize PAL Sli15693 layer.

This should be called before using any of the PAL Sli15693 APIs to do initialization of the layer. This configures the Sli15693 PAL with default configurations. Refer configuration options for supported configurations and their default values.

Parameters
[in] | pDataParams | Pointer to PAL Sli15693 data parameter structure phpalSli15693_Sw_DataParams_t.
[in] | wSizeOfDataParams | Specifies the size of data parameter structure phpalSli15693_Sw_DataParams_t.
[in] | pHalDataParams | Pointer to the HAL data parameter structure.
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_DATA_PARAMS | Invalid data parameter. Size of data parameter structure phpalSli15693_Sw_DataParams_t specified in wSizeOfDataParams is wrong.


NXP NFC Reader Library: phpalSli15693_Sw_DataParams Struct Reference

Data Fields
phpalSli15693_Sw_DataParams Struct Reference
Protocol Abstraction Layer » ISO/IEC 15693 / ISO/IEC 18000-3M1 » Component : Software

Software Sli15693 PAL parameter structure. More...

Data Fields

uint16_t wId
ID for this component, not to be modified by user. More...
void * | pHalDataParams
Pointer to the HAL data parameter. More...
uint16_t wAdditionalInfo
Holds the last error code sent by the VICC. More...
uint8_t bFlags
Flags. More...
uint8_t | pUid [8]
VICC's UID. More...
uint8_t bUidBitLength
VICC's UID length. More...
uint8_t bExplicitlyAddressed
Indicator of API to be in explicit Addressed mode. More...

Detailed Description

Software Sli15693 PAL parameter structure.

Field Documentation

§ wId

uint16_t phpalSli15693_Sw_DataParams::wId

ID for this component, not to be modified by user.

This is initialized with PHPAL_SLI15693_SW_ID in the initialization function phpalSli15693_Sw_Init. This is used for validating the data parameter structure and to make sure that APIs are called after initialization.

§ pHalDataParams

void* phpalSli15693_Sw_DataParams::pHalDataParams

Pointer to the HAL data parameter.

This pointer is initialized with the address of HAL data parameter structure by phpalSli15693_Sw_Init.

§ wAdditionalInfo

uint16_t phpalSli15693_Sw_DataParams::wAdditionalInfo

Holds the last error code sent by the VICC.

When a response is received from the VICC with the error flag PHPAL_SLI15693_FLAG_RESP_ERROR set, the error code returned by VICC is stored here.

§ bFlags

uint8_t phpalSli15693_Sw_DataParams::bFlags

Flags.

This holds the value of request flag field used in the commands sent by the library.

§ pUid

uint8_t phpalSli15693_Sw_DataParams::pUid[8]

VICC's UID.

This holds the value of VICC's Unique Identifier received during the inventory process, which always is of 8 bytes long.

§ bUidBitLength

uint8_t phpalSli15693_Sw_DataParams::bUidBitLength

VICC's UID length.

This holds the value of VICC's UID length in bits. After successful inventory process, the complete UID length will be 64 bits.

§ bExplicitlyAddressed

uint8_t phpalSli15693_Sw_DataParams::bExplicitlyAddressed

Indicator of API to be in explicit Addressed mode.

This indicates that the api is explicitly asked to be used in addressed mode this parameter differentiate the understanding of explicitly addressed mode from the apis like select and reset to ready which are implicitly addressed

The documentation for this struct was generated from the following file:
  • phpalSli15693.h


NXP NFC Reader Library: ISO/IEC 18000-3 Mode3

Modules | Functions
ISO/IEC 18000-3 Mode3
Protocol Abstraction Layer

These Components implement the ISO/IEC 18000-3 Mode3 support. More...

Collaboration diagram for ISO/IEC 18000-3 Mode3:

Modules

Component : Software

Functions

phStatus_t | phpalI18000p3m3_Exchange (void *pDataParams, uint16_t wOption, uint8_t *pTxBuffer, uint16_t wTxLength, uint8_t bTxLastBits, uint8_t **ppRxBuffer, uint16_t *pRxLength, uint8_t *pRxLastBits)
Perform Data Exchange with Tag. More...
phStatus_t | phpalI18000p3m3_CreateSelectCmd (void *pDataParams, uint8_t bTarget, uint8_t bAction, uint8_t bMemBank, uint8_t *pPointer, uint8_t bPointerLength, uint8_t *pMask, uint8_t bMaskBitLength, uint8_t bTruncate, uint8_t *pSelectCmd, uint8_t *bLen, uint8_t *bValidBits)
Create the Select command frame. More...
phStatus_t | phpalI18000p3m3_CreateBeginRoundCmd (void *pDataParams, uint8_t bDr, uint8_t bM, uint8_t bTRext, uint8_t bSel, uint8_t bSession, uint8_t bRfu, uint8_t bQ, uint8_t *pBeginRnd)
Create the BeginRound command frame. More...
phStatus_t | phpalI18000p3m3_Ack (void *pDataParams, uint8_t bOption, uint8_t *pHandle, uint8_t **ppRxBuffer, uint16_t *pRxBitLength)
Perform a Ack for ISO18000-3 Mode3 tags. More...
phStatus_t | phpalI18000p3m3_Nak (void *pDataParams)
Perform a Nak for ISO18000-3 Mode3 tags. More...
phStatus_t | phpalI18000p3m3_ActivateCard (void *pDataParams, uint8_t *pSelCmd, uint8_t bSelCmdLen, uint8_t bNumValidBitsinLastByte, uint8_t *pBeginRndCmd, uint8_t bTSprocessing, uint8_t **ppRxBuffer, uint16_t *pRxBufferLen, uint8_t *pMoreCardsAvailable)
Bring the first matching tag to OPEN or SECURED state. More...
phStatus_t | phpalI18000p3m3_SetConfig (void *pDataParams, uint16_t wConfig, uint16_t wValue)
Sets the configuration parameter. More...

Targets

#define | PHPAL_I18000P3M3_TARGET_INVENTORIED_S0 0x00U
INVENTORIED_S0 Target. More...
#define | PHPAL_I18000P3M3_TARGET_INVENTORIED_S2 0x02U
INVENTORIED_S2 Target. More...
#define | PHPAL_I18000P3M3_TARGET_SL 0x04U
SL Target. More...

Memory Banks

#define | PHPAL_I18000P3M3_MEMBANK_RESERVED 0x00U /** < Reserved Memory Bank. */
#define | PHPAL_I18000P3M3_MEMBANK_UII 0x01U /** < UII Memory Bank. */
#define | PHPAL_I18000P3M3_MEMBANK_TID 0x02U /** < TID Memory Bank. */
#define | PHPAL_I18000P3M3_MEMBANK_USER 0x03U /** < User Memory Bank. */

Link Frequencies (DR)

#define | PHPAL_I18000P3M3_LF_423KHZ 0x00U
423kHz (fc/32). More...
#define | PHPAL_I18000P3M3_LF_847KHZ 0x01U
847kHz (fc/16). More...

'M' Values

#define | PHPAL_I18000P3M3_M_MANCHESTER_2 0x02U
2 sub-carrier pulse Manchester. More...
#define | PHPAL_I18000P3M3_M_MANCHESTER_4 0x03U
4 sub-carrier pulse Manchester. More...

'Sel' Values

#define | PHPAL_I18000P3M3_SEL_ALL_00 0x00U
All. More...
#define | PHPAL_I18000P3M3_SEL_ALL_01 0x01U
All. More...
#define | PHPAL_I18000P3M3_SEL_NOT_SL 0x02U
Select only tags not matching SL. More...
#define | PHPAL_I18000P3M3_SEL_SL 0x03U
Select only tags matching SL. More...

'Session' Values

#define | PHPAL_I18000P3M3_SESSION_S0 0x00U
Session S0. More...
#define | PHPAL_I18000P3M3_SESSION_S1 0x01U
Session S1 (Optional). More...
#define | PHPAL_I18000P3M3_SESSION_S2 0x02U
Session S2. More...
#define | PHPAL_I18000P3M3_SESSION_S3 0x03U
Session S3 (Optional). More...

'UpDn' Values

#define | PHPAL_I18000P3M3_UPDN_INCREMENT 0x06U
Increment Q. More...
#define | PHPAL_I18000P3M3_UPDN_NOCHANGE 0x00U
Do not change Q. More...
#define | PHPAL_I18000P3M3_UPDN_DECREMENT 0x03U
Decrement Q. More...

ACK Options

#define | PHPAL_I18000P3M3_ACK_USE_CRC 0x00U
Use StoredCrc for ACK command. More...
#define | PHPAL_I18000P3M3_ACK_USE_HANDLE 0x01U
Use given Handle for ACK command. More...

Communication Configs

#define | PHPAL_I18000P3M3_CONFIG_TXLASTBITS 0x0003U
Set number of valid bits of last Tx-Byte. More...
#define | PHPAL_I18000P3M3_CONFIG_TIMEOUT_VALUE_MS 0x000EU
Set RC Timeout (in [ms]). More...

Values used for Communication Configs

#define | PHPAL_I18000P3M3_TXLASTBITS_MAX 0x000FU
Maximum value used for configuring TXLASTBITS. More...
#define | PHPAL_I18000P3M3_VALID_TXLASTBITS 0x0007U
Valid value of TXLASTBITS. More...

Detailed Description

These Components implement the ISO/IEC 18000-3 Mode3 support.

Macro Definition Documentation

§ PHPAL_I18000P3M3_TARGET_INVENTORIED_S0

#define PHPAL_I18000P3M3_TARGET_INVENTORIED_S0 0x00U

INVENTORIED_S0 Target.

§ PHPAL_I18000P3M3_TARGET_INVENTORIED_S2

#define PHPAL_I18000P3M3_TARGET_INVENTORIED_S2 0x02U

INVENTORIED_S2 Target.

§ PHPAL_I18000P3M3_TARGET_SL

#define PHPAL_I18000P3M3_TARGET_SL 0x04U

SL Target.

§ PHPAL_I18000P3M3_LF_423KHZ

#define PHPAL_I18000P3M3_LF_423KHZ 0x00U

423kHz (fc/32).

Equivalent to PHHAL_HW_SUBCARRIER_DUAL DR = 0

§ PHPAL_I18000P3M3_LF_847KHZ

#define PHPAL_I18000P3M3_LF_847KHZ 0x01U

847kHz (fc/16).

Equivalent to PHHAL_HW_SUBCARRIER_QUAD DR = 1

§ PHPAL_I18000P3M3_M_MANCHESTER_2

#define PHPAL_I18000P3M3_M_MANCHESTER_2 0x02U

2 sub-carrier pulse Manchester.

Equivalent to #PHHAL_HW_RF_RX_DATARATE_I18000P3M3_MAN2.

§ PHPAL_I18000P3M3_M_MANCHESTER_4

#define PHPAL_I18000P3M3_M_MANCHESTER_4 0x03U

4 sub-carrier pulse Manchester.

Equivalent to #PHHAL_HW_RF_RX_DATARATE_I18000P3M3_MAN4.

§ PHPAL_I18000P3M3_SEL_ALL_00

#define PHPAL_I18000P3M3_SEL_ALL_00 0x00U

All.

§ PHPAL_I18000P3M3_SEL_ALL_01

#define PHPAL_I18000P3M3_SEL_ALL_01 0x01U

All.

§ PHPAL_I18000P3M3_SEL_NOT_SL

#define PHPAL_I18000P3M3_SEL_NOT_SL 0x02U

Select only tags not matching SL.

§ PHPAL_I18000P3M3_SEL_SL

#define PHPAL_I18000P3M3_SEL_SL 0x03U

Select only tags matching SL.

§ PHPAL_I18000P3M3_SESSION_S0

#define PHPAL_I18000P3M3_SESSION_S0 0x00U

Session S0.

§ PHPAL_I18000P3M3_SESSION_S1

#define PHPAL_I18000P3M3_SESSION_S1 0x01U

Session S1 (Optional).

§ PHPAL_I18000P3M3_SESSION_S2

#define PHPAL_I18000P3M3_SESSION_S2 0x02U

Session S2.

§ PHPAL_I18000P3M3_SESSION_S3

#define PHPAL_I18000P3M3_SESSION_S3 0x03U

Session S3 (Optional).

§ PHPAL_I18000P3M3_UPDN_INCREMENT

#define PHPAL_I18000P3M3_UPDN_INCREMENT 0x06U

Increment Q.

§ PHPAL_I18000P3M3_UPDN_NOCHANGE

#define PHPAL_I18000P3M3_UPDN_NOCHANGE 0x00U

Do not change Q.

§ PHPAL_I18000P3M3_UPDN_DECREMENT

#define PHPAL_I18000P3M3_UPDN_DECREMENT 0x03U

Decrement Q.

§ PHPAL_I18000P3M3_ACK_USE_CRC

#define PHPAL_I18000P3M3_ACK_USE_CRC 0x00U

Use StoredCrc for ACK command.

§ PHPAL_I18000P3M3_ACK_USE_HANDLE

#define PHPAL_I18000P3M3_ACK_USE_HANDLE 0x01U

Use given Handle for ACK command.

§ PHPAL_I18000P3M3_CONFIG_TXLASTBITS

#define PHPAL_I18000P3M3_CONFIG_TXLASTBITS 0x0003U

Set number of valid bits of last Tx-Byte.

§ PHPAL_I18000P3M3_CONFIG_TIMEOUT_VALUE_MS

#define PHPAL_I18000P3M3_CONFIG_TIMEOUT_VALUE_MS 0x000EU

Set RC Timeout (in [ms]).

§ PHPAL_I18000P3M3_TXLASTBITS_MAX

#define PHPAL_I18000P3M3_TXLASTBITS_MAX 0x000FU

Maximum value used for configuring TXLASTBITS.

§ PHPAL_I18000P3M3_VALID_TXLASTBITS

#define PHPAL_I18000P3M3_VALID_TXLASTBITS 0x0007U

Valid value of TXLASTBITS.

Function Documentation

§ phpalI18000p3m3_Exchange()

phStatus_t phpalI18000p3m3_Exchange | ( | void * | pDataParams,
 |  | uint16_t | wOption,
 |  | uint8_t * | pTxBuffer,
 |  | uint16_t | wTxLength,
 |  | uint8_t | bTxLastBits,
 |  | uint8_t ** | ppRxBuffer,
 |  | uint16_t * | pRxLength,
 |  | uint8_t * | pRxLastBits
 | ) |  |

Perform Data Exchange with Tag.

wOption can be one of:

  • PH_EXCHANGE_DEFAULT
  • PH_EXCHANGE_BUFFER_FIRST
  • PH_EXCHANGE_BUFFER_CONT
  • PH_EXCHANGE_BUFFER_LAST

Alternatively, the following bits can be combined:

  • PH_EXCHANGE_BUFFERED_BIT
  • PH_EXCHANGE_LEAVE_BUFFER_BIT
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wOption | Option parameter.
[in] | pTxBuffer | Data to transmit.
[in] | wTxLength | Length of input data.
[in] | bTxLastBits | Number of valid bits of last byte (Tx).
[out] | ppRxBuffer | Pointer to received data.
[out] | pRxLength | Number of received data bytes including incomplete byte.
[out] | pRxLastBits | Number of valid bits of last byte (Rx).

§ phpalI18000p3m3_CreateSelectCmd()

phStatus_t phpalI18000p3m3_CreateSelectCmd | ( | void * | pDataParams,
 |  | uint8_t | bTarget,
 |  | uint8_t | bAction,
 |  | uint8_t | bMemBank,
 |  | uint8_t * | pPointer,
 |  | uint8_t | bPointerLength,
 |  | uint8_t * | pMask,
 |  | uint8_t | bMaskBitLength,
 |  | uint8_t | bTruncate,
 |  | uint8_t * | pSelectCmd,
 |  | uint8_t * | bLen,
 |  | uint8_t * | bValidBits
 | ) |  |

Create the Select command frame.

This is a utility function to create the Select frame in the required format of ISO 18000p3m3. Parameters are validated to ensure that wrong values or wrong combinations are checked.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | if wrong options are provided.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bTarget | Indicates whether the SL flag or the inventoried flags shall be modified.
[in] | bAction | Indicates the way of changing the SL flag and the inventoried flags.
[in] | bMemBank | Memory bank where the mask shall be applied.
[in] | pPointer | Memory address where the mask shall be applied.
[in] | bPointerLength | Length of the pointer, 0->8bits,1->16bits,2->24bits or 3->32bits.
[in] | pMask | Contains a bit string that a tag compares against the memory location that begins at pPointer.
[in] | bMaskBitLength | Length of the mask in bits.
[in] | bTruncate | Specifies whether a tag load modulates its entire UII (PH_OFF), or only that portion of the UII immediately following Mask (PH_ON).
[out] | pSelectCmd | Select Command frame. (Max 39 bytes)
[out] | bLen | Length of Select cmd bytes
[out] | bValidBits | Number of valid bits in the last byte of pSelectCmd.

§ phpalI18000p3m3_CreateBeginRoundCmd()

phStatus_t phpalI18000p3m3_CreateBeginRoundCmd | ( | void * | pDataParams,
 |  | uint8_t | bDr,
 |  | uint8_t | bM,
 |  | uint8_t | bTRext,
 |  | uint8_t | bSel,
 |  | uint8_t | bSession,
 |  | uint8_t | bRfu,
 |  | uint8_t | bQ,
 |  | uint8_t * | pBeginRnd
 | ) |  |

Create the BeginRound command frame.

This is a utility function to create the BeginRound frame in the required format of ISO 18000p3m3. Parameters are validated to ensure that wrong values or wrong combinations are checked.

bDr can be one of

  • PHPAL_I18000P3M3_LF_423KHZ
  • PHPAL_I18000P3M3_LF_847KHZ

(Number of subcarrier cycles per symbol) cane be one of

  • PHPAL_I18000P3M3_M_MANCHESTER_2 (M = 10b)
  • PHPAL_I18000P3M3_M_MANCHESTER_4 (M = 11b)
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | if wrong options are provided.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bDr | Divide ratio.
[in] | bM | Cycles per symbol.
[in] | bTRext | Indicates whether a pilot tone shall be used in the T=>R pre-amble (PH_ON) or not (PH_OFF).
[in] | bSel | Indicates which tags shall take part of the inventory round.
[in] | bSession | Indicates the session of the inventory round.
[in] | bRfu | RFU (1 bit).
[in] | bQ | Indicates the number of slots in a round (2^Q slots).
[out] | pBeginRnd | Begin round command frame (3 bytes)

§ phpalI18000p3m3_Ack()

phStatus_t phpalI18000p3m3_Ack | ( | void * | pDataParams,
 |  | uint8_t | bOption,
 |  | uint8_t * | pHandle,
 |  | uint8_t ** | ppRxBuffer,
 |  | uint16_t * | pRxBitLength
 | ) |  |

Perform a Ack for ISO18000-3 Mode3 tags.

bOption can be one of:

  • PHPAL_I18000P3M3_ACK_USE_CRC - This option is deprecated and no longer used.
  • PHPAL_I18000P3M3_ACK_USE_HANDLE
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bOption | Option parameter.
[in] | pHandle | Handle value, mandatory if bOption is PHPAL_I18000P3M3_ACK_USE_HANDLE; uint8_t[2].
[out] | ppRxBuffer | Pointer to Tag data and, if required, PacketCRC.
[out] | pRxBitLength | Tag response length in bits.

§ phpalI18000p3m3_Nak()

phStatus_t phpalI18000p3m3_Nak ( void * pDataParams )

Perform a Nak for ISO18000-3 Mode3 tags.

All tags will move to arbitrate state after receive this command.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phpalI18000p3m3_ActivateCard()

phStatus_t phpalI18000p3m3_ActivateCard | ( | void * | pDataParams,
 |  | uint8_t * | pSelCmd,
 |  | uint8_t | bSelCmdLen,
 |  | uint8_t | bNumValidBitsinLastByte,
 |  | uint8_t * | pBeginRndCmd,
 |  | uint8_t | bTSprocessing,
 |  | uint8_t ** | ppRxBuffer,
 |  | uint16_t * | pRxBufferLen,
 |  | uint8_t * | pMoreCardsAvailable
 | ) |  |

Bring the first matching tag to OPEN or SECURED state.

The command performs a selection followed by an inventory round. The first responding tag is set to the OPEN or SECURED state and the tag handle is returned. If more tags are in the field, it shall resolve collision and activate one tag. The pMoreCardsAvailable value will be set to 1 if more cards are available in the field.

Issuing the Select command is optional based on the value of bSelCmdLen parameter. If bSelCmdLen parameter is zero, then ISO 18000p3m3 Select command is not issued. Only the BeginRound command is issued.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pSelCmd | ISO 18000p3m3 Select command frame.
[in] | bSelCmdLen | Select command length in bytes- 1 to 39 bytes. If set to zero, Select command is not sent.
[in] | bNumValidBitsinLastByte | Number of valid bits in last byte of pSelCmd.
[in] | pBeginRndCmd | ISO 18000p3m3 BeginRound command frame. This is 17bits i.e., 3 bytes are expected. CRC5 should not be provided.
[in] | bTSprocessing | TimeSlot processing behavior.
[out] | ppRxBuffer | Pointer to HAL Rx Buffer containing handle of the activated tag.
[out] | pRxBufferLen | Length of response in hal Rx Buffer.
[out] | pMoreCardsAvailable | Indicates if more tags are present in the field.

§ phpalI18000p3m3_SetConfig()

phStatus_t phpalI18000p3m3_SetConfig | ( | void * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t | wValue
 | ) |  |

Sets the configuration parameter.

This function sets the values for the provided configuration parameter

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wConfig | Configuration Identifier.
[in] | wValue | Configuration Value.


NXP NFC Reader Library: Component : Software

Data Structures | Macros | Functions
Component : Software
Protocol Abstraction Layer » ISO/IEC 18000-3 Mode3
Collaboration diagram for Component : Software:

Data Structures

struct phpalI18000p3m3_Sw_DataParams_t
Software PAL-I18000P3M3 parameter structure. More...

Macros

#define PHPAL_I18000P3M3_SW_ID 0x01
ID for Software I18000P3M3 layer. More...

Functions

phStatus_t phpalI18000p3m3_Sw_Init (phpalI18000p3m3_Sw_DataParams_t *pDataParams, uint16_t wSizeOfDataParams, void *pHalDataParams)
Initialise this layer. More...

Detailed Description

Macro Definition Documentation

§ PHPAL_I18000P3M3_SW_ID

#define PHPAL_I18000P3M3_SW_ID 0x01

ID for Software I18000P3M3 layer.

Function Documentation

§ phpalI18000p3m3_Sw_Init()

phStatus_t phpalI18000p3m3_Sw_Init | ( | phpalI18000p3m3_Sw_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams,
 |  | void * | pHalDataParams
 | ) |  |

Initialise this layer.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wSizeOfDataParams | Specifies the size of the data parameter structure.
[in] | pHalDataParams | Pointer to the parameter structure of the underlying HAL layer.


NXP NFC Reader Library: phpalI18000p3m3_Sw_DataParams_t Struct Reference

Data Fields
phpalI18000p3m3_Sw_DataParams_t Struct Reference
Protocol Abstraction Layer » ISO/IEC 18000-3 Mode3 » Component : Software

Software PAL-I18000P3M3 parameter structure. More...

Data Fields

uint16_t wId
Layer ID for this component, NEVER MODIFY!
void * | pHalDataParams
Pointer to the parameter structure of the underlying HAL layer. More...
uint8_t bSession
Active session of inventory round. More...
uint8_t | abStoredCRC [2]
Stored CRC returned by the tag. More...
uint8_t bStoredCRCValid
Whether StoredCRC is valid or not. More...

Detailed Description

Software PAL-I18000P3M3 parameter structure.

Field Documentation

§ pHalDataParams

void* phpalI18000p3m3_Sw_DataParams_t::pHalDataParams

Pointer to the parameter structure of the underlying HAL layer.

§ bSession

uint8_t phpalI18000p3m3_Sw_DataParams_t::bSession

Active session of inventory round.

§ abStoredCRC

uint8_t phpalI18000p3m3_Sw_DataParams_t::abStoredCRC[2]

Stored CRC returned by the tag.

§ bStoredCRCValid

uint8_t phpalI18000p3m3_Sw_DataParams_t::bStoredCRCValid

Whether StoredCRC is valid or not.

The documentation for this struct was generated from the following file:
  • phpalI18000p3m3.h


NXP NFC Reader Library: ISO/IEC 18092 Mode Initiator

Modules | Macros | Functions
ISO/IEC 18092 Mode Initiator
Protocol Abstraction Layer

These Components implement the ISO/IEC ISO18092 contact-less protocol. More...

Collaboration diagram for ISO/IEC 18092 Mode Initiator:

Modules

Component : Software

Macros

#define | PHPAL_I18092MPI_DID_MAX 0x0EU
The last valid DID. More...
#define | PHPAL_I18092MPI_WT_MAX 0x0EU
The maximum allowed WT value, NFCForum-TS-DigitalProtocol-1.0 section 14.11. More...
#define | PHPAL_I18092MPI_FSL_MAX 0x03U
The maximum allowed FSL value. More...
#define | PHPAL_I18092MPI_PNI_MAX 0x03U
The maximum allowed PNI value. More...

Functions

phStatus_t | phpalI18092mPI_ResetProtocol (void *pDataParams)
Reset the ISO18092 protocol parameters. More...
phStatus_t | phpalI18092mPI_Atr (void *pDataParams, uint8_t *pNfcid3i, uint8_t bDid, uint8_t bLri, uint8_t bNadEnable, uint8_t bNad, uint8_t *pGi, uint8_t bGiLength, uint8_t *pAtrRes, uint8_t *pAtrResLength)
Perform an ISO18092 "Attribute Request" command. More...
phStatus_t | phpalI18092mPI_Psl (void *pDataParams, uint8_t bDsi, uint8_t bDri, uint8_t bFsl)
Perform an ISO18092 "Parameter Select" command. More...
phStatus_t | phpalI18092mPI_ActivateCard (void *pDataParams, uint8_t *pNfcid3i, uint8_t bDid, uint8_t bNadEnable, uint8_t bNad, uint8_t bDsi, uint8_t bDri, uint8_t bFsl, uint8_t *pGi, uint8_t bGiLength, uint8_t *pAtrRes, uint8_t *pAtrResLength)
Perform an ISO18092 ATR and PSL command. More...
phStatus_t | phpalI18092mPI_Deselect (void *pDataParams, uint8_t bDeselectCommand)
Deselect ISO18092 target by either sending DSL or RLS request. More...
phStatus_t | phpalI18092mPI_PresCheck (void *pDataParams)
Perform presence check for current target. More...
phStatus_t | phpalI18092mPI_Exchange (void *pDataParams, uint16_t wOption, uint8_t *pTxBuffer, uint16_t wTxLength, uint8_t **ppRxBuffer, uint16_t *pRxLength)
Perform ISO18092 Data Exchange with target. More...
phStatus_t | phpalI18092mPI_Transmit (void *pDataParams, uint16_t wOption, uint8_t *pTxBuffer, uint16_t wTxLength)
Perform ISO18092 Data Transmit to target. More...
phStatus_t | phpalI18092mPI_Receive (void *pDataParams, uint16_t wOption, uint8_t **ppRxBuffer, uint16_t *pRxLength)
Perform ISO18092 Data Exchange with target. More...
phStatus_t | phpalI18092mPI_SetConfig (void *pDataParams, uint16_t wConfig, uint16_t wValue)
Set configuration parameter. More...
phStatus_t | phpalI18092mPI_GetConfig (void *pDataParams, uint16_t wConfig, uint16_t *pValue)
Get configuration parameter. More...
phStatus_t | phpalI18092mPI_GetSerialNo (void *pDataParams, uint8_t *pNfcId3Out)
Retrieve the serial number (NFC ID3). More...
phStatus_t | phpalI18092mPI_Wakeup (void *pDataParams)
Wakeup ISO18092 Active Target by sending WUP request. More...

ISO18092 Mode Passive Initiator Parameters

#define | PHPAL_I18092MPI_CONFIG_PACKETNO 0x0000U
Set / Get packet number.
#define | PHPAL_I18092MPI_CONFIG_DID 0x0001U
Set / Get Device Identifier.
#define | PHPAL_I18092MPI_CONFIG_NAD 0x0002U
Set / Get Node Address. More...
#define | PHPAL_I18092MPI_CONFIG_WT 0x0003U
Set / Get waiting time.
#define | PHPAL_I18092MPI_CONFIG_FSL 0x0004U
Get frame length (FSL) value. More...
#define | PHPAL_I18092MPI_CONFIG_MAXRETRYCOUNT 0x0005U
Set / Get maximum retry count.
#define | PHPAL_I18092MPI_CONFIG_ATN 0x0006U
Set / Get ATN configuration.
#define | PHPAL_I18092MPI_CONFIG_ACTIVEMODE 0x0007U
Get the status if active communication mode is PH_ON / PH_OFF. More...

Values for #phpalI18092mPI_Deselect \c bDeselectCommand parameter.

#define | PHPAL_I18092MPI_DESELECT_DSL 0x08U
DSL is sent for deselection of target. More...
#define | PHPAL_I18092MPI_DESELECT_RLS 0x0AU
RLS is sent for Release of target. More...

DRI/DSI (BRI/BSI) Values

#define | PHPAL_I18092MPI_DATARATE_106 0x00U
DRI/DSI value for 106 kBit/s. More...
#define | PHPAL_I18092MPI_DATARATE_212 0x01U
DRI/DSI value for 212 kBit/s. More...
#define | PHPAL_I18092MPI_DATARATE_424 0x02U
DRI/DSI value for 424 kBit/s. More...

FSL/LRI Values

#define | PHPAL_I18092MPI_FRAMESIZE_64 0x00U
FSL value for max. More...
#define | PHPAL_I18092MPI_FRAMESIZE_128 0x01U
FSL value for max. More...
#define | PHPAL_I18092MPI_FRAMESIZE_192 0x02U
FSL value for max. More...
#define | PHPAL_I18092MPI_FRAMESIZE_254 0x03U
FSL value for max. More...

Maximum Values

#define PHPAL_I18092MPI_MAX_GI_LENGTH 48U
Maximum length of Gi data. More...

Detailed Description

These Components implement the ISO/IEC ISO18092 contact-less protocol.

Supported mode is passive initiator, i.e. using these components it is possible to communicate with a passive target in peer to peer mode.

Macro Definition Documentation

§ PHPAL_I18092MPI_DID_MAX

#define PHPAL_I18092MPI_DID_MAX 0x0EU

The last valid DID.

§ PHPAL_I18092MPI_WT_MAX

#define PHPAL_I18092MPI_WT_MAX 0x0EU

The maximum allowed WT value, NFCForum-TS-DigitalProtocol-1.0 section 14.11.

§ PHPAL_I18092MPI_FSL_MAX

#define PHPAL_I18092MPI_FSL_MAX 0x03U

The maximum allowed FSL value.

§ PHPAL_I18092MPI_PNI_MAX

#define PHPAL_I18092MPI_PNI_MAX 0x03U

The maximum allowed PNI value.

§ PHPAL_I18092MPI_CONFIG_NAD

#define PHPAL_I18092MPI_CONFIG_NAD 0x0002U

Set / Get Node Address.

wValue is parsed as follows:

* NadEnabled = (wValue & 0xFF00) ? 1 : 0;
* Nad = (wValue & 0x00FF);
*

§ PHPAL_I18092MPI_CONFIG_FSL

#define PHPAL_I18092MPI_CONFIG_FSL 0x0004U

Get frame length (FSL) value.

Indicates either Lri or Lrt value whichever is lesser in case PSL is not exchanged. If PSL is exchanged then the agreed FSL value is returned.

§ PHPAL_I18092MPI_CONFIG_ACTIVEMODE

#define PHPAL_I18092MPI_CONFIG_ACTIVEMODE 0x0007U

Get the status if active communication mode is PH_ON / PH_OFF.

§ PHPAL_I18092MPI_DESELECT_DSL

#define PHPAL_I18092MPI_DESELECT_DSL 0x08U

DSL is sent for deselection of target.

§ PHPAL_I18092MPI_DESELECT_RLS

#define PHPAL_I18092MPI_DESELECT_RLS 0x0AU

RLS is sent for Release of target.

§ PHPAL_I18092MPI_DATARATE_106

#define PHPAL_I18092MPI_DATARATE_106 0x00U

DRI/DSI value for 106 kBit/s.

§ PHPAL_I18092MPI_DATARATE_212

#define PHPAL_I18092MPI_DATARATE_212 0x01U

DRI/DSI value for 212 kBit/s.

§ PHPAL_I18092MPI_DATARATE_424

#define PHPAL_I18092MPI_DATARATE_424 0x02U

DRI/DSI value for 424 kBit/s.

§ PHPAL_I18092MPI_FRAMESIZE_64

#define PHPAL_I18092MPI_FRAMESIZE_64 0x00U

FSL value for max.

framesize of 64 Bytes.

§ PHPAL_I18092MPI_FRAMESIZE_128

#define PHPAL_I18092MPI_FRAMESIZE_128 0x01U

FSL value for max.

framesize of 128 Bytes.

§ PHPAL_I18092MPI_FRAMESIZE_192

#define PHPAL_I18092MPI_FRAMESIZE_192 0x02U

FSL value for max.

framesize of 192 Bytes.

§ PHPAL_I18092MPI_FRAMESIZE_254

#define PHPAL_I18092MPI_FRAMESIZE_254 0x03U

FSL value for max.

framesize of 254 Bytes.

§ PHPAL_I18092MPI_MAX_GI_LENGTH

#define PHPAL_I18092MPI_MAX_GI_LENGTH 48U

Maximum length of Gi data.

Function Documentation

§ phpalI18092mPI_ResetProtocol()

phStatus_t phpalI18092mPI_ResetProtocol ( void * pDataParams )

Reset the ISO18092 protocol parameters.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phpalI18092mPI_Atr()

phStatus_t phpalI18092mPI_Atr | ( | void * | pDataParams,
 |  | uint8_t * | pNfcid3i,
 |  | uint8_t | bDid,
 |  | uint8_t | bLri,
 |  | uint8_t | bNadEnable,
 |  | uint8_t | bNad,
 |  | uint8_t * | pGi,
 |  | uint8_t | bGiLength,
 |  | uint8_t * | pAtrRes,
 |  | uint8_t * | pAtrResLength
 | ) |  |

Perform an ISO18092 "Attribute Request" command.

The following values for bLri are possible:

  • PHPAL_I18092MPI_FRAMESIZE_64
  • PHPAL_I18092MPI_FRAMESIZE_128
  • PHPAL_I18092MPI_FRAMESIZE_192
  • PHPAL_I18092MPI_FRAMESIZE_254
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Received response is not ISO/IEC 18092 compliant.
PH_ERR_IO_TIMEOUT | Timeout waiting for reply, e.g. target removal.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pNfcid3i | NFCID3 - randomly generated in case of 106kbps initial datarate or NFCID2 in case of 212/424kbps datarate; uint8_t[10]
[in] | bDid | Device Identifier; '0' to disable usage else 1-14.
[in] | bLri | Length Reduction of Initiator; 0-3
[in] | bNadEnable | Enable usage of Node Address; Unequal '0' to enable.
[in] | bNad | Node Address; Ignored if bNadEnabled is equal '0'.
[in] | pGi | Optional General Information bytes.
[in] | bGiLength | Number of General Information bytes; Not more than PHPAL_I18092MPI_MAX_GI_LENGTH.
[out] | pAtrRes | Attribute Response; uint8_t[64].
[out] | pAtrResLength | Attribute Response Length.

§ phpalI18092mPI_Psl()

phStatus_t phpalI18092mPI_Psl | ( | void * | pDataParams,
 |  | uint8_t | bDsi,
 |  | uint8_t | bDri,
 |  | uint8_t | bFsl
 | ) |  |

Perform an ISO18092 "Parameter Select" command.

The following values for bDri and bDsi are possible:

  • PHPAL_I18092MPI_DATARATE_106
  • PHPAL_I18092MPI_DATARATE_212
  • PHPAL_I18092MPI_DATARATE_424

The following values for bFsl are possible:

  • PHPAL_I18092MPI_FRAMESIZE_64
  • PHPAL_I18092MPI_FRAMESIZE_128
  • PHPAL_I18092MPI_FRAMESIZE_192
  • PHPAL_I18092MPI_FRAMESIZE_254
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Received response is not ISO/IEC 18092 compliant.
PH_ERR_IO_TIMEOUT | Timeout waiting for reply, e.g. target removal.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bDsi | Divisor Send (target to initiator) Integer; 0-2
[in] | bDri | Divisor Receive (initiator to target) Integer; 0-2
[in] | bFsl | Frame Length Byte; 0-3

§ phpalI18092mPI_ActivateCard()

phStatus_t phpalI18092mPI_ActivateCard | ( | void * | pDataParams,
 |  | uint8_t * | pNfcid3i,
 |  | uint8_t | bDid,
 |  | uint8_t | bNadEnable,
 |  | uint8_t | bNad,
 |  | uint8_t | bDsi,
 |  | uint8_t | bDri,
 |  | uint8_t | bFsl,
 |  | uint8_t * | pGi,
 |  | uint8_t | bGiLength,
 |  | uint8_t * | pAtrRes,
 |  | uint8_t * | pAtrResLength
 | ) |  |

Perform an ISO18092 ATR and PSL command.

The following values for bDri and bDsi are possible:

  • PHPAL_I18092MPI_DATARATE_106
  • PHPAL_I18092MPI_DATARATE_212
  • PHPAL_I18092MPI_DATARATE_424

The following values for bFsl are possible:

  • PHPAL_I18092MPI_FRAMESIZE_64
  • PHPAL_I18092MPI_FRAMESIZE_128
  • PHPAL_I18092MPI_FRAMESIZE_192
  • PHPAL_I18092MPI_FRAMESIZE_254
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful, target activated.
PH_ERR_PROTOCOL_ERROR | Received response is not ISO/IEC 18092 compliant.
PH_ERR_IO_TIMEOUT | Timeout waiting for reply, e.g. target removal.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pNfcid3i | NFCID3 - any number in case of 106kbps initial datarate. For 212/424kbps datarate bytes 0 - 7 have to be NFCID2, bytes 8 - 9 need to be set to 0; uint8_t[10]
[in] | bDid | Device Identifier; '0' to disable usage else 1-14.
[in] | bNadEnable | Enable usage of Node Address; Unequal '0' to enable.
[in] | bNad | Node Address; Ignored if bNadEnabled is equal '0'.
[in] | bDsi | Divisor Send (target to initiator) Integer; 0-7
[in] | bDri | Divisor Receive (initiator to target) Integer; 0-7
[in] | bFsl | Frame Length Byte; 0-3
[in] | pGi | Optional General Information bytes.
[in] | bGiLength | Number of General Information bytes.
[out] | pAtrRes | Attribute Response; uint8_t[64].
[out] | pAtrResLength | Attribute Response Length.

§ phpalI18092mPI_Deselect()

phStatus_t phpalI18092mPI_Deselect | ( | void * | pDataParams,
 |  | uint8_t | bDeselectCommand
 | ) |  |

Deselect ISO18092 target by either sending DSL or RLS request.

The following values for bDeselectCommand are possible:

  • PHPAL_I18092MPI_DESELECT_DSL
  • PHPAL_I18092MPI_DESELECT_RLS
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful, target deselected.
PH_ERR_PROTOCOL_ERROR | Received response is not ISO/IEC 18092 compliant.
PH_ERR_IO_TIMEOUT | Timeout waiting for reply, e.g. target removal.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bDeselectCommand | Request to send, either PHPAL_I18092MPI_DESELECT_DSL or PHPAL_I18092MPI_DESELECT_RLS.

§ phpalI18092mPI_PresCheck()

phStatus_t phpalI18092mPI_PresCheck ( void * pDataParams )

Perform presence check for current target.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful, target is present.
PH_ERR_PROTOCOL_ERROR | Received response is not ISO/IEC 18092 compliant.
PH_ERR_IO_TIMEOUT | Timeout waiting for reply, e.g. target removal.
PHPAL_I18092MPI_ERR_RECOVERY_FAILED | Recovery failed, target does not respond any more.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phpalI18092mPI_Exchange()

phStatus_t phpalI18092mPI_Exchange | ( | void * | pDataParams,
 |  | uint16_t | wOption,
 |  | uint8_t * | pTxBuffer,
 |  | uint16_t | wTxLength,
 |  | uint8_t ** | ppRxBuffer,
 |  | uint16_t * | pRxLength
 | ) |  |

Perform ISO18092 Data Exchange with target.

wOption can be one of:

  • PH_EXCHANGE_DEFAULT
  • PH_EXCHANGE_TXCHAINING
  • PH_EXCHANGE_RXCHAINING
  • PH_EXCHANGE_RXCHAINING_BUFSIZE

Additionally, the following options are also available:

  • PH_EXCHANGE_BUFFER_FIRST
  • PH_EXCHANGE_BUFFER_CONT
  • PH_EXCHANGE_BUFFER_LAST

Alternatively to the FIRST/CONT/LAST options, the following bits can be combined:

  • PH_EXCHANGE_BUFFERED_BIT
  • PH_EXCHANGE_LEAVE_BUFFER_BIT
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Received response is not ISO/IEC 18092 compliant.
PH_ERR_IO_TIMEOUT | Timeout waiting for reply, e.g. target removal.
PHPAL_I18092MPI_ERR_RECOVERY_FAILED | Recovery failed, target does not respond any more.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wOption | Option parameter.
[in] | pTxBuffer | Data to transmit.
[in] | wTxLength | Length of data to transmit.
[out] | ppRxBuffer | Pointer to received data.
[out] | pRxLength | number of received data bytes.

§ phpalI18092mPI_Transmit()

phStatus_t phpalI18092mPI_Transmit | ( | void * | pDataParams,
 |  | uint16_t | wOption,
 |  | uint8_t * | pTxBuffer,
 |  | uint16_t | wTxLength
 | ) |  |

Perform ISO18092 Data Transmit to target.

wOption can be one of:

  • PH_TRANSMIT_DEFAULT
  • PH_TRANSMIT_TXCHAINING

Additionally, the following options are also available:

  • PH_TRANSMIT_BUFFER_FIRST
  • PH_TRANSMIT_BUFFER_CONT
  • PH_TRANSMIT_BUFFER_LAST

Alternatively to the FIRST/CONT/LAST options, the following bits can be combined:

  • PH_TRANSMIT_BUFFERED_BIT
  • PH_TRANSMIT_LEAVE_BUFFER_BIT
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Received response is not ISO/IEC 18092 compliant.
PHPAL_I18092MPI_ERR_RECOVERY_FAILED | Recovery failed, target does not respond any more.
Other | Depending on implementation and underlying component.

§ phpalI18092mPI_Receive()

phStatus_t phpalI18092mPI_Receive | ( | void * | pDataParams,
 |  | uint16_t | wOption,
 |  | uint8_t ** | ppRxBuffer,
 |  | uint16_t * | pRxLength
 | ) |  |

Perform ISO18092 Data Exchange with target.

wOption can be one of:

  • PH_RECEIVE_DEFAULT
  • PH_RECEIVE_CHAINING
  • PH_RECEIVE_CHAINING_BUFSIZE
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Received response is not ISO/IEC 18092 compliant.
PH_ERR_IO_TIMEOUT | Timeout waiting for reply, e.g. target removal.
PHPAL_I18092MPI_ERR_RECOVERY_FAILED | Recovery failed, target does not respond any more.
Other | Depending on implementation and underlying component.

§ phpalI18092mPI_SetConfig()

phStatus_t phpalI18092mPI_SetConfig | ( | void * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t | wValue
 | ) |  |

Set configuration parameter.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wConfig | Configuration Identifier.
[in] | wValue | Configuration Value.

§ phpalI18092mPI_GetConfig()

phStatus_t phpalI18092mPI_GetConfig | ( | void * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t * | pValue
 | ) |  |

Get configuration parameter.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wConfig | Configuration Identifier.
[out] | pValue | Configuration Value.

§ phpalI18092mPI_GetSerialNo()

phStatus_t phpalI18092mPI_GetSerialNo | ( | void * | pDataParams,
 |  | uint8_t * | pNfcId3Out
 | ) |  |

Retrieve the serial number (NFC ID3).

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[out] | pNfcId3Out | last NFCID3; uint8_t[10].

§ phpalI18092mPI_Wakeup()

phStatus_t phpalI18092mPI_Wakeup ( void * pDataParams )

Wakeup ISO18092 Active Target by sending WUP request.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful, target deselected.
PH_ERR_PROTOCOL_ERROR | Received response is not ISO/IEC 18092 compliant.
PH_ERR_IO_TIMEOUT | Timeout waiting for reply, e.g. target removal.
PHPAL_I18092MPI_ERR_RECOVERY_FAILED | Recovery failed, target does not respond any more.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.


NXP NFC Reader Library: Component : Software

Data Structures | Macros | Functions
Component : Software
Protocol Abstraction Layer » ISO/IEC 18092 Mode Initiator
Collaboration diagram for Component : Software:

Data Structures

struct phpalI18092mPI_Sw_DataParams_t
ISO18092 mode passive initiator parameter structure. More...

Macros

#define | PHPAL_I18092MPI_SW_ID 0x01U
ID for Software ISO18092 layer. More...
#define | PHPAL_I18092MPI_NFCID3_LENGTH 0x0AU
Length of NFCID3. More...

Functions

phStatus_t phpalI18092mPI_Sw_Init (phpalI18092mPI_Sw_DataParams_t *pDataParams, uint16_t wSizeOfDataParams, void *pHalDataParams)
Initialize this layer. More...

Detailed Description

Macro Definition Documentation

§ PHPAL_I18092MPI_SW_ID

#define PHPAL_I18092MPI_SW_ID 0x01U

ID for Software ISO18092 layer.

§ PHPAL_I18092MPI_NFCID3_LENGTH

#define PHPAL_I18092MPI_NFCID3_LENGTH 0x0AU

Length of NFCID3.

Function Documentation

§ phpalI18092mPI_Sw_Init()

phStatus_t phpalI18092mPI_Sw_Init | ( | phpalI18092mPI_Sw_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams,
 |  | void * | pHalDataParams
 | ) |  |

Initialize this layer.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wSizeOfDataParams | Specifies the size of the data parameter structure.
[in] | pHalDataParams | Pointer to the parameter structure of the underlying layer.


NXP NFC Reader Library: phpalI18092mPI_Sw_DataParams_t Struct Reference

Data Fields
phpalI18092mPI_Sw_DataParams_t Struct Reference
Protocol Abstraction Layer » ISO/IEC 18092 Mode Initiator » Component : Software

ISO18092 mode passive initiator parameter structure. More...

Data Fields

uint16_t wId
Layer ID for this component, NEVER MODIFY!
uint16_t wLastTxLen
Last DEP Send length. More...
void * pHalDataParams
Pointer to the parameter structure of the underlying layer. More...
uint8_t bNfcIdValid
Whether current NfcID is valid or not. More...
uint8_t aNfcid3i [PHPAL_I18092MPI_NFCID3_LENGTH]
Array holding 10 bytes long NFCID3. More...
uint8_t bStateNow
Current Exchange-State. More...
uint8_t bDid
Device Identifier; '0' to disable usage else 1-14. More...
uint8_t bNadEnabled
Node Address Enabler; Unequal '0' if enabled. More...
uint8_t bNad
Node Address; Ignored if bNadEnabled is equal '0'. More...
uint8_t bWt
Waiting Time; 0-14.
uint8_t bFsl
Frame Length Byte; 0-3.
uint8_t bPni
Current Packet Number (Packet number information); 0-3.
uint8_t bDsi
Divisor Send (target to initiator) Integer; 0-2.
uint8_t bDri
Divisor Receive (initiator to target) Integer; 0-2.
uint8_t bLri
Length reduction (initiator). More...
uint8_t bLrt
Length reduction (target). More...
uint8_t bMaxRetryCount
Maximum retry count for retransmissions. More...
uint8_t bAtnDisabled
ATN Disabler (i.e. More...
uint8_t bActiveMode
Flag indicates whether active mode is activated or not. More...

Detailed Description

ISO18092 mode passive initiator parameter structure.

Field Documentation

§ wLastTxLen

uint16_t phpalI18092mPI_Sw_DataParams_t::wLastTxLen

Last DEP Send length.

§ pHalDataParams

void* phpalI18092mPI_Sw_DataParams_t::pHalDataParams

Pointer to the parameter structure of the underlying layer.

§ bNfcIdValid

uint8_t phpalI18092mPI_Sw_DataParams_t::bNfcIdValid

Whether current NfcID is valid or not.

§ aNfcid3i

uint8_t phpalI18092mPI_Sw_DataParams_t::aNfcid3i[PHPAL_I18092MPI_NFCID3_LENGTH]

Array holding 10 bytes long NFCID3.

§ bStateNow

uint8_t phpalI18092mPI_Sw_DataParams_t::bStateNow

Current Exchange-State.

§ bDid

uint8_t phpalI18092mPI_Sw_DataParams_t::bDid

Device Identifier; '0' to disable usage else 1-14.

§ bNadEnabled

uint8_t phpalI18092mPI_Sw_DataParams_t::bNadEnabled

Node Address Enabler; Unequal '0' if enabled.

§ bNad

uint8_t phpalI18092mPI_Sw_DataParams_t::bNad

Node Address; Ignored if bNadEnabled is equal '0'.

§ bLri

uint8_t phpalI18092mPI_Sw_DataParams_t::bLri

Length reduction (initiator).

§ bLrt

uint8_t phpalI18092mPI_Sw_DataParams_t::bLrt

Length reduction (target).

§ bMaxRetryCount

uint8_t phpalI18092mPI_Sw_DataParams_t::bMaxRetryCount

Maximum retry count for retransmissions.

§ bAtnDisabled

uint8_t phpalI18092mPI_Sw_DataParams_t::bAtnDisabled

ATN Disabler (i.e.

'0' if ATN enabled).

§ bActiveMode

uint8_t phpalI18092mPI_Sw_DataParams_t::bActiveMode

Flag indicates whether active mode is activated or not.

The documentation for this struct was generated from the following file:
  • phpalI18092mPI.h


NXP NFC Reader Library: ISO/IEC 18092 Mode Target

Modules | Macros | Functions
ISO/IEC 18092 Mode Target
Protocol Abstraction Layer

This Component implements the ISO/IEC ISO18092 Target mode contact-less protocol. More...

Collaboration diagram for ISO/IEC 18092 Mode Target:

Modules

Component : Software

Macros

#define | PHPAL_I18092MT_DID_MAX 0x0EU
The last valid DID. More...
#define | PHPAL_I18092MT_WT_MAX 0x0EU
The maximum allowed WT value, NFCForum-TS-DigitalProtocol-1.0 section 14.11. More...
#define | PHPAL_I18092MT_FSL_MAX 0x03U
The maximum allowed FSL value. More...
#define | PHPAL_I18092MT_NAD_MAX 0x0FU
The maximum allowed NAD value. More...
#define | PHPAL_I18092MT_MASK_NAD_ENABLE 0xFF00U
Mask used for NAD Enabled/Disabled. More...
#define | PHPAL_I18092MT_MASK_NAD_VALUE 0x00FFU
Mask used for NAD value. More...

Functions

phStatus_t | phpalI18092mT_ResetProtocol (void *pDataParams)
Reset the ISO18092 protocol parameters. More...
phStatus_t | phpalI18092mT_Activate (void *pDataParams, uint8_t *pAtrReq, uint16_t wAtrReqLength, uint8_t *pAtrRes, uint16_t wAtrResLength, uint8_t **pGeneralDataBytes, uint16_t *wGeneralDataBytesLength)
Handles ISO/IEC 18092 compliant activation sequence. More...
phStatus_t | phpalI18092mT_Receive (void *pDataParams, uint16_t wOption, uint8_t **ppTransportDataBytes, uint16_t *pTransportDataBytesLength)
Receives ISO/IEC 18092 frame from Initiator. More...
phStatus_t | phpalI18092mT_Transmit (void *pDataParams, uint16_t wOption, uint8_t *pTransportDataBytes, uint16_t wTransportDataBytesLength)
Sends a DEP_RES I-PDU to an ISO/IEC 18092 compliant Initiator. More...
phStatus_t | phpalI18092mT_Rtox (void *pDataParams)
Transmits an RTOX PDU to extend waiting time and receives RTOX response from Initiator. More...
phStatus_t | phpalI18092mT_SetConfig (void *pDataParams, uint16_t wConfig, uint16_t wValue)
Set configuration parameter. More...
phStatus_t | phpalI18092mT_GetConfig (void *pDataParams, uint16_t wConfig, uint16_t *pValue)
Get configuration parameter. More...

ISO18092 Target Mode Configuration Parameters

#define | PHPAL_I18092MT_CONFIG_RTOX 0x0000U
Enable / Disable RTOX feature.
#define | PHPAL_I18092MT_CONFIG_RTOX_VALUE 0x0001U
RTOX value.
#define | PHPAL_I18092MT_CONFIG_NAD 0x0002U
Set / Get Node Address. More...
#define | PHPAL_I18092MT_CONFIG_DID 0x0003U
Get DID value. More...
#define | PHPAL_I18092MT_CONFIG_FSL 0x0004U
Get FSL value. More...
#define | PHPAL_I18092MT_CONFIG_TO 0x0005U
Get Time Out (TO) value used by the Target to communicate FWT.

ISO18092 Target Mode Parameters

#define | PHPAL_I18092MT_BIT_RATE_MASK 0xF0U
Mask Bit Rates Supported by Initiator. More...
#define | PHPAL_I18092MT_SW_MAX_RTOX_VALUE 0x3BU
RTOX max value.
#define | PHPAL_I18092MT_SW_MIN_RTOX_VALUE 0x01U
RTOX min value.

DRI/DSI (BRI/BSI) Values

#define | PHPAL_I18092MT_DATARATE_106 0x0000U
DRT(I)/DST(I) value for 106 kBit/s. More...
#define | PHPAL_I18092MT_DATARATE_212 0x0001U
DRT(T)/DST(T) value for 212 kBit/s. More...
#define | PHPAL_I18092MT_DATARATE_424 0x0002U
DRI(T)/DSI(T) value for 424 kBit/s. More...

FSL/LRI Values

#define | PHPAL_I18092MT_FRAMESIZE_64 0x00U
FSL value for max. More...
#define | PHPAL_I18092MT_FRAMESIZE_128 0x01U
FSL value for max. More...
#define | PHPAL_I18092MT_FRAMESIZE_192 0x02U
FSL value for max. More...
#define | PHPAL_I18092MT_FRAMESIZE_254 0x03U
FSL value for max. More...

Maximum Values

#define PHPAL_I18092MT_MAX_GI_LENGTH 0x30U
Maximum length of Gi data. More...

Detailed Description

This Component implements the ISO/IEC ISO18092 Target mode contact-less protocol.

Using this component it is possible to communicate with an active/passive Initiator.

Macro Definition Documentation

§ PHPAL_I18092MT_DID_MAX

#define PHPAL_I18092MT_DID_MAX 0x0EU

The last valid DID.

§ PHPAL_I18092MT_WT_MAX

#define PHPAL_I18092MT_WT_MAX 0x0EU

The maximum allowed WT value, NFCForum-TS-DigitalProtocol-1.0 section 14.11.

§ PHPAL_I18092MT_FSL_MAX

#define PHPAL_I18092MT_FSL_MAX 0x03U

The maximum allowed FSL value.

§ PHPAL_I18092MT_NAD_MAX

#define PHPAL_I18092MT_NAD_MAX 0x0FU

The maximum allowed NAD value.

§ PHPAL_I18092MT_MASK_NAD_ENABLE

#define PHPAL_I18092MT_MASK_NAD_ENABLE 0xFF00U

Mask used for NAD Enabled/Disabled.

§ PHPAL_I18092MT_MASK_NAD_VALUE

#define PHPAL_I18092MT_MASK_NAD_VALUE 0x00FFU

Mask used for NAD value.

§ PHPAL_I18092MT_CONFIG_NAD

#define PHPAL_I18092MT_CONFIG_NAD 0x0002U

Set / Get Node Address.

wValue is parsed as follows:

* NadEnabled = (wValue & 0xFF00) ? 1 : 0;
* Nad = (wValue & 0x000F);
*

§ PHPAL_I18092MT_CONFIG_DID

#define PHPAL_I18092MT_CONFIG_DID 0x0003U

Get DID value.

Indicates if DID is used by the PAL.

§ PHPAL_I18092MT_CONFIG_FSL

#define PHPAL_I18092MT_CONFIG_FSL 0x0004U

Get FSL value.

Indicates either Lrt or Lri value whichever is lesser in case PSL is not exchanged. If PSL is exchanged then the agreed FSL value is returned.

§ PHPAL_I18092MT_BIT_RATE_MASK

#define PHPAL_I18092MT_BIT_RATE_MASK 0xF0U

Mask Bit Rates Supported by Initiator.

§ PHPAL_I18092MT_DATARATE_106

#define PHPAL_I18092MT_DATARATE_106 0x0000U

DRT(I)/DST(I) value for 106 kBit/s.

§ PHPAL_I18092MT_DATARATE_212

#define PHPAL_I18092MT_DATARATE_212 0x0001U

DRT(T)/DST(T) value for 212 kBit/s.

§ PHPAL_I18092MT_DATARATE_424

#define PHPAL_I18092MT_DATARATE_424 0x0002U

DRI(T)/DSI(T) value for 424 kBit/s.

§ PHPAL_I18092MT_FRAMESIZE_64

#define PHPAL_I18092MT_FRAMESIZE_64 0x00U

FSL value for max.

frame size of 64 Bytes.

§ PHPAL_I18092MT_FRAMESIZE_128

#define PHPAL_I18092MT_FRAMESIZE_128 0x01U

FSL value for max.

frame size of 128 Bytes.

§ PHPAL_I18092MT_FRAMESIZE_192

#define PHPAL_I18092MT_FRAMESIZE_192 0x02U

FSL value for max.

frame size of 192 Bytes.

§ PHPAL_I18092MT_FRAMESIZE_254

#define PHPAL_I18092MT_FRAMESIZE_254 0x03U

FSL value for max.

frame size of 254 Bytes.

§ PHPAL_I18092MT_MAX_GI_LENGTH

#define PHPAL_I18092MT_MAX_GI_LENGTH 0x30U

Maximum length of Gi data.

Function Documentation

§ phpalI18092mT_ResetProtocol()

phStatus_t phpalI18092mT_ResetProtocol ( void * pDataParams )

Reset the ISO18092 protocol parameters.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phpalI18092mT_Activate()

phStatus_t phpalI18092mT_Activate | ( | void * | pDataParams,
 |  | uint8_t * | pAtrReq,
 |  | uint16_t | wAtrReqLength,
 |  | uint8_t * | pAtrRes,
 |  | uint16_t | wAtrResLength,
 |  | uint8_t ** | pGeneralDataBytes,
 |  | uint16_t * | wGeneralDataBytesLength
 | ) |  |

Handles ISO/IEC 18092 compliant activation sequence.

This function takes the data returned by phhalHw_Autocoll as a parameter, along with the ATR_RES.
Validates the received ATR_REQ and sends the ATR_RES to PCD. If the ATR_REQ was received with error, then stays mute and waits for the valid ATR_REQ and then responds with ATR_RES.
If General information bytes are present in the ATR_REQ then it will be returned back to the caller.
ATR_RES format : byte 1-10:nfcid, byte 11:BSt, byte 12:BRt, byte13:TO, byte14:PPt, byte:15..n[Gt1..n].

Return values
PH_ERR_SUCCESS | Operation successful, target activated.
PH_ERR_PROTOCOL_ERROR | Received response is not ISO/IEC 18092 compliant.
PH_ERR_EXT_RF_ERROR | RF Turned OFF in passive communication mode
PH_ERR_INVALID_PARAMETER | Invalid parameter supplied.
Others | from the underlying layer.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pAtrReq | Data received from Autocoll. Pointer to ATR_REQ.
[in] | wAtrReqLength | Length of ATR_REQ. Including GT byte.
[in] | pAtrRes | Pointer to ATR_RES. Refer function description for the format.
[in] | wAtrResLength | Length of ATR_RES.
[out] | pGeneralDataBytes | Pointer to the general data bytes of ATR_REQ.
[out] | wGeneralDataBytesLength | Number of received general data bytes of ATR_REQ.

§ phpalI18092mT_Receive()

phStatus_t phpalI18092mT_Receive | ( | void * | pDataParams,
 |  | uint16_t | wOption,
 |  | uint8_t ** | ppTransportDataBytes,
 |  | uint16_t * | pTransportDataBytesLength
 | ) |  |

Receives ISO/IEC 18092 frame from Initiator.

This will be the next call in sequence after the phpalI18092mT_Activate.
If the next frame is PSL_REQ it will be validated and handled in this function and this will send the PSL_RES else it will come out after validating the DEP_REQ received as the next frame.
If it is a chained frame and more data is expected and RxBuffer is sufficiently large to hold the next chained frame, sends an ACK to receive the next chained frame i.e., it will keep on getting the next chunk of data after sending ACKs to the PCD and adding the chunks to the RxBuffer making it a contiguous set of data.
If there is more data to be received but the RxBuffer cannot handle the next chained frame, returns to the caller with status PH_ERR_SUCCESS_CHAINING. In this case, the application or the higher layer has to copy the received buffer and call the phpalI18092_Receive again with wOption = PH_RECEIVE_CHAINING. In this case this function will send an ACK to the Initiator to start receiving the rest of the data. If the data received is DSL_REQ, then sends the DSL_RES and set the state to MIFARE Halted state in case of Type A in passive communication mode or else will remain in receive mode till a WUP_REQ is received in active communication mode.
This function will also handles the RLS_REQ and sends a RLS_RES In case of Active communication mode this function waits for WUP_REQ after DSL_REQ is received. If ISO 18092 RAW is activated, the RTOx timer will be started in this function before the data is handled over to the caller.

wOption can be one of:

  • PH_RECEIVE_DEFAULT
  • PH_RECEIVE_CHAINING
  • PH_RECEIVE_CHAINING_BUFSIZE
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_SUCCESS_CHAINING | Rx chaining not complete.
PH_ERR_SUCCESS_ACK | Received ACK for a previous Transmit and no valid data received in the OUT parameters.
PH_ERR_SUCCESS_DESELECTED | PCD has sent DSL_REQ.
PH_ERR_SUCCESS_RELEASED | PCD has sent RLS_REQ.
PH_ERR_EXT_RF_ERROR | External RF turned OFF in passive communication mode.
PH_ERR_BUFFER_OVERFLOW | Attempt to write beyond buffer size.
Others | from the underlying layer.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wOption | Option parameter.
[out] | ppTransportDataBytes | Pointer to the received transport data bytes.
[out] | pTransportDataBytesLength | Number of received transport data bytes.

§ phpalI18092mT_Transmit()

phStatus_t phpalI18092mT_Transmit | ( | void * | pDataParams,
 |  | uint16_t | wOption,
 |  | uint8_t * | pTransportDataBytes,
 |  | uint16_t | wTransportDataBytesLength
 | ) |  |

Sends a DEP_RES I-PDU to an ISO/IEC 18092 compliant Initiator.

This is to be called by the application or the reader library thread to transmit a response to the PCD.
This will internally call the HAL transmit API.
If the pTxData length is bigger than the ISO 18092 Tx buffer (HAL Tx buffer), then this function will fragment and send this data to the PCD.
In addition PH_TRANSMIT_TXCHAINING may be used to enable providing the TxData in chunks i.e., the application itself may have received the first chunk only from an external Host and it could receive more data from the Host in the next iteration. In such cases, this will be useful.

wOption can be one of:

  • PH_TRANSMIT_DEFAULT
  • PH_TRANSMIT_TXCHAINING

Additionally, the following options are also available:

  • PH_TRANSMIT_BUFFER_FIRST
  • PH_TRANSMIT_BUFFER_CONT
  • PH_TRANSMIT_BUFFER_LAST
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_EXT_RF_ERROR | External RF turned OFF in passive communication mode.
Others | from the underlying layer.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wOption | Option parameter.
[in] | pTransportDataBytes | Transport Data Bytes to be transmitted as part of an DEP_REQ I-PDU.
[in] | wTransportDataBytesLength | Number of transport data bytes.

§ phpalI18092mT_Rtox()

phStatus_t phpalI18092mT_Rtox ( void * pDataParams )

Transmits an RTOX PDU to extend waiting time and receives RTOX response from Initiator.

This is the API that is called by the application on expire of the RTO timer.
This sends RTOx packet to the PCD and then waits for a valid response.
If the received data is a NACK, then the RTOx packet is re-transmitted.

Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_EXT_RF_ERROR | RF Turned OFF in passive communication mode
Others | from the underlying layer.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phpalI18092mT_SetConfig()

phStatus_t phpalI18092mT_SetConfig | ( | void * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t | wValue
 | ) |  |

Set configuration parameter.

wOption can be one of:

  • PHPAL_I18092MT_CONFIG_RTOX
  • PHPAL_I18092MT_CONFIG_RTOX_VALUE
  • PHPAL_I18092MT_CONFIG_NAD
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | Invalid parameter supplied.
PH_ERR_UNSUPPORTED_PARAMETER | wrong wOption parameter supplied.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wConfig | Configuration Identifier.
[in] | wValue | Configuration Value.

§ phpalI18092mT_GetConfig()

phStatus_t phpalI18092mT_GetConfig | ( | void * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t * | pValue
 | ) |  |

Get configuration parameter.

wOption can be :

  • PHPAL_I18092MT_CONFIG_RTOX
  • PHPAL_I18092MT_CONFIG_NAD
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_UNSUPPORTED_PARAMETER | wrong wOption parameter supplied.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wConfig | Configuration Identifier.
[out] | pValue | Configuration Value.


NXP NFC Reader Library: Component : Software

Data Structures | Macros | Typedefs | Functions
Component : Software
Protocol Abstraction Layer » ISO/IEC 18092 Mode Target
Collaboration diagram for Component : Software:

Data Structures

struct phpalI18092mT_Sw_DataParams_t
ISO18092 mode passive target parameter structure. More...

Macros

#define | PHPAL_I18092MT_SW_ID 0x01U
ID for software I18092 MT component.
#define | PHPAL_I18092MT_NFCID3_LENGTH 0x0AU
Length of NFCID3. More...

Typedefs

typedef void(* pRtoxTimerCallback) (uint8_t bTimerId)
Typedef for the RTOX call back function.

Functions

phStatus_t phpalI18092mT_Sw_Init (phpalI18092mT_Sw_DataParams_t *pDataParams, uint16_t wSizeOfDataParams, void *pHalDataParams, pRtoxTimerCallback pRtoxCallback)
Initialize this layer. More...

Detailed Description

Macro Definition Documentation

§ PHPAL_I18092MT_NFCID3_LENGTH

#define PHPAL_I18092MT_NFCID3_LENGTH 0x0AU

Length of NFCID3.

Event posted by response time extension timer ISR. Reader library thread listens to this event and sends the RTOx packet.

Function Documentation

§ phpalI18092mT_Sw_Init()

phStatus_t phpalI18092mT_Sw_Init | ( | phpalI18092mT_Sw_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams,
 |  | void * | pHalDataParams,
 |  | pRtoxTimerCallback | pRtoxCallback
 | ) |  |

Initialize this layer.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_DATA_PARAMS | Wrong pointer to this layer's parameter structure is sent.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wSizeOfDataParams | Specifies the size of the data parameter structure.
[in] | pHalDataParams | Pointer to the parameter structure of the underlying HAL.
[in] | pRtoxCallback | Callback to be executed by the RTOX timer. Implementation provided by user.


NXP NFC Reader Library: phpalI18092mT_Sw_DataParams_t Struct Reference

Data Fields
phpalI18092mT_Sw_DataParams_t Struct Reference
Protocol Abstraction Layer » ISO/IEC 18092 Mode Target » Component : Software

ISO18092 mode passive target parameter structure. More...

Data Fields

uint16_t wId
Layer ID for this component, NEVER MODIFY.
void * | pHalDataParams
Pointer to the parameter structure of underlying hardware component.
void * | pPlatform
Pointer to OSAL layer. More...
void * | ovrTask
Task context. More...
void * | pTimerHandle
Timer Handle (For RTOX). More...
pRtoxTimerCallback pRtoxCallback
Holds RTOX Callback function address.
uint16_t wLastTxLen
Last successful DEP send length. More...
uint8_t aNfcid3i [PHPAL_I18092MT_NFCID3_LENGTH]
Array holding 10 bytes long NFCID3. More...
uint8_t aNfcid3t [PHPAL_I18092MT_NFCID3_LENGTH]
Array holding 10 bytes long NFCID3 of the PCD. More...
uint8_t bStateNow
Current Exchange-State. More...
uint8_t bDid
Device Identifier; '0' to disable usage else 1-14. More...
uint8_t bNadEnabled
Indicates presence of Node Address. More...
uint8_t bNadVal
Node Address; Ignored if bNadEnabled is equal '0'. More...
uint8_t bFsl
Frame Length Byte; 0-3. More...
uint8_t bPni
Current Packet Number (Packet number information); 0-3. More...
uint8_t bDst
Divisor Send Integer; 0-2. More...
uint8_t bDrt
Divisor Receive Integer; 0-2. More...
uint8_t bBsi
Send bit-rate supported by the PCD. More...
uint8_t bBri
Receive bit-rate supported by the PCD. More...
uint8_t bLri
Length reduction value is stored here. More...
uint8_t bBst
Send bit-rate supported by the PCD. More...
uint8_t bBrt
Receive bit-rate supported by the PCD. More...
uint8_t bLrt
Length reduction value is stored here. More...
uint8_t bTo
Hold the time out value. More...
uint8_t bRtoxDisabled
RTOX Disabler (i.e. More...
uint8_t bRtoxExtnVal
Response timeout extension value. More...
uint8_t bCmdtype
Holds the type of Command send by target. More...
phOsal_EventObj_t Pal18092mTEventObj
Handle for Event. More...

Detailed Description

ISO18092 mode passive target parameter structure.

Field Documentation

§ pPlatform

void* phpalI18092mT_Sw_DataParams_t::pPlatform

Pointer to OSAL layer.

§ ovrTask

void* phpalI18092mT_Sw_DataParams_t::ovrTask

Task context.

§ pTimerHandle

void* phpalI18092mT_Sw_DataParams_t::pTimerHandle

Timer Handle (For RTOX).

§ wLastTxLen

uint16_t phpalI18092mT_Sw_DataParams_t::wLastTxLen

Last successful DEP send length.

§ aNfcid3i

uint8_t phpalI18092mT_Sw_DataParams_t::aNfcid3i[PHPAL_I18092MT_NFCID3_LENGTH]

Array holding 10 bytes long NFCID3.

§ aNfcid3t

uint8_t phpalI18092mT_Sw_DataParams_t::aNfcid3t[PHPAL_I18092MT_NFCID3_LENGTH]

Array holding 10 bytes long NFCID3 of the PCD.

§ bStateNow

uint8_t phpalI18092mT_Sw_DataParams_t::bStateNow

Current Exchange-State.

§ bDid

uint8_t phpalI18092mT_Sw_DataParams_t::bDid

Device Identifier; '0' to disable usage else 1-14.

§ bNadEnabled

uint8_t phpalI18092mT_Sw_DataParams_t::bNadEnabled

Indicates presence of Node Address.

1 = present.

§ bNadVal

uint8_t phpalI18092mT_Sw_DataParams_t::bNadVal

Node Address; Ignored if bNadEnabled is equal '0'.

§ bFsl

uint8_t phpalI18092mT_Sw_DataParams_t::bFsl

Frame Length Byte; 0-3.

§ bPni

uint8_t phpalI18092mT_Sw_DataParams_t::bPni

Current Packet Number (Packet number information); 0-3.

§ bDst

uint8_t phpalI18092mT_Sw_DataParams_t::bDst

Divisor Send Integer; 0-2.

§ bDrt

uint8_t phpalI18092mT_Sw_DataParams_t::bDrt

Divisor Receive Integer; 0-2.

§ bBsi

uint8_t phpalI18092mT_Sw_DataParams_t::bBsi

Send bit-rate supported by the PCD.

§ bBri

uint8_t phpalI18092mT_Sw_DataParams_t::bBri

Receive bit-rate supported by the PCD.

§ bLri

uint8_t phpalI18092mT_Sw_DataParams_t::bLri

Length reduction value is stored here.

§ bBst

uint8_t phpalI18092mT_Sw_DataParams_t::bBst

Send bit-rate supported by the PCD.

§ bBrt

uint8_t phpalI18092mT_Sw_DataParams_t::bBrt

Receive bit-rate supported by the PCD.

§ bLrt

uint8_t phpalI18092mT_Sw_DataParams_t::bLrt

Length reduction value is stored here.

§ bTo

uint8_t phpalI18092mT_Sw_DataParams_t::bTo

Hold the time out value.

§ bRtoxDisabled

uint8_t phpalI18092mT_Sw_DataParams_t::bRtoxDisabled

RTOX Disabler (i.e.

'0' if RTOX enabled).

§ bRtoxExtnVal

uint8_t phpalI18092mT_Sw_DataParams_t::bRtoxExtnVal

Response timeout extension value.

§ bCmdtype

uint8_t phpalI18092mT_Sw_DataParams_t::bCmdtype

Holds the type of Command send by target.

§ Pal18092mTEventObj

phOsal_EventObj_t phpalI18092mT_Sw_DataParams_t::Pal18092mTEventObj

Handle for Event.

The documentation for this struct was generated from the following file:
  • phpalI18092mT.h


NXP NFC Reader Library: Simplified API Layer

Modules
Simplified API Layer

Contains Simplified APIs for access to NxpNfcRdLib functionality. More...

Collaboration diagram for Simplified API Layer:

Modules

NXP NFC Library Top Level API
NXP NFC Library Top Level API.

Detailed Description

Contains Simplified APIs for access to NxpNfcRdLib functionality.


NXP NFC Reader Library: NXP NFC Library Top Level API

Modules
NXP NFC Library Top Level API
Simplified API Layer

NXP NFC Library Top Level API. More...

Collaboration diagram for NXP NFC Library Top Level API:

Modules

NXP NFC Library Definitions
Common defines used within the API of NFC library.
NXP NFC Library Configuration Tags
These tags are used as bConfigTag parameter for phNfcLib_SetConfig_Value, phNfcLib_SetConfig and phNfcLib_GetConfig.
NXP NFC Library Functions
All Public Functions of the NFC Library.

Detailed Description

NXP NFC Library Top Level API.

General
This module provides an high level abstraction of the NXP NFC Reader Library stack, focusing on simplicity while featuring the mostly used functionality. It aims to write NXP NFC applications requiring as less code as possible. Still there is the possibility to use the legacy NXP NFC Reader Library stack API by calling phNfcLib_GetDataParams in order to retrieve the dataparams structure required when calling NXP NFC Reader Library stack functions.
Activation and Transmission Channel
One of the main concepts of the NXP NFC Library module are the transmission channels. A transmission channel is a logical connection between the device running the library and a peer. Once a peer could be activated this logical channel gets established and subsequent calls to phNfcLib_Transmit and phNfcLib_Receive are performing transmissions over this channel. In fact this channel defines how data sent over the channel gets encapsulated. There are three different channels available:
  • NFC Forum Channel: This channel is used to transfer NDEF messages
  • EMVCo Channel: This channel is used to transfer ISO 7816 APDUs over the ISO14443-4 protocol, according to EMVCo L1 specification.
  • ISO Channel: General channel which performs raw data transfer on block/frame level as defined in the corresponding protocols.
See also
For more information refer to phNfcLib_Transmit, phNfcLib_Receive and phNfcLib_Activate.
NXP Nfc Library EMVCo State Machine
The NXP NFC Library module implements a state machine ensuring the API functions exposed are executed in the correct order and state.
NXP Nfc Library ISO State Machine
The NXP NFC Library module implements a state machine ensuring the API functions exposed are executed in the correct order and state.
Functions in this module are only allowed to be called in specific states, otherwise PH_NFCLIB_STATUS_INVALID_STATE an error is returned The API function description section provides information which state is required for each function to be called.
Example Code for EMVCo polling application. (Activation and one APDU data exchange)
#include <ph_Status.h>
#include <phNfcLib.h>
phNfcLib_Status_t EMVCoPollingExample(uint8_t* pCApdu, uint16_t wCApduLength, uint8_t* pRApdu, uint16_t * pRApduLength)
{
uint16_t wRfTechnos = PH_NFCLIB_TECHNOLOGY_INITIATOR_ISO_14443_A | PH_NFCLIB_TECHNOLOGY_INITIATOR_ISO_14443_B;
phNfcLib_Status_t status;
phNfcLib_Init();
// set EMVCo Profile
phNfcLib_SetConfig_Value(PH_NFCLIB_CONFIG_ACTIVATION_PROFILE, PH_NFCLIB_ACTIVATION_PROFILE_EMVCO);
// start activation. peerInfo set to NULL, we don't need detailed information
status = phNfcLib_Activate(wRfTechnos, NULL, NULL);
if (status == PH_NFCLIB_STATUS_PEER_ACTIVATION_DONE)
{
status = phNfcLib_Transmit(pCApdu, wCApduLength);
status |= phNfcLib_Receive(pRApdu, pRApduLength, NULL);
phNfcLib_Deactivate(PH_NFCLIB_DEACTIVATION_MODE_RELEASE, NULL);
}
else
{
// could either be PH_NFCLIB_STATUS_MULTIPLE_PEERS_DETECTED or PH_NFCLIB_STATUS_PEER_ACTIVATION_FAILED.
// In any case, inform user about it by escalating the error to the caller
}
return status;
}
Example Code for Reading an NDEF record.
#include <ph_Status.h>
#include <phNfcLib.h>
phNfcLib_Status_t NdefActivateAndRead(uint8_t * aNdefMessage, uint16_t *pNdefMessageSize)
{
uint16_t wRfTechnos = (PH_NFCLIB_TECHNOLOGY_INITIATOR_ISO_14443_A | PH_NFCLIB_TECHNOLOGY_INITIATOR_ISO_14443_B |
PH_NFCLIB_TECHNOLOGY_INITIATOR_ISO_15693);
phNfcLib_Status_t status;
phNfcLib_Init();
// set NXP NFC Profile
phNfcLib_SetConfig_Value(PH_NFCLIB_CONFIG_ACTIVATION_PROFILE, PH_NFCLIB_ACTIVATION_PROFILE_NFC);
// start activation. peerInfo set to NULL, we don't need detailed information
status = phNfcLib_Activate(wRfTechnos, NULL, NULL);
if (status == PH_NFCLIB_STATUS_PEER_ACTIVATION_DONE)
{
// activation done, call phNfcLib_Receive to read the NDEF
status = phNfcLib_Receive(aNdefMessage, pNdefMessageSize, NULL);
phNfcLib_Deactivate(PH_NFCLIB_DEACTIVATION_MODE_RELEASE, NULL);
}
else
{
// could be PH_NFCLIB_STATUS_PEER_ACTIVATION_FAILED.
// In any case, inform user about it by escalating the error to the caller
}
return status;
}


NXP NFC Reader Library: NXP NFC Library Definitions

NXP NFC Library Definitions
Simplified API Layer » NXP NFC Library Top Level API

Common defines used within the API of NFC library. More...

Collaboration diagram for NXP NFC Library Definitions:

RF Technologies

Definitions used within phNfcLib_Activate and struct phNfcLib_PeerInfo_t

#define | PH_NFCLIB_TECHNOLOGY_DEFAULT 0x0UL
#define | PH_NFCLIB_TECHNOLOGY_INITIATOR_ISO_14443_A (PH_NFCLIB_TECHNOLOGY_ISO_14443_A << PH_NFCLIB_TECHNOLOGY_ROLE_INITIATOR_SHIFT)
ISO 14443-3A, Initiator mode RF technology. More...
#define | PH_NFCLIB_TECHNOLOGY_INITIATOR_ISO_14443_B (PH_NFCLIB_TECHNOLOGY_ISO_14443_B << PH_NFCLIB_TECHNOLOGY_ROLE_INITIATOR_SHIFT)
ISO 14443-3B, Initiator mode RF technology. More...
#define | PH_NFCLIB_TECHNOLOGY_INITIATOR_FELICA (PH_NFCLIB_TECHNOLOGY_FELICA << PH_NFCLIB_TECHNOLOGY_ROLE_INITIATOR_SHIFT)
FELICA Initiator mode RF technology. More...
#define | PH_NFCLIB_TECHNOLOGY_INITIATOR_ISO_15693 (PH_NFCLIB_TECHNOLOGY_ISO_15693 << PH_NFCLIB_TECHNOLOGY_ROLE_INITIATOR_SHIFT)
ISO 15693, Initiator mode RF technology. More...
#define | PH_NFCLIB_TECHNOLOGY_INITIATOR_ISO_18000_3_3 (PH_NFCLIB_TECHNOLOGY_ISO_18000_3_3 << PH_NFCLIB_TECHNOLOGY_ROLE_INITIATOR_SHIFT)
ISO 18000-3m3, Initiator mode RF technology. More...
#define | PH_NFCLIB_TECHNOLOGY_INITIATOR_ISO_18092 (PH_NFCLIB_TECHNOLOGY_ISO_18092 << PH_NFCLIB_TECHNOLOGY_ROLE_INITIATOR_SHIFT)
ISO 18092 active mode, Initiator mode RF technology. More...
#define | PH_NFCLIB_TECHNOLOGY_TARGET_ISO_14443_A (PH_NFCLIB_TECHNOLOGY_ISO_14443_A << PH_NFCLIB_TECHNOLOGY_ROLE_TARGET_SHIFT)
ISO 14443-3A, Target mode RF technology. More...
#define | PH_NFCLIB_TECHNOLOGY_TARGET_ISO_14443_B (PH_NFCLIB_TECHNOLOGY_ISO_14443_B << PH_NFCLIB_TECHNOLOGY_ROLE_TARGET_SHIFT)
ISO 14443-3B, Target mode RF technology. More...
#define | PH_NFCLIB_TECHNOLOGY_TARGET_FELICA (PH_NFCLIB_TECHNOLOGY_FELICA << PH_NFCLIB_TECHNOLOGY_ROLE_TARGET_SHIFT)
FELICA Target mode RF technology. More...
#define | PH_NFCLIB_TECHNOLOGY_TARGET_ISO_18092 (PH_NFCLIB_TECHNOLOGY_ISO_18092 << PH_NFCLIB_TECHNOLOGY_ROLE_TARGET_SHIFT)
ISO 18092 active mode, Target mode RF technology. More...

Configuration Defaults

Definition used for default configuration mode

#define | PH_NFCLIB_ACTIVATION_BLOCKINGMODE_DEFAULT PH_ON
#define | PH_NFCLIB_DEACTIVATION_BLOCKINGMODE_DEFAULT PH_ON

Activation Priority

Definitions used as values for phNfcLib_SetConfig_Value and phNfcLib_GetConfig when using configuration tag PH_NFCLIB_CONFIG_ACTIVATION_MERGED_SAK_PRIO

#define | PH_NFCLIB_ACTIVATION_MERGED_SAK_PRIO_14443 0x0U
Priority given to ISO 14443.
#define | PH_NFCLIB_ACTIVATION_MERGED_SAK_PRIO_18092 0x1U
Priority given to ISO 18092.

Deactivation Mode

Definitions used within phNfcLib_DeActivate for bDeactivateMode parameter.

#define | PH_NFCLIB_DEACTIVATION_MODE_RF_OFF 0x0U
No target deactivation procedure is performed, RF field is just switched off and wait for 5.1ms. More...
#define | PH_NFCLIB_DEACTIVATION_MODE_RELEASE 0x1U
A target deactivation procedure is performed if applicable. More...

Activation Profiles

Definitions used as values for phNfcLib_SetConfig_Value and phNfcLib_GetConfig when using configuration tag PH_NFCLIB_CONFIG_ACTIVATION_PROFILE

#define | PH_NFCLIB_ACTIVATION_PROFILE_NFC 0x0U
NFC Forum Activation Loop Profile and NDEF communication channel. More...
#define | PH_NFCLIB_ACTIVATION_PROFILE_EMVCO 0x1U
EMVCo Activation Loop Profile and ISO14443-4 communication channel.
#define | PH_NFCLIB_ACTIVATION_PROFILE_ISO 0x2U
Generic ISO Activation Loop Profile and block/frame oriented communication channel (depending on underlying protocol)

Simplified API Errors

#define | PH_NFCLIB_STATUS_SUCCESS (0x0UL << PH_NFCLIB_STATUS_GROUP_GENERAL)
#define | PH_NFCLIB_STATUS_INVALID_STATE (0x1UL << PH_NFCLIB_STATUS_GROUP_GENERAL)
#define | PH_NFCLIB_STATUS_INVALID_PARAMETER (0x2UL << PH_NFCLIB_STATUS_GROUP_GENERAL)
#define | PH_NFCLIB_STATUS_BUFFER_OVERFLOW (0x4UL << PH_NFCLIB_STATUS_GROUP_GENERAL)
#define | PH_NFCLIB_STATUS_ABORTED (0x8UL << PH_NFCLIB_STATUS_GROUP_GENERAL)
#define | PH_NFCLIB_STATUS_INTERNAL_ERROR (0x10UL << PH_NFCLIB_STATUS_GROUP_GENERAL)
#define | PH_NFCLIB_STATUS_PEER_ACTIVATION_DONE (0x1UL << PH_NFCLIB_STATUS_GROUP_ACTIVATION)
#define | PH_NFCLIB_STATUS_MULTIPLE_PEERS_DETECTED (0x2UL << PH_NFCLIB_STATUS_GROUP_ACTIVATION)
#define | PH_NFCLIB_STATUS_PEER_ACTIVATION_FAILED (0x4UL << PH_NFCLIB_STATUS_GROUP_ACTIVATION)
#define | PH_NFCLIB_STATUS_NO_PEER_DISCOVERED (0x8UL << PH_NFCLIB_STATUS_GROUP_ACTIVATION)
#define | PH_NFCLIB_STATUS_PEER_DEACTIVATION_FAILED (0x10UL << PH_NFCLIB_STATUS_GROUP_ACTIVATION)
#define | PH_NFCLIB_STATUS_RF_TRANSMISSION_ERROR (0x1UL << PH_NFCLIB_STATUS_GROUP_RF_COMMUNICATION)
#define | PH_NFCLIB_STATUS_RF_TIMEOUT_ERROR (0x2UL << PH_NFCLIB_STATUS_GROUP_RF_COMMUNICATION)
#define | PH_NFCLIB_STATUS_RF_PROTOCOL_ERROR (0x4UL << PH_NFCLIB_STATUS_GROUP_RF_COMMUNICATION)
#define | PH_NFCLIB_STATUS_RF_PEER_LOST (0x8UL << PH_NFCLIB_STATUS_GROUP_RF_COMMUNICATION)

Detailed Description

Common defines used within the API of NFC library.

Macro Definition Documentation

§ PH_NFCLIB_TECHNOLOGY_INITIATOR_ISO_14443_A

#define PH_NFCLIB_TECHNOLOGY_INITIATOR_ISO_14443_A (PH_NFCLIB_TECHNOLOGY_ISO_14443_A << PH_NFCLIB_TECHNOLOGY_ROLE_INITIATOR_SHIFT)

ISO 14443-3A, Initiator mode RF technology.

§ PH_NFCLIB_TECHNOLOGY_INITIATOR_ISO_14443_B

#define PH_NFCLIB_TECHNOLOGY_INITIATOR_ISO_14443_B (PH_NFCLIB_TECHNOLOGY_ISO_14443_B << PH_NFCLIB_TECHNOLOGY_ROLE_INITIATOR_SHIFT)

ISO 14443-3B, Initiator mode RF technology.

§ PH_NFCLIB_TECHNOLOGY_INITIATOR_FELICA

#define PH_NFCLIB_TECHNOLOGY_INITIATOR_FELICA (PH_NFCLIB_TECHNOLOGY_FELICA << PH_NFCLIB_TECHNOLOGY_ROLE_INITIATOR_SHIFT)

FELICA Initiator mode RF technology.

§ PH_NFCLIB_TECHNOLOGY_INITIATOR_ISO_15693

#define PH_NFCLIB_TECHNOLOGY_INITIATOR_ISO_15693 (PH_NFCLIB_TECHNOLOGY_ISO_15693 << PH_NFCLIB_TECHNOLOGY_ROLE_INITIATOR_SHIFT)

ISO 15693, Initiator mode RF technology.

§ PH_NFCLIB_TECHNOLOGY_INITIATOR_ISO_18000_3_3

#define PH_NFCLIB_TECHNOLOGY_INITIATOR_ISO_18000_3_3 (PH_NFCLIB_TECHNOLOGY_ISO_18000_3_3 << PH_NFCLIB_TECHNOLOGY_ROLE_INITIATOR_SHIFT)

ISO 18000-3m3, Initiator mode RF technology.

§ PH_NFCLIB_TECHNOLOGY_INITIATOR_ISO_18092

#define PH_NFCLIB_TECHNOLOGY_INITIATOR_ISO_18092 (PH_NFCLIB_TECHNOLOGY_ISO_18092 << PH_NFCLIB_TECHNOLOGY_ROLE_INITIATOR_SHIFT)

ISO 18092 active mode, Initiator mode RF technology.

§ PH_NFCLIB_TECHNOLOGY_TARGET_ISO_14443_A

#define PH_NFCLIB_TECHNOLOGY_TARGET_ISO_14443_A (PH_NFCLIB_TECHNOLOGY_ISO_14443_A << PH_NFCLIB_TECHNOLOGY_ROLE_TARGET_SHIFT)

ISO 14443-3A, Target mode RF technology.

§ PH_NFCLIB_TECHNOLOGY_TARGET_ISO_14443_B

#define PH_NFCLIB_TECHNOLOGY_TARGET_ISO_14443_B (PH_NFCLIB_TECHNOLOGY_ISO_14443_B << PH_NFCLIB_TECHNOLOGY_ROLE_TARGET_SHIFT)

ISO 14443-3B, Target mode RF technology.

§ PH_NFCLIB_TECHNOLOGY_TARGET_FELICA

#define PH_NFCLIB_TECHNOLOGY_TARGET_FELICA (PH_NFCLIB_TECHNOLOGY_FELICA << PH_NFCLIB_TECHNOLOGY_ROLE_TARGET_SHIFT)

FELICA Target mode RF technology.

§ PH_NFCLIB_TECHNOLOGY_TARGET_ISO_18092

#define PH_NFCLIB_TECHNOLOGY_TARGET_ISO_18092 (PH_NFCLIB_TECHNOLOGY_ISO_18092 << PH_NFCLIB_TECHNOLOGY_ROLE_TARGET_SHIFT)

ISO 18092 active mode, Target mode RF technology.

§ PH_NFCLIB_DEACTIVATION_MODE_RF_OFF

#define PH_NFCLIB_DEACTIVATION_MODE_RF_OFF 0x0U

No target deactivation procedure is performed, RF field is just switched off and wait for 5.1ms.

§ PH_NFCLIB_DEACTIVATION_MODE_RELEASE

#define PH_NFCLIB_DEACTIVATION_MODE_RELEASE 0x1U

A target deactivation procedure is performed if applicable.

(Example, in case of activation profile PH_NFCLIB_ACTIVATION_PROFILE_EMVCO this means the removal procedure is performed. In other profiles this could imply execution of deactivation procedures like DSL_REQ.) RF field is not switched off. phNfcLib_DeActivate should be called with PH_NFCLIB_DEACTIVATION_MODE_RF_OFF to switch off RF field.

§ PH_NFCLIB_ACTIVATION_PROFILE_NFC

#define PH_NFCLIB_ACTIVATION_PROFILE_NFC 0x0U

NFC Forum Activation Loop Profile and NDEF communication channel.

Warning
NFC Profile is not implementend/available in this release.


NXP NFC Reader Library: NXP NFC Library Configuration Tags

Macros
NXP NFC Library Configuration Tags
Simplified API Layer » NXP NFC Library Top Level API

These tags are used as bConfigTag parameter for phNfcLib_SetConfig_Value, phNfcLib_SetConfig and phNfcLib_GetConfig. More...

Collaboration diagram for NXP NFC Library Configuration Tags:

Macros

#define PH_NFCLIB_CONFIG_ACTIVATION_MERGED_SAK_PRIO 0x3U

Tags Activation

Activation Influencing Configuration Tags

#define | PH_NFCLIB_CONFIG_ACTIVATION_BLOCKING 0x0U
#define | PH_NFCLIB_CONFIG_ACTIVATION_TARGET_PAUSE_TIME 0x1U
This configuration parameter specifies the time in milliseconds the activation procedure, or in fact its internal discovery loop, should wait in target/listen phase or in pause phase (in case no target technology is specified.) These two phases are following the initiator/poll phase, i.e. More...
#define | PH_NFCLIB_CONFIG_ACTIVATION_PROFILE 0x2U

Detailed Description

These tags are used as bConfigTag parameter for phNfcLib_SetConfig_Value, phNfcLib_SetConfig and phNfcLib_GetConfig.

Macro Definition Documentation

§ PH_NFCLIB_CONFIG_ACTIVATION_BLOCKING

#define PH_NFCLIB_CONFIG_ACTIVATION_BLOCKING 0x0U

This configuration parameter indicates if the activation procedure (in fact phNfcLib_Activate) should return only on successful activation or if it should return after every activation loop iteration.

Parameter Size
1 Byte (uint8_t)
Allowed Values
  • PH_OFF Activation procedure is not blocking, i.e. phNfcLib_Activate returns after every iteration of its internal discovery loop.
  • PH_ON Activation procedure is blocking, i.e. phNfcLib_Activate only returns upon successful activation or in case of an activation related error (e.g. collision can't be resolved).
Default Value
PH_ON

§ PH_NFCLIB_CONFIG_ACTIVATION_TARGET_PAUSE_TIME

#define PH_NFCLIB_CONFIG_ACTIVATION_TARGET_PAUSE_TIME 0x1U

This configuration parameter specifies the time in milliseconds the activation procedure, or in fact its internal discovery loop, should wait in target/listen phase or in pause phase (in case no target technology is specified.) These two phases are following the initiator/poll phase, i.e.

the total duration of one discovery loop iteration is this target/pause time + time required for executing the polling phase.

Parameter Size
2 Byte (uint16_t)
Allowed Value Range
0 - 65535
Default Value
1000
Example
phNfcLib_SetConfig_Value(PH_NFCLIB_CONFIG_ACTIVATION_TARGET_PAUSE_TIME, 1000); // 1sec

§ PH_NFCLIB_CONFIG_ACTIVATION_PROFILE

#define PH_NFCLIB_CONFIG_ACTIVATION_PROFILE 0x2U

This configuration parameter is used to select the profile to be used when running the activation. Depending on the profile the behavior of activation procedure (guard times, discovery loop execution order) is adapted.

Transmission Channel Mapping
This setting also defines how phNfcLib_Transmit and phNfcLib_Receive are mapped on the transmission channel:
  • PH_NFCLIB_ACTIVATION_PROFILE_ISO establishes a raw communication channel, i.e. data is transmitted in blocks/frames as defined by the corresponding standard. For ISO14443 this refers to Layer 4 block oriented half duplex protocol, for ISO18092 it refers to the half duplex data exchange protocol, for all other protocols (FELICA, ISO15693, ISO18000, Mifare Ultralight etc.) the data is encapsulated in frames of the respective standard.
  • PH_NFCLIB_ACTIVATION_PROFILE_EMVCO Here only ISO14443 layer 4 block oriented half duplex protocol is supported.
  • PH_NFCLIB_ACTIVATION_PROFILE_NFC Here the data is sent is actually a well formatted NDEF record. The NFC library in this case performs the NDEF detection procedure. If the tag is not formatted yet, it will be automatically formatted. Existing data will be replaced.
Parameter Size
1 Byte (uint8_t)
Allowed Values
Refer to nfc_lib_definitions_activation_profile
Example
phNfcLib_SetConfig_Value(PH_NFCLIB_CONFIG_ACTIVATION_PROFILE, PH_NFCLIB_ACTIVATION_PROFILE_EMVCO); // set EMVCo Profile

§ PH_NFCLIB_CONFIG_ACTIVATION_MERGED_SAK_PRIO

#define PH_NFCLIB_CONFIG_ACTIVATION_MERGED_SAK_PRIO 0x3U

This configuration parameter is used set the activation priority in case a peer indicate a 'merged SAK', i.e. peer supports both, ISO18092 and ISO14443 Layer 4. Depending on this parameter, activation procedure then activates the protocol indicated by its value.

Parameter Size
1 Byte (uint8_t)
Allowed Values
Refer to nfc_lib_definitions_activation_priority
Default Value
PH_NFCLIB_ACTIVATION_MERGED_SAK_PRIO_14443


NXP NFC Reader Library: NXP NFC Library Functions

Functions
NXP NFC Library Functions
Simplified API Layer » NXP NFC Library Top Level API

All Public Functions of the NFC Library. More...

Collaboration diagram for NXP NFC Library Functions:

Functions

phNfcLib_Status_t | phNfcLib_Init (void)
Initialize the NFC Library. More...
phNfcLib_Status_t | phNfcLib_DeInit (void)
Deinitialize the NFC Library. More...
phNfcLib_Status_t | phNfcLib_Activate (uint16_t wTechnologyMask, phNfcLib_PeerInfo_t *peerInfo, pphNfcLib_ErrCallbck ErrCallbck)
Run the Activation Procedure. More...
phNfcLib_Status_t | phNfcLib_Transmit (void *const pTxBuffer, uint16_t wTxBufferLength)
Send Data to an Activated Peer. More...
phNfcLib_Status_t | phNfcLib_Receive (uint8_t *const pRxBuffer, uint16_t *pNumberOfBytes, uint8_t *pMoreDataAvailable)
Receive Data from an Activated Peer. More...
phNfcLib_Status_t | phNfcLib_SetConfig (uint8_t bConfigTag, const uint8_t *pConfigParam, uint16_t wConfigParamLength)
Set Configuration Parameter. More...
phNfcLib_Status_t | phNfcLib_SetConfig_Value (uint8_t bConfigTag, uint32_t dwValue)
Set Configuration Parameter using a Value. More...
phNfcLib_Status_t | phNfcLib_GetConfig (uint8_t bConfigTag, uint8_t *pConfigParam, uint16_t *pConfigParamLength)
Retrieve a configuration parameter value. More...
phNfcLib_Status_t | phNfcLib_Deactivate (uint8_t bDeactivateMode, phNfcLib_PeerInfo_t *peerInfo)
Deactivate an Activated Peer. More...
void * | phNfcLib_GetDataParams (uint16_t wComponent)
Retrieve the pointer to the dataparams structure of an internal NFC Reader Library component. More...
phNfcLib_Status_t | phNfcLib_AsyncAbort (void)
Used to asynchronously stop HAL waiting for RF event and exit from HAL. More...

Detailed Description

All Public Functions of the NFC Library.

Function Documentation

§ phNfcLib_Init()

phNfcLib_Status_t phNfcLib_Init ( void )

Initialize the NFC Library.

Calling this function initializes the NFC library including all its relevant protocol and hardware abstraction layers. It also calls the initialization functions for the underlying platform. After calling this function all other functions of the phNfcLib module may be used.

Precondition
NFC library must be in state RESET
Postcondition
All APIs are allowed to be called. NFC Library is in state INITIALIZED
Return values
PH_NFCLIB_STATUS_INVALID_STATE NFC Library had been in a wrong state when calling this function.

§ phNfcLib_DeInit()

phNfcLib_Status_t phNfcLib_DeInit ( void )

Deinitialize the NFC Library.

Calling this function resets all internal structures to its default values, releases all allocated resources and calls DeInit of all underlying layers.

Precondition
NFC Library must be in state INITIALIZED
Postcondition
NFC Library is in state RESET. Only phNfcLib_Init is allowed to be called.
Return values
PH_NFCLIB_STATUS_INVALID_STATE NFC Library had been in a wrong state when calling this function.

§ phNfcLib_Activate()

phNfcLib_Status_t phNfcLib_Activate | ( | uint16_t | wTechnologyMask,
 |  | phNfcLib_PeerInfo_t * | peerInfo,
 |  | pphNfcLib_ErrCallbck | ErrCallbck
 | ) |  |

Run the Activation Procedure.

This command starts the activation procedure which in fact implements a discovery loop. This loop performs technology detection (for given technologies using bit mask wTechnologyMask) and, if a technology has been detected, the activation with the associated peer is performed.

The activation procedure can be configured by calling phNfcLib_SetConfig_Value or phNfcLib_SetConfig and appropriate configuration tags (see nfc_lib_config_tags_activation), for instance PH_NFCLIB_CONFIG_ACTIVATION_BLOCKING. These configuration parameters influence the behavior of the activation procedure. The activation procedure also establishes a logical channel which depends on the configured activation_profile. This channel defines how data is being encapsulated when calling phNfcLib_Transmit or phNfcLib_Receive, respectively.

Once a peer has been activated and a channel could be established peerInfo is set with peer_info about the peer and the established link. phNfcLib_Transmit and phNfcLib_Receive may then be used in order to perform data exchange over the established link. In order to deactivate an activated peer/connection phNfcLib_Deactivate has to be called.

Note
  • The activation procedure will always try to resolve collisions (except for activation profile PH_NFCLIB_ACTIVATION_PROFILE_EMVCO). So even if there a multiple peers in proximity (except in case of ISO156936 and ISO18000p3m3), the activation procedure will activate only one peer. The priority (i.e. the order in which technology detection is performed) depends on the configured activation_profile and additionally on the configured activation_prio
  • When polling for multiple technologies, activation procedure always uses bail out after first technology is detected and doesn't poll further for other technologies.
  • When multiple tags/peers are detected, activation procedure uses different mechanism for each technology to resolve and activate tag/peer. Type A : Collision resolution of Type A always resolves the tag with highest UID value, Type B : The first tag to reply to the slot marker command which can be any random tag will be activated ISO 15693 : In Type V, when single tag is placed in vicinity, tag will be moved to selected state using select command (TBD : If detected tag doesn't support Select command) and in case of multiple tags in vicinity, based on discovery loop PHAC_DISCLOOP_CFG_MAX_VICINITY_CARDS_SUPPORTED macro value collision will be resolved and PHAC_DISCLOOP_CFG_MAX_VICINITY_CARDS_SUPPORTED number of tag UID's in proximity are returned to User. ISO 18000p3m3 : When single tag is placed in vicinity, tag will be moved to Open state using Req_Rn command and handle is available which is used to communicate with tag. In case of multiple tags in vicinity, based on discovery loop PHAC_DISCLOOP_CFG_MAX_VICINITY_CARDS_SUPPORTED macro value collision will be resolved and PHAC_DISCLOOP_CFG_MAX_VICINITY_CARDS_SUPPORTED number of tag UII's in proximity are returned to User.
  • In case PH_NFCLIB_ACTIVATION_PROFILE_NFC is configured as activation_profile and underlying protocol is ISO18092 this procedure also tries to perform LLCP activation in order to be able to transmit NDEF messages over SNEP when using phNfcLib_Transmit and phNfcLib_Receive.
Precondition
NFC Library must be in state INITIALIZED or ACTIVATED
Postcondition
After successful activation (PH_NFCLIB_STATUS_PEER_ACTIVATION_DONE) NFC library is in state ACTIVATED.
Return values
PH_NFCLIB_STATUS_PEER_ACTIVATION_DONE | Activation procedure could activate a peer and establish a channel. peerInfo holds detailed information about the peer and the associated connection.
PH_NFCLIB_STATUS_MULTIPLE_PEERS_DETECTED | Activation procedure detected multiple peers in RF field based on the discovery loop macro PHAC_DISCLOOP_CFG_MAX_VICINITY_CARDS_SUPPORTED for Type V and 18000p3m3 and these tag identifiers are returned to user as collision need not be resolved to communicate in case of activation_profile is ISO. Detected a collision and was not able to resolve it in case of activation_profile is EMVCo.
PH_NFCLIB_STATUS_PEER_ACTIVATION_FAILED | Activation procedure detected a peer/technology but was not able to properly activate it. Example: PH_NFCLIB_ACTIVATION_PROFILE_NFC is the configure profile but peer does not support LLCP.
PH_NFCLIB_STATUS_NO_PEER_DISCOVERED | In case activation procedure is configured for activation_blocking non-blocking execution and no peer has been detected within one iteration, activation returns with this status code.
PH_NFCLIB_STATUS_INVALID_STATE | NFC Library had been in a wrong state when calling this function.
Parameters
[in] | wTechnologyMask | A bit mask indicating all nfc_lib_definitions_rf_techno activation procedure shall handle during its discovery loop execution.
[out] | peerInfo | Pointer to a phNfcLib_PeerInfo_t structure, to be allocated by the caller. On successful activation of a peer, activation procedure fills the structure with detailed information.
[in] | ErrCallbck | Error callback specific to PH_NFCLIB_ACTIVATION_PROFILE_EMVCO to intimate about errors during polling for EMVCo.

§ phNfcLib_Transmit()

phNfcLib_Status_t phNfcLib_Transmit | ( | void *const | pTxBuffer,
 |  | uint16_t | wTxBufferLength
 | ) |  |

Send Data to an Activated Peer.

Once a peer has been activated this function can be used to send data to the peer. The channel over which the data is sent to the peer is defined by the configured activation_profile .

Note
  • Depending on the activation_profile this function may block until a response has actually been sent back by the peer. For instance PH_NFCLIB_ACTIVATION_PROFILE_EMVCO requires acknowledgment from the peer for a sent frame, so phNfcLib_Transmit will only return once this acknowledgment has been received.
Behavior in NFC PROFILE

Behavior in case of activation_profile is PH_NFCLIB_ACTIVATION_PROFILE_NFC

  • In case underlying protocol is ISO18092 this function acts as a SNEP client, i.e. connecting to a server in order to push the NDEF record.
  • In case underlying protocol is ISO14443-4 host card emulation, this function is used to read the record of the NDEF emulation.
Behavior in ISO PROFILE

Behavior in case of activation_profile is PH_NFCLIB_ACTIVATION_PROFILE_ISO

  • In case detected card is Mifare Ultralight, Classic or Desfire, input to phNfcLib_Transmit will be pointer of type nfc_lib_transmit_metadata. User needs to provide correct information in metadata to communicate with tags.
Precondition
NFC Library must be in state ACTIVATED
Return values
PH_NFCLIB_STATUS_SUCCESS | wTxBufferLength bytes given in pTxBuffer have been successfully sent to the peer.
PH_NFCLIB_STATUS_BUFFER_OVERFLOW | Received bytes could not be stored in NFCLIB buffer. User needs to call phNfcLib_Receive API to copy data from NFCLIB buffer to application and then call phNfcLib_Transmit API with pTxBuffer as NULL to receive next set of data.
PH_NFCLIB_STATUS_RF_TIMEOUT_ERROR | Sent data not acknowledged in time.
PH_NFCLIB_STATUS_RF_PEER_LOST | Peer lost during communication.
PH_NFCLIB_STATUS_RF_PROTOCOL_ERROR | General RF protocol violation.
PH_NFCLIB_STATUS_INVALID_STATE | NFC Library had been in a wrong state when calling this function.
Parameters
[in] | pTxBuffer | Byte array containing the data to be sent or Metadata in ISO mode.
[in] | wTxBufferLength | Number of bytes to be sent, in fact size of byte array or Zero in case Metadata is sent.

§ phNfcLib_Receive()

phNfcLib_Status_t phNfcLib_Receive | ( | uint8_t *const | pRxBuffer,
 |  | uint16_t * | pNumberOfBytes,
 |  | uint8_t * | pMoreDataAvailable
 | ) |  |

Receive Data from an Activated Peer.

This function can be called in order to receive data from an activated peer, in fact after phNfcLib_Activate returned with status PH_NFCLIB_STATUS_PEER_ACTIVATION_DONE. Like phNfcLib_Transmit, data received using this function may get decapsulated from underlying protocol headers, depending on activation_profile configured. See phNfcLib_Transmit for more details.

Note
  • Caller is responsible for implementing correct sequence of phNfcLib_Transmit and phNfcLib_Receive. So depending on the underlying protocol the two APIs have the be called alternately, starting with either transmit or receive, depending on the underlying technology (initiator vs. target).
  • Similar to phNfcLib_Transmit, in case PH_NFCLIB_ACTIVATION_PROFILE_NFC is the active activation_profile and underlying protocol is ISO18092 calling
Behavior in case of NFC PROFILE

Behavior in case of activation_profile is PH_NFCLIB_ACTIVATION_PROFILE_NFC

  • In case underlying protocol is ISO18092 this API waits for receiving an NDEF message via SNEP (i.e. phNfcLib_Activate starts a SNEP server and data received via that server socket can be read by this function).
  • In case underlying protocol is ISO14443-4 host card emulation, this function is used to write the record of the NDEF emulation.
    Precondition
    NFC Library must be in state ACTIVATED
    See also
    phNfcLib_Transmit
    Return values
    PH_NFCLIB_STATUS_SUCCESS | pNumberOfBytes bytes read from peer and stored in pRxBuffer.
    PH_NFCLIB_STATUS_RF_TIMEOUT_ERROR | Timeout waiting for data from peer.
    PH_NFCLIB_STATUS_RF_PEER_LOST | Peer lost during communication (for ISO18092 target and or active communication).
    PH_NFCLIB_STATUS_RF_PROTOCOL_ERROR | General RF protocol violation.
    PH_NFCLIB_STATUS_RF_TRANSMISSION_ERROR | Transmission error detected, e.g. RF integrity error.
    PH_NFCLIB_STATUS_INVALID_STATE | NFC Library had been in a wrong state when calling this function.
    PH_NFCLIB_STATUS_BUFFER_OVERFLOW | pMoreDataAvailable parameter is set to NULL and pRxBuffer is too small to receive all data.
Parameters
[out] | pRxBuffer | Allocated byte array to which the received data has to be written.
[in,out] | pNumberOfBytes | Maximum receive size, in fact size of pRxBuffer. On function return it contains the actual number of bytes received, but in case when receiving from 18000p3m3 tag actual number of bits are returned.
[out] | pMoreDataAvailable | Set to 1, if not all data could be stored and phNfcLib_Receive needs to be called again to receive the remaining data. If all data could be received, this parameter is set to 0. If this parameter is set to NULL and pRxBuffer is too small to receive all data, PH_NFCLIB_STATUS_BUFFER_OVERFLOW is returned.

§ phNfcLib_SetConfig()

phNfcLib_Status_t phNfcLib_SetConfig | ( | uint8_t | bConfigTag,
 |  | const uint8_t * | pConfigParam,
 |  | uint16_t | wConfigParamLength
 | ) |  |

Set Configuration Parameter.

This function is used to configure the phNfcLib module. It takes the parameter indicated by bConfigTag which should be one of the available configuration tags and sets it to the value given by pConfigParam.

Note
  • For pure integer parameter the helper function phNfcLib_SetConfig_Value can be used instead.
  • phNfcLib_Init resets all configuration parameters to its default value.
Precondition
NFC Library need to be in state INITIALIZED, i.e. after calling phNfcLib_Init, phNfcLib_Deactivate or as long as no activation happened.
Return values
PH_NFCLIB_STATUS_SUCCESS | Parameter Value successfully set.
PH_NFCLIB_STATUS_INVALID_PARAMETER | Unknown configuration tag or wrong length given (wConfigParamLength)
PH_NFCLIB_STATUS_INVALID_STATE | NFC Library had been in a wrong state when calling this function.
Parameters
[in] | bConfigTag | A configuration tag indicating the parameter to set.
[in] | pConfigParam | An array holding the value to be set for the given parameter.
[in] | wConfigParamLength | Length of the parameter value, in fact length of pConfigParam

§ phNfcLib_SetConfig_Value()

phNfcLib_Status_t phNfcLib_SetConfig_Value | ( | uint8_t | bConfigTag,
 |  | uint32_t | dwValue
 | ) |  |

Set Configuration Parameter using a Value.

Like phNfcLib_SetConfig this function is used to configure the phNfcLib module. All configuration tags which take an unsigned integer as value can be set using this function. In fact it's a convenient short cut for the actual phNfcLib_SetConfig function, which does not require passing in a pointer in case only an integer value needs to be set.

Note
  • phNfcLib_Init resets all configuration parameters to its default value.
Precondition
NFC Library need to be in state INITIALIZED, i.e. after calling phNfcLib_Init, phNfcLib_Deactivate or as long as no activation happened for Activation configurations. In case of De-activation configuration NFC Library should not be in state RESET state.
See also
phNfcLib_SetConfig
Return values
PH_NFCLIB_STATUS_SUCCESS | Parameter Value successfully set.
PH_NFCLIB_STATUS_INVALID_PARAMETER | Unknown configuration tag.
PH_NFCLIB_STATUS_INVALID_STATE | NFC Library had been in a wrong state when calling this function.
Parameters
[in] | bConfigTag | A configuration tag indicating the parameter to set.
[in] | dwValue | The value which has to be set for parameter indicated by bConfigTag

§ phNfcLib_GetConfig()

phNfcLib_Status_t phNfcLib_GetConfig | ( | uint8_t | bConfigTag,
 |  | uint8_t * | pConfigParam,
 |  | uint16_t * | pConfigParamLength
 | ) |  |

Retrieve a configuration parameter value.

This is the counterpart to phNfcLib_SetConfig, i.e. it can be used to read out the value for a given parameter.

See also
phNfcLib_SetConfig
Precondition
NFC Library need to be in state INITIALIZED or ACTIVATED as no activation happened.
Return values
PH_NFCLIB_STATUS_SUCCESS | Parameter Value successfully read out.
PH_NFCLIB_STATUS_INVALID_PARAMETER | Unknown configuration tag or provided buffer too small.
PH_NFCLIB_STATUS_INVALID_STATE | NFC Library had been in a wrong state when calling this function.
Parameters
[in] | bConfigTag | A configuration tag indicating the parameter whose value needs to be read out.
[out] | pConfigParam | Allocated byte array to which the read out value will be written to.
[in,out] | pConfigParamLength | Size of pConfigParam. On function return, it holds the actual number of bytes read.

§ phNfcLib_Deactivate()

phNfcLib_Status_t phNfcLib_Deactivate | ( | uint8_t | bDeactivateMode,
 |  | phNfcLib_PeerInfo_t * | peerInfo
 | ) |  |

Deactivate an Activated Peer.

The deactivation procedure can be configured by calling phNfcLib_SetConfig_Value with configuration tag De-activation_blocking. This configuration parameter influence the behavior of the deactivation procedure only in EMVCo profile.

After a peer has been activated using phNfcLib_Activate and the caller wants to release it again (e.g. after communication sequences using phNfcLib_Transmit and phNfcLib_Receive have been finished) this API has to be called. Depending on bDeactivateMode parameter the peer gets released using defined release procedure according to the activation_profile. This for instance could indicate if the removal procedure should be performed for PH_NFCLIB_ACTIVATION_PROFILE_EMVCO. In ISO profile, deactivation procedures like HLTA, HLTB, DSL_REQ etc is performed and allows starting a new activation procedure. To releases all RF related resources this function should be called with bDeactivateMode parameter as PH_NFCLIB_DEACTIVATION_MODE_RF_OFF. If Deactivation with bDeactivateMode parameter as PH_NFCLIB_DEACTIVATION_MODE_RELEASE fails due to card being removed out of proximity or due to some RF irregularity the user may call Deactivation with bDeactivateMode parameter as PH_NFCLIB_DEACTIVATION_MODE_RELEASE again or Deactivation with bDeactivateMode parameter as PH_NFCLIB_DEACTIVATION_MODE_RF_OFF according to the scenario requirements.

Precondition
NFC Library must be in state ACTIVATED
Postcondition
NFC Library is in state INITIALIZED
Return values
PH_NFCLIB_STATUS_SUCCESS | Peer successfully deactivated and released.
PH_NFCLIB_STATUS_INVALID_STATE | NFC Library had been in a wrong state when calling this function.
PH_NFCLIB_STATUS_PEER_DEACTIVATION_FAILED | Peer deactivation is not successful (this error code is returned only when config De-activation_blocking is set to PH_OFF). Internal state move to Deactivation Ongoing State. phNfcLib_Deactivate has to be called in loop to check if peer deactivation is successful.
Parameters
[in] | bDeactivateMode | Deactivation mode/behavior. Refer to nfc_lib_definitions_deactivation_mode for more information.
[in] | peerInfo | Pointer to a phNfcLib_PeerInfo_t structure updated by /ref phNfcLib_Activate API.

§ phNfcLib_GetDataParams()

void* phNfcLib_GetDataParams ( uint16_t wComponent )

Retrieve the pointer to the dataparams structure of an internal NFC Reader Library component.

The NfcLib encapsulates all relevant NFC Reader Library components. In case a caller needs to directly access one of the components a pointer to the dataparams is required. This function returns the pointer to the dataparams structure of the component indicated with wComponent.

Example
phNfcLib_Init();
// manually switch on the RF field
phhalHw_FieldOn(phNfcLib_GetDataParams(PH_COMP_HAL));
Returns
Pointer to the component's dataparam structure. NULL in case phNfcLib is not managing the component indicated by wComponent or NFC library is in state RESET.
Parameters
[in] wComponent The component ID for which the data params pointer should be returned. For possible value refer to ph_Status.h, PH_COMP_*

§ phNfcLib_AsyncAbort()

phNfcLib_Status_t phNfcLib_AsyncAbort ( void )

Used to asynchronously stop HAL waiting for RF event and exit from HAL.

Note: This function will post an 'abort' event which is used by the HAL to move into 'Idle' state and exit from polling for RF Event. The functions that were waiting for a HAL event will return PH_ERR_ABORTED error code once this function is executed.

This function shall be called in a task other than the task where reader library is running. This API can be called at any time after the phNfcLib_Init(); and any of the NFCLIB operations like transmit and receive are in progress.

Return values
PH_NFCLIB_STATUS_SUCCESS Operation successful.


NXP NFC Reader Library: Application Layer

Modules
Application Layer

Contains Application specific implementations for various contactless cards (DESFIRE (R), MIFARE (R), MIFARE Plus (R) and the like. More...

Collaboration diagram for Application Layer:

Modules

MIFARE(R) Classic
These Functions implement the MIFARE(R) Classic commands.
Type 1 tag
These Components implement the Type 1 Tag commands.
MIFARE(R) Ultralight
These Components implement the MIFARE(R) Ultralight, C, Ultralight EV1 commands.
Felica
These Components implement the Felica commands.
MIFARE DESFire (R)
These Functions implement the MIFARE DESFire(R) EV1 commands.
ISO/IEC 15693
These Components implement the ISO/IEC 15693 commands.
ICode SLI
These Components implement the ICode SLI commands.
ISO/IEC 18000-3 Mode3
These Components implement the ICODE ILT support.
Tag Operation Layer
This Component implements tag operations for different NFC Tag types T1T, T2T, T3T,T4T and T5T.

Detailed Description

Contains Application specific implementations for various contactless cards (DESFIRE (R), MIFARE (R), MIFARE Plus (R) and the like.


NXP NFC Reader Library: MIFARE(R) Classic

Modules | Functions
MIFARE(R) Classic
Application Layer

These Functions implement the MIFARE(R) Classic commands. More...

Collaboration diagram for MIFARE(R) Classic:

Modules

Component : Software

Functions

phStatus_t | phalMfc_Authenticate (void *pDataParams, uint8_t bBlockNo, uint8_t bKeyType, uint16_t wKeyNumber, uint16_t wKeyVersion, uint8_t *pUid, uint8_t bUidLength)
Perform MIFARE(R) Authenticate command with MIFARE Picc. More...
phStatus_t | phalMfc_Read (void *pDataParams, uint8_t bBlockNo, uint8_t *pBlockData)
Perform MIFARE(R) Read command with MIFARE Picc. More...
phStatus_t | phalMfc_ReadValue (void *pDataParams, uint8_t bBlockNo, uint8_t *pValue, uint8_t *pAddrData)
Perform MIFARE(R) Read Value command with MIFARE Picc. More...
phStatus_t | phalMfc_Write (void *pDataParams, uint8_t bBlockNo, uint8_t *pBlockData)
Perform MIFARE(R) Write command with MIFARE Picc. More...
phStatus_t | phalMfc_WriteValue (void *pDataParams, uint8_t bBlockNo, uint8_t *pValue, uint8_t bAddrData)
Perform MIFARE(R) Write Value command with MIFARE Picc. More...
phStatus_t | phalMfc_Increment (void *pDataParams, uint8_t bBlockNo, uint8_t *pValue)
Perform MIFARE(R) Increment command with MIFARE Picc. More...
phStatus_t | phalMfc_Decrement (void *pDataParams, uint8_t bBlockNo, uint8_t *pValue)
Perform MIFARE(R) Decrement command with MIFARE Picc. More...
phStatus_t | phalMfc_Transfer (void *pDataParams, uint8_t bBlockNo)
Perform MIFARE(R) Transfer command with MIFARE Picc. More...
phStatus_t | phalMfc_Restore (void *pDataParams, uint8_t bBlockNo)
Perform MIFARE(R) Restore command with MIFARE Picc. More...
phStatus_t | phalMfc_IncrementTransfer (void *pDataParams, uint8_t bSrcBlockNo, uint8_t bDstBlockNo, uint8_t *pValue)
Perform MIFARE(R) Increment Transfer command sequence with MIFARE Picc. More...
phStatus_t | phalMfc_DecrementTransfer (void *pDataParams, uint8_t bSrcBlockNo, uint8_t bDstBlockNo, uint8_t *pValue)
Perform MIFARE(R) Decrement Transfer command sequence with MIFARE Picc. More...
phStatus_t | phalMfc_RestoreTransfer (void *pDataParams, uint8_t bSrcBlockNo, uint8_t bDstBlockNo)
Perform MIFARE(R) Restore Transfer command sequence with MIFARE Picc. More...
phStatus_t | phalMfc_PersonalizeUid (void *pDataParams, uint8_t bUidType)
Perform MIFARE(R) Personalize UID usage command sequence with MIFARE Picc. More...
phStatus_t | phalMfc_GetVersion (void *pDataParams, uint8_t *pVersion)
Perform MIFARE(R) GET VERSION usage command sequence with MIFARE Picc. More...

Authentication Parameters

#define | PHAL_MFC_KEYA 0x0AU
MIFARE(R) Key A. More...
#define | PHAL_MFC_KEYB 0x0BU
MIFARE(R) Key B. More...

Block definitions

#define | PHAL_MFC_DATA_BLOCK_LENGTH 16U
Length of a MIFARE(R) Classic data block. More...
#define | PHAL_MFC_VALUE_BLOCK_LENGTH 4U
Length of a MIFARE(R) Classic value block. More...

UID Type definitions

#define | PHAL_MFC_UID_TYPE_UIDF0 0x00U
MIFARE(R) Classic UID type UIDF0. More...
#define | PHAL_MFC_UID_TYPE_UIDF1 0x40U
MIFARE(R) Classic UID type UIDF1. More...
#define | PHAL_MFC_UID_TYPE_UIDF2 0x20U
MIFARE(R) Classic UID type UIDF2. More...
#define | PHAL_MFC_UID_TYPE_UIDF3 0x60U
MIFARE(R) Classic UID type UIDF3. More...

Detailed Description

These Functions implement the MIFARE(R) Classic commands.

Macro Definition Documentation

§ PHAL_MFC_KEYA

#define PHAL_MFC_KEYA 0x0AU

MIFARE(R) Key A.

§ PHAL_MFC_KEYB

#define PHAL_MFC_KEYB 0x0BU

MIFARE(R) Key B.

§ PHAL_MFC_DATA_BLOCK_LENGTH

#define PHAL_MFC_DATA_BLOCK_LENGTH 16U

Length of a MIFARE(R) Classic data block.

§ PHAL_MFC_VALUE_BLOCK_LENGTH

#define PHAL_MFC_VALUE_BLOCK_LENGTH 4U

Length of a MIFARE(R) Classic value block.

§ PHAL_MFC_UID_TYPE_UIDF0

#define PHAL_MFC_UID_TYPE_UIDF0 0x00U

MIFARE(R) Classic UID type UIDF0.

§ PHAL_MFC_UID_TYPE_UIDF1

#define PHAL_MFC_UID_TYPE_UIDF1 0x40U

MIFARE(R) Classic UID type UIDF1.

§ PHAL_MFC_UID_TYPE_UIDF2

#define PHAL_MFC_UID_TYPE_UIDF2 0x20U

MIFARE(R) Classic UID type UIDF2.

§ PHAL_MFC_UID_TYPE_UIDF3

#define PHAL_MFC_UID_TYPE_UIDF3 0x60U

MIFARE(R) Classic UID type UIDF3.

Function Documentation

§ phalMfc_Authenticate()

phStatus_t phalMfc_Authenticate | ( | void * | pDataParams,
 |  | uint8_t | bBlockNo,
 |  | uint8_t | bKeyType,
 |  | uint16_t | wKeyNumber,
 |  | uint16_t | wKeyVersion,
 |  | uint8_t * | pUid,
 |  | uint8_t | bUidLength
 | ) |  |

Perform MIFARE(R) Authenticate command with MIFARE Picc.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bBlockNo | Blocknumber on card to authenticate to.
[in] | bKeyType | Either PHAL_MFC_KEYA or PHAL_MFC_KEYB.
[in] | wKeyNumber | Key number to be used in authentication.
[in] | wKeyVersion | Key version to be used in authentication.
[in] | pUid | Complete serial number; uint8_t[4/7/10].
[in] | bUidLength | Length of provided serial number (4/7/10).

§ phalMfc_Read()

phStatus_t phalMfc_Read | ( | void * | pDataParams,
 |  | uint8_t | bBlockNo,
 |  | uint8_t * | pBlockData
 | ) |  |

Perform MIFARE(R) Read command with MIFARE Picc.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bBlockNo | block number to be read.
[out] | pBlockData | pBlockData[16] containing block read from the MIFARE(R) card

§ phalMfc_ReadValue()

phStatus_t phalMfc_ReadValue | ( | void * | pDataParams,
 |  | uint8_t | bBlockNo,
 |  | uint8_t * | pValue,
 |  | uint8_t * | pAddrData
 | ) |  |

Perform MIFARE(R) Read Value command with MIFARE Picc.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bBlockNo | block number to be read.
[out] | pValue | pValue[4] containing value (LSB first) read from the MIFARE(R) card
[out] | pAddrData | pAddrData containing address read from the MIFARE(R) card value block

§ phalMfc_Write()

phStatus_t phalMfc_Write | ( | void * | pDataParams,
 |  | uint8_t | bBlockNo,
 |  | uint8_t * | pBlockData
 | ) |  |

Perform MIFARE(R) Write command with MIFARE Picc.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bBlockNo | block number to be written.
[in] | pBlockData | pBlockData[16] containing block to be written to the MIFARE(R) card

§ phalMfc_WriteValue()

phStatus_t phalMfc_WriteValue | ( | void * | pDataParams,
 |  | uint8_t | bBlockNo,
 |  | uint8_t * | pValue,
 |  | uint8_t | bAddrData
 | ) |  |

Perform MIFARE(R) Write Value command with MIFARE Picc.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bBlockNo | block number to be written.
[in] | pValue | pValue[4] containing value (LSB first) to be written to the MIFARE(R) card
[in] | bAddrData | bAddrData containing address written to the MIFARE(R) card value block

§ phalMfc_Increment()

phStatus_t phalMfc_Increment | ( | void * | pDataParams,
 |  | uint8_t | bBlockNo,
 |  | uint8_t * | pValue
 | ) |  |

Perform MIFARE(R) Increment command with MIFARE Picc.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bBlockNo | block number to be incremented.
[in] | pValue | pValue[4] containing value (LSB first) to be incremented on the MIFARE(R) card

§ phalMfc_Decrement()

phStatus_t phalMfc_Decrement | ( | void * | pDataParams,
 |  | uint8_t | bBlockNo,
 |  | uint8_t * | pValue
 | ) |  |

Perform MIFARE(R) Decrement command with MIFARE Picc.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bBlockNo | block number to be decremented.
[in] | pValue | pValue[4] containing value (LSB first) to be decremented on the MIFARE(R) card

§ phalMfc_Transfer()

phStatus_t phalMfc_Transfer | ( | void * | pDataParams,
 |  | uint8_t | bBlockNo
 | ) |  |

Perform MIFARE(R) Transfer command with MIFARE Picc.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bBlockNo | block number the transfer buffer shall be transferred to.

§ phalMfc_Restore()

phStatus_t phalMfc_Restore | ( | void * | pDataParams,
 |  | uint8_t | bBlockNo
 | ) |  |

Perform MIFARE(R) Restore command with MIFARE Picc.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bBlockNo | block number the transfer buffer shall be restored from.

§ phalMfc_IncrementTransfer()

phStatus_t phalMfc_IncrementTransfer | ( | void * | pDataParams,
 |  | uint8_t | bSrcBlockNo,
 |  | uint8_t | bDstBlockNo,
 |  | uint8_t * | pValue
 | ) |  |

Perform MIFARE(R) Increment Transfer command sequence with MIFARE Picc.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bSrcBlockNo | block number to be incremented.
[in] | bDstBlockNo | block number to be transferred to.
[in] | pValue | pValue[4] containing value (LSB first) to be incremented on the MIFARE(R) card

§ phalMfc_DecrementTransfer()

phStatus_t phalMfc_DecrementTransfer | ( | void * | pDataParams,
 |  | uint8_t | bSrcBlockNo,
 |  | uint8_t | bDstBlockNo,
 |  | uint8_t * | pValue
 | ) |  |

Perform MIFARE(R) Decrement Transfer command sequence with MIFARE Picc.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bSrcBlockNo | block number to be decremented.
[in] | bDstBlockNo | block number to be transferred to.
[in] | pValue | pValue[4] containing value (LSB first) to be decremented on the MIFARE(R) card

§ phalMfc_RestoreTransfer()

phStatus_t phalMfc_RestoreTransfer | ( | void * | pDataParams,
 |  | uint8_t | bSrcBlockNo,
 |  | uint8_t | bDstBlockNo
 | ) |  |

Perform MIFARE(R) Restore Transfer command sequence with MIFARE Picc.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bSrcBlockNo | block number to be decremented.
[in] | bDstBlockNo | block number to be transferred to.

§ phalMfc_PersonalizeUid()

phStatus_t phalMfc_PersonalizeUid | ( | void * | pDataParams,
 |  | uint8_t | bUidType
 | ) |  |

Perform MIFARE(R) Personalize UID usage command sequence with MIFARE Picc.

UID type can be one of

  • PHAL_MFC_UID_TYPE_UIDF0
  • PHAL_MFC_UID_TYPE_UIDF1
  • PHAL_MFC_UID_TYPE_UIDF2
  • PHAL_MFC_UID_TYPE_UIDF3
    Returns
    Status code
    Return values
    PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bUidType | UID type.

§ phalMfc_GetVersion()

phStatus_t phalMfc_GetVersion | ( | void * | pDataParams,
 |  | uint8_t * | pVersion
 | ) |  |

Perform MIFARE(R) GET VERSION usage command sequence with MIFARE Picc.

GET_VERSION command is used to retrieve information about the NTAG family, the product version, storage size and other product data required to identify the specific NTAG-I2C

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | wrong Lenght byte received.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[out] | pVersion | Version no It should be PHAL_MFC_VERSION_LENGTH


NXP NFC Reader Library: Component : Software

Data Structures | Macros | Functions
Component : Software
Application Layer » MIFARE(R) Classic
Collaboration diagram for Component : Software:

Data Structures

struct phalMfc_Sw_DataParams_t
Private parameter structure. More...

Macros

#define PHAL_MFC_SW_ID 0x01
ID for Software MIFARE layer.

Functions

phStatus_t phalMfc_Sw_Init (phalMfc_Sw_DataParams_t *pDataParams, uint16_t wSizeOfDataParams, void *pPalMifareDataParams, void *pKeyStoreDataParams)
Initialise this layer. More...

Detailed Description

Function Documentation

§ phalMfc_Sw_Init()

phStatus_t phalMfc_Sw_Init | ( | phalMfc_Sw_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams,
 |  | void * | pPalMifareDataParams,
 |  | void * | pKeyStoreDataParams
 | ) |  |

Initialise this layer.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wSizeOfDataParams | Specifies the size of the data parameter structure.
[in] | pPalMifareDataParams | Pointer to the parameter structure of the palMifare component.
[in] | pKeyStoreDataParams | Pointer to the parameter structure of the KeyStore component.


NXP NFC Reader Library: phalMfc_Sw_DataParams_t Struct Reference

Data Fields
phalMfc_Sw_DataParams_t Struct Reference
Application Layer » MIFARE(R) Classic » Component : Software

Private parameter structure. More...

Data Fields

uint16_t wId
Layer ID for this component, NEVER MODIFY!
void * | pPalMifareDataParams
Pointer to the parameter structure of the palMifare component. More...
void * | pKeyStoreDataParams
Pointer to the parameter structure of the KeyStore component. More...

Detailed Description

Private parameter structure.

Field Documentation

§ pPalMifareDataParams

void* phalMfc_Sw_DataParams_t::pPalMifareDataParams

Pointer to the parameter structure of the palMifare component.

§ pKeyStoreDataParams

void* phalMfc_Sw_DataParams_t::pKeyStoreDataParams

Pointer to the parameter structure of the KeyStore component.

The documentation for this struct was generated from the following file:
  • phalMfc.h


NXP NFC Reader Library: Type 1 tag

Modules | Functions
Type 1 tag
Application Layer

These Components implement the Type 1 Tag commands. More...

Collaboration diagram for Type 1 tag:

Modules

Component : Software

Functions

phStatus_t | phalT1T_ReadUID (void *pDataParams, uint8_t *pUid, uint16_t *pLength)
Perform Jewel/Topaz Read UID command. More...
phStatus_t | phalT1T_ReadAll (void *pDataParams, uint8_t *pUid, uint8_t **pData, uint16_t *pLength)
Perform Jewel/Topaz Read All command. More...
phStatus_t | phalT1T_ReadByte (void *pDataParams, uint8_t *pUid, uint8_t bAddress, uint8_t *pData, uint16_t *pLength)
Perform Jewel/Topaz Read Byte command. More...
phStatus_t | phalT1T_WriteEraseByte (void *pDataParams, uint8_t *pUid, uint8_t bAddress, uint8_t bTxData, uint8_t *pRxData, uint16_t *pLength)
Perform Jewel/Topaz Write Erase Byte command. More...
phStatus_t | phalT1T_WriteNoEraseByte (void *pDataParams, uint8_t *pUid, uint8_t bAddress, uint8_t bTxData, uint8_t *pRxData, uint16_t *pLength)
Perform Jewel/Topaz Write No Erase Byte command. More...
phStatus_t | phalT1T_ReadSegment (void *pDataParams, uint8_t *pUid, uint8_t bAddress, uint8_t **pData, uint16_t *pLength)
Perform Jewel/Topaz Read Segment command. More...
phStatus_t | phalT1T_ReadBlock (void *pDataParams, uint8_t *pUid, uint8_t bAddress, uint8_t *pData, uint16_t *pLength)
Perform Jewel/Topaz Read Block command. More...
phStatus_t | phalT1T_WriteEraseBlock (void *pDataParams, uint8_t *pUid, uint8_t bAddress, uint8_t *pTxData, uint8_t *pRxData, uint16_t *pLength)
Perform Jewel/Topaz Write Erase Block command. More...
phStatus_t | phalT1T_WriteNoEraseBlock (void *pDataParams, uint8_t *pUid, uint8_t bAddress, uint8_t *pTxData, uint8_t *pRxData, uint16_t *pLength)
Perform Jewel/Topaz Write No Erase Block command. More...

Detailed Description

These Components implement the Type 1 Tag commands.

Function Documentation

§ phalT1T_ReadUID()

phStatus_t phalT1T_ReadUID | ( | void * | pDataParams,
 |  | uint8_t * | pUid,
 |  | uint16_t * | pLength
 | ) |  |

Perform Jewel/Topaz Read UID command.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
PH_ERR_FRAMING_ERROR | Bcc invalid.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[out] | pUid | Uid of Card, 4 bytes.
[out] | pLength | Number of received data bytes.

§ phalT1T_ReadAll()

phStatus_t phalT1T_ReadAll | ( | void * | pDataParams,
 |  | uint8_t * | pUid,
 |  | uint8_t ** | pData,
 |  | uint16_t * | pLength
 | ) |  |

Perform Jewel/Topaz Read All command.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
PH_ERR_FRAMING_ERROR | Bcc invalid.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pUid | Known Uid , 4 bytes.
[out] | pData | pData containing 122 data bytes returned from the PICC. [HR0][HR1][Data from blocks 0 to 0xE]
[out] | pLength | Number of received data bytes.

§ phalT1T_ReadByte()

phStatus_t phalT1T_ReadByte | ( | void * | pDataParams,
 |  | uint8_t * | pUid,
 |  | uint8_t | bAddress,
 |  | uint8_t * | pData,
 |  | uint16_t * | pLength
 | ) |  |

Perform Jewel/Topaz Read Byte command.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
PH_ERR_FRAMING_ERROR | Bcc invalid.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pUid | Known Uid , 4 bytes.
[in] | bAddress | Address of a byte on Picc to read from.
[out] | pData | pData containing one data byte returned from the PICC.
[out] | pLength | Number of received data bytes.

§ phalT1T_WriteEraseByte()

phStatus_t phalT1T_WriteEraseByte | ( | void * | pDataParams,
 |  | uint8_t * | pUid,
 |  | uint8_t | bAddress,
 |  | uint8_t | bTxData,
 |  | uint8_t * | pRxData,
 |  | uint16_t * | pLength
 | ) |  |

Perform Jewel/Topaz Write Erase Byte command.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
PH_ERR_FRAMING_ERROR | Bcc invalid.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pUid | Known Uid, 4 bytes.
[in] | bAddress | Address of a byte on Picc to write to.
[in] | bTxData | pData containing data to be written to the Picc.
[out] | pRxData | pRxData containing 2 data bytes returned from the Picc. [ADD][Byte]
[out] | pLength | Number of received data bytes.

§ phalT1T_WriteNoEraseByte()

phStatus_t phalT1T_WriteNoEraseByte | ( | void * | pDataParams,
 |  | uint8_t * | pUid,
 |  | uint8_t | bAddress,
 |  | uint8_t | bTxData,
 |  | uint8_t * | pRxData,
 |  | uint16_t * | pLength
 | ) |  |

Perform Jewel/Topaz Write No Erase Byte command.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
PH_ERR_FRAMING_ERROR | Bcc invalid.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pUid | Known Uid , 4 bytes.
[in] | bAddress | Address of a byte on PICC to write to.
[in] | bTxData | pData containing data to be written to the PICC.
[out] | pRxData | pRxData containing 2 data bytes returned from the PICC.
[out] | pLength | Number of received data bytes.

§ phalT1T_ReadSegment()

phStatus_t phalT1T_ReadSegment | ( | void * | pDataParams,
 |  | uint8_t * | pUid,
 |  | uint8_t | bAddress,
 |  | uint8_t ** | pData,
 |  | uint16_t * | pLength
 | ) |  |

Perform Jewel/Topaz Read Segment command.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
PH_ERR_FRAMING_ERROR | Bcc invalid.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pUid | Known Uid , 4 bytes.
[in] | bAddress | Address of a segment on Picc to read from.
[out] | pData | pData containing 128 bytes of data returned from the PICC.
[out] | pLength | Number of received data bytes.

§ phalT1T_ReadBlock()

phStatus_t phalT1T_ReadBlock | ( | void * | pDataParams,
 |  | uint8_t * | pUid,
 |  | uint8_t | bAddress,
 |  | uint8_t * | pData,
 |  | uint16_t * | pLength
 | ) |  |

Perform Jewel/Topaz Read Block command.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
PH_ERR_FRAMING_ERROR | Bcc invalid.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pUid | Known Uid , 4 bytes.
[in] | bAddress | Address of a block on Picc to read from.
[out] | pData | pData containing 8 data bytes returned from the Picc. At least 8 bytes must be provided by the user
[out] | pLength | Number of received data bytes.

§ phalT1T_WriteEraseBlock()

phStatus_t phalT1T_WriteEraseBlock | ( | void * | pDataParams,
 |  | uint8_t * | pUid,
 |  | uint8_t | bAddress,
 |  | uint8_t * | pTxData,
 |  | uint8_t * | pRxData,
 |  | uint16_t * | pLength
 | ) |  |

Perform Jewel/Topaz Write Erase Block command.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
PH_ERR_FRAMING_ERROR | Bcc invalid.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pUid | Known Uid , 4 bytes.
[in] | bAddress | Address of a block on Picc to write to.
[in] | pTxData | pTxData containing data to be written to the Picc.
[out] | pRxData | pRxData containing 8 data bytes returned from the Picc. At least 8 bytes buffer must be provided by the user.
[out] | pLength | Number of received data bytes.

§ phalT1T_WriteNoEraseBlock()

phStatus_t phalT1T_WriteNoEraseBlock | ( | void * | pDataParams,
 |  | uint8_t * | pUid,
 |  | uint8_t | bAddress,
 |  | uint8_t * | pTxData,
 |  | uint8_t * | pRxData,
 |  | uint16_t * | pLength
 | ) |  |

Perform Jewel/Topaz Write No Erase Block command.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
PH_ERR_FRAMING_ERROR | Bcc invalid.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pUid | Known Uid , 4 bytes.
[in] | bAddress | Address of a block on Picc to write to.
[in] | pTxData | pTxData containing data to be written to the Picc.
[out] | pRxData | pRxData containing 8 data bytes returned from the Picc. At least 8 bytes buffer must be provided by the user.
[out] | pLength | Number of received data bytes.


NXP NFC Reader Library: Component : Software

Data Structures | Macros | Functions
Component : Software
Application Layer » Type 1 tag
Collaboration diagram for Component : Software:

Data Structures

struct phalT1T_Sw_DataParams_t
Private parameter structure. More...

Macros

#define PHAL_T1T_SW_ID 0x01U
ID for Software T1T layer.

Functions

phStatus_t phalT1T_Sw_Init (phalT1T_Sw_DataParams_t *pDataParams, uint16_t wSizeOfDataParams, void *pPalI14443p3aDataParams)
Initialise this layer. More...

Detailed Description

Function Documentation

§ phalT1T_Sw_Init()

phStatus_t phalT1T_Sw_Init | ( | phalT1T_Sw_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams,
 |  | void * | pPalI14443p3aDataParams
 | ) |  |

Initialise this layer.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wSizeOfDataParams | Specifies the size of the data parameter structure.
[in] | pPalI14443p3aDataParams | Pointer to the parameter structure of the underlying ISO14443-3 layer.


NXP NFC Reader Library: phalT1T_Sw_DataParams_t Struct Reference

Data Fields
phalT1T_Sw_DataParams_t Struct Reference
Application Layer » Type 1 tag » Component : Software

Private parameter structure. More...

Data Fields

uint16_t wId
Layer ID for this component, NEVER MODIFY!
void * | pPalI14443p3aDataParams
Pointer to pal parameter structure. More...
uint8_t | abHR [2]
Header Rom bytes. More...
uint8_t | abUid [4]
UID of selected tag. More...

Detailed Description

Private parameter structure.

Field Documentation

§ pPalI14443p3aDataParams

void* phalT1T_Sw_DataParams_t::pPalI14443p3aDataParams

Pointer to pal parameter structure.

§ abHR

uint8_t phalT1T_Sw_DataParams_t::abHR[2]

Header Rom bytes.

§ abUid

uint8_t phalT1T_Sw_DataParams_t::abUid[4]

UID of selected tag.

The documentation for this struct was generated from the following file:
  • phalT1T.h


NXP NFC Reader Library: MIFARE(R) Ultralight

Modules | Functions
MIFARE(R) Ultralight
Application Layer

These Components implement the MIFARE(R) Ultralight, C, Ultralight EV1 commands. More...

Collaboration diagram for MIFARE(R) Ultralight:

Modules

Component : Software

Functions

phStatus_t | phalMful_UlcAuthenticate (void *pDataParams, uint16_t wKeyNumber, uint16_t wKeyVersion)
Perform MIFARE(R) Ultralight-C Authenticate command with Picc. More...
phStatus_t | phalMful_Read (void *pDataParams, uint8_t bAddress, uint8_t *pData)
Perform MIFARE(R) Ultralight Read command with Picc. More...
phStatus_t | phalMful_SectorSelect (void *pDataParams, uint8_t bSecNo)
Perform Type 2 tag Sector Select command with Picc. More...
phStatus_t | phalMful_Write (void *pDataParams, uint8_t bAddress, uint8_t *pData)
Perform MIFARE(R) Ultralight Write command with Picc. More...
phStatus_t | phalMful_CompatibilityWrite (void *pDataParams, uint8_t bAddress, uint8_t *pData)
Perform MIFARE(R) Ultralight Compatibility-Write command with Picc. More...
phStatus_t | phalMful_IncrCnt (void *pDataParams, uint8_t bCntNum, uint8_t *pCnt)
Perform MIFARE(R) Ultralight EV1 Increment count command with Picc. More...
phStatus_t | phalMful_ReadCnt (void *pDataParams, uint8_t bCntNum, uint8_t *pCntValue)
Perform MIFARE(R) Ultralight EV1 Read count command with Picc. More...
phStatus_t | phalMful_PwdAuth (void *pDataParams, uint8_t *pPwd, uint8_t *pPack)
Perform MIFARE(R) Ultralight EV1 Password auth command with Picc. More...
phStatus_t | phalMful_GetVersion (void *pDataParams, uint8_t *pVersion)
Perform MIFARE(R) Ultralight EV1 get version command with Picc. More...
phStatus_t | phalMful_FastRead (void *pDataParams, uint8_t bStartAddr, uint8_t bEndAddr, uint8_t **pData, uint16_t *wNumBytes)
Perform MIFARE(R) Ultralight EV1 Fast read command with Picc. More...
phStatus_t | phalMful_ReadSign (void *pDataParams, uint8_t bAddr, uint8_t **pSignature)
Perform MIFARE(R) Ultralight EV1 read signature command with Picc. More...
phStatus_t | phalMful_ChkTearingEvent (void *pDataParams, uint8_t bCntNum, uint8_t *pValidFlag)
Perform MIFARE(R) Ultralight EV1 check tearing event command with Picc. More...

Block definitions

#define | PHAL_MFUL_READ_BLOCK_LENGTH 16U
Length of a read MIFARE(R) Ultralight data block. More...
#define | PHAL_MFUL_WRITE_BLOCK_LENGTH 4U
Length of a write MIFARE(R) Ultralight data block. More...
#define | PHAL_MFUL_COMPWRITE_BLOCK_LENGTH 16U
Length of a compatibility write MIFARE(R) Ultralight data block. More...
#define | PHAL_MFUL_COUNTER_RD_VALUE_LENGTH 3U
Length of a counter MIFARE(R) Ultralight Read data block. More...
#define | PHAL_MFUL_COUNTER_WR_VALUE_LENGTH 4U
Length of a counter MIFARE(R) Ultralight Write data block. More...
#define | PHAL_MFUL_PACK_LENGTH 2U
Length of a password ack MIFARE(R) Ultralight data block. More...
#define | PHAL_MFUL_VERSION_LENGTH 8U
Length of a Version MIFARE(R) Ultralight data block. More...
#define | PHAL_MFUL_SIG_LENGTH 32U
Length of a Version MIFARE(R) Ultralight data block. More...

Crypto definitions

#define | PHAL_MFUL_DES_BLOCK_SIZE 8U
Length of an MIFARE(R) Ultralight DES block. More...
#define | PHAL_MFUL_DES_KEY_LENGTH 16U
Length of an MIFARE(R) Ultralight DES key. More...

Detailed Description

These Components implement the MIFARE(R) Ultralight, C, Ultralight EV1 commands.

Macro Definition Documentation

§ PHAL_MFUL_READ_BLOCK_LENGTH

#define PHAL_MFUL_READ_BLOCK_LENGTH 16U

Length of a read MIFARE(R) Ultralight data block.

§ PHAL_MFUL_WRITE_BLOCK_LENGTH

#define PHAL_MFUL_WRITE_BLOCK_LENGTH 4U

Length of a write MIFARE(R) Ultralight data block.

§ PHAL_MFUL_COMPWRITE_BLOCK_LENGTH

#define PHAL_MFUL_COMPWRITE_BLOCK_LENGTH 16U

Length of a compatibility write MIFARE(R) Ultralight data block.

§ PHAL_MFUL_COUNTER_RD_VALUE_LENGTH

#define PHAL_MFUL_COUNTER_RD_VALUE_LENGTH 3U

Length of a counter MIFARE(R) Ultralight Read data block.

§ PHAL_MFUL_COUNTER_WR_VALUE_LENGTH

#define PHAL_MFUL_COUNTER_WR_VALUE_LENGTH 4U

Length of a counter MIFARE(R) Ultralight Write data block.

§ PHAL_MFUL_PACK_LENGTH

#define PHAL_MFUL_PACK_LENGTH 2U

Length of a password ack MIFARE(R) Ultralight data block.

§ PHAL_MFUL_VERSION_LENGTH

#define PHAL_MFUL_VERSION_LENGTH 8U

Length of a Version MIFARE(R) Ultralight data block.

§ PHAL_MFUL_SIG_LENGTH

#define PHAL_MFUL_SIG_LENGTH 32U

Length of a Version MIFARE(R) Ultralight data block.

§ PHAL_MFUL_DES_BLOCK_SIZE

#define PHAL_MFUL_DES_BLOCK_SIZE 8U

Length of an MIFARE(R) Ultralight DES block.

§ PHAL_MFUL_DES_KEY_LENGTH

#define PHAL_MFUL_DES_KEY_LENGTH 16U

Length of an MIFARE(R) Ultralight DES key.

Function Documentation

§ phalMful_UlcAuthenticate()

phStatus_t phalMful_UlcAuthenticate | ( | void * | pDataParams,
 |  | uint16_t | wKeyNumber,
 |  | uint16_t | wKeyVersion
 | ) |  |

Perform MIFARE(R) Ultralight-C Authenticate command with Picc.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_AUTH_ERROR | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wKeyNumber | Key number to be used in authentication.
[in] | wKeyVersion | Key version to be used in authentication.

§ phalMful_Read()

phStatus_t phalMful_Read | ( | void * | pDataParams,
 |  | uint8_t | bAddress,
 |  | uint8_t * | pData
 | ) |  |

Perform MIFARE(R) Ultralight Read command with Picc.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bAddress | Address on Picc to read from.
[out] | pData | pData[PHAL_MFUL_READ_BLOCK_LENGTH] containing data returned from the Picc.

§ phalMful_SectorSelect()

phStatus_t phalMful_SectorSelect | ( | void * | pDataParams,
 |  | uint8_t | bSecNo
 | ) |  |

Perform Type 2 tag Sector Select command with Picc.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bSecNo | Sector number to be selected.

§ phalMful_Write()

phStatus_t phalMful_Write | ( | void * | pDataParams,
 |  | uint8_t | bAddress,
 |  | uint8_t * | pData
 | ) |  |

Perform MIFARE(R) Ultralight Write command with Picc.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bAddress | Address on Picc to write to.
[in] | pData | pData[PHAL_MFUL_WRITE_BLOCK_LENGTH] containing block to be written to the Picc.

§ phalMful_CompatibilityWrite()

phStatus_t phalMful_CompatibilityWrite | ( | void * | pDataParams,
 |  | uint8_t | bAddress,
 |  | uint8_t * | pData
 | ) |  |

Perform MIFARE(R) Ultralight Compatibility-Write command with Picc.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bAddress | Address on Picc to write to.
[in] | pData | pData[PHAL_MFUL_COMPWRITE_BLOCK_LENGTH] containing block to be written to the Picc.

§ phalMful_IncrCnt()

phStatus_t phalMful_IncrCnt | ( | void * | pDataParams,
 |  | uint8_t | bCntNum,
 |  | uint8_t * | pCnt
 | ) |  |

Perform MIFARE(R) Ultralight EV1 Increment count command with Picc.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bCntNum | One byte counter number 00 to 02
[in] | pCnt | pCnt[4] counter value LSB first. Only first three data bytes are used by the PICC. The 4th byte is ignored

§ phalMful_ReadCnt()

phStatus_t phalMful_ReadCnt | ( | void * | pDataParams,
 |  | uint8_t | bCntNum,
 |  | uint8_t * | pCntValue
 | ) |  |

Perform MIFARE(R) Ultralight EV1 Read count command with Picc.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bCntNum | One byte counter number 00 to 02
[out] | pCntValue | pCntValue[3] counter value. LSB first. Three bytes counter value returned from PICC.

§ phalMful_PwdAuth()

phStatus_t phalMful_PwdAuth | ( | void * | pDataParams,
 |  | uint8_t * | pPwd,
 |  | uint8_t * | pPack
 | ) |  |

Perform MIFARE(R) Ultralight EV1 Password auth command with Picc.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pPwd | Four byte array of type uint8_t containing four password bytes
[out] | pPack | Two byte array of type uint8_t containing two password acknowledge bytes

§ phalMful_GetVersion()

phStatus_t phalMful_GetVersion | ( | void * | pDataParams,
 |  | uint8_t * | pVersion
 | ) |  |

Perform MIFARE(R) Ultralight EV1 get version command with Picc.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[out] | pVersion | An eight byte array containing version information bytes

§ phalMful_FastRead()

phStatus_t phalMful_FastRead | ( | void * | pDataParams,
 |  | uint8_t | bStartAddr,
 |  | uint8_t | bEndAddr,
 |  | uint8_t ** | pData,
 |  | uint16_t * | wNumBytes
 | ) |  |

Perform MIFARE(R) Ultralight EV1 Fast read command with Picc.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bStartAddr | One byte start address
[in] | bEndAddr | One byte end address
[out] | pData | Pointer to the data read from the card. The bytes are stored on the HAL's Rx buffer.
[out] | wNumBytes | Contains number of bytes read from the card

§ phalMful_ReadSign()

phStatus_t phalMful_ReadSign | ( | void * | pDataParams,
 |  | uint8_t | bAddr,
 |  | uint8_t ** | pSignature
 | ) |  |

Perform MIFARE(R) Ultralight EV1 read signature command with Picc.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bAddr | Value is always 00. Present for forward compatibility reasons
[out] | pSignature | Pointer to a 32 byte signature read from the card

§ phalMful_ChkTearingEvent()

phStatus_t phalMful_ChkTearingEvent | ( | void * | pDataParams,
 |  | uint8_t | bCntNum,
 |  | uint8_t * | pValidFlag
 | ) |  |

Perform MIFARE(R) Ultralight EV1 check tearing event command with Picc.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bCntNum | Value specifying the counter number 00 to 02
[out] | pValidFlag | Address of one byte containing the valid flag byte


NXP NFC Reader Library: Component : Software

Data Structures | Macros | Functions
Component : Software
Application Layer » MIFARE(R) Ultralight
Collaboration diagram for Component : Software:

Data Structures

struct phalMful_Sw_DataParams_t
Private parameter structure. More...

Macros

#define PHAL_MFUL_SW_ID 0x01
ID for Software MIFARE Ultralight layer.

Functions

phStatus_t phalMful_Sw_Init (phalMful_Sw_DataParams_t *pDataParams, uint16_t wSizeOfDataParams, void *pPalMifareDataParams, void *pKeyStoreDataParams, void *pCryptoDataParams, void *pCryptoRngDataParams)
Initialise this layer. More...

Detailed Description

Function Documentation

§ phalMful_Sw_Init()

phStatus_t phalMful_Sw_Init | ( | phalMful_Sw_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams,
 |  | void * | pPalMifareDataParams,
 |  | void * | pKeyStoreDataParams,
 |  | void * | pCryptoDataParams,
 |  | void * | pCryptoRngDataParams
 | ) |  |

Initialise this layer.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wSizeOfDataParams | Specifies the size of the data parameter structure.
[in] | pPalMifareDataParams | Pointer to palMifare parameter structure.
[in] | pKeyStoreDataParams | Pointer to phKeystore parameter structure.
[in] | pCryptoDataParams | Pointer to phCrypto data parameters structure.
[in] | pCryptoRngDataParams | Pointer to the parameter structure of the CryptoRng layer.


NXP NFC Reader Library: phalMful_Sw_DataParams_t Struct Reference

Data Fields
phalMful_Sw_DataParams_t Struct Reference
Application Layer » MIFARE(R) Ultralight » Component : Software

Private parameter structure. More...

Data Fields

uint16_t wId
Layer ID for this component, NEVER MODIFY!
void * | pPalMifareDataParams
Pointer to palMifare parameter structure. More...
void * | pKeyStoreDataParams
Pointer to phKeystore parameter structure. More...
void * | pCryptoDataParams
Pointer to phCrypto data parameters structure. More...
void * | pCryptoRngDataParams
Pointer to the parameter structure of the CryptoRng layer. More...

Detailed Description

Private parameter structure.

Field Documentation

§ pPalMifareDataParams

void* phalMful_Sw_DataParams_t::pPalMifareDataParams

Pointer to palMifare parameter structure.

§ pKeyStoreDataParams

void* phalMful_Sw_DataParams_t::pKeyStoreDataParams

Pointer to phKeystore parameter structure.

§ pCryptoDataParams

void* phalMful_Sw_DataParams_t::pCryptoDataParams

Pointer to phCrypto data parameters structure.

§ pCryptoRngDataParams

void* phalMful_Sw_DataParams_t::pCryptoRngDataParams

Pointer to the parameter structure of the CryptoRng layer.

The documentation for this struct was generated from the following file:
  • phalMful.h


NXP NFC Reader Library: Felica

Modules | Functions
Felica
Application Layer

These Components implement the Felica commands. More...

Collaboration diagram for Felica:

Modules

Component : Software

Functions

phStatus_t | phalFelica_RequestResponse (void *pDataParams, uint8_t *pMode)
When receiving the RequestResponse command, the VICC shall respond. More...
phStatus_t | phalFelica_RequestService (void *pDataParams, uint8_t bTxNumServices, uint8_t *pTxServiceList, uint8_t *pRxNumServices, uint8_t *pRxServiceList)
When receiving the RequestService command, the VICC shall respond. More...
phStatus_t | phalFelica_Read (void *pDataParams, uint8_t bNumServices, uint8_t *pServiceList, uint8_t bTxNumBlocks, uint8_t *pBlockList, uint8_t bBlockListLength, uint8_t *pRxNumBlocks, uint8_t *pBlockData)
When receiving the Read command, the VICC shall respond. More...
phStatus_t | phalFelica_Write (void *pDataParams, uint8_t bNumServices, uint8_t *pServiceList, uint8_t bNumBlocks, uint8_t *pBlockList, uint8_t bBlockListLength, uint8_t *pBlockData)
When receiving the Write command, the VICC shall respond. More...
phStatus_t | phalFelica_GetConfig (void *pDataParams, uint16_t wConfig, uint16_t *pValue)
Perform a GetConfig command. More...
phStatus_t | phalFelica_ActivateCard (void *pDataParams, uint8_t *pSystemCode, uint8_t bNumTimeSlots, uint8_t *pRxBuffer, uint8_t *pRxLength, uint8_t *pMoreCardsAvailable)
This command activates a Felica card. More...

Felica constant definitions

#define PHAL_FELICA_CONFIG_ADD_INFO 0x0000U
Set or get the additional info word. More...

FELICA error codes

#define PHAL_FELICA_ERR_FELICA (PH_ERR_CUSTOM_BEGIN+0)
General Felica error. More...

Misc. Defines

#define PHAL_FELICA_MAX_SERVICES 121U
Maximum number of services. More...

Detailed Description

These Components implement the Felica commands.

Macro Definition Documentation

§ PHAL_FELICA_CONFIG_ADD_INFO

#define PHAL_FELICA_CONFIG_ADD_INFO 0x0000U

Set or get the additional info word.

§ PHAL_FELICA_ERR_FELICA

#define PHAL_FELICA_ERR_FELICA (PH_ERR_CUSTOM_BEGIN+0)

General Felica error.

§ PHAL_FELICA_MAX_SERVICES

#define PHAL_FELICA_MAX_SERVICES 121U

Maximum number of services.

Function Documentation

§ phalFelica_RequestResponse()

phStatus_t phalFelica_RequestResponse | ( | void * | pDataParams,
 |  | uint8_t * | pMode
 | ) |  |

When receiving the RequestResponse command, the VICC shall respond.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[out] | pMode | Current Card Mode. (0, 1, 2).

§ phalFelica_RequestService()

phStatus_t phalFelica_RequestService | ( | void * | pDataParams,
 |  | uint8_t | bTxNumServices,
 |  | uint8_t * | pTxServiceList,
 |  | uint8_t * | pRxNumServices,
 |  | uint8_t * | pRxServiceList
 | ) |  |

When receiving the RequestService command, the VICC shall respond.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | bTxNumServices | Number of services or areas within the command message.
[in] | pTxServiceList | Service code or area code list within the command message.
[out] | pRxNumServices | Number of received services or areas.
[out] | pRxServiceList | Received Service Key version or area version list, max 64 bytes.

§ phalFelica_Read()

phStatus_t phalFelica_Read | ( | void * | pDataParams,
 |  | uint8_t | bNumServices,
 |  | uint8_t * | pServiceList,
 |  | uint8_t | bTxNumBlocks,
 |  | uint8_t * | pBlockList,
 |  | uint8_t | bBlockListLength,
 |  | uint8_t * | pRxNumBlocks,
 |  | uint8_t * | pBlockData
 | ) |  |

When receiving the Read command, the VICC shall respond.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | bNumServices | Number of Services.
[in] | pServiceList | List of Services.
[in] | bTxNumBlocks | Number of Blocks to send.
[in] | pBlockList | List of Blocks to read.
[in] | bBlockListLength | Number of Blocks to read.
[out] | pRxNumBlocks | Number of received blocks.
[out] | pBlockData | Received Block data.

§ phalFelica_Write()

phStatus_t phalFelica_Write | ( | void * | pDataParams,
 |  | uint8_t | bNumServices,
 |  | uint8_t * | pServiceList,
 |  | uint8_t | bNumBlocks,
 |  | uint8_t * | pBlockList,
 |  | uint8_t | bBlockListLength,
 |  | uint8_t * | pBlockData
 | ) |  |

When receiving the Write command, the VICC shall respond.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | bNumServices | Number of Services.
[in] | pServiceList | List of Services.
[in] | bNumBlocks | Number of Blocks to send.
[in] | pBlockList | List of Blocks to write.
[in] | bBlockListLength | Number of Blocks to write.
[in] | pBlockData | Block data to write.

§ phalFelica_GetConfig()

phStatus_t phalFelica_GetConfig | ( | void * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t * | pValue
 | ) |  |

Perform a GetConfig command.

wConfig can be one of:

  • PHAL_FELICA_CONFIG_ADD_INFO
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | wConfig | Configuration Identifier.
[out] | pValue | Configuration Value.

§ phalFelica_ActivateCard()

phStatus_t phalFelica_ActivateCard | ( | void * | pDataParams,
 |  | uint8_t * | pSystemCode,
 |  | uint8_t | bNumTimeSlots,
 |  | uint8_t * | pRxBuffer,
 |  | uint8_t * | pRxLength,
 |  | uint8_t * | pMoreCardsAvailable
 | ) |  |

This command activates a Felica card.

Note: SystemCode 0xFFFF is passed to poll for all Felica Tags irrespective of the SystemCode. If SystemCode is specified then only corresponding Tag will be Polled and Activated.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pSystemCode | System-Code; uint8_t[2].
[in] | bNumTimeSlots | Number of timeslots to use. Refer to e.g. PHPAL_FELICA_NUMSLOTS_1 for valid values.
[out] | pRxBuffer | 8 bytes NFCID2 + 8 bytes PAD; uint8_t[16].
[out] | pRxLength | Length of received data. 0 or 16.
[out] | pMoreCardsAvailable | Whether there are more cards in the field or not; uint8_t.


NXP NFC Reader Library: Component : Software

Data Structures | Macros | Functions
Component : Software
Application Layer » Felica
Collaboration diagram for Component : Software:

Data Structures

struct phalFelica_Sw_DataParams_t
Private parameter structure. More...

Macros

#define PHAL_FELICA_SW_ID 0x01
ID for Software alFelica layer.

Functions

phStatus_t phalFelica_Sw_Init (phalFelica_Sw_DataParams_t *pDataParams, uint16_t wSizeOfDataParams, void *pPalFelica_DataParams)
Initialise this layer. More...

Detailed Description

Function Documentation

§ phalFelica_Sw_Init()

phStatus_t phalFelica_Sw_Init | ( | phalFelica_Sw_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams,
 |  | void * | pPalFelica_DataParams
 | ) |  |

Initialise this layer.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | wSizeOfDataParams | Specifies the size of the data parameter structure.
[in] | pPalFelica_DataParams | Pointer to palFelica parameter structure.


NXP NFC Reader Library: phalFelica_Sw_DataParams_t Struct Reference

Data Fields
phalFelica_Sw_DataParams_t Struct Reference
Application Layer » Felica » Component : Software

Private parameter structure. More...

Data Fields

uint16_t wId
Layer ID for this component, NEVER MODIFY!
void * pPalFelicaDataParams
Pointer to palFelica parameter structure. More...
uint16_t wAdditionalInfo
Holds the last error code sent by the VICC. More...

Detailed Description

Private parameter structure.

Field Documentation

§ pPalFelicaDataParams

void* phalFelica_Sw_DataParams_t::pPalFelicaDataParams

Pointer to palFelica parameter structure.

§ wAdditionalInfo

uint16_t phalFelica_Sw_DataParams_t::wAdditionalInfo

Holds the last error code sent by the VICC.

The documentation for this struct was generated from the following file:
  • phalFelica.h


NXP NFC Reader Library: MIFARE DESFire (R)

Modules
MIFARE DESFire (R)
Application Layer

These Functions implement the MIFARE DESFire(R) EV1 commands. More...

Collaboration diagram for MIFARE DESFire (R):

Modules

Component : Software

Other Options for various Functions

#define | PHAL_MFDF_NOT_AUTHENTICATED 0xFFU
No authentication. More...
#define | PHAL_MFDF_COMMUNICATION_PLAIN 0x00U
Plain mode of communication. More...
#define | PHAL_MFDF_COMMUNICATION_MACD 0x10U
MAC mode of communication. More...
#define | PHAL_MFDF_COMMUNICATION_ENC 0x30U
Enciphered mode of communication. More...
#define | PHAL_MFDF_ADDITIONAL_INFO 0x00A1
Option for getconfig to get additional info of a generic error. More...

phalMfdf Custom Error Codes

#define | PHAL_MFDF_NO_CHANGES (PH_ERR_CUSTOM_BEGIN+0)
MF DF Response - No changes done to backup files. More...
#define | PHAL_MFDF_ERR_OUT_OF_EEPROM_ERROR (PH_ERR_CUSTOM_BEGIN+1)
MF DF Response - Insufficient NV-Memory. More...
#define | PHAL_MFDF_ERR_NO_SUCH_KEY (PH_ERR_CUSTOM_BEGIN+2)
MF DF Invalid key number specified. More...
#define | PHAL_MFDF_ERR_PERMISSION_DENIED (PH_ERR_CUSTOM_BEGIN+3)
MF DF Current configuration/status does not allow the requested command. More...
#define | PHAL_MFDF_ERR_APPLICATION_NOT_FOUND (PH_ERR_CUSTOM_BEGIN+4)
MF DF Requested AID not found on PICC. More...
#define | PHAL_MFDF_ERR_BOUNDARY_ERROR (PH_ERR_CUSTOM_BEGIN+5)
MF DF Attempt to read/write data from/to beyond the files/record's limits. More...
#define | PHAL_MFDF_ERR_COMMAND_ABORTED (PH_ERR_CUSTOM_BEGIN+6)
MF DF Previous cmd not fully completed. More...
#define | PHAL_MFDF_ERR_COUNT (PH_ERR_CUSTOM_BEGIN+7)
MF DF Num. More...
#define | PHAL_MFDF_ERR_DUPLICATE (PH_ERR_CUSTOM_BEGIN+8)
MF DF File/Application with same number already exists. More...
#define | PHAL_MFDF_ERR_FILE_NOT_FOUND (PH_ERR_CUSTOM_BEGIN+9)
MF DF Specified file number does not exist. More...
#define | PHAL_MFDF_ERR_PICC_CRYPTO (PH_ERR_CUSTOM_BEGIN+10)
MF DF Crypto error returned by PICC. More...
#define | PHAL_MFDF_ERR_PARAMETER_ERROR (PH_ERR_CUSTOM_BEGIN+11)
MF DF Parameter value error returned by PICC. More...
#define | PHAL_MFDF_ERR_DF_GEN_ERROR (PH_ERR_CUSTOM_BEGIN+12)
MF DF DesFire Generic error. More...
#define | PHAL_MFDF_ERR_DF_7816_GEN_ERROR (PH_ERR_CUSTOM_BEGIN+13)
MF DF ISO 7816 Generic error. More...

PICC level Commands

phStatus_t | phalMfdf_CreateApplication (void *pDataParams, uint8_t bOption, uint8_t *pAid, uint8_t bKeySettings1, uint8_t bKeySettings2, uint8_t *pISOFileId, uint8_t *pISODFName, uint8_t bISODFNameLen)
Creates new applications on the PICC. More...
phStatus_t | phalMfdf_SelectApplication (void *pDataParams, uint8_t *pAid)
Selects one particular application on the PICC for further access. More...
phStatus_t | phalMfdf_GetVersion (void *pDataParams, uint8_t *pVerInfo)
Returns manufacturing related data of the PICC. More...

Application level Commands

phStatus_t phalMfdf_CreateStdDataFile (void *pDataParams, uint8_t bOption, uint8_t bFileNo, uint8_t *pISOFileId, uint8_t bCommSett, uint8_t *pAccessRights, uint8_t *pFileSize)
Creates files for storage of plain unformatted user data within an existing application on the PICC. More...

Data Manipulation Commands

phStatus_t phalMfdf_WriteData (void *pDataParams, uint8_t bCommOption, uint8_t bFileNo, uint8_t *pOffset, uint8_t *pTxData, uint8_t *pTxDataLen)

ISO 7816 COMMANDS

phStatus_t | phalMfdf_IsoSelectFile (void *pDataParams, uint8_t bOption, uint8_t bSelector, uint8_t *pFid, uint8_t *pDFname, uint8_t bDFnameLen, uint8_t **ppFCI, uint16_t *pwFCILen)
ISO Select. More...
phStatus_t | phalMfdf_IsoReadBinary (void *pDataParams, uint16_t wOption, uint8_t bOffset, uint8_t bSfid, uint8_t bBytesToRead, uint8_t **ppRxBuffer, uint16_t *pBytesRead)
ISO Read Binary wOption can be one of:
. More...
phStatus_t | phalMfdf_IsoUpdateBinary (void *pDataParams, uint8_t bOffset, uint8_t bSfid, uint8_t *pData, uint8_t bDataLen)
Iso Update Binary. More...

Miscellaneous functions

phStatus_t | phalMfdf_GetConfig (void *pDataParams, uint16_t wConfig, uint16_t *pValue)
Perform a GetConfig command. More...
phStatus_t | phalMfdf_SetConfig (void *pDataParams, uint16_t wConfig, uint16_t wValue)
Perform a SetConfig command. More...

Detailed Description

These Functions implement the MIFARE DESFire(R) EV1 commands.

Macro Definition Documentation

§ PHAL_MFDF_NOT_AUTHENTICATED

#define PHAL_MFDF_NOT_AUTHENTICATED 0xFFU

No authentication.

§ PHAL_MFDF_COMMUNICATION_PLAIN

#define PHAL_MFDF_COMMUNICATION_PLAIN 0x00U

Plain mode of communication.

§ PHAL_MFDF_COMMUNICATION_MACD

#define PHAL_MFDF_COMMUNICATION_MACD 0x10U

MAC mode of communication.

§ PHAL_MFDF_COMMUNICATION_ENC

#define PHAL_MFDF_COMMUNICATION_ENC 0x30U

Enciphered mode of communication.

§ PHAL_MFDF_ADDITIONAL_INFO

#define PHAL_MFDF_ADDITIONAL_INFO 0x00A1

Option for getconfig to get additional info of a generic error.

§ PHAL_MFDF_NO_CHANGES

#define PHAL_MFDF_NO_CHANGES (PH_ERR_CUSTOM_BEGIN+0)

MF DF Response - No changes done to backup files.

§ PHAL_MFDF_ERR_OUT_OF_EEPROM_ERROR

#define PHAL_MFDF_ERR_OUT_OF_EEPROM_ERROR (PH_ERR_CUSTOM_BEGIN+1)

MF DF Response - Insufficient NV-Memory.

§ PHAL_MFDF_ERR_NO_SUCH_KEY

#define PHAL_MFDF_ERR_NO_SUCH_KEY (PH_ERR_CUSTOM_BEGIN+2)

MF DF Invalid key number specified.

§ PHAL_MFDF_ERR_PERMISSION_DENIED

#define PHAL_MFDF_ERR_PERMISSION_DENIED (PH_ERR_CUSTOM_BEGIN+3)

MF DF Current configuration/status does not allow the requested command.

§ PHAL_MFDF_ERR_APPLICATION_NOT_FOUND

#define PHAL_MFDF_ERR_APPLICATION_NOT_FOUND (PH_ERR_CUSTOM_BEGIN+4)

MF DF Requested AID not found on PICC.

§ PHAL_MFDF_ERR_BOUNDARY_ERROR

#define PHAL_MFDF_ERR_BOUNDARY_ERROR (PH_ERR_CUSTOM_BEGIN+5)

MF DF Attempt to read/write data from/to beyond the files/record's limits.

§ PHAL_MFDF_ERR_COMMAND_ABORTED

#define PHAL_MFDF_ERR_COMMAND_ABORTED (PH_ERR_CUSTOM_BEGIN+6)

MF DF Previous cmd not fully completed.

Not all frames were requested or provided by the PCD.

§ PHAL_MFDF_ERR_COUNT

#define PHAL_MFDF_ERR_COUNT (PH_ERR_CUSTOM_BEGIN+7)

MF DF Num.

of applns limited to 28. No additional applications possible.

§ PHAL_MFDF_ERR_DUPLICATE

#define PHAL_MFDF_ERR_DUPLICATE (PH_ERR_CUSTOM_BEGIN+8)

MF DF File/Application with same number already exists.

§ PHAL_MFDF_ERR_FILE_NOT_FOUND

#define PHAL_MFDF_ERR_FILE_NOT_FOUND (PH_ERR_CUSTOM_BEGIN+9)

MF DF Specified file number does not exist.

§ PHAL_MFDF_ERR_PICC_CRYPTO

#define PHAL_MFDF_ERR_PICC_CRYPTO (PH_ERR_CUSTOM_BEGIN+10)

MF DF Crypto error returned by PICC.

§ PHAL_MFDF_ERR_PARAMETER_ERROR

#define PHAL_MFDF_ERR_PARAMETER_ERROR (PH_ERR_CUSTOM_BEGIN+11)

MF DF Parameter value error returned by PICC.

§ PHAL_MFDF_ERR_DF_GEN_ERROR

#define PHAL_MFDF_ERR_DF_GEN_ERROR (PH_ERR_CUSTOM_BEGIN+12)

MF DF DesFire Generic error.

Check additional Info.

§ PHAL_MFDF_ERR_DF_7816_GEN_ERROR

#define PHAL_MFDF_ERR_DF_7816_GEN_ERROR (PH_ERR_CUSTOM_BEGIN+13)

MF DF ISO 7816 Generic error.

Check Additional Info.

Function Documentation

§ phalMfdf_CreateApplication()

phStatus_t phalMfdf_CreateApplication | ( | void * | pDataParams,
 |  | uint8_t | bOption,
 |  | uint8_t * | pAid,
 |  | uint8_t | bKeySettings1,
 |  | uint8_t | bKeySettings2,
 |  | uint8_t * | pISOFileId,
 |  | uint8_t * | pISODFName,
 |  | uint8_t | bISODFNameLen
 | ) |  |

Creates new applications on the PICC.

bOption value can be

  • 01 meaning wISOFileId is supplied
  • 02 meaning pISODFName is present
  • 03 meaning both wISOFileId and pISODFName are present
  • 00 meaning both not present
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers param structure
[in] | bOption | Option parameter.
[in] | pAid | array of 3 bytes.
[in] | bKeySettings1 | 1 byte.
[in] | bKeySettings2 | 1 byte.
[in] | pISOFileId | 2 btyes ISO File ID.
[in] | pISODFName | 1 to 16 Bytes. Can also be NULL.
[in] | bISODFNameLen | Size of pISODFName if that is present.

§ phalMfdf_SelectApplication()

phStatus_t phalMfdf_SelectApplication | ( | void * | pDataParams,
 |  | uint8_t * | pAid
 | ) |  |

Selects one particular application on the PICC for further access.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers param structure.
[in] | pAid | 3 byte AID. LSB First.

§ phalMfdf_GetVersion()

phStatus_t phalMfdf_GetVersion | ( | void * | pDataParams,
 |  | uint8_t * | pVerInfo
 | ) |  |

Returns manufacturing related data of the PICC.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers param structure.
[out] | pVerInfo | 28bytes of version info. User has to parse this.

§ phalMfdf_CreateStdDataFile()

phStatus_t phalMfdf_CreateStdDataFile | ( | void * | pDataParams,
 |  | uint8_t | bOption,
 |  | uint8_t | bFileNo,
 |  | uint8_t * | pISOFileId,
 |  | uint8_t | bCommSett,
 |  | uint8_t * | pAccessRights,
 |  | uint8_t * | pFileSize
 | ) |  |

Creates files for storage of plain unformatted user data within an existing application on the PICC.

Remarks
If bOption==1, it means pIsoFileId is present and is valid. If bOption=0, it means pIsoFileId is not present.
Communication option (bCommSett) Possible Values are:
  • PHAL_MFDF_COMMUNICATION_PLAIN
  • PHAL_MFDF_COMMUNICATION_ENC
  • PHAL_MFDF_COMMUNICATION_MACD
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers param structure.
[in] | bOption | option parameter. 0x00 means wISOFileId is not provided. 0x01 means wISOFileId is provided and is valid
[in] | bFileNo | file number.
[in] | pISOFileId | ISO File ID.
[in] | bCommSett | communication settings.
[in] | pAccessRights | 2 byte access rights. Sent LSB first to PICC.
[in] | pFileSize | 3bytes. Sent LSB first to PICC.

§ phalMfdf_WriteData()

phStatus_t phalMfdf_WriteData | ( | void * | pDataParams,
 |  | uint8_t | bCommOption,
 |  | uint8_t | bFileNo,
 |  | uint8_t * | pOffset,
 |  | uint8_t * | pTxData,
 |  | uint8_t * | pTxDataLen
 | ) |  |
Parameters
[in] | pDataParams | Pointer to this layers param structure.
[in] | bCommOption | Communication Mode. Plain, Mac'd or encrypted.
[in] | bFileNo | 1 byte file number.
[in] | pOffset | 3 bytes offset. LSB First.
[in] | pTxData | Data to be written.
[in] | pTxDataLen | 3 bytes. length of data to be written.

§ phalMfdf_IsoSelectFile()

phStatus_t phalMfdf_IsoSelectFile | ( | void * | pDataParams,
 |  | uint8_t | bOption,
 |  | uint8_t | bSelector,
 |  | uint8_t * | pFid,
 |  | uint8_t * | pDFname,
 |  | uint8_t | bDFnameLen,
 |  | uint8_t ** | ppFCI,
 |  | uint16_t * | pwFCILen
 | ) |  |

ISO Select.

Remarks
bSelector = 0x00 => Selection by 2 byte file Id.
bSelector = 0x02 => Select EF under current DF. Fid = EF id
bSelector = 0x04 => Selection by DF Name. DFName and len is then valid
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers param structure.
[in] | bOption | If bOption == 00 FCI is returned. If 0x0C no FCI returned.
[in] | bSelector | bSelector equals either 0x00 or 0x02 or 0x04.
[in] | pFid | two byte file id. Send LSB first.
[in] | pDFname | DFName upto 16 bytes. valid only when bOption = 0x04.
[in] | bDFnameLen | Length of DFName string provided by the user.
[out] | ppFCI | File control information.
[out] | pwFCILen | Length of FCI returned.

§ phalMfdf_IsoReadBinary()

phStatus_t phalMfdf_IsoReadBinary | ( | void * | pDataParams,
 |  | uint16_t | wOption,
 |  | uint8_t | bOffset,
 |  | uint8_t | bSfid,
 |  | uint8_t | bBytesToRead,
 |  | uint8_t ** | ppRxBuffer,
 |  | uint16_t * | pBytesRead
 | ) |  |

ISO Read Binary wOption can be one of:
.

  • PH_EXCHANGE_DEFAULT
  • PH_EXCHANGE_RXCHAINING

If status of PH_ERR_SUCCESS_CHAINING is returned Recall this function with wOption PH_EXCHANGE_RXCHAINING to get remaining data.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_SUCCESS_CHAINING | operation success with chaining.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers param structure.
[in] | wOption | PH_EXCHANGE_DEFAULT or PH_EXCHANGE_RXCHAINING.
[in] | bOffset | Offset from where to read.
[in] | bSfid | Short ISO File Id. Bit 7 should be 1 to indicate Sfid is supplied. Else it is treated as MSB of 2Byte offset.
[in] | bBytesToRead | number of bytes to read. If 0, then entire file to be read.
[out] | ppRxBuffer | buffer where the read bytes will be stored.
[out] | pBytesRead | number of bytes read.

§ phalMfdf_IsoUpdateBinary()

phStatus_t phalMfdf_IsoUpdateBinary | ( | void * | pDataParams,
 |  | uint8_t | bOffset,
 |  | uint8_t | bSfid,
 |  | uint8_t * | pData,
 |  | uint8_t | bDataLen
 | ) |  |

Iso Update Binary.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers param structure.
[in] | bOffset | Offset from where to write.
[in] | bSfid | Short ISO File Id. Bit 7 should be 1 to indicate Sfid is supplied Else it is treated as MSB of 2Byte offset.
[in] | pData | data to be written.
[in] | bDataLen | number of bytes to write.

§ phalMfdf_GetConfig()

phStatus_t phalMfdf_GetConfig | ( | void * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t * | pValue
 | ) |  |

Perform a GetConfig command.

wConfig can be one of:

  • PHAL_MFDF_ADDITIONAL_INFO
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | wConfig | Item to read.
[out] | pValue | Read value.

§ phalMfdf_SetConfig()

phStatus_t phalMfdf_SetConfig | ( | void * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t | wValue
 | ) |  |

Perform a SetConfig command.

wConfig can:

  • PHAL_MFDF_ADDITIONAL_INFO
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | wConfig | Item to set.
[in] | wValue | Value to set.


NXP NFC Reader Library: Component : Software

Data Structures | Macros | Functions
Component : Software
Application Layer » MIFARE DESFire (R)
Collaboration diagram for Component : Software:

Data Structures

struct phalMfdf_Sw_DataParams_t
struct phalMfdf_Sw_DataParams_t More...

Macros

#define PHAL_MFDF_SW_ID 0x01U
ID for Software MF DesFire layer. More...

Functions

phStatus_t phalMfdf_Sw_Init (phalMfdf_Sw_DataParams_t *pDataParams, uint16_t wSizeOfDataParams, void *pPalMifareDataParams, void *pKeyStoreDataParams, void *pCryptoDataParamsEnc, void *pCryptoRngDataParams, void *pHalDataParams)
Initialise this layer. More...

Detailed Description

Macro Definition Documentation

§ PHAL_MFDF_SW_ID

#define PHAL_MFDF_SW_ID 0x01U

ID for Software MF DesFire layer.

Function Documentation

§ phalMfdf_Sw_Init()

phStatus_t phalMfdf_Sw_Init | ( | phalMfdf_Sw_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams,
 |  | void * | pPalMifareDataParams,
 |  | void * | pKeyStoreDataParams,
 |  | void * | pCryptoDataParamsEnc,
 |  | void * | pCryptoRngDataParams,
 |  | void * | pHalDataParams
 | ) |  |

Initialise this layer.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wSizeOfDataParams | Specifies the size of the data parameter structure
[in] | pPalMifareDataParams | Pointer to a palMifare component context.
[in] | pKeyStoreDataParams | Pointer to Key Store data parameters.
[in] | pCryptoDataParamsEnc | Pointer to a Crypto component context for encryption.
[in] | pCryptoRngDataParams | Pointer to a CryptoRng component context.
[in] | pHalDataParams | Pointer to the HAL parameters structure.


NXP NFC Reader Library: phalMfdf_Sw_DataParams_t Struct Reference

Data Fields
phalMfdf_Sw_DataParams_t Struct Reference
Application Layer » MIFARE DESFire (R) » Component : Software

struct phalMfdf_Sw_DataParams_t More...

Data Fields

uint16_t wId
Layer ID for this component, NEVER MODIFY!
void * | pPalMifareDataParams
Pointer to the parameter structure of the palMifare component. More...
void * | pKeyStoreDataParams
Pointer to the parameter structure of the KeyStore layer. More...
void * | pCryptoDataParamsEnc
Pointer to the parameter structure of the Crypto layer for encryption. More...
void * | pCryptoRngDataParams
Pointer to the parameter structure of the CryptoRng layer. More...
void * | pHalDataParams
Pointer to the HAL parameters structure. More...
uint8_t | bSessionKey [24]
Session key for this authentication.
uint8_t bKeyNo
key number against which this authentication is done
uint8_t | bIv [16]
Max size of IV can be 16 bytes.
uint8_t bAuthMode
Authenticate (0x0A), AuthISO (0x1A), AuthAES (0xAA)
uint8_t | pAid [3]
Aid of the currently selected application.
uint8_t bCryptoMethod
DES,3DES, 3K3DES or AES.
uint8_t bWrappedMode
Wrapped APDU mode. More...
uint16_t wCrc
2 Byte CRC initial value in Authenticate mode. More...
uint32_t dwCrc
4 Byte CRC initial value in 0x1A, 0xAA mode. More...
uint16_t wAdditionalInfo
Specific error codes for Desfire generic errors. More...
uint16_t wPayLoadLen
Amount of data to be read. More...
uint8_t | bLastBlockBuffer [16]
Buffer to store last Block of encrypted data in case of chaining. More...
uint8_t bLastBlockIndex
Last Block Buffer Index. More...

Detailed Description

struct phalMfdf_Sw_DataParams_t

Field Documentation

§ pPalMifareDataParams

void* phalMfdf_Sw_DataParams_t::pPalMifareDataParams

Pointer to the parameter structure of the palMifare component.

§ pKeyStoreDataParams

void* phalMfdf_Sw_DataParams_t::pKeyStoreDataParams

Pointer to the parameter structure of the KeyStore layer.

§ pCryptoDataParamsEnc

void* phalMfdf_Sw_DataParams_t::pCryptoDataParamsEnc

Pointer to the parameter structure of the Crypto layer for encryption.

§ pCryptoRngDataParams

void* phalMfdf_Sw_DataParams_t::pCryptoRngDataParams

Pointer to the parameter structure of the CryptoRng layer.

§ pHalDataParams

void* phalMfdf_Sw_DataParams_t::pHalDataParams

Pointer to the HAL parameters structure.

§ bWrappedMode

uint8_t phalMfdf_Sw_DataParams_t::bWrappedMode

Wrapped APDU mode.

All native commands need to be sent wrapped in ISO 7816 APDUs.

§ wCrc

uint16_t phalMfdf_Sw_DataParams_t::wCrc

2 Byte CRC initial value in Authenticate mode.

§ dwCrc

uint32_t phalMfdf_Sw_DataParams_t::dwCrc

4 Byte CRC initial value in 0x1A, 0xAA mode.

§ wAdditionalInfo

uint16_t phalMfdf_Sw_DataParams_t::wAdditionalInfo

Specific error codes for Desfire generic errors.

§ wPayLoadLen

uint16_t phalMfdf_Sw_DataParams_t::wPayLoadLen

Amount of data to be read.

Required for Enc read to verify CRC.

§ bLastBlockBuffer

uint8_t phalMfdf_Sw_DataParams_t::bLastBlockBuffer[16]

Buffer to store last Block of encrypted data in case of chaining.

§ bLastBlockIndex

uint8_t phalMfdf_Sw_DataParams_t::bLastBlockIndex

Last Block Buffer Index.

The documentation for this struct was generated from the following file:
  • phalMfdf.h


NXP NFC Reader Library: ISO/IEC 15693

Modules | Functions
ISO/IEC 15693
Application Layer

These Components implement the ISO/IEC 15693 commands. More...

Collaboration diagram for ISO/IEC 15693:

Modules

Component : Software

Functions

phStatus_t | phalI15693_ReadSingleBlock (void *pDataParams, uint8_t bOption, uint8_t bBlockNo, uint8_t **ppRxBuffer, uint16_t *pRxLength)
When receiving the Read single block command, the VICC shall read the requested block and send back its value in pRxBuffer. More...
phStatus_t | phalI15693_ExtendedReadSingleBlock (void *pDataParams, uint8_t bOption, uint16_t wBlockNo, uint8_t **ppRxBuffer, uint16_t *pRxLength)
When receiving the Extended read single block command, the VICC shall read the requested block and send back its value in pRxBuffer. More...
phStatus_t | phalI15693_ReadMultipleBlocks (void *pDataParams, uint8_t bOption, uint8_t bBlockNo, uint16_t wNumBlocks, uint8_t **ppRxBuffer, uint16_t *pRxLength)
When receiving the Read multiple blocks command, the VICC shall read the requested block(s) and send back their value in pRxBuffer. More...
phStatus_t | phalI15693_ExtendedReadMultipleBlocks (void *pDataParams, uint8_t bOption, uint16_t wBlockNo, uint16_t wNumBlocks, uint8_t **ppRxBuffer, uint16_t *pRxLength)
When receiving the Extended read multiple blocks command, the VICC shall read the requested block(s) and send back their value in pRxBuffer. More...
phStatus_t | phalI15693_WriteSingleBlock (void *pDataParams, uint8_t bOption, uint8_t bBlockNo, uint8_t *pTxBuffer, uint16_t wTxLength)
When receiving the Write single block command, the VICC shall write the requested block with the data contained in the pTxBuffer. More...
phStatus_t | phalI15693_ExtendedWriteSingleBlock (void *pDataParams, uint8_t bOption, uint16_t wBlockNo, uint8_t *pTxBuffer, uint16_t wTxLength)
When receiving the Extended write single block command, the VICC shall write the requested block with the data contained in the pTxBuffer. More...
phStatus_t | phalI15693_WriteMultipleBlocks (void *pDataParams, uint8_t bOption, uint8_t bBlockNo, uint16_t wNumBlocks, uint8_t *pTxBuffer, uint16_t wTxLength)
When receiving the Write multiple blocks command, the VICC shall write the requested block(s) with the data contained in the pTxBuffer. More...
phStatus_t | phalI15693_ExtendedWriteMultipleBlocks (void *pDataParams, uint8_t bOption, uint16_t wBlockNo, uint16_t wNumBlocks, uint8_t *pTxBuffer, uint16_t wTxLength)
When receiving the Extended write multiple blocks command, the VICC shall write the requested block(s) with the data contained in the pTxBuffer. More...
phStatus_t | phalI15693_LockBlock (void *pDataParams, uint8_t bOption, uint8_t bBlockNo)
When receiving the Lock block command, the VICC shall lock permanently the requested block. More...
phStatus_t | phalI15693_ExtendedLockBlock (void *pDataParams, uint8_t bOption, uint16_t wBlockNo)
When receiving the Extended lock block command, the VICC shall lock permanently the requested block for extended memory tags. More...
phStatus_t | phalI15693_WriteAFI (void *pDataParams, uint8_t bOption, uint8_t bAfi)
When receiving the Write AFI request, the VICC shall write the AFI value into its memory. More...
phStatus_t | phalI15693_LockAFI (void *pDataParams, uint8_t bOption)
When receiving the Lock AFI request, the VICC shall lock the AFI value permanently into its memory. More...
phStatus_t | phalI15693_WriteDSFID (void *pDataParams, uint8_t bOption, uint8_t bDsfid)
When receiving the Write DSFID request, the VICC shall write the DSFID value into its memory. More...
phStatus_t | phalI15693_LockDSFID (void *pDataParams, uint8_t bOption)
When receiving the Lock DSFID request, the VICC shall lock the DSFID value permanently into its memory. More...
phStatus_t | phalI15693_GetSystemInformation (void *pDataParams, uint8_t **ppRxBuffer, uint16_t *pRxLength)
This command allows for retrieving the system information value from the VICC. More...
phStatus_t | phalI15693_ExtendedGetSystemInformation (void *pDataParams, uint8_t **ppRxBuffer, uint16_t *pRxLength)
This command allows for retrieving the system information value from the VICC for extended memory tags. More...
phStatus_t | phalI15693_GetMultipleBlockSecurityStatus (void *pDataParams, uint8_t bBlockNo, uint16_t wNumBlocks, uint8_t **ppRxBuffer, uint16_t *pRxLength)
When receiving the Get multiple block security status command, the VICC shall send back the block security status. More...
phStatus_t | phalI15693_ExtendedGetMultipleBlockSecurityStatus (void *pDataParams, uint16_t wBlockNo, uint16_t wNumBlocks, uint8_t **ppRxBuffer, uint16_t *pRxLength)
When receiving the Extended get multiple block security status command, the VICC shall send back the block security status (for extended memory tags). More...

Options

#define | PHAL_I15693_OPTION_OFF PH_OFF
Option Bit is cleared. More...
#define | PHAL_I15693_OPTION_ON PH_ON
Option Bit is set. More...
#define | PHAL_I15693_OPTION_DEFAULT PHAL_I15693_OPTION_OFF
Default Option. More...

Detailed Description

These Components implement the ISO/IEC 15693 commands.

Macro Definition Documentation

§ PHAL_I15693_OPTION_OFF

#define PHAL_I15693_OPTION_OFF PH_OFF

Option Bit is cleared.

§ PHAL_I15693_OPTION_ON

#define PHAL_I15693_OPTION_ON PH_ON

Option Bit is set.

§ PHAL_I15693_OPTION_DEFAULT

#define PHAL_I15693_OPTION_DEFAULT PHAL_I15693_OPTION_OFF

Default Option.

Function Documentation

§ phalI15693_ReadSingleBlock()

phStatus_t phalI15693_ReadSingleBlock | ( | void * | pDataParams,
 |  | uint8_t | bOption,
 |  | uint8_t | bBlockNo,
 |  | uint8_t ** | ppRxBuffer,
 |  | uint16_t * | pRxLength
 | ) |  |

When receiving the Read single block command, the VICC shall read the requested block and send back its value in pRxBuffer.

Option_flag can be set by using phpalSli15693_SetConfig command

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | bOption | Option flag; PHAL_I15693_OPTION_OFF: disable; PHAL_I15693_OPTION_ON: enable.
[in] | bBlockNo | Block number.
[out] | ppRxBuffer | Pointer to received data.
[out] | pRxLength | number of received data bytes.

§ phalI15693_ExtendedReadSingleBlock()

phStatus_t phalI15693_ExtendedReadSingleBlock | ( | void * | pDataParams,
 |  | uint8_t | bOption,
 |  | uint16_t | wBlockNo,
 |  | uint8_t ** | ppRxBuffer,
 |  | uint16_t * | pRxLength
 | ) |  |

When receiving the Extended read single block command, the VICC shall read the requested block and send back its value in pRxBuffer.

This command shall be used for extended memory tags. Option_flag can be set by using phpalSli15693_SetConfig command

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | bOption | Option flag; PHAL_I15693_OPTION_OFF: disable; PHAL_I15693_OPTION_ON: enable.
[in] | wBlockNo | Block number.
[out] | ppRxBuffer | Pointer to received data.
[out] | pRxLength | number of received data bytes.

§ phalI15693_ReadMultipleBlocks()

phStatus_t phalI15693_ReadMultipleBlocks | ( | void * | pDataParams,
 |  | uint8_t | bOption,
 |  | uint8_t | bBlockNo,
 |  | uint16_t | wNumBlocks,
 |  | uint8_t ** | ppRxBuffer,
 |  | uint16_t * | pRxLength
 | ) |  |

When receiving the Read multiple blocks command, the VICC shall read the requested block(s) and send back their value in pRxBuffer.

Option_flag can be set by using phpalSli15693_SetConfig command

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | bOption | Option flag; PHAL_I15693_OPTION_OFF: disable; PHAL_I15693_OPTION_ON: enable.
[in] | bBlockNo | First Block number.
[in] | wNumBlocks | Number of blocks.
[out] | ppRxBuffer | Pointer to received data.
[out] | pRxLength | number of received data bytes.

§ phalI15693_ExtendedReadMultipleBlocks()

phStatus_t phalI15693_ExtendedReadMultipleBlocks | ( | void * | pDataParams,
 |  | uint8_t | bOption,
 |  | uint16_t | wBlockNo,
 |  | uint16_t | wNumBlocks,
 |  | uint8_t ** | ppRxBuffer,
 |  | uint16_t * | pRxLength
 | ) |  |

When receiving the Extended read multiple blocks command, the VICC shall read the requested block(s) and send back their value in pRxBuffer.

This command shall be used for extended memory tags. Option_flag can be set by using phpalSli15693_SetConfig command

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | bOption | Option flag; PHAL_I15693_OPTION_OFF: disable; PHAL_I15693_OPTION_ON: enable.
[in] | wBlockNo | First Block number.
[in] | wNumBlocks | Number of blocks.
[out] | ppRxBuffer | Pointer to received data.
[out] | pRxLength | number of received data bytes.

§ phalI15693_WriteSingleBlock()

phStatus_t phalI15693_WriteSingleBlock | ( | void * | pDataParams,
 |  | uint8_t | bOption,
 |  | uint8_t | bBlockNo,
 |  | uint8_t * | pTxBuffer,
 |  | uint16_t | wTxLength
 | ) |  |

When receiving the Write single block command, the VICC shall write the requested block with the data contained in the pTxBuffer.

Option_flag can be set by using phpalSli15693_SetConfig command

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | bOption | Option flag; PHAL_I15693_OPTION_OFF: disable; PHAL_I15693_OPTION_ON: enable.
[in] | bBlockNo | Block number.
[in] | pTxBuffer | Data to transmit.
[in] | wTxLength | number of bytes to send

§ phalI15693_ExtendedWriteSingleBlock()

phStatus_t phalI15693_ExtendedWriteSingleBlock | ( | void * | pDataParams,
 |  | uint8_t | bOption,
 |  | uint16_t | wBlockNo,
 |  | uint8_t * | pTxBuffer,
 |  | uint16_t | wTxLength
 | ) |  |

When receiving the Extended write single block command, the VICC shall write the requested block with the data contained in the pTxBuffer.

This command shall be used for extended memory tags. Option_flag can be set by using phpalSli15693_SetConfig command

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | bOption | Option flag; PHAL_I15693_OPTION_OFF: disable; PHAL_I15693_OPTION_ON: enable.
[in] | wBlockNo | Block number.
[in] | pTxBuffer | Data to transmit.
[in] | wTxLength | number of bytes to send

§ phalI15693_WriteMultipleBlocks()

phStatus_t phalI15693_WriteMultipleBlocks | ( | void * | pDataParams,
 |  | uint8_t | bOption,
 |  | uint8_t | bBlockNo,
 |  | uint16_t | wNumBlocks,
 |  | uint8_t * | pTxBuffer,
 |  | uint16_t | wTxLength
 | ) |  |

When receiving the Write multiple blocks command, the VICC shall write the requested block(s) with the data contained in the pTxBuffer.

Option_flag can be set by using phpalSli15693_SetConfig command

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | bOption | Option flag; PHAL_I15693_OPTION_OFF: disable; PHAL_I15693_OPTION_ON: enable.
[in] | bBlockNo | First Block number.
[in] | wNumBlocks | Number of blocks (real number, is automatically decremented by one).
[in] | pTxBuffer | Data to transmit.
[in] | wTxLength | number of bytes to send

§ phalI15693_ExtendedWriteMultipleBlocks()

phStatus_t phalI15693_ExtendedWriteMultipleBlocks | ( | void * | pDataParams,
 |  | uint8_t | bOption,
 |  | uint16_t | wBlockNo,
 |  | uint16_t | wNumBlocks,
 |  | uint8_t * | pTxBuffer,
 |  | uint16_t | wTxLength
 | ) |  |

When receiving the Extended write multiple blocks command, the VICC shall write the requested block(s) with the data contained in the pTxBuffer.

This command shall be used for extended memory tags. Option_flag can be set by using phpalSli15693_SetConfig command

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | bOption | Option flag; PHAL_I15693_OPTION_OFF: disable; PHAL_I15693_OPTION_ON: enable.
[in] | wBlockNo | First Block number.
[in] | wNumBlocks | Number of blocks (real number, is automatically decremented by one).
[in] | pTxBuffer | Data to transmit.
[in] | wTxLength | number of bytes to send

§ phalI15693_LockBlock()

phStatus_t phalI15693_LockBlock | ( | void * | pDataParams,
 |  | uint8_t | bOption,
 |  | uint8_t | bBlockNo
 | ) |  |

When receiving the Lock block command, the VICC shall lock permanently the requested block.

Option_flag can be set by using phpalSli15693_SetConfig command

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | bOption | Option flag; PHAL_I15693_OPTION_OFF: disable; PHAL_I15693_OPTION_ON: enable.
[in] | bBlockNo | Block number.

§ phalI15693_ExtendedLockBlock()

phStatus_t phalI15693_ExtendedLockBlock | ( | void * | pDataParams,
 |  | uint8_t | bOption,
 |  | uint16_t | wBlockNo
 | ) |  |

When receiving the Extended lock block command, the VICC shall lock permanently the requested block for extended memory tags.

This command shall be used for extended memory tags. Option_flag can be set by using phpalSli15693_SetConfig command

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | bOption | Option flag; PHAL_I15693_OPTION_OFF: disable; PHAL_I15693_OPTION_ON: enable.
[in] | wBlockNo | Block number.

§ phalI15693_WriteAFI()

phStatus_t phalI15693_WriteAFI | ( | void * | pDataParams,
 |  | uint8_t | bOption,
 |  | uint8_t | bAfi
 | ) |  |

When receiving the Write AFI request, the VICC shall write the AFI value into its memory.

Option_flag can be set by using phpalSli15693_SetConfig command

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | bOption | Option flag; PHAL_I15693_OPTION_OFF: disable; PHAL_I15693_OPTION_ON: enable.
[in] | bAfi | Value of Application Family Identifier.

§ phalI15693_LockAFI()

phStatus_t phalI15693_LockAFI | ( | void * | pDataParams,
 |  | uint8_t | bOption
 | ) |  |

When receiving the Lock AFI request, the VICC shall lock the AFI value permanently into its memory.

Option_flag can be set by using phpalSli15693_SetConfig command

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | bOption | Option flag; PHAL_I15693_OPTION_OFF: disable; PHAL_I15693_OPTION_ON: enable.

§ phalI15693_WriteDSFID()

phStatus_t phalI15693_WriteDSFID | ( | void * | pDataParams,
 |  | uint8_t | bOption,
 |  | uint8_t | bDsfid
 | ) |  |

When receiving the Write DSFID request, the VICC shall write the DSFID value into its memory.

Option_flag can be set by using phpalSli15693_SetConfig command

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | bOption | Option flag; PHAL_I15693_OPTION_OFF: disable; PHAL_I15693_OPTION_ON: enable.
[in] | bDsfid | Value of DSFID(data storage format identifier).

§ phalI15693_LockDSFID()

phStatus_t phalI15693_LockDSFID | ( | void * | pDataParams,
 |  | uint8_t | bOption
 | ) |  |

When receiving the Lock DSFID request, the VICC shall lock the DSFID value permanently into its memory.

Option_flag can be set by using phpalSli15693_SetConfig command

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | bOption | Option flag; PHAL_I15693_OPTION_OFF: disable; PHAL_I15693_OPTION_ON: enable.

§ phalI15693_GetSystemInformation()

phStatus_t phalI15693_GetSystemInformation | ( | void * | pDataParams,
 |  | uint8_t ** | ppRxBuffer,
 |  | uint16_t * | pRxLength
 | ) |  |

This command allows for retrieving the system information value from the VICC.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[out] | ppRxBuffer | Pointer to received data.
[out] | pRxLength | number of received data bytes.

§ phalI15693_ExtendedGetSystemInformation()

phStatus_t phalI15693_ExtendedGetSystemInformation | ( | void * | pDataParams,
 |  | uint8_t ** | ppRxBuffer,
 |  | uint16_t * | pRxLength
 | ) |  |

This command allows for retrieving the system information value from the VICC for extended memory tags.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[out] | ppRxBuffer | Pointer to received data.
[out] | pRxLength | number of received data bytes.

§ phalI15693_GetMultipleBlockSecurityStatus()

phStatus_t phalI15693_GetMultipleBlockSecurityStatus | ( | void * | pDataParams,
 |  | uint8_t | bBlockNo,
 |  | uint16_t | wNumBlocks,
 |  | uint8_t ** | ppRxBuffer,
 |  | uint16_t * | pRxLength
 | ) |  |

When receiving the Get multiple block security status command, the VICC shall send back the block security status.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | bBlockNo | Block number.
[in] | wNumBlocks | Number of blocks.
[out] | ppRxBuffer | Pointer to received data.
[out] | pRxLength | number of received data bytes.

§ phalI15693_ExtendedGetMultipleBlockSecurityStatus()

phStatus_t phalI15693_ExtendedGetMultipleBlockSecurityStatus | ( | void * | pDataParams,
 |  | uint16_t | wBlockNo,
 |  | uint16_t | wNumBlocks,
 |  | uint8_t ** | ppRxBuffer,
 |  | uint16_t * | pRxLength
 | ) |  |

When receiving the Extended get multiple block security status command, the VICC shall send back the block security status (for extended memory tags).

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | wBlockNo | Block number.
[in] | wNumBlocks | Number of blocks.
[out] | ppRxBuffer | Pointer to received data.
[out] | pRxLength | number of received data bytes.


NXP NFC Reader Library: Component : Software

Data Structures | Macros | Functions
Component : Software
Application Layer » ISO/IEC 15693
Collaboration diagram for Component : Software:

Data Structures

struct phalI15693_Sw_DataParams_t
Private parameter structure. More...

Macros

#define PHAL_I15693_SW_ID 0x01
ID for Software I15693 layer.

Functions

phStatus_t phalI15693_Sw_Init (phalI15693_Sw_DataParams_t *pDataParams, uint16_t wSizeOfDataParams, void *pPalSli15693DataParams)
Initialize this layer. More...

Detailed Description

Function Documentation

§ phalI15693_Sw_Init()

phStatus_t phalI15693_Sw_Init | ( | phalI15693_Sw_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams,
 |  | void * | pPalSli15693DataParams
 | ) |  |

Initialize this layer.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | wSizeOfDataParams | Specifies the size of the data parameter structure.
[in] | pPalSli15693DataParams | Pointer to palSli15693 parameter structure.


NXP NFC Reader Library: phalI15693_Sw_DataParams_t Struct Reference

Data Fields
phalI15693_Sw_DataParams_t Struct Reference
Application Layer » ISO/IEC 15693 » Component : Software

Private parameter structure. More...

Data Fields

uint16_t wId
Layer ID for this component, NEVER MODIFY!
void * pPalSli15693DataParams
Pointer to palSli15693 parameter structure. More...

Detailed Description

Private parameter structure.

Field Documentation

§ pPalSli15693DataParams

void* phalI15693_Sw_DataParams_t::pPalSli15693DataParams

Pointer to palSli15693 parameter structure.

The documentation for this struct was generated from the following file:
  • phalI15693.h


NXP NFC Reader Library: ICode SLI

Modules | Functions
ICode SLI
Application Layer

These Components implement the ICode SLI commands. More...

Collaboration diagram for ICode SLI:

Modules

Component : Software

Functions

phStatus_t | phalSli_GetRandomNumber (void *pDataParams, uint8_t *pRnd)
This command generates a random number from the label IC. More...
phStatus_t | phalSli_SetPWD (void *pDataParams, uint8_t bPwdIdentifier, uint8_t *pXorPwd)
This command transmits different passwords to the label to get access to protected functionalities. More...
phStatus_t | phalSli_WritePWD (void *pDataParams, uint8_t bPwdIdentifier, uint8_t *pPwd)
With this command, a new password is written into the related memory. More...
phStatus_t | phalSli_LockPWD (void *pDataParams, uint8_t bPwdIdentifier)
This command locks the addressed password. More...
phStatus_t | phalSli_64BitPWDProtection (void *pDataParams)
This instructs the label that both of the Read and Write passwords are required for protected access. More...
phStatus_t | phalSli_ProtectPage (void *pDataParams, uint8_t bPageNo, uint8_t bProtectionStatus)
This command changes the protection status of a page. More...
phStatus_t | phalSli_LockPageProtectionCondition (void *pDataParams, uint8_t bPageNo)
This command permanenty locks the protection status of a page. More...
phStatus_t | phalSli_GetMultipleBlockProtStatus (void *pDataParams, uint8_t bBlockNo, uint16_t wNumBlocks, uint8_t *pProtectionStates, uint8_t *pNumReceivedStates)
This instructs the label to return the block protection status of the requested blocks. More...
phStatus_t | phalSli_Destroy (void *pDataParams)
This command permanently destroys the label. More...
phStatus_t | phalSli_EnablePrivacy (void *pDataParams)
This command instructs the label to enter privacy mode. More...
phStatus_t | phalSli_ReadSignature (void *pDataParams, uint8_t *pSignature)
The command returns an IC specific, 32-byte ECC signature, to verify NXP Semiconductors as the silicon vendor. More...
phStatus_t | phalSli_SetEAS (void *pDataParams)
This command enables the EAS mode if the EAS mode is not locked. More...
phStatus_t | phalSli_ResetEAS (void *pDataParams)
This command disables the EAS mode if the EAS mode is not locked. More...
phStatus_t | phalSli_LockEAS (void *pDataParams)
This command locks the current state of the EAS mode and the EAS ID. More...
phStatus_t | phalSli_EASAlarm (void *pDataParams, uint8_t bOption, uint8_t *pEasIdValue, uint8_t bEasIdMaskLength, uint8_t *pEas)
This command returns the EAS sequence if the EAS mode is enabled. More...
phStatus_t | phalSli_PwdProtectEAS (void *pDataParams)
This command enables the password protection for EAS. More...
phStatus_t | phalSli_WriteEAS_ID (void *pDataParams, uint8_t *pEasIdValue)
With this command, a new EAS identifier is stored in the corresponding configuration memory. More...
phStatus_t | phalSli_ReadEPC (void *pDataParams, uint8_t *pEpc)
On this command, the label will respond with it's EPC data. More...
phStatus_t | phalSli_GetNxpSystemInfo (void *pDataParams, uint8_t *pProtectionPointer, uint8_t *pProtectionCondition, uint8_t *pLockBits, uint8_t *pFeatureFlags)
The command provides information about IC access conditions and supported features. More...
phStatus_t | phalSli_GetRandomNumberSetPWD (void *pDataParams, uint8_t bPwdIdentifier, uint8_t *pPwd)
Get random number and set password using this random number and provided password. More...

Options

#define | PHAL_SLI_OPTION_OFF PH_OFF
Option Bit is cleared. More...
#define | PHAL_SLI_OPTION_ON PH_ON
Option Bit is set. More...
#define | PHAL_SLI_OPTION_DEFAULT PHAL_SLI_OPTION_OFF
Default Option. More...

Block definitions

#define PHAL_SLI_BLOCK_SIZE 4U
Length of an ICode SLI data block. More...

Password identifiers

#define | PHAL_SLI_PWD_READ 0x01U
Read Password. More...
#define | PHAL_SLI_PWD_WRITE 0x02U
Write Password. More...
#define | PHAL_SLI_PWD_PRIVACY 0x04U
Privacy Password. More...
#define | PHAL_SLI_PWD_DESTROY 0x08U
Destroy Password. More...
#define | PHAL_SLI_PWD_EAS 0x10U
EAS Password. More...

Protection status

#define | PHAL_SLI_PROTECTION_PUBLIC 0x00U
No protection. More...
#define | PHAL_SLI_PROTECTION_READ_PWD_ONLY 0x01U
Read and Write protected by the Read password. More...
#define | PHAL_SLI_PROTECTION_WRITE_PWD_ONLY 0x10U
Write protected by the Write password. More...
#define | PHAL_SLI_PROTECTION_READ_AND_WRITE_PWD 0x11U
Read protected by the Read password, Write protected by the Write password. More...

Block Protection bits

#define | PHAL_SLI_PROTECTION_BIT_BLOCK_LOCK 0x01U
Block is locked. More...
#define | PHAL_SLI_PROTECTION_BIT_READ 0x02U
Block is read protected. More...
#define | PHAL_SLI_PROTECTION_BIT_WRITE 0x04U
Block is write protected. More...
#define | PHAL_SLI_PROTECTION_BIT_PROT_LOCK 0x08U
Page protection is locked. More...

Detailed Description

These Components implement the ICode SLI commands.

Macro Definition Documentation

§ PHAL_SLI_OPTION_OFF

#define PHAL_SLI_OPTION_OFF PH_OFF

Option Bit is cleared.

§ PHAL_SLI_OPTION_ON

#define PHAL_SLI_OPTION_ON PH_ON

Option Bit is set.

§ PHAL_SLI_OPTION_DEFAULT

#define PHAL_SLI_OPTION_DEFAULT PHAL_SLI_OPTION_OFF

Default Option.

§ PHAL_SLI_BLOCK_SIZE

#define PHAL_SLI_BLOCK_SIZE 4U

Length of an ICode SLI data block.

§ PHAL_SLI_PWD_READ

#define PHAL_SLI_PWD_READ 0x01U

Read Password.

§ PHAL_SLI_PWD_WRITE

#define PHAL_SLI_PWD_WRITE 0x02U

Write Password.

§ PHAL_SLI_PWD_PRIVACY

#define PHAL_SLI_PWD_PRIVACY 0x04U

Privacy Password.

§ PHAL_SLI_PWD_DESTROY

#define PHAL_SLI_PWD_DESTROY 0x08U

Destroy Password.

§ PHAL_SLI_PWD_EAS

#define PHAL_SLI_PWD_EAS 0x10U

EAS Password.

§ PHAL_SLI_PROTECTION_PUBLIC

#define PHAL_SLI_PROTECTION_PUBLIC 0x00U

No protection.

§ PHAL_SLI_PROTECTION_READ_PWD_ONLY

#define PHAL_SLI_PROTECTION_READ_PWD_ONLY 0x01U

Read and Write protected by the Read password.

§ PHAL_SLI_PROTECTION_WRITE_PWD_ONLY

#define PHAL_SLI_PROTECTION_WRITE_PWD_ONLY 0x10U

Write protected by the Write password.

§ PHAL_SLI_PROTECTION_READ_AND_WRITE_PWD

#define PHAL_SLI_PROTECTION_READ_AND_WRITE_PWD 0x11U

Read protected by the Read password, Write protected by the Write password.

§ PHAL_SLI_PROTECTION_BIT_BLOCK_LOCK

#define PHAL_SLI_PROTECTION_BIT_BLOCK_LOCK 0x01U

Block is locked.

§ PHAL_SLI_PROTECTION_BIT_READ

#define PHAL_SLI_PROTECTION_BIT_READ 0x02U

Block is read protected.

§ PHAL_SLI_PROTECTION_BIT_WRITE

#define PHAL_SLI_PROTECTION_BIT_WRITE 0x04U

Block is write protected.

§ PHAL_SLI_PROTECTION_BIT_PROT_LOCK

#define PHAL_SLI_PROTECTION_BIT_PROT_LOCK 0x08U

Page protection is locked.

Function Documentation

§ phalSli_GetRandomNumber()

phStatus_t phalSli_GetRandomNumber | ( | void * | pDataParams,
 |  | uint8_t * | pRnd
 | ) |  |

This command generates a random number from the label IC.

The received random number shall be used to diversify the password for the phalSli_SetPWD command.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[out] | pRnd | Random number; 16 bits.

§ phalSli_SetPWD()

phStatus_t phalSli_SetPWD | ( | void * | pDataParams,
 |  | uint8_t | bPwdIdentifier,
 |  | uint8_t * | pXorPwd
 | ) |  |

This command transmits different passwords to the label to get access to protected functionalities.

This command has to be executed just once for the related passwords if the label is powered. The different passwords are addressed with the Password Identifier.

[XOR password calculation example]
pXorPwd[0] = pPassword[0] ^ pRnd[0];
pXorPwd[1] = pPassword[1] ^ pRnd[1];
pXorPwd[2] = pPassword[2] ^ pRnd[0];
pXorPwd[3] = pPassword[3] ^ pRnd[1];

Remark: This command can only be executed in addressed or selected mode except of Privay Password.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bPwdIdentifier | Password Identifier; Refer to the PHAL_SLI_PWD_* definitions.
[in] | pXorPwd | XOR Password; 32 bits.

§ phalSli_WritePWD()

phStatus_t phalSli_WritePWD | ( | void * | pDataParams,
 |  | uint8_t | bPwdIdentifier,
 |  | uint8_t * | pPwd
 | ) |  |

With this command, a new password is written into the related memory.

Note that the old password has to be transmitted before with phalSli_SetPWD. The new password takes effect immediately which means that the new password has to be transmitted with phalSli_SetPWD to get access to protected blocks/pages. Remark: This command can only be executed in addressed or selected mode.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bPwdIdentifier | Password Identifier; Refer to the PHAL_SLI_PWD_* definitions.
[in] | pPwd | Plain Password; 32 bits.

§ phalSli_LockPWD()

phStatus_t phalSli_LockPWD | ( | void * | pDataParams,
 |  | uint8_t | bPwdIdentifier
 | ) |  |

This command locks the addressed password.

Note that the addressed password has to be transmitted before with phalSli_SetPWD. A locked password can not be changed any longer.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bPwdIdentifier | Password Identifier; Refer to the PHAL_SLI_PWD_* definitions.

§ phalSli_64BitPWDProtection()

phStatus_t phalSli_64BitPWDProtection ( void * pDataParams )

This instructs the label that both of the Read and Write passwords are required for protected access.

Note that both the Read and Write passwords have to be transmitted before with phalSli_SetPWD.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phalSli_ProtectPage()

phStatus_t phalSli_ProtectPage | ( | void * | pDataParams,
 |  | uint8_t | bPageNo,
 |  | uint8_t | bProtectionStatus
 | ) |  |

This command changes the protection status of a page.

Note that the related passwords have to be transmitted before with phalSli_SetPWD if the page is not public.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bPageNo | Page number.
[in] | bProtectionStatus | New protection status; Refer to the PHAL_SLI_PROTECTION_* definitions.

§ phalSli_LockPageProtectionCondition()

phStatus_t phalSli_LockPageProtectionCondition | ( | void * | pDataParams,
 |  | uint8_t | bPageNo
 | ) |  |

This command permanenty locks the protection status of a page.

Note that the related passwords have to be transmitted before with phalSli_SetPWD if the page is not public.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bPageNo | Page number.

§ phalSli_GetMultipleBlockProtStatus()

phStatus_t phalSli_GetMultipleBlockProtStatus | ( | void * | pDataParams,
 |  | uint8_t | bBlockNo,
 |  | uint16_t | wNumBlocks,
 |  | uint8_t * | pProtectionStates,
 |  | uint8_t * | pNumReceivedStates
 | ) |  |

This instructs the label to return the block protection status of the requested blocks.

Remark: If bBlockNo + bNumBlocks exceeds the total available number of user blocks, the number of received status bytes is less than the requested number. This means that the last returned status byte corresponds to the highest available user block.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bBlockNo | First Block number.
[in] | wNumBlocks | Number of blocks.
[out] | pProtectionStates | Protection states of requested blocks. Refer to the PHAL_SLI_PROTECTION_BIT_* definitions.
[out] | pNumReceivedStates | Number of received block protection states.

§ phalSli_Destroy()

phStatus_t phalSli_Destroy ( void * pDataParams )

This command permanently destroys the label.

The Destroy password has to be transmitted before with phalSli_SetPWD. Remark: This command is irreversible and the label will never respond to any command again. Remark: This command can only be executed in addressed or selected mode.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phalSli_EnablePrivacy()

phStatus_t phalSli_EnablePrivacy ( void * pDataParams )

This command instructs the label to enter privacy mode.

In privacy mode, the label will only respond to phalSli_GetRandomNumber and phalSli_SetPWD commands. To get out of the privacy mode, the Privacy password has to be transmitted before with phalSli_SetPWD.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phalSli_ReadSignature()

phStatus_t phalSli_ReadSignature | ( | void * | pDataParams,
 |  | uint8_t * | pSignature
 | ) |  |

The command returns an IC specific, 32-byte ECC signature, to verify NXP Semiconductors as the silicon vendor.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[out] | pSignature | Signature; 256 bits.

§ phalSli_SetEAS()

phStatus_t phalSli_SetEAS ( void * pDataParams )

This command enables the EAS mode if the EAS mode is not locked.

If the EAS mode is password protected the EAS password has to be transmitted before with phalSli_SetPWD.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phalSli_ResetEAS()

phStatus_t phalSli_ResetEAS ( void * pDataParams )

This command disables the EAS mode if the EAS mode is not locked.

If the EAS mode is password protected the EAS password has to be transmitted before with phalSli_SetPWD.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phalSli_LockEAS()

phStatus_t phalSli_LockEAS ( void * pDataParams )

This command locks the current state of the EAS mode and the EAS ID.

If the EAS mode is password protected the EAS password has to be transmitted before with phalSli_SetPWD.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phalSli_EASAlarm()

phStatus_t phalSli_EASAlarm | ( | void * | pDataParams,
 |  | uint8_t | bOption,
 |  | uint8_t * | pEasIdValue,
 |  | uint8_t | bEasIdMaskLength,
 |  | uint8_t * | pEas
 | ) |  |

This command returns the EAS sequence if the EAS mode is enabled.

  • bOption disabled: bEasIdMaskLength and pEasIdValue are not transmitted, EAS Sequence is returned;
  • bOption enabled and bEasIdMaskLength = 0: EAS ID is returned;
  • bOption enabled and bEasIdMaskLength > 0: EAS Sequence is returned by ICs with matching pEasIdValue;

If the EAS mode is disabled, the label remains silent.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bOption | Option flag; PHAL_SLI_OPTION_OFF: disable; PHAL_SLI_OPTION_ON: enable.
[in] | pEasIdValue | EAS ID; 0, 8 or 16 bits; optional.
[in] | bEasIdMaskLength | 8 bits; optional.
[out] | pEas | EAS ID (16 bits) or EAS Sequence (256 bits).

§ phalSli_PwdProtectEAS()

phStatus_t phalSli_PwdProtectEAS ( void * pDataParams )

This command enables the password protection for EAS.

The EAS password has to be transmitted before with phalSli_SetPWD.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phalSli_WriteEAS_ID()

phStatus_t phalSli_WriteEAS_ID | ( | void * | pDataParams,
 |  | uint8_t * | pEasIdValue
 | ) |  |

With this command, a new EAS identifier is stored in the corresponding configuration memory.

If the EAS mode is password protected the EAS password has to be transmitted before with phalSli_SetPWD.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pEasIdValue | EAS ID; 16 bits.

§ phalSli_ReadEPC()

phStatus_t phalSli_ReadEPC | ( | void * | pDataParams,
 |  | uint8_t * | pEpc
 | ) |  |

On this command, the label will respond with it's EPC data.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[out] | pEpc | EPC data; 96 bits.

§ phalSli_GetNxpSystemInfo()

phStatus_t phalSli_GetNxpSystemInfo | ( | void * | pDataParams,
 |  | uint8_t * | pProtectionPointer,
 |  | uint8_t * | pProtectionCondition,
 |  | uint8_t * | pLockBits,
 |  | uint8_t * | pFeatureFlags
 | ) |  |

The command provides information about IC access conditions and supported features.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[out] | pProtectionPointer | Protection pointer address; 8 bits.
[out] | pProtectionCondition | Protection conditions for the password protection; 8 bits.
[out] | pLockBits | Lock bits settings; 8 bits.
[out] | pFeatureFlags | Supported commands and features; 32 bits (+) additional 32 bits if EXT flag is set.

§ phalSli_GetRandomNumberSetPWD()

phStatus_t phalSli_GetRandomNumberSetPWD | ( | void * | pDataParams,
 |  | uint8_t | bPwdIdentifier,
 |  | uint8_t * | pPwd
 | ) |  |

Get random number and set password using this random number and provided password.

This command combines together phalSli_GetRandomNumber and phalSli_SetPWD commands.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bPwdIdentifier | Password Identifier; Refer to the PHAL_SLI_PWD_* definitions.
[in] | pPwd | Password; 32 bits.


NXP NFC Reader Library: Component : Software

Data Structures | Macros | Functions
Component : Software
Application Layer » ICode SLI
Collaboration diagram for Component : Software:

Data Structures

struct phalSli_Sw_DataParams_t
Private parameter structure. More...

Macros

#define PHAL_SLI_SW_ID 0x01
ID for Software ICode SLI layer. More...

Functions

phStatus_t phalSli_Sw_Init (phalSli_Sw_DataParams_t *pDataParams, uint16_t wSizeOfDataParams, void *pPalSli15693DataParams)
Initialise this layer. More...

Detailed Description

Macro Definition Documentation

§ PHAL_SLI_SW_ID

#define PHAL_SLI_SW_ID 0x01

ID for Software ICode SLI layer.

Function Documentation

§ phalSli_Sw_Init()

phStatus_t phalSli_Sw_Init | ( | phalSli_Sw_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams,
 |  | void * | pPalSli15693DataParams
 | ) |  |

Initialise this layer.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wSizeOfDataParams | Specifies the size of the data parameter structure.
[in] | pPalSli15693DataParams | Pointer to palSli15693 parameter structure.


NXP NFC Reader Library: phalSli_Sw_DataParams_t Struct Reference

Data Fields
phalSli_Sw_DataParams_t Struct Reference
Application Layer » ICode SLI » Component : Software

Private parameter structure. More...

Data Fields

uint16_t wId
Layer ID for this component, NEVER MODIFY!
void * pPalSli15693DataParams
Pointer to palSli15693 parameter structure. More...

Detailed Description

Private parameter structure.

Field Documentation

§ pPalSli15693DataParams

void* phalSli_Sw_DataParams_t::pPalSli15693DataParams

Pointer to palSli15693 parameter structure.

The documentation for this struct was generated from the following file:
  • phalSli.h


NXP NFC Reader Library: ISO/IEC 18000-3 Mode3

Modules | Functions
ISO/IEC 18000-3 Mode3
Application Layer

These Components implement the ICODE ILT support. More...

Collaboration diagram for ISO/IEC 18000-3 Mode3:

Modules

Component : Software

Functions

phStatus_t | phalI18000p3m3_Ack (void *pDataParams, uint8_t **ppRxBuffer, uint16_t *pRxBitLength)
Acknowledge a single tag. More...
phStatus_t | phalI18000p3m3_ReqRn (void *pDataParams, uint8_t bOption, uint8_t **ppRxBuffer)
Instruct a tag to loadmodulate a new RN16 or Handle. More...
phStatus_t | phalI18000p3m3_Read (void *pDataParams, uint8_t bMemBank, uint8_t *pWordPtr, uint8_t bWordPtrLength, uint8_t bWordCount, uint8_t **ppRxBuffer, uint16_t *pRxBitLength)
Read part or all of a tag Reserved, UII, TID, or User memory. More...
phStatus_t | phalI18000p3m3_Write (void *pDataParams, uint8_t bOption, uint8_t bMemBank, uint8_t *pWordPtr, uint8_t bWordPtrLength, uint8_t *pData)
Write a word in a tag Reserved, UII, TID, or User memory. More...
phStatus_t | phalI18000p3m3_Kill (void *pDataParams, uint8_t bOption, uint8_t *pPassword, uint8_t bRecom)
Render a tag killed or recommissioned as appropriate. More...
phStatus_t | phalI18000p3m3_Lock (void *pDataParams, uint8_t *pMask, uint8_t *pAction)
Lock or Permalock individual passwords and memory banks. More...
phStatus_t | phalI18000p3m3_Access (void *pDataParams, uint8_t bOption, uint8_t *pPassword)
Cause a tag with a non-zero-valued access password to transition from the open to the secured state. More...
phStatus_t | phalI18000p3m3_BlockWrite (void *pDataParams, uint8_t bMemBank, uint8_t *pWordPtr, uint8_t bWordPtrLength, uint8_t bWordCount, uint8_t *pData)
Write multiple words in a tag Reserved, UII, TID, or User memory. More...
phStatus_t | phalI18000p3m3_BlockErase (void *pDataParams, uint8_t bMemBank, uint8_t *pWordPtr, uint8_t bWordPtrLength, uint8_t bWordCount)
Erase multiple words in a tag Reserved, UII, TID, or User memory. More...
phStatus_t | phalI18000p3m3_BlockPermaLock (void *pDataParams, uint8_t bRFU, uint8_t bReadLock, uint8_t bMemBank, uint8_t *pBlockPtr, uint8_t bBlockPtrLength, uint8_t bBlockRange, uint8_t *pMask, uint8_t **ppRxBuffer, uint16_t *pRxBitLength)
Erase multiple words in a tag Reserved, UII, TID, or User memory. More...
phStatus_t | phalI18000p3m3_SetHandle (void *pDataParams, uint8_t *pHandle)
Set the Handle into the internal data structure. More...

ReqRn Options

#define | PHAL_I18000P3M3_REQRN_USE_CRC 0x00U
Use StoredCrc for ReqRn command. More...
#define | PHAL_I18000P3M3_REQRN_USE_HANDLE 0x01U
Use given Handle for ReqRn command. More...

Access Command Options

#define | PHAL_I18000P3M3_AC_NO_COVER_CODING 0x00U
Use cover coding to diversify passwords. More...
#define | PHAL_I18000P3M3_AC_USE_COVER_CODING 0x01U
Do not use cover coding, send plain passwords. More...

Memory Banks

#define | PHAL_I18000P3M3_MEMBANK_RESERVED 0x00U /** < Reserved Memory Bank. */
#define | PHAL_I18000P3M3_MEMBANK_UII 0x01U /** < UII Memory Bank. */
#define | PHAL_I18000P3M3_MEMBANK_TID 0x02U /** < TID Memory Bank. */
#define | PHAL_I18000P3M3_MEMBANK_USER 0x03U /** < User Memory Bank. */

Detailed Description

These Components implement the ICODE ILT support.

Macro Definition Documentation

§ PHAL_I18000P3M3_REQRN_USE_CRC

#define PHAL_I18000P3M3_REQRN_USE_CRC 0x00U

Use StoredCrc for ReqRn command.

Deprecated option. Not to be used anymore.

§ PHAL_I18000P3M3_REQRN_USE_HANDLE

#define PHAL_I18000P3M3_REQRN_USE_HANDLE 0x01U

Use given Handle for ReqRn command.

§ PHAL_I18000P3M3_AC_NO_COVER_CODING

#define PHAL_I18000P3M3_AC_NO_COVER_CODING 0x00U

Use cover coding to diversify passwords.

§ PHAL_I18000P3M3_AC_USE_COVER_CODING

#define PHAL_I18000P3M3_AC_USE_COVER_CODING 0x01U

Do not use cover coding, send plain passwords.

Function Documentation

§ phalI18000p3m3_Ack()

phStatus_t phalI18000p3m3_Ack | ( | void * | pDataParams,
 |  | uint8_t ** | ppRxBuffer,
 |  | uint16_t * | pRxBitLength
 | ) |  |

Acknowledge a single tag.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[out] | ppRxBuffer | Pointer to Tag data and, if required, PacketCRC.
[out] | pRxBitLength | Tag response length in bits.

§ phalI18000p3m3_ReqRn()

phStatus_t phalI18000p3m3_ReqRn | ( | void * | pDataParams,
 |  | uint8_t | bOption,
 |  | uint8_t ** | ppRxBuffer
 | ) |  |

Instruct a tag to loadmodulate a new RN16 or Handle.

bOption is :

  • PHAL_I18000P3M3_REQRN_USE_HANDLE Other option is deprecated.
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bOption | Option parameter.
[out] | ppRxBuffer | New RN16 or handle.

§ phalI18000p3m3_Read()

phStatus_t phalI18000p3m3_Read | ( | void * | pDataParams,
 |  | uint8_t | bMemBank,
 |  | uint8_t * | pWordPtr,
 |  | uint8_t | bWordPtrLength,
 |  | uint8_t | bWordCount,
 |  | uint8_t ** | ppRxBuffer,
 |  | uint16_t * | pRxBitLength
 | ) |  |

Read part or all of a tag Reserved, UII, TID, or User memory.

bWordPtrLength depends on the TAG memory size. For TAGs with 8 bits memory, bWordPtrLength should be always '0'. If we make 'bWordPtrLength' =1 (16bits) or higher for 8 bits memory TAGs then this function returns MEMORY_OVERRUN error. This is an expected behaviour.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bMemBank | Memory bank where the read shall be performed.
[in] | pWordPtr | Starting read address.
[in] | bWordPtrLength | Length of the pointer in bytes; 0 -> 1byte,1->2bytes,2->3bytes or 3->4bytes.
[in] | bWordCount | Number of bytes to read.
[out] | ppRxBuffer | Header and requested memory words.
[out] | pRxBitLength | Number of received bits.

§ phalI18000p3m3_Write()

phStatus_t phalI18000p3m3_Write | ( | void * | pDataParams,
 |  | uint8_t | bOption,
 |  | uint8_t | bMemBank,
 |  | uint8_t * | pWordPtr,
 |  | uint8_t | bWordPtrLength,
 |  | uint8_t * | pData
 | ) |  |

Write a word in a tag Reserved, UII, TID, or User memory.

bWordPtrLength depends on the TAG memory size. For TAGs with 8 bits memory, bWordPtrLength should be always '0'. If we make 'bWordPtrLength' =1 (16bits) or higher for 8 bits memory TAGs then this function returns MEMORY_OVERRUN error. This is an expected behaviour.

bOption can be one of:

  • PHAL_I18000P3M3_AC_NO_COVER_CODING
  • PHAL_I18000P3M3_AC_USE_COVER_CODING
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bOption | Option parameter.
[in] | bMemBank | Memory bank where the write shall be performed.
[in] | pWordPtr | Starting write address.
[in] | bWordPtrLength | [In] Length of the pointer in bytes; 0 -> 1byte,1->2bytes,2->3bytes or 3->4bytes.
[in] | pData | Word to write; uint8_t[2].

§ phalI18000p3m3_Kill()

phStatus_t phalI18000p3m3_Kill | ( | void * | pDataParams,
 |  | uint8_t | bOption,
 |  | uint8_t * | pPassword,
 |  | uint8_t | bRecom
 | ) |  |

Render a tag killed or recommissioned as appropriate.

bOption can be one of:

  • PHAL_I18000P3M3_AC_NO_COVER_CODING
  • PHAL_I18000P3M3_AC_USE_COVER_CODING
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bOption | Option parameter.
[in] | pPassword | Full kill password; uint8_t[4]
[in] | bRecom | Recommissioning bits.

§ phalI18000p3m3_Lock()

phStatus_t phalI18000p3m3_Lock | ( | void * | pDataParams,
 |  | uint8_t * | pMask,
 |  | uint8_t * | pAction
 | ) |  |

Lock or Permalock individual passwords and memory banks.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pMask | 10bit Action Field Mask; uint8_t[2].
[in] | pAction | 10bit Action Field; uint8_t[2].

§ phalI18000p3m3_Access()

phStatus_t phalI18000p3m3_Access | ( | void * | pDataParams,
 |  | uint8_t | bOption,
 |  | uint8_t * | pPassword
 | ) |  |

Cause a tag with a non-zero-valued access password to transition from the open to the secured state.

bOption can be one of:

  • PHAL_I18000P3M3_AC_NO_COVER_CODING
  • PHAL_I18000P3M3_AC_USE_COVER_CODING
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bOption | Option parameter.
[in] | pPassword | Full access password; uint8_t[4]

§ phalI18000p3m3_BlockWrite()

phStatus_t phalI18000p3m3_BlockWrite | ( | void * | pDataParams,
 |  | uint8_t | bMemBank,
 |  | uint8_t * | pWordPtr,
 |  | uint8_t | bWordPtrLength,
 |  | uint8_t | bWordCount,
 |  | uint8_t * | pData
 | ) |  |

Write multiple words in a tag Reserved, UII, TID, or User memory.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bMemBank | Memory bank where the write shall be performed.
[in] | pWordPtr | Starting write adress.
[in] | bWordPtrLength | Length of the pointer in bytes; 1,2,3 or 4.
[in] | bWordCount | Number of blocks to write.
[in] | pData | Words to write; uint8_t[2 * bWordCount].

§ phalI18000p3m3_BlockErase()

phStatus_t phalI18000p3m3_BlockErase | ( | void * | pDataParams,
 |  | uint8_t | bMemBank,
 |  | uint8_t * | pWordPtr,
 |  | uint8_t | bWordPtrLength,
 |  | uint8_t | bWordCount
 | ) |  |

Erase multiple words in a tag Reserved, UII, TID, or User memory.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bMemBank | Memory bank where the erase shall be performed.
[in] | pWordPtr | Starting erase adress.
[in] | bWordPtrLength | Length of the pointer in bytes; 1,2,3 or 4.
[in] | bWordCount | Number of blocks to erase.

§ phalI18000p3m3_BlockPermaLock()

phStatus_t phalI18000p3m3_BlockPermaLock | ( | void * | pDataParams,
 |  | uint8_t | bRFU,
 |  | uint8_t | bReadLock,
 |  | uint8_t | bMemBank,
 |  | uint8_t * | pBlockPtr,
 |  | uint8_t | bBlockPtrLength,
 |  | uint8_t | bBlockRange,
 |  | uint8_t * | pMask,
 |  | uint8_t ** | ppRxBuffer,
 |  | uint16_t * | pRxBitLength
 | ) |  |

Erase multiple words in a tag Reserved, UII, TID, or User memory.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bRFU | RFU, shall be set to 0.
[in] | bReadLock | Whether the permalock states shall be retrieved (0) or the blocks shall be permalocked (1).
[in] | bMemBank | Memory bank where the erase shall be performed.
[in] | pBlockPtr | Starting erase adress.
[in] | bBlockPtrLength | Length of the pointer in bytes; 1,2,3 or 4.
[in] | bBlockRange | Mask range, specified in units of 16 blocks.
[in] | pMask | Specifies which memory blocks a tag permalocks; uint8_t[2 * bBlockRange] Ignored if bReadLock is 0
[out] | ppRxBuffer | Header and Permalock bits if bReadLock is 0 or NULL otherwise.
[out] | pRxBitLength | Number of received bits if bReadLock is 0.

§ phalI18000p3m3_SetHandle()

phStatus_t phalI18000p3m3_SetHandle | ( | void * | pDataParams,
 |  | uint8_t * | pHandle
 | ) |  |

Set the Handle into the internal data structure.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pHandle | Handle to the Card.


NXP NFC Reader Library: Component : Software

Data Structures | Macros | Functions
Component : Software
Application Layer » ISO/IEC 18000-3 Mode3
Collaboration diagram for Component : Software:

Data Structures

struct phalI18000p3m3_Sw_DataParams_t
Software PAL-I18000P3M3 parameter structure. More...

Macros

#define PHAL_I18000P3M3_SW_ID 0x01
ID for Software I18000P3M3 layer. More...

Functions

phStatus_t phalI18000p3m3_Sw_Init (phalI18000p3m3_Sw_DataParams_t *pDataParams, uint16_t wSizeOfDataParams, void *pPalI18000p3m3DataParams)
Initialise this layer. More...

Detailed Description

Macro Definition Documentation

§ PHAL_I18000P3M3_SW_ID

#define PHAL_I18000P3M3_SW_ID 0x01

ID for Software I18000P3M3 layer.

Function Documentation

§ phalI18000p3m3_Sw_Init()

phStatus_t phalI18000p3m3_Sw_Init | ( | phalI18000p3m3_Sw_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams,
 |  | void * | pPalI18000p3m3DataParams
 | ) |  |

Initialise this layer.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wSizeOfDataParams | Specifies the size of the data parameter structure.
[in] | pPalI18000p3m3DataParams | Pointer to the parameter structure of the underlying PAL layer.


NXP NFC Reader Library: phalI18000p3m3_Sw_DataParams_t Struct Reference

Data Fields
phalI18000p3m3_Sw_DataParams_t Struct Reference
Application Layer » ISO/IEC 18000-3 Mode3 » Component : Software

Software PAL-I18000P3M3 parameter structure. More...

Data Fields

uint16_t wId
Layer ID for this component, NEVER MODIFY!
void * | pPalI18000p3m3DataParams
Pointer to the parameter structure of the underlying PAL layer. More...
uint8_t | abHandle [2]
Handle retrieved by ReqRn. More...
uint8_t bHandleValid
Whether Handle is valid or not. More...

Detailed Description

Software PAL-I18000P3M3 parameter structure.

Field Documentation

§ pPalI18000p3m3DataParams

void* phalI18000p3m3_Sw_DataParams_t::pPalI18000p3m3DataParams

Pointer to the parameter structure of the underlying PAL layer.

§ abHandle

uint8_t phalI18000p3m3_Sw_DataParams_t::abHandle[2]

Handle retrieved by ReqRn.

§ bHandleValid

uint8_t phalI18000p3m3_Sw_DataParams_t::bHandleValid

Whether Handle is valid or not.

The documentation for this struct was generated from the following file:
  • phalI18000p3m3.h


NXP NFC Reader Library: Tag Operation Layer

Modules | Macros | Functions
Tag Operation Layer
Application Layer

This Component implements tag operations for different NFC Tag types T1T, T2T, T3T,T4T and T5T. More...

Collaboration diagram for Tag Operation Layer:

Modules

Component : Software

Macros

#define | PHAL_TOP_T1T_TAG_MEMORY_TYPE_STATIC 0x00U
Static memory type.
#define | PHAL_TOP_T1T_TAG_MEMORY_TYPE_DYNAMIC 0x01U
Dynamic memory type.
#define | PHAL_TOP_T2T_TAG_MEMORY_TYPE_STATIC 0x00U
Static memory type.
#define | PHAL_TOP_T2T_TAG_MEMORY_TYPE_DYNAMIC 0x01U
Dynamic memory type.

Functions

phStatus_t | phalTop_FormatNdef (void *pDataParams)
Format a new non-NDEF tag as NDEF tag. More...
phStatus_t | phalTop_ReadNdef (void *pDataParams, uint8_t *pData, uint16_t *pLength)
Read NDEF message from Tag. More...
phStatus_t | phalTop_WriteNdef (void *pDataParams, uint8_t *pData, uint16_t wLength)
Write NDEF message into Tag. More...
phStatus_t | phalTop_CheckNdef (void *pDataParams, uint8_t *pTagState)
Does the NDEF detection procedure as per NFC Tag Operation specifications for each tag type. More...
phStatus_t | phalTop_Reset (void *pDataParams)
Reset Tag Operation parameters. More...
phStatus_t | phalTop_EraseNdef (void *pDataParams)
Erase a valid NDEF message with an empty NDEF. More...
phStatus_t | phalTop_SetConfig (void *pDataParams, uint16_t wConfig, uint16_t wValue)
Set configuration parameter. More...
phStatus_t | phalTop_GetConfig (void *pDataParams, uint16_t wConfig, uint16_t *pValue)
Get configuration parameter. More...

Tag types

Tag types are used to set Tag used using phalTop_SetConfig with PHAL_TOP_CONFIG_TAG_TYPE Type

#define | PHAL_TOP_TAG_TYPE_T1T_TAG 0x01U
Type 1 Tag. More...
#define | PHAL_TOP_TAG_TYPE_T2T_TAG 0x02U
Type 2 Tag. More...
#define | PHAL_TOP_TAG_TYPE_T3T_TAG 0x03U
Type 3 Tag. More...
#define | PHAL_TOP_TAG_TYPE_T4T_TAG 0x04U
Type 4 Tag. More...
#define | PHAL_TOP_TAG_TYPE_T5T_TAG 0x05U
Type 5 Tag. More...

Configuration types

Use these Macro in phalTop_SetConfig to configure Tags.

#define | PHAL_TOP_CONFIG_TAG_TYPE 0x51U
Set/Get Tag type. More...
#define | PHAL_TOP_CONFIG_TAG_STATE 0x52U
Get tag state. More...
#define | PHAL_TOP_CONFIG_NDEF_LENGTH 0x53U
Get current NDEF message Length. More...
#define | PHAL_TOP_CONFIG_MAX_NDEF_LENGTH 0x54U
Get Max support NDEF Length by tag. More...
#define | PHAL_TOP_CONFIG_NDEF_VERSION 0x55U
Get NDEF Version Number. More...
#define | PHAL_TOP_CONFIG_T1T_TMS 0x03U
Set tag memory size. More...
#define | PHAL_TOP_CONFIG_T1T_TERMINATOR_TLV 0x05U
Set Terminator TLV presence. More...
#define | PHAL_TOP_CONFIG_T2T_TMS 0x09U
Set tag memory size. More...
#define | PHAL_TOP_CONFIG_T4T_NDEF_FILE_ID 0x15U
Set NDEF file ID. More...
#define | PHAL_TOP_CONFIG_T4T_NDEF_FILE_SIZE 0x18U
Set Max NDEF length. More...
#define | PHAL_TOP_CONFIG_T4T_MLE 0x19U
Set MLe. More...
#define | PHAL_TOP_CONFIG_T4T_MLC 0x1AU
Set MLc. More...
#define | PHAL_TOP_CONFIG_T5T_MLEN 0x1DU
Set T5T NDEF data area. More...
#define | PHAL_TOP_CONFIG_T5T_MBREAD 0x20U
Set T5T multiple block read support. More...
#define | PHAL_TOP_CONFIG_T5T_LOCKBLOCK 0x21U
Set T5T Lock block command support. More...
#define | PHAL_TOP_CONFIG_T5T_SPL_FRM 0x22U
Set T5T special frame support. More...
#define | PHAL_TOP_CONFIG_T5T_OPTION_FLAG 0x26U
Set T5T option Flag. More...
#define | PHAL_TOP_CONFIG_T5T_TERMINATOR_TLV 0x1FU
Set Terminator TLV presence. More...

Tag States

#define | PHAL_TOP_STATE_NONE 0x00U
Default initial state. More...
#define | PHAL_TOP_STATE_INITIALIZED 0x01U
Initialized state. More...
#define | PHAL_TOP_STATE_READONLY 0x02U
Read Only state. More...
#define | PHAL_TOP_STATE_READWRITE 0x04U
Read/Write state. More...

Detailed Description

This Component implements tag operations for different NFC Tag types T1T, T2T, T3T,T4T and T5T.

To perform any operation like Read, Write, Lock, format and erase operation on the tag. The Tag should be activated first as shown in the below block diagram. Any Read/Write operation is possible on the Tag only if the tag is NDEF format. Refer NFC Forum Tag operation Specifications.

Macro Definition Documentation

§ PHAL_TOP_TAG_TYPE_T1T_TAG

#define PHAL_TOP_TAG_TYPE_T1T_TAG 0x01U

Type 1 Tag.

§ PHAL_TOP_TAG_TYPE_T2T_TAG

#define PHAL_TOP_TAG_TYPE_T2T_TAG 0x02U

Type 2 Tag.

§ PHAL_TOP_TAG_TYPE_T3T_TAG

#define PHAL_TOP_TAG_TYPE_T3T_TAG 0x03U

Type 3 Tag.

§ PHAL_TOP_TAG_TYPE_T4T_TAG

#define PHAL_TOP_TAG_TYPE_T4T_TAG 0x04U

Type 4 Tag.

§ PHAL_TOP_TAG_TYPE_T5T_TAG

#define PHAL_TOP_TAG_TYPE_T5T_TAG 0x05U

Type 5 Tag.

§ PHAL_TOP_CONFIG_TAG_TYPE

#define PHAL_TOP_CONFIG_TAG_TYPE 0x51U

Set/Get Tag type.

Should be configured before calling CheckNdef.

§ PHAL_TOP_CONFIG_TAG_STATE

#define PHAL_TOP_CONFIG_TAG_STATE 0x52U

Get tag state.

This shall be also used to set tag to read-only state.

§ PHAL_TOP_CONFIG_NDEF_LENGTH

#define PHAL_TOP_CONFIG_NDEF_LENGTH 0x53U

Get current NDEF message Length.

§ PHAL_TOP_CONFIG_MAX_NDEF_LENGTH

#define PHAL_TOP_CONFIG_MAX_NDEF_LENGTH 0x54U

Get Max support NDEF Length by tag.

§ PHAL_TOP_CONFIG_NDEF_VERSION

#define PHAL_TOP_CONFIG_NDEF_VERSION 0x55U

Get NDEF Version Number.

§ PHAL_TOP_CONFIG_T1T_TMS

#define PHAL_TOP_CONFIG_T1T_TMS 0x03U

Set tag memory size.

Set before format operation.

§ PHAL_TOP_CONFIG_T1T_TERMINATOR_TLV

#define PHAL_TOP_CONFIG_T1T_TERMINATOR_TLV 0x05U

Set Terminator TLV presence.

Set before format/write operation to enable writing terminator TLV at end of NDEF TLV.

§ PHAL_TOP_CONFIG_T2T_TMS

#define PHAL_TOP_CONFIG_T2T_TMS 0x09U

Set tag memory size.

Set before format operation.

§ PHAL_TOP_CONFIG_T4T_NDEF_FILE_ID

#define PHAL_TOP_CONFIG_T4T_NDEF_FILE_ID 0x15U

Set NDEF file ID.

Set before format operation.

§ PHAL_TOP_CONFIG_T4T_NDEF_FILE_SIZE

#define PHAL_TOP_CONFIG_T4T_NDEF_FILE_SIZE 0x18U

Set Max NDEF length.

Set before format operation.

§ PHAL_TOP_CONFIG_T4T_MLE

#define PHAL_TOP_CONFIG_T4T_MLE 0x19U

Set MLe.

Set before format operation.

§ PHAL_TOP_CONFIG_T4T_MLC

#define PHAL_TOP_CONFIG_T4T_MLC 0x1AU

Set MLc.

Set before format operation.

§ PHAL_TOP_CONFIG_T5T_MLEN

#define PHAL_TOP_CONFIG_T5T_MLEN 0x1DU

Set T5T NDEF data area.

Set before format operation.

§ PHAL_TOP_CONFIG_T5T_MBREAD

#define PHAL_TOP_CONFIG_T5T_MBREAD 0x20U

Set T5T multiple block read support.

Set before format operation.

§ PHAL_TOP_CONFIG_T5T_LOCKBLOCK

#define PHAL_TOP_CONFIG_T5T_LOCKBLOCK 0x21U

Set T5T Lock block command support.

Set before format operation.

§ PHAL_TOP_CONFIG_T5T_SPL_FRM

#define PHAL_TOP_CONFIG_T5T_SPL_FRM 0x22U

Set T5T special frame support.

Set before format operation.

§ PHAL_TOP_CONFIG_T5T_OPTION_FLAG

#define PHAL_TOP_CONFIG_T5T_OPTION_FLAG 0x26U

Set T5T option Flag.

Set before format operation.

§ PHAL_TOP_CONFIG_T5T_TERMINATOR_TLV

#define PHAL_TOP_CONFIG_T5T_TERMINATOR_TLV 0x1FU

Set Terminator TLV presence.

Set before format/write operation to enable writing terminator TLV at end of NDEF TLV.

§ PHAL_TOP_STATE_NONE

#define PHAL_TOP_STATE_NONE 0x00U

Default initial state.

§ PHAL_TOP_STATE_INITIALIZED

#define PHAL_TOP_STATE_INITIALIZED 0x01U

Initialized state.

§ PHAL_TOP_STATE_READONLY

#define PHAL_TOP_STATE_READONLY 0x02U

Read Only state.

§ PHAL_TOP_STATE_READWRITE

#define PHAL_TOP_STATE_READWRITE 0x04U

Read/Write state.

Function Documentation

§ phalTop_FormatNdef()

phStatus_t phalTop_FormatNdef ( void * pDataParams )

Format a new non-NDEF tag as NDEF tag.

FormatNdef shall be used for formatting a non-NDEF tag as NDEF tag if needed when CheckNdef returns error. Before formatting, tag parameters like max. NDEF size etc., shall be specified by the application. If not specified tag will be formatted with default values. FormatNdef shall be called only once for a tag. Once formatted, tag will become a NDEF tag. To remove NDEF format if needed, application needs to over write / delete NDEF format using tag specific read/write commands.

This is only a utility function not specified by NFC Forum. Please note that for T4T, this will attempt to use MIFARE DESFire proprietary commands to format the tag. If T4T is not MIFARE DESFire tag then format will not succeed.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PHAL_TOP_ERR_UNSUPPORTED_TAG | Tag does not support NDEF formatting.
PHAL_TOP_ERR_FORMATTED_TAG | Tag is already NDEF formatted.
Other | Depending on implementation and underlying component.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phalTop_ReadNdef()

phStatus_t phalTop_ReadNdef | ( | void * | pDataParams,
 |  | uint8_t * | pData,
 |  | uint16_t * | pLength
 | ) |  |

Read NDEF message from Tag.

ReadNdef shall only be called after CheckNdef returned success. If it is an empty NDEF message(i.e. initialized state) then this will return empty NDEF error.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PHAL_TOP_ERR_INVALID_STATE | Tag is not is any valid state (i.e. when check NDEF failed or has not been called before.)
PHAL_TOP_ERR_EMPTY_NDEF | Tag is in initialized state (i.e. no NDEF / empty NDEF)
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[out] | pData | NDEF data from the Tag. User has to allocate memory accordingly
[out] | pLength | NDEF data length.

§ phalTop_WriteNdef()

phStatus_t phalTop_WriteNdef | ( | void * | pDataParams,
 |  | uint8_t * | pData,
 |  | uint16_t | wLength
 | ) |  |

Write NDEF message into Tag.

WriteNdef shall be used to write a new NDEF message to tag if check NDEF returned success. If tag is in read only state, write NDEF will return error. The tag is expected to be a formatted NDEF tag for this to succeed.

WriteNDEF will update the NDEF message TLV or the capability container with the length of the data written to the tag.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | wLength is 0 or wLength is more than supported max length.
PHAL_TOP_ERR_INVALID_STATE | Tag is not is any valid state (i.e. when check NDEF failed).
PHAL_TOP_ERR_READONLY_TAG | Tag is in read only state.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pData | NDEF data to be written to tag. User has to allocate memory accordingly
[in] | wLength | Length of NDEF data to be written.

§ phalTop_CheckNdef()

phStatus_t phalTop_CheckNdef | ( | void * | pDataParams,
 |  | uint8_t * | pTagState
 | ) |  |

Does the NDEF detection procedure as per NFC Tag Operation specifications for each tag type.

The caller has to ensure that Tag activation is done before calling this API. Also phalTop_SetConfig should be called before to configure the Tag type PHAL_TOP_CONFIG_TAG_TYPE. Only after phalTop_CheckNdef is called any other NDEF operation on Tag can be performed.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PHAL_TOP_ERR_NON_NDEF_TAG | Tag don�t indicate NDEF presence
PHAL_TOP_ERR_UNSUPPORTED_VERSION | Tag indicates NDEF presence but NDEF version mentioned in tag is not supported by reader library.
PHAL_TOP_ERR_MISCONFIGURED_TAG | Tag indicates NDEF presence but the NDEF CC or NDEF attribute information is wrongly configured
PHAL_TOP_ERR_UNSUPPORTED_TAG | Tag uses some proprietary or RFU or unsupported configuration
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[out] | pTagState | State of tag

§ phalTop_Reset()

phStatus_t phalTop_Reset ( void * pDataParams )

Reset Tag Operation parameters.

User has to call phalTop_Reset to reset all the Software parameters. This shall be called after performing all NDEF operations if needed.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phalTop_EraseNdef()

phStatus_t phalTop_EraseNdef ( void * pDataParams )

Erase a valid NDEF message with an empty NDEF.

EraseNdef shall be used to erase a valid NDEF message by writing an empty NDEF (i.e. NDEF length as 0) to tag. This will change the tag from read/write state to initialized state. If tag is already in initialized state this API will return error.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PHAL_TOP_ERR_INVALID_STATE | Tag is not is any valid state (i.e. when check NDEF failed)
PHAL_TOP_ERR_READONLY_TAG | Tag is in read only state.
PHAL_TOP_ERR_EMPTY_NDEF | Tag is in initialized state (i.e. no NDEF / empty NDEF)
Other | Depending on implementation and underlying component.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phalTop_SetConfig()

phStatus_t phalTop_SetConfig | ( | void * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t | wValue
 | ) |  |

Set configuration parameter.

Refer to PHAL_TOP_CONFIG_TAG_TYPE from where the configurable parameters are listed.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | Parameter value is invalid.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wConfig | Configuration Identifier.
[in] | wValue | Configuration Value.

§ phalTop_GetConfig()

phStatus_t phalTop_GetConfig | ( | void * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t * | pValue
 | ) |  |

Get configuration parameter.

After calling phalTop_CheckNdef, phalTop_WriteNdef, phalTop_ReadNdef or phalTop_EraseNdef, user can call phalTop_GetConfig to get different parameters.

Refer to PHAL_TOP_CONFIG_TAG_TYPE from where the configurable parameters are listed.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | Parameter value is invalid.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wConfig | Configuration Identifier.
[out] | pValue | Configuration Value.


NXP NFC Reader Library: Component : Software

Data Structures | Macros | Typedefs | Functions
Component : Software
Application Layer » Tag Operation Layer
Collaboration diagram for Component : Software:

Data Structures

struct | phalTop_T1T_LockCtrlTlv
T1T Lock Control TLV parameter structure. More...
struct | phalTop_T1T_MemCtrlTlv
T1T Memory Control TLV parameter structure. More...
struct | phalTop_T1T_ProprietaryTlv
T1T Proprietary TLV parameter structure. More...
struct | phalTop_TIT_Segment
T1T Segment parameters. More...
struct | phalTop_T2T_LockCtrlTlv
T2T Lock Control TLV parameter structure. More...
struct | phalTop_T2T_MemCtrlTlv
T2T Memory Control TLV parameter structure. More...
struct | phalTop_T2T_Sector
T2T Sector parameters. More...
struct | phalTop_T1T
T1T parameter structure. More...
struct | phalTop_T2T
T2T parameter structure. More...
struct | phalTop_T3T
T3T parameter structure. More...
struct | phalTop_T4T
T4T parameter structure. More...
struct | phalTop_T5T
T5T parameter structure. More...
struct | phalTop_Sw_DataParams
Tag Operations parameter structure. More...

Macros

#define | PHAL_TOP_SW_ID 0x01U
ID for Software Tag Operation layer.
#define | PHAL_TOP_MAX_TAGTYPE_SUPPORTED 0x05U
Maximum number of Tag Types Supported.
#define | PHAL_TOP_T1T_MAX_MEM_CTRL_TLV 0x01U
Max Memory control TLV count for T1T.
#define | PHAL_TOP_T1T_MAX_LOCK_CTRL_TLV 0x01U
Max Lock control TLV count for T1T.
#define | PHAL_TOP_T2T_MAX_MEM_CTRL_TLV 0x01U
Max Memory control TLV count for T2T.
#define | PHAL_TOP_T2T_MAX_LOCK_CTRL_TLV 0x01U
Max Lock control TLV count for T2T.
#define | PHAL_TOP_T3T_READ_MAX_BLOCKS 0x0FU
Max number of blocks supported in one read command. More...
#define | PHAL_TOP_T3T_WRITE_MAX_BLOCKS 0x0FU
Max number of blocks supported in one write command. More...
#define | PHAL_TOP_T1T_NDEF_SUPPORTED_VNO 0x10U
Version Number for T1T.
#define | PHAL_TOP_T2T_NDEF_SUPPORTED_VNO 0x10U
Version Number for T2T.
#define | PHAL_TOP_T3T_NDEF_SUPPORTED_VNO 0x11U
Version Number for T3T.
#define | PHAL_TOP_T4T_NDEF_SUPPORTED_VNO 0x20U
Version Number for T4T.
#define | PHAL_TOP_T5T_NDEF_SUPPORTED_VNO 0x04U
Version Number for T5T.

Typedefs

typedef struct phalTop_T1T_LockCtrlTlv | phalTop_T1T_LockCtrlTlv_t
T1T Lock Control TLV parameter structure.
typedef struct phalTop_T1T_MemCtrlTlv | phalTop_T1T_MemCtrlTlv_t
T1T Memory Control TLV parameter structure.
typedef struct phalTop_T1T_ProprietaryTlv | phalTop_T1T_ProprietaryTlv_t
T1T Proprietary TLV parameter structure.
typedef struct phalTop_TIT_Segment | phalTop_TIT_Segment_t
T1T Segment parameters.
typedef struct phalTop_T2T_LockCtrlTlv | phalTop_T2T_LockCtrlTlv_t
T2T Lock Control TLV parameter structure.
typedef struct phalTop_T2T_MemCtrlTlv | phalTop_T2T_MemCtrlTlv_t
T2T Memory Control TLV parameter structure.
typedef struct phalTop_T2T_Sector | phalTop_T2T_Sector_t
T2T Sector parameters.
typedef struct phalTop_T1T | phalTop_T1T_t
T1T parameter structure.
typedef struct phalTop_T2T | phalTop_T2T_t
T2T parameter structure.
typedef struct phalTop_T3T | phalTop_T3T_t
T3T parameter structure.
typedef struct phalTop_T4T | phalTop_T4T_t
T4T parameter structure.
typedef struct phalTop_T5T | phalTop_T5T_t
T5T parameter structure.
typedef struct phalTop_Sw_DataParams | phalTop_Sw_DataParams_t
Tag Operations parameter structure.

Functions

phStatus_t phalTop_Sw_Init (phalTop_Sw_DataParams_t *pDataParams, uint16_t wSizeOfDataParams, void *pAlT1T, void *pAlMful, void *pAlFelica, void *pAlMfdf, void *pAl15693)
Initialize this layer. More...

phalTop Custom Error Codes

#define | PHAL_TOP_ERR_READONLY_TAG (PH_ERR_CUSTOM_BEGIN + 0x01)
Tag is Read Only.
#define | PHAL_TOP_ERR_INVALID_STATE (PH_ERR_CUSTOM_BEGIN + 0x02)
Tag state is invalid.
#define | PHAL_TOP_ERR_FORMATTED_TAG (PH_ERR_CUSTOM_BEGIN + 0x03)
Tag already in NDEF formatted state. More...
#define | PHAL_TOP_ERR_UNSUPPORTED_VERSION (PH_ERR_CUSTOM_BEGIN + 0x04)
Unsupported NDEF version. More...
#define | PHAL_TOP_ERR_MISCONFIGURED_TAG (PH_ERR_CUSTOM_BEGIN + 0x05)
Tag not configured as per NDEF specification. More...
#define | PHAL_TOP_ERR_UNSUPPORTED_TAG (PH_ERR_CUSTOM_BEGIN + 0x06)
Tag with unsupported structure/format. More...
#define | PHAL_TOP_ERR_EMPTY_NDEF (PH_ERR_CUSTOM_BEGIN + 0x07)
NDEF message length is zero (i.e. More...
#define | PHAL_TOP_ERR_NON_NDEF_TAG (PH_ERR_CUSTOM_BEGIN + 0x08)
Tag is not NDEF formatted. More...

Detailed Description

Macro Definition Documentation

§ PHAL_TOP_T3T_READ_MAX_BLOCKS

#define PHAL_TOP_T3T_READ_MAX_BLOCKS 0x0FU

Max number of blocks supported in one read command.

§ PHAL_TOP_T3T_WRITE_MAX_BLOCKS

#define PHAL_TOP_T3T_WRITE_MAX_BLOCKS 0x0FU

Max number of blocks supported in one write command.

§ PHAL_TOP_ERR_FORMATTED_TAG

#define PHAL_TOP_ERR_FORMATTED_TAG (PH_ERR_CUSTOM_BEGIN + 0x03)

Tag already in NDEF formatted state.

§ PHAL_TOP_ERR_UNSUPPORTED_VERSION

#define PHAL_TOP_ERR_UNSUPPORTED_VERSION (PH_ERR_CUSTOM_BEGIN + 0x04)

Unsupported NDEF version.

§ PHAL_TOP_ERR_MISCONFIGURED_TAG

#define PHAL_TOP_ERR_MISCONFIGURED_TAG (PH_ERR_CUSTOM_BEGIN + 0x05)

Tag not configured as per NDEF specification.

§ PHAL_TOP_ERR_UNSUPPORTED_TAG

#define PHAL_TOP_ERR_UNSUPPORTED_TAG (PH_ERR_CUSTOM_BEGIN + 0x06)

Tag with unsupported structure/format.

§ PHAL_TOP_ERR_EMPTY_NDEF

#define PHAL_TOP_ERR_EMPTY_NDEF (PH_ERR_CUSTOM_BEGIN + 0x07)

NDEF message length is zero (i.e.

Tag in initialized state).

§ PHAL_TOP_ERR_NON_NDEF_TAG

#define PHAL_TOP_ERR_NON_NDEF_TAG (PH_ERR_CUSTOM_BEGIN + 0x08)

Tag is not NDEF formatted.

Function Documentation

§ phalTop_Sw_Init()

phStatus_t phalTop_Sw_Init | ( | phalTop_Sw_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams,
 |  | void * | pAlT1T,
 |  | void * | pAlMful,
 |  | void * | pAlFelica,
 |  | void * | pAlMfdf,
 |  | void * | pAl15693
 | ) |  |

Initialize this layer.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on error type
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wSizeOfDataParams | Specifies the size of the data parameter structure.
pAlT1T | Pointer to T1T data parameters
pAlMful | Pointer to T2T data parameters
pAlFelica | Pointer to Felica data parameters
pAlMfdf | Pointer to T4T data parameters
pAl15693 | Pointer to T5T data parameters


NXP NFC Reader Library: phalTop_T1T_LockCtrlTlv Struct Reference

Data Fields
phalTop_T1T_LockCtrlTlv Struct Reference
Application Layer » Tag Operation Layer » Component : Software

T1T Lock Control TLV parameter structure. More...

Data Fields

uint16_t wOffset
TLV offset.
uint16_t wByteAddr
Lock bytes start address/offset.
uint8_t bSizeInBits
Lock bytes size in bits.
uint8_t bBytesPerPage
Number of Bytes per page.
uint8_t bBytesLockedPerBit
Number of bytes locked per lock bit.

Detailed Description

T1T Lock Control TLV parameter structure.

The documentation for this struct was generated from the following file:
  • phalTop.h


NXP NFC Reader Library: phalTop_T1T_MemCtrlTlv Struct Reference

Data Fields
phalTop_T1T_MemCtrlTlv Struct Reference
Application Layer » Tag Operation Layer » Component : Software

T1T Memory Control TLV parameter structure. More...

Data Fields

uint16_t wOffset
TLV offset.
uint16_t wByteAddr
Reserved memory start address/offset.
uint8_t bSizeInBytes
Reserved memory size in bytes.
uint8_t bBytesPerPage
Number of Bytes per page.

Detailed Description

T1T Memory Control TLV parameter structure.

The documentation for this struct was generated from the following file:
  • phalTop.h


NXP NFC Reader Library: phalTop_T1T_ProprietaryTlv Struct Reference

Data Fields
phalTop_T1T_ProprietaryTlv Struct Reference
Application Layer » Tag Operation Layer » Component : Software

T1T Proprietary TLV parameter structure. More...

Data Fields

uint16_t wOffset
TLV address/offset.
uint16_t wLength
TLV Length.

Detailed Description

T1T Proprietary TLV parameter structure.

The documentation for this struct was generated from the following file:
  • phalTop.h


NXP NFC Reader Library: phalTop_TIT_Segment Struct Reference

Data Fields
phalTop_TIT_Segment Struct Reference
Application Layer » Tag Operation Layer » Component : Software

T1T Segment parameters. More...

Data Fields

uint8_t bAddress
Current active segment address.
uint8_t * pData
Segment data (points to HAL RX buffer)
uint8_t bLockReservedOtp [16]
Lock/reserved/OTP bytes in current segment.

Detailed Description

T1T Segment parameters.

The documentation for this struct was generated from the following file:
  • phalTop.h


NXP NFC Reader Library: phalTop_T2T_LockCtrlTlv Struct Reference

Data Fields
phalTop_T2T_LockCtrlTlv Struct Reference
Application Layer » Tag Operation Layer » Component : Software

T2T Lock Control TLV parameter structure. More...

Data Fields

uint16_t wOffset
TLV offset.
uint16_t wByteAddr
Lock bytes start address/offset.
uint8_t bSizeInBits
Lock bytes size in bits.
uint8_t bBytesPerPage
Number of Bytes per page.
uint8_t bBytesLockedPerBit
Number of bytes locked per lock bit.

Detailed Description

T2T Lock Control TLV parameter structure.

The documentation for this struct was generated from the following file:
  • phalTop.h


NXP NFC Reader Library: phalTop_T2T_MemCtrlTlv Struct Reference

Data Fields
phalTop_T2T_MemCtrlTlv Struct Reference
Application Layer » Tag Operation Layer » Component : Software

T2T Memory Control TLV parameter structure. More...

Data Fields

uint16_t wOffset
TLV offset.
uint16_t wByteAddr
Reserved memory start address/offset.
uint8_t bSizeInBytes
Reserved memory size in bytes.
uint8_t bBytesPerPage
Number of Bytes per page.

Detailed Description

T2T Memory Control TLV parameter structure.

The documentation for this struct was generated from the following file:
  • phalTop.h


NXP NFC Reader Library: phalTop_T2T_Sector Struct Reference

Data Fields
phalTop_T2T_Sector Struct Reference
Application Layer » Tag Operation Layer » Component : Software

T2T Sector parameters. More...

Data Fields

uint8_t bAddress
Current active Sector address.
uint8_t bBlockAddress
Current active block address.
uint8_t bLockReservedOtp [32]
Lock/reserved/OTP bytes in current Sector.
uint8_t bValidity
Read data validity.

Detailed Description

T2T Sector parameters.

The documentation for this struct was generated from the following file:
  • phalTop.h


NXP NFC Reader Library: phalTop_T1T Struct Reference

Data Fields
phalTop_T1T Struct Reference
Application Layer » Tag Operation Layer » Component : Software

T1T parameter structure. More...

Data Fields

void * | pAlT1TDataParams
Pointer to T1T data parameters.
uint8_t bRwa
Tag read/write size.
uint8_t bTms
Tag Memory size.
uint8_t bTagMemoryType
Tag memory type (static or dynamic)
uint8_t bTerminatorTlvPresence
Terminator TLV presence; 1 -present, 0 - not present.
uint8_t bLockTlvCount
Number of lock TLV present in tag.
uint8_t bMemoryTlvCount
Number of memory TLV present in tag.
uint16_t wNdefHeaderAddr
Header offset of first NDEF message.
uint16_t wNdefMsgAddr
NDEF message start address.
uint8_t | bUid [4]
T1T UID.
phalTop_T1T_MemCtrlTlv_t asMemCtrlTlv [PHAL_TOP_T1T_MAX_MEM_CTRL_TLV]
Memory TLV details for each TLV present.
phalTop_T1T_LockCtrlTlv_t asLockCtrlTlv [PHAL_TOP_T1T_MAX_LOCK_CTRL_TLV]
Lock TLV details for each TLV present.
phalTop_TIT_Segment_t sSegment
Current segment details.

Detailed Description

T1T parameter structure.

The documentation for this struct was generated from the following file:
  • phalTop.h


NXP NFC Reader Library: phalTop_T2T Struct Reference

Data Fields
phalTop_T2T Struct Reference
Application Layer » Tag Operation Layer » Component : Software

T2T parameter structure. More...

Data Fields

void * pAlT2TDataParams
Pointer to T2T data parameters.
uint8_t bRwa
Tag read/write size.
uint8_t bTms
Tag Memory size.
uint8_t bTagMemoryType
Tag memory type (static or dynamic)
uint8_t bLockTlvCount
Number of lock TLV present in tag.
uint8_t bMemoryTlvCount
Number of memory TLV present in tag.
uint16_t wNdefHeaderAddr
Header offset of first NDEF message.
uint16_t wNdefMsgAddr
NDEF message start address.
phalTop_T2T_MemCtrlTlv_t asMemCtrlTlv [PHAL_TOP_T2T_MAX_MEM_CTRL_TLV]
Memory TLV details for each TLV present.
phalTop_T2T_LockCtrlTlv_t asLockCtrlTlv [PHAL_TOP_T2T_MAX_LOCK_CTRL_TLV]
Lock TLV details for each TLV present.
phalTop_T2T_Sector_t sSector
Current segment details.

Detailed Description

T2T parameter structure.

The documentation for this struct was generated from the following file:
  • phalTop.h


NXP NFC Reader Library: phalTop_T3T Struct Reference

Data Fields
phalTop_T3T Struct Reference
Application Layer » Tag Operation Layer » Component : Software

T3T parameter structure. More...

Data Fields

void * | pAlT3TDataParams
Pointer to Felica data parameters.
uint8_t bRwa
Tag read/write access; 1 - Read/Write, 0 - Read Only.
uint8_t bNbr
Number of Blocks that can be read at one time.
uint8_t bNbw
Number of Blocks that can be written at one time.
uint16_t bNmaxb
Maximum number of 'Blocks * 16' available for NDEF data.
uint8_t | bUid [16]
UID to address T3T.
uint8_t | bAttributeBlock [16]
Contains the attribute block of the Ndef Type 3 tag.

Detailed Description

T3T parameter structure.

The documentation for this struct was generated from the following file:
  • phalTop.h


NXP NFC Reader Library: phalTop_T4T Struct Reference

Data Fields
phalTop_T4T Struct Reference
Application Layer » Tag Operation Layer » Component : Software

T4T parameter structure. More...

Data Fields

void * | pAlT4TDataParams
Pointer to T4T data parameters.
uint8_t | aNdefFileID [2]
NDEF File ID to Create.
uint8_t bRa
NDEF file read access condition size.
uint8_t bWa
NDEF file write access condition size.
uint8_t bCurrentSelectedFile
Current selected file.
uint16_t wMLe
MLe supported by card (obtained from CC)
uint16_t wMLc
MLc supported by card (obtained from CC)
uint16_t wCCLEN
Size of CCr,Valid CCLEN range 000Fh-FFFEh. More...
uint16_t wMaxFileSize
Maximum NDEF file size in bytes.

Detailed Description

T4T parameter structure.

Field Documentation

§ wCCLEN

uint16_t phalTop_T4T::wCCLEN

Size of CCr,Valid CCLEN range 000Fh-FFFEh.

The documentation for this struct was generated from the following file:
  • phalTop.h


NXP NFC Reader Library: phalTop_T5T Struct Reference

Data Fields
phalTop_T5T Struct Reference
Application Layer » Tag Operation Layer » Component : Software

T5T parameter structure. More...

Data Fields

void * pAlI15693DataParams
Pointer to T5T data parameters.
uint8_t bRwa
Tag read/write size.
uint8_t bTerminatorTlvPresence
Terminator TLV presence; 1 -present, 0 - not present.
uint8_t bMbRead
Flag Bit for Multiple Read support.
uint8_t bLockBlock
Flag Bit for Lock Command support.
uint8_t bSplFrm
Flag Bit for special frame support.
uint8_t bExtendedCommandSupport
Flag Bit for Extended Command Support support.
uint8_t bOptionFlag
Option Flag PH_ON = Enable, PH_OFF = Disable.
uint16_t wMlen
Tag Memory size.
uint16_t wNdefHeaderAddr
Header offset of first NDEF message.
uint16_t wNdefMsgAddr
NDEF message start address.
uint16_t bBlockSize
T5T Block Size supported by card.
uint16_t bMaxBlockNum
Maximum Block number supported by Card.

Detailed Description

T5T parameter structure.

The documentation for this struct was generated from the following file:
  • phalTop.h


NXP NFC Reader Library: phalTop_Sw_DataParams Struct Reference

Data Fields
phalTop_Sw_DataParams Struct Reference
Application Layer » Tag Operation Layer » Component : Software

Tag Operations parameter structure. More...

Data Fields

uint16_t wId
Layer ID for this component, NEVER MODIFY!
uint8_t bTagType
Tag type.
uint8_t bVno
NDEF version number.
uint8_t bTagState
Tag state.
uint16_t wNdefLength
NDEF message length.
uint16_t wMaxNdefLength
Maximum supported NDEF length.
void * pTopTagsDataParams [PHAL_TOP_MAX_TAGTYPE_SUPPORTED]
Array of void pointer for Tag Types structure.
phalTop_T1T_t salTop_T1T
T1T Parameter Structure.
phalTop_T2T_t salTop_T2T
T2T Parameter Structure.
phalTop_T3T_t salTop_T3T
T3T Parameter Structure.
phalTop_T4T_t salTop_T4T
T4T Parameter Structure.
phalTop_T5T_t salTop_T5T
T5T Parameter Structure.

Detailed Description

Tag Operations parameter structure.

The documentation for this struct was generated from the following file:
  • phalTop.h


NXP NFC Reader Library: Common

Modules
Common

Common Components without dependencies. More...

Collaboration diagram for Common:

Modules

Cid Manager
Eases Multiple-Card-Management by providing and locking CIDs.
KeyStore
This is only a wrapper layer to abstract the different KeyStore implementations.
CryptoSym
This is only a wrapper layer to abstract the different CryptoSym implementations.
CryptoRng
This is only a wrapper layer to abstract the different crypto random number generator implementations.
Tools
This component implements tools that are necessary for many different software modules.
PhLog
Operating System Abstraction Layer
This component implements the OSAL APIs used by the Nxp Reader Library.
Platform Component
These Components implement the Platform abstraction layer.

Detailed Description

Common Components without dependencies.


NXP NFC Reader Library: Cid Manager

Modules | Macros | Functions
Cid Manager
Common

Eases Multiple-Card-Management by providing and locking CIDs. More...

Collaboration diagram for Cid Manager:

Modules

Component : Software
Software implementation.

Macros

#define PH_CIDMANAGER_LAST_CID 14
The last managable CID. More...

Functions

phStatus_t | phCidManager_GetFreeCid (void *pDataParams, uint8_t *pCid)
Retrieve the lowest free Card Identifier. More...
phStatus_t | phCidManager_FreeCid (void *pDataParams, uint8_t bCid)
Free an occupied Cid. More...

Detailed Description

Eases Multiple-Card-Management by providing and locking CIDs.

Macro Definition Documentation

§ PH_CIDMANAGER_LAST_CID

#define PH_CIDMANAGER_LAST_CID 14

The last managable CID.

Function Documentation

§ phCidManager_GetFreeCid()

phStatus_t phCidManager_GetFreeCid | ( | void * | pDataParams,
 |  | uint8_t * | pCid
 | ) |  |

Retrieve the lowest free Card Identifier.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_USE_CONDITION | No free Cid available.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[out] | pCid | Card Identifier

§ phCidManager_FreeCid()

phStatus_t phCidManager_FreeCid | ( | void * | pDataParams,
 |  | uint8_t | bCid
 | ) |  |

Free an occupied Cid.

Note: This should be called after discarding a card.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | Invalid or unoccupied Cid supplied.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bCid | Card Identifier


NXP NFC Reader Library: Component : Software

Data Structures | Macros | Functions
Component : Software
Common » Cid Manager

Software implementation. More...

Collaboration diagram for Component : Software:

Data Structures

struct phCidManager_Sw_DataParams_t
Cid Manager parameter structure. More...

Macros

#define PH_CIDMANAGER_SW_ID 0x01U
ID for Software component. More...

Functions

phStatus_t phCidManager_Sw_Init (phCidManager_Sw_DataParams_t *pDataParams, uint16_t wSizeOfDataParams)
Initialise this layer. More...

Detailed Description

Software implementation.

Macro Definition Documentation

§ PH_CIDMANAGER_SW_ID

#define PH_CIDMANAGER_SW_ID 0x01U

ID for Software component.

Function Documentation

§ phCidManager_Sw_Init()

phStatus_t phCidManager_Sw_Init | ( | phCidManager_Sw_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams
 | ) |  |

Initialise this layer.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wSizeOfDataParams | Specifies the size of the data parameter structure.


NXP NFC Reader Library: phCidManager_Sw_DataParams_t Struct Reference

Data Fields
phCidManager_Sw_DataParams_t Struct Reference
Common » Cid Manager » Component : Software

Cid Manager parameter structure. More...

Data Fields

uint16_t wId
Layer ID for this component, NEVER MODIFY!
uint8_t bCidList [PH_CIDMANAGER_LAST_CID]
Contains a list of Cids, where a value of /c 0 means free and a value of /c 1 means occupied. More...

Detailed Description

Cid Manager parameter structure.

Field Documentation

§ bCidList

uint8_t phCidManager_Sw_DataParams_t::bCidList[PH_CIDMANAGER_LAST_CID]

Contains a list of Cids, where a value of /c 0 means free and a value of /c 1 means occupied.

The documentation for this struct was generated from the following file:
  • phCidManager.h


NXP NFC Reader Library: KeyStore

Modules | Macros | Functions
KeyStore
Common

This is only a wrapper layer to abstract the different KeyStore implementations. More...

Collaboration diagram for KeyStore:

Modules

Component : Software
Keystore implementation in Software.
PhKeyStore_Rc663

Macros

#define | PH_KEYSTORE_INVALID_ID 0xFFFFU
ID used for various parameters as a invalid default.
#define | PH_KEYSTORE_DEFAULT_ID 0x0000
ID used for various parameters as a default.

Functions

phStatus_t | phKeyStore_FormatKeyEntry (void *pDataParams, uint16_t wKeyNo, uint16_t wNewKeyType)
Format a key entry to a new KeyType. More...
phStatus_t | phKeyStore_SetKey (void *pDataParams, uint16_t wKeyNo, uint16_t wKeyVersion, uint16_t wKeyType, uint8_t *pNewKey, uint16_t wNewKeyVersion)
Change a key entry at a given version. More...
phStatus_t | phKeyStore_SetKeyAtPos (void *pDataParams, uint16_t wKeyNo, uint16_t wPos, uint16_t wKeyType, uint8_t *pNewKey, uint16_t wNewKeyVersion)
Change a key entry at the specified position. More...
phStatus_t | phKeyStore_SetKUC (void *pDataParams, uint16_t wKeyNo, uint16_t wRefNoKUC)
Change the KUC of a key entry. More...
phStatus_t | phKeyStore_SetFullKeyEntry (void *pDataParams, uint16_t wNoOfKeys, uint16_t wKeyNo, uint16_t wNewRefNoKUC, uint16_t wNewKeyType, uint8_t *pNewKeys, uint16_t *pNewKeyVersionList)
Change a full key entry. More...
phStatus_t | phKeyStore_GetKeyEntry (void *pDataParams, uint16_t wKeyNo, uint16_t wKeyVersionBufSize, uint16_t *wKeyVersion, uint16_t *wKeyVersionLength, uint16_t *pKeyType)
Get a key entry information block. More...
phStatus_t | phKeyStore_GetKey (void *pDataParams, uint16_t wKeyNo, uint16_t wKeyVersion, uint8_t bKeyBufSize, uint8_t *pKey, uint16_t *pKeyType)
Get a key. More...
phStatus_t | phKeyStore_SetConfig (void *pDataParams, uint16_t wConfig, uint16_t wValue)
Set configuration parameter. More...
phStatus_t | phKeyStore_SetConfigStr (void *pDataParams, uint16_t wConfig, uint8_t *pBuffer, uint16_t wBufferLength)
Set configuration parameter. More...
phStatus_t | phKeyStore_GetConfig (void *pDataParams, uint16_t wConfig, uint16_t *pValue)
Get configuration parameter. More...
phStatus_t | phKeyStore_GetConfigStr (void *pDataParams, uint16_t wConfig, uint8_t **ppBuffer, uint16_t *pBufferLength)
Get configuration parameter. More...
phStatus_t | phKeyStore_ChangeKUC (void *pDataParams, uint16_t wRefNoKUC, uint32_t dwLimit)
Change a key usage counter entry. More...
phStatus_t | phKeyStore_GetKUC (void *pDataParams, uint16_t wRefNoKUC, uint32_t *pdwLimit, uint32_t *pdwCurVal)
Obtain a key usage counter entry. More...

Key Types

#define | PH_KEYSTORE_KEY_TYPE_AES128 0x00U
AES 128 Key [16]. More...
#define | PH_KEYSTORE_KEY_TYPE_AES192 0x01U
AES 192 Key [24]. More...
#define | PH_KEYSTORE_KEY_TYPE_AES256 0x02U
AES 256 Key [32]. More...
#define | PH_KEYSTORE_KEY_TYPE_DES 0x03U
DES Single Key. More...
#define | PH_KEYSTORE_KEY_TYPE_2K3DES 0x04U
2 Key Triple Des. More...
#define | PH_KEYSTORE_KEY_TYPE_3K3DES 0x05U
3 Key Triple Des. More...
#define | PH_KEYSTORE_KEY_TYPE_MIFARE 0x06U
MIFARE (R) Key. More...
#define | PH_KEYSTORE_KEY_TYPE_MIFARE_SIZE 0x0CU
Size of an MIFARE Key. More...
#define | PH_KEYSTORE_KEY_TYPE_AES128_SIZE 0x10U
Size of an AES128 Key. More...

KeyStoreConfigs

#define PH_KEYSTORE_CONFIG_SET_DEFAULT 0xFFFFU
Reset all bit of SET param. More...

Detailed Description

This is only a wrapper layer to abstract the different KeyStore implementations.

Macro Definition Documentation

§ PH_KEYSTORE_KEY_TYPE_AES128

#define PH_KEYSTORE_KEY_TYPE_AES128 0x00U

AES 128 Key [16].

§ PH_KEYSTORE_KEY_TYPE_AES192

#define PH_KEYSTORE_KEY_TYPE_AES192 0x01U

AES 192 Key [24].

§ PH_KEYSTORE_KEY_TYPE_AES256

#define PH_KEYSTORE_KEY_TYPE_AES256 0x02U

AES 256 Key [32].

§ PH_KEYSTORE_KEY_TYPE_DES

#define PH_KEYSTORE_KEY_TYPE_DES 0x03U

DES Single Key.

§ PH_KEYSTORE_KEY_TYPE_2K3DES

#define PH_KEYSTORE_KEY_TYPE_2K3DES 0x04U

2 Key Triple Des.

§ PH_KEYSTORE_KEY_TYPE_3K3DES

#define PH_KEYSTORE_KEY_TYPE_3K3DES 0x05U

3 Key Triple Des.

§ PH_KEYSTORE_KEY_TYPE_MIFARE

#define PH_KEYSTORE_KEY_TYPE_MIFARE 0x06U

MIFARE (R) Key.

§ PH_KEYSTORE_KEY_TYPE_MIFARE_SIZE

#define PH_KEYSTORE_KEY_TYPE_MIFARE_SIZE 0x0CU

Size of an MIFARE Key.

§ PH_KEYSTORE_KEY_TYPE_AES128_SIZE

#define PH_KEYSTORE_KEY_TYPE_AES128_SIZE 0x10U

Size of an AES128 Key.

§ PH_KEYSTORE_CONFIG_SET_DEFAULT

#define PH_KEYSTORE_CONFIG_SET_DEFAULT 0xFFFFU

Reset all bit of SET param.

Function Documentation

§ phKeyStore_FormatKeyEntry()

phStatus_t phKeyStore_FormatKeyEntry | ( | void * | pDataParams,
 |  | uint16_t | wKeyNo,
 |  | uint16_t | wNewKeyType
 | ) |  |

Format a key entry to a new KeyType.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wKeyNo | KeyEntry number to be Formatted.
[in] | wNewKeyType | New Key type of the KeyEntry (predefined type of KeyType).

§ phKeyStore_SetKey()

phStatus_t phKeyStore_SetKey | ( | void * | pDataParams,
 |  | uint16_t | wKeyNo,
 |  | uint16_t | wKeyVersion,
 |  | uint16_t | wKeyType,
 |  | uint8_t * | pNewKey,
 |  | uint16_t | wNewKeyVersion
 | ) |  |

Change a key entry at a given version.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wKeyNo | Key number of the key to be loaded.
[in] | wKeyVersion | Key version of the key to be loaded.
[in] | wKeyType | Key type of the key to be loaded.
[in] | pNewKey | Pointer to the key itself.
[in] | wNewKeyVersion | New Key version of the key to be updated.

§ phKeyStore_SetKeyAtPos()

phStatus_t phKeyStore_SetKeyAtPos | ( | void * | pDataParams,
 |  | uint16_t | wKeyNo,
 |  | uint16_t | wPos,
 |  | uint16_t | wKeyType,
 |  | uint8_t * | pNewKey,
 |  | uint16_t | wNewKeyVersion
 | ) |  |

Change a key entry at the specified position.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wKeyNo | Key number of the key to be loaded.
[in] | wPos | Key position to be updated.
[in] | wKeyType | Key type of the key to be loaded.
[in] | pNewKey | Pointer to the key itself.
[in] | wNewKeyVersion | New Key version of the key to be updated.

§ phKeyStore_SetKUC()

phStatus_t phKeyStore_SetKUC | ( | void * | pDataParams,
 |  | uint16_t | wKeyNo,
 |  | uint16_t | wRefNoKUC
 | ) |  |

Change the KUC of a key entry.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wKeyNo | KeyEntry number.
[in] | wRefNoKUC | Reference Number of the key usage counter used together with that key.

§ phKeyStore_SetFullKeyEntry()

phStatus_t phKeyStore_SetFullKeyEntry | ( | void * | pDataParams,
 |  | uint16_t | wNoOfKeys,
 |  | uint16_t | wKeyNo,
 |  | uint16_t | wNewRefNoKUC,
 |  | uint16_t | wNewKeyType,
 |  | uint8_t * | pNewKeys,
 |  | uint16_t * | pNewKeyVersionList
 | ) |  |

Change a full key entry.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wNoOfKeys | Number of keys in pNewKeys.
[in] | wKeyNo | Key number of the key to be loaded.
[in] | wNewRefNoKUC | Number of the key usage counter used together with that key.
[in] | wNewKeyType | Key type of the key (if the current keyType of KeyEntry is different, error).
[in] | pNewKeys | Array of Keys to load.
[in] | pNewKeyVersionList | KeyVersionList of the key to be loaded .

§ phKeyStore_GetKeyEntry()

phStatus_t phKeyStore_GetKeyEntry | ( | void * | pDataParams,
 |  | uint16_t | wKeyNo,
 |  | uint16_t | wKeyVersionBufSize,
 |  | uint16_t * | wKeyVersion,
 |  | uint16_t * | wKeyVersionLength,
 |  | uint16_t * | pKeyType
 | ) |  |

Get a key entry information block.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wKeyNo | Key number of the key entry of interest.
[in] | wKeyVersionBufSize | Buffer Size of wKeyVersion in Bytes.
[out] | wKeyVersion | Array for version information.
[out] | wKeyVersionLength | Length of valid data in wKeyVersion.
[out] | pKeyType | Type of the key.

§ phKeyStore_GetKey()

phStatus_t phKeyStore_GetKey | ( | void * | pDataParams,
 |  | uint16_t | wKeyNo,
 |  | uint16_t | wKeyVersion,
 |  | uint8_t | bKeyBufSize,
 |  | uint8_t * | pKey,
 |  | uint16_t * | pKeyType
 | ) |  |

Get a key.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wKeyNo | Key number of the key to be retrieved.
[in] | wKeyVersion | Key version of the key to be retrieved.
[in] | bKeyBufSize | Size of the key buffer.
[out] | pKey | Pointer to the key itself.
[out] | pKeyType | Type of the key.

§ phKeyStore_SetConfig()

phStatus_t phKeyStore_SetConfig | ( | void * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t | wValue
 | ) |  |

Set configuration parameter.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wConfig | Configuration Identifier
[in] | wValue | Configuration Value

§ phKeyStore_SetConfigStr()

phStatus_t phKeyStore_SetConfigStr | ( | void * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint8_t * | pBuffer,
 |  | uint16_t | wBufferLength
 | ) |  |

Set configuration parameter.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wConfig | Configuration Identifier.
[in] | pBuffer | Buffer containing the configuration string.
[in] | wBufferLength | Length of configuration string.

§ phKeyStore_GetConfig()

phStatus_t phKeyStore_GetConfig | ( | void * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t * | pValue
 | ) |  |

Get configuration parameter.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wConfig | Configuration Identifier
[out] | pValue | Configuration Value

§ phKeyStore_GetConfigStr()

phStatus_t phKeyStore_GetConfigStr | ( | void * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint8_t ** | ppBuffer,
 |  | uint16_t * | pBufferLength
 | ) |  |

Get configuration parameter.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wConfig | Configuration Identifier
[out] | ppBuffer | Pointer to the buffer containing the configuration string.
[out] | pBufferLength | Amount of valid bytes in the configuration string buffer.

§ phKeyStore_ChangeKUC()

phStatus_t phKeyStore_ChangeKUC | ( | void * | pDataParams,
 |  | uint16_t | wRefNoKUC,
 |  | uint32_t | dwLimit
 | ) |  |

Change a key usage counter entry.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wRefNoKUC | Number of key entry.
[in] | dwLimit | Limit of the Key Usage Counter

§ phKeyStore_GetKUC()

phStatus_t phKeyStore_GetKUC | ( | void * | pDataParams,
 |  | uint16_t | wRefNoKUC,
 |  | uint32_t * | pdwLimit,
 |  | uint32_t * | pdwCurVal
 | ) |  |

Obtain a key usage counter entry.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wRefNoKUC | number of the key usage counter to be looked at (00h to 0Fh)
[out] | pdwLimit | Currently Set Limit in the KUC
[out] | pdwCurVal | Currently set value in the KUC


NXP NFC Reader Library: Component : Software

Data Structures | Macros | Functions
Component : Software
Common » KeyStore

Keystore implementation in Software. More...

Collaboration diagram for Component : Software:

Data Structures

struct | phKeyStore_Sw_KeyVersionPair_t
Sw KeyVersionPair structure. More...
struct | phKeyStore_Sw_KeyEntry_t
Sw KeyEntry structure. More...
struct | phKeyStore_Sw_KUCEntry_t
Sw KeyUsageCounter structure. More...
struct | phKeyStore_Sw_DataParams_t
Sw parameter structure. More...

Macros

#define | PH_KEYSTORE_SW_ID 0x01
ID for Software KeyStore component. More...
#define | PH_KEYSTORE_SW_MAX_KEY_SIZE 32U
Maximum size of a Key. More...

Functions

phStatus_t phKeyStore_Sw_Init (phKeyStore_Sw_DataParams_t *pDataParams, uint16_t wSizeOfDataParams, phKeyStore_Sw_KeyEntry_t *pKeyEntries, uint16_t wNoOfKeyEntries, phKeyStore_Sw_KeyVersionPair_t *pKeyVersionPairs, uint16_t wNoOfVersionPairs, phKeyStore_Sw_KUCEntry_t *pKUCEntries, uint16_t wNoOfKUCEntries)
Initialise this layer. More...

Detailed Description

Keystore implementation in Software.

Macro Definition Documentation

§ PH_KEYSTORE_SW_ID

#define PH_KEYSTORE_SW_ID 0x01

ID for Software KeyStore component.

§ PH_KEYSTORE_SW_MAX_KEY_SIZE

#define PH_KEYSTORE_SW_MAX_KEY_SIZE 32U

Maximum size of a Key.

Function Documentation

§ phKeyStore_Sw_Init()

phStatus_t phKeyStore_Sw_Init | ( | phKeyStore_Sw_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams,
 |  | phKeyStore_Sw_KeyEntry_t * | pKeyEntries,
 |  | uint16_t | wNoOfKeyEntries,
 |  | phKeyStore_Sw_KeyVersionPair_t * | pKeyVersionPairs,
 |  | uint16_t | wNoOfVersionPairs,
 |  | phKeyStore_Sw_KUCEntry_t * | pKUCEntries,
 |  | uint16_t | wNoOfKUCEntries
 | ) |  |

Initialise this layer.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wSizeOfDataParams | Specifies the size of the data parameter structure.
[in] | pKeyEntries | Pointer to a storage containing the key entries.
[in] | wNoOfKeyEntries | size of pKeyEntries.
[in] | pKeyVersionPairs | Pointer to a storage containing the key version pairs.
[in] | wNoOfVersionPairs | amount of key versions available in each key entry.
[in] | pKUCEntries | Key usage counter entry storage, size = sizeof(phKeyStore_Sw_KUCEntry_t) * wNumKUCEntries
[in] | wNoOfKUCEntries | Number of Key usage counter entries.


NXP NFC Reader Library: phKeyStore_Sw_KeyVersionPair_t Struct Reference

Data Fields
phKeyStore_Sw_KeyVersionPair_t Struct Reference
Common » KeyStore » Component : Software

Sw KeyVersionPair structure. More...

Data Fields

uint8_t pKey [PH_KEYSTORE_SW_MAX_KEY_SIZE]
Array containing a Key.
uint16_t wVersion
Versions related to the Key.

Detailed Description

Sw KeyVersionPair structure.

The documentation for this struct was generated from the following file:
  • phKeyStore.h


NXP NFC Reader Library: phKeyStore_Sw_KeyEntry_t Struct Reference

Data Fields
phKeyStore_Sw_KeyEntry_t Struct Reference
Common » KeyStore » Component : Software

Sw KeyEntry structure. More...

Data Fields

uint16_t wKeyType
Type of the keys in pKeys. More...
uint16_t wRefNoKUC
Key usage counter number of the keys in pKeys. More...

Detailed Description

Sw KeyEntry structure.

Field Documentation

§ wKeyType

uint16_t phKeyStore_Sw_KeyEntry_t::wKeyType

Type of the keys in pKeys.

§ wRefNoKUC

uint16_t phKeyStore_Sw_KeyEntry_t::wRefNoKUC

Key usage counter number of the keys in pKeys.

The documentation for this struct was generated from the following file:
  • phKeyStore.h


NXP NFC Reader Library: phKeyStore_Sw_KUCEntry_t Struct Reference

Data Fields
phKeyStore_Sw_KUCEntry_t Struct Reference
Common » KeyStore » Component : Software

Sw KeyUsageCounter structure. More...

Data Fields

uint32_t dwLimit
Limit of the Key Usage Counter. More...
uint32_t dwCurVal
Current Value of the KUC. More...

Detailed Description

Sw KeyUsageCounter structure.

Field Documentation

§ dwLimit

uint32_t phKeyStore_Sw_KUCEntry_t::dwLimit

Limit of the Key Usage Counter.

§ dwCurVal

uint32_t phKeyStore_Sw_KUCEntry_t::dwCurVal

Current Value of the KUC.

The documentation for this struct was generated from the following file:
  • phKeyStore.h


NXP NFC Reader Library: phKeyStore_Sw_DataParams_t Struct Reference

Data Fields
phKeyStore_Sw_DataParams_t Struct Reference
Common » KeyStore » Component : Software

Sw parameter structure. More...

Data Fields

uint16_t wId
Layer ID for this component, NEVER MODIFY!
phKeyStore_Sw_KeyEntry_t * pKeyEntries
Key entry storage, size = sizeof(phKeyStore_Sw_KeyEntry_t) * wNumKeyEntries. More...
phKeyStore_Sw_KeyVersionPair_t * pKeyVersionPairs
Key version pairs, size = sizeof(phKeyStore_Sw_KeyVersionPair_t)* wNumKeyEntries * wNumVersions. More...
uint16_t wNoOfKeyEntries
Number of key entries in that storage. More...
uint16_t wNoOfVersions
Number of versions in each key entry. More...
phKeyStore_Sw_KUCEntry_t * pKUCEntries
Key usage counter entry storage, size = sizeof(phKeyStore_Sw_KUCEntry_t) * wNumKUCEntries. More...
uint16_t wNoOfKUCEntries
Number of Key usage counter entries. More...

Detailed Description

Sw parameter structure.

Field Documentation

§ pKeyEntries

phKeyStore_Sw_KeyEntry_t* phKeyStore_Sw_DataParams_t::pKeyEntries

Key entry storage, size = sizeof(phKeyStore_Sw_KeyEntry_t) * wNumKeyEntries.

§ pKeyVersionPairs

phKeyStore_Sw_KeyVersionPair_t* phKeyStore_Sw_DataParams_t::pKeyVersionPairs

Key version pairs, size = sizeof(phKeyStore_Sw_KeyVersionPair_t)* wNumKeyEntries * wNumVersions.

§ wNoOfKeyEntries

uint16_t phKeyStore_Sw_DataParams_t::wNoOfKeyEntries

Number of key entries in that storage.

§ wNoOfVersions

uint16_t phKeyStore_Sw_DataParams_t::wNoOfVersions

Number of versions in each key entry.

§ pKUCEntries

phKeyStore_Sw_KUCEntry_t* phKeyStore_Sw_DataParams_t::pKUCEntries

Key usage counter entry storage, size = sizeof(phKeyStore_Sw_KUCEntry_t) * wNumKUCEntries.

§ wNoOfKUCEntries

uint16_t phKeyStore_Sw_DataParams_t::wNoOfKUCEntries

Number of Key usage counter entries.

The documentation for this struct was generated from the following file:
  • phKeyStore.h


NXP NFC Reader Library: PhKeyStore_Rc663

PhKeyStore_Rc663
Common » KeyStore
Collaboration diagram for PhKeyStore_Rc663:


NXP NFC Reader Library: CryptoSym

Modules | Functions
CryptoSym
Common

This is only a wrapper layer to abstract the different CryptoSym implementations. More...

Collaboration diagram for CryptoSym:

Modules

Component : Software
Software implementation of the Symmetric Cryptography interface.

Functions

phStatus_t | phCryptoSym_InvalidateKey (void *pDataParams)
Invalidate the currently loaded key. More...
phStatus_t | phCryptoSym_Encrypt (void *pDataParams, uint16_t wOption, const uint8_t *pPlainBuffer, uint16_t wBufferLength, uint8_t *pEncryptedBuffer)
Perform Encryption with one of the supported crypto modes. More...
phStatus_t | phCryptoSym_Decrypt (void *pDataParams, uint16_t wOption, const uint8_t *pEncryptedBuffer, uint16_t wBufferLength, uint8_t *pPlainBuffer)
Perform Decryption with one of the supported crypto modes. More...
phStatus_t | phCryptoSym_CalculateMac (void *pDataParams, uint16_t wOption, const uint8_t *pData, uint16_t wDataLength, uint8_t *pMac, uint8_t *pMacLength)
Calculate MAC with one of the supported MAC modes. More...
phStatus_t | phCryptoSym_LoadIv (void *pDataParams, const uint8_t *pIV, uint8_t bIVLength)
Load IV. More...
phStatus_t | phCryptoSym_LoadKey (void *pDataParams, uint16_t wKeyNo, uint16_t wKeyVersion, uint16_t wKeyType)
Load Key. More...
phStatus_t | phCryptoSym_LoadKeyDirect (void *pDataParams, const uint8_t *pKey, uint16_t wKeyType)
Direct Load Key. More...
phStatus_t | phCryptoSym_SetConfig (void *pDataParams, uint16_t wConfig, uint16_t wValue)
Set configuration parameter. More...
phStatus_t | phCryptoSym_GetConfig (void *pDataParams, uint16_t wConfig, uint16_t *pValue)
Get configuration parameter. More...
phStatus_t | phCryptoSym_DiversifyKey (void *pDataParams, uint16_t wOption, uint16_t wKeyNo, uint16_t wKeyVersion, uint8_t *pDivInput, uint8_t bLenDivInput, uint8_t *pDiversifiedKey)
Diversify Key - Note: This function invalidates the currently loaded key. More...
phStatus_t | phCryptoSym_DiversifyDirectKey (void *pDataParams, uint16_t wOption, uint8_t *pKey, uint16_t wKeyType, uint8_t *pDivInput, uint8_t bLenDivInput, uint8_t *pDiversifiedKey)
Diversify Direct Key - Note: This function invalidates the currently loaded key. More...
phStatus_t | phCryptoSym_ApplyPadding (uint8_t bOption, const uint8_t *pDataIn, uint16_t wDataInLength, uint8_t bBlockSize, uint16_t wDataOutBufSize, uint8_t *pDataOut, uint16_t *pDataOutLength)
Apply Padding to a given data buffer. More...
phStatus_t | phCryptoSym_RemovePadding (uint8_t bOption, const uint8_t *pDataIn, uint16_t wDataInLength, uint8_t bBlockSize, uint16_t wDataOutBufSize, uint8_t *pDataOut, uint16_t *pDataOutLength)
Remove Padding to a given data buffer. More...

CryptoSym Layer Configs

#define | PH_CRYPTOSYM_CONFIG_KEY_TYPE 0x0000U
Key Type. More...
#define | PH_CRYPTOSYM_CONFIG_KEY_SIZE 0x0001U
Key Size of currently loaded key. More...
#define | PH_CRYPTOSYM_CONFIG_BLOCK_SIZE 0x0002U
Block Size of currently loaded key. More...
#define | PH_CRYPTOSYM_CONFIG_KEEP_IV 0x0003U
Keep init vector. More...

Supported IV Updated Behaviour Modes

#define | PH_CRYPTOSYM_VALUE_KEEP_IV_OFF 0x0000U
Switch off Keep-IV behaviour. More...
#define | PH_CRYPTOSYM_VALUE_KEEP_IV_ON 0x0001U
Switch on Keep-IV behaviour. More...

Supported Padding Modes.

#define | PH_CRYPTOSYM_PADDING_MODE_1 00U
Pad with all zeros.
#define | PH_CRYPTOSYM_PADDING_MODE_2 01U
Pad with a one followed by all zeros.

Supported Cipher Modes

#define | PH_CRYPTOSYM_CIPHER_MODE_ECB 0x00U
ECB Cipher Mode. More...
#define | PH_CRYPTOSYM_CIPHER_MODE_CBC 0x01U
CBC Cipher Mode. More...
#define | PH_CRYPTOSYM_CIPHER_MODE_CBC_DF4 0x02U
CBC Cipher Mode for DF4. More...

Supported Mac Modes

#define | PH_CRYPTOSYM_MAC_MODE_CMAC 0x00U
CMAC MAC Mode. More...
#define | PH_CRYPTOSYM_MAC_MODE_CBCMAC 0x01U
CBCMAC MAC Mode. More...

Supported Key Types to be used in key loading functionality.

#define | PH_CRYPTOSYM_KEY_TYPE_AES128 0x0000U
AES 128 Key [16 Bytes]. More...
#define | PH_CRYPTOSYM_KEY_TYPE_AES192 0x0001U
AES 192 Key [24 Bytes]. More...
#define | PH_CRYPTOSYM_KEY_TYPE_AES256 0x0002U
AES 256 Key [32 Bytes]. More...
#define | PH_CRYPTOSYM_KEY_TYPE_DES 0x0003U
DES Single Key [8 Bytes]. More...
#define | PH_CRYPTOSYM_KEY_TYPE_2K3DES 0x0004U
2 Key Triple Des [16 Bytes]. More...
#define | PH_CRYPTOSYM_KEY_TYPE_3K3DES 0x0005U
3 Key Triple Des [24 Bytes]. More...
#define | PH_CRYPTOSYM_KEY_TYPE_INVALID 0xFFFFU
Invalid Key.
#define | PH_CRYPTOSYM_KEY_TYPE_MIFARE 0x0006U
MIFARE (R) Key. More...

Supported Diversification Types

#define | PH_CRYPTOSYM_DIV_MODE_DESFIRE 0x0000U
DESFire Key Diversification. More...
#define | PH_CRYPTOSYM_DIV_MODE_MIFARE_PLUS 0x0001U
MIFARE Plus Key Diversification. More...
#define | PH_CRYPTOSYM_DIV_MODE_MASK 0x00FFU
Bitmask for diversification Mode. More...
#define | PH_CRYPTOSYM_DIV_OPTION_2K3DES_FULL 0x0000U
Option for 2K3DES full-key diversification (only with PH_CRYPTOSYM_DIV_MODE_DESFIRE). More...
#define | PH_CRYPTOSYM_DIV_OPTION_2K3DES_HALF 0x8000U
Option for 2K3DES half-key diversification (only with PH_CRYPTOSYM_DIV_MODE_DESFIRE). More...

General DES Defines.

#define | PH_CRYPTOSYM_DES_BLOCK_SIZE 8U
Block size in DES algorithm.
#define | PH_CRYPTOSYM_DES_KEY_SIZE 8U
Key size in DES algorithm for 56 bit key.
#define | PH_CRYPTOSYM_2K3DES_KEY_SIZE 16U
Key size in AES algorithm for 112 bit key.
#define | PH_CRYPTOSYM_3K3DES_KEY_SIZE 24U
Key size in AES algorithm for 168 bit key.

General AES Defines.

#define | PH_CRYPTOSYM_AES_BLOCK_SIZE 16U
Block size in AES algorithm.
#define | PH_CRYPTOSYM_AES128_KEY_SIZE 16U
Key size in AES algorithm for 128 bit key.
#define | PH_CRYPTOSYM_AES192_KEY_SIZE 24U
Key size in AES algorithm for 192 bit key.
#define | PH_CRYPTOSYM_AES256_KEY_SIZE 32U
Key size in AES algorithm for 256 bit key.

Detailed Description

This is only a wrapper layer to abstract the different CryptoSym implementations.

With this wrapper it is possible to support more than one CryptoSym implementation in parallel, by adapting this wrapper.

Important hints for users of this component:

  • Before use of any function, the dedicated crypto implementation has to be initialized (e.g. phCryptoSym_Sw_Init)
  • Functions using a key store (phCryptoSym_LoadKey and phCryptoSym_DiversifyKey) are only available if a key store has been passed during component initialization
  • Before any cipher operation or MAC operation (phCryptoSym_Encrypt, phCryptoSym_Decrypt, phCryptoSym_CalculateMac) can be used, a key has to be loaded using either phCryptoSym_LoadKey or phCryptoSym_LoadKeyDirect
  • Before any cipher operation or MAC operation (phCryptoSym_Encrypt, phCryptoSym_Decrypt, phCryptoSym_CalculateMac) can be used, an appropriate IV has to be loaded by calling phCryptoSym_LoadIv
  • Using phCryptoSym_GetConfig, the block sizes and key lengths for the currently loaded key can be retrieved

Macro Definition Documentation

§ PH_CRYPTOSYM_CONFIG_KEY_TYPE

#define PH_CRYPTOSYM_CONFIG_KEY_TYPE 0x0000U

Key Type.

Read-only. Possible Values are:

  • PH_CRYPTOSYM_KEY_TYPE_AES128
  • PH_CRYPTOSYM_KEY_TYPE_AES192
  • PH_CRYPTOSYM_KEY_TYPE_AES256
  • PH_CRYPTOSYM_KEY_TYPE_DES
  • PH_CRYPTOSYM_KEY_TYPE_2K3DES
  • PH_CRYPTOSYM_KEY_TYPE_3K3DES
  • PH_CRYPTOSYM_KEY_TYPE_INVALID
  • PH_CRYPTOSYM_KEY_TYPE_MIFARE

§ PH_CRYPTOSYM_CONFIG_KEY_SIZE

#define PH_CRYPTOSYM_CONFIG_KEY_SIZE 0x0001U

Key Size of currently loaded key.

Read-only.

§ PH_CRYPTOSYM_CONFIG_BLOCK_SIZE

#define PH_CRYPTOSYM_CONFIG_BLOCK_SIZE 0x0002U

Block Size of currently loaded key.

Read-only.

§ PH_CRYPTOSYM_CONFIG_KEEP_IV

#define PH_CRYPTOSYM_CONFIG_KEEP_IV 0x0003U

Keep init vector.

Either PH_CRYPTOSYM_VALUE_KEEP_IV_OFF or PH_CRYPTOSYM_VALUE_KEEP_IV_ON.
This flag has to be used in combination with the option flag in the Encrypt/Decrypt/CalculateMac
function: If either the option in the function or this flag is set, the IV will be updated before
returning of the function.
R/W access possible.

§ PH_CRYPTOSYM_VALUE_KEEP_IV_OFF

#define PH_CRYPTOSYM_VALUE_KEEP_IV_OFF 0x0000U

Switch off Keep-IV behaviour.

§ PH_CRYPTOSYM_VALUE_KEEP_IV_ON

#define PH_CRYPTOSYM_VALUE_KEEP_IV_ON 0x0001U

Switch on Keep-IV behaviour.

§ PH_CRYPTOSYM_CIPHER_MODE_ECB

#define PH_CRYPTOSYM_CIPHER_MODE_ECB 0x00U

ECB Cipher Mode.

§ PH_CRYPTOSYM_CIPHER_MODE_CBC

#define PH_CRYPTOSYM_CIPHER_MODE_CBC 0x01U

CBC Cipher Mode.

§ PH_CRYPTOSYM_CIPHER_MODE_CBC_DF4

#define PH_CRYPTOSYM_CIPHER_MODE_CBC_DF4 0x02U

CBC Cipher Mode for DF4.

§ PH_CRYPTOSYM_MAC_MODE_CMAC

#define PH_CRYPTOSYM_MAC_MODE_CMAC 0x00U

CMAC MAC Mode.

§ PH_CRYPTOSYM_MAC_MODE_CBCMAC

#define PH_CRYPTOSYM_MAC_MODE_CBCMAC 0x01U

CBCMAC MAC Mode.

§ PH_CRYPTOSYM_KEY_TYPE_AES128

#define PH_CRYPTOSYM_KEY_TYPE_AES128 0x0000U

AES 128 Key [16 Bytes].

§ PH_CRYPTOSYM_KEY_TYPE_AES192

#define PH_CRYPTOSYM_KEY_TYPE_AES192 0x0001U

AES 192 Key [24 Bytes].

§ PH_CRYPTOSYM_KEY_TYPE_AES256

#define PH_CRYPTOSYM_KEY_TYPE_AES256 0x0002U

AES 256 Key [32 Bytes].

§ PH_CRYPTOSYM_KEY_TYPE_DES

#define PH_CRYPTOSYM_KEY_TYPE_DES 0x0003U

DES Single Key [8 Bytes].

§ PH_CRYPTOSYM_KEY_TYPE_2K3DES

#define PH_CRYPTOSYM_KEY_TYPE_2K3DES 0x0004U

2 Key Triple Des [16 Bytes].

§ PH_CRYPTOSYM_KEY_TYPE_3K3DES

#define PH_CRYPTOSYM_KEY_TYPE_3K3DES 0x0005U

3 Key Triple Des [24 Bytes].

§ PH_CRYPTOSYM_KEY_TYPE_MIFARE

#define PH_CRYPTOSYM_KEY_TYPE_MIFARE 0x0006U

MIFARE (R) Key.

§ PH_CRYPTOSYM_DIV_MODE_DESFIRE

#define PH_CRYPTOSYM_DIV_MODE_DESFIRE 0x0000U

DESFire Key Diversification.

§ PH_CRYPTOSYM_DIV_MODE_MIFARE_PLUS

#define PH_CRYPTOSYM_DIV_MODE_MIFARE_PLUS 0x0001U

MIFARE Plus Key Diversification.

§ PH_CRYPTOSYM_DIV_MODE_MASK

#define PH_CRYPTOSYM_DIV_MODE_MASK 0x00FFU

Bitmask for diversification Mode.

§ PH_CRYPTOSYM_DIV_OPTION_2K3DES_FULL

#define PH_CRYPTOSYM_DIV_OPTION_2K3DES_FULL 0x0000U

Option for 2K3DES full-key diversification (only with PH_CRYPTOSYM_DIV_MODE_DESFIRE).

§ PH_CRYPTOSYM_DIV_OPTION_2K3DES_HALF

#define PH_CRYPTOSYM_DIV_OPTION_2K3DES_HALF 0x8000U

Option for 2K3DES half-key diversification (only with PH_CRYPTOSYM_DIV_MODE_DESFIRE).

Function Documentation

§ phCryptoSym_InvalidateKey()

phStatus_t phCryptoSym_InvalidateKey ( void * pDataParams )

Invalidate the currently loaded key.

Resets the key, the IV, the keep IV flag and the key Type.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] pDataParams Pointer to this layer's parameter structure

§ phCryptoSym_Encrypt()

phStatus_t phCryptoSym_Encrypt | ( | void * | pDataParams,
 |  | uint16_t | wOption,
 |  | const uint8_t * | pPlainBuffer,
 |  | uint16_t | wBufferLength,
 |  | uint8_t * | pEncryptedBuffer
 | ) |  |

Perform Encryption with one of the supported crypto modes.

The option word specifies the operation mode to use and the update behavior of the IV. All modes of operation are coded in the LSB, the flags in the MSB. The following Cipher modes are supported:

  • PH_CRYPTOSYM_CIPHER_MODE_ECB
  • PH_CRYPTOSYM_CIPHER_MODE_CBC
  • PH_CRYPTOSYM_CIPHER_MODE_CBC_DF4

The following Flags are supported:

  • PH_EXCHANGE_DEFAULT
  • PH_EXCHANGE_BUFFER_FIRST
  • PH_EXCHANGE_BUFFER_CONT
  • PH_EXCHANGE_BUFFER_LAST

Note: The input data length needs to be a multiple of the current block size

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | wPlainBufferLength is not a multiple of the current block size.
PH_ERR_INVALID_PARAMETER | An unsupported key is loaded (or no key is loaded).
PH_ERR_UNSUPPORTED_PARAMETER | An unknown cipher option wOption is specified.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wOption | Option byte specifying the cipher mode and the update behavior of the IV
[in] | pPlainBuffer | plain data buffer
[in] | wBufferLength | length of plain and encrypted data buffer - needs to be a multiple of the current block size
[out] | pEncryptedBuffer | encrypted data buffer

§ phCryptoSym_Decrypt()

phStatus_t phCryptoSym_Decrypt | ( | void * | pDataParams,
 |  | uint16_t | wOption,
 |  | const uint8_t * | pEncryptedBuffer,
 |  | uint16_t | wBufferLength,
 |  | uint8_t * | pPlainBuffer
 | ) |  |

Perform Decryption with one of the supported crypto modes.

The option word specifies the operation mode to use and the update behavior of the IV. All modes of operation are coded in the LSB, the flags in the MSB. The following Cipher modes are supported:

  • PH_CRYPTOSYM_CIPHER_MODE_ECB
  • PH_CRYPTOSYM_CIPHER_MODE_CBC
  • PH_CRYPTOSYM_CIPHER_MODE_CBC_DF4

The following Flags are supported:

  • PH_EXCHANGE_DEFAULT
  • PH_EXCHANGE_BUFFER_FIRST
  • PH_EXCHANGE_BUFFER_CONT
  • PH_EXCHANGE_BUFFER_LAST

Note: The input data length needs to be a multiple of the current block size

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | wPlainBufferLength is not a multiple of the current block size.
PH_ERR_INVALID_PARAMETER | An unsupported key is loaded (or no key is loaded).
PH_ERR_UNSUPPORTED_PARAMETER | An unknown cipher option wOption is specified.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wOption | Option byte specifying the cipher mode and the update behavior of the IV
[in] | pEncryptedBuffer | encrypted data buffer
[in] | wBufferLength | length of plain and encrypted data buffer - needs to be a multiple of the current block size
[out] | pPlainBuffer | plain data buffer

§ phCryptoSym_CalculateMac()

phStatus_t phCryptoSym_CalculateMac | ( | void * | pDataParams,
 |  | uint16_t | wOption,
 |  | const uint8_t * | pData,
 |  | uint16_t | wDataLength,
 |  | uint8_t * | pMac,
 |  | uint8_t * | pMacLength
 | ) |  |

Calculate MAC with one of the supported MAC modes.

The option word specifies the MAC mode to use and the update behavior of the IV as well as the completion behavior. All modes of operation are coded in the LSB, the flags in the MSB. The following Cipher modes are supported:

  • PH_CRYPTOSYM_MAC_MODE_CMAC
  • PH_CRYPTOSYM_MAC_MODE_CBCMAC

The following Flags are supported:

  • PH_EXCHANGE_DEFAULT
  • PH_EXCHANGE_BUFFER_FIRST
  • PH_EXCHANGE_BUFFER_CONT
  • PH_EXCHANGE_BUFFER_LAST

Note: If PH_EXCHANGE_BUFFERED_BIT is set, the input length needs to be a multiple of the block length!

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | wDataLength is not a multiple of the current block size and the option PH_EXCHANGE_BUFFERED_BIT is set.
PH_ERR_INVALID_PARAMETER | An unsupported key is loaded (or no key is loaded).
PH_ERR_UNSUPPORTED_PARAMETER | An unknown mac option wOption is specified.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wOption | Option byte specifying the MAC mode and the update behavior of the IV and the completion flag.
[in] | pData | input block; uint8_t[wDataLength]
[in] | wDataLength | number of input data bytes
[out] | pMac | output MAC block; uint8_t[16]
[out] | pMacLength | Length of MAC

§ phCryptoSym_LoadIv()

phStatus_t phCryptoSym_LoadIv | ( | void * | pDataParams,
 |  | const uint8_t * | pIV,
 |  | uint8_t | bIVLength
 | ) |  |

Load IV.

Note: Before loading of an IV can be performed, a key has to be loaded upfront.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | bIVLength does not match the current block size.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pIV | IV[bIVLength].
[in] | bIVLength | Length of IV.

§ phCryptoSym_LoadKey()

phStatus_t phCryptoSym_LoadKey | ( | void * | pDataParams,
 |  | uint16_t | wKeyNo,
 |  | uint16_t | wKeyVersion,
 |  | uint16_t | wKeyType
 | ) |  |

Load Key.

This function uses the key storage provided at component initialization to retrieve the key identified by wKeyNo and wKeyVersion. After retrieving the key is loaded into the internal key storage array to be prepared for subsequent cipher operations.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_DATA_PARAMS | No keystore specified at Init.
PH_ERR_UNSUPPORTED_PARAMETER | Key Type not supported.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wKeyNo | Number of the Key
[in] | wKeyVersion | Version of the key
[in] | wKeyType | Type of Key

§ phCryptoSym_LoadKeyDirect()

phStatus_t phCryptoSym_LoadKeyDirect | ( | void * | pDataParams,
 |  | const uint8_t * | pKey,
 |  | uint16_t | wKeyType
 | ) |  |

Direct Load Key.

The key provided in the pKey parameter is loaded into the internal key storage array to be prepared for subsequent cipher operations.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_UNSUPPORTED_PARAMETER | Key Type not supported.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pKey | key pointer to the key
[in] | wKeyType | ID of the Key type

§ phCryptoSym_SetConfig()

phStatus_t phCryptoSym_SetConfig | ( | void * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t | wValue
 | ) |  |

Set configuration parameter.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_UNSUPPORTED_PARAMETER | Invalid (Unsupported) wConfig.
PH_ERR_INVALID_PARAMETER | Valid wConfig but invalid wValue for that config.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wConfig | Configuration Identifier
[in] | wValue | Configuration Value

§ phCryptoSym_GetConfig()

phStatus_t phCryptoSym_GetConfig | ( | void * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t * | pValue
 | ) |  |

Get configuration parameter.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_UNSUPPORTED_PARAMETER | Invalid (Unsupported) wConfig.
PH_ERR_INVALID_PARAMETER | Value behind wConfig not valid at the moment.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wConfig | Configuration Identifier
[out] | pValue | Configuration Value

§ phCryptoSym_DiversifyKey()

phStatus_t phCryptoSym_DiversifyKey | ( | void * | pDataParams,
 |  | uint16_t | wOption,
 |  | uint16_t | wKeyNo,
 |  | uint16_t | wKeyVersion,
 |  | uint8_t * | pDivInput,
 |  | uint8_t | bLenDivInput,
 |  | uint8_t * | pDiversifiedKey
 | ) |  |

Diversify Key - Note: This function invalidates the currently loaded key.

Using the key stored in the keystore passed at initialization of the component and identified by wKeyNo and wKeyVersion this function calculates a diversified key according to the wOption specified that can be used in different applications. The following key diversification methods are supported:

  • PH_CRYPTOSYM_DIV_MODE_MIFARE_PLUS
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_DATA_PARAMS | No keystore specified at Init.
PH_ERR_UNSUPPORTED_PARAMETER | Key Type not supported (for key diversification).
PH_ERR_LENGTH_ERROR | Length of diversification input is wrong.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wOption | Option to specify the diversification method
[in] | wKeyNo | Number of the Key
[in] | wKeyVersion | Version of the key
[in] | pDivInput | Diversification Input used to diversify the key.
[in] | bLenDivInput | Length of diversification input used to diversify the key. If 0, no diversification is performed.
[out] | pDiversifiedKey | Diversified key

§ phCryptoSym_DiversifyDirectKey()

phStatus_t phCryptoSym_DiversifyDirectKey | ( | void * | pDataParams,
 |  | uint16_t | wOption,
 |  | uint8_t * | pKey,
 |  | uint16_t | wKeyType,
 |  | uint8_t * | pDivInput,
 |  | uint8_t | bLenDivInput,
 |  | uint8_t * | pDiversifiedKey
 | ) |  |

Diversify Direct Key - Note: This function invalidates the currently loaded key.

Using the key passed in the pKey parameter this function calculates a diversified key according to the wOption specified that can be used in different applications. The following key diversification methods are supported:

  • PH_CRYPTOSYM_DIV_MODE_MIFARE_PLUS
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_UNSUPPORTED_PARAMETER | Key Type not supported (for key diversification).
PH_ERR_LENGTH_ERROR | Length of diversification input is wrong.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wOption | Option to specify the diversification method
[in] | pKey | Key to be diversified
[in] | wKeyType | Type of the key
[in] | pDivInput | Diversification Input used to diversify the key.
[in] | bLenDivInput | Length of diversification input used to diversify the key. If 0, no diversification is performed.
[out] | pDiversifiedKey | Diversified key

§ phCryptoSym_ApplyPadding()

phStatus_t phCryptoSym_ApplyPadding | ( | uint8_t | bOption,
 |  | const uint8_t * | pDataIn,
 |  | uint16_t | wDataInLength,
 |  | uint8_t | bBlockSize,
 |  | uint16_t | wDataOutBufSize,
 |  | uint8_t * | pDataOut,
 |  | uint16_t * | pDataOutLength
 | ) |  |

Apply Padding to a given data buffer.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_BUFFER_OVERFLOW | wDataOutBufSize is too small.
PH_ERR_INVALID_PARAMETER | Unsupported bOption.
Parameters
[in] | bOption | Specifies padding mode (1 or 2)
[in] | pDataIn | Pointer to input data array
[in] | wDataInLength | Length of input data
[in] | bBlockSize | Block size to be used for padding
[in] | wDataOutBufSize | Size of data array
[out] | pDataOut | Pointer to output data array
[out] | pDataOutLength | Length of output data

§ phCryptoSym_RemovePadding()

phStatus_t phCryptoSym_RemovePadding | ( | uint8_t | bOption,
 |  | const uint8_t * | pDataIn,
 |  | uint16_t | wDataInLength,
 |  | uint8_t | bBlockSize,
 |  | uint16_t | wDataOutBufSize,
 |  | uint8_t * | pDataOut,
 |  | uint16_t * | pDataOutLength
 | ) |  |

Remove Padding to a given data buffer.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | wDataInLength is not a multiple of the bBlockSize parameter.
PH_ERR_INVALID_PARAMETER | Unsupported bOption.
PH_ERR_FRAMING_ERROR | Padding byte wrong.
Parameters
[in] | bOption | Specifies padding mode (1 or 2)
[in] | pDataIn | Pointer to input data array
[in] | wDataInLength | Length of input data
[in] | bBlockSize | Block size to be used for padding
[in] | wDataOutBufSize | Size of data array
[out] | pDataOut | Pointer to output data array
[out] | pDataOutLength | Length of output data


NXP NFC Reader Library: Component : Software

Data Structures | Macros | Functions
Component : Software
Common » CryptoSym

Software implementation of the Symmetric Cryptography interface. More...

Collaboration diagram for Component : Software:

Data Structures

struct phCryptoSym_Sw_DataParams_t
Software parameter structure. More...

Macros

#define | PH_CRYPTOSYM_SW_ID 0x01
ID for Software crypto component. More...
#define | PH_CRYTOSYM_SW_FAST_RAM
Enables 8051 data storage specifier. More...
#define | PH_CRYPTOSYM_SW_CONST_ROM
ROM specifier - not set per default.
#define | PH_CRYPTOSYM_SW_MAX_BLOCK_SIZE PH_CRYPTOSYM_AES_BLOCK_SIZE
Maximum Block Size of the currently supported ciphers.

Functions

phStatus_t phCryptoSym_Sw_Init (phCryptoSym_Sw_DataParams_t *pDataParams, uint16_t wSizeOfDataParams, void *pKeyStoreDataParams)
Initialise the CryptoSym component. More...

Compile Switches.

Compile switches used to find the optimum trade-off between performance, memory footprint and supported features.

#define | PH_CRYPTOSYM_SW_DES
Enables DES support. More...
#define | PH_CRYPTOSYM_SW_AES
Enables AES support. More...
#define | PH_CRYPTOSYM_SW_ONLINE_KEYSCHEDULING
Enables online key scheduling. More...
#define | PH_CRYPTOSYM_SW_ONLINE_CMAC_SUBKEY_CALCULATION
Enables online CMAC subkey calculation. More...
#define | PH_CRYPTOSYM_SW_ROM_OPTIMIZATION
Enables ROM optimizations in the AES algorithm. More...

Detailed Description

Software implementation of the Symmetric Cryptography interface.

This implementation was designed to optimize the footprint of crypto libraries used in embedded systems. The following standards are implemented:

  • Federal Information Processing Standards Publication 197: AES 128, 192 and 256
  • Federal Information Processing Standards Publication 46-3: DES
  • NIST Special Publication 800-67 Recommendation for the Triple Data Encryption Algorithm (TDEA) Block Cipher
  • NIST Special Publication 800-38B: CMAC
  • NIST Special Publication 800-38A: CBC and ECB mode
  • NIST Special Publication 800-38A: CMC-MAC

Hints for compiling the library:

  • Carefully read the section on compile switches in order to find the optimum balance between speed and memory utilization.
  • Using the appropriate compile switches either AES or DES can be removed from the built completely.

Architecture of the phCryptoSym_Sw Component:

  • The DES algorithm is implemented in the phCryptoSym_Sw_Des block
  • The AES algorithm is implemented in the phCryptoSym_Sw_Aes block
  • The phCryptoSym_Int block implements generic encrypt and decrypt functions. This offers the possibility to implement modes of operations without consideration of currently selected key type or key size.
  • The phCryptoSym_Int block in addition implements helper functions for CMAC calculations.

Macro Definition Documentation

§ PH_CRYPTOSYM_SW_ID

#define PH_CRYPTOSYM_SW_ID 0x01

ID for Software crypto component.

§ PH_CRYPTOSYM_SW_DES

#define PH_CRYPTOSYM_SW_DES

Enables DES support.

Defines that the DES algorithm is supported. The defines for general DES capabilities like block sizes etc. are not affected as they do not add to the memory footprint.

§ PH_CRYPTOSYM_SW_AES

#define PH_CRYPTOSYM_SW_AES

Enables AES support.

Defines that the AES algorithm is supported. The defines for general AES capabilities like block sizes etc. are not affected as they do not add to the memory footprint.

§ PH_CRYPTOSYM_SW_ONLINE_KEYSCHEDULING

#define PH_CRYPTOSYM_SW_ONLINE_KEYSCHEDULING

Enables online key scheduling.

This define enables for both AES and DES the online key scheduling. This means, that the round keys are not pre-calculated at key loading, but they are always calculated when a new block is going to be encrypted or decrypted.

The following advantages come out of enabling online key scheduling:

  • The pKey entry of the private data param structure decreases significantly from 384(DES enabled)/256(DES disabled) to 32 bytes.
  • As the private data structure has to be created for each instance, the above mentioned savings count for each instance.
  • Key loading is very fast (as there is almost nothing performed any more.
  • On 8051 the keys can be located in fast RAM which counters some of the performance decrease compared to disabling that feature.

The following disadvantages come out of enabling online key scheduling:

  • Encryption gets slower as in addition to the ciphering also the round key generation has to be performed.
  • For decryption in AES the situation is even worse, as the key scheduling is executed twice for each decryption.
  • On small platforms like 8051 big key buffers can never reside in fast RAM as they exceed the memory size of data and idata.

On 8051 platforms in combination with the PH_CRYPTOSYM_SW_USE_8051_DATA_STORAGE enabling online key scheduling even gives better results on execution time if only 1 or 2 blocks are encryted with a given key. In case of keys are used longer (which is most likely the standard case), it is faster to disable that feature. Also note, that e.g. for a MIFARE Plus (R) instance of the library, two crypto instances are required, and as a consequence online key scheduling can save 704(DES enabled)/(DES disabled)448 bytes of RAM.

§ PH_CRYPTOSYM_SW_ONLINE_CMAC_SUBKEY_CALCULATION

#define PH_CRYPTOSYM_SW_ONLINE_CMAC_SUBKEY_CALCULATION

Enables online CMAC subkey calculation.

This define enables for both AES and DES the online CMAC subkey calculation. This means, that the CMAC subkeys are not stored in the context of the individual instance of the crypto lib, but they are newly calculated for each MAC.

The following advantages come out of enabling online CMAC subkey calculation:

  • 32 bytes of RAM can be saved in the private data params (so they are saved on each instance of the crypto library).

The following disadvantages come out of online CMAC subkey calculation:

  • Each CMAC calculation needs 1 additional encryption and 2 additional shift operations, so the execution speed decreases.

§ PH_CRYPTOSYM_SW_ROM_OPTIMIZATION

#define PH_CRYPTOSYM_SW_ROM_OPTIMIZATION

Enables ROM optimizations in the AES algorithm.

This define removes some of the lookup tables in the AES implementation to save ROM space.

The following advantages come out of enabling ROM optimizations:

  • 3 lookup tables of 256 bytes can be saved (some additional code is needed, so in fact only ~600 bytes are saved).

The following disadvantages come out of enabling ROM optimizations:

  • The MixColumn and MixColumnInv implementation of the AES are getting slower.

§ PH_CRYTOSYM_SW_FAST_RAM

#define PH_CRYTOSYM_SW_FAST_RAM

Enables 8051 data storage specifier.

This define allows to specify any value for PH_CRYTOSYM_SW_FAST_RAM. It takes care, that the buffers are recopied correctly, and that most of the time consuming calculations are done on this fast mempory. In case of PH_CRYPTOSYM_SW_ONLINE_KEYSCHEDULING is set, even the key scheduling can be performed on this fast memory.Fast RAM specifier - not set per default

Function Documentation

§ phCryptoSym_Sw_Init()

phStatus_t phCryptoSym_Sw_Init | ( | phCryptoSym_Sw_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams,
 |  | void * | pKeyStoreDataParams
 | ) |  |

Initialise the CryptoSym component.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wSizeOfDataParams | Specifies the size of the data parameter structure.
[in] | pKeyStoreDataParams | Pointer to a key store structure (can be null).


NXP NFC Reader Library: phCryptoSym_Sw_DataParams_t Struct Reference

Data Fields
phCryptoSym_Sw_DataParams_t Struct Reference
Common » CryptoSym » Component : Software

Software parameter structure. More...

Data Fields

uint16_t wId
Layer ID for this component, NEVER MODIFY!
void * | pKeyStoreDataParams
Pointer to Key Store object - can be NULL. More...
uint8_t | pKey [PH_CRYPTOSYM_SW_KEY_BUFFER_SIZE]
Internal key storage array.
uint8_t pIV [PH_CRYPTOSYM_SW_MAX_BLOCK_SIZE]
Internal IV storage array.
uint16_t wKeyType
Key Type. More...
uint16_t wKeepIV
Indicates if the init vector of a previous crypto operation shall be used for the next operation. More...

Detailed Description

Software parameter structure.

Field Documentation

§ pKeyStoreDataParams

void* phCryptoSym_Sw_DataParams_t::pKeyStoreDataParams

Pointer to Key Store object - can be NULL.

§ wKeyType

uint16_t phCryptoSym_Sw_DataParams_t::wKeyType

Key Type.

§ wKeepIV

uint16_t phCryptoSym_Sw_DataParams_t::wKeepIV

Indicates if the init vector of a previous crypto operation shall be used for the next operation.

The documentation for this struct was generated from the following file:
  • phCryptoSym.h


NXP NFC Reader Library: CryptoRng

Modules | Functions
CryptoRng
Common

This is only a wrapper layer to abstract the different crypto random number generator implementations. More...

Collaboration diagram for CryptoRng:

Modules

Component : Software
Software implementation of the phCryptoRng interface.

Functions

phStatus_t | phCryptoRng_Seed (void *pDataParams, uint8_t *bSeed, uint8_t bSeedLength)
Seeds the random number generator with the given seed. More...
phStatus_t | phCryptoRng_Rnd (void *pDataParams, uint16_t wNoOfRndBytes, uint8_t *pRnd)
Obtains random bytes from the random source. More...

Detailed Description

This is only a wrapper layer to abstract the different crypto random number generator implementations.

With this wrapper it is possible to support more than one crypto random number generator implementation in parallel, by adapting this wrapper.

Important hints for users of this component:

  • Before use of any function, the dedicated rng implementation has to be initialized (e.g. phCryptoRng_Sw_Init)
  • Before random numbers can be generated, the phCryptoRng_Seed function has to be called

Function Documentation

§ phCryptoRng_Seed()

phStatus_t phCryptoRng_Seed | ( | void * | pDataParams,
 |  | uint8_t * | bSeed,
 |  | uint8_t | bSeedLength
 | ) |  |

Seeds the random number generator with the given seed.

The seed length is dependend on the underlaying implementation. Further details can be found in the detailed description of the underlying layers.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bSeed | Seed
[in] | bSeedLength | Size of the seed.

§ phCryptoRng_Rnd()

phStatus_t phCryptoRng_Rnd | ( | void * | pDataParams,
 |  | uint16_t | wNoOfRndBytes,
 |  | uint8_t * | pRnd
 | ) |  |

Obtains random bytes from the random source.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wNoOfRndBytes | number of random bytes to generate
[out] | pRnd | generated bytes; uint8_t[dwNumBytes]


NXP NFC Reader Library: Component : Software

Data Structures | Macros | Functions
Component : Software
Common » CryptoRng

Software implementation of the phCryptoRng interface. More...

Collaboration diagram for Component : Software:

Data Structures

struct phCryptoRng_Sw_DataParams_t
Software parameter structure. More...

Macros

#define PH_CRYPTORNG_SW_ID 0x01
ID for Software crypto rng component. More...

Functions

phStatus_t phCryptoRng_Sw_Init (phCryptoRng_Sw_DataParams_t *pDataParams, uint16_t wSizeOfDataParams, void *pCryptoDataParams)
Initialise the CryptoRnd component. More...

Detailed Description

Software implementation of the phCryptoRng interface.

The following standard is implemented:

  • NIST Special Publication 800-90: CTR_DRBG

Architecture overview of the phCryptoRng_Sw Component

  • The AES 128 implementation of the phCryptoSym component is used to generate random numbers.
  • This phCryptoSym instance has to be properly instantiated before generation of random numbers is possible.
  • The phCryptoRng_Sw_Int block implements all functions required by the NIST standard.
  • According to the state of the library component, the seed function choses whether to use #phCryptoRng_Sw_Instantiate or #phCryptoRng_Sw_Reseed.
  • #phCryptoRng_Sw_Update is automatically called when random numbers are generated in order to be ready for retrieving the next chunk of random bytes.
  • #phCryptoRng_Sw_BlockCipherDf is used to derive the key and V-value for a given seed.

Macro Definition Documentation

§ PH_CRYPTORNG_SW_ID

#define PH_CRYPTORNG_SW_ID 0x01

ID for Software crypto rng component.

Function Documentation

§ phCryptoRng_Sw_Init()

phStatus_t phCryptoRng_Sw_Init | ( | phCryptoRng_Sw_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams,
 |  | void * | pCryptoDataParams
 | ) |  |

Initialise the CryptoRnd component.

For seeding, the following considerations have to be taken:

  • Take a seed of at 32 bytes, which consists of
    • entropy input
    • nonce
    • personalization string.
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | wSizeOfDataParams | Specifies the size of the data parameter structure.
[in] | pCryptoDataParams | Pointer to the parameter structure of the symmetric crypto layer.


NXP NFC Reader Library: phCryptoRng_Sw_DataParams_t Struct Reference

Data Fields
phCryptoRng_Sw_DataParams_t Struct Reference
Common » CryptoRng » Component : Software

Software parameter structure. More...

Data Fields

uint16_t wId
Layer ID for this component, NEVER MODIFY!
void * pCryptoDataParams
Data parameter structure for the AES engine.
uint32_t dwRequestCounter
Counts the amount of requests between two seeding procedures. More...

Detailed Description

Software parameter structure.

Field Documentation

§ dwRequestCounter

uint32_t phCryptoRng_Sw_DataParams_t::dwRequestCounter

Counts the amount of requests between two seeding procedures.

Note: according to NIST SP800-90 for AES this is 2^48, for storage reasons the limit is set to 2^32 in this particular implementation.

The documentation for this struct was generated from the following file:
  • phCryptoRng.h


NXP NFC Reader Library: Tools

Data Structures | Typedefs | Enumerations | Functions
Tools
Common

This component implements tools that are necessary for many different software modules. More...

Collaboration diagram for Tools:

Data Structures

struct phTools_Q
Queue structure of Message Queue. More...

Typedefs

typedef struct phTools_Q phTools_Q_t
Queue structure of Message Queue.

Enumerations

enum phTools_Q_Type_t { PH_TOOLS_Q_DATA_TO_BE_SENT = 0x01, PH_TOOLS_Q_RX_DATA }
Type of Queue Message. More...

Functions

phStatus_t | phTools_EncodeParity (uint8_t bOption, uint8_t *pInBuffer, uint16_t wInBufferLength, uint8_t bInBufferBits, uint16_t wOutBufferSize, uint8_t *pOutBuffer, uint16_t *pOutBufferLength, uint8_t *pOutBufferBits)
Calculate even or odd parity. More...
phStatus_t | phTools_DecodeParity (uint8_t bOption, uint8_t *pInBuffer, uint16_t wInBufferLength, uint8_t bInBufferBits, uint16_t wOutBufferSize, uint8_t *pOutBuffer, uint16_t *pOutBufferLength, uint8_t *pOutBufferBits)
Verify and Remove even or odd parity. More...
phStatus_t | phTools_CalculateCrc5 (uint8_t bOption, uint8_t bPreset, uint8_t bPolynom, uint8_t *pData, uint16_t wDataLength, uint8_t *pCrc)
Calculate a CRC 5. More...
phStatus_t | phTools_CalculateCrc8 (uint8_t bOption, uint8_t bPreset, uint8_t bPolynom, uint8_t *pData, uint16_t wDataLength, uint8_t *pCrc)
Calculate a CRC 8. More...
phStatus_t | phTools_CalculateCrc16 (uint8_t bOption, uint16_t wPreset, uint16_t wPolynom, uint8_t *pData, uint16_t wDataLength, uint16_t *pCrc)
Calculate a CRC 16. More...
phStatus_t | phTools_CalculateCrc32 (uint8_t bOption, uint32_t dwPreset, uint32_t dwPolynom, uint8_t *pData, uint16_t wDataLength, uint32_t *pCrc)
Calculate a CRC 32. More...
phStatus_t | phTools_ComputeCrc_B (uint8_t *pData, uint32_t dwLength, uint8_t *pCrc)
Calculate a CRC_B. More...
phStatus_t | phTools_GetVersion (uint8_t *pProductVer, uint16_t *pMajor, uint8_t *pMinor, uint16_t *pPatch_Dev, uint8_t *pVersionString, uint16_t *pVersionStringLen)
The function gets the Version of the Firmware of DUT. More...
phStatus_t | phTools_Q_Init (void)
To initialize the Queue manager. More...
phTools_Q_t * | phTools_Q_Get (uint32_t dwBlockTime, uint8_t bPriority)
To get a empty Queue from a Free Pool. More...
phStatus_t | phTools_Q_Send (phTools_Q_t *psMsgQueue, uint32_t dwBlockTime, uint16_t wFrameOpt)
Queue a message to last of the Message send queue list. More...
phStatus_t | phTools_Q_SendFront (phTools_Q_t *psMsgQueue, uint32_t dwBlockTime, uint16_t wFrameOpt)
Queue a message to front of the Message send queue list. More...
phTools_Q_t * | phTools_Q_Receive (uint32_t dwBlockTime)
To get a filled message queue from the send queue list. More...
phStatus_t | phTools_Q_Release (phTools_Q_t *psMsgQueue, uint32_t dwBlockTime)
Returns a freed message queue back to the free message pool. More...
void | phTools_Q_DeInit (void)
To release the memory resources used by the Message queue manager.

ToolsConfigs

#define | PH_TOOLS_CRC16_PRESET_ISO14443A 0x6363U
CRC16 Preset for ISO14443-A. More...
#define | PH_TOOLS_CRC16_PRESET_ISO14443B 0xFFFFU
CRC16 Preset for ISO14443-B. More...
#define | PH_TOOLS_CRC16_PRESET_FELICA 0x0000U
CRC16 Preset for Felica. More...
#define | PH_TOOLS_CRC16_POLY_ISO14443 0x8408U
CRC16 Polynom for ISO14443. More...
#define | PH_TOOLS_CRC32_PRESET_DF8 0xFFFFFFFFU
CRC32 Preset for DesFire. More...
#define | PH_TOOLS_CRC32_POLY_DF8 0xEDB88320U
CRC32 Polynom for DesFire. More...
#define | PH_TOOLS_CRC8_PRESET_EPC 0xFFU
Preset value for EPC CRC-8 generation. More...
#define | PH_TOOLS_CRC8_PRESET_UID 0xFDU
Preset value for UID CRC-8 generation. More...
#define | PH_TOOLS_CRC8_POLY_EPCUID 0x1DU
Polynomial for EPC/UID CRC-8 generation: x^8 + x^4 + x^3 + x^2 + 1 (MSB first). More...
#define | PH_TOOLS_CRC16_PRESET_EPCUID 0xFFFFU
Preset value for EPC/UID CRC-16 generation. More...
#define | PH_TOOLS_CRC16_POLY_EPCUID 0x1021U
Polynomial for EPC/UID CRC-16 generation: x^16 + x^12 + x^5 + 1 (MSB first). More...
#define | PH_TOOLS_CRC5_PRESET_I18000P3 0x09U
Preset value for ISO18000-3 CRC-5 generation. More...
#define | PH_TOOLS_CRC5_POLY_I18000P3 0x09U
Polynomial for ISO18000-3 CRC-5 generation: x^5 + x^3 + 1 (LSB first). More...
#define | PH_TOOLS_CRC16_PRESET_I18000P3 0xFFFFU
Preset value for ISO18000-3 CRC-16 generation. More...
#define | PH_TOOLS_CRC16_POLY_I18000P3 0x8408U
Polynomial for ISO18000-3 CRC-16 generation: x^16 + x^12 + x^5 + 1 (LSB first). More...
#define | PH_TOOLS_CRC16_POLY_FELICA 0x1021U
Polynomial for Felica CRC-16 generation: x^16 + x^12 + x^5 + 1 (MSB first). More...
#define | PH_TOOLS_PARITY_OPTION_EVEN 0x00U
Encode/Decode even parity bits. More...
#define | PH_TOOLS_PARITY_OPTION_ODD 0x01U
Encode/Decode odd parity bits. More...
#define | PH_TOOLS_CRC16_POLY_PN7462AU_TESTOS 0x1021U
Polynomial for TestOS CRC-16 generation: x^16 + x^12 + x^5 + 1 (MSB first). More...
#define | PH_TOOLS_CRC_OPTION_DEFAULT 0x00U
Default CRC operation. More...
#define | PH_TOOLS_CRC_OPTION_OUPUT_INVERTED 0x01U
Inverts the bits after calculation. More...
#define | PH_TOOLS_CRC_OPTION_MSB_FIRST 0x02U
Calculates CRC with MSB(it) first. More...
#define | PH_TOOLS_CRC_OPTION_BITWISE 0x04U
Bitwise CRC, wDataLength represents the Bitlength. More...
#define | PH_TOOLS_CRC_OPTION_MASK 0x07U
Mask of valid option bits. More...

Q Configs

#define | PH_TOOLS_Q_MAX_ELEMENTS 10 /* Indicates maximum elements in the Q pool */
#define | PH_TOOLS_Q_RESERVED_ELEMENTS 2 /* Indicates reserved elements in the Q pool for high priority tasks. */

Detailed Description

This component implements tools that are necessary for many different software modules.

Macro Definition Documentation

§ PH_TOOLS_CRC16_PRESET_ISO14443A

#define PH_TOOLS_CRC16_PRESET_ISO14443A 0x6363U

CRC16 Preset for ISO14443-A.

§ PH_TOOLS_CRC16_PRESET_ISO14443B

#define PH_TOOLS_CRC16_PRESET_ISO14443B 0xFFFFU

CRC16 Preset for ISO14443-B.

§ PH_TOOLS_CRC16_PRESET_FELICA

#define PH_TOOLS_CRC16_PRESET_FELICA 0x0000U

CRC16 Preset for Felica.

§ PH_TOOLS_CRC16_POLY_ISO14443

#define PH_TOOLS_CRC16_POLY_ISO14443 0x8408U

CRC16 Polynom for ISO14443.

§ PH_TOOLS_CRC32_PRESET_DF8

#define PH_TOOLS_CRC32_PRESET_DF8 0xFFFFFFFFU

CRC32 Preset for DesFire.

§ PH_TOOLS_CRC32_POLY_DF8

#define PH_TOOLS_CRC32_POLY_DF8 0xEDB88320U

CRC32 Polynom for DesFire.

§ PH_TOOLS_CRC8_PRESET_EPC

#define PH_TOOLS_CRC8_PRESET_EPC 0xFFU

Preset value for EPC CRC-8 generation.

§ PH_TOOLS_CRC8_PRESET_UID

#define PH_TOOLS_CRC8_PRESET_UID 0xFDU

Preset value for UID CRC-8 generation.

§ PH_TOOLS_CRC8_POLY_EPCUID

#define PH_TOOLS_CRC8_POLY_EPCUID 0x1DU

Polynomial for EPC/UID CRC-8 generation: x^8 + x^4 + x^3 + x^2 + 1 (MSB first).

§ PH_TOOLS_CRC16_PRESET_EPCUID

#define PH_TOOLS_CRC16_PRESET_EPCUID 0xFFFFU

Preset value for EPC/UID CRC-16 generation.

§ PH_TOOLS_CRC16_POLY_EPCUID

#define PH_TOOLS_CRC16_POLY_EPCUID 0x1021U

Polynomial for EPC/UID CRC-16 generation: x^16 + x^12 + x^5 + 1 (MSB first).

§ PH_TOOLS_CRC5_PRESET_I18000P3

#define PH_TOOLS_CRC5_PRESET_I18000P3 0x09U

Preset value for ISO18000-3 CRC-5 generation.

§ PH_TOOLS_CRC5_POLY_I18000P3

#define PH_TOOLS_CRC5_POLY_I18000P3 0x09U

Polynomial for ISO18000-3 CRC-5 generation: x^5 + x^3 + 1 (LSB first).

§ PH_TOOLS_CRC16_PRESET_I18000P3

#define PH_TOOLS_CRC16_PRESET_I18000P3 0xFFFFU

Preset value for ISO18000-3 CRC-16 generation.

§ PH_TOOLS_CRC16_POLY_I18000P3

#define PH_TOOLS_CRC16_POLY_I18000P3 0x8408U

Polynomial for ISO18000-3 CRC-16 generation: x^16 + x^12 + x^5 + 1 (LSB first).

§ PH_TOOLS_CRC16_POLY_FELICA

#define PH_TOOLS_CRC16_POLY_FELICA 0x1021U

Polynomial for Felica CRC-16 generation: x^16 + x^12 + x^5 + 1 (MSB first).

§ PH_TOOLS_PARITY_OPTION_EVEN

#define PH_TOOLS_PARITY_OPTION_EVEN 0x00U

Encode/Decode even parity bits.

§ PH_TOOLS_PARITY_OPTION_ODD

#define PH_TOOLS_PARITY_OPTION_ODD 0x01U

Encode/Decode odd parity bits.

§ PH_TOOLS_CRC16_POLY_PN7462AU_TESTOS

#define PH_TOOLS_CRC16_POLY_PN7462AU_TESTOS 0x1021U

Polynomial for TestOS CRC-16 generation: x^16 + x^12 + x^5 + 1 (MSB first).

§ PH_TOOLS_CRC_OPTION_DEFAULT

#define PH_TOOLS_CRC_OPTION_DEFAULT 0x00U

Default CRC operation.

§ PH_TOOLS_CRC_OPTION_OUPUT_INVERTED

#define PH_TOOLS_CRC_OPTION_OUPUT_INVERTED 0x01U

Inverts the bits after calculation.

§ PH_TOOLS_CRC_OPTION_MSB_FIRST

#define PH_TOOLS_CRC_OPTION_MSB_FIRST 0x02U

Calculates CRC with MSB(it) first.

§ PH_TOOLS_CRC_OPTION_BITWISE

#define PH_TOOLS_CRC_OPTION_BITWISE 0x04U

Bitwise CRC, wDataLength represents the Bitlength.

§ PH_TOOLS_CRC_OPTION_MASK

#define PH_TOOLS_CRC_OPTION_MASK 0x07U

Mask of valid option bits.

Enumeration Type Documentation

§ phTools_Q_Type_t

enum phTools_Q_Type_t

Type of Queue Message.

Enumerator
PH_TOOLS_Q_DATA_TO_BE_SENT | Message needs to be sent.
PH_TOOLS_Q_RX_DATA | Message is received.

Function Documentation

§ phTools_EncodeParity()

phStatus_t phTools_EncodeParity | ( | uint8_t | bOption,
 |  | uint8_t * | pInBuffer,
 |  | uint16_t | wInBufferLength,
 |  | uint8_t | bInBufferBits,
 |  | uint16_t | wOutBufferSize,
 |  | uint8_t * | pOutBuffer,
 |  | uint16_t * | pOutBufferLength,
 |  | uint8_t * | pOutBufferBits
 | ) |  |

Calculate even or odd parity.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | bOption | Parity option; e.g. PH_TOOLS_PARITY_OPTION_EVEN.
[in] | pInBuffer | Array to input data.
[in] | wInBufferLength | Length of input data in bytes.
[in] | bInBufferBits | Number of valid bits in last byte of pInBuffer.
[in] | wOutBufferSize | Size of the output buffer.
[out] | pOutBuffer | Output buffer.
[out] | pOutBufferLength | Number of valid bytes in pOutBuffer.
[out] | pOutBufferBits | Number of valid bits in last byte of pOutBuffer.

§ phTools_DecodeParity()

phStatus_t phTools_DecodeParity | ( | uint8_t | bOption,
 |  | uint8_t * | pInBuffer,
 |  | uint16_t | wInBufferLength,
 |  | uint8_t | bInBufferBits,
 |  | uint16_t | wOutBufferSize,
 |  | uint8_t * | pOutBuffer,
 |  | uint16_t * | pOutBufferLength,
 |  | uint8_t * | pOutBufferBits
 | ) |  |

Verify and Remove even or odd parity.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | bOption | Parity option; e.g. PH_TOOLS_PARITY_OPTION_EVEN.
[in] | pInBuffer | Array to input data.
[in] | wInBufferLength | Length of input data in bytes.
[in] | bInBufferBits | Number of valid bits in last byte of pInBuffer.
[in] | wOutBufferSize | Size of the output buffer.
[out] | pOutBuffer | Output buffer.
[out] | pOutBufferLength | Number of valid bytes in pOutBuffer.
[out] | pOutBufferBits | Number of valid bits in last byte of pOutBuffer.

§ phTools_CalculateCrc5()

phStatus_t phTools_CalculateCrc5 | ( | uint8_t | bOption,
 |  | uint8_t | bPreset,
 |  | uint8_t | bPolynom,
 |  | uint8_t * | pData,
 |  | uint16_t | wDataLength,
 |  | uint8_t * | pCrc
 | ) |  |

Calculate a CRC 5.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | bOption | Specifies whether the output should be inverted or not.
[in] | bPreset | Preset used for CRC calculation, e.g. PH_TOOLS_CRC5_PRESET_I18000P3.
[in] | bPolynom | Polynom used for reduction, e.g. PH_TOOLS_CRC5_POLY_I18000P3.
[in] | pData | Array to input data.
[in] | wDataLength | Length of input data.
[out] | pCrc | Resulting CRC.

§ phTools_CalculateCrc8()

phStatus_t phTools_CalculateCrc8 | ( | uint8_t | bOption,
 |  | uint8_t | bPreset,
 |  | uint8_t | bPolynom,
 |  | uint8_t * | pData,
 |  | uint16_t | wDataLength,
 |  | uint8_t * | pCrc
 | ) |  |

Calculate a CRC 8.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | bOption | Specifies whether the output should be inverted or not.
[in] | bPreset | Preset used for CRC calculation, e.g. PH_TOOLS_CRC8_PRESET_UID.
[in] | bPolynom | Polynom used for reduction, e.g. PH_TOOLS_CRC8_POLY_EPCUID.
[in] | pData | Array to input data.
[in] | wDataLength | Length of input data.
[out] | pCrc | Resulting CRC.

§ phTools_CalculateCrc16()

phStatus_t phTools_CalculateCrc16 | ( | uint8_t | bOption,
 |  | uint16_t | wPreset,
 |  | uint16_t | wPolynom,
 |  | uint8_t * | pData,
 |  | uint16_t | wDataLength,
 |  | uint16_t * | pCrc
 | ) |  |

Calculate a CRC 16.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | bOption | Specifies whether the output should be inverted or not.
[in] | wPreset | Preset used for CRC calculation, e.g. PH_TOOLS_CRC16_PRESET_ISO14443A.
[in] | wPolynom | Polynom used for reduction, e.g. PH_TOOLS_CRC16_POLY_ISO14443.
[in] | pData | Array to input data.
[in] | wDataLength | Length of input data.
[out] | pCrc | Resulting CRC.

§ phTools_CalculateCrc32()

phStatus_t phTools_CalculateCrc32 | ( | uint8_t | bOption,
 |  | uint32_t | dwPreset,
 |  | uint32_t | dwPolynom,
 |  | uint8_t * | pData,
 |  | uint16_t | wDataLength,
 |  | uint32_t * | pCrc
 | ) |  |

Calculate a CRC 32.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | bOption | Specifies whether the output should be inverted or not.
[in] | dwPreset | Preset used for CRC calculation, e.g. PH_TOOLS_CRC32_PRESET_DF8.
[in] | dwPolynom | Polynom used for reduction, e.g. PH_TOOLS_CRC32_POLY_DF8.
[in] | pData | Array to input data.
[in] | wDataLength | Length of input data.
[out] | pCrc | Resulting CRC.

§ phTools_ComputeCrc_B()

phStatus_t phTools_ComputeCrc_B | ( | uint8_t * | pData,
 |  | uint32_t | dwLength,
 |  | uint8_t * | pCrc
 | ) |  |

Calculate a CRC_B.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pData | Array to input data.
[in] | dwLength | Length of input data.
[out] | pCrc | Resulting Two byte CRC.

§ phTools_GetVersion()

phStatus_t phTools_GetVersion | ( | uint8_t * | pProductVer,
 |  | uint16_t * | pMajor,
 |  | uint8_t * | pMinor,
 |  | uint16_t * | pPatch_Dev,
 |  | uint8_t * | pVersionString,
 |  | uint16_t * | pVersionStringLen
 | ) |  |

The function gets the Version of the Firmware of DUT.

Returns
Status code
Return values
PH_ERR_SUCCESS | Command successfully executed.
PH_ERR_PROTOCOL_ERROR | Invalid frame or unexpected receive data length or command code mismatch.
Parameters
[out] | pProductVer | Product Version.
[out] | pMajor | Major Version.
[out] | pMinor | Minor Version.
[out] | pPatch_Dev | Development/Patch Version.
[out] | pVersionString | Version String.
[out] | pVersionStringLen | Version String Length.

§ phTools_Q_Init()

phStatus_t phTools_Q_Init ( void )

To initialize the Queue manager.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_RESOURCE_ERROR | Message Queue is unavailable or OSAL returned error.

§ phTools_Q_Get()

phTools_Q_t* phTools_Q_Get | ( | uint32_t | dwBlockTime,
 |  | uint8_t | bPriority
 | ) |  |

To get a empty Queue from a Free Pool.

Returns a pointer to an empty Queue if available or returns NULL.

bPriority can be one of:

  • PH_ON
  • PH_OFF
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_RESOURCE_ERROR | OSAL returned error.
Parameters
[in] | dwBlockTime | The time in ticks to wait for a empty Queue to become available.
[in] | bPriority | Used to indicate if Queue is required by high priority thread or not.

§ phTools_Q_Send()

phStatus_t phTools_Q_Send | ( | phTools_Q_t * | psMsgQueue,
 |  | uint32_t | dwBlockTime,
 |  | uint16_t | wFrameOpt
 | ) |  |

Queue a message to last of the Message send queue list.

wFrameOpt can be one of:

  • PH_TRANSMIT_DEFAULT

wFrameOpt can be combined with:

  • PH_TRANSMIT_BUFFERED_BIT
  • PH_TRANSMIT_LEAVE_BUFFER_BIT
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_RESOURCE_ERROR | OSAL returned error.
Parameters
[in] | psMsgQueue | Pointer to the Message Queue to be Queued.
[in] | dwBlockTime | The time in ticks to wait for a empty Queue to become available.
[in] | wFrameOpt | MAC/HAL Buffering option.

§ phTools_Q_SendFront()

phStatus_t phTools_Q_SendFront | ( | phTools_Q_t * | psMsgQueue,
 |  | uint32_t | dwBlockTime,
 |  | uint16_t | wFrameOpt
 | ) |  |

Queue a message to front of the Message send queue list.

wFrameOpt can be one of:

  • PH_TRANSMIT_DEFAULT

wFrameOpt can be combined with:

  • PH_TRANSMIT_BUFFERED_BIT
  • PH_TRANSMIT_LEAVE_BUFFER_BIT
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_RESOURCE_ERROR | OSAL returned error.
Parameters
[in] | psMsgQueue | Pointer to the Message Queue to be Queued.
[in] | dwBlockTime | The time in ticks to wait for a empty Queue to become available.
[in] | wFrameOpt | MAC/HAL Buffering option.

§ phTools_Q_Receive()

phTools_Q_t* phTools_Q_Receive ( uint32_t dwBlockTime )

To get a filled message queue from the send queue list.

Usually used by the Message Queue Manager to retrieve the queued messages waiting to be processed.

Parameters
[in] dwBlockTime The time in ticks to wait for a empty Queue to become available.

§ phTools_Q_Release()

phStatus_t phTools_Q_Release | ( | phTools_Q_t * | psMsgQueue,
 |  | uint32_t | dwBlockTime
 | ) |  |

Returns a freed message queue back to the free message pool.

Usually used by the Message Queue Manager to return the queue to the Free pool.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_RESOURCE_ERROR | OSAL returned error.
Parameters
[in] | psMsgQueue | Pointer to the Message Queue to be Queued.
[in] | dwBlockTime | The time in ticks to wait for a empty Queue to become available.


NXP NFC Reader Library: phTools_Q Struct Reference

Data Fields
phTools_Q Struct Reference
Common » Tools

Queue structure of Message Queue. More...

Data Fields

void * | pSender
Sender of the message. More...
uint8_t * pbData
Content of the message, type of the content is given using bType. More...
uint32_t dwLength
Length of the message. More...
uint8_t | bLlcpBuf [6]
Buffer used to store LLCP formatted PDUs that needs to be sent while processing Message Queue. More...
uint8_t bLlcpData
This variable is used to decide if LLCP framed data should be sent or data from application. More...
struct phTools_Q * | pNext
Pointer to next element in the list/queue. More...
uint16_t wFrameOpt
Frame Option can take PH_TRANSMIT_DEFAULT, PH_TRANSMIT_BUFFER_FIRST, PH_TRANSMIT_BUFFER_CONT, or PH_TRANSMIT_BUFFER_LAST. More...
uint8_t bSenderType
Type of the sender, used for proper casting of pSender. More...
phTools_Q_Type_t bType
Message content type. More...

Detailed Description

Queue structure of Message Queue.

Field Documentation

§ pSender

void* phTools_Q::pSender

Sender of the message.

As this is void pointer pointing to the sender's context, bSenderType determines the actual type of the sender to allow proper casting.

§ pbData

uint8_t* phTools_Q::pbData

Content of the message, type of the content is given using bType.

§ dwLength

uint32_t phTools_Q::dwLength

Length of the message.

§ bLlcpBuf

uint8_t phTools_Q::bLlcpBuf[6]

Buffer used to store LLCP formatted PDUs that needs to be sent while processing Message Queue.

§ bLlcpData

uint8_t phTools_Q::bLlcpData

This variable is used to decide if LLCP framed data should be sent or data from application.

§ pNext

struct phTools_Q* phTools_Q::pNext

Pointer to next element in the list/queue.

§ wFrameOpt

uint16_t phTools_Q::wFrameOpt

Frame Option can take PH_TRANSMIT_DEFAULT, PH_TRANSMIT_BUFFER_FIRST, PH_TRANSMIT_BUFFER_CONT, or PH_TRANSMIT_BUFFER_LAST.

§ bSenderType

uint8_t phTools_Q::bSenderType

Type of the sender, used for proper casting of pSender.

§ bType

phTools_Q_Type_t phTools_Q::bType

Message content type.

It can be either data to be sent/received data.

The documentation for this struct was generated from the following file:
  • phTools.h


NXP NFC Reader Library: PhLog

PhLog
Common
Collaboration diagram for PhLog:


NXP NFC Reader Library: Operating System Abstraction Layer

Data Structures | Typedefs | Functions
Operating System Abstraction Layer
Common

This component implements the OSAL APIs used by the Nxp Reader Library. More...

Collaboration diagram for Operating System Abstraction Layer:

Data Structures

struct | phOsal_ThreadObj
Osal Thread Object. More...
struct | phOsal_EventObj
Osal Event Object. More...
struct | phOsal_TimePeriodObj
Timer Period Object. More...
struct | phOsal_TimerObj
Osal Timer Object. More...
struct | phOsal_SemObj
OS Semaphore Object. More...
struct | phOsal_MutexObj
Mutex Object. More...

Typedefs

typedef uint32_t phOsal_Ticks_t
Amount of Time : specifiedd in Ticks.

Functions

phStatus_t | phOsal_Init (void)
This function initializes the osal attributes with the default values. More...
phStatus_t | phOsal_ThreadCreate (phOsal_Thread_t *threadHandle, pphOsal_ThreadObj_t threadObj, pphOsal_StartFunc_t startFunc, void *arg)
This function starts a new thread in the calling process. More...
phStatus_t | phOsal_ThreadDelete (phOsal_Thread_t *threadHandle)
This function will delete the thread. More...
phStatus_t | phOsal_ThreadChangePrio (phOsal_Thread_t *threadHandle, uint32_t newPrio)
This function changes the priority of the thread. More...
phStatus_t | phOsal_ThreadExit (void)
This function exits the thread itself. More...
phStatus_t | phOsal_ThreadDelay (phOsal_Ticks_t ticksToSleep)
This function delays the calling thread. More...
phStatus_t | phOsal_EventCreate (phOsal_Event_t *eventHandle, pphOsal_EventObj_t eventObj)
This function will create the event group and returns the newly created event group. More...
phStatus_t | phOsal_EventPend (volatile phOsal_Event_t *eventHandle, phOsal_EventOpt_t options, phOsal_Ticks_t ticksToWait, phOsal_EventBits_t FlagsToWait, phOsal_EventBits_t *pCurrFlags)
This function will wait for the events. More...
phStatus_t | phOsal_EventPost (phOsal_Event_t *eventHandle, phOsal_EventOpt_t options, phOsal_EventBits_t FlagsToPost, phOsal_EventBits_t *pCurrFlags)
This function will post the events. More...
phStatus_t | phOsal_EventClear (phOsal_Event_t *eventHandle, phOsal_EventOpt_t options, phOsal_EventBits_t FlagsToClear, phOsal_EventBits_t *pCurrFlags)
This function will clear the events. More...
phStatus_t | phOsal_EventGet (phOsal_Event_t *eventHandle, phOsal_EventBits_t *pCurrFlags)
This function will get the events which are already there. More...
phStatus_t | phOsal_EventDelete (phOsal_Event_t *eventHandle)
This function will delete the events. More...
phStatus_t | phOsal_SemCreate (phOsal_Semaphore_t *semHandle, pphOsal_SemObj_t semObj, phOsal_SemOpt_t opt)
This function will create the Semaphore and return the handle. More...
phStatus_t | phOsal_SemPend (phOsal_Semaphore_t *semHandle, phOsal_TimerPeriodObj_t timePeriodToWait)
This function will wait for the semaphore. More...
phStatus_t | phOsal_SemPost (phOsal_Semaphore_t *semHandle, phOsal_SemOpt_t opt)
This function will release the semaphore. More...
phStatus_t | phOsal_SemDelete (phOsal_Semaphore_t *semHandle)
This function will delete the semaphore. More...
phStatus_t | phOsal_MutexCreate (phOsal_Mutex_t *mutexHandle, pphOsal_MutexObj_t mutexObj)
This function will create the Mutex and return the handle. More...
phStatus_t | phOsal_MutexLock (phOsal_Mutex_t *mutexHandle, phOsal_TimerPeriodObj_t timePeriodToWait)
This function will lock the mutex. More...
phStatus_t | phOsal_MutexUnLock (phOsal_Mutex_t *mutexHandle)
This function will unlock the semaphore. More...
phStatus_t | phOsal_MutexDelete (phOsal_Mutex_t *mutexHandle)
This function will delete the semaphore. More...
phStatus_t | phOsal_TimerCreate (phOsal_Timer_t *timerHandle, pphOsal_TimerObj_t timerObj)
This function will create the timer and return the handle. More...
phStatus_t | phOsal_TimerStart (phOsal_Timer_t *timerHandle)
This function will start the timer. More...
phStatus_t | phOsal_TimerStop (phOsal_Timer_t *timerHandle)
This function will stop the timer. More...
phStatus_t | phOsal_TimerGetCurrent (phOsal_Timer_t *timerHandle, uint32_t *pdwGetElapsedTime)
This function will give the elapsed timing of the timer. More...
phStatus_t | phOsal_TimerModify (phOsal_Timer_t *timerHandle, pphOsal_TimerObj_t timerObj)
This function is used to modify the parameters of the timer. More...
phStatus_t | phOsal_TimerDelete (phOsal_Timer_t *timerHandle)
This function is delete the timer. More...
void | phOsal_StartScheduler (void)
This function will start the scheduler. More...
typedef void * | phOsal_Thread_t
Osal Thread Handle.
typedef struct phOsal_ThreadObj | phOsal_ThreadObj_t
Osal Thread Object.
typedef void * | phOsal_Event_t
Osal Event Handle.
typedef struct phOsal_EventObj | phOsal_EventObj_t
Osal Event Object.
typedef uint32_t | phOsal_EventBits_t
OS Event Bits.
enum | phOsal_EventOpt_t
OS Event Options Enum.
enum | phOsal_EventOptPos_t
OS Event Options Position Enum.
typedef void * | phOsal_Timer_t
Osal Timer Handle.
enum | phOsal_TimerOpt_t
OS Timer Options Enum.
typedef void(* | pphOsal_TimerCallback_t) (void *)
OS Timer Callback.
enum | phOsal_TimerUnit_t
OS Timer Unit Enum.
typedef struct phOsal_TimePeriodObj | phOsal_TimerPeriodObj_t
Timer Period Object.
typedef struct phOsal_TimerObj | phOsal_TimerObj_t
Osal Timer Object.
typedef void * | phOsal_Semaphore_t
OS Semaphore Handle.
typedef struct phOsal_SemObj | phOsal_SemObj_t
OS Semaphore Object.
enum | phOsal_SemOpt_t
OS Event Options Enum.
typedef void * | phOsal_Mutex_t
Mutex Handle.
typedef struct phOsal_MutexObj | phOsal_MutexObj_t
Mutex Object.

Detailed Description

This component implements the OSAL APIs used by the Nxp Reader Library.

All these functions are used by the NXP reader library internally.

If compiling only the library NxpNfcRdLib, the file NxpNfcRdLib/types/ph_NxpBuild_Lpc.h should define the Osal used by the User.

API Changes

Old API | Changed API
phOsal_Event_Consume() | phOsal_EventClear
phOsal_Event_Post() | phOsal_EventPost
phOsal_Event_WaitAll() | phOsal_EventPend
phOsal_Event_WaitAny() | phOsal_EventPend
phOsal_Mutex_Create() | phOsal_MutexCreate
phOsal_Mutex_Delete() | phOsal_MutexDelete
phOsal_Mutex_Give() | phOsal_MutexUnLock
phOsal_Mutex_Take() | phOsal_MutexLock
phOsal_Semaphore_Create() | phOsal_SemCreate
phOsal_Semaphore_Delete() | phOsal_SemDelete
phOsal_Semaphore_Give() | phOsal_SemPost
phOsal_Semaphore_Take() | phOsal_SemPend
phOsal_TaskDelay() | phOsal_ThreadDelay
phOsal_Timer_Create() | phOsal_TimerCreate
phOsal_Timer_Delete() | phOsal_TimerDelete
phOsal_Timer_Start() | phOsal_TimerStart
phOsal_Timer_Stop() | phOsal_TimerStop

The following internal APIs have been refactored and re-implemented for generic portability

Old Internal API | Status
phOsal_Event_Deinit() | Not Supported
phOsal_Event_GetDetail() | Not Supported
phOsal_Event_GetEventHandle() | Not Supported
phOsal_Event_Init() | Not Supported
phOsal_Event_PostwithDetail()
See also
phOsal_EventPost
phOsal_Event_SetDetail() | Not Supported
New APIs
phOsal_StartScheduler
phOsal_ThreadCreate
phOsal_ThreadDelete
phOsal_EventDelete
phOsal_EventGet
phOsal_EventCreate

Function Documentation

§ phOsal_Init()

phStatus_t phOsal_Init ( void )

This function initializes the osal attributes with the default values.

Returns
Status of the API
Return values
PH_ERR_SUCCESS Operation successful.

§ phOsal_ThreadCreate()

phStatus_t phOsal_ThreadCreate | ( | phOsal_Thread_t * | threadHandle,
 |  | pphOsal_ThreadObj_t | threadObj,
 |  | pphOsal_StartFunc_t | startFunc,
 |  | void * | arg
 | ) |  |

This function starts a new thread in the calling process.

The new thread starts execution by invoking phOsal_StartScheduler().

Before returning, a successful call to phOsal_ThreadCreate() stores the ID of the new thread in the buffer pointed to by thread; this identifier is used to refer to the thread in subsequent calls to other functions.

Each task requires RAM that is used to hold the task state, and used by the task as its stack. If stackSizeInNum(threadObj.stackSizeInNum) is NULL, then the Task stack will be allocated dynamically otherwise it will allocated the static stack and this static stack should be allocated and provided by the user in threadObj(threadObj.pStackBuffer) structure.

Instead of using any proprietary function use phOsal_ThreadCreate() to create the task/thread.

Parameters
[out] | threadHandle | Thread Handle, stores the ID of the new thread
[in] | threadObj | Thread Object whose contents are used at thread creation time
[in] | startFunc | The new thread starts execution by invoking Start function (startFunc).
[in] | arg | The argument passed for the Start function (startFunc)
Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_UNSUPPORTED_COMMAND | Command not supported.
PH_ERR_INVALID_PARAMETER | Parameter passed is invalid.
PH_ERR_RESOURCE_ERROR | Resource not available incase of Static allocation.

§ phOsal_ThreadDelete()

phStatus_t phOsal_ThreadDelete ( phOsal_Thread_t * threadHandle )

This function will delete the thread.

Instead of using any proprietary function use phOsal_ThreadDelete() to delete the task/thread.

Parameters
[in] threadHandle Handle to the therad.
Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_UNSUPPORTED_COMMAND | Command not supported.
PH_ERR_INVALID_PARAMETER | Parameter passed is invalid.

§ phOsal_ThreadChangePrio()

phStatus_t phOsal_ThreadChangePrio | ( | phOsal_Thread_t * | threadHandle,
 |  | uint32_t | newPrio
 | ) |  |

This function changes the priority of the thread.

phOsal_ThreadCreate should be called before using this Api.

Parameters
[in] | threadHandle | Thread Handle.
[in] | newPrio | New Priority of the thread.
Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_UNSUPPORTED_COMMAND | Command not supported.
PH_ERR_INVALID_PARAMETER | Parameter passed is invalid.

§ phOsal_ThreadExit()

phStatus_t phOsal_ThreadExit ( void )

This function exits the thread itself.

Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_UNSUPPORTED_COMMAND | Command not supported.

§ phOsal_ThreadDelay()

phStatus_t phOsal_ThreadDelay ( phOsal_Ticks_t ticksToSleep )

This function delays the calling thread.

Earlier phOsal_TaskDelay() functions was provided to delay the thread. Function phOsal_TaskDelay() is changed to phOsal_ThreadDelay() function to delay the thread.

Parameters
[in] ticksToSleep Time to delay(in Ticks)
Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_UNSUPPORTED_COMMAND | Command not supported.

§ phOsal_EventCreate()

phStatus_t phOsal_EventCreate | ( | phOsal_Event_t * | eventHandle,
 |  | pphOsal_EventObj_t | eventObj
 | ) |  |

This function will create the event group and returns the newly created event group.

Each event requires RAM that is used to hold the event group state.

Earlier phOsal_Event_Init() function was provided which was creating the event group. Functions phOsal_Event_Init() and phOsal_Event_GetEventHandle() are depreciated. Now the user has to use phOsal_EventCreate() function to create the event group.

Parameters
[out] | eventHandle | Event handle
[in] | eventObj | Event object used to create the event.
Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_UNSUPPORTED_COMMAND | Command not supported.
PH_ERR_INVALID_PARAMETER | Parameter passed is invalid.
PH_ERR_RESOURCE_ERROR | Resource not available incase of Static allocation.

§ phOsal_EventPend()

phStatus_t phOsal_EventPend | ( | volatile phOsal_Event_t * | eventHandle,
 |  | phOsal_EventOpt_t | options,
 |  | phOsal_Ticks_t | ticksToWait,
 |  | phOsal_EventBits_t | FlagsToWait,
 |  | phOsal_EventBits_t * | pCurrFlags
 | ) |  |

This function will wait for the events.

Parameters
[in] | eventHandle | Event handle
[in] | options | Event options phOsal_EventOpt_t.
[in] | ticksToWait | Time to wait(in Ticks)
[in] | FlagsToWait | Events to wait.
[out] | pCurrFlags | Events at the time either the event bits being waited for became set or the block time expired

Earlier phOsal_Event_WaitAny()/phOsal_Event_WaitAll() functions was provided to wait for the events. Functions phOsal_Event_WaitAny()/phOsal_Event_WaitAll() are depreciated. Now the user has to use phOsal_EventPend() function to wait/pend on events.

To achieve the functionality of phOsal_Event_WaitAny() : options value has to be E_OS_EVENT_OPT_PEND_SET_ANY To achieve the functionality of phOsal_Event_WaitAll() : options value has to be E_OS_EVENT_OPT_PEND_SET_ALL To clear set event which are passed as FlagsToWait on exit : options value has to be E_OS_EVENT_OPT_PEND_CLEAR_ON_EXIT

To achieive multiple functionality options can be ORed and provided. Example : To wait for any event generated and clear the generated events on exit, then the options value has be : (E_OS_EVENT_OPT_PEND_SET_ANY | E_OS_EVENT_OPT_PEND_CLEAR_ON_EXIT)

Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | Parameter passed is invalid.
PH_ERR_IO_TIMEOUT | Desired events didn't occur during the wait time(ticksToWait).

§ phOsal_EventPost()

phStatus_t phOsal_EventPost | ( | phOsal_Event_t * | eventHandle,
 |  | phOsal_EventOpt_t | options,
 |  | phOsal_EventBits_t | FlagsToPost,
 |  | phOsal_EventBits_t * | pCurrFlags
 | ) |  |

This function will post the events.

Earlier phOsal_Event_Post() function was taking three arguments. which are (phOsal_EventType_t eEvtType, phOsal_EventSource_t eSrc, phOsal_EventDestination_t eDest) Functions phOsal_Event_PostwithDetail() and phOsal_Event_SetDetail() are depreciated. And Function phOsal_Event_Post() is changed t phOsal_EventPost which will accept four arguments. Now the user has to use phOsal_EventPost() function to post the events.

Parameters
[in] | eventHandle | Event handle
[in] | options | Event options phOsal_EventOpt_t.
[in] | FlagsToPost | Events to post.
[out] | pCurrFlags | Events at the time either the event bits being posted.
Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | Parameter passed is invalid.

§ phOsal_EventClear()

phStatus_t phOsal_EventClear | ( | phOsal_Event_t * | eventHandle,
 |  | phOsal_EventOpt_t | options,
 |  | phOsal_EventBits_t | FlagsToClear,
 |  | phOsal_EventBits_t * | pCurrFlags
 | ) |  |

This function will clear the events.

Earlier phOsal_Event_Consume() functions was provided to clear the events. Function phOsal_Event_Consume() is changed t phOsal_EventClear() which will accept four arguments. Now the user has to use phOsal_EventClear() function to clear the events.

Parameters
[in] | eventHandle | Event handle
[in] | options | Event options phOsal_EventOpt_t.
[in] | FlagsToClear | Events to clear.
[out] | pCurrFlags | Events at the time either the event bits being cleared.
Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | Parameter passed is invalid.

§ phOsal_EventGet()

phStatus_t phOsal_EventGet | ( | phOsal_Event_t * | eventHandle,
 |  | phOsal_EventBits_t * | pCurrFlags
 | ) |  |

This function will get the events which are already there.

Earlier phOsal_Event_GetDetail() functions was provided to get the event details. Function phOsal_Event_GetDetail() is depreciated. Now the user has to use phOsal_EventGet() function to get the events.

Parameters
[in] | eventHandle | Event handle
[out] | pCurrFlags | Events at the time either the event bits being cleared.
Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | Parameter passed is invalid.

§ phOsal_EventDelete()

phStatus_t phOsal_EventDelete ( phOsal_Event_t * eventHandle )

This function will delete the events.

Earlier phOsal_Event_Deinit() functions was provided to delete the event group. Function phOsal_Event_Deinit() is depreciated. Now the user has to use phOsal_EventDelete() function to delete the event group.

Parameters
[in] eventHandle Event handle.
Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | Parameter passed is invalid.

§ phOsal_SemCreate()

phStatus_t phOsal_SemCreate | ( | phOsal_Semaphore_t * | semHandle,
 |  | pphOsal_SemObj_t | semObj,
 |  | phOsal_SemOpt_t | opt
 | ) |  |

This function will create the Semaphore and return the handle.

Earlier phOsal_Semaphore_Create() functions was provided to create the semaphore. Function phOsal_Semaphore_Create() is depreciated. Now the user has to use phOsal_SemCreate() function to create the semaphore.

Parameters
[out] | semHandle | Newly created Semaphore Handle.
[in] | semObj | Semaphore Object. This will be used to create the semaphore.
[in] | opt | Option for Semaphore creation phOsal_SemOpt_t
Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_UNSUPPORTED_COMMAND | Command not supported.
PH_ERR_INVALID_PARAMETER | Parameter passed is invalid.
PH_ERR_RESOURCE_ERROR | Resource not available incase of Static allocation.

§ phOsal_SemPend()

phStatus_t phOsal_SemPend | ( | phOsal_Semaphore_t * | semHandle,
 |  | phOsal_TimerPeriodObj_t | timePeriodToWait
 | ) |  |

This function will wait for the semaphore.

The semaphore must be created with a call to phOsal_SemCreate().

Earlier phOsal_Semaphore_Take() functions was provided to take the semaphore. Function phOsal_Semaphore_Take() is depreciated. Now the user has to use phOsal_SemPend() function to pend/take the semaphore.

Parameters
[in] | semHandle | Semaphore handle
[in] | timePeriodToWait | Time to wait phOsal_TimerPeriodObj_t.
Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_UNSUPPORTED_COMMAND | Command not supported.
PH_ERR_INVALID_PARAMETER | Parameter passed is invalid.
PH_ERR_IO_TIMEOUT | Time expired without semaphore becoming available.

§ phOsal_SemPost()

phStatus_t phOsal_SemPost | ( | phOsal_Semaphore_t * | semHandle,
 |  | phOsal_SemOpt_t | opt
 | ) |  |

This function will release the semaphore.

Earlier phOsal_Semaphore_Give() functions was provided to give the semaphore. Function phOsal_Semaphore_Give() is depreciated. Now the user has to use phOsal_SemPost() function to post/give the semaphore.

Parameters
[in] | semHandle | Semaphore handle
[in] | opt | Semaphore options phOsal_SemOpt_t.
Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_UNSUPPORTED_COMMAND | Command not supported.
PH_ERR_INVALID_PARAMETER | Parameter passed is invalid.

§ phOsal_SemDelete()

phStatus_t phOsal_SemDelete ( phOsal_Semaphore_t * semHandle )

This function will delete the semaphore.

Earlier phOsal_Semaphore_Delete() functions was provided to delete the semaphore. Function phOsal_Semaphore_Delete() is changed to phOsal_SemDelete() function to delete the semaphore.

Parameters
[in] semHandle Semaphore handle.
Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_UNSUPPORTED_COMMAND | Command not supported.
PH_ERR_INVALID_PARAMETER | Parameter passed is invalid.

§ phOsal_MutexCreate()

phStatus_t phOsal_MutexCreate | ( | phOsal_Mutex_t * | mutexHandle,
 |  | pphOsal_MutexObj_t | mutexObj
 | ) |  |

This function will create the Mutex and return the handle.

Earlier phOsal_Mutex_Create() functions was provided to create the mutex. Function phOsal_Mutex_Create() is changed to phOsal_MutexCreate() function to create the mutex.

Parameters
[out] | mutexHandle | Newly created Mutex Handle.
[in] | mutexObj | Mutex Object. This will be used to create the mutex.
Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_UNSUPPORTED_COMMAND | Command not supported.
PH_ERR_INVALID_PARAMETER | Parameter passed is invalid.
PH_ERR_RESOURCE_ERROR | Resource not available incase of Static allocation.

§ phOsal_MutexLock()

phStatus_t phOsal_MutexLock | ( | phOsal_Mutex_t * | mutexHandle,
 |  | phOsal_TimerPeriodObj_t | timePeriodToWait
 | ) |  |

This function will lock the mutex.

The semaphore must be created with a call to phOsal_SemCreate().

Earlier phOsal_Mutex_Take() functions was provided to take the semaphore. Function phOsal_Mutex_Take() is depreciated. Now the user has to use phOsal_MutexLock() function to Lock/take the semaphore.

Parameters
[in] | mutexHandle | Semaphore handle
[in] | timePeriodToWait | Time to wait for mutex lock phOsal_TimerPeriodObj_t.
Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_UNSUPPORTED_COMMAND | Command not supported.
PH_ERR_INVALID_PARAMETER | Parameter passed is invalid.
PH_ERR_IO_TIMEOUT | Time expired without mutex getting locked.

§ phOsal_MutexUnLock()

phStatus_t phOsal_MutexUnLock ( phOsal_Mutex_t * mutexHandle )

This function will unlock the semaphore.

Earlier phOsal_Mutex_Give() functions was provided to give the semaphore. Function phOsal_Mutex_Give() is depreciated. Now the user has to use phOsal_MutexUnLock() function to UnLock/give the semaphore.

Parameters
[in] mutexHandle Mutex handle
Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | Parameter passed is invalid.
PH_ERR_UNSUPPORTED_COMMAND | Command not supported.

§ phOsal_MutexDelete()

phStatus_t phOsal_MutexDelete ( phOsal_Mutex_t * mutexHandle )

This function will delete the semaphore.

Earlier phOsal_Mutex_Delete() functions was provided to delete the mutex. Function phOsal_Mutex_Delete() is changed to phOsal_MutexDelete() function to delete the mutex.

Parameters
[in] mutexHandle Mutex handle.
Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | Parameter passed is invalid.
PH_ERR_UNSUPPORTED_COMMAND | Command not supported.

§ phOsal_TimerCreate()

phStatus_t phOsal_TimerCreate | ( | phOsal_Timer_t * | timerHandle,
 |  | pphOsal_TimerObj_t | timerObj
 | ) |  |

This function will create the timer and return the handle.

This function will also configure the timer.

Earlier phOsal_Timer_Create() functions was provided to create the timer. Function phOsal_Timer_Create() is changed to phOsal_TimerCreate() function to create the timer.

Parameters
[out] | timerHandle | Newly created Timer Handle.
[in] | timerObj | Timer Object. This will be used to create the timer.
Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | Parameter passed is invalid.
PH_ERR_RESOURCE_ERROR | Resource not available incase of Static allocation.

§ phOsal_TimerStart()

phStatus_t phOsal_TimerStart ( phOsal_Timer_t * timerHandle )

This function will start the timer.

Earlier phOsal_Timer_Start() functions was provided to start the timer. Function phOsal_Timer_Start() is changed to phOsal_TimerStart() function to start the timer. And the function phOsal_Timer_Reset() is depreciated.

Parameters
[in] timerHandle Newly created Timer Handle.
Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | Parameter passed is invalid.

§ phOsal_TimerStop()

phStatus_t phOsal_TimerStop ( phOsal_Timer_t * timerHandle )

This function will stop the timer.

Earlier phOsal_Timer_Stop() functions was provided to stop the timer. Function phOsal_Timer_Stop() is changed to phOsal_TimerStop() function to stop the timer.

Parameters
[in] timerHandle Newly created Timer Handle.
Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | Parameter passed is invalid.

§ phOsal_TimerGetCurrent()

phStatus_t phOsal_TimerGetCurrent | ( | phOsal_Timer_t * | timerHandle,
 |  | uint32_t * | pdwGetElapsedTime
 | ) |  |

This function will give the elapsed timing of the timer.

Parameters
[in] | timerHandle | Newly created Timer Handle.
[out] | dwGetElapsedTime | Elapsed Time value(ms)
Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | Parameter passed is invalid.

§ phOsal_TimerModify()

phStatus_t phOsal_TimerModify | ( | phOsal_Timer_t * | timerHandle,
 |  | pphOsal_TimerObj_t | timerObj
 | ) |  |

This function is used to modify the parameters of the timer.

Parameters
[in] | timerHandle | Newly created Timer Handle.
[in] | timerObj | Timer object used to modify the timer.
Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | Parameter passed is invalid.

§ phOsal_TimerDelete()

phStatus_t phOsal_TimerDelete ( phOsal_Timer_t * timerHandle )

This function is delete the timer.

Earlier phOsal_Timer_Delete() functions was provided to delete the timer. Function phOsal_Timer_Delete() is changed to phOsal_TimerDelete() function to delete the timer.

Parameters
[in] timerHandle Newly created Timer Handle.
Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | Parameter passed is invalid.

§ phOsal_StartScheduler()

void phOsal_StartScheduler ( void )

This function will start the scheduler.

If insufficient memory, this function will exit. In normal case this function should not exit.

Instead of using any proprietary function use phOsal_StartScheduler() to schedule the tasks/threads.


NXP NFC Reader Library: phOsal_ThreadObj Struct Reference

phOsal_ThreadObj Struct Reference
Common » Operating System Abstraction Layer

Osal Thread Object. More...

Detailed Description

Osal Thread Object.

The documentation for this struct was generated from the following file:
  • phOsal.h


NXP NFC Reader Library: phOsal_EventObj Struct Reference

phOsal_EventObj Struct Reference
Common » Operating System Abstraction Layer

Osal Event Object. More...

Detailed Description

Osal Event Object.

The documentation for this struct was generated from the following file:
  • phOsal.h


NXP NFC Reader Library: phOsal_TimePeriodObj Struct Reference

phOsal_TimePeriodObj Struct Reference
Common » Operating System Abstraction Layer

Timer Period Object. More...

Detailed Description

Timer Period Object.

The documentation for this struct was generated from the following file:
  • phOsal.h


NXP NFC Reader Library: phOsal_TimerObj Struct Reference

phOsal_TimerObj Struct Reference
Common » Operating System Abstraction Layer

Osal Timer Object. More...

Detailed Description

Osal Timer Object.

The documentation for this struct was generated from the following file:
  • phOsal.h


NXP NFC Reader Library: phOsal_SemObj Struct Reference

phOsal_SemObj Struct Reference
Common » Operating System Abstraction Layer

OS Semaphore Object. More...

Detailed Description

OS Semaphore Object.

The documentation for this struct was generated from the following file:
  • phOsal.h


NXP NFC Reader Library: phOsal_MutexObj Struct Reference

phOsal_MutexObj Struct Reference
Common » Operating System Abstraction Layer

Mutex Object. More...

Detailed Description

Mutex Object.

The documentation for this struct was generated from the following file:
  • phOsal.h


NXP NFC Reader Library: Platform Component

Data Structures | Macros | Typedefs | Enumerations | Functions
Platform Component
Common

These Components implement the Platform abstraction layer. More...

Collaboration diagram for Platform Component:

Data Structures

struct phPlatform_DataParams_t
OSAL parameter structure. More...

Macros

#define | PH_PLATFORM_SET_HIGH 1
Logic High. More...
#define | PH_PLATFORM_SET_LOW 0
Logic Low. More...
#define | PH_PLATFORM_MAX_TIMERS 4U
Maximum number of timers available. More...

Typedefs

typedef void(* | pphPlatform_TickTimerISRCallBck_t) (void)
Tick Timer ISR callback which will be called by ISR handler implementation in Platform Layer. More...
typedef void(* | pphPlatform_CallBck_t) (uint8_t bTimerId)
Timer callback interface which will be called once registered timer timeout expires. More...
typedef enum phPlatform_Timer_Status | phPlatform_Timer_Status_t
Status of the timer.

Enumerations

enum phPlatform_Timer_Status { E_TIMER_FREE = 0, E_TIMER_ACTIVE, E_TIMER_RUNNING, E_TIMER_STOPPED }
Status of the timer. More...

Functions

phStatus_t | phPlatform_Init (phPlatform_DataParams_t *pDataParams, uint8_t *pTxBuffer, uint16_t wTxBufSize, uint8_t *pRxBuffer, uint16_t wRxBufSize)
Initializes the Platform component. More...
phStatus_t | phPlatform_DeInit (phPlatform_DataParams_t *pDataParams)
De-initialize the Platform component. More...
void | phPlatform_FE_Reset (void)
Performs Front-end reset. More...
void | phPlatform_FE_Powerdown (void)
Performs Front-end power-down. More...
void | phPlatform_EnterCriticalSection (void)
Enter critical section. More...
void | phPlatform_ExitCriticalSection (void)
Exit critical section. More...
uint32_t | phPlatform_Is_Irq_Context (void)
Returns whether Controller is in ISR mode or NOT. More...
void | phPlatform_Sleep (void)
Enter sleep mode. More...
void | phPlatform_WakeUp (void)
Exit sleep mode. More...
phStatus_t | phPlatform_Timer_Init (phPlatform_DataParams_t *pDataParams)
Initializes the Timer component. More...
void | phPlatform_Timer_Create (phPlatform_DataParams_t *pDataParams, uint32_t dwUnits, phPlatform_Timer_Struct_t **ppTimerHandle)
Allocates a free timer. More...
phStatus_t | phPlatform_Timer_Configure (phPlatform_Timer_Struct_t *pTimerHandle, uint32_t dwTimePeriod, pphPlatform_CallBck_t pCallBackFunc)
This API configures the acquired timer with timeout duration and callback to be called upon timer expire. More...
phStatus_t | phPlatform_Timer_Start (phPlatform_Timer_Struct_t *pTimerHandle, uint16_t wOption)
Start the timer. More...
phStatus_t | phPlatform_Timer_GetElapsedDelay (phPlatform_Timer_Struct_t *pTimerHandle, uint32_t *dwGetElapsedDelay)
Get Elapsed Delay from timer which is created and started before calling this API. More...
phStatus_t | phPlatform_Timer_Stop (phPlatform_Timer_Struct_t *pTimerHandle)
Stop the timer. More...
phStatus_t | phPlatform_Timer_Reset (phPlatform_Timer_Struct_t *pTimerHandle)
Resets the timer allocated to the application which is created by phPlatform_Timer_Create. More...
phStatus_t | phPlatform_Timer_Delete (phPlatform_Timer_Struct_t *pTimerHandle)
Delete or Deallocate the timer. More...
void | phPlatform_Timer_DeInit (phPlatform_DataParams_t *pDataParams)
DeInitializes the Timer component. More...
void | phPlatform_Controller_Init (void)
Initialize Controller related IPs or clock. More...

Platform Ports

#define | PH_PLATFORM_PORT0 0
Platform Host Port Abstraction for Port0. More...
#define | PH_PLATFORM_PORT1 1
Platform Host Port Abstraction for Port1. More...
#define | PH_PLATFORM_PORT2 2
Platform Host Port Abstraction for Port2. More...
#define | PH_PLATFORM_PORT3 3
Platform Host Port Abstraction for Port3. More...
#define | PH_PLATFORM_PORT4 4
Platform Host Port Abstraction for Port4. More...

Timer Configuration

#define | PH_PLATFORM_TIMER_SINGLE_SHOT 0x0000U
On Timer expire it will be Stopped and Timercallback will be called. More...
#define | PH_PLATFORM_TIMER_FREE_RUN 0x0001U
Auto reloads on expire of the Timer and Timercallback will be called. More...

Timer Units

#define | PH_PLATFORM_TIMER_UNIT_US 1000000U
Indicates that the specified delay is in microseconds. More...
#define | PH_PLATFORM_TIMER_UNIT_MS 1000U
Indicates that the specified delay is in milliseconds. More...
#define | PH_PLATFORM_TIMER_UNIT_S 1U
Indicates that the specified delay is in seconds. More...

Detailed Description

These Components implement the Platform abstraction layer.

Macro Definition Documentation

§ PH_PLATFORM_PORT0

#define PH_PLATFORM_PORT0 0

Platform Host Port Abstraction for Port0.

§ PH_PLATFORM_PORT1

#define PH_PLATFORM_PORT1 1

Platform Host Port Abstraction for Port1.

§ PH_PLATFORM_PORT2

#define PH_PLATFORM_PORT2 2

Platform Host Port Abstraction for Port2.

§ PH_PLATFORM_PORT3

#define PH_PLATFORM_PORT3 3

Platform Host Port Abstraction for Port3.

§ PH_PLATFORM_PORT4

#define PH_PLATFORM_PORT4 4

Platform Host Port Abstraction for Port4.

§ PH_PLATFORM_SET_HIGH

#define PH_PLATFORM_SET_HIGH 1

Logic High.

§ PH_PLATFORM_SET_LOW

#define PH_PLATFORM_SET_LOW 0

Logic Low.

§ PH_PLATFORM_MAX_TIMERS

#define PH_PLATFORM_MAX_TIMERS 4U

Maximum number of timers available.

§ PH_PLATFORM_TIMER_SINGLE_SHOT

#define PH_PLATFORM_TIMER_SINGLE_SHOT 0x0000U

On Timer expire it will be Stopped and Timercallback will be called.

§ PH_PLATFORM_TIMER_FREE_RUN

#define PH_PLATFORM_TIMER_FREE_RUN 0x0001U

Auto reloads on expire of the Timer and Timercallback will be called.

§ PH_PLATFORM_TIMER_UNIT_US

#define PH_PLATFORM_TIMER_UNIT_US 1000000U

Indicates that the specified delay is in microseconds.

§ PH_PLATFORM_TIMER_UNIT_MS

#define PH_PLATFORM_TIMER_UNIT_MS 1000U

Indicates that the specified delay is in milliseconds.

§ PH_PLATFORM_TIMER_UNIT_S

#define PH_PLATFORM_TIMER_UNIT_S 1U

Indicates that the specified delay is in seconds.

Typedef Documentation

§ pphPlatform_TickTimerISRCallBck_t

typedef void(* pphPlatform_TickTimerISRCallBck_t) (void)

Tick Timer ISR callback which will be called by ISR handler implementation in Platform Layer.

Return values
None

§ pphPlatform_CallBck_t

typedef void(* pphPlatform_CallBck_t) (uint8_t bTimerId)

Timer callback interface which will be called once registered timer timeout expires.

Parameters
[in] TimerId Timer Id for which callback is called.
Return values
None

Enumeration Type Documentation

§ phPlatform_Timer_Status

enum phPlatform_Timer_Status

Status of the timer.

Enumerator
E_TIMER_FREE | E_TIMER_FREE.
E_TIMER_ACTIVE | E_TIMER_ACTIVE.
E_TIMER_RUNNING | E_TIMER_RUNNING.
E_TIMER_STOPPED | E_TIMER_STOPPED.

Function Documentation

§ phPlatform_Init()

phStatus_t phPlatform_Init | ( | phPlatform_DataParams_t * | pDataParams,
 |  | uint8_t * | pTxBuffer,
 |  | uint16_t | wTxBufSize,
 |  | uint8_t * | pRxBuffer,
 |  | uint16_t | wRxBufSize
 | ) |  |

Initializes the Platform component.

a. Performs Front-end initialization required to configure reset pins and interrupt pins of Controller connected to a particular front-end. b. Initialize BAL. c. Initialize OSAL. d. Initialize HAL. e. Initialize Platform Timers.

Parameters
[in] | pDataParams | Data parameters representing this component. Application allocates this Data structure and passes the pointer of the same.
[in] | pISRCallBack | Application callback that needs to be called by RF ISR Handler.
[in] | pTxBuffer | Pointer to application allocated transmit buffer used by the phhalHw functions.
[in] | wTxBufSize | Size of the application allocated transmit buffer.
[in] | pRxBuffer | Pointer to application allocated receive buffer used by the phhalHw functions.
[in] | wRxBufSize | Size of the application allocated receive buffer. Specify the buffer+1 byte, because one byte is reserved for SPI communication.
Returns
Status of the API
Return values
PH_ERR_SUCCESS Operation successful.

§ phPlatform_DeInit()

phStatus_t phPlatform_DeInit ( phPlatform_DataParams_t * pDataParams )

De-initialize the Platform component.

a. Performs Front-end power down. b. De-initialize HAL.

Parameters
[in] pDataParams Data parameters representing this component.
Returns
Status of the API
Return values
PH_ERR_SUCCESS Operation successful.

§ phPlatform_FE_Reset()

void phPlatform_FE_Reset ( void )

Performs Front-end reset.

When this API is called a pulse will be triggered on "NRSTPD" PIN (Not Reset and Power Down) to reset front-end device.

Returns
void

§ phPlatform_FE_Powerdown()

void phPlatform_FE_Powerdown ( void )

Performs Front-end power-down.

When this API is called a "NRSTPD" PIN (Not Reset and Power Down) will be configured to power-down the front-end device.

Returns
void

§ phPlatform_EnterCriticalSection()

void phPlatform_EnterCriticalSection ( void )

Enter critical section.

Returns
void

§ phPlatform_ExitCriticalSection()

void phPlatform_ExitCriticalSection ( void )

Exit critical section.

Returns
void

§ phPlatform_Is_Irq_Context()

uint32_t phPlatform_Is_Irq_Context ( void )

Returns whether Controller is in ISR mode or NOT.

Returns
uint32_t 0-> Controller is NOT in ISR handler mode, Non-zero to indicate ISR mode.

§ phPlatform_Sleep()

void phPlatform_Sleep ( void )

Enter sleep mode.

Returns
void

§ phPlatform_WakeUp()

void phPlatform_WakeUp ( void )

Exit sleep mode.

Returns
void

§ phPlatform_Timer_Init()

phStatus_t phPlatform_Timer_Init ( phPlatform_DataParams_t * pDataParams )

Initializes the Timer component.

Note
This Api must be called before calling any other Timer Api.
Parameters
[in] pDataParams Pointer to this layers parameter structure.
Returns
Status of the API
Return values
PH_ERR_SUCCESS Operation successful.

§ phPlatform_Timer_Create()

void phPlatform_Timer_Create | ( | phPlatform_DataParams_t * | pDataParams,
 |  | uint32_t | dwUnits,
 |  | phPlatform_Timer_Struct_t ** | ppTimerHandle
 | ) |  |

Allocates a free timer.

Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | dwUnits | Timer tick units.
[out] | ppTimerHandle | Timer handle in case of success else NULL.
Returns
void

§ phPlatform_Timer_Configure()

phStatus_t phPlatform_Timer_Configure | ( | phPlatform_Timer_Struct_t * | pTimerHandle,
 |  | uint32_t | dwTimePeriod,
 |  | pphPlatform_CallBck_t | pCallBackFunc
 | ) |  |

This API configures the acquired timer with timeout duration and callback to be called upon timer expire.

Parameters
[in] | pTimerHandle | Timer handle returned by phPlatform_Timer_Create.
[in] | dwTimePeriod | Time delay count.
[in] | pCallBackFunc | Callback to be called on time out.
Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | Invalid input parameter.
PH_ERR_PARAMETER_OVERFLOW | If timer cannot be configured to the provide time by parameter dwTimePeriod.

§ phPlatform_Timer_Start()

phStatus_t phPlatform_Timer_Start | ( | phPlatform_Timer_Struct_t * | pTimerHandle,
 |  | uint16_t | wOption
 | ) |  |

Start the timer.

Parameters
[in] | pTimerHandle | Timer handle returned by phPlatform_Timer_Create.
[in] | wOption | Parameter to mention Single shot PH_PLATFORM_TIMER_SINGLE_SHOT or Free running timer PH_PLATFORM_TIMER_FREE_RUN.
Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | Invalid input parameter.
PH_ERR_RESOURCE_ERROR | Timer could not be started.

§ phPlatform_Timer_GetElapsedDelay()

phStatus_t phPlatform_Timer_GetElapsedDelay | ( | phPlatform_Timer_Struct_t * | pTimerHandle,
 |  | uint32_t * | dwGetElapsedDelay
 | ) |  |

Get Elapsed Delay from timer which is created and started before calling this API.

Parameters
[in] | pTimerHandle | Timer handle returned by phPlatform_Timer_Create.
[out] | dwGetElapsedDelay | Measured Delay after Timer Start in sec/milli/micro seconds based on input option.
Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | Invalid input parameter.

§ phPlatform_Timer_Stop()

phStatus_t phPlatform_Timer_Stop ( phPlatform_Timer_Struct_t * pTimerHandle )

Stop the timer.

Parameters
[in] pTimerHandle Timer handle returned by phPlatform_Timer_Create.
Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | Invalid input parameter.
PH_ERR_RESOURCE_ERROR | Timer could not be stopped.

§ phPlatform_Timer_Reset()

phStatus_t phPlatform_Timer_Reset ( phPlatform_Timer_Struct_t * pTimerHandle )

Resets the timer allocated to the application which is created by phPlatform_Timer_Create.

Parameters
[in] pTimerHandle Timer handle returned by phPlatform_Timer_Create.
Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | Invalid input parameter.
PH_ERR_RESOURCE_ERROR | Timer could not be stopped.

§ phPlatform_Timer_Delete()

phStatus_t phPlatform_Timer_Delete ( phPlatform_Timer_Struct_t * pTimerHandle )

Delete or Deallocate the timer.

Parameters
[in] pTimerHandle Timer handle returned by phPlatform_Timer_Create.
Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | Invalid input parameter.
PH_ERR_RESOURCE_ERROR | Timer could not be stopped.

§ phPlatform_Timer_DeInit()

void phPlatform_Timer_DeInit ( phPlatform_DataParams_t * pDataParams )

DeInitializes the Timer component.

Parameters
[in] pDataParams Pointer to this layers parameter structure.
Returns
void

§ phPlatform_Controller_Init()

void phPlatform_Controller_Init ( void )

Initialize Controller related IPs or clock.

Returns
void


NXP NFC Reader Library: phPlatform_DataParams_t Struct Reference

Data Fields
phPlatform_DataParams_t Struct Reference
Common » Platform Component

OSAL parameter structure. More...

Data Fields

uint16_t wId
ID of this component, do not modify. More...
phhalHw_Rc523_DataParams_t sHal
HAL component holder. More...
phhalHw_Rc663_DataParams_t sHal
HAL component holder. More...
phhalHw_Pn5180_DataParams_t sHal
HAL component holder. More...
phhalHw_PN7462AU_DataParams_t sHal
HAL component holder. More...
phbalReg_LpcOpenSpi_DataParams_t sBal
BAL component holder. More...
phbalReg_LpcOpenI2c_DataParams_t sBal
BAL component holder. More...
phKeyStore_Sw_DataParams_t sKeyStore
Keystore dataparams, due to design limitation keystore is included as part of platform dataparams. More...
phPlatform_Timer_Struct_t gTimers [PH_PLATFORM_MAX_TIMERS]
Timer structure. More...

Detailed Description

OSAL parameter structure.

Field Documentation

§ wId

uint16_t phPlatform_DataParams_t::wId

ID of this component, do not modify.

§ sHal [1/4]

phhalHw_Rc523_DataParams_t phPlatform_DataParams_t::sHal

HAL component holder.

§ sHal [2/4]

phhalHw_Rc663_DataParams_t phPlatform_DataParams_t::sHal

HAL component holder.

§ sHal [3/4]

phhalHw_Pn5180_DataParams_t phPlatform_DataParams_t::sHal

HAL component holder.

§ sHal [4/4]

phhalHw_PN7462AU_DataParams_t phPlatform_DataParams_t::sHal

HAL component holder.

§ sBal [1/2]

phbalReg_LpcOpenSpi_DataParams_t phPlatform_DataParams_t::sBal

BAL component holder.

§ sBal [2/2]

phbalReg_LpcOpenI2c_DataParams_t phPlatform_DataParams_t::sBal

BAL component holder.

§ sKeyStore

phKeyStore_Sw_DataParams_t phPlatform_DataParams_t::sKeyStore

Keystore dataparams, due to design limitation keystore is included as part of platform dataparams.

§ gTimers

phPlatform_Timer_Struct_t phPlatform_DataParams_t::gTimers[PH_PLATFORM_MAX_TIMERS]

Timer structure.

The documentation for this struct was generated from the following file:
  • phPlatform.h


NXP NFC Reader Library: Activity Layer

Modules
Activity Layer

This Layer Contains implementation of Discovery Loop component. More...

Collaboration diagram for Activity Layer:

Modules

Discovery Loop
Discovery loop component as per NFC Forum Activity Specification 1.1 and EMVCo Digital 2.5 specification.

Detailed Description

This Layer Contains implementation of Discovery Loop component.


NXP NFC Reader Library: Discovery Loop

Modules | Functions
Discovery Loop
Activity Layer

Discovery loop component as per NFC Forum Activity Specification 1.1 and EMVCo Digital 2.5 specification. More...

Collaboration diagram for Discovery Loop:

Modules

Component : Software

Functions

phStatus_t | phacDiscLoop_Run (void *pDataParams, uint8_t bEntryPoint)
Starts the discovery loop in poll mode or listen mode. More...
phStatus_t | phacDiscLoop_SetConfig (void *pDataParams, uint16_t wConfig, uint16_t wValue)
Set discovery loop configuration value. More...
phStatus_t | phacDiscLoop_GetConfig (void *pDataParams, uint16_t wConfig, uint16_t *pValue)
Get discovery loop configuration value. More...
phStatus_t | phacDiscLoop_ActivateCard (void *pDataParams, uint8_t bTagType, uint8_t bTagIndex)
Activates the given tag type with given index. More...

Configuration Types

These options shall be used along with phacDiscLoop_SetConfig and phacDiscLoop_GetConfig to set/get discovery loop configurations.

#define | PHAC_DISCLOOP_CONFIG_GTA_VALUE_US 0x00U
Set/Get the guard time for Type A technology in microseconds for passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_GTB_VALUE_US 0x01U
Set/Get the guard time for Type B technology in microseconds for passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_GTFB_VALUE_US 0x02U
Set/Get the guard time for Type F technology in microseconds for passive poll mode when polling for Type B is preceded by polling for Type F. More...
#define | PHAC_DISCLOOP_CONFIG_GTBF_VALUE_US 0x03U
Set/Get the guard time for Type F technology in microseconds for passive poll mode when polling for Type F is preceded by polling for Type B. More...
#define | PHAC_DISCLOOP_CONFIG_GTV_VALUE_US 0x04U
Set/Get the guard time for Type V technology in microseconds for passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_GT18000P3M3_VALUE_US 0x05U
Set/Get the guard time for 18000P3M3 technology in microseconds for passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_GT_ACTIVE_US 0x06U
Set/Get the guard time for Active poll mode in microseconds. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEA_DEVICE_LIMIT 0x10U
Set/Get the number of Type A devices/tags that can be detected in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEB_DEVICE_LIMIT 0x11U
Set/Get the number of Type B devices/tags that can be detected in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEF_DEVICE_LIMIT 0x12U
Set/Get the number of Type F devices/tags that can be detected in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEV_DEVICE_LIMIT 0x13U
Set/Get the number of Type V tags that can be detected in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_18000P3M3_DEVICE_LIMIT 0x14U
Set/Get the number of 18000P3M3 tags that can be detected in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEA_TAGS_FOUND 0x20U
Returns the number of Type A devices/tags found in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEB_TAGS_FOUND 0x21U
Returns the number of Type B devices/tags found in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEF_TAGS_FOUND 0x22U
Returns the number of Type F devices/tags found in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEV_TAGS_FOUND 0x23U
Returns the number of Type V tags found in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_18000P3M3_TAGS_FOUND 0x24U
Returns the number of 18000P3M3 tags found in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEB_SUPPORT_TYPE4B 0x25U
Returns if the activated Type B device/tag is compliant with ISO/IEC 14443-4 or not. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEB_AFI_REQ 0x30U
Set/Get Application Family Identifier (AFI) to be used for Type B in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEB_EXTATQB 0x31U
Enable or disable (PH_ON or PH_OFF) extended ATQB (Answer to Request B) option for Type B during passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEB_FSDI 0x32U
Sets the Frame Size Device Integer (FSDI) value for the Type B tags in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEB_CID 0x33U
Sets the Card Identifier (CID) value for the Type B tags in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEB_NAD 0x34U
Sets the Node ADdress (NAD) value for the Type B tags in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEB_DRI 0x35U
Sets the Divisor Receive Integer (DRI) for Type B tags in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEB_DSI 0x36U
Sets the Divisor Send Integer (DSI) for Type B tags in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEA_I3P4_FSDI 0x40U
Sets the Frame Size Device Integer (FSDI) for the 14443P4A tags in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEA_I3P4_CID 0x41U
Sets the Card Identifier (CID) for the 14443P4A tags in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEA_I3P4_NAD 0x42U
Sets the Node ADdress (NAD) for the 14443P4A tags in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEA_I3P4_DRI 0x43U
Sets the Divisor Receive Integer (DRI) for the 14443P4A tags in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEA_I3P4_DSI 0x44U
Sets the Divisor Send Integer (DSI) for the 14443P4A tags in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEA_P2P_DID 0x45U
Sets the Device Identifier (DID) for Type A P2P devices in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEA_P2P_LRI 0x46U
Sets the Initiator Length Reduction field (LRI) for Type A P2P devices in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEA_P2P_NAD_ENABLE 0x47U
Enable/Disable Node Addressing (NAD) (PH_ON or PH_OFF) for Type A P2P devices in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEA_P2P_NAD 0x48U
Sets the Node Address (NAD) for Type A P2P devices in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEA_P2P_GI_LEN 0x49U
Sets the length of the general bytes for Type A P2P devices in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEA_P2P_ATR_RES_LEN 0x50U
Get ATR response length from Type A P2P devices in passive poll mode.
#define | PHAC_DISCLOOP_CONFIG_TYPEF_P2P_DID 0x51U
Sets the Device Identifier (DID) for Type F P2P devices in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEF_P2P_LRI 0x52U
Sets the Initiator Length Reduction field (LRI) for Type F P2P devices in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEF_P2P_NAD_ENABLE 0x53U
Enable/Disable Node Addressing (NAD) (PH_ON or PH_OFF) for Type F P2P devices in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEF_P2P_NAD 0x54U
Sets the Node Address (NAD) for Type F P2P devices in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEF_P2P_GI_LEN 0x55U
Sets the length of the general bytes for Type F P2P devices in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEF_P2P_ATR_RES_LEN 0x56U
Get ATR response length from Type A P2P devices in passive poll mode.
#define | PHAC_DISCLOOP_CONFIG_TYPEF_CUR_BAUD 0x57U
Set/Get the baud rate of Felica in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TYPEV_RX_DATA_RATE 0x60U
Configure ISO 15693 for high/low RX data rate. More...
#define | PHAC_DISCLOOP_CONFIG_I18000P3M3_MODULATION 0x70U
Configure ISO 18000p3m3 modulation/sub-carrier. More...
#define | PHAC_DISCLOOP_CONFIG_I18000P3M3_FREQUENCY 0x71U
Configure ISO 18000p3m3 link frequency. More...
#define | PHAC_DISCLOOP_CONFIG_ENABLE_LPCD 0x80U
Enable/Disable Low Power Card Detection (LPCD) in passive poll mode (PH_ON or PH_OFF). More...
#define | PHAC_DISCLOOP_CONFIG_NR_TAGS_FOUND 0x81U
Returns the number of devices/tags found in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_ANTI_COLL 0x88U
Enable/Disable anti-collision support for Type A technology (PH_ON or PH_OFF). More...
#define | PHAC_DISCLOOP_CONFIG_ADDITIONAL_INFO 0x85U
Get the actual error code from lower layer when discovery loop returns PHAC_DISCLOOP_FAILURE.
#define | PHAC_DISCLOOP_CONFIG_OPE_MODE 0x82U
Configure operation mode of discovery loop. More...
#define | PHAC_DISCLOOP_CONFIG_COLLISION_PENDING 0x83U
Get collision pending status of polled technologies. More...
#define | PHAC_DISCLOOP_CONFIG_NEXT_POLL_STATE 0x84U
Set the discovery loop state to start with while in poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_BAIL_OUT 0x86U
Set/Get the bail out option for various technologies in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_TECH_DETECTED 0x87U
Returns the technologies that were detected during poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_ACT_LIS_TECH_CFG 0x89U
Configure technologies to listen for in active listen mode. More...
#define | PHAC_DISCLOOP_CONFIG_ACT_POLL_TECH_CFG 0x8AU
Configure technologies to be detected in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_PAS_LIS_TECH_CFG 0x8BU
Configure technologies to listen for in passive listen mode. More...
#define | PHAC_DISCLOOP_CONFIG_PAS_POLL_TECH_CFG 0x8CU
Configure technologies to be detected in passive poll mode. More...
#define | PHAC_DISCLOOP_CONFIG_ACTIVITY_VERSION 0x8DU
Configure NFC activity version. More...
#define | PHAC_DISCLOOP_CONFIG_TARGET_RETRY_COUNT 0x90U
Configure AUTOCOLL retry count in listen mode. More...

Detailed Description

Discovery loop component as per NFC Forum Activity Specification 1.1 and EMVCo Digital 2.5 specification.

Discovery loop implements poll mode based on NFC Activity Specification 1.1 (backward compatibility with version 1.0) and EMVCo Specification 2.5. Listen mode is implemented based on NFC Activity Specification 1.1. Support for Type V (ISO 15693) polling is included based on NFC Forum draft specification. ISO 18000-3 Mode 3 (EPC Gen2) is supported as a proprietary technology in poll mode.

Poll_Mode This scenario depicts sequence for Poll_Mode.

Listen_Mode This scenario depicts sequence for Listen_Mode.

Macro Definition Documentation

§ PHAC_DISCLOOP_CONFIG_GTA_VALUE_US

#define PHAC_DISCLOOP_CONFIG_GTA_VALUE_US 0x00U

Set/Get the guard time for Type A technology in microseconds for passive poll mode.

Default guard time is set to 5200 microseconds for Type A.

§ PHAC_DISCLOOP_CONFIG_GTB_VALUE_US

#define PHAC_DISCLOOP_CONFIG_GTB_VALUE_US 0x01U

Set/Get the guard time for Type B technology in microseconds for passive poll mode.

Default guard time is set to 5200 microseconds for Type B.

§ PHAC_DISCLOOP_CONFIG_GTFB_VALUE_US

#define PHAC_DISCLOOP_CONFIG_GTFB_VALUE_US 0x02U

Set/Get the guard time for Type F technology in microseconds for passive poll mode when polling for Type B is preceded by polling for Type F.

Default guard time is set to 20400 microseconds for Type F.

§ PHAC_DISCLOOP_CONFIG_GTBF_VALUE_US

#define PHAC_DISCLOOP_CONFIG_GTBF_VALUE_US 0x03U

Set/Get the guard time for Type F technology in microseconds for passive poll mode when polling for Type F is preceded by polling for Type B.

Default guard time is set to 15300 microseconds for Type F.

§ PHAC_DISCLOOP_CONFIG_GTV_VALUE_US

#define PHAC_DISCLOOP_CONFIG_GTV_VALUE_US 0x04U

Set/Get the guard time for Type V technology in microseconds for passive poll mode.

Default guard time is set to 5200 microseconds for Type V.

§ PHAC_DISCLOOP_CONFIG_GT18000P3M3_VALUE_US

#define PHAC_DISCLOOP_CONFIG_GT18000P3M3_VALUE_US 0x05U

Set/Get the guard time for 18000P3M3 technology in microseconds for passive poll mode.

Default guard time is set to 10000 microseconds for 18000P3M3.

§ PHAC_DISCLOOP_CONFIG_GT_ACTIVE_US

#define PHAC_DISCLOOP_CONFIG_GT_ACTIVE_US 0x06U

Set/Get the guard time for Active poll mode in microseconds.

Default guard time is set to 5100 microseconds.

§ PHAC_DISCLOOP_CONFIG_TYPEA_DEVICE_LIMIT

#define PHAC_DISCLOOP_CONFIG_TYPEA_DEVICE_LIMIT 0x10U

Set/Get the number of Type A devices/tags that can be detected in passive poll mode.

Default device limit is 1 for Type A. Maximum supported device limit is PHAC_DISCLOOP_CFG_MAX_CARDS_SUPPORTED.

§ PHAC_DISCLOOP_CONFIG_TYPEB_DEVICE_LIMIT

#define PHAC_DISCLOOP_CONFIG_TYPEB_DEVICE_LIMIT 0x11U

Set/Get the number of Type B devices/tags that can be detected in passive poll mode.

Default device limit is 1 for Type B. Maximum supported device limit is PHAC_DISCLOOP_CFG_MAX_CARDS_SUPPORTED.

§ PHAC_DISCLOOP_CONFIG_TYPEF_DEVICE_LIMIT

#define PHAC_DISCLOOP_CONFIG_TYPEF_DEVICE_LIMIT 0x12U

Set/Get the number of Type F devices/tags that can be detected in passive poll mode.

Default device limit is 1 for Type F. Maximum supported device limit is PHAC_DISCLOOP_CFG_MAX_CARDS_SUPPORTED.

§ PHAC_DISCLOOP_CONFIG_TYPEV_DEVICE_LIMIT

#define PHAC_DISCLOOP_CONFIG_TYPEV_DEVICE_LIMIT 0x13U

Set/Get the number of Type V tags that can be detected in passive poll mode.

Default device limit is 1 for Type V. Maximum supported device limit is PHAC_DISCLOOP_CFG_MAX_CARDS_SUPPORTED.

§ PHAC_DISCLOOP_CONFIG_18000P3M3_DEVICE_LIMIT

#define PHAC_DISCLOOP_CONFIG_18000P3M3_DEVICE_LIMIT 0x14U

Set/Get the number of 18000P3M3 tags that can be detected in passive poll mode.

Default device limit is 1 for 18000P3M3. Maximum supported device limit is PHAC_DISCLOOP_CFG_MAX_CARDS_SUPPORTED.

§ PHAC_DISCLOOP_CONFIG_TYPEA_TAGS_FOUND

#define PHAC_DISCLOOP_CONFIG_TYPEA_TAGS_FOUND 0x20U

Returns the number of Type A devices/tags found in passive poll mode.

This gives the number of Type A devices/tags found after phacDiscLoop_Run in poll mode (PHAC_DISCLOOP_ENTRY_POINT_POLL).

§ PHAC_DISCLOOP_CONFIG_TYPEB_TAGS_FOUND

#define PHAC_DISCLOOP_CONFIG_TYPEB_TAGS_FOUND 0x21U

Returns the number of Type B devices/tags found in passive poll mode.

This gives the number of Type B devices/tags found after phacDiscLoop_Run in poll mode (PHAC_DISCLOOP_ENTRY_POINT_POLL).

§ PHAC_DISCLOOP_CONFIG_TYPEF_TAGS_FOUND

#define PHAC_DISCLOOP_CONFIG_TYPEF_TAGS_FOUND 0x22U

Returns the number of Type F devices/tags found in passive poll mode.

This gives the number of Type F devices/tags found after phacDiscLoop_Run in poll mode (PHAC_DISCLOOP_ENTRY_POINT_POLL).

§ PHAC_DISCLOOP_CONFIG_TYPEV_TAGS_FOUND

#define PHAC_DISCLOOP_CONFIG_TYPEV_TAGS_FOUND 0x23U

Returns the number of Type V tags found in passive poll mode.

This gives the number of Type V tags found after phacDiscLoop_Run in poll mode (PHAC_DISCLOOP_ENTRY_POINT_POLL).

§ PHAC_DISCLOOP_CONFIG_18000P3M3_TAGS_FOUND

#define PHAC_DISCLOOP_CONFIG_18000P3M3_TAGS_FOUND 0x24U

Returns the number of 18000P3M3 tags found in passive poll mode.

This gives the number of 18000P3M3 tags found after phacDiscLoop_Run in poll mode (PHAC_DISCLOOP_ENTRY_POINT_POLL).

§ PHAC_DISCLOOP_CONFIG_TYPEB_SUPPORT_TYPE4B

#define PHAC_DISCLOOP_CONFIG_TYPEB_SUPPORT_TYPE4B 0x25U

Returns if the activated Type B device/tag is compliant with ISO/IEC 14443-4 or not.

In ISO mode this is used to take decision if tag is compliant with ISO/IEC 14443-4.

§ PHAC_DISCLOOP_CONFIG_TYPEB_AFI_REQ

#define PHAC_DISCLOOP_CONFIG_TYPEB_AFI_REQ 0x30U

Set/Get Application Family Identifier (AFI) to be used for Type B in passive poll mode.

Default is 0.

§ PHAC_DISCLOOP_CONFIG_TYPEB_EXTATQB

#define PHAC_DISCLOOP_CONFIG_TYPEB_EXTATQB 0x31U

Enable or disable (PH_ON or PH_OFF) extended ATQB (Answer to Request B) option for Type B during passive poll mode.

Default is PH_OFF.

§ PHAC_DISCLOOP_CONFIG_TYPEB_FSDI

#define PHAC_DISCLOOP_CONFIG_TYPEB_FSDI 0x32U

Sets the Frame Size Device Integer (FSDI) value for the Type B tags in passive poll mode.

Default is 0x08.

§ PHAC_DISCLOOP_CONFIG_TYPEB_CID

#define PHAC_DISCLOOP_CONFIG_TYPEB_CID 0x33U

Sets the Card Identifier (CID) value for the Type B tags in passive poll mode.

Default is 0.

§ PHAC_DISCLOOP_CONFIG_TYPEB_NAD

#define PHAC_DISCLOOP_CONFIG_TYPEB_NAD 0x34U

Sets the Node ADdress (NAD) value for the Type B tags in passive poll mode.

Default is 0.

§ PHAC_DISCLOOP_CONFIG_TYPEB_DRI

#define PHAC_DISCLOOP_CONFIG_TYPEB_DRI 0x35U

Sets the Divisor Receive Integer (DRI) for Type B tags in passive poll mode.

Default is 0.

§ PHAC_DISCLOOP_CONFIG_TYPEB_DSI

#define PHAC_DISCLOOP_CONFIG_TYPEB_DSI 0x36U

Sets the Divisor Send Integer (DSI) for Type B tags in passive poll mode.

Default is 0.

§ PHAC_DISCLOOP_CONFIG_TYPEA_I3P4_FSDI

#define PHAC_DISCLOOP_CONFIG_TYPEA_I3P4_FSDI 0x40U

Sets the Frame Size Device Integer (FSDI) for the 14443P4A tags in passive poll mode.

Default is 0x08.

§ PHAC_DISCLOOP_CONFIG_TYPEA_I3P4_CID

#define PHAC_DISCLOOP_CONFIG_TYPEA_I3P4_CID 0x41U

Sets the Card Identifier (CID) for the 14443P4A tags in passive poll mode.

Default is 0.

§ PHAC_DISCLOOP_CONFIG_TYPEA_I3P4_NAD

#define PHAC_DISCLOOP_CONFIG_TYPEA_I3P4_NAD 0x42U

Sets the Node ADdress (NAD) for the 14443P4A tags in passive poll mode.

Default is 0.

§ PHAC_DISCLOOP_CONFIG_TYPEA_I3P4_DRI

#define PHAC_DISCLOOP_CONFIG_TYPEA_I3P4_DRI 0x43U

Sets the Divisor Receive Integer (DRI) for the 14443P4A tags in passive poll mode.

Default is 0.

§ PHAC_DISCLOOP_CONFIG_TYPEA_I3P4_DSI

#define PHAC_DISCLOOP_CONFIG_TYPEA_I3P4_DSI 0x44U

Sets the Divisor Send Integer (DSI) for the 14443P4A tags in passive poll mode.

Default is 0.

§ PHAC_DISCLOOP_CONFIG_TYPEA_P2P_DID

#define PHAC_DISCLOOP_CONFIG_TYPEA_P2P_DID 0x45U

Sets the Device Identifier (DID) for Type A P2P devices in passive poll mode.

Default is 0.

§ PHAC_DISCLOOP_CONFIG_TYPEA_P2P_LRI

#define PHAC_DISCLOOP_CONFIG_TYPEA_P2P_LRI 0x46U

Sets the Initiator Length Reduction field (LRI) for Type A P2P devices in passive poll mode.

Default is 0.

§ PHAC_DISCLOOP_CONFIG_TYPEA_P2P_NAD_ENABLE

#define PHAC_DISCLOOP_CONFIG_TYPEA_P2P_NAD_ENABLE 0x47U

Enable/Disable Node Addressing (NAD) (PH_ON or PH_OFF) for Type A P2P devices in passive poll mode.

Default is PH_OFF.

§ PHAC_DISCLOOP_CONFIG_TYPEA_P2P_NAD

#define PHAC_DISCLOOP_CONFIG_TYPEA_P2P_NAD 0x48U

Sets the Node Address (NAD) for Type A P2P devices in passive poll mode.

Default is 0.

§ PHAC_DISCLOOP_CONFIG_TYPEA_P2P_GI_LEN

#define PHAC_DISCLOOP_CONFIG_TYPEA_P2P_GI_LEN 0x49U

Sets the length of the general bytes for Type A P2P devices in passive poll mode.

Default is 0.

§ PHAC_DISCLOOP_CONFIG_TYPEF_P2P_DID

#define PHAC_DISCLOOP_CONFIG_TYPEF_P2P_DID 0x51U

Sets the Device Identifier (DID) for Type F P2P devices in passive poll mode.

Default is 0.

§ PHAC_DISCLOOP_CONFIG_TYPEF_P2P_LRI

#define PHAC_DISCLOOP_CONFIG_TYPEF_P2P_LRI 0x52U

Sets the Initiator Length Reduction field (LRI) for Type F P2P devices in passive poll mode.

Default is 0.

§ PHAC_DISCLOOP_CONFIG_TYPEF_P2P_NAD_ENABLE

#define PHAC_DISCLOOP_CONFIG_TYPEF_P2P_NAD_ENABLE 0x53U

Enable/Disable Node Addressing (NAD) (PH_ON or PH_OFF) for Type F P2P devices in passive poll mode.

Default is PH_OFF.

§ PHAC_DISCLOOP_CONFIG_TYPEF_P2P_NAD

#define PHAC_DISCLOOP_CONFIG_TYPEF_P2P_NAD 0x54U

Sets the Node Address (NAD) for Type F P2P devices in passive poll mode.

Default is 0.

§ PHAC_DISCLOOP_CONFIG_TYPEF_P2P_GI_LEN

#define PHAC_DISCLOOP_CONFIG_TYPEF_P2P_GI_LEN 0x55U

Sets the length of the general bytes for Type F P2P devices in passive poll mode.

Default is 0.

§ PHAC_DISCLOOP_CONFIG_TYPEF_CUR_BAUD

#define PHAC_DISCLOOP_CONFIG_TYPEF_CUR_BAUD 0x57U

Set/Get the baud rate of Felica in passive poll mode.

PHAC_DISCLOOP_CON_BITR_212 - Felica @ 212 kbps.
PHAC_DISCLOOP_CON_BITR_424 - Felica @ 424 kbps.

§ PHAC_DISCLOOP_CONFIG_TYPEV_RX_DATA_RATE

#define PHAC_DISCLOOP_CONFIG_TYPEV_RX_DATA_RATE 0x60U

Configure ISO 15693 for high/low RX data rate.

PHHAL_HW_RF_RX_DATARATE_HIGH
PHHAL_HW_RF_RX_DATARATE_LOW
Default is PHHAL_HW_RF_RX_DATARATE_HIGH.

§ PHAC_DISCLOOP_CONFIG_I18000P3M3_MODULATION

#define PHAC_DISCLOOP_CONFIG_I18000P3M3_MODULATION 0x70U

Configure ISO 18000p3m3 modulation/sub-carrier.

PHPAL_I18000P3M3_M_MANCHESTER_2 - Use two sub-carrier.
PHPAL_I18000P3M3_M_MANCHESTER_4 - Use four sub-carrier.
Default is PHPAL_I18000P3M3_M_MANCHESTER_4.

§ PHAC_DISCLOOP_CONFIG_I18000P3M3_FREQUENCY

#define PHAC_DISCLOOP_CONFIG_I18000P3M3_FREQUENCY 0x71U

Configure ISO 18000p3m3 link frequency.

PHPAL_I18000P3M3_LF_423KHZ - 423kHz (fc/32).
PHPAL_I18000P3M3_LF_847KHZ - 847kHz (fc/16).
Default is PHPAL_I18000P3M3_LF_847KHZ.

§ PHAC_DISCLOOP_CONFIG_ENABLE_LPCD

#define PHAC_DISCLOOP_CONFIG_ENABLE_LPCD 0x80U

Enable/Disable Low Power Card Detection (LPCD) in passive poll mode (PH_ON or PH_OFF).

Default is PH_OFF.

§ PHAC_DISCLOOP_CONFIG_NR_TAGS_FOUND

#define PHAC_DISCLOOP_CONFIG_NR_TAGS_FOUND 0x81U

Returns the number of devices/tags found in passive poll mode.

This gives the number of devices/tags found after phacDiscLoop_Run in poll mode (PHAC_DISCLOOP_ENTRY_POINT_POLL).

§ PHAC_DISCLOOP_CONFIG_ANTI_COLL

#define PHAC_DISCLOOP_CONFIG_ANTI_COLL 0x88U

Enable/Disable anti-collision support for Type A technology (PH_ON or PH_OFF).

Default is PH_ON.

§ PHAC_DISCLOOP_CONFIG_OPE_MODE

#define PHAC_DISCLOOP_CONFIG_OPE_MODE 0x82U

Configure operation mode of discovery loop.

RD_LIB_MODE_EMVCO -> Run in EMVCO mode.
RD_LIB_MODE_NFC -> Run in NFC mode. This is the default mode.
Default is RD_LIB_MODE_NFC.

§ PHAC_DISCLOOP_CONFIG_COLLISION_PENDING

#define PHAC_DISCLOOP_CONFIG_COLLISION_PENDING 0x83U

Get collision pending status of polled technologies.

PHAC_DISCLOOP_POS_BIT_MASK_A -> Collision pending for Type A.
PHAC_DISCLOOP_POS_BIT_MASK_B -> Collision pending for Type B.
PHAC_DISCLOOP_POS_BIT_MASK_F212 -> Collision pending for FELICA @ 212 kbps.
PHAC_DISCLOOP_POS_BIT_MASK_F424 -> Collision pending for FELICA @ 424 kbps.
PHAC_DISCLOOP_POS_BIT_MASK_V -> Collision pending for Type V / ISO 15693.
PHAC_DISCLOOP_POS_BIT_MASK_18000P3M3 -> Collision pending for ISO 18000p3m3/ EPC Gen2.

§ PHAC_DISCLOOP_CONFIG_NEXT_POLL_STATE

#define PHAC_DISCLOOP_CONFIG_NEXT_POLL_STATE 0x84U

Set the discovery loop state to start with while in poll mode.

Refer phacDiscLoop_Sw_PollState for all supported states.
PHAC_DISCLOOP_POLL_STATE_DETECTION -> Start with detection phase.
PHAC_DISCLOOP_POLL_STATE_COLLISION_RESOLUTION -> Start with collision resolution.
PHAC_DISCLOOP_POLL_STATE_REMOVAL -> Start with card removal phase (shall be used only in EMVCo mode).
Default is PHAC_DISCLOOP_POLL_STATE_DETECTION. When phacDiscLoop_Run gives PHAC_DISCLOOP_MULTI_TECH_DETECTED in poll mode, application shall select one technology and start poll mode again in PHAC_DISCLOOP_POLL_STATE_COLLISION_RESOLUTION state.

§ PHAC_DISCLOOP_CONFIG_BAIL_OUT

#define PHAC_DISCLOOP_CONFIG_BAIL_OUT 0x86U

Set/Get the bail out option for various technologies in passive poll mode.

Default bail out is not set for any technology.
PHAC_DISCLOOP_POS_BIT_MASK_A -> Bail out for Type A.
PHAC_DISCLOOP_POS_BIT_MASK_B -> Bail out for Type B.
PHAC_DISCLOOP_POS_BIT_MASK_F212 -> Bail out for Type FELICA @ 212 kbps.
PHAC_DISCLOOP_POS_BIT_MASK_F424 -> Bail out for Type FELICA @ 424 kbps.
PHAC_DISCLOOP_POS_BIT_MASK_V -> Bail out for Type V / ISO 15693.
PHAC_DISCLOOP_POS_BIT_MASK_18000P3M3 -> Bail out for ISO 18000p3m3/ EPC Gen2.

§ PHAC_DISCLOOP_CONFIG_TECH_DETECTED

#define PHAC_DISCLOOP_CONFIG_TECH_DETECTED 0x87U

Returns the technologies that were detected during poll mode.

Passive technologies:
PHAC_DISCLOOP_POS_BIT_MASK_A -> Detected Type A.
PHAC_DISCLOOP_POS_BIT_MASK_B -> Detected Type B.
PHAC_DISCLOOP_POS_BIT_MASK_F212 -> Detected FELICA @ 212 kbps.
PHAC_DISCLOOP_POS_BIT_MASK_F424 -> Detected FELICA @ 424 kbps.
PHAC_DISCLOOP_POS_BIT_MASK_V -> Detected Type V / ISO 15693.
PHAC_DISCLOOP_POS_BIT_MASK_18000P3M3 -> Detected ISO 18000p3m3/ EPC Gen2.
Active technologies:
PHAC_DISCLOOP_ACT_POS_BIT_MASK_106 -> Detected active target @ 106 kbps.
PHAC_DISCLOOP_ACT_POS_BIT_MASK_212 -> Detected active target @ 212 kbps.
PHAC_DISCLOOP_ACT_POS_BIT_MASK_424 -> Detected active target @ 424 kbps.

§ PHAC_DISCLOOP_CONFIG_ACT_LIS_TECH_CFG

#define PHAC_DISCLOOP_CONFIG_ACT_LIS_TECH_CFG 0x89U

Configure technologies to listen for in active listen mode.

PHAC_DISCLOOP_POS_BIT_MASK_A -> Listen for Type A.
PHAC_DISCLOOP_POS_BIT_MASK_B -> Listen for Type B.[Reserved. Not supported currently]
PHAC_DISCLOOP_POS_BIT_MASK_F212 -> Listen for Type FELICA @ 212 kbps.
PHAC_DISCLOOP_POS_BIT_MASK_F424 -> Listen for Type FELICA @ 424 kbps.
PHAC_DISCLOOP_POS_BIT_MASK_V -> Listen for Type V / ISO 15693.[Reserved. Not supported currently]
PHAC_DISCLOOP_POS_BIT_MASK_18000P3M3 -> Listen for ISO 18000p3m3/ EPC Gen2.[Reserved. Not supported currently]

§ PHAC_DISCLOOP_CONFIG_ACT_POLL_TECH_CFG

#define PHAC_DISCLOOP_CONFIG_ACT_POLL_TECH_CFG 0x8AU

Configure technologies to be detected in passive poll mode.

PHAC_DISCLOOP_ACT_POS_BIT_MASK_106 -> Detect active target @ 106 kbps
PHAC_DISCLOOP_ACT_POS_BIT_MASK_212 -> Detect active target @ 212 kbps
PHAC_DISCLOOP_ACT_POS_BIT_MASK_424 -> Detect active target @ 424 kbps

§ PHAC_DISCLOOP_CONFIG_PAS_LIS_TECH_CFG

#define PHAC_DISCLOOP_CONFIG_PAS_LIS_TECH_CFG 0x8BU

Configure technologies to listen for in passive listen mode.

PHAC_DISCLOOP_POS_BIT_MASK_A -> Listen for Type A.
PHAC_DISCLOOP_POS_BIT_MASK_B -> Listen for Type B.[Reserved. Not supported currently]
PHAC_DISCLOOP_POS_BIT_MASK_F212 -> Listen for Type FELICA @ 212 kbps.
PHAC_DISCLOOP_POS_BIT_MASK_F424 -> Listen for Type FELICA @ 424 kbps.
PHAC_DISCLOOP_POS_BIT_MASK_V -> Listen for Type V / ISO 15693.[Reserved. Not supported currently]
PHAC_DISCLOOP_POS_BIT_MASK_18000P3M3 -> Listen for ISO 18000p3m3/ EPC Gen2.[Reserved. Not supported currently]

§ PHAC_DISCLOOP_CONFIG_PAS_POLL_TECH_CFG

#define PHAC_DISCLOOP_CONFIG_PAS_POLL_TECH_CFG 0x8CU

Configure technologies to be detected in passive poll mode.

PHAC_DISCLOOP_POS_BIT_MASK_A -> Detect Type A.
PHAC_DISCLOOP_POS_BIT_MASK_B -> Detect Type B.
PHAC_DISCLOOP_POS_BIT_MASK_F212 -> Detect Type FELICA @ 212 kbps.
PHAC_DISCLOOP_POS_BIT_MASK_F424 -> Detect Type FELICA @ 424 kbps.
PHAC_DISCLOOP_POS_BIT_MASK_V -> Detect Type V / ISO 15693.
PHAC_DISCLOOP_POS_BIT_MASK_18000P3M3 -> Detect ISO 18000p3m3/ EPC Gen2.

§ PHAC_DISCLOOP_CONFIG_ACTIVITY_VERSION

#define PHAC_DISCLOOP_CONFIG_ACTIVITY_VERSION 0x8DU

Configure NFC activity version.

PHAC_DISCLOOP_NFC_ACTIVITY_VERSION_1_0 -> Run in Activity 1.0 mode.
PHAC_DISCLOOP_NFC_ACTIVITY_VERSION_1_1 -> Run in Activity 1.1 mode. This is the default.

§ PHAC_DISCLOOP_CONFIG_TARGET_RETRY_COUNT

#define PHAC_DISCLOOP_CONFIG_TARGET_RETRY_COUNT 0x90U

Configure AUTOCOLL retry count in listen mode.

How many times to retry AUTOCOLL command if it fails. Default is 0. Supported range is from 0 to 255.

Function Documentation

§ phacDiscLoop_Run()

phStatus_t phacDiscLoop_Run | ( | void * | pDataParams,
 |  | uint8_t | bEntryPoint
 | ) |  |

Starts the discovery loop in poll mode or listen mode.

Use phacDiscLoop_SetConfig with configuration options to modify poll mode and listen mode settings of discovery loop.

Returns
Status code
Return values
PHAC_DISCLOOP_FAILURE | Discovery loop failure due to error from lower layer.
PHAC_DISCLOOP_COLLISION_PENDING | Indicates that collision is pending.
PHAC_DISCLOOP_EXTERNAL_RFON | External RF field on.
PHAC_DISCLOOP_EXTERNAL_RFOFF | External RF field off.
PHAC_DISCLOOP_NO_TECH_DETECTED | No technologies detected.
PHAC_DISCLOOP_NO_DEVICE_RESOLVED | No card/device resolved.
PHAC_DISCLOOP_LPCD_NO_TECH_DETECTED | LPCD succeeded but no technologies detected..
PHAC_DISCLOOP_MULTI_TECH_DETECTED | Multiple Technologies detected.
PHAC_DISCLOOP_MULTI_DEVICES_RESOLVED | Multiple cards/devices resolved.
PHAC_DISCLOOP_DEVICE_ACTIVATED | Single card/device activated.
PHAC_DISCLOOP_ACTIVE_TARGET_ACTIVATED | Active target activated..
PHAC_DISCLOOP_PASSIVE_TARGET_ACTIVATED | Passive target activated.
PHAC_DISCLOOP_MERGED_SEL_RES_FOUND | Merged SAK with NFC-DEP and T4T support found.
PHAC_DISCLOOP_ACTIVATED_BY_PEER | Activated in listen mode.
Parameters
[in] | pDataParams | Pointer to discovery loop parameter structure.
[in] | bEntryPoint | Entry point to start discovery loop. Refer phacDiscLoop_Sw_EntryPoints for supported list of entry points.

§ phacDiscLoop_SetConfig()

phStatus_t phacDiscLoop_SetConfig | ( | void * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t | wValue
 | ) |  |

Set discovery loop configuration value.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | Invalid option/response received.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to discovery loop parameter structure.
[in] | wConfig | Configuration identifier.
[in] | wValue | Configuration value.

§ phacDiscLoop_GetConfig()

phStatus_t phacDiscLoop_GetConfig | ( | void * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t * | pValue
 | ) |  |

Get discovery loop configuration value.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful
PH_ERR_INVALID_PARAMETER | Invalid option/response received
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to discovery loop parameter structure.
[in] | wConfig | Configuration identifier.
[out] | pValue | Configuration value.

§ phacDiscLoop_ActivateCard()

phStatus_t phacDiscLoop_ActivateCard | ( | void * | pDataParams,
 |  | uint8_t | bTagType,
 |  | uint8_t | bTagIndex
 | ) |  |

Activates the given tag type with given index.

Returns
Status code
Return values
PHAC_DISCLOOP_DEVICE_ACTIVATED | Single card/device activated.
PHAC_DISCLOOP_PASSIVE_TARGET_ACTIVATED | Passive target activated.
PHAC_DISCLOOP_MERGED_SEL_RES_FOUND | Merged SAK with NFC-DEP and T4T support found.
PH_ERR_INVALID_PARAMETER | If invalid index or card type was given
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to discovery loop parameter structure.
[in] | bTagType | Tag type phacDiscLoop_Sw_NfcTech.
[in] | bTagIndex | The tag index to be activated.


NXP NFC Reader Library: Component : Software

Data Structures | Macros | Typedefs | Enumerations | Functions
Component : Software
Activity Layer » Discovery Loop
Collaboration diagram for Component : Software:

Data Structures

struct | phacDiscLoop_Sw_TypeA_Info
Type A parameter structure. More...
struct | phacDiscLoop_Sw_TypeB_Info
Type B parameter structure. More...
struct | phacDiscLoop_Sw_TypeF_Info
Type F parameter structure. More...
struct | phacDiscLoop_Sw_TypeV_Info
Type V parameter structure. More...
struct | phacDiscLoop_I18000p3m3_Info
18000p3m3 parameter structure More...
struct | phacDiscLoop_TargetParams
Target parameter structure. More...
struct | phacDiscLoop_Sw_DataParams
Discovery loop parameter structure. More...

Macros

#define | PHAC_DISCLOOP_SW_ID 0x01U
ID for this layer (software implementation of Discover loop component). More...
#define | PHAC_DISCLOOP_CFG_MAX_CARDS_SUPPORTED 0x01U
Maximum cards supported per technologies in passive poll mode. More...
#define | PHAC_DISCLOOP_CFG_MAX_VICINITY_CARDS_SUPPORTED 0x01U
Maximum cards supported per vicinity technologies in passive poll mode. More...
#define | PHAC_DISCLOOP_PASS_POLL_MAX_TECHS_SUPPORTED 0x06U
Maximum (NFC + proprietary) technologies support in passive poll mode. More...

Typedefs

typedef enum phacDiscLoop_Profile | phacDiscLoop_Profile_t
Reader Library Profiles. More...
typedef enum phacDiscLoop_Sw_PollState | phacDiscLoop_Sw_PollState_t
Discovery loop poll states to start with while in passive poll mode. More...
typedef enum phacDiscLoop_Sw_EntryPoints | phacDiscLoop_Sw_EntryPoints_t
Discovery entry points. More...
typedef enum phacDiscLoop_Sw_NfcTech | phacDiscLoop_Sw_NfcTech_t
Technology bit position / sequence. More...
typedef struct phacDiscLoop_Sw_TypeA_Info | phacDiscLoop_Sw_TypeA_Info_t
Type A parameter structure.
typedef struct phacDiscLoop_Sw_TypeB_Info | phacDiscLoop_Sw_TypeB_Info_t
Type B parameter structure.
typedef struct phacDiscLoop_Sw_TypeF_Info | phacDiscLoop_Sw_TypeF_Info_t
Type F parameter structure.
typedef struct phacDiscLoop_Sw_TypeV_Info | phacDiscLoop_Sw_TypeV_Info_t
Type V parameter structure.
typedef struct phacDiscLoop_I18000p3m3_Info | phacDiscLoop_I18000p3m3_Info_t
18000p3m3 parameter structure
typedef struct phacDiscLoop_TargetParams | phacDiscLoop_Sw_TargetParams_t
Target parameter structure.
typedef struct phacDiscLoop_Sw_DataParams | phacDiscLoop_Sw_DataParams_t
Discovery loop parameter structure.

Enumerations

enum phacDiscLoop_Profile {
PHAC_DISCLOOP_PROFILE_UNKNOWN = 0, PHAC_DISCLOOP_PROFILE_NFC, PHAC_DISCLOOP_PROFILE_EMVCO, PHAC_DISCLOOP_PROFILE_ISO,
PHAC_DISCLOOP_PROFILE_NFC_AND_ACTIVE
}
Reader Library Profiles. More...
enum | phacDiscLoop_Sw_PollState { PHAC_DISCLOOP_POLL_STATE_UNKNOWN = 0, PHAC_DISCLOOP_POLL_STATE_DETECTION, PHAC_DISCLOOP_POLL_STATE_COLLISION_RESOLUTION, PHAC_DISCLOOP_POLL_STATE_REMOVAL }
Discovery loop poll states to start with while in passive poll mode. More...
enum | phacDiscLoop_Sw_EntryPoints { PHAC_DISCLOOP_ENTRY_POINT_POLL = 0, PHAC_DISCLOOP_ENTRY_POINT_LISTEN }
Discovery entry points. More...
enum phacDiscLoop_Sw_NfcTech {
PHAC_DISCLOOP_TECH_TYPE_A = 0, PHAC_DISCLOOP_TECH_TYPE_B, PHAC_DISCLOOP_TECH_TYPE_F212, PHAC_DISCLOOP_TECH_TYPE_F424,
PHAC_DISCLOOP_TECH_TYPE_V, PHAC_DISCLOOP_TECH_TYPE_18000P3M3, PHAC_DISCLOOP_TECH_TYPE_UNKNOWN
}
Technology bit position / sequence. More...

Functions

phStatus_t phacDiscLoop_Sw_Init (phacDiscLoop_Sw_DataParams_t *pDataParams, uint16_t wSizeOfDataParams, void *pHalDataParams)
Initialize discovery loop. More...

Supported NFC Activity versions.

Discovery loop support both NFC Activity version 1.0 and 1.1.

By default discovery loop is configured for NFC Activity version 1.1. Use phacDiscLoop_SetConfig with PHAC_DISCLOOP_CONFIG_ACTIVITY_VERSION option to configure below values.

#define | PHAC_DISCLOOP_NFC_ACTIVITY_VERSION_1_0 0x01
Supports NFC Activity version 1.0. More...
#define | PHAC_DISCLOOP_NFC_ACTIVITY_VERSION_1_1 0x02
Supports NFC Activity version 1.1. More...

Discovery loop return status codes.

#define | PHAC_DISCLOOP_FAILURE 0x0080U
Discovery loop failure. More...
#define | PHAC_DISCLOOP_COLLISION_PENDING 0x0081U
Indicates that collision is pending. More...
#define | PHAC_DISCLOOP_EXTERNAL_RFON 0x0082U
External RF field on. More...
#define | PHAC_DISCLOOP_EXTERNAL_RFOFF 0x0083U
External RF field off. More...
#define | PHAC_DISCLOOP_NO_TECH_DETECTED 0x0084U
No technologies detected. More...
#define | PHAC_DISCLOOP_NO_DEVICE_RESOLVED 0x0085U
No card/device resolved. More...
#define | PHAC_DISCLOOP_LPCD_NO_TECH_DETECTED 0x0086U
Low Power Card Detection (LPCD) succeeded but no technologies detected. More...
#define | PHAC_DISCLOOP_MULTI_TECH_DETECTED 0x0088U
Multiple Technologies detected. More...
#define | PHAC_DISCLOOP_MULTI_DEVICES_RESOLVED 0x008AU
Multiple cards/devices resolved. More...
#define | PHAC_DISCLOOP_DEVICE_ACTIVATED 0x008BU
Single card/device activated. More...
#define | PHAC_DISCLOOP_ACTIVE_TARGET_ACTIVATED 0x008CU
Active target activated. More...
#define | PHAC_DISCLOOP_PASSIVE_TARGET_ACTIVATED 0x008DU
Passive target activated. More...
#define | PHAC_DISCLOOP_MERGED_SEL_RES_FOUND 0x008EU
Merged SEL_RES (Type A) with NFC-DEP and T4T support found. More...
#define | PHAC_DISCLOOP_ACTIVATED_BY_PEER 0x008FU
Activated in listen mode. More...

Bit positions for different technologies.

Application can use these mask values to find the detected technology, collision pending status, bail out configuration etc.

Example (Check for Type A detection in passive poll mode):

  • phacDiscLoop_GetConfig (pDataParams, PHAC_DISCLOOP_CONFIG_TECH_DETECTED, &wTagsDetected)
  • PHAC_DISCLOOP_CHECK_ANDMASK (wTagsDetected, PHAC_DISCLOOP_POS_BIT_MASK_A)
#define | PHAC_DISCLOOP_POS_BIT_MASK_A 0x01U
Position bit mask for Type A. More...
#define | PHAC_DISCLOOP_POS_BIT_MASK_B 0x02U
Position bit mask for Type B. More...
#define | PHAC_DISCLOOP_POS_BIT_MASK_F212 0x04U
Position bit mask for Type F212. More...
#define | PHAC_DISCLOOP_POS_BIT_MASK_F424 0x08U
Position bit mask for Type F424. More...
#define | PHAC_DISCLOOP_POS_BIT_MASK_V 0x10U
Position bit mask for Type V. More...
#define | PHAC_DISCLOOP_POS_BIT_MASK_18000P3M3 0x20U
Position bit mask for ISO 18000P3M3. More...

Bit positions for active poll mode technologies.

Application can use these mask values to find the detected technology in active poll mode and to configure technologies to be detected in active poll mode.

Example (Check for Active @ 106 kbps detection):

  • phacDiscLoop_GetConfig (pDataParams, PHAC_DISCLOOP_CONFIG_TECH_DETECTED, &wTagsDetected)
  • PHAC_DISCLOOP_CHECK_ANDMASK (wTagsDetected, PHAC_DISCLOOP_ACT_POS_BIT_MASK_106)
#define | PHAC_DISCLOOP_ACT_POS_BIT_MASK_106 0x01U
106 Kbps Bit rate for Active Communication. More...
#define | PHAC_DISCLOOP_ACT_POS_BIT_MASK_212 0x02U
212 Kbps Bit rate for Active Communication. More...
#define | PHAC_DISCLOOP_ACT_POS_BIT_MASK_424 0x04U
424 Kbps Bit rate for Active Communication. More...

FELICA data rates.

#define | PHAC_DISCLOOP_CON_BITR_212 PHAC_DISCLOOP_POS_BIT_MASK_F212
Configures 212 Kbps bit rate for Type F tag. More...
#define | PHAC_DISCLOOP_CON_BITR_424 PHAC_DISCLOOP_POS_BIT_MASK_F424
Configures 424 Kbps bit rate for Type F tag. More...

Type A default parameters.

#define | PHAC_DISCLOOP_I3P3A_MAX_ATQA_LENGTH 0x02U
Answer to RequestA (ATQA) length for ISO 14443-3A card type. More...
#define | PHAC_DISCLOOP_I3P3A_MAX_UID_LENGTH 0x0AU
Maximum UID length for 14443 Type A compliant tags. More...
#define | PHAC_DISCLOOP_I3P3A_SINGLE_SIZE_UID_LENGTH 0x04U
UID length for single size NFCID1 Type A compliant tags. More...
#define | PHAC_DISCLOOP_I3P3A_DOUBLE_SIZE_UID_LENGTH 0x07U
UID length for double size NFCID1 Type A compliant tags. More...
#define | PHAC_DISCLOOP_I3P3A_TRIPLE_SIZE_UID_LENGTH 0x0AU
UID length for triple size NFCID1 Type A compliant tags. More...
#define | PHAC_DISCLOOP_JEWEL_HR_LENGTH 0x02U
Type 1 Tag Header ROM byte length. More...

Type B default parameters.

#define | PHAC_DISCLOOP_I3P3B_PUPI_LENGTH 0x04U
Device Identifier length for Type B tag. More...
#define | PHAC_DISCLOOP_I3P3B_MAX_ATQB_LENGTH 13U
Maximum Answer to RequestB (ATQB) Response length. More...

Type F default parameters.

#define | PHAC_DISCLOOP_FELICA_IDM_LENGTH 0x08U
Manufacture ID (IDM) Length for FELICA. More...
#define | PHAC_DISCLOOP_FELICA_PMM_LENGTH 0x08U
Manufacturer Parameter (PMm) length for FELICA. More...
#define | PHAC_DISCLOOP_FELICA_RD_LENGTH 0x02U
Request Data (RD) length for Felica SENSF_RES. More...

Select Acknowledge (SAK) mask values for different Type A tags.

Application can use these mask values to detect the Type of tag from the SAK value.

Usage:

  bTagType = (phacDiscLoop_Sw_DataParams->sTypeATargetInfo.aTypeA_I3P3[0].aSak & 0x60);
  bTagType = bTagType >> 5;

  switch(bTagType)
  {
  case PHAC_DISCLOOP_TYPEA_TYPE2_TAG_CONFIG_MASK:
      printf("\n\t\tType: Type 2 Tag\n");
      break;
  case PHAC_DISCLOOP_TYPEA_TYPE4A_TAG_CONFIG_MASK:
      printf ("\n\t\tType: Type 4A Tag\n");
      break;
  case PHAC_DISCLOOP_TYPEA_TYPE_NFC_DEP_TAG_CONFIG_MASK:
      printf ("\n\t\tType: P2P\n");
      break;
  case PHAC_DISCLOOP_TYPEA_TYPE_NFC_DEP_TYPE4A_TAG_CONFIG_MASK:
      printf ("\n\t\tType: Type NFC_DEP and  4A Tag\n");
      break;
  default:
      break;
  }
#define | PHAC_DISCLOOP_TYPEA_T1T_ATQA1_MASK 0x1FU
Mask for Type 1 tag ATQA Byte 1. More...
#define | PHAC_DISCLOOP_TYPEA_T1T_ATQA2_MASK 0x0FU
Mask for determining whether a Type A tag is Type 1. More...
#define | PHAC_DISCLOOP_TYPEA_TYPE2_TAG_CONFIG_MASK 0x00U
Mask for determining for Type 2 tag. More...
#define | PHAC_DISCLOOP_TYPEA_TYPE4A_TAG_CONFIG_MASK 0x01U
Mask for determining for Type 4A tag. More...
#define | PHAC_DISCLOOP_TYPEA_TYPE_NFC_DEP_TAG_CONFIG_MASK 0x02U
Mask for determining for NFC DEP Protocol. More...
#define | PHAC_DISCLOOP_TYPEA_TYPE_NFC_DEP_TYPE4A_TAG_CONFIG_MASK 0x03U
Mask for determining support for Type 4A and NFC DEP Protocol. More...

Macros for checking set bit and set bit position.

#define | PHAC_DISCLOOP_CHECK_ANDMASK(value, mask) (((value) & (mask)) != 0)
Logically AND value and mask, if the corresponding bit is set, then non zero value is returned else zero is returned. More...
#define | PHAC_DISCLOOP_GET_BIT_POS(x, pos)
Get the first set bit position starting from least significant bit. More...

Detailed Description

Macro Definition Documentation

§ PHAC_DISCLOOP_SW_ID

#define PHAC_DISCLOOP_SW_ID 0x01U

ID for this layer (software implementation of Discover loop component).

phacDiscLoop_Sw_DataParams::wId is initialized with this ID in the initialization function phacDiscLoop_Sw_Init.

§ PHAC_DISCLOOP_CFG_MAX_CARDS_SUPPORTED

#define PHAC_DISCLOOP_CFG_MAX_CARDS_SUPPORTED 0x01U

Maximum cards supported per technologies in passive poll mode.

By default maximum cards supported per technology is set to 1. Users can change this value to support more cards.

NOTE: Size of discovery loop data structure phacDiscLoop_Sw_DataParams will increase if this value is increased.

§ PHAC_DISCLOOP_CFG_MAX_VICINITY_CARDS_SUPPORTED

#define PHAC_DISCLOOP_CFG_MAX_VICINITY_CARDS_SUPPORTED 0x01U

Maximum cards supported per vicinity technologies in passive poll mode.

By default maximum cards supported per vicinity technology is set to 1. Users can change this value to support more cards.

NOTE: Size of discovery loop data structure phacDiscLoop_Sw_DataParams will increase if this value is increased.

§ PHAC_DISCLOOP_PASS_POLL_MAX_TECHS_SUPPORTED

#define PHAC_DISCLOOP_PASS_POLL_MAX_TECHS_SUPPORTED 0x06U

Maximum (NFC + proprietary) technologies support in passive poll mode.

Supported technologies are:

  • Type A (As per NFC Activity 1.1 and EMVCo Specification 2.3.1a)
  • Type B (As per NFC Activity 1.1 and EMVCo Specification 2.3.1a)
  • Type F @ 212 kbps (As per NFC Activity 1.1)
  • Type F @ 424 kbps (As per NFC Activity 1.1)
  • Type V (ISO 15693) (As per NFC Activity draft specification)
  • ISO 18000P3M3 (Proprietary)

§ PHAC_DISCLOOP_NFC_ACTIVITY_VERSION_1_0

#define PHAC_DISCLOOP_NFC_ACTIVITY_VERSION_1_0 0x01

Supports NFC Activity version 1.0.

§ PHAC_DISCLOOP_NFC_ACTIVITY_VERSION_1_1

#define PHAC_DISCLOOP_NFC_ACTIVITY_VERSION_1_1 0x02

Supports NFC Activity version 1.1.

This is default.

§ PHAC_DISCLOOP_FAILURE

#define PHAC_DISCLOOP_FAILURE 0x0080U

Discovery loop failure.

This status can be returned by phacDiscLoop_Run in poll and listen modes. This is returned when discovery loop failed to proceed further due to an error in lower layer. Use phacDiscLoop_GetConfig with PHAC_DISCLOOP_CONFIG_ADDITIONAL_INFO to get the actual error code from lower layer.

§ PHAC_DISCLOOP_COLLISION_PENDING

#define PHAC_DISCLOOP_COLLISION_PENDING 0x0081U

Indicates that collision is pending.

This status is returned by phacDiscLoop_Run in passive poll mode when collision resolution is disabled or when device limit is set to zero for a detected technology. Use phacDiscLoop_GetConfig with PHAC_DISCLOOP_CONFIG_COLLISION_PENDING option to get collision pending status for all technologies.

§ PHAC_DISCLOOP_EXTERNAL_RFON

#define PHAC_DISCLOOP_EXTERNAL_RFON 0x0082U

External RF field on.

This status is returned by phacDiscLoop_Run in passive poll mode when external RF is detected during RF collision avoidance (RFCA) procedure. On getting this error application may restart phacDiscLoop_Run in listen mode if supported.

§ PHAC_DISCLOOP_EXTERNAL_RFOFF

#define PHAC_DISCLOOP_EXTERNAL_RFOFF 0x0083U

External RF field off.

This status is returned by phacDiscLoop_Run in listen mode if external RF is switched off during listen. On getting this error application may restart discovery loop in poll mode or wait for a specific time for external RF to turn ON.

§ PHAC_DISCLOOP_NO_TECH_DETECTED

#define PHAC_DISCLOOP_NO_TECH_DETECTED 0x0084U

No technologies detected.

This status is returned by phacDiscLoop_Run in passive poll mode if no technologies are detected during detection stage of passive polling.

§ PHAC_DISCLOOP_NO_DEVICE_RESOLVED

#define PHAC_DISCLOOP_NO_DEVICE_RESOLVED 0x0085U

No card/device resolved.

This status is returned by phacDiscLoop_Run in passive poll mode if no card/device is resolved during collision resolution stage but that technology was detected during technology detection stage of passive polling.

§ PHAC_DISCLOOP_LPCD_NO_TECH_DETECTED

#define PHAC_DISCLOOP_LPCD_NO_TECH_DETECTED 0x0086U

Low Power Card Detection (LPCD) succeeded but no technologies detected.

This status is returned by phacDiscLoop_Run in passive poll mode when LPCD is enabled and LPCD returned success but no technologies were detected during technology detection stage of passive poll mode. This can be due to false triggering of LPCD interrupt or LPCD triggered by a card/device not supported by discovery loop.

§ PHAC_DISCLOOP_MULTI_TECH_DETECTED

#define PHAC_DISCLOOP_MULTI_TECH_DETECTED 0x0088U

Multiple Technologies detected.

This status is returned by phacDiscLoop_Run in passive poll mode when multiple technologies are detected during technology detection stage of passive poll mode.
To continue with collision resolution stage of one of the detected technology, application can follow below steps:

  • Use phacDiscLoop_GetConfig with PHAC_DISCLOOP_CONFIG_TECH_DETECTED to get technologies detected.
  • Use phacDiscLoop_SetConfig with PHAC_DISCLOOP_CONFIG_PAS_POLL_TECH_CFG to configure passive polling for a single technology (one of the detected technologies).
  • Use phacDiscLoop_SetConfig with PHAC_DISCLOOP_CONFIG_NEXT_POLL_STATE option and PHAC_DISCLOOP_POLL_STATE_COLLISION_RESOLUTION as value and start phacDiscLoop_Run to start passive poll mode in collision resolution phase.

§ PHAC_DISCLOOP_MULTI_DEVICES_RESOLVED

#define PHAC_DISCLOOP_MULTI_DEVICES_RESOLVED 0x008AU

Multiple cards/devices resolved.

This status is returned by phacDiscLoop_Run in passive poll mode when multiple cards/devices are resolved during collision resolution stage of passive poll mode when CON_DEVICES_LIMIT > 1.

  • Use phacDiscLoop_GetConfig with PHAC_DISCLOOP_CONFIG_TECH_DETECTED to get the technology detected.
  • Use phacDiscLoop_GetConfig with PHAC_DISCLOOP_CONFIG_NR_TAGS_FOUND option to get number of devices/tags resolved.
  • To activate a specific device/card from these resolved, application can use phacDiscLoop_ActivateCard.

§ PHAC_DISCLOOP_DEVICE_ACTIVATED

#define PHAC_DISCLOOP_DEVICE_ACTIVATED 0x008BU

Single card/device activated.

This status is returned by phacDiscLoop_Run in passive poll mode when a single card/device is successfully activated during activation stage.
Use phacDiscLoop_GetConfig with PHAC_DISCLOOP_CONFIG_TECH_DETECTED to get the technology detected.

§ PHAC_DISCLOOP_ACTIVE_TARGET_ACTIVATED

#define PHAC_DISCLOOP_ACTIVE_TARGET_ACTIVATED 0x008CU

Active target activated.

This status is returned by phacDiscLoop_Run in active poll mode when a single active target is successfully activated during active polling.
Use phacDiscLoop_GetConfig with PHAC_DISCLOOP_CONFIG_TECH_DETECTED to get the activated technology.

§ PHAC_DISCLOOP_PASSIVE_TARGET_ACTIVATED

#define PHAC_DISCLOOP_PASSIVE_TARGET_ACTIVATED 0x008DU

Passive target activated.

This status is returned by phacDiscLoop_Run in passive poll mode when a single passive target is successfully activated during passive polling.
Use phacDiscLoop_GetConfig with PHAC_DISCLOOP_CONFIG_TECH_DETECTED to get the activated technology.

§ PHAC_DISCLOOP_MERGED_SEL_RES_FOUND

#define PHAC_DISCLOOP_MERGED_SEL_RES_FOUND 0x008EU

Merged SEL_RES (Type A) with NFC-DEP and T4T support found.

This status is returned by phacDiscLoop_Run in passive poll mode when device/card is successfully activated till ISO 14443-3 and both T4T and NFC DEP support is detected in SEL_RES/SAK. Then ATR_REQ or RATS is not sent by discovery loop. On getting this status application can decide whether to send ATR_REQ or RATS. This status is applicable only to Type A.

§ PHAC_DISCLOOP_ACTIVATED_BY_PEER

#define PHAC_DISCLOOP_ACTIVATED_BY_PEER 0x008FU

Activated in listen mode.

This status is returned by phacDiscLoop_Run in listen mode when it got successfully activated in listen mode by another reader/initiator.
Application shall check phacDiscLoop_TargetParams to validate the received request (ATR_REQ/RATS), data rate and framing (active/passive) and send the response.

§ PHAC_DISCLOOP_POS_BIT_MASK_A

#define PHAC_DISCLOOP_POS_BIT_MASK_A 0x01U

Position bit mask for Type A.

§ PHAC_DISCLOOP_POS_BIT_MASK_B

#define PHAC_DISCLOOP_POS_BIT_MASK_B 0x02U

Position bit mask for Type B.

§ PHAC_DISCLOOP_POS_BIT_MASK_F212

#define PHAC_DISCLOOP_POS_BIT_MASK_F212 0x04U

Position bit mask for Type F212.

§ PHAC_DISCLOOP_POS_BIT_MASK_F424

#define PHAC_DISCLOOP_POS_BIT_MASK_F424 0x08U

Position bit mask for Type F424.

§ PHAC_DISCLOOP_POS_BIT_MASK_V

#define PHAC_DISCLOOP_POS_BIT_MASK_V 0x10U

Position bit mask for Type V.

§ PHAC_DISCLOOP_POS_BIT_MASK_18000P3M3

#define PHAC_DISCLOOP_POS_BIT_MASK_18000P3M3 0x20U

Position bit mask for ISO 18000P3M3.

§ PHAC_DISCLOOP_ACT_POS_BIT_MASK_106

#define PHAC_DISCLOOP_ACT_POS_BIT_MASK_106 0x01U

106 Kbps Bit rate for Active Communication.

§ PHAC_DISCLOOP_ACT_POS_BIT_MASK_212

#define PHAC_DISCLOOP_ACT_POS_BIT_MASK_212 0x02U

212 Kbps Bit rate for Active Communication.

§ PHAC_DISCLOOP_ACT_POS_BIT_MASK_424

#define PHAC_DISCLOOP_ACT_POS_BIT_MASK_424 0x04U

424 Kbps Bit rate for Active Communication.

§ PHAC_DISCLOOP_CON_BITR_212

#define PHAC_DISCLOOP_CON_BITR_212 PHAC_DISCLOOP_POS_BIT_MASK_F212

Configures 212 Kbps bit rate for Type F tag.

§ PHAC_DISCLOOP_CON_BITR_424

#define PHAC_DISCLOOP_CON_BITR_424 PHAC_DISCLOOP_POS_BIT_MASK_F424

Configures 424 Kbps bit rate for Type F tag.

§ PHAC_DISCLOOP_I3P3A_MAX_ATQA_LENGTH

#define PHAC_DISCLOOP_I3P3A_MAX_ATQA_LENGTH 0x02U

Answer to RequestA (ATQA) length for ISO 14443-3A card type.

§ PHAC_DISCLOOP_I3P3A_MAX_UID_LENGTH

#define PHAC_DISCLOOP_I3P3A_MAX_UID_LENGTH 0x0AU

Maximum UID length for 14443 Type A compliant tags.

§ PHAC_DISCLOOP_I3P3A_SINGLE_SIZE_UID_LENGTH

#define PHAC_DISCLOOP_I3P3A_SINGLE_SIZE_UID_LENGTH 0x04U

UID length for single size NFCID1 Type A compliant tags.

§ PHAC_DISCLOOP_I3P3A_DOUBLE_SIZE_UID_LENGTH

#define PHAC_DISCLOOP_I3P3A_DOUBLE_SIZE_UID_LENGTH 0x07U

UID length for double size NFCID1 Type A compliant tags.

§ PHAC_DISCLOOP_I3P3A_TRIPLE_SIZE_UID_LENGTH

#define PHAC_DISCLOOP_I3P3A_TRIPLE_SIZE_UID_LENGTH 0x0AU

UID length for triple size NFCID1 Type A compliant tags.

§ PHAC_DISCLOOP_JEWEL_HR_LENGTH

#define PHAC_DISCLOOP_JEWEL_HR_LENGTH 0x02U

Type 1 Tag Header ROM byte length.

§ PHAC_DISCLOOP_I3P3B_PUPI_LENGTH

#define PHAC_DISCLOOP_I3P3B_PUPI_LENGTH 0x04U

Device Identifier length for Type B tag.

§ PHAC_DISCLOOP_I3P3B_MAX_ATQB_LENGTH

#define PHAC_DISCLOOP_I3P3B_MAX_ATQB_LENGTH 13U

Maximum Answer to RequestB (ATQB) Response length.

§ PHAC_DISCLOOP_FELICA_IDM_LENGTH

#define PHAC_DISCLOOP_FELICA_IDM_LENGTH 0x08U

Manufacture ID (IDM) Length for FELICA.

§ PHAC_DISCLOOP_FELICA_PMM_LENGTH

#define PHAC_DISCLOOP_FELICA_PMM_LENGTH 0x08U

Manufacturer Parameter (PMm) length for FELICA.

§ PHAC_DISCLOOP_FELICA_RD_LENGTH

#define PHAC_DISCLOOP_FELICA_RD_LENGTH 0x02U

Request Data (RD) length for Felica SENSF_RES.

§ PHAC_DISCLOOP_TYPEA_T1T_ATQA1_MASK

#define PHAC_DISCLOOP_TYPEA_T1T_ATQA1_MASK 0x1FU

Mask for Type 1 tag ATQA Byte 1.

§ PHAC_DISCLOOP_TYPEA_T1T_ATQA2_MASK

#define PHAC_DISCLOOP_TYPEA_T1T_ATQA2_MASK 0x0FU

Mask for determining whether a Type A tag is Type 1.

Used along with byte 2 of ATQA.

§ PHAC_DISCLOOP_TYPEA_TYPE2_TAG_CONFIG_MASK

#define PHAC_DISCLOOP_TYPEA_TYPE2_TAG_CONFIG_MASK 0x00U

Mask for determining for Type 2 tag.

§ PHAC_DISCLOOP_TYPEA_TYPE4A_TAG_CONFIG_MASK

#define PHAC_DISCLOOP_TYPEA_TYPE4A_TAG_CONFIG_MASK 0x01U

Mask for determining for Type 4A tag.

§ PHAC_DISCLOOP_TYPEA_TYPE_NFC_DEP_TAG_CONFIG_MASK

#define PHAC_DISCLOOP_TYPEA_TYPE_NFC_DEP_TAG_CONFIG_MASK 0x02U

Mask for determining for NFC DEP Protocol.

§ PHAC_DISCLOOP_TYPEA_TYPE_NFC_DEP_TYPE4A_TAG_CONFIG_MASK

#define PHAC_DISCLOOP_TYPEA_TYPE_NFC_DEP_TYPE4A_TAG_CONFIG_MASK 0x03U

Mask for determining support for Type 4A and NFC DEP Protocol.

§ PHAC_DISCLOOP_CHECK_ANDMASK

#define PHAC_DISCLOOP_CHECK_ANDMASK | ( | value,
 |  | mask
 | ) | (((value) & (mask)) != 0)

Logically AND value and mask, if the corresponding bit is set, then non zero value is returned else zero is returned.

Application can use this to check the detection technologies.

Example (Check for Type B):

  • phacDiscLoop_GetConfig (pDataParams, PHAC_DISCLOOP_CONFIG_TECH_DETECTED, &wTagsDetected)
  • PHAC_DISCLOOP_CHECK_ANDMASK(wTagsDetected, PHAC_DISCLOOP_POS_BIT_MASK_B)

§ PHAC_DISCLOOP_GET_BIT_POS

#define PHAC_DISCLOOP_GET_BIT_POS | ( | x,
 |  | pos
 | ) |
Value:
{ \
(pos) = 0; \
while((x)){ (x) >>= 1; ++(pos); } \
if ((pos) == 0) {return (PH_ERR_INTERNAL_ERROR);} \
}
PH_ERR_INTERNAL_ERROR
#define PH_ERR_INTERNAL_ERROR
An internal error occurred.
Definition: ph_Status.h:86

Get the first set bit position starting from least significant bit.

Application can use this to check the bit position of detected technology.

Example (Activation of device/tag at index 0, when phacDiscLoop_Run returns PHAC_DISCLOOP_MULTI_DEVICES_RESOLVED):

  • phacDiscLoop_GetConfig (pDataParams, PHAC_DISCLOOP_CONFIG_TECH_DETECTED, &wTagsDetected);
  • PHAC_DISCLOOP_GET_BIT_POS(wTagsDetected, bTechType);
  • phacDiscLoop_ActivateCard (pDataParams, (bTechType - 1), 0);

Typedef Documentation

§ phacDiscLoop_Profile_t

typedef enum phacDiscLoop_Profile phacDiscLoop_Profile_t

Reader Library Profiles.

This will be set and handled by the application.

§ phacDiscLoop_Sw_PollState_t

typedef enum phacDiscLoop_Sw_PollState phacDiscLoop_Sw_PollState_t

Discovery loop poll states to start with while in passive poll mode.

Use phacDiscLoop_SetConfig with PHAC_DISCLOOP_CONFIG_NEXT_POLL_STATE option to configure these states. Default discovery loop starts with PHAC_DISCLOOP_POLL_STATE_DETECTION in passive poll mode.

§ phacDiscLoop_Sw_EntryPoints_t

typedef enum phacDiscLoop_Sw_EntryPoints phacDiscLoop_Sw_EntryPoints_t

Discovery entry points.

This is an input parameter to phacDiscLoop_Run.

§ phacDiscLoop_Sw_NfcTech_t

typedef enum phacDiscLoop_Sw_NfcTech phacDiscLoop_Sw_NfcTech_t

Technology bit position / sequence.

Enumeration Type Documentation

§ phacDiscLoop_Profile

enum phacDiscLoop_Profile

Reader Library Profiles.

This will be set and handled by the application.

Enumerator
PHAC_DISCLOOP_PROFILE_UNKNOWN | Unknown.
PHAC_DISCLOOP_PROFILE_NFC | NFC Forum Profile.
PHAC_DISCLOOP_PROFILE_EMVCO | EMVCo Profile.
PHAC_DISCLOOP_PROFILE_ISO | ISO Profile.
PHAC_DISCLOOP_PROFILE_NFC_AND_ACTIVE | NFC Forum and Active Profile.

§ phacDiscLoop_Sw_PollState

enum phacDiscLoop_Sw_PollState

Discovery loop poll states to start with while in passive poll mode.

Use phacDiscLoop_SetConfig with PHAC_DISCLOOP_CONFIG_NEXT_POLL_STATE option to configure these states. Default discovery loop starts with PHAC_DISCLOOP_POLL_STATE_DETECTION in passive poll mode.

Enumerator
PHAC_DISCLOOP_POLL_STATE_UNKNOWN | Unknown.
PHAC_DISCLOOP_POLL_STATE_DETECTION | Starts passive poll mode in Technology Detection stage.
PHAC_DISCLOOP_POLL_STATE_COLLISION_RESOLUTION | Starts passive poll mode in Collision Resolution stage.
PHAC_DISCLOOP_POLL_STATE_REMOVAL | Starts passive poll mode in Card Removal stage (Only for EMVCo mode).

§ phacDiscLoop_Sw_EntryPoints

enum phacDiscLoop_Sw_EntryPoints

Discovery entry points.

This is an input parameter to phacDiscLoop_Run.

Enumerator
PHAC_DISCLOOP_ENTRY_POINT_POLL | Starts discovery loop in poll mode.
PHAC_DISCLOOP_ENTRY_POINT_LISTEN | Starts discovery loop in listen mode.

§ phacDiscLoop_Sw_NfcTech

enum phacDiscLoop_Sw_NfcTech

Technology bit position / sequence.

Enumerator
PHAC_DISCLOOP_TECH_TYPE_A | Type A bit position.
PHAC_DISCLOOP_TECH_TYPE_B | Type B bit position.
PHAC_DISCLOOP_TECH_TYPE_F212 | Type F @ 212 kbps bit position.
PHAC_DISCLOOP_TECH_TYPE_F424 | Type F @ 424 kbps bit position.
PHAC_DISCLOOP_TECH_TYPE_V | Type V bit position.
PHAC_DISCLOOP_TECH_TYPE_18000P3M3 | 18000P3M3 bit position.
PHAC_DISCLOOP_TECH_TYPE_UNKNOWN | Unknown.

Function Documentation

§ phacDiscLoop_Sw_Init()

phStatus_t phacDiscLoop_Sw_Init | ( | phacDiscLoop_Sw_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams,
 |  | void * | pHalDataParams
 | ) |  |

Initialize discovery loop.

This should be called before using any of the discovery loop functions to do the initialization of discovery loop component. This configures discovery loop with default configurations. Refer configuration options for supported configurations and their default values.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | Invalid option/response received.
other | Other Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to discovery loop parameter structure.
[in] | wSizeOfDataParams | Specifies the size of the discovery data parameter structure.
[in] | pHalDataParams | Pointer to HAL parameter structure.


NXP NFC Reader Library: phacDiscLoop_Sw_TypeA_Info Struct Reference

Data Structures | Data Fields
phacDiscLoop_Sw_TypeA_Info Struct Reference
Activity Layer » Discovery Loop » Component : Software

Type A parameter structure. More...

Data Structures

struct | phacDiscLoop_Type_P2P_TAGS
Structure holding information on Type A P2P activation/communication. More...
struct | phacDiscLoop_TypeA_I3P3
Structure info required for ISO/IEC 14443 communication. More...
struct | phascDiscLoop_TypeA_I3P4
Structure info required for ISO/IEC 14443-4 communication. More...

Data Fields

uint8_t bTotalTagsFound
Number of type A tags found. More...
uint8_t bT1TFlag
Flag to indicate detected tag is T1T Tag in NFC profile, could be any jewel tag in other profile.

Detailed Description

Type A parameter structure.

Field Documentation

§ bTotalTagsFound

uint8_t phacDiscLoop_Sw_TypeA_Info::bTotalTagsFound

Number of type A tags found.

The documentation for this struct was generated from the following file:
  • phacDiscLoop.h


NXP NFC Reader Library: phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_Type_P2P_TAGS Struct Reference

  • phacDiscLoop_Sw_TypeA_Info
  • phacDiscLoop_Type_P2P_TAGS
Data Fields
phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_Type_P2P_TAGS Struct Reference

Structure holding information on Type A P2P activation/communication. More...

Data Fields

uint8_t bDid
Device ID (DID) for ISO/IEC 18092 Initiator ATR command. More...
uint8_t bLri
Length reduction for ISO/IEC 18092 initiator. More...
uint8_t bNadEnable
Indicates whether Node Address (NAD) is enabled or not. More...
uint8_t bNad
Node address. More...
uint8_t * pGi
General bytes information. More...
uint8_t bGiLength
Length of the general bytes. More...
uint8_t * pAtrRes
Attribute response; uint8_t[64]. More...
uint8_t bAtrResLength
Length of the ATR response. More...

Detailed Description

Structure holding information on Type A P2P activation/communication.

Field Documentation

§ bDid

uint8_t phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_Type_P2P_TAGS::bDid

Device ID (DID) for ISO/IEC 18092 Initiator ATR command.

§ bLri

uint8_t phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_Type_P2P_TAGS::bLri

Length reduction for ISO/IEC 18092 initiator.

§ bNadEnable

uint8_t phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_Type_P2P_TAGS::bNadEnable

Indicates whether Node Address (NAD) is enabled or not.

§ bNad

uint8_t phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_Type_P2P_TAGS::bNad

Node address.

Ignored if bNadEnabled is zero.

§ pGi

uint8_t* phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_Type_P2P_TAGS::pGi

General bytes information.

User should populate with appropriate address if bGiLength in non zero.

§ bGiLength

uint8_t phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_Type_P2P_TAGS::bGiLength

Length of the general bytes.

Should be zero if general bytes are not used.

§ pAtrRes

uint8_t* phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_Type_P2P_TAGS::pAtrRes

Attribute response; uint8_t[64].

§ bAtrResLength

uint8_t phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_Type_P2P_TAGS::bAtrResLength

Length of the ATR response.

The documentation for this struct was generated from the following file:
  • phacDiscLoop.h


NXP NFC Reader Library: phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_TypeA_I3P3 Struct Reference

  • phacDiscLoop_Sw_TypeA_Info
  • phacDiscLoop_TypeA_I3P3
Data Fields
phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_TypeA_I3P3 Struct Reference

Structure info required for ISO/IEC 14443 communication. More...

Data Fields

uint8_t aAtqa [PHAC_DISCLOOP_I3P3A_MAX_ATQA_LENGTH]
ATQA received from ISO/IEC 14443A compliant device. More...
uint8_t aUid [PHAC_DISCLOOP_I3P3A_MAX_UID_LENGTH]
Contains known UID bytes for the given cascade level. More...
uint8_t bUidSize
Size of the UID that was received from the PICC. More...
uint8_t aSak
Select acknowledge from the ISO/IEC 14443A type A card. More...

Detailed Description

Structure info required for ISO/IEC 14443 communication.

Field Documentation

§ aAtqa

uint8_t phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_TypeA_I3P3::aAtqa[PHAC_DISCLOOP_I3P3A_MAX_ATQA_LENGTH]

ATQA received from ISO/IEC 14443A compliant device.

§ aUid

uint8_t phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_TypeA_I3P3::aUid[PHAC_DISCLOOP_I3P3A_MAX_UID_LENGTH]

Contains known UID bytes for the given cascade level.

§ bUidSize

uint8_t phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_TypeA_I3P3::bUidSize

Size of the UID that was received from the PICC.

§ aSak

uint8_t phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_TypeA_I3P3::aSak

Select acknowledge from the ISO/IEC 14443A type A card.

The documentation for this struct was generated from the following file:
  • phacDiscLoop.h


NXP NFC Reader Library: phacDiscLoop_Sw_TypeA_Info::phascDiscLoop_TypeA_I3P4 Struct Reference

  • phacDiscLoop_Sw_TypeA_Info
  • phascDiscLoop_TypeA_I3P4
Data Fields
phacDiscLoop_Sw_TypeA_Info::phascDiscLoop_TypeA_I3P4 Struct Reference

Structure info required for ISO/IEC 14443-4 communication. More...

Data Fields

uint8_t bFsdi
Frame size integer. More...
uint8_t bCid
Card identifier. More...
uint8_t bNad
Node ADdress. More...
uint8_t bDri
Data Rate received by Initiator. More...
uint8_t bDsi
Data Rate send by Initiator. More...
uint8_t * pAts
Holds the answer to select response. More...

Detailed Description

Structure info required for ISO/IEC 14443-4 communication.

Field Documentation

§ bFsdi

uint8_t phacDiscLoop_Sw_TypeA_Info::phascDiscLoop_TypeA_I3P4::bFsdi

Frame size integer.

§ bCid

uint8_t phacDiscLoop_Sw_TypeA_Info::phascDiscLoop_TypeA_I3P4::bCid

Card identifier.

§ bNad

uint8_t phacDiscLoop_Sw_TypeA_Info::phascDiscLoop_TypeA_I3P4::bNad

Node ADdress.

§ bDri

uint8_t phacDiscLoop_Sw_TypeA_Info::phascDiscLoop_TypeA_I3P4::bDri

Data Rate received by Initiator.

§ bDsi

uint8_t phacDiscLoop_Sw_TypeA_Info::phascDiscLoop_TypeA_I3P4::bDsi

Data Rate send by Initiator.

§ pAts

uint8_t* phacDiscLoop_Sw_TypeA_Info::phascDiscLoop_TypeA_I3P4::pAts

Holds the answer to select response.

The documentation for this struct was generated from the following file:
  • phacDiscLoop.h


NXP NFC Reader Library: phacDiscLoop_Sw_TypeB_Info Struct Reference

Data Structures | Data Fields
phacDiscLoop_Sw_TypeB_Info Struct Reference
Activity Layer » Discovery Loop » Component : Software

Type B parameter structure. More...

Data Structures

struct | phacDiscLoop_TypeB_I3P3B
Structure for Type B (ISO/IEC 14443-B) tags. More...
struct | phacDiscLoop_TypeB_I3P4B
Type B ISO/IEC 14443-4B tag structure. More...

Data Fields

uint8_t bTotalTagsFound
Number of type B tags found. More...
uint8_t bAfiReq
Application file Identifier. More...
uint8_t bExtendedAtqBbit
For coding b5 of PARAM of REQB: b5=1 extended ATQB supported. More...
uint8_t bAdvFeaturesBit
For coding b6 of PARAM of REQB: b6=1 advanced features supported (NFC Forum). More...
uint8_t bFsdi
Frame size integer. More...
uint8_t bCid
Card identifier. More...
uint8_t bNad
Node ADdress. More...
uint8_t bDri
Data Rate receive (PICC –> PCD) integer. More...
uint8_t bDsi
Data Rate send (PCD –> PICC) integer. More...

Detailed Description

Type B parameter structure.

Field Documentation

§ bTotalTagsFound

uint8_t phacDiscLoop_Sw_TypeB_Info::bTotalTagsFound

Number of type B tags found.

§ bAfiReq

uint8_t phacDiscLoop_Sw_TypeB_Info::bAfiReq

Application file Identifier.

§ bExtendedAtqBbit

uint8_t phacDiscLoop_Sw_TypeB_Info::bExtendedAtqBbit

For coding b5 of PARAM of REQB: b5=1 extended ATQB supported.

§ bAdvFeaturesBit

uint8_t phacDiscLoop_Sw_TypeB_Info::bAdvFeaturesBit

For coding b6 of PARAM of REQB: b6=1 advanced features supported (NFC Forum).

§ bFsdi

uint8_t phacDiscLoop_Sw_TypeB_Info::bFsdi

Frame size integer.

Valid values: 0-8.

§ bCid

uint8_t phacDiscLoop_Sw_TypeB_Info::bCid

Card identifier.

Valid values 0-14.

§ bNad

uint8_t phacDiscLoop_Sw_TypeB_Info::bNad

Node ADdress.

§ bDri

uint8_t phacDiscLoop_Sw_TypeB_Info::bDri

Data Rate receive (PICC –> PCD) integer.

Valid values: 0-3.

§ bDsi

uint8_t phacDiscLoop_Sw_TypeB_Info::bDsi

Data Rate send (PCD –> PICC) integer.

Valid values: 0-3.

The documentation for this struct was generated from the following file:
  • phacDiscLoop.h


NXP NFC Reader Library: phacDiscLoop_Sw_TypeB_Info::phacDiscLoop_TypeB_I3P3B Struct Reference

  • phacDiscLoop_Sw_TypeB_Info
  • phacDiscLoop_TypeB_I3P3B
Data Fields
phacDiscLoop_Sw_TypeB_Info::phacDiscLoop_TypeB_I3P3B Struct Reference

Structure for Type B (ISO/IEC 14443-B) tags. More...

Data Fields

uint8_t aPupi [PHAC_DISCLOOP_I3P3B_PUPI_LENGTH]
ISO/IEC 14443-3B Pseudo Unique PICC identifier. More...
uint8_t aAtqB [PHAC_DISCLOOP_I3P3B_MAX_ATQB_LENGTH]
ATQB received from ISO/IEC 14443-3B compliant device. More...
uint8_t bAtqBLength
Length of the ATQB response. More...
uint8_t bSupportType4B
Indicates activated TypeB tag supports Type 4B Tag Platform or not. More...

Detailed Description

Structure for Type B (ISO/IEC 14443-B) tags.

Field Documentation

§ aPupi

uint8_t phacDiscLoop_Sw_TypeB_Info::phacDiscLoop_TypeB_I3P3B::aPupi[PHAC_DISCLOOP_I3P3B_PUPI_LENGTH]

ISO/IEC 14443-3B Pseudo Unique PICC identifier.

§ aAtqB

uint8_t phacDiscLoop_Sw_TypeB_Info::phacDiscLoop_TypeB_I3P3B::aAtqB[PHAC_DISCLOOP_I3P3B_MAX_ATQB_LENGTH]

ATQB received from ISO/IEC 14443-3B compliant device.

§ bAtqBLength

uint8_t phacDiscLoop_Sw_TypeB_Info::phacDiscLoop_TypeB_I3P3B::bAtqBLength

Length of the ATQB response.

§ bSupportType4B

uint8_t phacDiscLoop_Sw_TypeB_Info::phacDiscLoop_TypeB_I3P3B::bSupportType4B

Indicates activated TypeB tag supports Type 4B Tag Platform or not.

The documentation for this struct was generated from the following file:
  • phacDiscLoop.h


NXP NFC Reader Library: phacDiscLoop_Sw_TypeB_Info::phacDiscLoop_TypeB_I3P4B Struct Reference

  • phacDiscLoop_Sw_TypeB_Info
  • phacDiscLoop_TypeB_I3P4B
Data Fields
phacDiscLoop_Sw_TypeB_Info::phacDiscLoop_TypeB_I3P4B Struct Reference

Type B ISO/IEC 14443-4B tag structure. More...

Data Fields

uint8_t bMbli
Maximum Buffer Length Index (MBLI) is available on bits [3:0]. More...
uint8_t bParam1
Param1 for type B Attrib:
Bit 2 ... More...

Detailed Description

Type B ISO/IEC 14443-4B tag structure.

Field Documentation

§ bMbli

uint8_t phacDiscLoop_Sw_TypeB_Info::phacDiscLoop_TypeB_I3P4B::bMbli

Maximum Buffer Length Index (MBLI) is available on bits [3:0].

§ bParam1

uint8_t phacDiscLoop_Sw_TypeB_Info::phacDiscLoop_TypeB_I3P4B::bParam1

Param1 for type B Attrib:
Bit 2 ...

SOF
Bit 3 ... EOF
Bit 4-5 ... Minimum TR1
Bit 6-7 ... Minimum TR0.

The documentation for this struct was generated from the following file:
  • phacDiscLoop.h


NXP NFC Reader Library: phacDiscLoop_Sw_TypeF_Info Struct Reference

Data Structures | Data Fields
phacDiscLoop_Sw_TypeF_Info Struct Reference
Activity Layer » Discovery Loop » Component : Software

Type F parameter structure. More...

Data Structures

struct phacDiscLoop_TypeF_P2P_Info
Structure holding information for Type F P2P communication. More...

Data Fields

uint8_t bTotalTagsFound
Number of type F tags found. More...
uint8_t aSystemCode [2]
System code. More...
uint8_t bTimeSlot
Maximum number of time slots. More...

Detailed Description

Type F parameter structure.

Field Documentation

§ bTotalTagsFound

uint8_t phacDiscLoop_Sw_TypeF_Info::bTotalTagsFound

Number of type F tags found.

§ aSystemCode

uint8_t phacDiscLoop_Sw_TypeF_Info::aSystemCode[2]

System code.

§ bTimeSlot

uint8_t phacDiscLoop_Sw_TypeF_Info::bTimeSlot

Maximum number of time slots.

The documentation for this struct was generated from the following file:
  • phacDiscLoop.h


NXP NFC Reader Library: phacDiscLoop_Sw_TypeF_Info::phacDiscLoop_TypeF_P2P_Info Struct Reference

  • phacDiscLoop_Sw_TypeF_Info
  • phacDiscLoop_TypeF_P2P_Info
Data Fields
phacDiscLoop_Sw_TypeF_Info::phacDiscLoop_TypeF_P2P_Info Struct Reference

Structure holding information for Type F P2P communication. More...

Data Fields

uint8_t bDid
Device identifier. More...
uint8_t bLri
Length reduction of Initiator. More...
uint8_t bNadEnable
Enable usage of node address. More...
uint8_t bNad
Node address. More...
uint8_t * pGi
Optional general bytes. More...
uint8_t bGiLength
Length of the optional bytes. More...
uint8_t * pAtrRes
Pointer to the Attribute response. More...
uint8_t bAtrResLength
Attribute response length. More...

Detailed Description

Structure holding information for Type F P2P communication.

Field Documentation

§ bDid

uint8_t phacDiscLoop_Sw_TypeF_Info::phacDiscLoop_TypeF_P2P_Info::bDid

Device identifier.

Disabled if set to 0 else should have a value between 1-14.

§ bLri

uint8_t phacDiscLoop_Sw_TypeF_Info::phacDiscLoop_TypeF_P2P_Info::bLri

Length reduction of Initiator.

Should be a value in range 0-3.

§ bNadEnable

uint8_t phacDiscLoop_Sw_TypeF_Info::phacDiscLoop_TypeF_P2P_Info::bNadEnable

Enable usage of node address.

If set to zero NAD is disabled.

§ bNad

uint8_t phacDiscLoop_Sw_TypeF_Info::phacDiscLoop_TypeF_P2P_Info::bNad

Node address.

§ pGi

uint8_t* phacDiscLoop_Sw_TypeF_Info::phacDiscLoop_TypeF_P2P_Info::pGi

Optional general bytes.

§ bGiLength

uint8_t phacDiscLoop_Sw_TypeF_Info::phacDiscLoop_TypeF_P2P_Info::bGiLength

Length of the optional bytes.

§ pAtrRes

uint8_t* phacDiscLoop_Sw_TypeF_Info::phacDiscLoop_TypeF_P2P_Info::pAtrRes

Pointer to the Attribute response.

§ bAtrResLength

uint8_t phacDiscLoop_Sw_TypeF_Info::phacDiscLoop_TypeF_P2P_Info::bAtrResLength

Attribute response length.

The documentation for this struct was generated from the following file:
  • phacDiscLoop.h


NXP NFC Reader Library: phacDiscLoop_Sw_TypeV_Info Struct Reference

Data Fields
phacDiscLoop_Sw_TypeV_Info Struct Reference
Activity Layer » Discovery Loop » Component : Software

Type V parameter structure. More...

Data Fields

uint8_t bTotalTagsFound
Number of type V (ISO 15693) tags found. More...
uint8_t bFlag
Request flags byte. More...

Detailed Description

Type V parameter structure.

Field Documentation

§ bTotalTagsFound

uint8_t phacDiscLoop_Sw_TypeV_Info::bTotalTagsFound

Number of type V (ISO 15693) tags found.

§ bFlag

uint8_t phacDiscLoop_Sw_TypeV_Info::bFlag

Request flags byte.

The documentation for this struct was generated from the following file:
  • phacDiscLoop.h


NXP NFC Reader Library: phacDiscLoop_I18000p3m3_Info Struct Reference

Data Fields
phacDiscLoop_I18000p3m3_Info Struct Reference
Activity Layer » Discovery Loop » Component : Software

18000p3m3 parameter structure More...

Data Fields

uint8_t bTotalTagsFound
Holds the number of tags detected.
uint8_t bM
Modulation; default PHPAL_I18000P3M3_M_MANCHESTER_4.
uint8_t bDr
Link frequency; default PHPAL_I18000P3M3_LF_847KHZ.

Detailed Description

18000p3m3 parameter structure

The documentation for this struct was generated from the following file:
  • phacDiscLoop.h


NXP NFC Reader Library: phacDiscLoop_TargetParams Struct Reference

Data Fields
phacDiscLoop_TargetParams Struct Reference
Activity Layer » Discovery Loop » Component : Software

Target parameter structure. More...

Data Fields

uint8_t * pRxBuffer
Pointer to the Receive Buffer. More...
uint16_t wRxBufferLen
Length of Data Present in Receive Buffer. More...
uint16_t wProtParams
Frame mode and RX speed information. More...
uint8_t bRetryCount
Retry count for AUTOCOLL in case of failure. More...

Detailed Description

Target parameter structure.

Field Documentation

§ pRxBuffer

uint8_t* phacDiscLoop_TargetParams::pRxBuffer

Pointer to the Receive Buffer.

§ wRxBufferLen

uint16_t phacDiscLoop_TargetParams::wRxBufferLen

Length of Data Present in Receive Buffer.

§ wProtParams

uint16_t phacDiscLoop_TargetParams::wProtParams

Frame mode and RX speed information.

§ bRetryCount

uint8_t phacDiscLoop_TargetParams::bRetryCount

Retry count for AUTOCOLL in case of failure.

Default is 0.

The documentation for this struct was generated from the following file:
  • phacDiscLoop.h


NXP NFC Reader Library: phacDiscLoop_Sw_DataParams Struct Reference

Data Fields
phacDiscLoop_Sw_DataParams Struct Reference
Activity Layer » Discovery Loop » Component : Software

Discovery loop parameter structure. More...

Data Fields

uint16_t wId
ID for this component, not to be modified. More...
uint8_t bPasPollTechCfg
Technologies to poll for in passive mode. More...
uint8_t bActPollTechCfg
Technologies to poll for in active mode. More...
uint8_t bPasPollBailOut
Bail out for various technologies in Passive mode. More...
uint8_t bPasLisTechCfg
Technologies to listen for in passive listen mode. More...
uint8_t bActLisTechCfg
Technologies to listen for in active listen mode. More...
phacDiscLoop_Sw_PollState_t bPollState
Discovery loop stage to start with while in poll mode. More...
uint8_t baPasConDevLim [PHAC_DISCLOOP_PASS_POLL_MAX_TECHS_SUPPORTED]
Contains device limits for different technologies in passive poll mode. More...
uint16_t waPasPollGTimeUs [PHAC_DISCLOOP_PASS_POLL_MAX_TECHS_SUPPORTED]
Contains guard times for different technologies in passive poll mode. More...
uint16_t wActPollGTimeUs
Contains guard times for different technologies in Active poll mode. More...
uint8_t bCollPend
Flag to indicate whether collision is pending or not. More...
uint8_t bLpcdEnabled
Enable/Disable Low Power Card Detection. More...
uint8_t bUseAntiColl
Enable/Disable anti-collision for Type A for passive poll mode. More...
uint8_t bOpeMode
Operation mode of discovery loop. More...
uint8_t bNumOfCards
Number of cards detected in passive poll mode. More...
uint8_t bFelicaBaud
Current FELICA baud rate.
uint8_t bNfcActivityVersion
Supported NFC Activity version. More...
uint8_t bDetectedTechs
Detected technologies during poll mode. More...
phStatus_t | wErrorCode
Hold error received from lower layer when phacDiscLoop_Run returns PHAC_DISCLOOP_FAILURE. More...
void * | pHalDataParams
Pointer to the HAL data parameter. More...
void * | pPal1443p3aDataParams
Pointer to the 14443P3A layer PAL data parameter. More...
void * | pPalFelicaDataParams
Pointer to the Felica PAL data parameter. More...
void * | pPal1443p3bDataParams
Pointer to the 14443P3B PAL data parameter. More...
void * | pPal14443p4DataParams
Pointer to the 14443P4 PAL data parameter. More...
void * | pPal1443p4aDataParams
Pointer to the 14443P4A PAL data parameter. More...
void * | pPalSli15693DataParams
Pointer to the 15693 PAL data parameter. More...
void * | pPal18000p3m3DataParams
Pointer to the 18000P3M3 PAL data parameter. More...
void * | pAl18000p3m3DataParams
Pointer to the 18000P3M3 AL data parameter. More...
void * | pPal18092mPIDataParams
Pointer to 18092MPI PAL data parameter. More...
void * | pAlT1TDataParams
Pointer to T1T AL data parameter. More...
phacDiscLoop_Sw_TypeA_Info_t sTypeATargetInfo
Information gathered from TYPE A devices/tags in poll mode. More...
phacDiscLoop_Sw_TypeF_Info_t sTypeFTargetInfo
Information gathered from TYPE F devices/tags in poll mode. More...
phacDiscLoop_Sw_TypeB_Info_t sTypeBTargetInfo
Information gathered from TYPE B devices/tags in poll mode. More...
phacDiscLoop_Sw_TypeV_Info_t sTypeVTargetInfo
Information gathered from TYPE V (15693) devices/tags in poll mode. More...
phacDiscLoop_I18000p3m3_Info_t sI18000p3m3TargetInfo
Information gathered from 18000P3M3 devices/tags in poll mode. More...
phacDiscLoop_Sw_TargetParams_t sTargetParams
Information gathered from listen mode. More...

Detailed Description

Discovery loop parameter structure.

Field Documentation

§ wId

uint16_t phacDiscLoop_Sw_DataParams::wId

ID for this component, not to be modified.

This is initialized with PHAC_DISCLOOP_SW_ID in the initialization function phacDiscLoop_Sw_Init. This is used for validating the data parameter structure and to make sure that discovery loop APIs are called after initialization.

§ bPasPollTechCfg

uint8_t phacDiscLoop_Sw_DataParams::bPasPollTechCfg

Technologies to poll for in passive mode.

PHAC_DISCLOOP_POS_BIT_MASK_A -> Detect Type A.
PHAC_DISCLOOP_POS_BIT_MASK_B -> Detect Type B.
PHAC_DISCLOOP_POS_BIT_MASK_F212 -> Detect Type FELICA @ 212 kbps.
PHAC_DISCLOOP_POS_BIT_MASK_F424 -> Detect Type FELICA @ 424 kbps.
PHAC_DISCLOOP_POS_BIT_MASK_V -> Detect Type V / ISO 15693.
PHAC_DISCLOOP_POS_BIT_MASK_18000P3M3 -> Detect ISO 18000p3m3/ EPC Gen2.
Use phacDiscLoop_SetConfig with PHAC_DISCLOOP_CONFIG_PAS_POLL_TECH_CFG option to configure above values.

§ bActPollTechCfg

uint8_t phacDiscLoop_Sw_DataParams::bActPollTechCfg

Technologies to poll for in active mode.

PHAC_DISCLOOP_ACT_POS_BIT_MASK_106 -> Detect active target @ 106 kbps
PHAC_DISCLOOP_ACT_POS_BIT_MASK_212 -> Detect active target @ 212 kbps
PHAC_DISCLOOP_ACT_POS_BIT_MASK_424 -> Detect active target @ 424 kbps
Use phacDiscLoop_SetConfig with PHAC_DISCLOOP_CONFIG_ACT_POLL_TECH_CFG option to configure above values.

§ bPasPollBailOut

uint8_t phacDiscLoop_Sw_DataParams::bPasPollBailOut

Bail out for various technologies in Passive mode.

PHAC_DISCLOOP_POS_BIT_MASK_A -> Bail out for Type A.
PHAC_DISCLOOP_POS_BIT_MASK_B -> Bail out for Type B.
PHAC_DISCLOOP_POS_BIT_MASK_F212 -> Bail out for Type FELICA @ 212 kbps.
PHAC_DISCLOOP_POS_BIT_MASK_F424 -> Bail out for Type FELICA @ 424 kbps.
PHAC_DISCLOOP_POS_BIT_MASK_V -> Bail out for Type V / ISO 15693.
PHAC_DISCLOOP_POS_BIT_MASK_18000P3M3 -> Bail out for ISO 18000p3m3/ EPC Gen2.
Use phacDiscLoop_SetConfig with PHAC_DISCLOOP_CONFIG_BAIL_OUT option to configure above values.

§ bPasLisTechCfg

uint8_t phacDiscLoop_Sw_DataParams::bPasLisTechCfg

Technologies to listen for in passive listen mode.

PHAC_DISCLOOP_POS_BIT_MASK_A -> Listen for Type A.
PHAC_DISCLOOP_POS_BIT_MASK_B -> Listen for Type B. [Reserved. Not supported currently]
PHAC_DISCLOOP_POS_BIT_MASK_F212 -> Listen for Type FELICA @ 212 kbps.
PHAC_DISCLOOP_POS_BIT_MASK_F424 -> Listen for Type FELICA @ 424 kbps.
PHAC_DISCLOOP_POS_BIT_MASK_V -> Listen for Type V / ISO 15693.[Reserved. Not supported currently]
PHAC_DISCLOOP_POS_BIT_MASK_18000P3M3 -> Listen for ISO 18000p3m3/ EPC Gen2.[Reserved. Not supported currently]
Use phacDiscLoop_SetConfig with PHAC_DISCLOOP_CONFIG_PAS_LIS_TECH_CFG option to configure above values.

§ bActLisTechCfg

uint8_t phacDiscLoop_Sw_DataParams::bActLisTechCfg

Technologies to listen for in active listen mode.

PHAC_DISCLOOP_POS_BIT_MASK_A -> Listen for Type A.
PHAC_DISCLOOP_POS_BIT_MASK_B -> Listen for Type B.[Reserved. Not supported currently]
PHAC_DISCLOOP_POS_BIT_MASK_F212 -> Listen for Type FELICA @ 212 kbps.
PHAC_DISCLOOP_POS_BIT_MASK_F424 -> Listen for Type FELICA @ 424 kbps.
PHAC_DISCLOOP_POS_BIT_MASK_V -> Listen for Type V / ISO 15693.[Reserved. Not supported currently]
PHAC_DISCLOOP_POS_BIT_MASK_18000P3M3 -> Listen for ISO 18000p3m3/ EPC Gen2.[Reserved. Not supported currently]
Use phacDiscLoop_SetConfig with PHAC_DISCLOOP_CONFIG_ACT_LIS_TECH_CFG option to configure above values.

§ bPollState

phacDiscLoop_Sw_PollState_t phacDiscLoop_Sw_DataParams::bPollState

Discovery loop stage to start with while in poll mode.

PHAC_DISCLOOP_POLL_STATE_DETECTION -> Start with detection phase as per NFC Forum Activity Specification.
PHAC_DISCLOOP_POLL_STATE_COLLISION_RESOLUTION -> Start with collision resolution as per NFC Forum Activity Specification.
PHAC_DISCLOOP_POLL_STATE_REMOVAL -> Start with card removal phase (in EMVCo mode).
When phacDiscLoop_Run gives PHAC_DISCLOOP_MULTI_TECH_DETECTED in poll mode, application shall select one technology and start poll mode again in collision resolution state.

Use phacDiscLoop_SetConfig with PHAC_DISCLOOP_CONFIG_NEXT_POLL_STATE option to configure above states.

§ baPasConDevLim

uint8_t phacDiscLoop_Sw_DataParams::baPasConDevLim[PHAC_DISCLOOP_PASS_POLL_MAX_TECHS_SUPPORTED]

Contains device limits for different technologies in passive poll mode.

PHAC_DISCLOOP_CONFIG_TYPEA_DEVICE_LIMIT -> Device limit for Type A.
PHAC_DISCLOOP_CONFIG_TYPEB_DEVICE_LIMIT -> Device limit for Type B.
PHAC_DISCLOOP_CONFIG_TYPEF_DEVICE_LIMIT -> Device limit for Type F.
PHAC_DISCLOOP_CONFIG_TYPEV_DEVICE_LIMIT -> Device limit for Type V.
PHAC_DISCLOOP_CONFIG_18000P3M3_DEVICE_LIMIT -> Device limit for ISO 18000p3m3/ EPC Gen2.
Use phacDiscLoop_SetConfig with above options to configure device limit. Maximum device limit is PHAC_DISCLOOP_CFG_MAX_CARDS_SUPPORTED.

§ waPasPollGTimeUs

uint16_t phacDiscLoop_Sw_DataParams::waPasPollGTimeUs[PHAC_DISCLOOP_PASS_POLL_MAX_TECHS_SUPPORTED]

Contains guard times for different technologies in passive poll mode.

PHAC_DISCLOOP_CONFIG_GTA_VALUE_US -> Guard time for Type A.
PHAC_DISCLOOP_CONFIG_GTB_VALUE_US -> Guard time for Type B.
PHAC_DISCLOOP_CONFIG_GTFB_VALUE_US -> Guard time for Type F. Guard time is applied when polling for Type B is preceded by polling for Type F.
PHAC_DISCLOOP_CONFIG_GTBF_VALUE_US -> Guard time for Type F. Guard time is applied when polling for Type F is preceded by polling for Type B.
PHAC_DISCLOOP_CONFIG_GTV_VALUE_US -> Guard time for Type V.
PHAC_DISCLOOP_CONFIG_GT18000P3M3_VALUE_US -> Guard time for ISO 18000p3m3/ EPC Gen2.
Use phacDiscLoop_SetConfig with above options to configure guard time.

§ wActPollGTimeUs

uint16_t phacDiscLoop_Sw_DataParams::wActPollGTimeUs

Contains guard times for different technologies in Active poll mode.

PHAC_DISCLOOP_CONFIG_GT_ACTIVE_US -> Guard time for Active mode polling Default value is 5100 micro seconds.

Use phacDiscLoop_SetConfig with above options to configure guard time.

§ bCollPend

uint8_t phacDiscLoop_Sw_DataParams::bCollPend

Flag to indicate whether collision is pending or not.

PHAC_DISCLOOP_POS_BIT_MASK_A -> Type A.
PHAC_DISCLOOP_POS_BIT_MASK_B -> Type B.
PHAC_DISCLOOP_POS_BIT_MASK_F212 -> FELICA @ 212 kbps.
PHAC_DISCLOOP_POS_BIT_MASK_F424 -> FELICA @ 424 kbps.
PHAC_DISCLOOP_POS_BIT_MASK_V -> Type V / ISO 15693.
PHAC_DISCLOOP_POS_BIT_MASK_18000P3M3 -> ISO 18000p3m3/ EPC Gen2.
Use phacDiscLoop_GetConfig with PHAC_DISCLOOP_CONFIG_COLLISION_PENDING option to get collision pending status.

§ bLpcdEnabled

uint8_t phacDiscLoop_Sw_DataParams::bLpcdEnabled

Enable/Disable Low Power Card Detection.

Use phacDiscLoop_SetConfig with PHAC_DISCLOOP_CONFIG_ENABLE_LPCD option to PH_ON / PH_OFF LPCD.

§ bUseAntiColl

uint8_t phacDiscLoop_Sw_DataParams::bUseAntiColl

Enable/Disable anti-collision for Type A for passive poll mode.

Use phacDiscLoop_SetConfig with PHAC_DISCLOOP_CONFIG_ANTI_COLL option to PH_ON / PH_OFF anti-collision.

§ bOpeMode

uint8_t phacDiscLoop_Sw_DataParams::bOpeMode

Operation mode of discovery loop.

RD_LIB_MODE_EMVCO -> Run in EMVCO mode as per the EMVCo 2.5 Digital specification.
RD_LIB_MODE_NFC -> Run in NFC mode as per NFC Forum Activity Specification 1.1. This is the default mode.
Use phacDiscLoop_SetConfig with PHAC_DISCLOOP_CONFIG_OPE_MODE option to configure above modes.

§ bNumOfCards

uint8_t phacDiscLoop_Sw_DataParams::bNumOfCards

Number of cards detected in passive poll mode.

Use phacDiscLoop_GetConfig with PHAC_DISCLOOP_CONFIG_NR_TAGS_FOUND option to get number of tags.

§ bNfcActivityVersion

uint8_t phacDiscLoop_Sw_DataParams::bNfcActivityVersion

Supported NFC Activity version.

PHAC_DISCLOOP_NFC_ACTIVITY_VERSION_1_0 -> Run in NFC Forum Activity 1.0 mode.
PHAC_DISCLOOP_NFC_ACTIVITY_VERSION_1_1 -> Run in NFC Forum Activity 1.1 mode. This is the default.
Use phacDiscLoop_SetConfig with PHAC_DISCLOOP_CONFIG_ACTIVITY_VERSION option to configure above modes.

§ bDetectedTechs

uint8_t phacDiscLoop_Sw_DataParams::bDetectedTechs

Detected technologies during poll mode.

Passive technologies:
PHAC_DISCLOOP_POS_BIT_MASK_A -> Detected Type A.
PHAC_DISCLOOP_POS_BIT_MASK_B -> Detected Type B.
PHAC_DISCLOOP_POS_BIT_MASK_F212 -> Detected FELICA @ 212 kbps.
PHAC_DISCLOOP_POS_BIT_MASK_F424 -> Detected FELICA @ 424 kbps.
PHAC_DISCLOOP_POS_BIT_MASK_V -> Detected Type V / ISO 15693.
PHAC_DISCLOOP_POS_BIT_MASK_18000P3M3 -> Detected ISO 18000p3m3/ EPC Gen2.
Active technologies:
PHAC_DISCLOOP_ACT_POS_BIT_MASK_106 -> Detected active target @ 106 kbps.
PHAC_DISCLOOP_ACT_POS_BIT_MASK_212 -> Detected active target @ 212 kbps.
PHAC_DISCLOOP_ACT_POS_BIT_MASK_424 -> Detected active target @ 424 kbps.
Use phacDiscLoop_GetConfig with PHAC_DISCLOOP_CONFIG_TECH_DETECTED option to get detected technologies.

§ wErrorCode

phStatus_t phacDiscLoop_Sw_DataParams::wErrorCode

Hold error received from lower layer when phacDiscLoop_Run returns PHAC_DISCLOOP_FAILURE.

Use phacDiscLoop_GetConfig with PHAC_DISCLOOP_CONFIG_ADDITIONAL_INFO option to get error from lower layer.

§ pHalDataParams

void* phacDiscLoop_Sw_DataParams::pHalDataParams

Pointer to the HAL data parameter.

Application should initialize this pointer with address of HAL data parameter structure.

§ pPal1443p3aDataParams

void* phacDiscLoop_Sw_DataParams::pPal1443p3aDataParams

Pointer to the 14443P3A layer PAL data parameter.

Application should initialize this pointer with address of 14443P3A PAL data parameter structure.

§ pPalFelicaDataParams

void* phacDiscLoop_Sw_DataParams::pPalFelicaDataParams

Pointer to the Felica PAL data parameter.

Application should initialize this pointer with address of Felica PAL data parameter structure.

§ pPal1443p3bDataParams

void* phacDiscLoop_Sw_DataParams::pPal1443p3bDataParams

Pointer to the 14443P3B PAL data parameter.

Application should initialize this pointer with address of 14443P3B PAL data parameter structure.

§ pPal14443p4DataParams

void* phacDiscLoop_Sw_DataParams::pPal14443p4DataParams

Pointer to the 14443P4 PAL data parameter.

Application should initialize this pointer with address of 14443P4 PAL data parameter structure.

§ pPal1443p4aDataParams

void* phacDiscLoop_Sw_DataParams::pPal1443p4aDataParams

Pointer to the 14443P4A PAL data parameter.

Application should initialize this pointer with address of 14443P4A PAL data parameter structure.

§ pPalSli15693DataParams

void* phacDiscLoop_Sw_DataParams::pPalSli15693DataParams

Pointer to the 15693 PAL data parameter.

Application should initialize this pointer with address of 15693 PAL data parameter structure.

§ pPal18000p3m3DataParams

void* phacDiscLoop_Sw_DataParams::pPal18000p3m3DataParams

Pointer to the 18000P3M3 PAL data parameter.

Application should initialize this pointer with address of 18000P3M3 PAL data parameter structure.

§ pAl18000p3m3DataParams

void* phacDiscLoop_Sw_DataParams::pAl18000p3m3DataParams

Pointer to the 18000P3M3 AL data parameter.

Application should initialize this pointer with address of 18000P3M3 AL data parameter structure.

§ pPal18092mPIDataParams

void* phacDiscLoop_Sw_DataParams::pPal18092mPIDataParams

Pointer to 18092MPI PAL data parameter.

Application should initialize this pointer with address of 18092MPI PAL data parameter structure.

§ pAlT1TDataParams

void* phacDiscLoop_Sw_DataParams::pAlT1TDataParams

Pointer to T1T AL data parameter.

Application should initialize this pointer with address of T1T AL data parameter structure.

§ sTypeATargetInfo

phacDiscLoop_Sw_TypeA_Info_t phacDiscLoop_Sw_DataParams::sTypeATargetInfo

Information gathered from TYPE A devices/tags in poll mode.

Application can access this directly to get information like UID, UID size, SAK etc. of all Type A devices/tags detected in poll mode.

§ sTypeFTargetInfo

phacDiscLoop_Sw_TypeF_Info_t phacDiscLoop_Sw_DataParams::sTypeFTargetInfo

Information gathered from TYPE F devices/tags in poll mode.

Application can access this directly to get information like ID, Baud rate, etc. of all Type F devices/tags detected in poll mode.

§ sTypeBTargetInfo

phacDiscLoop_Sw_TypeB_Info_t phacDiscLoop_Sw_DataParams::sTypeBTargetInfo

Information gathered from TYPE B devices/tags in poll mode.

Application can access this directly to get information like PUPI, ATQB, ATQB length etc. of all Type B devices/tags detected in poll mode.

§ sTypeVTargetInfo

phacDiscLoop_Sw_TypeV_Info_t phacDiscLoop_Sw_DataParams::sTypeVTargetInfo

Information gathered from TYPE V (15693) devices/tags in poll mode.

Application can access this directly to get information like UID, DSFID, etc. of all Type V devices/tags detected in poll mode.

§ sI18000p3m3TargetInfo

phacDiscLoop_I18000p3m3_Info_t phacDiscLoop_Sw_DataParams::sI18000p3m3TargetInfo

Information gathered from 18000P3M3 devices/tags in poll mode.

Application can access this directly to get information like StoredCRC, etc. of all 18000P3M3 devices/tags detected in poll mode.

§ sTargetParams

phacDiscLoop_Sw_TargetParams_t phacDiscLoop_Sw_DataParams::sTargetParams

Information gathered from listen mode.

Application can access this directly to get information like Request received, Request length etc. from AUTOCOLL in listen mode.

The documentation for this struct was generated from the following file:
  • phacDiscLoop.h


NXP NFC Reader Library: Host Card Emulation

Modules
Host Card Emulation

This Layer Contains implementation of HCE component. More...

Collaboration diagram for Host Card Emulation:

Modules

NFC Forum Type 4A Card Emulation
This component implements the card emulation of NFC Forum Type 4A Tag.

Detailed Description

This Layer Contains implementation of HCE component.


NXP NFC Reader Library: NFC Forum Type 4A Card Emulation

Modules | Macros | Typedefs | Functions
NFC Forum Type 4A Card Emulation
Host Card Emulation

This component implements the card emulation of NFC Forum Type 4A Tag. More...

Collaboration diagram for NFC Forum Type 4A Card Emulation:

Modules

Component : Software

Macros

#define PHCE_T4T_CC_FILE_ID 0xE103U
CC (Capability Container) file ID as per NFC Forum Specification.

Typedefs

typedef phStatus_t(* phceT4T_AppCallback_t) (uint8_t bState, uint16_t wRxOption, uint8_t *pRxData, uint16_t wRxDataLen, uint16_t *pStatusWord, uint8_t **ppTxData, uint16_t *pTxDataLen)
Application callback to handle proprietary commands and UPDATE BINARY. This should be implemented by the user if proprietary means are needed to write to NDEF file and/or proprietary file(s) which may be on EEPROM or to handle proprietary commands. More...

Functions

phStatus_t | phceT4T_SetElementaryFile (void *pDataParams, uint8_t bFileType, uint8_t *pFile, uint16_t wFileId, uint32_t dwFileSize, uint32_t dwContentLen)
Set a supported Elementary File (EF). More...
phStatus_t | phceT4T_Activate (void *pDataParams)
Activate T4T card emulation functionality. More...
phStatus_t | phceT4T_ProcessCmd (void *pDataParams, uint16_t wOption, uint8_t *pRxData, uint16_t wRxDataLen, uint16_t *pStatusWord, uint8_t **ppTxData, uint16_t *pTxDataLen)
Validate and process the received C-APDU (Command Application Protocol Data Unit). More...
phStatus_t | phceT4T_AppProcessCmd (void *pDataParams, phceT4T_AppCallback_t pAppCallback)
Application process command. More...
phStatus_t | phceT4T_GetSelectedFileInfo (void *pDataParams, uint16_t *pFileId, uint8_t **ppFile, uint32_t *pFileSize, uint8_t *pWriteAccess, uint32_t *pFileOffset)
Get information about currently selected file. More...
phStatus_t | phceT4T_Reset (void *pDataParams)
Reset the tag's state variables. More...
phStatus_t | phceT4T_SetConfig (void *pDataParams, uint16_t wConfig, uint16_t wValue)
Set value of the specified configurationidentifier". More...
phStatus_t | phceT4T_GetConfig (void *pDataParams, uint16_t wConfig, uint16_t *pValue)
Get value of the specified configurationidentifier". More...

Tag States

#define | PHCE_T4T_STATE_NONE 0x00U
Initial state. More...
#define | PHCE_T4T_STATE_CC_FILE_CREATED 0x01U
CC (Capability container) file created. More...
#define | PHCE_T4T_STATE_NDEF_FILE_CREATED 0x02U
NDEF file created. More...
#define | PHCE_T4T_STATE_NDEF_APP_SELECTED 0x03U
NDEF application selected. More...
#define | PHCE_T4T_STATE_FILE_SELECTED 0x04U
File selected. More...
#define | PHCE_T4T_STATE_FILE_READ 0x05U
File read. More...
#define | PHCE_T4T_STATE_FILE_UPDATE 0x06U
File update. More...
#define | PHCE_T4T_STATE_PROPRIETARY 0x07U
Proprietary command received. More...

Receive Options

These options are given as input to phceT4T_ProcessCmd and application callback (if used) to indicate if the received data (C-APDU) given to it for processing is partial or complete.

The data (C-APDU) to be processed is received using phpalI14443p4mC_Receive.

#define | PHCE_T4T_RXDEFAULT 0x00U
Default option. More...
#define | PHCE_T4T_RXCHAINING_BUFFER_FIRST 0x01U
First part of partial receive data. More...
#define | PHCE_T4T_RXCHAINING_BUFFER_CONT 0x02U
Subsequent part of partial receive data. More...
#define | PHCE_T4T_RXCHAINING_BUFFER_LAST 0x03U
Last chunk of receive data. More...

Return Status

Custom return status codes of T4T card emulation layer.

#define | PH_CE_T4T_FAILURE (PH_ERR_CUSTOM_BEGIN + 0x00U)
Failure. More...
#define | PH_CE_T4T_SELECT (PH_ERR_CUSTOM_BEGIN + 0x01U)
SELECT command received. More...
#define | PH_CE_T4T_READ_BINARY (PH_ERR_CUSTOM_BEGIN + 0x02U)
READ BINARY command received. More...
#define | PH_CE_T4T_UPDATE_BINARY (PH_ERR_CUSTOM_BEGIN + 0x03U)
UPDATE BINARY command received. More...
#define | PH_CE_T4T_PROPRIETARY (PH_ERR_CUSTOM_BEGIN + 0x04U)
Proprietary command received. More...
#define | PH_CE_T4T_INVALID_STATE (PH_ERR_CUSTOM_BEGIN + 0x05U)
Tag in invalid state to execute the requested operation. More...

File Types

File types to be specified in phceT4T_SetElementaryFile.

#define | PHCE_T4T_FILE_CC 0x00U
Capability Container (CC) File. More...
#define | PHCE_T4T_FILE_NDEF 0x01U
NFC Data Exchange Format (NDEF) File. More...
#define | PHCE_T4T_FILE_PROPRIETARY 0x02U
Proprietary File. More...

Configuration Types

These options shall be used along with phceT4T_SetConfig and phceT4T_GetConfig to configure Type 4A card emulation layer.

#define | PHCE_T4T_CONFIG_HANDLE_UPDATEBINARY 0x00U
Enable/Disable handling of UPDATE BINARY inside card emulation layer. More...
#define | PHCE_T4T_CONFIG_RECEIVE_PROPRIETARY 0x01U
Enable/Disable support for proprietary command. More...
#define | PHCE_T4T_CONFIG_NDEF_FILE_ID 0x02U
Set/Get NDEF file ID. More...
#define | PHCE_T4T_CONFIG_NDEF_FILE_READ_ACCESS 0x03U
Set/Get NDEF file read access value. More...
#define | PHCE_T4T_CONFIG_NDEF_FILE_WRITE_ACCESS 0x04U
Set/Get NDEF file write access value. More...
#define | PHCE_T4T_CONFIG_MLE 0x05U
Set/Get value of MLe (Maximum data that can be read in one Read Binary command). More...
#define | PHCE_T4T_CONFIG_MLC 0x06U
Set/Get value of MLc (Maximum data that can be written in one Update Binary command). More...

Detailed Description

This component implements the card emulation of NFC Forum Type 4A Tag.

Implementation is based on NFC Forum Type 4 Tag Operation Specification version 2.0. SELECT, READ BINARY and UPDATE BINARY commands are supported as per NFC Type 4 Tag Operation Specification.

This layer follows a multi-threaded RTOS based design using one reader library thread and one application thread. Application thread along with application callback can be used for handling of UPDATE BINARY and proprietary commands.

A pictorial representation of reader library thread and application thread used for card emulation is shown below. Refer function documentation for more information.

As UPDATE BINARY and proprietary commands are handled by the phceT4T_AppProcessCmd in application thread, application shall use some synchronization mechanism (like mutex or semaphore) as shown in the diagram to synchronize entry to and exit from phceT4T_Activate and phceT4T_AppProcessCmd.

Waiting Time eXtension (WTX) is handled internally by phceT4T_Activate in reader library thread. The reader library thread should be of high priority than the application thread for proper handling of WTX. In non RTOS single threaded environment this layer can be used with limited features, i.e. with no support for WTX.

Macro Definition Documentation

§ PHCE_T4T_STATE_NONE

#define PHCE_T4T_STATE_NONE 0x00U

Initial state.

State after Initialization of this layer.

§ PHCE_T4T_STATE_CC_FILE_CREATED

#define PHCE_T4T_STATE_CC_FILE_CREATED 0x01U

CC (Capability container) file created.

State after creation of CC (Capability Container) file PHCE_T4T_FILE_CC using phceT4T_SetElementaryFile.

§ PHCE_T4T_STATE_NDEF_FILE_CREATED

#define PHCE_T4T_STATE_NDEF_FILE_CREATED 0x02U

NDEF file created.

State after creation of NDEF file PHCE_T4T_FILE_NDEF using phceT4T_SetElementaryFile.

§ PHCE_T4T_STATE_NDEF_APP_SELECTED

#define PHCE_T4T_STATE_NDEF_APP_SELECTED 0x03U

NDEF application selected.

State after receiving a valid SELECT request to select NFC NDEF application.

§ PHCE_T4T_STATE_FILE_SELECTED

#define PHCE_T4T_STATE_FILE_SELECTED 0x04U

File selected.

State after receiving a valid SELECT request to select a file present inside the NDEF application.

§ PHCE_T4T_STATE_FILE_READ

#define PHCE_T4T_STATE_FILE_READ 0x05U

File read.

State after receiving a valid READ BINARY request.

§ PHCE_T4T_STATE_FILE_UPDATE

#define PHCE_T4T_STATE_FILE_UPDATE 0x06U

File update.

State after receiving a valid UPDATE BINARY request.

§ PHCE_T4T_STATE_PROPRIETARY

#define PHCE_T4T_STATE_PROPRIETARY 0x07U

Proprietary command received.

State after receiving a proprietary command (command with unsupported instruction byte).

§ PHCE_T4T_RXDEFAULT

#define PHCE_T4T_RXDEFAULT 0x00U

Default option.

Option specified in phceT4T_ProcessCmd or application callback when phpalI14443p4mC_Receive returns PH_ERR_SUCCESS and the whole received data (complete C-APDU) is given for processing.

§ PHCE_T4T_RXCHAINING_BUFFER_FIRST

#define PHCE_T4T_RXCHAINING_BUFFER_FIRST 0x01U

First part of partial receive data.

Option specified in phceT4T_ProcessCmd or application callback when phpalI14443p4mC_Receive returns with PH_ERR_SUCCESS_CHAINING for first time and this partial received data (first part of C-APDU) is given for processing. This option indicates that the received data is not complete and only first part of data is given for processing.

§ PHCE_T4T_RXCHAINING_BUFFER_CONT

#define PHCE_T4T_RXCHAINING_BUFFER_CONT 0x02U

Subsequent part of partial receive data.

Option specified in phceT4T_ProcessCmd or application callback when phpalI14443p4mC_Receive returns with PH_ERR_SUCCESS_CHAINING for second time or more and this partial received data (subsequent part of C-APDU) is given for processing. This option indicates that the received data is not complete and subsequent part of data is given for processing.

§ PHCE_T4T_RXCHAINING_BUFFER_LAST

#define PHCE_T4T_RXCHAINING_BUFFER_LAST 0x03U

Last chunk of receive data.

Option specified in phceT4T_ProcessCmd or application callback when phpalI14443p4mC_Receive returns with PH_ERR_SUCCESS after a PH_ERR_SUCCESS_CHAINING in previous receive and this partial received data is given for processing. This option indicates that it is last part of partial receive data.

§ PH_CE_T4T_FAILURE

#define PH_CE_T4T_FAILURE (PH_ERR_CUSTOM_BEGIN + 0x00U)

Failure.

This status code is returned by phceT4T_ProcessCmd when an unsupported C-APDU (Command Application Protocol Data Unit) is given to it for processing. Supported C-APDUs are SELECT, READ BINARY, UPDATE BINARY and PROPRIETARY (commands with unsupported instruction byte).

§ PH_CE_T4T_SELECT

#define PH_CE_T4T_SELECT (PH_ERR_CUSTOM_BEGIN + 0x01U)

SELECT command received.

This status code is returned by phceT4T_ProcessCmd when a valid SELECT command is given to it for processing and the file is successfully selected.

§ PH_CE_T4T_READ_BINARY

#define PH_CE_T4T_READ_BINARY (PH_ERR_CUSTOM_BEGIN + 0x02U)

READ BINARY command received.

This status code is returned by phceT4T_ProcessCmd when a valid READ BINARY command is given to it for processing and the file is successfully read.

§ PH_CE_T4T_UPDATE_BINARY

#define PH_CE_T4T_UPDATE_BINARY (PH_ERR_CUSTOM_BEGIN + 0x03U)

UPDATE BINARY command received.

This status code is returned by phceT4T_ProcessCmd when a valid UPDATE BINARY command is given to it for processing. The file will be updated by phceT4T_ProcessCmd if PHCE_T4T_CONFIG_HANDLE_UPDATEBINARY is enabled else application shall update the file using phceT4T_AppProcessCmd or using application callback from application thread.

§ PH_CE_T4T_PROPRIETARY

#define PH_CE_T4T_PROPRIETARY (PH_ERR_CUSTOM_BEGIN + 0x04U)

Proprietary command received.

This status code is returned by phceT4T_ProcessCmd when a proprietary command (command with unsupported instruction byte) is given to it for processing. If PHCE_T4T_CONFIG_RECEIVE_PROPRIETARY is enabled then proprietary command will be sent to application and application can handle it using callback, else unsupported instruction is returned as status to reader.

§ PH_CE_T4T_INVALID_STATE

#define PH_CE_T4T_INVALID_STATE (PH_ERR_CUSTOM_BEGIN + 0x05U)

Tag in invalid state to execute the requested operation.

This status code is returned by phceT4T_GetSelectedFileInfo, phceT4T_SetConfig and phceT4T_GetConfig when card emulation layer is not in a valid state to execute these APIs.

§ PHCE_T4T_FILE_CC

#define PHCE_T4T_FILE_CC 0x00U

Capability Container (CC) File.

This is used in phceT4T_SetElementaryFile to set the CC file.

§ PHCE_T4T_FILE_NDEF

#define PHCE_T4T_FILE_NDEF 0x01U

NFC Data Exchange Format (NDEF) File.

This is used in phceT4T_SetElementaryFile to set the NDEF file.

§ PHCE_T4T_FILE_PROPRIETARY

#define PHCE_T4T_FILE_PROPRIETARY 0x02U

Proprietary File.

This is used in phceT4T_SetElementaryFile to set a proprietary file.

§ PHCE_T4T_CONFIG_HANDLE_UPDATEBINARY

#define PHCE_T4T_CONFIG_HANDLE_UPDATEBINARY 0x00U

Enable/Disable handling of UPDATE BINARY inside card emulation layer.

Default value is PH_OFF (disabled). Supported values are PH_ON and PH_OFF. If enabled, the UPDATE BINARY command is processed and file is updated by the phceT4T_ProcessCmd itself. If disabled, UPDATE BINARY command is only validated and data to be written to file is given to application thread (i.e. phceT4T_AppProcessCmd) to update the file.

§ PHCE_T4T_CONFIG_RECEIVE_PROPRIETARY

#define PHCE_T4T_CONFIG_RECEIVE_PROPRIETARY 0x01U

Enable/Disable support for proprietary command.

Default value is PH_OFF (disabled). Supported values are PH_ON and PH_OFF. If disabled, unsupported instruction status word is sent back to reader. If enabled, application can handle proprietary commands in application callback phceT4T_AppCallback_t of phceT4T_AppProcessCmd.

§ PHCE_T4T_CONFIG_NDEF_FILE_ID

#define PHCE_T4T_CONFIG_NDEF_FILE_ID 0x02U

Set/Get NDEF file ID.

Valid range is between 0001h to E101h, E104h to 3EFFh, 3F01h to 3FFEh and 4000h to FFFEh. NDEF file ID can be updated only after phceT4T_SetElementaryFile is executed for NDEF file PHCE_T4T_FILE_NDEF.

§ PHCE_T4T_CONFIG_NDEF_FILE_READ_ACCESS

#define PHCE_T4T_CONFIG_NDEF_FILE_READ_ACCESS 0x03U

Set/Get NDEF file read access value.

Default is 0x00 (unrestricted read access). Only 0x00 is the supported value as per NFC Forum Type 4 Tag specification. Other values are RFU.

This can be configured only after executing phceT4T_SetElementaryFile for CC file PHCE_T4T_FILE_NDEF.

§ PHCE_T4T_CONFIG_NDEF_FILE_WRITE_ACCESS

#define PHCE_T4T_CONFIG_NDEF_FILE_WRITE_ACCESS 0x04U

Set/Get NDEF file write access value.

Default is 0x00 (unrestricted write access). Supported values are 0x00 (write access) and 0xFF (no write access, read only). Other values are RFU as per NFC Forum Type 4 Tag Specification.

This can be configured only after executing phceT4T_SetElementaryFile for CC file PHCE_T4T_FILE_NDEF.

§ PHCE_T4T_CONFIG_MLE

#define PHCE_T4T_CONFIG_MLE 0x05U

Set/Get value of MLe (Maximum data that can be read in one Read Binary command).

Default is 0xFFFF. Supported values are from 0x000F - 0xFFFF. Maximum read data length of 0xFFFF is supported only with extended APDUs (Application protocol data units). For short APDUs a maximum read length of 0xFF is supported. This can be configured only after executing phceT4T_SetElementaryFile for CC file PHCE_T4T_FILE_CC.

For more info on short and extended APDUs refer ISO 7816-4 2005, Section 5.

§ PHCE_T4T_CONFIG_MLC

#define PHCE_T4T_CONFIG_MLC 0x06U

Set/Get value of MLc (Maximum data that can be written in one Update Binary command).

Default is 0xFFFF. Supported values are from 0x0001 - 0xFFFF. Maximum write data length of 0xFFFF is supported only with extended APDUs (Application protocol data units). For short APDUs a maximum write data length of 0xFF is supported. This can be configured only after executing phceT4T_SetElementaryFile for CC file PHCE_T4T_FILE_CC.

For more info on short and extended APDUs refer ISO 7816-4 2005, Section 5.

Typedef Documentation

§ phceT4T_AppCallback_t

typedef phStatus_t(* phceT4T_AppCallback_t) (uint8_t bState, uint16_t wRxOption, uint8_t *pRxData, uint16_t wRxDataLen, uint16_t *pStatusWord, uint8_t **ppTxData, uint16_t *pTxDataLen)

Application callback to handle proprietary commands and UPDATE BINARY. This should be implemented by the user if proprietary means are needed to write to NDEF file and/or proprietary file(s) which may be on EEPROM or to handle proprietary commands.

Application callback, if implemented shall be specified when calling phceT4T_AppProcessCmd from application thread. Otherwise a default implementation as provided in phceT4T_AppProcessCmd will execute.

For UPDATE BINARY command, data to be written to file and length of data to be written to file is given to callback in pRxData and wRxDataLen respectively. For proprietary commands whole C-APDU (Command application Protocol Data Unit) received from reader is given to callback.

R-APDU (Response Application Protocol Data Unit) to be send back to reader should be updated in ppTxData (data field of R-APDU) and pStatusWord (SW1 and SW2 of R-APDU).

Application callback can get the details of currently selected file using phceT4T_GetSelectedFileInfo.

Parameters
[in] | bState | Tag State indicating received command type (PHCE_T4T_STATE_FILE_UPDATE or PHCE_T4T_STATE_PROPRIETARY).
[in] | wRxOption | Receive option indicating if received data (pRxData) is partial or complete.
[in] | pRxData | Data received from reader library thread.
[in] | wRxDataLen | Length of received data (length of pRxData).
[out] | pStatusWord | Status Word to be sent (as part of R-APDU). For example set pStatusWord as 0x9000 when requested command is successfully completed.
[out] | ppTxData | Data to be transmitted (as part of R-APDU). If only status word (pStatusWord) needs to be send as response to reader, set this to NULL. For UPDATE BINARY command this should be set to NULL.
[out] | pTxDataLen | Length of data to be transmitted. Set this to 0 if data to be transmitted (ppTxData) is set to NULL.
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INTERNAL_ERROR | for all failures.

Usage:

Application Callback (Sample Code):

phStatus_t AppCallback(
uint8_t bState,
uint16_t wRxOption,
uint8_t *pRxData,
uint16_t wRxDataLen,
uint16_t *pStatusWord,
uint8_t **ppTxData,
uint16_t *pTxDataLen
)
{
phStatus_t status;
uint16_t wSelectedFileId;
uint8_t *pSelectedFile;
uint32_t dwSelectedFileSize;
uint8_t bWriteAccess;
uint32_t dwFileOffset;
// UPDATE BINARY command handling
if(bState == PHCE_T4T_STATE_FILE_UPDATE)
{
// Get Selected file info.
status = phceT4T_GetSelectedFileInfo(
&sceT4T,
&wSelectedFileId,
&pSelectedFile,
&dwSelectedFileSize,
&bWriteAccess,
&dwFileOffset);
if((status & PH_ERR_MASK) == PH_ERR_SUCCESS)
{
// Update file. If specific methods are needed for writing file,
// use it here.
(void)memcpy(&pSelectedFile[dwFileOffset], pRxData, wRxDataLen);
// File update success, update out parameters.
*pStatusWord = 0x9000;
*ppTxData = NULL;
*pTxDataLen = 0;
}
else // This condition shall never come.
{
// Could not update file.
printf("Application Thread: Getting file Info failed...\n");
*pStatusWord = 0x6A82;
*ppTxData = NULL;
*pTxDataLen = 0;
// Return same error back.
return (status & PH_ERR_MASK);
}
}
// Proprietary command handling.
else
{
// DEFAULT: No proprietary support.
*pStatusWord = 0x6D00; // Instruction code not supported.
*ppTxData = NULL;
*pTxDataLen = 0;
}
return PH_ERR_SUCCESS;
}

Function Documentation

§ phceT4T_SetElementaryFile()

phStatus_t phceT4T_SetElementaryFile | ( | void * | pDataParams,
 |  | uint8_t | bFileType,
 |  | uint8_t * | pFile,
 |  | uint16_t | wFileId,
 |  | uint32_t | dwFileSize,
 |  | uint32_t | dwContentLen
 | ) |  |

Set a supported Elementary File (EF).

Supported EF types are:

  • PHCE_T4T_FILE_CC
  • PHCE_T4T_FILE_NDEF
  • PHCE_T4T_FILE_PROPRIETARY

NDEF file (PHCE_T4T_FILE_NDEF) and proprietary file (PHCE_T4T_FILE_PROPRIETARY) can be on EEPROM. If writing to EEPROM needs special methods, then application should handle it using callback phceT4T_AppCallback_t in phceT4T_AppProcessCmd.

Refer NFC Forum Type 4 Tag Operation Specification version 2.0, Section 5 for details of file size and file content for each file types.

For CC file, if content length is set to 0, then CC file will be initialized with default values. If not set to 0, then content length should be a valid value including NDEF file TLV size and optional proprietary file TLV(s), if present.

CC file and NDEF file are mandatory. CC file PHCE_T4T_FILE_CC should be created first. Followed by NDEF file PHCE_T4T_FILE_NDEF. Proprietary file(s) are optional.

Parameters
[in] | pDataParams | Pointer to this layer's parameter structure phceT4T_Sw_DataParams_t.
[in] | bFileType | Type of Elementary File. Supported file types are PHCE_T4T_FILE_CC, PHCE_T4T_FILE_NDEF and PHCE_T4T_FILE_PROPRIETARY.
[in] | pFile | Pointer to the Elementary File. For example, elementary file can be a pointer to a buffer like aFile[1000].
[in] | wFileId | Elementary File ID. IDs as per NFC Forum T4T Specification 2.0 are supported. For CC file, the file ID should be set to the NFC Forum defined value of 0xE103. For NDEF and proprietary files the valid ID ranges are between 0001h to E101h, E104h to 3EFFh, 3F01h to 3FFEh and 4000h to FFFEh.
[in] | dwFileSize | Size of elementary file. For example, if aFile[1000] is set as the elementary file then dwFileSize should be set to 1000.
[in] | dwContentLen | Actual content length in elementary file. This specifies the length of actual valid content present in file. For example if aFile[1000] = {0x00, 0x02, 0x03, 0x00} is set as the elementary file then dwContentLen should be set to 4 and dwFileSize should be set to 1000.
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | Parameter value is invalid. An input parameter is invalid.
PH_ERR_INVALID_DATA_PARAMS | Invalid data parameter. The provided data parameter (pDataParams) is invalid or this layer is not initialized.

§ phceT4T_Activate()

phStatus_t phceT4T_Activate ( void * pDataParams )

Activate T4T card emulation functionality.

This shall be called from the reader library thread. This API calls phpalI14443p4mC_Receive to receive data from reader and pass it to phceT4T_ProcessCmd for processing the received C-APDU (Command Application Protocol Data Unit). After processing, it sends the R-APDU (Response Application Protocol Data Unit) to reader using phpalI14443p4mC_Transmit.

Based on the configuration options PHCE_T4T_CONFIG_HANDLE_UPDATEBINARY and PHCE_T4T_CONFIG_RECEIVE_PROPRIETARY, UPDATE BINARY and PROPRIETARY commands are handled by itself or given to application thread (i.e. phceT4T_AppProcessCmd) for handling.

Waiting Time eXtension (WTX) is handled internally by this function. This function can be used in single threaded non RTOS environment if UPDATE BINARY and proprietary commands are configured to be handled by this function itself (i.e. with no application thread present). WTX is not supported in single threaded environment.

phceT4T_Activate shall be called only after successful activation of ISO 14443-4 card layer phpalI14443p4mC_Activate. This API exits only on error from lower layers, ABORT, external RF OFF or DESELECT.

Application shall use some synchronization mechanism like mutex or semaphore to synchronize between application thread and reader library thread (i.e. to synchronize entry to and exit from phceT4T_Activate and phceT4T_AppProcessCmd).

Parameters
[in] pDataParams Pointer to this layer's parameter structure phceT4T_Sw_DataParams_t.
Returns
Status code
Return values
PH_ERR_SUCCESS_DESELECTED | Tag DESELECTED. Tag got successfully DESELECTED after receiving DESELECT request from the reader.
PH_ERR_EXT_RF_ERROR | External RF field is OFF.
PH_ERR_ABORTED | Aborted due to HAL shutdown.
PH_ERR_INVALID_DATA_PARAMS | Invalid data parameter. The provided data parameter (pDataParams) is invalid or this layer is not initialized.
Other | Error from underlying components.

Usage:

Reader Library Thread (Block Diagram):

Reader Library Thread (Sample Code):

void TReaderLibrary(void *pParams)
{
phStatus_t status = 0;
// Set CC File.
status = phceT4T_SetElementaryFile(
&sceT4T,
PHCE_T4T_FILE_CC,
aCcFile,
0xE103,
sizeof(aCcFile),
wCcFileContentLength);
// Set NDEF File.
status = phceT4T_SetElementaryFile(
&sceT4T,
PHCE_T4T_FILE_NDEF,
aNdefFile,
wNdefFileId,
sizeof(aNdefFile),
wNdefFileContentLength);
// Loop always in listen mode.
while(1)
{
// Start discovery loop in listen mode
status = phacDiscLoop_Run(
&sDiscLoop,
PHAC_DISCLOOP_ENTRY_POINT_LISTEN);
if((status & PH_ERR_MASK) != PHAC_DISCLOOP_ACTIVATED_BY_PEER)
{
goto reset_tag;
}
// Validate RATS and send ATS.
status = phpalI14443p4mC_Activate(
&spalI14443p4mC,
pRxBuf,
wRxBufLen,
aAtsRes,
wAtsLength);
if((status & PH_ERR_MASK) != PH_ERR_SUCCESS)
{
goto reset_tag;
}
// Trigger phceT4T_AppProcessCmd in Application thread to start.
status = phOsal_Semaphore_Give(appstart);
// Activate HCE.
status = phceT4T_Activate(&sceT4T);
// Wait for phceT4T_AppProcessCmd in Application thread to exit.
status = phOsal_Semaphore_Take(appexit, 0xFFFFFFFF);
reset_tag:
// Reset Reader library layers.
(void)phpalI14443p4mC_ResetProtocol(&spalI14443p4mC);
(void)phceT4T_Reset(&sceT4T);
// Clear all events from all sources.
(void)phOsEventClear(pDataParams->Eventhandle, E_OS_EVENT_OPT_NONE, E_PH_OSAL_EVT_ALL, NULL);
}
}

§ phceT4T_ProcessCmd()

phStatus_t phceT4T_ProcessCmd | ( | void * | pDataParams,
 |  | uint16_t | wOption,
 |  | uint8_t * | pRxData,
 |  | uint16_t | wRxDataLen,
 |  | uint16_t * | pStatusWord,
 |  | uint8_t ** | ppTxData,
 |  | uint16_t * | pTxDataLen
 | ) |  |

Validate and process the received C-APDU (Command Application Protocol Data Unit).

If RTOS is not used, then this API shall be called directly by the application in the only existing application task. In multi-threaded application or when phceT4T_Activate is used by application, this API will be called internally by phceT4T_Activate.

Data received from phpalI14443p4mC_Receive (C-APDU) shall be passed to this API for validation and processing. The out data parameters, pStatusWord and ppTxData (R-APDU) shall be send to reader using phpalI14443p4mC_Transmit.

SELECT and READ BINARY commands are validated and processed by this API. Proprietary commands (commands with unsupported instruction byte) are not processed and the whole C-APDU (Command Application Protocol Data Unit) is returned back in out parameter (ppTxData). For UPDATE BINARY command the file will be updated if PHCE_T4T_CONFIG_HANDLE_UPDATEBINARY is enabled else data to be written to file and data length is returned in out parameters ppTxData and pTxDataLen respectively.

Parameters
[in] | pDataParams | Pointer to this layer's parameter structure phceT4T_Sw_DataParams_t.
[in] | wOption | Received Option. This indicates if the received data (pRxData) is complete or partial.
[in] | pRxData | Received data (C-APDU). Data (Command) received from reader side. Data can be received from reader using phpalI14443p4mC_Receive and passed to this API for processing.
[in] | wRxDataLen | Received data length. Length of pRxData.
[out] | pStatusWord | Status Word. Contains status word SW1 and SW2 (last 2 bytes of R-APDU to be send back to reader). For example a value of 0x9000 indicates that the received data (C-APDU) is valid and processed successfully. For a complete list of values refer ISO 7816-4 specification.
[out] | ppTxData | Data to be transmitted back to the reader. Contains the data field of R-APDU. This will be set to NULL if data field is not needed in R-APDU.
[out] | pTxDataLen | Length of data to be transmitted back to reader (length of R-APDU data field ppTxData). This will be set to 0 if ppTxData is NULL (i.e. no data field in R-APDU).
Returns
Status code
Return values
PH_CE_T4T_SELECT | File selected.
PH_CE_T4T_READ_BINARY | File read.
PH_CE_T4T_UPDATE_BINARY | Update Binary received or file updated (if PHCE_T4T_CONFIG_HANDLE_UPDATEBINARY is enabled).
PH_CE_T4T_PROPRIETARY | Proprietary C-APDU received.
PH_CE_T4T_FAILURE | Unsupported C-APDU / Error. Check status word (pStatusWord) to get the actual type of error.
PH_ERR_INVALID_DATA_PARAMS | Invalid data parameter. The provided data parameter (pDataParams) is invalid or this layer is not initialized.

§ phceT4T_AppProcessCmd()

phStatus_t phceT4T_AppProcessCmd | ( | void * | pDataParams,
 |  | phceT4T_AppCallback_t | pAppCallback
 | ) |  |

Application process command.

This shall be called from the application thread when RTOS / multiple threads are used. Based on configuration options PHCE_T4T_CONFIG_HANDLE_UPDATEBINARY and PHCE_T4T_CONFIG_RECEIVE_PROPRIETARY, UPDATE BINARY and PROPRIETARY commands are handled by phceT4T_Activate or by this API.

If UPDATE BINARY needs some special write methods (i.e. if files are in EEPROM) or if some proprietary commands needs to be supported then application callback phceT4T_AppCallback_t shall be provided for that. Else callback shall be set to NULL.

This API exits only on error from lower layers, ABORT, external RF OFF or DESELECT. Application shall use some synchronization mechanism like mutex or semaphore to synchronize between application thread and reader library thread (i.e. to synchronize entry to and exit from phceT4T_Activate and phceT4T_AppProcessCmd).

When phceT4T_Activate returns in reader library thread, this API will return with same status in application thread.

Parameters
[in] | pDataParams | Pointer to this layer's parameter structure phceT4T_Sw_DataParams_t.
[in] | pAppCallback | Application callback. Application callback to handle UPDATE BINARY and proprietary commands. Can be set to NULL if not used.
Returns
Status code
Return values
PH_ERR_SUCCESS_DESELECTED | Tag DESELECTED. Tag got successfully DESELECTED after receiving DESELECT request from the reader.
PH_ERR_EXT_RF_ERROR | External RF field is OFF.
PH_ERR_ABORTED | Aborted due to HAL shutdown.
PH_ERR_INVALID_DATA_PARAMS | Invalid data parameter. The provided data parameter (pDataParams) is invalid or this layer is not initialized.
Other | Error from underlying components.

Usage:

Application Thread (Block Diagram):

Application Thread (Sample Code):

void TApplication(void *pParams)
{
phStatus_t status;
while(1)
{
// Wait for trigger from reader library thread to start.
status = phOsal_Semaphore_Take(appstart, 0xFFFFFFFF);
// Start Application processing of HCE.
status = phceT4T_AppProcessCmd(&sceT4T, AppCallback);
// Trigger reader lib thread about the phceT4T_AppProcessCmd exit.
status = phOsal_Semaphore_Give(appexit);
}
}

§ phceT4T_GetSelectedFileInfo()

phStatus_t phceT4T_GetSelectedFileInfo | ( | void * | pDataParams,
 |  | uint16_t * | pFileId,
 |  | uint8_t ** | ppFile,
 |  | uint32_t * | pFileSize,
 |  | uint8_t * | pWriteAccess,
 |  | uint32_t * | pFileOffset
 | ) |  |

Get information about currently selected file.

Application shall use this to get information about currently selected file when UPDATE BINARY and proprietary commands are handled by application callback.

Parameters
[in] | pDataParams | Pointer to this layer's parameter structure phceT4T_Sw_DataParams_t.
[out] | pFileId | ID of selected file. Used to pass back the ID of currently selected file.
[out] | ppFile | Pointer to selected file. Used to pass back the pointer to currently selected file.
[out] | pFileSize | Size of selected file. Used to pass back the size of currently selected file.
[out] | pWriteAccess | Write access of selected file. Used to pass back the write access of currently selected file. Only 0x00 and 0xFF are the supported vales. 0x00 - write access with out any restriction. 0xFF - no write access (read only file). All other values are RFU (not used).
[out] | pFileOffset | Used to pass back the offset of currently selected file from where it should be updated. This is valid only for UPDATE BINARY command. Application shall update the selected file (ppFile) starting from this offset (pFileOffset) for UPDATE BINARY command. When processing proprietary commands, value of this parameter shall be ignored as whole command (C-APDU) is processed by application callback itself.
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_DATA_PARAMS | Invalid data parameter. The provided data parameter (pDataParams) is invalid or this layer is not initialized.
PH_CE_T4T_INVALID_STATE | Invalid State. Operation not supported in current tag state (i.e. no files are in selected state).

§ phceT4T_Reset()

phStatus_t phceT4T_Reset ( void * pDataParams )

Reset the tag's state variables.

Application shall use this to reset variables and data parameters of tag after one cycle of operation or on error (i.e. after /ref phceT4T_Activate exists).

Parameters
[in] pDataParams Pointer to this layer's parameter structure phceT4T_Sw_DataParams_t.
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_DATA_PARAMS | Invalid data parameter. The provided data parameter (pDataParams) is invalid or this layer is not initialized.

§ phceT4T_SetConfig()

phStatus_t phceT4T_SetConfig | ( | void * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t | wValue
 | ) |  |

Set value of the specified configurationidentifier".

The SetConfig command is used to set values for the different configuration parameters of this layer.

Parameters
[in] | pDataParams | Pointer to this layer's parameter structure phceT4T_Sw_DataParams_t.
[in] | wConfig | Configuration Identifier. Specify the configuration identifier to be set.
[in] | wValue | Configuration Value. Value to be set for the specified configuration identifier (wConfig).
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_DATA_PARAMS | Invalid data parameter. The provided data parameter (pDataParams) is invalid or this layer is not initialized.
PH_ERR_INVALID_PARAMETER | Parameter value or configuration option is invalid.
PH_CE_T4T_INVALID_STATE | Invalid state. Operation not supported in current tag state. Refer configuration options to known when each configuration can be set.

§ phceT4T_GetConfig()

phStatus_t phceT4T_GetConfig | ( | void * | pDataParams,
 |  | uint16_t | wConfig,
 |  | uint16_t * | pValue
 | ) |  |

Get value of the specified configurationidentifier".

The GetConfig command is used to retrieve values of different configuration parameters of this layer.

Parameters
[in] | pDataParams | Pointer to this layer's parameter structure phceT4T_Sw_DataParams_t.
[in] | wConfig | Configuration Identifier. Specify the configuration identifier for which value to be retrieved.
[out] | pValue | Configuration Value. Used to pass back the value of the specified configuration identifier (wConfig).
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_DATA_PARAMS | Invalid data parameter. The provided data parameter (pDataParams) is invalid or this layer is not initialized.
PH_ERR_INVALID_PARAMETER | Parameter value or configuration option is invalid.
PH_CE_T4T_INVALID_STATE | Invalid state. Operation not supported in current tag state. Refer configuration options to known when each configuration value can be retrieved.


NXP NFC Reader Library: Component : Software

Data Structures | Macros | Typedefs | Functions
Component : Software
Host Card Emulation » NFC Forum Type 4A Card Emulation
Collaboration diagram for Component : Software:

Data Structures

struct phceT4T_Sw_DataParams
NFC Type 4A Tag card emulation parameter structure. More...

Macros

#define | PHCE_T4T_SW_ID 0x01U
ID for this layer (software implementation for card emulation of Type 4 Tag). More...
#define | PHCE_T4T_MAX_PROPRIETARY_FILE 0x01U
Maximum number of proprietary file supported. More...
#define | E_PH_OSAL_EVT_RXDATA_AVAILABLE (1 << 1)
Event posted by Reader library thread to the application thread once the ISO 18092 packet is received and processed. More...
#define | E_PH_OSAL_EVT_TXDATA_AVAILABLE (1 << 2)
Event posted by application thread so that the Reader library thread takes the data and sends over ISO 18092. More...
#define | E_PH_OSAL_EVT_ERROR (1 << 4)
Event posted by the Reader library thread, in case application should use /ref phOsal__PostwithDetail to knows the error occurred. More...

Typedefs

typedef struct phceT4T_Sw_DataParams phceT4T_Sw_DataParams_t
NFC Type 4A Tag card emulation parameter structure.

Functions

phStatus_t phceT4T_Sw_Init (phceT4T_Sw_DataParams_t *pDataParams, uint16_t wSizeOfDataParams, void *pPalI14443p4mCDataParams, uint8_t *pAppBuffer, uint16_t wAppBufferSize)
Initialize Type 4A card emulation layer. More...

Detailed Description

Macro Definition Documentation

§ PHCE_T4T_SW_ID

#define PHCE_T4T_SW_ID 0x01U

ID for this layer (software implementation for card emulation of Type 4 Tag).

phceT4T_Sw_DataParams::wId is initialized with this ID in the initialization function phceT4T_Sw_Init.

§ PHCE_T4T_MAX_PROPRIETARY_FILE

#define PHCE_T4T_MAX_PROPRIETARY_FILE 0x01U

Maximum number of proprietary file supported.

This defines the maximum count of proprietary file supported inside the T4T NDEF Application. By default maximum proprietary file count is sent to 1. User can change this value to support more proprietary files. #NXPBUILD__PHCE_T4T_PROPRIETARY shall be enabled in build configuration to support proprietary files.

§ E_PH_OSAL_EVT_RXDATA_AVAILABLE

#define E_PH_OSAL_EVT_RXDATA_AVAILABLE (1 << 1)

Event posted by Reader library thread to the application thread once the ISO 18092 packet is received and processed.

§ E_PH_OSAL_EVT_TXDATA_AVAILABLE

#define E_PH_OSAL_EVT_TXDATA_AVAILABLE (1 << 2)

Event posted by application thread so that the Reader library thread takes the data and sends over ISO 18092.

§ E_PH_OSAL_EVT_ERROR

#define E_PH_OSAL_EVT_ERROR (1 << 4)

Event posted by the Reader library thread, in case application should use /ref phOsal__PostwithDetail to knows the error occurred.

Event posted by response time extension timer ISR. Reader library thread listens to this event and sends the RTOx packet.

Function Documentation

§ phceT4T_Sw_Init()

phStatus_t phceT4T_Sw_Init | ( | phceT4T_Sw_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams,
 |  | void * | pPalI14443p4mCDataParams,
 |  | uint8_t * | pAppBuffer,
 |  | uint16_t | wAppBufferSize
 | ) |  |

Initialize Type 4A card emulation layer.

This should be called before using any of the card emulation APIs to do the initialization of card emulation component. This configures the T4T card emulation layer with default configurations. Refer configuration options for supported configurations and their default values.

Parameters
[in] | pDataParams | Pointer to T4T card emulation data parameter structure phceT4T_Sw_DataParams_t.
[in] | wSizeOfDataParams | Specifies the size of data parameter structure phceT4T_Sw_DataParams_t.
[in] | pPalI14443p4mCDataParams | Pointer to the ISO 14443p4mC data parameter structure phpalI14443p4mC_Sw_DataParams_t.
[in] | pAppBuffer | Application buffer to be give by application where the command received from external reader will be copied to. This is required if application handles UPDATE BINARY or proprietary commands in application thread (multi-threaded environment) otherwise this can be set to NULL (in single threaded environment with no RTOS).
[in] | wAppBufferSize | Size of Application buffer (pAppBuffer). If pAppBuffer is set to NULL, then this should be set to zero.
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_DATA_PARAMS | Invalid data parameter. Size of data parameter structure phceT4T_Sw_DataParams_t specified in wSizeOfDataParams is wrong.


NXP NFC Reader Library: phceT4T_Sw_DataParams Struct Reference

Data Fields
phceT4T_Sw_DataParams Struct Reference
Host Card Emulation » NFC Forum Type 4A Card Emulation » Component : Software

NFC Type 4A Tag card emulation parameter structure. More...

Data Fields

uint16_t wId
ID for this component, not to be modified by user. More...
uint16_t wStatusWord
Status Word (SW1 and SW2) as per ISO 7816-4 (Example: 0x9000 indicates SUCCESS). More...
uint16_t wLc
Lc field of received C-APDU (Command Application Protocol Data Unit). More...
uint16_t wAppBufferSize
Size of application buffer. More...
uint8_t * pAppBuffer
Application buffer. More...
uint8_t * pNdefFile
NDEF file pointer. More...
uint32_t dwNdefFileSize
NDEF file size. More...
uint8_t * pCcFile
CC (Capability Container) file pointer. More...
uint16_t wCcFileSize
CC (Capability Container) file size. More...
uint16_t wCcContentLen
CC (Capability Container) file content length. More...
uint8_t * pSelectedFile
Pointer to currently selected file. More...
uint32_t dwFileSize
Size of currently selected file. More...
uint32_t dwFileOffset
Offset for selected file. More...
uint16_t wSelectedFileId
ID of currently selected file. More...
uint8_t bFileWriteAccess
Write access of currently selected file. More...
uint8_t bTagState
Current state of tag. More...
void * pPalI14443p4mCDataParams
Pointer to ISO 14443p4mC PAL data parameter structure. More...
uint8_t * pSharedData
Shared data buffer. More...
uint16_t wSharedDataLen
Length of shared data in phceT4T_Sw_DataParams::pSharedData. More...
uint8_t bRxOption
Indicates the data received option. More...
uint8_t bSupportProprietaryCmd
Indicates support for proprietary commands. More...
uint8_t bHandleUpdateCmd
Indicates handling of UPDATE BINARY command by phceT4T_Activate and phceT4T_ProcessCmd. More...
uint16_t wExitStatus
Used to share the exit status (error code) between reader library thread and application thread in multi-threaded environment. More...
phOsal_EventObj_t T4TEventObj
Event Object. More...

Detailed Description

NFC Type 4A Tag card emulation parameter structure.

Field Documentation

§ wId

uint16_t phceT4T_Sw_DataParams::wId

ID for this component, not to be modified by user.

This is initialized with PHCE_T4T_SW_ID in the initialization function phceT4T_Sw_Init. This is used for validating the data parameter structure and to make sure that APIs are called after initialization.

§ wStatusWord

uint16_t phceT4T_Sw_DataParams::wStatusWord

Status Word (SW1 and SW2) as per ISO 7816-4 (Example: 0x9000 indicates SUCCESS).

This will be updated after successful processing of received C-APDU (Command Application Protocol Data Unit). This Status Word is send as the last 2 bytes of Response Application Protocol Data Unit (R-APDU).

§ wLc

uint16_t phceT4T_Sw_DataParams::wLc

Lc field of received C-APDU (Command Application Protocol Data Unit).

This indicates the length of command data field. This parameter is updated and used only for UPDATE BINARY command.

§ wAppBufferSize

uint16_t phceT4T_Sw_DataParams::wAppBufferSize

Size of application buffer.

Holds the size of application buffer (phceT4T_Sw_DataParams::pAppBuffer) provided in the initialization function phceT4T_Sw_Init. Application buffer size should be at least equal to the HAL receive buffer.

§ pAppBuffer

uint8_t* phceT4T_Sw_DataParams::pAppBuffer

Application buffer.

Holds the application buffer provided in the initialization function phceT4T_Sw_Init. This buffer is used to copy and keep the received data to avoid data loss in case of WTX (Waiting Time eXtension).

§ pNdefFile

uint8_t* phceT4T_Sw_DataParams::pNdefFile

NDEF file pointer.

Holds the pointer to application provided NDEF file. Application can set the NDEF file using phceT4T_SetElementaryFile with file type as PHCE_T4T_FILE_NDEF.

§ dwNdefFileSize

uint32_t phceT4T_Sw_DataParams::dwNdefFileSize

NDEF file size.

Holds the size of application provided NDEF file. Application can set the NDEF file and file size using phceT4T_SetElementaryFile with file type as PHCE_T4T_FILE_NDEF.

§ pCcFile

uint8_t* phceT4T_Sw_DataParams::pCcFile

CC (Capability Container) file pointer.

Holds the pointer to application provided CC file. Application can set the CC file using phceT4T_SetElementaryFile with file type as PHCE_T4T_FILE_CC.

§ wCcFileSize

uint16_t phceT4T_Sw_DataParams::wCcFileSize

CC (Capability Container) file size.

Holds the size of application provided CC file. Application can set the CC file and file size using phceT4T_SetElementaryFile with file type as PHCE_T4T_FILE_CC.

§ wCcContentLen

uint16_t phceT4T_Sw_DataParams::wCcContentLen

CC (Capability Container) file content length.

Holds the content length of application provided CC file. Application can set the CC file and content length using phceT4T_SetElementaryFile with file type as PHCE_T4T_FILE_CC. Content length specifies the length of valid content inside file. For CC file the valid content length values supported by phceT4T_SetElementaryFile are:

  • 0x00 - No valid content. Then CE T4T layer will initialize CC with default values.
  • 0x0F - Content length till one normal NDEF TLV (8 bytes long) is specified.
  • 0x11 - Content length till one extended NDEF TLV (10 bytes long) is specified.
  • Others - If proprietary TLVs are specified in CC, the CC content length should include it too.

§ pSelectedFile

uint8_t* phceT4T_Sw_DataParams::pSelectedFile

Pointer to currently selected file.

Holds the pointer to the currently selected file. This will be updated after processing a valid FILE SELECT command. The pointer to the file selected by the SELECT command is updated here.

§ dwFileSize

uint32_t phceT4T_Sw_DataParams::dwFileSize

Size of currently selected file.

Holds the size of currently selected file. This will be updated after processing a valid FILE SELECT command. The size of file selected by the SELECT command is updated here.

§ dwFileOffset

uint32_t phceT4T_Sw_DataParams::dwFileOffset

Offset for selected file.

Holds the offset of currently selected file. This will be updated after processing a valid UPDATE BINARY command. The offset of file specified in the UPDATE BINARY command is updated here. After updating the file this will be updated with the file offset till where update happened successfully.

§ wSelectedFileId

uint16_t phceT4T_Sw_DataParams::wSelectedFileId

ID of currently selected file.

Holds the ID of the currently selected file. This will be updated after processing a valid FILE SELECT command. The ID of file selected by the SELECT command is updated here.

§ bFileWriteAccess

uint8_t phceT4T_Sw_DataParams::bFileWriteAccess

Write access of currently selected file.

Holds the write access of the currently selected file. This will be updated after processing a valid FILE SELECT command. The write access of file selected by the SELECT command is updated here.

§ bTagState

uint8_t phceT4T_Sw_DataParams::bTagState

Current state of tag.

The supported values of tag state are:

  • PHCE_T4T_STATE_NONE
  • PHCE_T4T_STATE_CC_FILE_CREATED
  • PHCE_T4T_STATE_NDEF_FILE_CREATED
  • PHCE_T4T_STATE_NDEF_APP_SELECTED
  • PHCE_T4T_STATE_FILE_SELECTED
  • PHCE_T4T_STATE_FILE_READ
  • PHCE_T4T_STATE_FILE_UPDATE

§ pPalI14443p4mCDataParams

void* phceT4T_Sw_DataParams::pPalI14443p4mCDataParams

Pointer to ISO 14443p4mC PAL data parameter structure.

Holds the pointer to ISO 14443p4mC PAL data parameter structure specified by application in the initialization function phceT4T_Sw_Init.

§ pSharedData

uint8_t* phceT4T_Sw_DataParams::pSharedData

Shared data buffer.

Used to share data between reader library thread and application thread in multi-threaded environment. Pointer to the data to be send to another thread is copied to this variable and shared.

§ wSharedDataLen

uint16_t phceT4T_Sw_DataParams::wSharedDataLen

Length of shared data in phceT4T_Sw_DataParams::pSharedData.

Used to share data between reader library thread and application thread in multi-threaded environment. Length of data to be send to another thread is copied to this variable and shared.

§ bRxOption

uint8_t phceT4T_Sw_DataParams::bRxOption

Indicates the data received option.

This specifies if the received data is complete or chaining. The supported options are:

  • PHCE_T4T_RXDEFAULT
  • PHCE_T4T_RXCHAINING_BUFFER_FIRST
  • PHCE_T4T_RXCHAINING_BUFFER_CONT
  • PHCE_T4T_RXCHAINING_BUFFER_LAST

If UPDATE BINARY and/or proprietary commands are handled by application callback, then value of this option is send to application callback through wRxOption parameter of phceT4T_AppCallback_t.

§ bSupportProprietaryCmd

uint8_t phceT4T_Sw_DataParams::bSupportProprietaryCmd

Indicates support for proprietary commands.

By default the proprietary command support is disabled. If proprietary command support is disabled then unsupported command status word is send back to reader.

Use phceT4T_SetConfig with PHCE_T4T_CONFIG_RECEIVE_PROPRIETARY option to enable/disable (PH_ON or PH_OFF) support for proprietary commands.

§ bHandleUpdateCmd

uint8_t phceT4T_Sw_DataParams::bHandleUpdateCmd

Indicates handling of UPDATE BINARY command by phceT4T_Activate and phceT4T_ProcessCmd.

By default the handling of UPDATE BINARY by phceT4T_Activate and phceT4T_ProcessCmd is disabled (PH_OFF). If UPDATE BINARY is handled, WTX can not be handled. If application don't want handling of UPDATE BINARY using a separate application thread (like in single threaded environment with no RTOS), application can enable (PH_ON) this option.

Use phceT4T_SetConfig with PHCE_T4T_CONFIG_HANDLE_UPDATEBINARY option to enable/disable (PH_ON or PH_OFF) this option.

§ wExitStatus

uint16_t phceT4T_Sw_DataParams::wExitStatus

Used to share the exit status (error code) between reader library thread and application thread in multi-threaded environment.

This contains the return status from lower layers or error occurred in this layer when phceT4T_Activate exits.

§ T4TEventObj

phOsal_EventObj_t phceT4T_Sw_DataParams::T4TEventObj

Event Object.

The documentation for this struct was generated from the following file:
  • phceT4T.h


NXP NFC Reader Library: Link Abstraction Layer

Modules
Link Abstraction Layer

This Layer Contains implementation of LLCP component. More...

Collaboration diagram for Link Abstraction Layer:

Modules

NFCForum-LLCP
This Component implements the NFCForum Logical Link Control Protocol (LLCP) version 1.1.

Detailed Description

This Layer Contains implementation of LLCP component.


NXP NFC Reader Library: NFCForum-LLCP

Modules | Macros | Functions
NFCForum-LLCP
Link Abstraction Layer

This Component implements the NFCForum Logical Link Control Protocol (LLCP) version 1.1. More...

Collaboration diagram for NFCForum-LLCP:

Modules

Component : Software
Implementation of NFCForum Logical Link Control Protocol (LLCP) 1.1.

Macros

#define | PHLN_LLCP_MAGIC_NUM_BYTE1 0x46
LLCP Magic Byte-1. More...
#define | PHLN_LLCP_MAGIC_NUM_BYTE2 0x66
LLCP Magic Byte-2. More...
#define | PHLN_LLCP_MAGIC_NUM_BYTE3 0x6D
LLCP Magic Byte-3. More...

Functions

phStatus_t | phlnLlcp_Activate (void *pDataParams, uint8_t *pRemoteGnrlBytes, uint8_t bRemoteGnrBytesLen, uint8_t bDevType)
Activates the LLCP layer link by checking General Bytes content of ATR_REQ/ATR_RES. More...
phStatus_t | phlnLlcp_Deactivate (void *pDataParams)
Deactivate the LLCP layer link. More...
phStatus_t | phlnLlcp_WaitForActivation (void *pDataParams)
Wait for LLCP Activation Event from Reader Library Thread. More...
phStatus_t | phlnLlcp_Transport_Socket_Init (void *pDataParams, phlnLlcp_Transport_Socket_t *psSocket, phlnLlcp_Transport_Socket_Type_t eSocketType, uint8_t *pSocketRxBuffer, uint32_t dwSocketRxBufferSize)
Initializes a new socket. More...
phStatus_t | phlnLlcp_Transport_Socket_Register (void *pDataParams, phlnLlcp_Transport_Socket_t *pSocket, phlnLlcp_Transport_Socket_Type_t eSocketType, uint8_t bLsap, uint8_t *pUri)
Register a socket at the SAP manager. More...
phStatus_t | phlnLlcp_Transport_Socket_WaitForConnection (void *pDataParams, phlnLlcp_Transport_Socket_t *pServerSocket, phlnLlcp_Transport_Socket_t *pConnServerSocket)
WaitForConnection is a Blocking call used by a Connection-oriented Server socket waiting for an incoming client connection on the registered pServerSocket. More...
phStatus_t | phlnLlcp_Transport_Socket_Connect (void *pDataParams, phlnLlcp_Transport_Socket_t *pClientSocket, uint8_t bDsap)
Connect is a Blocking call used by a Connection-oriented client socket to connect to a remote server with a DSAP given with bDsap. More...
phStatus_t | phlnLlcp_Transport_Socket_ConnectViaUri (void *pDataParams, phlnLlcp_Transport_Socket_t *pClientSocket, uint8_t *pUri)
ConnectViaUri is a Blocking call used by a Connection-oriented client socket to connect to a remote server with a Uniform Resource Identifier (URI) given with pUri. More...
phStatus_t | phlnLlcp_Transport_Socket_Receive (void *pDataParams, phlnLlcp_Transport_Socket_t *psSocket)
Receive is a Blocking call used to receive data on a socket. More...
phStatus_t | phlnLlcp_Transport_Socket_Send (void *pDataParams, phlnLlcp_Transport_Socket_t *pClientSocket, uint8_t *pTxBuffer, uint32_t dwTxBufferSize, uint16_t wFrameOpt)
Send is a Blocking call used to send data on a Connection-oriented socket. More...
phStatus_t | phlnLlcp_Transport_Socket_DiscoverServices (void *pDataParams, phlnLlcp_Transport_Socket_t *pSocket, uint8_t bNumber, uint8_t bSNBuffSize, uint8_t *psServiceNameList, uint8_t *pSapList)
Get SAP of remote services using their URIs (Uniform Resource Identifier). More...
phStatus_t | phlnLlcp_Transport_Socket_SendTo (void *pDataParams, phlnLlcp_Transport_Socket_t *pClientSocket, uint8_t bDsap, uint8_t *pTxBuffer, uint32_t dwTxBufferSize, uint16_t wFrameOpt)
SendTo is a used to send data on a Connection-less socket. More...
phStatus_t | phlnLlcp_Transport_Socket_Disconnect (void *pDataParams, phlnLlcp_Transport_Socket_t *pClientSocket)
Disconnect is a Blocking call used to close a Connection-oriented socket and its related data link. More...
phStatus_t | phlnLlcp_Transport_Socket_Unregister (void *pDataParams, phlnLlcp_Transport_Socket_t *pSocket)
Unregister a socket from the SAP Manager. More...
phStatus_t | phlnLlcp_DeInit (void *pDataParams)
DeInit is used to release all the acquired resources and reset internal parameters of LLCP. More...

LLCP Socket States

#define | PHLN_LLCP_SOCKET_WAITONCONN 0x01
Socket is blocked on new remote connection. More...
#define | PHLN_LLCP_SOCKET_CONN_PEND 0x02
Status indicates Connect PDU to be sent. More...
#define | PHLN_LLCP_SOCKET_DISC_PEND 0x04
Status indicates Disconnect PDU to be sent. More...
#define | PHLN_LLCP_SOCKET_DISC 0x10
Received a Disconnect/Disconnect Mode(DM) PDU. More...
#define | PHLN_LLCP_SOCKET_INFO_EX 0x20
Information Exchange. More...
#define | PHLN_LLCP_SOCKET_INFO_SEND_EX 0x40
Send Information and update after next Packet is received. More...
#define | PHLN_LLCP_SOCKET_SNL 0x60
SNL Exchange. More...

LLCP specific error codes.

Note
Do not change the macro values.
#define | PH_ERR_LLCP_PDU_TX_SEQ_ERR 0x81
Status notified to the end point as a return code of phlnLlcp_Transport_Socket_Receive. More...
#define | PH_ERR_LLCP_PDU_RX_SEQ_ERR 0x82
Status notified to the end point as a return code of phlnLlcp_Transport_Socket_Send. More...
#define | PH_ERR_LLCP_DEACTIVATED 0x83
Status code returned by phlnLlcp_Activate when LLCP is deactivated by calling phlnLlcp_Deactivate The phlnLlcp_Deactivate function can only be called from another task while LLCP flow is active in one task. More...
#define | PH_ERR_LLCP_PDU_INFO_ERR 0x84
Status notified to the end point as a return code of phlnLlcp_Transport_Socket_Receive. More...
#define | PH_ERR_PEER_DISCONNECTED 0x85
Returned by phlnLlcp_Activate function when the peer sends DISC PDU over default LLCP Link Management i.e., Local SAP = 0 and Remote SAP = 0. More...
#define | PH_ERR_LLCP_PDU_FRMR 0x86
Returned by phlnLlcp_Activate function when the peer sends Frame Reject (FRMR) PDU over default LLCP link management i.e., Local SAP = 0 and Remote SAP = 0.
#define | PH_ERR_LLCP_PDU_INVALID 0x88
Status notified to the end point. More...
#define | PH_ERR_LLCP_PDU_INFO_PER 0x8C
Status notified to the end point as a return code of phlnLlcp_Transport_Socket_Receive, phlnLlcp_Transport_Socket_Send, phlnLlcp_Transport_Socket_Connect. More...
#define | PH_ERR_LLCP_SOCKET_REGISTERED 0x8D
Status notified to the end point as a return code of phlnLlcp_Transport_Socket_Register. More...
#define | PH_ERR_LLCP_SOCKET_NOT_REGISTERED 0x8E
Status notified to the end point as a return code of phlnLlcp_Transport_Socket_Unregister. More...
#define | PH_ERR_LLCP_SAP_EXCEEDED 0x8F
Status notified to the end point as a return code of phlnLlcp_Transport_Socket_Register. More...
#define | PH_ERR_LLCP_SOCKET_REGISTER_FAILED 0x87
Status notified to the end point as a return code of phlnLlcp_Transport_Socket_Register. More...

Mandatory Byte length of ATR_REQ and ATR_RES

#define | PHLN_LLCP_ATR_REQ_MIN_LEN 16U
Used to locate General Bytes Start Position in the received ATR_REQ. More...
#define | PHLN_LLCP_ATR_RES_MIN_LEN 17U
Used to locate General Bytes Start Position in the received ATR_RES. More...

Type-Length-Value (TLV) Parameters

Below macros can be used by the Application developer to validate Type field which specifies the parameter type, the Length field which specifies the length of the value, and the Value field which contains the actual data.

#define | PHLN_LLCP_TLV_TYPE_VERSION 0x01
Type Field value in Version TLV. More...
#define | PHLN_LLCP_TLV_TYPE_MIUX 0x02
Type Field value in MIUX (Maximum Information Unit Extension) TLV. More...
#define | PHLN_LLCP_TLV_TYPE_WKS 0x03
Type Field value in WKS (Well-Known Service List) TLV. More...
#define | PHLN_LLCP_TLV_TYPE_LTO 0x04
Type Field value in LTO (Link Time-Out) TLV. More...
#define | PHLN_LLCP_TLV_TYPE_RW 0x05
Type Field value in RW (Receive Window Size) TLV. More...
#define | PHLN_LLCP_TLV_TYPE_SN 0x06
Type Field value in SN (Service Name) TLV. More...
#define | PHLN_LLCP_TLV_TYPE_OPT 0x07
Type Field value in OPT (Option) TLV. More...
#define | PHLN_LLCP_TLV_TYPE_SDREQ 0x08
Type Field value in SDREQ (Service Discovery Request) TLV. More...
#define | PHLN_LLCP_TLV_TYPE_SDRES 0x09
Type Field value in SDRES (Service Discovery Response) TLV. More...
#define | PHLN_LLCP_TLV_LENGTH_VERSION 0x01
Length Field value in Version TLV. More...
#define | PHLN_LLCP_TLV_LENGTH_MIUX 0x02
Length Field value in MIUX Maximum Information Unit Extension) TLV. More...
#define | PHLN_LLCP_TLV_LENGTH_WKS 0x02
Length Field value in WKS (Well-Known Service List) TLV. More...
#define | PHLN_LLCP_TLV_LENGTH_LTO 0x01
Length Field value in LTO (Link Time-Out) TLV. More...
#define | PHLN_LLCP_TLV_LENGTH_RW 0x01
Length Field value in RW (Receive Window Size) TLV. More...
#define | PHLN_LLCP_TLV_LENGTH_OPT 0x01
Length Field value in OPT (Option) TLV. More...
#define | PHLN_LLCP_TLV_LENGTH_SDRES 0x02
Length Field value in SDRES TLV. More...
#define | PHLN_LLCP_TLV_MIUX_MASK ( 1 << 0x01 )
Mask used to set MIUX in 'bAvailableTlv' of phlnLlcp_LMDataParams_t of Local Link. More...
#define | PHLN_LLCP_TLV_WKS_MASK ( 1 << 0x02 )
Mask used to set WKS in 'bAvailableTlv' of phlnLlcp_LMDataParams_t of Local Link. More...
#define | PHLN_LLCP_TLV_LTO_MASK ( 1 << 0x03 )
Mask used to set LTO in 'bAvailableTlv' of phlnLlcp_LMDataParams_t of Local Link. More...
#define | PHLN_LLCP_TLV_OPT_MASK ( 1 << 0x04 )
Mask used to set OPT in 'bAvailableTlv' of phlnLlcp_LMDataParams_t of Local Link. More...
#define | PHLN_LLCP_TLV_VERSION_VALUE 0x11
Major version number is 1, Minor version number is 1. More...

Maximum Information Unit (MIU).

Default value of MIU is 248 and HAL Rx Buffer should be approximately around 260bytes or more.

This value is chosen for better Performance as MAC will support Frame size of 254Bytes.
Restriction: NxpNfcRdlib cannot support MIU more than HAL Rx Buffer size.

#define | PHLN_LLCP_MIU 248
Maximum number of bytes in the information field of an LLC PDU that the local LLC is able to receive. More...
#define | PHLN_LLCP_TLV_MIUX_VALUE (PHLN_LLCP_MIU - 128)
MIUX (Maximum Information Unit Extension) = Maximum Information Unit (MIU) - 128. More...

SYMM timeout as the percentage of LLCP link time out(LTO) / MAC time out(TO).

User can change this value based on requirement.

NOTE : High value will impact LLCP performance.

#define PHLN_LLCP_SYMM_VALUE 10

Receive Window size of LLCP

Receive window size of one indicates that the local LLC will acknowledge every I PDU before accepting additional I PDUs.

This is fixed as per design and cannot be changed.

#define PHLN_LLCP_TLV_RW_VALUE 0x01

LLCP Device Type.

Indicates either NFC Forum Initiator OR Target.

NOTE : DO NOT CHANGE THE MACRO AS IT IS TIED WITH LLCP LOGIC.

#define | PHLN_LLCP_INITIATOR 0
#define | PHLN_LLCP_TARGET 1

LLCP De-Aggregation.

Indicates whether LLCP stack supports dispatching the Aggregated LLC PDUs according to each PDUs destination and Source Service Access Point (SSAP) Address.

If LLCP don't need to handle De-Aggregation then PHLN_LLCP_AGF flag can be set to zero. In which case code for De-Aggregation will not be complied.

#define PHLN_LLCP_AGF 1

Disconnected Mode Reasons

These are sent as part of Disconnected Mode (DM) PDU reason field.

Refer LLCP1.1 specification section 4.3.8 table 4.

#define | PHLN_LLCP_PDU_DM_DISC 0x00
Indicates the Logical Link Control (LLC) has received a DISC PDU and is now logically disconnected from the data link connection. More...
#define | PHLN_LLCP_PDU_DM_NO_CONN 0x01
Indicates the LLC has received a connection-oriented PDU but the target service access point has no active connection. More...
#define | PHLN_LLCP_PDU_DM_NO_SAP 0x02
Indicates the remote LLC has received a CONNECT PDU and there is no service bound to the specified target service access point. More...
#define | PHLN_LLCP_PDU_DM_CONN_REJ 0x03
Indicates the remote LLC has processed a CONNECT PDU and the request to connect was rejected by the service layer. More...
#define | PHLN_LLCP_PDU_DM_SAP_REJ 0x10
Indicates the LLC will permanently not accept any CONNECT PDUs with the same target service access point address. More...
#define | PHLN_LLCP_PDU_DM_ANY_REJ 0x11
Indicates the LLC will permanently not accept any CONNECT PDUs with any target service access point address. More...
#define | PHLN_LLCP_PDU_DM_TEMP_SAP_REJ 0x20
Indicates the LLC will temporarily not accept any CONNECT PDUs with the specified target service access point address. More...
#define | PHLN_LLCP_PDU_DM_TEMP_ANY_REJ 0x21
Indicates the LLC will temporarily not accept any CONNECT PDUs with any target service access point address. More...

Detailed Description

This Component implements the NFCForum Logical Link Control Protocol (LLCP) version 1.1.

Limitations:

1. LLCP will not perform any handling of MAC (18092) chaining feature as this requires an additional buffer for LLCP to perform this task. LLCP will use MAC chaining feature using HAL receive buffer. To handle N times of MAC chaining using HAL Rx buffer, size of the HAL Rx buffer provided by the application should be N+1 times the Frame Size. So to increase MIU of LLCP, both socket buffer and HAL Rx buffer size needs to be increase proportionately.
Example: If HAL Rx Buffer Size = 1024Bytes. Then MAC chaining of 3 Frames of 254 bytes (762Bytes) can be achieved with LLCP.

2. In target mode, if remote peer sends CONNECT PDU immediately after ATR_RES is sent by RdLib Stack and if application LLCP Server task could not register socket before CONNECT PDU is received then DM PDU will be transmitted by RdLib LLCP Stack and connection will not be established with application LLCP Server. In this case either FreeRTOS timer task priority should be lower than any other task in system (which is defined in FreeRTOSConfig.h in FreeRTOS project) or the remote peer should send CONNECT PDU once again to establish connection with application LLCP Server.

This layer follows a multi-threaded RTOS based design using one reader library task and one LLCP Server/Client application task. Reader Library Task calls phlnLlcp_Activate API to establish Logical Link Connection on which Connection-Oriented or Connection-Less packets can be exchanged.

A pictorial representation of Reader Library task and LLCP Server Application task used to communicate with Peer LLCP Client is as shown below.

A pictorial representation of Reader Library task and LLCP Client Application task used to communicate with Peer LLCP Server is as shown below.

Macro Definition Documentation

§ PHLN_LLCP_SOCKET_WAITONCONN

#define PHLN_LLCP_SOCKET_WAITONCONN 0x01

Socket is blocked on new remote connection.

§ PHLN_LLCP_SOCKET_CONN_PEND

#define PHLN_LLCP_SOCKET_CONN_PEND 0x02

Status indicates Connect PDU to be sent.

§ PHLN_LLCP_SOCKET_DISC_PEND

#define PHLN_LLCP_SOCKET_DISC_PEND 0x04

Status indicates Disconnect PDU to be sent.

§ PHLN_LLCP_SOCKET_DISC

#define PHLN_LLCP_SOCKET_DISC 0x10

Received a Disconnect/Disconnect Mode(DM) PDU.

§ PHLN_LLCP_SOCKET_INFO_EX

#define PHLN_LLCP_SOCKET_INFO_EX 0x20

Information Exchange.

§ PHLN_LLCP_SOCKET_INFO_SEND_EX

#define PHLN_LLCP_SOCKET_INFO_SEND_EX 0x40

Send Information and update after next Packet is received.

§ PHLN_LLCP_SOCKET_SNL

#define PHLN_LLCP_SOCKET_SNL 0x60

SNL Exchange.

§ PH_ERR_LLCP_PDU_TX_SEQ_ERR

#define PH_ERR_LLCP_PDU_TX_SEQ_ERR 0x81

Status notified to the end point as a return code of phlnLlcp_Transport_Socket_Receive.

This means the PDU destined to this SAP contained an invalid send sequence number N(S).

§ PH_ERR_LLCP_PDU_RX_SEQ_ERR

#define PH_ERR_LLCP_PDU_RX_SEQ_ERR 0x82

Status notified to the end point as a return code of phlnLlcp_Transport_Socket_Send.

This means the PDU destined to this SAP contained an invalid receive sequence number N(R).

§ PH_ERR_LLCP_DEACTIVATED

#define PH_ERR_LLCP_DEACTIVATED 0x83

Status code returned by phlnLlcp_Activate when LLCP is deactivated by calling phlnLlcp_Deactivate The phlnLlcp_Deactivate function can only be called from another task while LLCP flow is active in one task.

This error is also returned to end points if they are blocked on any of link management operations like Send, Receive, WaitForConnection, Connect.

§ PH_ERR_LLCP_PDU_INFO_ERR

#define PH_ERR_LLCP_PDU_INFO_ERR 0x84

Status notified to the end point as a return code of phlnLlcp_Transport_Socket_Receive.

This means the PDU destined to this SAP contained an incorrect or unexpected information field or length of data received is more than socket MIU.

§ PH_ERR_PEER_DISCONNECTED

#define PH_ERR_PEER_DISCONNECTED 0x85

Returned by phlnLlcp_Activate function when the peer sends DISC PDU over default LLCP Link Management i.e., Local SAP = 0 and Remote SAP = 0.

In active mode during LLCP link de-activation if peer device did not respond or if there is an error from lower layers then this error code is returned. Since this happens during LLCP de-activation procedure the earlier data exchange/SNEP PUT has likely succeeded.

§ PH_ERR_LLCP_PDU_INVALID

#define PH_ERR_LLCP_PDU_INVALID 0x88

Status notified to the end point.

This means the PDU destined to this SAP is not well formed (W Flag) or invalid. This is returned by phlnLlcp_Transport_Socket_Receive function.

§ PH_ERR_LLCP_PDU_INFO_PER

#define PH_ERR_LLCP_PDU_INFO_PER 0x8C

Status notified to the end point as a return code of phlnLlcp_Transport_Socket_Receive, phlnLlcp_Transport_Socket_Send, phlnLlcp_Transport_Socket_Connect.

This means the remote peer rejected the PDU with an information field that is not permitted for the PDU TYPE

§ PH_ERR_LLCP_SOCKET_REGISTERED

#define PH_ERR_LLCP_SOCKET_REGISTERED 0x8D

Status notified to the end point as a return code of phlnLlcp_Transport_Socket_Register.

This means a socket which is already registered at SAP manager is trying to register once again.

§ PH_ERR_LLCP_SOCKET_NOT_REGISTERED

#define PH_ERR_LLCP_SOCKET_NOT_REGISTERED 0x8E

Status notified to the end point as a return code of phlnLlcp_Transport_Socket_Unregister.

This means a socket which is passed as an argument is not registered at SAP manager.

§ PH_ERR_LLCP_SAP_EXCEEDED

#define PH_ERR_LLCP_SAP_EXCEEDED 0x8F

Status notified to the end point as a return code of phlnLlcp_Transport_Socket_Register.

This means all the available SAP that can be allocated for clients are exceeded (i.e. Max 31).

§ PH_ERR_LLCP_SOCKET_REGISTER_FAILED

#define PH_ERR_LLCP_SOCKET_REGISTER_FAILED 0x87

Status notified to the end point as a return code of phlnLlcp_Transport_Socket_Register.

This means LLCP is not active and socket cannot be registered with SAP manager.

§ PHLN_LLCP_MAGIC_NUM_BYTE1

#define PHLN_LLCP_MAGIC_NUM_BYTE1 0x46

LLCP Magic Byte-1.

§ PHLN_LLCP_MAGIC_NUM_BYTE2

#define PHLN_LLCP_MAGIC_NUM_BYTE2 0x66

LLCP Magic Byte-2.

§ PHLN_LLCP_MAGIC_NUM_BYTE3

#define PHLN_LLCP_MAGIC_NUM_BYTE3 0x6D

LLCP Magic Byte-3.

§ PHLN_LLCP_ATR_REQ_MIN_LEN

#define PHLN_LLCP_ATR_REQ_MIN_LEN 16U

Used to locate General Bytes Start Position in the received ATR_REQ.

§ PHLN_LLCP_ATR_RES_MIN_LEN

#define PHLN_LLCP_ATR_RES_MIN_LEN 17U

Used to locate General Bytes Start Position in the received ATR_RES.

§ PHLN_LLCP_TLV_TYPE_VERSION

#define PHLN_LLCP_TLV_TYPE_VERSION 0x01

Type Field value in Version TLV.

§ PHLN_LLCP_TLV_TYPE_MIUX

#define PHLN_LLCP_TLV_TYPE_MIUX 0x02

Type Field value in MIUX (Maximum Information Unit Extension) TLV.

§ PHLN_LLCP_TLV_TYPE_WKS

#define PHLN_LLCP_TLV_TYPE_WKS 0x03

Type Field value in WKS (Well-Known Service List) TLV.

§ PHLN_LLCP_TLV_TYPE_LTO

#define PHLN_LLCP_TLV_TYPE_LTO 0x04

Type Field value in LTO (Link Time-Out) TLV.

§ PHLN_LLCP_TLV_TYPE_RW

#define PHLN_LLCP_TLV_TYPE_RW 0x05

Type Field value in RW (Receive Window Size) TLV.

§ PHLN_LLCP_TLV_TYPE_SN

#define PHLN_LLCP_TLV_TYPE_SN 0x06

Type Field value in SN (Service Name) TLV.

§ PHLN_LLCP_TLV_TYPE_OPT

#define PHLN_LLCP_TLV_TYPE_OPT 0x07

Type Field value in OPT (Option) TLV.

§ PHLN_LLCP_TLV_TYPE_SDREQ

#define PHLN_LLCP_TLV_TYPE_SDREQ 0x08

Type Field value in SDREQ (Service Discovery Request) TLV.

§ PHLN_LLCP_TLV_TYPE_SDRES

#define PHLN_LLCP_TLV_TYPE_SDRES 0x09

Type Field value in SDRES (Service Discovery Response) TLV.

§ PHLN_LLCP_TLV_LENGTH_VERSION

#define PHLN_LLCP_TLV_LENGTH_VERSION 0x01

Length Field value in Version TLV.

§ PHLN_LLCP_TLV_LENGTH_MIUX

#define PHLN_LLCP_TLV_LENGTH_MIUX 0x02

Length Field value in MIUX Maximum Information Unit Extension) TLV.

§ PHLN_LLCP_TLV_LENGTH_WKS

#define PHLN_LLCP_TLV_LENGTH_WKS 0x02

Length Field value in WKS (Well-Known Service List) TLV.

§ PHLN_LLCP_TLV_LENGTH_LTO

#define PHLN_LLCP_TLV_LENGTH_LTO 0x01

Length Field value in LTO (Link Time-Out) TLV.

§ PHLN_LLCP_TLV_LENGTH_RW

#define PHLN_LLCP_TLV_LENGTH_RW 0x01

Length Field value in RW (Receive Window Size) TLV.

§ PHLN_LLCP_TLV_LENGTH_OPT

#define PHLN_LLCP_TLV_LENGTH_OPT 0x01

Length Field value in OPT (Option) TLV.

§ PHLN_LLCP_TLV_LENGTH_SDRES

#define PHLN_LLCP_TLV_LENGTH_SDRES 0x02

Length Field value in SDRES TLV.

§ PHLN_LLCP_TLV_MIUX_MASK

#define PHLN_LLCP_TLV_MIUX_MASK ( 1 << 0x01 )

Mask used to set MIUX in 'bAvailableTlv' of phlnLlcp_LMDataParams_t of Local Link.

§ PHLN_LLCP_TLV_WKS_MASK

#define PHLN_LLCP_TLV_WKS_MASK ( 1 << 0x02 )

Mask used to set WKS in 'bAvailableTlv' of phlnLlcp_LMDataParams_t of Local Link.

§ PHLN_LLCP_TLV_LTO_MASK

#define PHLN_LLCP_TLV_LTO_MASK ( 1 << 0x03 )

Mask used to set LTO in 'bAvailableTlv' of phlnLlcp_LMDataParams_t of Local Link.

§ PHLN_LLCP_TLV_OPT_MASK

#define PHLN_LLCP_TLV_OPT_MASK ( 1 << 0x04 )

Mask used to set OPT in 'bAvailableTlv' of phlnLlcp_LMDataParams_t of Local Link.

§ PHLN_LLCP_TLV_VERSION_VALUE

#define PHLN_LLCP_TLV_VERSION_VALUE 0x11

Major version number is 1, Minor version number is 1.

Indicating NFCForum LLPC 1.1 Specification.

§ PHLN_LLCP_MIU

#define PHLN_LLCP_MIU 248

Maximum number of bytes in the information field of an LLC PDU that the local LLC is able to receive.

§ PHLN_LLCP_TLV_MIUX_VALUE

#define PHLN_LLCP_TLV_MIUX_VALUE (PHLN_LLCP_MIU - 128)

MIUX (Maximum Information Unit Extension) = Maximum Information Unit (MIU) - 128.

§ PHLN_LLCP_PDU_DM_DISC

#define PHLN_LLCP_PDU_DM_DISC 0x00

Indicates the Logical Link Control (LLC) has received a DISC PDU and is now logically disconnected from the data link connection.

§ PHLN_LLCP_PDU_DM_NO_CONN

#define PHLN_LLCP_PDU_DM_NO_CONN 0x01

Indicates the LLC has received a connection-oriented PDU but the target service access point has no active connection.

§ PHLN_LLCP_PDU_DM_NO_SAP

#define PHLN_LLCP_PDU_DM_NO_SAP 0x02

Indicates the remote LLC has received a CONNECT PDU and there is no service bound to the specified target service access point.

§ PHLN_LLCP_PDU_DM_CONN_REJ

#define PHLN_LLCP_PDU_DM_CONN_REJ 0x03

Indicates the remote LLC has processed a CONNECT PDU and the request to connect was rejected by the service layer.

§ PHLN_LLCP_PDU_DM_SAP_REJ

#define PHLN_LLCP_PDU_DM_SAP_REJ 0x10

Indicates the LLC will permanently not accept any CONNECT PDUs with the same target service access point address.

§ PHLN_LLCP_PDU_DM_ANY_REJ

#define PHLN_LLCP_PDU_DM_ANY_REJ 0x11

Indicates the LLC will permanently not accept any CONNECT PDUs with any target service access point address.

§ PHLN_LLCP_PDU_DM_TEMP_SAP_REJ

#define PHLN_LLCP_PDU_DM_TEMP_SAP_REJ 0x20

Indicates the LLC will temporarily not accept any CONNECT PDUs with the specified target service access point address.

§ PHLN_LLCP_PDU_DM_TEMP_ANY_REJ

#define PHLN_LLCP_PDU_DM_TEMP_ANY_REJ 0x21

Indicates the LLC will temporarily not accept any CONNECT PDUs with any target service access point address.

Function Documentation

§ phlnLlcp_Activate()

phStatus_t phlnLlcp_Activate | ( | void * | pDataParams,
 |  | uint8_t * | pRemoteGnrlBytes,
 |  | uint8_t | bRemoteGnrBytesLen,
 |  | uint8_t | bDevType
 | ) |  |

Activates the LLCP layer link by checking General Bytes content of ATR_REQ/ATR_RES.

Posts LLCP Activation event to threads blocked for this event in a call to phlnLlcp_WaitForActivation API.
Then this API starts processing the Message Queue and signals corresponding Semaphores in the phlnLlcp_Transport_Socket_t.
socket structure to Threads blocking on specific events to occur.
Runs until:

  1. Another thread calls phlnLlcp_Deactivate.
  2. LLCP connection is closed by the other peer using DISC PDU.
  3. LTO (Link Timeout) occurs due to peer device not in range/responding.
  4. External RF Field OFF occurred if activated in Passive Target Mode.
  5. Another thread calls phhalHw_AsyncAbort.
  6. Any exit scenario or error from below MAC layer.
    Sequence of functions that needs to be called prior to this API are as below:
  1. phlnLlcp_Sw_Init().
    Note: If FRMR is received on DSAP and SSAP equal to 0 or an invalid PDU is received on DSAP and SSAP equal to zero, LLCP link (DSSAP and SSAP equal to 0) is disconnected and peer need to re-establish the connection as per NFC Forum LLCP Specification 1.1, sec 5.6.4.5.
Returns
Status code
Return values
PH_ERR_INVALID_DATA_PARAMS | Invalid Component ID.
PH_ERR_INVALID_PARAMETER | MAC restrictions are not obeyed (Example, DID is set in ATR_REQ).
PH_ERR_PROTOCOL_ERROR | Invalid TLV/Version mismatch/bad contents in ATR or Peer device didn't handle MAC restrictions.
PH_ERR_PEER_DISCONNECTED | Peer Sent DISC_PDU(LSap=0,DSap=0).
PH_ERR_LLCP_DEACTIVATED | Another task/thread calls phlnLlcp_Deactivate.
PH_ERR_RESOURCE_ERROR | Message Queue is unavailable or OSAL returned error.
PH_ERR_LLCP_PDU_FRMR | Received FRMR on LSAP = 0 and RSAP = 0 received from remote peer, MAC link de-activation procedure will not be done by LLCP.
PH_ERR_LLCP_PDU_INVALID | Received Invalid PDU over LSAP = 0 and RSAP = 0 or received AGF on LSAP and RSAP other than zero, MAC link de-activation procedure will not be done by LLCP.
PH_ERR_EXT_RF_ERROR | External RF Field OFF from HAL.
PH_ERR_ABORTED | Peer Device did not respond for LTO time or when User aborts by calling phhalHw_AsyncAbort. This code is pre-pended with HAL Component code.
PH_ERR_USE_CONDITION | If underlying MAC Components are not part of Build.
Other | Depending on underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pRemoteGnrlBytes | Pointer to remote general bytes received in ATR REQ/RES.
[in] | bRemoteGnrBytesLen | Length of general bytes received in ATR REQ/RES.
[in] | bDevType | Device type PHLN_LLCP_INITIATOR or PHLN_LLCP_TARGET.

§ phlnLlcp_Deactivate()

phStatus_t phlnLlcp_Deactivate ( void * pDataParams )

Deactivate the LLCP layer link.

This API should be called from different thread which will post DISC PDU (with LSAP = 0 and RSAP = 0) to Message Queue.
This message is dequeued by the phlnLlcp_Activate API which is running in the Reader Library Thread.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_DATA_PARAMS | Invalid Component ID.
PH_ERR_RESOURCE_ERROR | Message Queue is unavailable or OSAL returned error.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phlnLlcp_WaitForActivation()

phStatus_t phlnLlcp_WaitForActivation ( void * pDataParams )

Wait for LLCP Activation Event from Reader Library Thread.

This should be the first API called by Server/Client Thread before calling any other API. This will wait on LLCP Activated Event which will
be posted by the phlnLlcp_Activate API once LLCP Link is established after Link Activation Procedure as defined in NFCForum LLCP 1.1 specification section 5.2.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_DATA_PARAMS | Invalid Component ID.
PH_ERR_IO_TIMEOUT | No LLCP Activate Event detected and Timeout occurred.
PH_ERR_RESOURCE_ERROR | Message Queue is unavailable or OSAL returned error.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phlnLlcp_Transport_Socket_Init()

phStatus_t phlnLlcp_Transport_Socket_Init | ( | void * | pDataParams,
 |  | phlnLlcp_Transport_Socket_t * | psSocket,
 |  | phlnLlcp_Transport_Socket_Type_t | eSocketType,
 |  | uint8_t * | pSocketRxBuffer,
 |  | uint32_t | dwSocketRxBufferSize
 | ) |  |

Initializes a new socket.

Socket type is one of:

  • PHLN_LLCP_TRANSPORT_CONNECTIONLESS
  • PHLN_LLCP_TRANSPORT_SERVER_CONNECTIONORIENTED
  • PHLN_LLCP_TRANSPORT_CLIENT_CONNECTIONORIENTED
    Sequence of functions that needs to be called prior to this API are as below:
  1. phlnLlcp_WaitForActivation()
    Returns
    Status code
    Return values
    PH_ERR_SUCCESS | Operation successful.
    PH_ERR_INVALID_DATA_PARAMS | Invalid Component ID
    PH_ERR_INVALID_PARAMETER | Invalid input parameters.
    PH_ERR_RESOURCE_ERROR | Message Queue is unavailable or OSAL returned error.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | psSocket | Pointer to Socket allocated by the Application.
[in] | eSocketType | Type of Socket to be Initialized, indicating the End Point.
[in] | pSocketRxBuffer | Pointer to Rx Buffer allocated by the Application to corresponding Socket.
[in] | dwSocketRxBufferSize | Length of the Rx Buffer.

§ phlnLlcp_Transport_Socket_Register()

phStatus_t phlnLlcp_Transport_Socket_Register | ( | void * | pDataParams,
 |  | phlnLlcp_Transport_Socket_t * | pSocket,
 |  | phlnLlcp_Transport_Socket_Type_t | eSocketType,
 |  | uint8_t | bLsap,
 |  | uint8_t * | pUri
 | ) |  |

Register a socket at the SAP manager.

If Socket type is Connection-oriented server, bLsap and/or pUri have to be provided.
If Socket type is Connection-oriented client, ignores bLsap and pUri parameter but a random SAP will be generated and assigned to the Socket.
If Socket type is Connection-less, bLsap and/or pUri parameters have to be provided.
If this API is called before event is posted by phlnLlcp_Activate or while main LLCP task is performing phlnLlcp_DeInit, then PH_ERR_LLCP_SOCKET_REGISTER_FAILED will be returned.

Sequence of functions that needs to be called prior to this API are as below:

  1. phlnLlcp_WaitForActivation()
  2. phlnLlcp_Transport_Socket_Init()
    NOTE: bLsap value should not be '0' or '1' as these are reserved SAP used internally by LLCP.
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_DATA_PARAMS | Invalid Component ID.
PH_ERR_INVALID_PARAMETER | Invalid input parameters.
PH_ERR_LLCP_SAP_EXCEEDED | Exceeded available number of Client SAPs that can be registered.
PH_ERR_LLCP_SOCKET_REGISTERED | Socket is already registered with SAP Manager.
PH_ERR_LLCP_SOCKET_REGISTER_FAILED | Socket cannot be registered as LLCP is not active or some other registered socket is associated with the passed Lsap value.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pSocket | Pointer of Socket to be Registered.
[in] | eSocketType | Type Socket to be used.
[in] | bLsap | Local SAP address.
[in] | pUri | Pointer of Uniform Resource Identifier (URI). NULL terminated URI string should be provided.

§ phlnLlcp_Transport_Socket_WaitForConnection()

phStatus_t phlnLlcp_Transport_Socket_WaitForConnection | ( | void * | pDataParams,
 |  | phlnLlcp_Transport_Socket_t * | pServerSocket,
 |  | phlnLlcp_Transport_Socket_t * | pConnServerSocket
 | ) |  |

WaitForConnection is a Blocking call used by a Connection-oriented Server socket waiting for an incoming client connection on the registered pServerSocket.

pConnServerSocket is an Initialized but not Registered socket. It will be filled with the remote/connected Client information once a remote socket has established a connection.
pConnServerSocket socket has to be used then for further communication (send/receive).
NOTE: If pConnServerSocket is NULL then pServerSocket is used for further communication with the connected Remote Client and no further clients can establish connection with the Server.
If pConnServerSocket is a valid Initialized socket then once a connection with Remote Client is established, a new thread needs to be created by the Application to continue
communication with the Connected Remote Client and the current thread can listen for a new Client Connection over next Initialized pConnServerSocket socket.
Sequence of functions that needs to be called prior to this API are as below:

  1. phlnLlcp_WaitForActivation()
  2. phlnLlcp_Transport_Socket_Init() with pServerSocket
  3. phlnLlcp_Transport_Socket_Register() with pServerSocket
  4. phlnLlcp_Transport_Socket_Init() with pConnServerSocket
    Returns
    Status code
    Return values
    PH_ERR_SUCCESS | Operation successful.
    PH_ERR_INVALID_DATA_PARAMS | Invalid Component ID.
    PH_ERR_INVALID_PARAMETER | Invalid input parameters.
    PH_ERR_RESOURCE_ERROR | OSAL returned error.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pServerSocket | Pointer of Server socket.
[in] | pConnServerSocket | Pointer of Connection Server socket.

§ phlnLlcp_Transport_Socket_Connect()

phStatus_t phlnLlcp_Transport_Socket_Connect | ( | void * | pDataParams,
 |  | phlnLlcp_Transport_Socket_t * | pClientSocket,
 |  | uint8_t | bDsap
 | ) |  |

Connect is a Blocking call used by a Connection-oriented client socket to connect to a remote server with a DSAP given with bDsap.

This API will post Connect PDU to Message Queue, phlnLlcp_Activate API will send this PDU to remote peer.
Waits until CC PDU is received and Semaphore is signaled by the phlnLlcp_Activate.
Sequence of functions that needs to be called prior to this API are as below:

  1. phlnLlcp_WaitForActivation()
  2. phlnLlcp_Transport_Socket_Init() with pClientSocket
  3. phlnLlcp_Transport_Socket_Register() with pClientSocket
    Returns
    Status code
    Return values
    PH_ERR_SUCCESS | Operation successful.
    PH_ERR_INVALID_DATA_PARAMS | Invalid Component ID.
    PH_ERR_INVALID_PARAMETER | Invalid input parameters.
    PH_ERR_RESOURCE_ERROR | OSAL returned error.
    PH_ERR_LLCP_PDU_INFO_PER | PDU with an information field that is not permitted.
    PH_ERR_LLCP_DEACTIVATED | Connect was not successful, received DM PDU as selected server using Destination SAP does not exist on Remote Peer.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pClientSocket | Pointer of Client socket.
[in] | bDsap | Address of Destination SAP to which Client has to connect.

§ phlnLlcp_Transport_Socket_ConnectViaUri()

phStatus_t phlnLlcp_Transport_Socket_ConnectViaUri | ( | void * | pDataParams,
 |  | phlnLlcp_Transport_Socket_t * | pClientSocket,
 |  | uint8_t * | pUri
 | ) |  |

ConnectViaUri is a Blocking call used by a Connection-oriented client socket to connect to a remote server with a Uniform Resource Identifier (URI) given with pUri.

This API will post Connect PDU to Message Queue, phlnLlcp_Activate API will send this PDU to remote peer.
Waits until CC PDU is received and Semaphore is signaled by the phlnLlcp_Activate.
Sequence of functions that needs to be called prior to this API are as below:

  1. phlnLlcp_WaitForActivation()
  2. phlnLlcp_Transport_Socket_Init() with pClientSocket
  3. phlnLlcp_Transport_Socket_Register() with pClientSocket
    Returns
    Status code
    Return values
    PH_ERR_SUCCESS | Operation successful.
    PH_ERR_INVALID_DATA_PARAMS | Invalid Component ID.
    PH_ERR_INVALID_PARAMETER | Invalid input parameters.
    PH_ERR_RESOURCE_ERROR | OSAL returned error.
    PH_ERR_LLCP_PDU_INFO_PER | PDU with an information field that is not permitted.
    PH_ERR_LLCP_DEACTIVATED | Connect was not successful, received DM PDU as selected server using Destination SAP does not exist on Remote Peer.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pClientSocket | Pointer of Client socket.
[in] | pUri | Pointer to URI of Destination SAP to which Client has to connect. NULL terminated URI string should be provided.

§ phlnLlcp_Transport_Socket_Receive()

phStatus_t phlnLlcp_Transport_Socket_Receive | ( | void * | pDataParams,
 |  | phlnLlcp_Transport_Socket_t * | psSocket
 | ) |  |

Receive is a Blocking call used to receive data on a socket.

Can be used by any socket type. Function blocks until dwRxBufferSize bytes have been received or an error occurred.
Once Data is received on the Socket, User need to set 'fReady' flag of the respective Socket to 'True' in-order to receive next Packet. If the fReady flag is not True then the Link Management will send Receiver Not Ready (RNR) PDU to the remote SAP if it receives an Information PDU for this end point.

Sequence of functions that needs to be called prior to this API are as below:

  1. phlnLlcp_WaitForActivation()
  2. phlnLlcp_Transport_Socket_Init() with pServerSocket
  3. phlnLlcp_Transport_Socket_Register() with pServerSocket
  4. phlnLlcp_Transport_Socket_Init() with pConnServerSocket
  5. phlnLlcp_Transport_Socket_WaitForConnection()
    Returns
    Status code
    Return values
    PH_ERR_SUCCESS | Operation successful.
    PH_ERR_INVALID_DATA_PARAMS | Invalid Component ID.
    PH_ERR_INVALID_PARAMETER | Invalid input parameters.
    PH_ERR_RESOURCE_ERROR | OSAL returned error.
    PH_ERR_PEER_DISCONNECTED | Peer sent DISC PDU over Socket Link.
    PH_ERR_LLCP_DEACTIVATED | Local LLC shut down.
    PH_ERR_LLCP_PDU_TX_SEQ_ERR | Received Information PDU (I-PDU) with Sequence error.
    PH_ERR_LLCP_PDU_INFO_ERR | Received Information length is greater than MIU.
    PH_ERR_LLCP_PDU_INVALID | Invalid PDU received.
    PH_ERR_LLCP_PDU_INFO_PER | PDU with an information field that is not permitted.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | psSocket | Pointer of the socket.

§ phlnLlcp_Transport_Socket_Send()

phStatus_t phlnLlcp_Transport_Socket_Send | ( | void * | pDataParams,
 |  | phlnLlcp_Transport_Socket_t * | pClientSocket,
 |  | uint8_t * | pTxBuffer,
 |  | uint32_t | dwTxBufferSize,
 |  | uint16_t | wFrameOpt
 | ) |  |

Send is a Blocking call used to send data on a Connection-oriented socket.

Function blocks until complete buffer has been sent out and a RR PDU is received by phlnLlcp_Activate which will signal the Semaphore.
wOption can be one of:

  • PH_TRANSMIT_DEFAULT

wOption can be combined with:

  • PH_TRANSMIT_BUFFERED_BIT
  • PH_TRANSMIT_LEAVE_BUFFER_BIT

Sequence of functions that needs to be called prior to this API are as below:

  1. phlnLlcp_WaitForActivation()
  2. phlnLlcp_Transport_Socket_Init()
  3. phlnLlcp_Transport_Socket_Register()
  4. phlnLlcp_Transport_Socket_Connect()
    Returns
    Status code
    Return values
    PH_ERR_SUCCESS | Operation successful.
    PH_ERR_SUCCESS_INFO_RECEIVED | Received I-PDU in response to I-PDU. phlnLlcp_Transport_Socket_Receive need not be called to Receive next Packet as Socket Buffer already contains the received Data.
    PH_ERR_INVALID_DATA_PARAMS | Invalid Component ID.
    PH_ERR_INVALID_PARAMETER | Invalid input parameters.
    PH_ERR_UNSUPPORTED_COMMAND | In-case Socket is other than PHLN_LLCP_TRANSPORT_SERVER_CONNECTIONORIENTED or PHLN_LLCP_TRANSPORT_CLIENT_CONNECTIONORIENTED Socket Type.
    PH_ERR_RESOURCE_ERROR | OSAL returned error.
    PH_ERR_TX_NAK_ERROR | Received RNR PDU as Remote LLCP is busy. Application can Re-send once again if required.
    PH_ERR_PEER_DISCONNECTED | Received DISC PDU from the Remote LLCP.
    PH_ERR_LLCP_DEACTIVATED | Local LLC shut down.
    PH_ERR_LLCP_PDU_RX_SEQ_ERR | Received RR/RNR PDU with sequence error.
    PH_ERR_LLCP_PDU_INFO_PER | PDU with an information field that is not permitted.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pClientSocket | Pointer of Client Socket.
[in] | pTxBuffer | Pointer of Buffer to be Transmitted.
[in] | dwTxBufferSize | Length of the Buffer to be Transmitted.
[in] | wFrameOpt | Option parameter.

§ phlnLlcp_Transport_Socket_DiscoverServices()

phStatus_t phlnLlcp_Transport_Socket_DiscoverServices | ( | void * | pDataParams,
 |  | phlnLlcp_Transport_Socket_t * | pSocket,
 |  | uint8_t | bNumber,
 |  | uint8_t | bSNBuffSize,
 |  | uint8_t * | psServiceNameList,
 |  | uint8_t * | pSapList
 | ) |  |

Get SAP of remote services using their URIs (Uniform Resource Identifier).

This function sends SDP queries to the remote peer to get the SAP address for a given service name. The queries are sent in a single LLC packet. If list of URI's cannot fit into single packet then this API needs to be called multiple times. Only one task can call this API at a time. If this API is called by different tasks simultaneously then PH_ERR_USE_CONDITION error will be returned. As mentioned in LLCP specification, a SAP of 0 means that the service name has not been found which is indicated in the parameter pnSapList.

Sequence of functions that needs to be called prior to this API are as below:

  1. phlnLlcp_WaitForActivation()
  2. phlnLlcp_Transport_Socket_Init()
  3. phlnLlcp_Transport_Socket_Register()
  4. phlnLlcp_Transport_Socket_DiscoverServices()
  5. phlnLlcp_Transport_Socket_Connect() can be called with the Discovery SAP.
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_DATA_PARAMS | Invalid Component ID.
PH_ERR_INVALID_PARAMETER | Invalid input parameters.
PH_ERR_RESOURCE_ERROR | OSAL returned error.
PH_ERR_PEER_DISCONNECTED | Received DISC PDU from the Remote LLCP.
PH_ERR_LLCP_DEACTIVATED | Local LLC shut down.
PH_ERR_USE_CONDITION | More than one client has simultaneously called this API.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pSocket | Pointer of Socket.
[in] | bNumber | Number of Service Names and SAP list.
[in] | bSNBuffSize | Length of Service Name (SN) Buffer Size containing Length and String of URI.
[in] | psServiceNameList | The list of the Service names to discover. First Byte contains length of SN followed by respective SN Bytes. Followed by next SN Length.
[out] | pSapList | The list of the corresponding SAP numbers (one byte each), in the same order as the service names list.

§ phlnLlcp_Transport_Socket_SendTo()

phStatus_t phlnLlcp_Transport_Socket_SendTo | ( | void * | pDataParams,
 |  | phlnLlcp_Transport_Socket_t * | pClientSocket,
 |  | uint8_t | bDsap,
 |  | uint8_t * | pTxBuffer,
 |  | uint32_t | dwTxBufferSize,
 |  | uint16_t | wFrameOpt
 | ) |  |

SendTo is a used to send data on a Connection-less socket.

Sends data to a remote socket on DSAP Address using bDsap parameter. Delivery of data is not guaranteed. Function blocks until the UI PDU is transmitted by the main LLCP task.
wOption can be one of:

  • PH_TRANSMIT_DEFAULT

wOption can be combined with:

  • PH_TRANSMIT_BUFFERED_BIT
  • PH_TRANSMIT_LEAVE_BUFFER_BIT

Sequence of functions that needs to be called prior to this API are as below:

  1. phlnLlcp_WaitForActivation()
  2. phlnLlcp_Transport_Socket_Init()
  3. phlnLlcp_Transport_Socket_Register()
    Returns
    Status code
    Return values
    PH_ERR_SUCCESS | Operation successful.
    PH_ERR_INVALID_DATA_PARAMS | Invalid Component ID.
    PH_ERR_INVALID_PARAMETER | Invalid input parameters.
    PH_ERR_UNSUPPORTED_COMMAND | In-case Socket is other than PHLN_LLCP_TRANSPORT_CONNECTIONLESS Socket Type.
    PH_ERR_RESOURCE_ERROR | Message Queue is unavailable or OSAL returned error.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pClientSocket | Pointer of Client Socket.
[in] | bDsap | Destination SAP to which Data needs to be sent.
[in] | pTxBuffer | Pointer of Buffer to be Transmitted.
[in] | dwTxBufferSize | Length of the Buffer to be Transmitted.
[in] | wFrameOpt | Option parameter.

§ phlnLlcp_Transport_Socket_Disconnect()

phStatus_t phlnLlcp_Transport_Socket_Disconnect | ( | void * | pDataParams,
 |  | phlnLlcp_Transport_Socket_t * | pClientSocket
 | ) |  |

Disconnect is a Blocking call used to close a Connection-oriented socket and its related data link.

This API will post DISC PDU to Message Queue with respective Local SAP and Remote SAP, phlnLlcp_Activate API will send this PDU to remote peer.
Waits until DM PDU is received and Semaphore is signaled by the phlnLlcp_Activate.
Sequence of functions that needs to be called prior to this API are as below:

  1. phlnLlcp_WaitForActivation()
  2. phlnLlcp_Transport_Socket_Init()
  3. phlnLlcp_Transport_Socket_Register()
  4. phlnLlcp_Transport_Socket_Connect()
    Returns
    Status code
    Return values
    PH_ERR_SUCCESS | Operation successful.
    PH_ERR_INVALID_DATA_PARAMS | Invalid Component ID.
    PH_ERR_INVALID_PARAMETER | Invalid input parameters.
    PH_ERR_RESOURCE_ERROR | OSAL returned error.
    PH_ERR_LLCP_DEACTIVATED | Local LLC shut down.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pClientSocket | Pointer of Client Socket.

§ phlnLlcp_Transport_Socket_Unregister()

phStatus_t phlnLlcp_Transport_Socket_Unregister | ( | void * | pDataParams,
 |  | phlnLlcp_Transport_Socket_t * | pSocket
 | ) |  |

Unregister a socket from the SAP Manager.

This API needs to be called on all the Initialized sockets to deallocate Semaphores allocated to it by the respective Threads even in case of Error scenarios.
If a socket is Registered with SAP then this API will De-Register with the SAP Manager.

  • Sequence of functions that needs to be called prior to this API are as below:
  1. phlnLlcp_WaitForActivation()
  2. phlnLlcp_Transport_Socket_Init()
  3. phlnLlcp_Transport_Socket_Register()
  4. phlnLlcp_Transport_Socket_Connect() or phlnLlcp_Transport_Socket_WaitForConnection()
  5. phlnLlcp_Transport_Socket_Send() or phlnLlcp_Transport_Socket_Receive()
    Returns
    Status code
    Return values
    PH_ERR_SUCCESS | Operation successful.
    PH_ERR_INVALID_DATA_PARAMS | Invalid Component ID.
    PH_ERR_INVALID_PARAMETER | Invalid input parameters.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pSocket | Pointer of Socket to be Unregistered.

§ phlnLlcp_DeInit()

phStatus_t phlnLlcp_DeInit ( void * pDataParams )

DeInit is used to release all the acquired resources and reset internal parameters of LLCP.

This API should be called immediately after phlnLlcp_Activate API, irrespective of the return status.
Sequence of functions that needs to be called prior to this API are as below:

  1. phlnLlcp_Sw_Init().
  2. phlnLlcp_Activate().
    Returns
    Status code
    Return values
    PH_ERR_SUCCESS | Operation successful.
    PH_ERR_INVALID_DATA_PARAMS | Invalid Component ID.
    Other | Depending on underlying component.


NXP NFC Reader Library: Component : Software

Data Structures | Macros | Typedefs | Enumerations | Functions
Component : Software
Link Abstraction Layer » NFCForum-LLCP

Implementation of NFCForum Logical Link Control Protocol (LLCP) 1.1. More...

Collaboration diagram for Component : Software:

Data Structures

struct | phlnLlcp_Socket_Seq
Socket Sequence. More...
struct | phlnLlcp_Transport_Socket
Socket structure of LLCP transport. More...
struct | phlnLlcp_LMDataParams
Link Management parameters that are expected by LLC. More...
struct | phlnLlcp_Sw_DataParams
LLCP parameter structure. More...

Macros

#define PHLN_LLCP_SW_ID 0x01
ID for Software LLCP layer. More...

Typedefs

typedef enum phlnLlcp_PType | phlnLlcp_PType_t
Protocol Data Unit (PDU) type.
typedef enum phlnLlcp_Transport_Socket_Type | phlnLlcp_Transport_Socket_Type_t
Socket Type.
typedef struct phlnLlcp_Socket_Seq | phlnLlcp_Socket_Seq_t
Socket Sequence.
typedef struct phlnLlcp_Transport_Socket | phlnLlcp_Transport_Socket_t
Socket structure of LLCP transport.
typedef enum phlnLlcp_Transport_Socket_State | phlnLlcp_Transport_Socket_State_t
Socket State of LLCP transport.
typedef struct phlnLlcp_LMDataParams | phlnLlcp_LMDataParams_t
Link Management parameters that are expected by LLC.
typedef struct phlnLlcp_Sw_DataParams | phlnLlcp_Sw_DataParams_t
LLCP parameter structure.

Enumerations

enum phlnLlcp_PType {
PHLN_LLCP_PTYPE_SYMM = 0x00, PHLN_LLCP_PTYPE_PAX, PHLN_LLCP_PTYPE_AGF, PHLN_LLCP_PTYPE_UI,
PHLN_LLCP_PTYPE_CONNECT, PHLN_LLCP_PTYPE_DISC, PHLN_LLCP_PTYPE_CC, PHLN_LLCP_PTYPE_DM,
PHLN_LLCP_PTYPE_FRMR, PHLN_LLCP_PTYPE_SNL, PHLN_LLCP_PTYPE_INFO = 0x0C, PHLN_LLCP_PTYPE_RR,
PHLN_LLCP_PTYPE_RNR
}
Protocol Data Unit (PDU) type. More...
enum | phlnLlcp_Transport_Socket_Type { PHLN_LLCP_TRANSPORT_CONNECTIONLESS = 0xA0, PHLN_LLCP_TRANSPORT_SERVER_CONNECTIONORIENTED, PHLN_LLCP_TRANSPORT_CLIENT_CONNECTIONORIENTED }
Socket Type. More...
enum | phlnLlcp_Transport_Socket_State
Socket State of LLCP transport.

Functions

phStatus_t phlnLlcp_Sw_Init (phlnLlcp_Sw_DataParams_t *pDataParams, uint16_t wSizeOfDataParams, uint8_t *pLocalGenBytes, uint8_t *pLocalGenBytesLen)
Initialize LLCP layer. More...

Detailed Description

Implementation of NFCForum Logical Link Control Protocol (LLCP) 1.1.

Macro Definition Documentation

§ PHLN_LLCP_SW_ID

#define PHLN_LLCP_SW_ID 0x01

ID for Software LLCP layer.

Event posted by Reader library thread to the application thread once LLCP is activated.

Enumeration Type Documentation

§ phlnLlcp_PType

enum phlnLlcp_PType

Protocol Data Unit (PDU) type.

Enumerator
PHLN_LLCP_PTYPE_SYMM | Symmetry PDU.
PHLN_LLCP_PTYPE_PAX | Parameter Exchange concerning the LLCP Link configuration.
PHLN_LLCP_PTYPE_AGF | Aggregated Frame.
PHLN_LLCP_PTYPE_UI | Unnumbered Information to transfer service data units to the peer LLC.
PHLN_LLCP_PTYPE_CONNECT | CONNECT PDU is an unnumbered PDU which is used to request a data link connection.
PHLN_LLCP_PTYPE_DISC | Disconnect is an unnumbered PDU which is used to terminate a data link connection.
PHLN_LLCP_PTYPE_CC | Connection Complete is used by an LLC to acknowledge the receipt and acceptance of the CONNECT.
PHLN_LLCP_PTYPE_DM | Disconnected Mode is used to report status indicating that the LLC is logically disconnected.
PHLN_LLCP_PTYPE_FRMR | Frame Reject is used to report the receipt of a inappropriate PDU.
PHLN_LLCP_PTYPE_SNL | Service Name Lookup used to discover the availability of named services.
PHLN_LLCP_PTYPE_INFO | Information is used to transfer service data units.
PHLN_LLCP_PTYPE_RR | Receive Ready to acknowledge one or more received I PDUs and indicate that the LLC is able to receive subsequent Information PDUs (I PDUs).
PHLN_LLCP_PTYPE_RNR | Receive Not Ready is used by LLC to indicate a temporary inability to process subsequent I PDUs.

§ phlnLlcp_Transport_Socket_Type

enum phlnLlcp_Transport_Socket_Type

Socket Type.

Enumerator
PHLN_LLCP_TRANSPORT_CONNECTIONLESS | Connection-less communication.
PHLN_LLCP_TRANSPORT_SERVER_CONNECTIONORIENTED | Connection-oriented Server.
PHLN_LLCP_TRANSPORT_CLIENT_CONNECTIONORIENTED | Connection-oriented Client.

Function Documentation

§ phlnLlcp_Sw_Init()

phStatus_t phlnLlcp_Sw_Init | ( | phlnLlcp_Sw_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams,
 |  | uint8_t * | pLocalGenBytes,
 |  | uint8_t * | pLocalGenBytesLen
 | ) |  |

Initialize LLCP layer.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wSizeOfDataParams | Specifies the size of the data parameter structure.
[out] | pLocalGenBytes | Pointer to General data bytes buffer (Length of the buffer should be between min 6bytes and max 20bytes based on number the TLV to be framed).
[out] | pLocalGenBytesLen | Length of General data bytes.


NXP NFC Reader Library: phlnLlcp_Socket_Seq Struct Reference

Data Fields
phlnLlcp_Socket_Seq Struct Reference
Link Abstraction Layer » NFCForum-LLCP » Component : Software

Socket Sequence. More...

Data Fields

uint8_t bSendState_Vs
Denote the sequence number of the next in-sequence I PDU to be sent. More...
uint8_t bSendAck_Vsa
Denote the most recently received N(R) value for a specific data link connection. More...
uint8_t bRxState_Vr
Denote the sequence number of the next in-sequence I PDU to be received. More...
uint8_t bRxAck_Vra
Denote the most recently sent N(R) value for a specific data link connection. More...

Detailed Description

Socket Sequence.

Field Documentation

§ bSendState_Vs

uint8_t phlnLlcp_Socket_Seq::bSendState_Vs

Denote the sequence number of the next in-sequence I PDU to be sent.

§ bSendAck_Vsa

uint8_t phlnLlcp_Socket_Seq::bSendAck_Vsa

Denote the most recently received N(R) value for a specific data link connection.

§ bRxState_Vr

uint8_t phlnLlcp_Socket_Seq::bRxState_Vr

Denote the sequence number of the next in-sequence I PDU to be received.

§ bRxAck_Vra

uint8_t phlnLlcp_Socket_Seq::bRxAck_Vra

Denote the most recently sent N(R) value for a specific data link connection.

The documentation for this struct was generated from the following file:
  • phlnLlcp.h


NXP NFC Reader Library: phlnLlcp_Transport_Socket Struct Reference

Data Fields
phlnLlcp_Transport_Socket Struct Reference
Link Abstraction Layer » NFCForum-LLCP » Component : Software

Socket structure of LLCP transport. More...

Data Fields

phOsal_SemObj_t xSema
Handle to the semaphore. More...
phOsal_SemObj_t xRxSema
Handle to the Receive semaphore. More...
phlnLlcp_Socket_Seq_t sSeq
Sequence of the I PDU. More...
struct phlnLlcp_Transport_Socket * | pNext
Pointer to the next Registered Socket. More...
uint8_t * pUri
Pointer to URI (Uniform Resource Identifier). More...
uint32_t dwBufLen
The size of the Socket Rx Buffer. More...
uint8_t * pbRxBuffer
Pointer to the Socket Rx buffer. More...
uint32_t dwLength
Length of the data received. More...
uint16_t wRMiu
Remote Link's MIU. More...
uint8_t fReady
Ready to receive flag. More...
phlnLlcp_Transport_Socket_Type_t eSocketType
Based on this, I PDU (Connection-Oriented) or UI PDU (Connection-Less) will be sent. More...
phStatus_t | wStatus
Determines the status of the Socket. More...
uint8_t bLsap
Local SAP (Service Access Point) address. More...
uint8_t bRsap
Remote SAP address. More...
uint8_t bState
Socket state can be as per LLCP Socket States. More...

Detailed Description

Socket structure of LLCP transport.

Field Documentation

§ xSema

phOsal_SemObj_t phlnLlcp_Transport_Socket::xSema

Handle to the semaphore.

§ xRxSema

phOsal_SemObj_t phlnLlcp_Transport_Socket::xRxSema

Handle to the Receive semaphore.

§ sSeq

phlnLlcp_Socket_Seq_t phlnLlcp_Transport_Socket::sSeq

Sequence of the I PDU.

§ pNext

struct phlnLlcp_Transport_Socket* phlnLlcp_Transport_Socket::pNext

Pointer to the next Registered Socket.

§ pUri

uint8_t* phlnLlcp_Transport_Socket::pUri

Pointer to URI (Uniform Resource Identifier).

§ dwBufLen

uint32_t phlnLlcp_Transport_Socket::dwBufLen

The size of the Socket Rx Buffer.

§ pbRxBuffer

uint8_t* phlnLlcp_Transport_Socket::pbRxBuffer

Pointer to the Socket Rx buffer.

Size of the Socket Buffer should be less than or equal to 248 Bytes and less than HAL Rx Buffer. Note: To achieve better performance Socket Buffer Size should be multiple of 248.

§ dwLength

uint32_t phlnLlcp_Transport_Socket::dwLength

Length of the data received.

§ wRMiu

uint16_t phlnLlcp_Transport_Socket::wRMiu

Remote Link's MIU.

§ fReady

uint8_t phlnLlcp_Transport_Socket::fReady

Ready to receive flag.

Note: This Flag needs to be set 'True' by the Application after each Socket Receive to receive next Packet as RW (Receive Window) is 1.

§ eSocketType

phlnLlcp_Transport_Socket_Type_t phlnLlcp_Transport_Socket::eSocketType

Based on this, I PDU (Connection-Oriented) or UI PDU (Connection-Less) will be sent.

§ wStatus

phStatus_t phlnLlcp_Transport_Socket::wStatus

Determines the status of the Socket.

§ bLsap

uint8_t phlnLlcp_Transport_Socket::bLsap

Local SAP (Service Access Point) address.

§ bRsap

uint8_t phlnLlcp_Transport_Socket::bRsap

Remote SAP address.

§ bState

uint8_t phlnLlcp_Transport_Socket::bState

Socket state can be as per LLCP Socket States.

The documentation for this struct was generated from the following file:
  • phlnLlcp.h


NXP NFC Reader Library: phlnLlcp_LMDataParams Struct Reference

Data Fields
phlnLlcp_LMDataParams Struct Reference
Link Abstraction Layer » NFCForum-LLCP » Component : Software

Link Management parameters that are expected by LLC. More...

Data Fields

uint8_t bVersion
Denotes major and minor release levels of the LLCP specification. More...
uint8_t bLto
Link Timeout (LTO) specifies the local link timeout interval guarantee. More...
uint8_t bOpt
Option. More...
uint16_t wMiu
maximum information unit (MIU) is max number of octets in information field of an LLC PDU. More...
uint16_t wWks
Well-Known Service List. More...
uint16_t bAvailableTlv
Bit mask for TLVs availability. More...

Detailed Description

Link Management parameters that are expected by LLC.

Field Documentation

§ bVersion

uint8_t phlnLlcp_LMDataParams::bVersion

Denotes major and minor release levels of the LLCP specification.

§ bLto

uint8_t phlnLlcp_LMDataParams::bLto

Link Timeout (LTO) specifies the local link timeout interval guarantee.

§ bOpt

uint8_t phlnLlcp_LMDataParams::bOpt

Option.

§ wMiu

uint16_t phlnLlcp_LMDataParams::wMiu

maximum information unit (MIU) is max number of octets in information field of an LLC PDU.

§ wWks

uint16_t phlnLlcp_LMDataParams::wWks

Well-Known Service List.

§ bAvailableTlv

uint16_t phlnLlcp_LMDataParams::bAvailableTlv

Bit mask for TLVs availability.

The documentation for this struct was generated from the following file:
  • phlnLlcp.h


NXP NFC Reader Library: phlnLlcp_Sw_DataParams Struct Reference

Data Fields
phlnLlcp_Sw_DataParams Struct Reference
Link Abstraction Layer » NFCForum-LLCP » Component : Software

LLCP parameter structure. More...

Data Fields

uint16_t wId
Layer ID for this component, NEVER MODIFY!. More...
void * pPalI18092DataParams
Pointer to PAL 18092mPI/18092mT parameter structure. More...
phlnLlcp_LMDataParams_t sLocalLMParams
Local General Bytes. More...
phlnLlcp_LMDataParams_t sRemoteLMParams
Remote General Bytes. More...
uint8_t bAgreedVersion
Agreed Version number after Version Agreement. More...
uint8_t bCurrentClientCnt
Number of Registered Client count. More...
uint8_t bSdpClientSAP
SAP Address of the Client requested for SDP. More...
uint8_t bMacType
MAC type initialized either PHLN_LLCP_INITIATOR OR PHLN_LLCP_TARGET. More...
phOsal_EventObj_t LlcpEventObj
Event Object. More...

Detailed Description

LLCP parameter structure.

Field Documentation

§ wId

uint16_t phlnLlcp_Sw_DataParams::wId

Layer ID for this component, NEVER MODIFY!.

§ pPalI18092DataParams

void* phlnLlcp_Sw_DataParams::pPalI18092DataParams

Pointer to PAL 18092mPI/18092mT parameter structure.

§ sLocalLMParams

phlnLlcp_LMDataParams_t phlnLlcp_Sw_DataParams::sLocalLMParams

Local General Bytes.

§ sRemoteLMParams

phlnLlcp_LMDataParams_t phlnLlcp_Sw_DataParams::sRemoteLMParams

Remote General Bytes.

§ bAgreedVersion

uint8_t phlnLlcp_Sw_DataParams::bAgreedVersion

Agreed Version number after Version Agreement.

§ bCurrentClientCnt

uint8_t phlnLlcp_Sw_DataParams::bCurrentClientCnt

Number of Registered Client count.

§ bSdpClientSAP

uint8_t phlnLlcp_Sw_DataParams::bSdpClientSAP

SAP Address of the Client requested for SDP.

§ bMacType

uint8_t phlnLlcp_Sw_DataParams::bMacType

MAC type initialized either PHLN_LLCP_INITIATOR OR PHLN_LLCP_TARGET.

§ LlcpEventObj

phOsal_EventObj_t phlnLlcp_Sw_DataParams::LlcpEventObj

Event Object.

The documentation for this struct was generated from the following file:
  • phlnLlcp.h


NXP NFC Reader Library: Network Protocol Layer

Modules
Network Protocol Layer

This Layer Contains implementation of SNEP component. More...

Collaboration diagram for Network Protocol Layer:

Modules

NFCForum-SNEP
This component implements the NFC Forum Simple NDEF Exchange Protocol (SNEP) version 1.0.

Detailed Description

This Layer Contains implementation of SNEP component.


NXP NFC Reader Library: NFCForum-SNEP

Modules | Macros | Typedefs | Enumerations | Functions
NFCForum-SNEP
Network Protocol Layer

This component implements the NFC Forum Simple NDEF Exchange Protocol (SNEP) version 1.0. More...

Collaboration diagram for NFCForum-SNEP:

Modules

Component : Software
Implementation of NFC Forum Simple NDEF Exchange Protocol (SNEP) 1.0.

Macros

#define PHNP_SNEP_HEADER_SIZE 0x06
SNEP frame header size.

Typedefs

typedef enum phnpSnep_Request_Codes phnpSnep_Request_Codes_t
SNEP Request Codes The phnpSnep_ServerListen API returns with one of the following request codes. More...

Enumerations

enum phnpSnep_Request_Codes { PHNP_SNEP_REQ_CONT = 0x00, PHNP_SNEP_REQ_GET = 0x01, PHNP_SNEP_REQ_PUT = 0x02, PHNP_SNEP_REQ_REJECT = 0x7F }
SNEP Request Codes The phnpSnep_ServerListen API returns with one of the following request codes. More...

Functions

phStatus_t | phnpSnep_ClientInit (void *pDataParams, phnpSnep_Server_type_t eServerType, uint8_t *pNonDefaultUri, uint8_t *pbSnepRxBuffer, uint32_t dwSnepRxBufferSize)
Interface to create and configure SNEP Client. More...
phStatus_t | phnpSnep_ServerInit (void *pDataParams, phnpSnep_Server_type_t eServerType, uint8_t *pNonDefaultUri, uint8_t *pbSnepRxBuffer, uint32_t dwSnepRxBufferSize)
Interface to create and configure SNEP Server. More...
phStatus_t | phnpSnep_Put (void *pDataParams, uint8_t *pTxBuffer, uint32_t dwTxBufferSize)
Performs the SNEP PUT Request operation. More...
phStatus_t | phnpSnep_Get (void *pDataParams, uint8_t *pNdefMsg, uint32_t dwNdefMsgLen, uint8_t *pRxBuffer, uint32_t *pdwRxLen, uint32_t dwAppBufSize)
Performs the SNEP GET Request operation. More...
phStatus_t | phnpSnep_ServerListen (void *pDataParams, uint32_t dwGetReqBuffSize, uint8_t *pGetReqData, uint32_t *dwGetReqLength, uint8_t *pClientReq)
Used to receive SENP Request from the Remote Client. More...
phStatus_t | phnpSnep_ServerSendResponse (void *pDataParams, uint8_t bClientReq, uint8_t *pRespDataForGet, uint32_t dwRespDataLen, uint32_t dwPutBuffSize, uint8_t *pPutData, uint32_t *pdwPutDataLen)
Used to send Response to the SNEP Request delivered by phnpSnep_ServerListen. More...
phStatus_t | phnpSnep_ClientDeInit (void *pDataParams)
SNEP Client De-Initialization. More...
phStatus_t | phnpSnep_ServerDeInit (void *pDataParams)
SNEP Server De-Initialization. More...

SNEP specific error codes.

Note
Do not change the macro values.
#define | PH_ERR_SNEP_FAILED 0x81
Status indicating that Received Invalid Request to Server and LLCP Disconnection is done and further communication is not possible over this Link. More...
#define | PH_ERR_SNEP_GET_FAILED 0x82
Status indicating that Client GET Request Failed as Response sent by Server is other than SUCCESS Response.
#define | PH_ERR_INVALID_VERSION 0x83
Status indicating that received Client Request contains Invalid Version number.

Detailed Description

This component implements the NFC Forum Simple NDEF Exchange Protocol (SNEP) version 1.0.

Design Limitation: SNEP implementation will only allow to initialize maximum of one default SNEP server and one non-default SNEP server using phnpSnep_ServerInit API.

This layer follows a multi-threaded RTOS based design using one reader library task and one SNEP Server/Client application task. Reader Library Task calls LLCP API's to establish Link Connection on which SNEP Server/Client Task can send SNEP packets.

A pictorial representation of reader library task and SNEP Server application task used for SNEP Exchange is shown below.

A pictorial representation of reader library task and SNEP Client application task used for SNEP Exchange is shown below.

Macro Definition Documentation

§ PH_ERR_SNEP_FAILED

#define PH_ERR_SNEP_FAILED 0x81

Status indicating that Received Invalid Request to Server and LLCP Disconnection is done and further communication is not possible over this Link.

If this error is returned then a new LLC Session needs to be created by Server for further communication.

Typedef Documentation

§ phnpSnep_Request_Codes_t

typedef enum phnpSnep_Request_Codes phnpSnep_Request_Codes_t

SNEP Request Codes The phnpSnep_ServerListen API returns with one of the following request codes.

These are passed to phnpSnep_ServerSendResponse API received from Client to Server.

Enumeration Type Documentation

§ phnpSnep_Request_Codes

enum phnpSnep_Request_Codes

SNEP Request Codes The phnpSnep_ServerListen API returns with one of the following request codes.

These are passed to phnpSnep_ServerSendResponse API received from Client to Server.

Enumerator
PHNP_SNEP_REQ_CONT | Continue sending remaining fragments.
PHNP_SNEP_REQ_GET | Return an NDEF message.
PHNP_SNEP_REQ_PUT | Accept an NDEF message.
PHNP_SNEP_REQ_REJECT | Client indicates not to send remaining fragments using this request.

Function Documentation

§ phnpSnep_ClientInit()

phStatus_t phnpSnep_ClientInit | ( | void * | pDataParams,
 |  | phnpSnep_Server_type_t | eServerType,
 |  | uint8_t * | pNonDefaultUri,
 |  | uint8_t * | pbSnepRxBuffer,
 |  | uint32_t | dwSnepRxBufferSize
 | ) |  |

Interface to create and configure SNEP Client.

This function creates and configures a SNEP Client over LLCP. This has to be called first in a client session/Task after phlnLlcp_WaitForActivation. If the Server Type is Default Server than pNonDefaultUri parameter is Ignored.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_DATA_PARAMS | Invalid Component ID.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | eServerType | Type of the SNEP Server to which Client has to connect.
[in] | pNonDefaultUri | Pointer of Uniform Resource Identifier (URI) of Non-Default Server. NULL terminated URI string should be provided.
[in] | pbSnepRxBuffer | Pointer to Client Receive Buffer.
[in] | dwSnepRxBufferSize | Size of Client Receive Buffer.

§ phnpSnep_ServerInit()

phStatus_t phnpSnep_ServerInit | ( | void * | pDataParams,
 |  | phnpSnep_Server_type_t | eServerType,
 |  | uint8_t * | pNonDefaultUri,
 |  | uint8_t * | pbSnepRxBuffer,
 |  | uint32_t | dwSnepRxBufferSize
 | ) |  |

Interface to create and configure SNEP Server.

This function creates and configures a SNEP Server using eServerType parameter over LLCP. If the Server Type is Default Server than pNonDefaultUri parameter is Ignored.

This API will be called first in a server session/task after phlnLlcp_WaitForActivation.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_DATA_PARAMS | Invalid Component ID.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | eServerType | Type of the SNEP Server.
[in] | pNonDefaultUri | Pointer of Uniform Resource Identifier (URI) of Non-Default Server. NULL terminated URI string should be provided.
[in] | pbSnepRxBuffer | Pointer to Server Receive Buffer.
[in] | dwSnepRxBufferSize | Size of Server Receive Buffer.

§ phnpSnep_Put()

phStatus_t phnpSnep_Put | ( | void * | pDataParams,
 |  | uint8_t * | pTxBuffer,
 |  | uint32_t | dwTxBufferSize
 | ) |  |

Performs the SNEP PUT Request operation.

This function has to be called after the phnpSnep_ClientInit is done.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_DATA_PARAMS | Invalid Component ID.
PH_ERR_INVALID_PARAMETER | Invalid input parameters.
PH_ERR_PROTOCOL_ERROR | Did not receive valid response from Server.
Other | Depending on underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pTxBuffer | Pointer of Buffer to be transmitted.
[in] | dwTxBufferSize | Length of Buffer to be transmitted.

§ phnpSnep_Get()

phStatus_t phnpSnep_Get | ( | void * | pDataParams,
 |  | uint8_t * | pNdefMsg,
 |  | uint32_t | dwNdefMsgLen,
 |  | uint8_t * | pRxBuffer,
 |  | uint32_t * | pdwRxLen,
 |  | uint32_t | dwAppBufSize
 | ) |  |

Performs the SNEP GET Request operation.

This API should not be called if initialized in phnpSnep_NonDefault_Server. Also this API returns PH_ERR_SNEP_GET_FAILED
if the remote SNEP Server is Default Server.
This function has to be called only after the phnpSnep_ClientInit is done.

NOTE: Sending Client GET Request in fragments is not supported by this API due to which length of NDEF Message (dwNdefMsgLen) in GET Request cannot be more than Remote MIU. If length of NDEF Message is more than remote MIU then PH_ERR_INVALID_PARAMETER error will be returned by this API.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_DATA_PARAMS | Invalid Component ID.
PH_ERR_INVALID_PARAMETER | Invalid input parameters.
PH_ERR_PROTOCOL_ERROR | Did not receive valid Response from Server.
PH_ERR_BUFFER_OVERFLOW | If Server Response length is more than the specified dwAppBufSize length.
PH_ERR_SNEP_GET_FAILED | Received Error response from Remote Server. Client should De-Init and start new session.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pNdefMsg | Pointer to the NDEF message in the Get Request to be sent to Server.
[in] | dwNdefMsgLen | Length of the NDEF message in the Get Request to be sent to Server.
[out] | pRxBuffer | Pointer to the Application Rx Buffer to receive data.
[out] | pdwRxLen | Number of bytes received from the Server.
[in] | dwAppBufSize | Maximum acceptable data from Server, normally size of pRxBuffer.

§ phnpSnep_ServerListen()

phStatus_t phnpSnep_ServerListen | ( | void * | pDataParams,
 |  | uint32_t | dwGetReqBuffSize,
 |  | uint8_t * | pGetReqData,
 |  | uint32_t * | dwGetReqLength,
 |  | uint8_t * | pClientReq
 | ) |  |

Used to receive SENP Request from the Remote Client.

This function Listens for SNEP Client Request and parses the Request type and returns to Application in pbClientReq parameter.

Parameter Usage:
If the Initialized Server Type is Default Server then 'dwGetReqBuffSize', 'pGetReqData', 'dwGetReqLength' parameters are ignored.

This function is immediately called after phnpSnep_ServerInit.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_DATA_PARAMS | Invalid Component ID.
PH_ERR_INVALID_PARAMETER | Invalid input parameters.
PH_ERR_INVALID_VERSION | Received Client Request with Invalid Version.
PH_ERR_UNSUPPORTED_COMMAND | Received unsupported Request from Client.
PH_ERR_BUFFER_OVERFLOW | Message in GET cannot fit in Application Buffer.
PH_ERR_SNEP_FAILED | Received Invalid Request, Server session will be closed and new session needs to be created.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | dwGetReqBuffSize | Size of Buffer to store received NDEF Message in Get Request.
[out] | pGetReqData | Pointer to the application Buffer to store received Message in Get Request.
[out] | dwGetReqLength | Received data length in Message in GET Request from Client.
[out] | pClientReq | Pointer to the Type of received Client Request phnpSnep_Request_Codes.

§ phnpSnep_ServerSendResponse()

phStatus_t phnpSnep_ServerSendResponse | ( | void * | pDataParams,
 |  | uint8_t | bClientReq,
 |  | uint8_t * | pRespDataForGet,
 |  | uint32_t | dwRespDataLen,
 |  | uint32_t | dwPutBuffSize,
 |  | uint8_t * | pPutData,
 |  | uint32_t * | pdwPutDataLen
 | ) |  |

Used to send Response to the SNEP Request delivered by phnpSnep_ServerListen.

This function will receive in chunks if more data to be received in case of PUT Request
and copies it to 'dwPutBuffSize' Buffer and performs the required SNEP Server Response.
This function will send SNEP Success Response for GET Request in chunks based on Remote MIU.
Parameter Usage:

  1. If bClientReq is PUT request, then 'pPutData', 'dwPutBuffSize' and 'pdwPutDataLen' have to be provided by the caller where PUT data will be copied to.
  2. If the SNEP PUT header indicates that the client is putting more data than the dwBufferSize, then Excess Data response is sent to the client.
  3. If bClientReq is GET request, then Message pointed by pRespDataForGet of dwRespDataLen length will be sent as Response to the client.
    If no Data needs to be sent in response for GET Request then dwRespDataLen should be zero.
    Sequence of functions that needs to be called prior to this API are as below:
  1. phnpSnep_ServerInit()
  2. phnpSnep_ServerListen()
    Returns
    Status code
    Return values
    PH_ERR_SUCCESS | Operation successful.
    PH_ERR_INVALID_DATA_PARAMS | Invalid Component ID.
    PH_ERR_INVALID_PARAMETER | Invalid input parameters.
    PH_ERR_BUFFER_OVERFLOW | Message in PUT cannot be fitted in Application Buffer.
    PH_ERR_PROTOCOL_ERROR | Received wrong SNEP Request from Client.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bClientReq | Type of received Client Request. Should only be PHNP_SNEP_REQ_GET or PHNP_SNEP_REQ_PUT.
[in] | pRespDataForGet | Pointer to application provided data to handle GET Request from Client.
[in] | dwRespDataLen | Data length to be transmitted to Client for GET Request.
[in] | dwPutBuffSize | Size of the Data buffer given by the application to hold the received PUT Request Data.
[out] | pPutData | Pointer to Data Buffer given by the application to hold the received PUT Request Data from client.
[out] | pdwPutDataLen | Actual length of PUT Request Data received from the Client.

§ phnpSnep_ClientDeInit()

phStatus_t phnpSnep_ClientDeInit ( void * pDataParams )

SNEP Client De-Initialization.

This function De-Initializes the SNEP Client session.

Sequence of functions that needs to be called prior to this API are as below:

  1. phnpSnep_ClientInit()
  2. phnpSnep_Put() or phnpSnep_Get()
    Returns
    Status code
    Return values
    PH_ERR_SUCCESS | Operation successful.
    PH_ERR_INVALID_DATA_PARAMS | Invalid Component ID.
    Other | Depending on implementation and underlying component.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.

§ phnpSnep_ServerDeInit()

phStatus_t phnpSnep_ServerDeInit ( void * pDataParams )

SNEP Server De-Initialization.

This function De-Initializes the SNEP Server session.

Sequence of functions that needs to be called prior to this API are as below:

  1. phnpSnep_ServerInit()
  2. phnpSnep_ServerListen()
  3. phnpSnep_ServerSendResponse()
    Returns
    Status code
    Return values
    PH_ERR_SUCCESS | Operation successful.
    PH_ERR_INVALID_DATA_PARAMS | Invalid Component ID.
    Other | Depending on implementation and underlying component.
Parameters
[in] pDataParams Pointer to this layer's parameter structure.


NXP NFC Reader Library: Component : Software

Data Structures | Macros | Typedefs | Enumerations | Functions
Component : Software
Network Protocol Layer » NFCForum-SNEP

Implementation of NFC Forum Simple NDEF Exchange Protocol (SNEP) 1.0. More...

Collaboration diagram for Component : Software:

Data Structures

struct phnpSnep_Sw_DataParams
SNEP parameter structure. More...

Macros

#define PHNP_SNEP_SW_ID 0x01
ID for SNEP SW component. More...

Typedefs

typedef enum phnpSnep_Server_type | phnpSnep_Server_type_t
Defines SNEP Server Type.
typedef struct phnpSnep_Sw_DataParams | phnpSnep_Sw_DataParams_t
SNEP parameter structure.

Enumerations

enum phnpSnep_Server_type { phnpSnep_Default_Server = 0x01, phnpSnep_NonDefault_Server }
Defines SNEP Server Type. More...

Functions

phStatus_t phnpSnep_Sw_Init (phnpSnep_Sw_DataParams_t *pDataParams, uint16_t wSizeOfDataParams, void *plnLlcpDataparams, void *psSocket)
Initialize the SNEP component. More...

Detailed Description

Implementation of NFC Forum Simple NDEF Exchange Protocol (SNEP) 1.0.

Macro Definition Documentation

§ PHNP_SNEP_SW_ID

#define PHNP_SNEP_SW_ID 0x01

ID for SNEP SW component.

Enumeration Type Documentation

§ phnpSnep_Server_type

enum phnpSnep_Server_type

Defines SNEP Server Type.

Enumerator
phnpSnep_Default_Server | Default NFC Forum SNEP server.
phnpSnep_NonDefault_Server | Proprietary SNEP server.

Function Documentation

§ phnpSnep_Sw_Init()

phStatus_t phnpSnep_Sw_Init | ( | phnpSnep_Sw_DataParams_t * | pDataParams,
 |  | uint16_t | wSizeOfDataParams,
 |  | void * | plnLlcpDataparams,
 |  | void * | psSocket
 | ) |  |

Initialize the SNEP component.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_DATA_PARAMS | Parameter structure size is invalid.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wSizeOfDataParams | Specifies the size of the data parameter structure.
[in] | plnLlcpDataparams | Pointer to LLCP parameters.
[in] | psSocket | Pointer to LLCP transport Socket.


NXP NFC Reader Library: phnpSnep_Sw_DataParams Struct Reference

Data Fields
phnpSnep_Sw_DataParams Struct Reference
Network Protocol Layer » NFCForum-SNEP » Component : Software

SNEP parameter structure. More...

Data Fields

uint16_t wId
Layer ID for this component, NEVER MODIFY!. More...
void * | plnLlcpDataParams
LLCP Data Parameters structure pointer. More...
void * | psSocket
LLCP transport Socket structure pointer. More...
uint8_t bSnepVersion
SNEP protocol version supported by Implementation. More...
phnpSnep_Server_type_t eServerType
Initialized Server Type. More...

Detailed Description

SNEP parameter structure.

Field Documentation

§ wId

uint16_t phnpSnep_Sw_DataParams::wId

Layer ID for this component, NEVER MODIFY!.

§ plnLlcpDataParams

void* phnpSnep_Sw_DataParams::plnLlcpDataParams

LLCP Data Parameters structure pointer.

§ psSocket

void* phnpSnep_Sw_DataParams::psSocket

LLCP transport Socket structure pointer.

§ bSnepVersion

uint8_t phnpSnep_Sw_DataParams::bSnepVersion

SNEP protocol version supported by Implementation.

§ eServerType

phnpSnep_Server_type_t phnpSnep_Sw_DataParams::eServerType

Initialized Server Type.

The documentation for this struct was generated from the following file:
  • phnpSnep.h


NXP NFC Reader Library: Other

Modules
Other

Contains all other components or definitions. More...

Collaboration diagram for Other:

Modules

Generic Definitions
Contains definitions which are generic throughout the library.
Type Definitions
Contains definitions for types defined within NxpRdLib.
Platform Definitions
Platform depending definitions for memory location of variables.
Error Code Collection
Common Error Codes.
(Private definitions)
Private definitions and functions of all components.
NXP Build
Controls build behaviour of components.

Detailed Description

Contains all other components or definitions.


NXP NFC Reader Library: Generic Definitions

Macros
Generic Definitions
Other

Contains definitions which are generic throughout the library. More...

Collaboration diagram for Generic Definitions:

Macros

#define | PH_CHECK_SUCCESS(status) {if ((status) != PH_ERR_SUCCESS) {return (status);}}
Macro for error handling of underlying layer and exit.
#define | PH_ADD_COMPCODE(stat, code) ((phStatus_t)(((stat) == PH_ERR_SUCCESS) || ((stat) & PH_COMP_MASK) ? (stat) : (((stat) & PH_ERR_MASK) | ((code) & PH_COMP_MASK))))
Macro for component-error-code adding of current layer.
#define | PH_GET_COMPCODE(pId) ( (*((uint16_t*)(pId))) & PH_COMP_MASK )
Macro to get the component code or id using a pointer to a memory.

Running Modes of Reader Library

#define | RD_LIB_MODE_EMVCO 0x01U
EMVCo Mode. More...
#define | RD_LIB_MODE_NFC 0x02U
NFC Forum Mode. More...
#define | RD_LIB_MODE_ISO 0x03U
ISO Mode. More...

Boolean Values

#define | PH_ON 0x0001U
Enabled. More...
#define | PH_OFF 0x0000U
Disabled. More...
#define | PH_SUPPORTED 0x0001U
Supported. More...
#define | PH_UNSUPPORTED 0x0000U
Not Supported. More...

Configuration

#define PH_CONFIG_CUSTOM_BEGIN 0xE000U
Starting number of custom configs. More...

Component identifiers

#define | PH_COMP_MASK 0xFF00U
Component Mask for status code and component ID. More...
#define | PH_COMPID_MASK 0x00FFU
ID Mask for component ID. More...
#define | PH_ERR_MASK 0x00FFU
Error Mask for status code. More...
#define | PH_ERR_CUSTOM_BEGIN 0x0080U
Starting number of custom error codes. More...
#define | PH_COMP_GENERIC 0x0000U
Generic Component Code. More...
#define | PH_COMP_BAL 0x0100U
BAL Component Code. More...
#define | PH_COMP_HAL 0x0200U
HAL Component Code. More...
#define | PH_COMP_PAL_ISO14443P3A 0x0300U
ISO14443-3A PAL-Component Code. More...
#define | PH_COMP_PAL_ISO14443P3B 0x0400U
ISO14443-3B PAL-Component Code. More...
#define | PH_COMP_PAL_ISO14443P4A 0x0500U
ISO14443-4A PAL-Component Code. More...
#define | PH_COMP_PAL_ISO14443P4 0x0600U
ISO14443-4 PAL-Component Code. More...
#define | PH_COMP_PAL_MIFARE 0x0700U
MIFARE(R) PAL-Component Code. More...
#define | PH_COMP_PAL_FELICA 0x0800U
Open FeliCa PAL-Component Code. More...
#define | PH_COMP_PAL_EPCUID 0x0900U
ICode EPC/UID PAL-Component Code. More...
#define | PH_COMP_PAL_SLI15693 0x0A00U
ICode SLI/ISO15693 PAL-Component Code. More...
#define | PH_COMP_PAL_I18000P3M3 0x0B00U
ISO18000-3 Mode3 PAL-Component Code. More...
#define | PH_COMP_PAL_I18092MPI 0x0C00U
ISO18092 passive initiator mode PAL-Component Code. More...
#define | PH_COMP_PAL_I18092MT 0x0D00U
ISO18092 target mode PAL-Component Code. More...
#define | PH_COMP_PAL_GENERALTARGET 0x0E00U
General Target/Listen mode protocol. More...
#define | PH_COMP_PAL_I14443P4MC 0x0F00U
ISO 14443-4 Card mode protocol. More...
#define | PH_COMP_AL_MFC 0x1000U
MIFARE(R) Classic AL-Component Code. More...
#define | PH_COMP_AL_MFUL 0x1100U
MIFARE(R) Ultralight AL-Component Code. More...
#define | PH_COMP_AL_MFP 0x1200U
MIFARE(R) Plus AL-Component Code. More...
#define | PH_COMP_AL_VCA 0x1300U
Virtual Card Architecture AL-Component Code. More...
#define | PH_COMP_AL_FELICA 0x1400U
Open FeliCa AL-Component Code. More...
#define | PH_COMP_AL_I15693 0x1500U
ISO15693 AL-Component Code. More...
#define | PH_COMP_AL_SLI 0x1600U
ICode SLI AL-Component Code. More...
#define | PH_COMP_AL_I18000P3M3 0x1800U
ISO18000-3 Mode3 AL-Component Code. More...
#define | PH_COMP_AL_MFDF 0x1900U
MIFARE DESFIRE EV1 AL Component Code. More...
#define | PH_COMP_AL_MFDFEV2 0x2000U
MIFARE DESFIRE EV2 AL Component Code. More...
#define | PH_COMP_AL_P40CMDPRIV 0x1A00U
P40 command libraryAL-Component Code. More...
#define | PH_COMP_AL_P40CMDPUB 0x1B00U
P40 command libraryAL-Component Code. More...
#define | PH_COMP_AL_T1T 0x1C00U
T1T AL component code.
#define | PH_COMP_AL_TOP 0x1D00U
Tag Operation AL component code.
#define | PH_COMP_DL_AMP 0x3000U
Amplifier DL-Component Code. More...
#define | PH_COMP_DL_THSTRM 0x3100U
Thermostream DL-Component Code. More...
#define | PH_COMP_DL_OSCI 0x3200U
Oscilloscope DL-Component Code. More...
#define | PH_COMP_DL_RDFPGA 0x3300U
Reader FPGA Box DL-Component Code. More...
#define | PH_COMP_DL_MSTAMPOSC 0x3400U
Master Amplifier Oscilloscope DL-Component Code. More...
#define | PH_COMP_DL_STEPPER 0x3500U
Stepper DL-Component Code. More...
#define | PH_COMP_AC_DISCLOOP 0x4000U
Discovery Loop. More...
#define | PH_COMP_CE_T4T 0x5000U
Card Emulation T4T. More...
#define | PH_COMP_LN_LLCP 0x6000U
LLCP code. More...
#define | PH_COMP_NP_SNEP 0x7000U
SNEP Code. More...
#define | PH_COMP_CIDMANAGER 0xE000U
Cid Manager Component Code. More...
#define | PH_COMP_CRYPTOSYM 0xE100U
CryptoSym Component Code. More...
#define | PH_COMP_KEYSTORE 0xE200U
KeyStore Component Code. More...
#define | PH_COMP_TOOLS 0xE300U
Tools Component Code. More...
#define | PH_COMP_CRYPTORNG 0xE400U
CryptoRng Component Code. More...
#define | PH_COMP_LOG 0xEF00U
Log Component Code. More...
#define | PH_COMP_OSAL 0xF000U
OS AL component code. More...
#define | PH_COMP_PLATFORM 0xF100U
MicroController Platform component code. More...

Exchange Options

#define | PH_EXCHANGE_DEFAULT 0x0000U
Default exchange mode. More...
#define | PH_EXCHANGE_TXCHAINING 0x0001U
ISO14443-4/ISO18092 specific: Chains given data to card/Target. More...
#define | PH_EXCHANGE_RXCHAINING 0x0002U
ISO14443-4/ISO18092 specific: Starts transmission with and R(ACK) block and performs Rx chaining with the Card/Target. More...
#define | PH_EXCHANGE_RXCHAINING_BUFSIZE 0x0003U
ISO14443-4/ISO18092 specific: Starts transmission with and R(ACK) block and performs Rx chaining with the card. More...
#define | PH_EXCHANGE_MODE_MASK 0x000FU
Mask for the above modes. More...
#define | PH_EXCHANGE_CUSTOM_BITS_MASK 0x00F0U
Mask for custom exchange bits. More...
#define | PH_EXCHANGE_LEAVE_BUFFER_BIT 0x4000U
Does not clear the internal buffer before operation. More...
#define | PH_EXCHANGE_BUFFERED_BIT 0x8000U
Buffers Tx-Data into internal buffer instead of transmitting it.
#define | PH_EXCHANGE_BUFFER_FIRST (PH_EXCHANGE_DEFAULT | PH_EXCHANGE_BUFFERED_BIT)
The given data is the first part of a stream. More...
#define | PH_EXCHANGE_BUFFER_CONT (PH_EXCHANGE_DEFAULT | PH_EXCHANGE_BUFFERED_BIT | PH_EXCHANGE_LEAVE_BUFFER_BIT)
The given data is a subsequent part of a stream. More...
#define | PH_EXCHANGE_BUFFER_LAST (PH_EXCHANGE_DEFAULT | PH_EXCHANGE_LEAVE_BUFFER_BIT)
The given data is the last part of a stream. More...
#define | PH_TRANSMIT_DEFAULT 0x0000U
Default transmit mode. More...
#define | PH_TRANSMIT_TXCHAINING 0x0001U
Perform Transmit Chaining. More...
#define | PH_TRANSMIT_MODE_MASK 0x000FU
Mask for the above modes. More...
#define | PH_TRANSMIT_LEAVE_BUFFER_BIT 0x4000U
Does not clear the internal buffer before transmit operation. More...
#define | PH_TRANSMIT_BUFFERED_BIT 0x8000U
Buffers Tx-Data into internal buffer instead of transmitting it.
#define | PH_TRANSMIT_BUFFER_FIRST (PH_TRANSMIT_DEFAULT | PH_TRANSMIT_BUFFERED_BIT)
The given data is the first part of a stream. More...
#define | PH_TRANSMIT_BUFFER_CONT (PH_TRANSMIT_DEFAULT | PH_TRANSMIT_BUFFERED_BIT | PH_TRANSMIT_LEAVE_BUFFER_BIT)
The given data is a subsequent part of a stream. More...
#define | PH_TRANSMIT_BUFFER_LAST (PH_TRANSMIT_DEFAULT | PH_TRANSMIT_LEAVE_BUFFER_BIT)
The given data is the last part of a stream. More...
#define | PH_TRANSMIT_PREV_FRAME 0x1000U
Perform Re-transmit of data stored in HAL Tx buffer. More...
#define | PH_RECEIVE_DEFAULT 0x0000U
Default exchange mode. More...
#define | PH_RECEIVE_CHAINING 0x0001U
ISO14443-4/ISO18092 specific: Starts transmission of ACK block and performs Rx chaining with the card. More...
#define | PH_RECEIVE_CHAINING_BUFSIZE 0x0002U
ISO14443-4/ISO18092 specific: Starts transmission with ACK block and performs Rx chaining with the card. More...

Log Interface

#define | PH_LOG_HELPER_ALLOCATE_PARAMNAME(pParam)
#define | PH_LOG_HELPER_ALLOCATE_TEXT(pIdent, pText)
#define | PH_LOG_HELPER_ADDSTRING(bLogType, pString)
#define | PH_LOG_HELPER_ADDPARAM_UINT8(bLogType, pName, pParam)
#define | PH_LOG_HELPER_ADDPARAM_UINT16(bLogType, pName, pParam)
#define | PH_LOG_HELPER_ADDPARAM_UINT32(bLogType, pName, pParam)
#define | PH_LOG_HELPER_ADDPARAM_BUFFER(bLogType, pName, pParam, wLength)
#define | PH_LOG_HELPER_EXECUTE(bOption)

Detailed Description

Contains definitions which are generic throughout the library.

Macro Definition Documentation

§ RD_LIB_MODE_EMVCO

#define RD_LIB_MODE_EMVCO 0x01U

EMVCo Mode.

§ RD_LIB_MODE_NFC

#define RD_LIB_MODE_NFC 0x02U

NFC Forum Mode.

§ RD_LIB_MODE_ISO

#define RD_LIB_MODE_ISO 0x03U

ISO Mode.

§ PH_ON

#define PH_ON 0x0001U

Enabled.

§ PH_OFF

#define PH_OFF 0x0000U

Disabled.

§ PH_SUPPORTED

#define PH_SUPPORTED 0x0001U

Supported.

§ PH_UNSUPPORTED

#define PH_UNSUPPORTED 0x0000U

Not Supported.

§ PH_CONFIG_CUSTOM_BEGIN

#define PH_CONFIG_CUSTOM_BEGIN 0xE000U

Starting number of custom configs.

§ PH_COMP_MASK

#define PH_COMP_MASK 0xFF00U

Component Mask for status code and component ID.

§ PH_COMPID_MASK

#define PH_COMPID_MASK 0x00FFU

ID Mask for component ID.

§ PH_ERR_MASK

#define PH_ERR_MASK 0x00FFU

Error Mask for status code.

§ PH_ERR_CUSTOM_BEGIN

#define PH_ERR_CUSTOM_BEGIN 0x0080U

Starting number of custom error codes.

§ PH_COMP_GENERIC

#define PH_COMP_GENERIC 0x0000U

Generic Component Code.

§ PH_COMP_BAL

#define PH_COMP_BAL 0x0100U

BAL Component Code.

§ PH_COMP_HAL

#define PH_COMP_HAL 0x0200U

HAL Component Code.

§ PH_COMP_PAL_ISO14443P3A

#define PH_COMP_PAL_ISO14443P3A 0x0300U

ISO14443-3A PAL-Component Code.

§ PH_COMP_PAL_ISO14443P3B

#define PH_COMP_PAL_ISO14443P3B 0x0400U

ISO14443-3B PAL-Component Code.

§ PH_COMP_PAL_ISO14443P4A

#define PH_COMP_PAL_ISO14443P4A 0x0500U

ISO14443-4A PAL-Component Code.

§ PH_COMP_PAL_ISO14443P4

#define PH_COMP_PAL_ISO14443P4 0x0600U

ISO14443-4 PAL-Component Code.

§ PH_COMP_PAL_MIFARE

#define PH_COMP_PAL_MIFARE 0x0700U

MIFARE(R) PAL-Component Code.

§ PH_COMP_PAL_FELICA

#define PH_COMP_PAL_FELICA 0x0800U

Open FeliCa PAL-Component Code.

§ PH_COMP_PAL_EPCUID

#define PH_COMP_PAL_EPCUID 0x0900U

ICode EPC/UID PAL-Component Code.

§ PH_COMP_PAL_SLI15693

#define PH_COMP_PAL_SLI15693 0x0A00U

ICode SLI/ISO15693 PAL-Component Code.

§ PH_COMP_PAL_I18000P3M3

#define PH_COMP_PAL_I18000P3M3 0x0B00U

ISO18000-3 Mode3 PAL-Component Code.

§ PH_COMP_PAL_I18092MPI

#define PH_COMP_PAL_I18092MPI 0x0C00U

ISO18092 passive initiator mode PAL-Component Code.

§ PH_COMP_PAL_I18092MT

#define PH_COMP_PAL_I18092MT 0x0D00U

ISO18092 target mode PAL-Component Code.

§ PH_COMP_PAL_GENERALTARGET

#define PH_COMP_PAL_GENERALTARGET 0x0E00U

General Target/Listen mode protocol.

§ PH_COMP_PAL_I14443P4MC

#define PH_COMP_PAL_I14443P4MC 0x0F00U

ISO 14443-4 Card mode protocol.

§ PH_COMP_AL_MFC

#define PH_COMP_AL_MFC 0x1000U

MIFARE(R) Classic AL-Component Code.

§ PH_COMP_AL_MFUL

#define PH_COMP_AL_MFUL 0x1100U

MIFARE(R) Ultralight AL-Component Code.

§ PH_COMP_AL_MFP

#define PH_COMP_AL_MFP 0x1200U

MIFARE(R) Plus AL-Component Code.

§ PH_COMP_AL_VCA

#define PH_COMP_AL_VCA 0x1300U

Virtual Card Architecture AL-Component Code.

§ PH_COMP_AL_FELICA

#define PH_COMP_AL_FELICA 0x1400U

Open FeliCa AL-Component Code.

§ PH_COMP_AL_I15693

#define PH_COMP_AL_I15693 0x1500U

ISO15693 AL-Component Code.

§ PH_COMP_AL_SLI

#define PH_COMP_AL_SLI 0x1600U

ICode SLI AL-Component Code.

§ PH_COMP_AL_I18000P3M3

#define PH_COMP_AL_I18000P3M3 0x1800U

ISO18000-3 Mode3 AL-Component Code.

§ PH_COMP_AL_MFDF

#define PH_COMP_AL_MFDF 0x1900U

MIFARE DESFIRE EV1 AL Component Code.

§ PH_COMP_AL_MFDFEV2

#define PH_COMP_AL_MFDFEV2 0x2000U

MIFARE DESFIRE EV2 AL Component Code.

§ PH_COMP_AL_P40CMDPRIV

#define PH_COMP_AL_P40CMDPRIV 0x1A00U

P40 command libraryAL-Component Code.

§ PH_COMP_AL_P40CMDPUB

#define PH_COMP_AL_P40CMDPUB 0x1B00U

P40 command libraryAL-Component Code.

§ PH_COMP_DL_AMP

#define PH_COMP_DL_AMP 0x3000U

Amplifier DL-Component Code.

§ PH_COMP_DL_THSTRM

#define PH_COMP_DL_THSTRM 0x3100U

Thermostream DL-Component Code.

§ PH_COMP_DL_OSCI

#define PH_COMP_DL_OSCI 0x3200U

Oscilloscope DL-Component Code.

§ PH_COMP_DL_RDFPGA

#define PH_COMP_DL_RDFPGA 0x3300U

Reader FPGA Box DL-Component Code.

§ PH_COMP_DL_MSTAMPOSC

#define PH_COMP_DL_MSTAMPOSC 0x3400U

Master Amplifier Oscilloscope DL-Component Code.

§ PH_COMP_DL_STEPPER

#define PH_COMP_DL_STEPPER 0x3500U

Stepper DL-Component Code.

§ PH_COMP_AC_DISCLOOP

#define PH_COMP_AC_DISCLOOP 0x4000U

Discovery Loop.

§ PH_COMP_CE_T4T

#define PH_COMP_CE_T4T 0x5000U

Card Emulation T4T.

§ PH_COMP_LN_LLCP

#define PH_COMP_LN_LLCP 0x6000U

LLCP code.

§ PH_COMP_NP_SNEP

#define PH_COMP_NP_SNEP 0x7000U

SNEP Code.

§ PH_COMP_CIDMANAGER

#define PH_COMP_CIDMANAGER 0xE000U

Cid Manager Component Code.

§ PH_COMP_CRYPTOSYM

#define PH_COMP_CRYPTOSYM 0xE100U

CryptoSym Component Code.

§ PH_COMP_KEYSTORE

#define PH_COMP_KEYSTORE 0xE200U

KeyStore Component Code.

§ PH_COMP_TOOLS

#define PH_COMP_TOOLS 0xE300U

Tools Component Code.

§ PH_COMP_CRYPTORNG

#define PH_COMP_CRYPTORNG 0xE400U

CryptoRng Component Code.

§ PH_COMP_LOG

#define PH_COMP_LOG 0xEF00U

Log Component Code.

§ PH_COMP_OSAL

#define PH_COMP_OSAL 0xF000U

OS AL component code.

§ PH_COMP_PLATFORM

#define PH_COMP_PLATFORM 0xF100U

MicroController Platform component code.

§ PH_EXCHANGE_DEFAULT

#define PH_EXCHANGE_DEFAULT 0x0000U

Default exchange mode.

Combine with PH_EXCHANGE_BUFFERED_BIT and PH_EXCHANGE_LEAVE_BUFFER_BIT to perform buffering. ISO14443-4/ISO18092 specific: Performs Tx/Rx chaining with the card. Returns PH_ERR_SUCCESS_CHAINING when RxBuffer is full and does not ACK the last received block.

§ PH_EXCHANGE_TXCHAINING

#define PH_EXCHANGE_TXCHAINING 0x0001U

ISO14443-4/ISO18092 specific: Chains given data to card/Target.

Combine with PH_EXCHANGE_BUFFERED_BIT and PH_EXCHANGE_LEAVE_BUFFER_BIT to perform buffering. Does not receive any data.

§ PH_EXCHANGE_RXCHAINING

#define PH_EXCHANGE_RXCHAINING 0x0002U

ISO14443-4/ISO18092 specific: Starts transmission with and R(ACK) block and performs Rx chaining with the Card/Target.

Returns PH_ERR_SUCCESS_CHAINING when RxBuffer is full and does not ACK the last received block.

§ PH_EXCHANGE_RXCHAINING_BUFSIZE

#define PH_EXCHANGE_RXCHAINING_BUFSIZE 0x0003U

ISO14443-4/ISO18092 specific: Starts transmission with and R(ACK) block and performs Rx chaining with the card.

Completes Rx chaining with the card if RxBuffer is full.

§ PH_EXCHANGE_MODE_MASK

#define PH_EXCHANGE_MODE_MASK 0x000FU

Mask for the above modes.

All other bits are reserved.

§ PH_EXCHANGE_CUSTOM_BITS_MASK

#define PH_EXCHANGE_CUSTOM_BITS_MASK 0x00F0U

Mask for custom exchange bits.

These 4 bits can be used for custom exchange behavior.

§ PH_EXCHANGE_LEAVE_BUFFER_BIT

#define PH_EXCHANGE_LEAVE_BUFFER_BIT 0x4000U

Does not clear the internal buffer before operation.

If this bit is set and data is transmitted, the contents of the internal buffer are sent first.

§ PH_EXCHANGE_BUFFER_FIRST

#define PH_EXCHANGE_BUFFER_FIRST (PH_EXCHANGE_DEFAULT | PH_EXCHANGE_BUFFERED_BIT)

The given data is the first part of a stream.

(Helper definition for buffering).

§ PH_EXCHANGE_BUFFER_CONT

#define PH_EXCHANGE_BUFFER_CONT (PH_EXCHANGE_DEFAULT | PH_EXCHANGE_BUFFERED_BIT | PH_EXCHANGE_LEAVE_BUFFER_BIT)

The given data is a subsequent part of a stream.

(Helper definition for buffering).

§ PH_EXCHANGE_BUFFER_LAST

#define PH_EXCHANGE_BUFFER_LAST (PH_EXCHANGE_DEFAULT | PH_EXCHANGE_LEAVE_BUFFER_BIT)

The given data is the last part of a stream.

(Helper definition for buffering).

§ PH_TRANSMIT_DEFAULT

#define PH_TRANSMIT_DEFAULT 0x0000U

Default transmit mode.

Combine with PH_TRANSMIT_BUFFERED_BIT and PH_TRANSMIT_LEAVE_BUFFER_BIT to perform buffering.

§ PH_TRANSMIT_TXCHAINING

#define PH_TRANSMIT_TXCHAINING 0x0001U

Perform Transmit Chaining.

Combine with PH_TRANSMIT_BUFFERED_BIT and PH_TRANSMIT_LEAVE_BUFFER_BIT to perform buffering.

§ PH_TRANSMIT_MODE_MASK

#define PH_TRANSMIT_MODE_MASK 0x000FU

Mask for the above modes.

All other bits are reserved.

§ PH_TRANSMIT_LEAVE_BUFFER_BIT

#define PH_TRANSMIT_LEAVE_BUFFER_BIT 0x4000U

Does not clear the internal buffer before transmit operation.

If this bit is set and data is transmitted, the contents of the internal buffer are sent first.

§ PH_TRANSMIT_BUFFER_FIRST

#define PH_TRANSMIT_BUFFER_FIRST (PH_TRANSMIT_DEFAULT | PH_TRANSMIT_BUFFERED_BIT)

The given data is the first part of a stream.

(Helper definition for buffering).

§ PH_TRANSMIT_BUFFER_CONT

#define PH_TRANSMIT_BUFFER_CONT (PH_TRANSMIT_DEFAULT | PH_TRANSMIT_BUFFERED_BIT | PH_TRANSMIT_LEAVE_BUFFER_BIT)

The given data is a subsequent part of a stream.

(Helper definition for buffering).

§ PH_TRANSMIT_BUFFER_LAST

#define PH_TRANSMIT_BUFFER_LAST (PH_TRANSMIT_DEFAULT | PH_TRANSMIT_LEAVE_BUFFER_BIT)

The given data is the last part of a stream.

(Helper definition for buffering).

§ PH_TRANSMIT_PREV_FRAME

#define PH_TRANSMIT_PREV_FRAME 0x1000U

Perform Re-transmit of data stored in HAL Tx buffer.

Should not be combined with PH_TRANSMIT_BUFFERED_BIT and PH_TRANSMIT_LEAVE_BUFFER_BIT. This option should be used only in target / PICC mode.

§ PH_RECEIVE_DEFAULT

#define PH_RECEIVE_DEFAULT 0x0000U

Default exchange mode.

ISO14443-4/ISO18092 specific: Performs Rx chaining with the card. Returns PH_ERR_SUCCESS_CHAINING when RxBuffer is full and does not ACK the last received block.

§ PH_RECEIVE_CHAINING

#define PH_RECEIVE_CHAINING 0x0001U

ISO14443-4/ISO18092 specific: Starts transmission of ACK block and performs Rx chaining with the card.

Returns PH_ERR_SUCCESS_CHAINING when RxBuffer is full and does not ACK the last received block.

§ PH_RECEIVE_CHAINING_BUFSIZE

#define PH_RECEIVE_CHAINING_BUFSIZE 0x0002U

ISO14443-4/ISO18092 specific: Starts transmission with ACK block and performs Rx chaining with the card.

Completes Rx chaining with the card if RxBuffer is full.


NXP NFC Reader Library: Type Definitions

Typedefs
Type Definitions
Other

Contains definitions for types defined within NxpRdLib. More...

Collaboration diagram for Type Definitions:

Typedefs

typedef uint32_t ph_NfcHandle
Unsigned handle.

Unsigned Types

typedef unsigned char | uint8_t
8 bit unsigned integer
typedef unsigned short | uint16_t
16 bit unsigned integer
typedef unsigned int | uint32_t
32 bit and 64 bit unsigned integers
typedef unsigned long long | uint64_t
#define | __uint8_t_defined
#define | __uint16_t_defined
#define | __uint32_t_defined

Signed Types

typedef signed char | int8_t
8 bit signed integer
typedef short | int16_t
16 bit signed integer
typedef int | int32_t
32 bit signed integer
#define | __int8_t_defined
#define | __int16_t_defined
#define | __int32_t_defined

Floating-Point Types

typedef float | float32_t
32 bit floating point
#define | __float32_t_defined

Detailed Description

Contains definitions for types defined within NxpRdLib.


NXP NFC Reader Library: Platform Definitions

Macros
Platform Definitions
Other

Platform depending definitions for memory location of variables. More...

Collaboration diagram for Platform Definitions:

Macros

#define | PH_MEMLOC_BUF /* */
Space used for storage (e.g. More...
#define | PH_MEMLOC_COUNT /* */
Space used for fast and frequent access e.g. More...
#define | PH_MEMLOC_REM /* */
Space used for control variables, these could be e.g. More...
#define | PH_MEMLOC_CONST_ROM /* */
Space used for constants, these could be e.g. More...

Detailed Description

Platform depending definitions for memory location of variables.

We distinguish between:

  • BUFFERs : Location of storage, usually mid-speed but max. RAM consumption,
  • COUNTERs : loop counters or frequently accessed variables, fast access,
  • REMINDERs : variables holding status values or serving flow control purposes.

If RCL is used on a microcontroller, an own REFDEF.H file must be generated where the RCL_MEMLOC_... definition must get according values. Default definitions are empty.

Assignment Example: XDATA for PH_MEMLOC_BUF, IDATA for PH_MEMLOC_COUNT, EDATA for PH_MEMLOC_REM.

Macro Definition Documentation

§ PH_MEMLOC_BUF

#define PH_MEMLOC_BUF /* */

Space used for storage (e.g.

buffers).

§ PH_MEMLOC_COUNT

#define PH_MEMLOC_COUNT /* */

Space used for fast and frequent access e.g.

counters, loop variables).

§ PH_MEMLOC_REM

#define PH_MEMLOC_REM /* */

Space used for control variables, these could be e.g.

status values.

§ PH_MEMLOC_CONST_ROM

#define PH_MEMLOC_CONST_ROM /* */

Space used for constants, these could be e.g.

lookup tables.


NXP NFC Reader Library: Error Code Collection

Error Code Collection
Other

Common Error Codes. More...

Collaboration diagram for Error Code Collection:

Success Codes

#define | PH_ERR_SUCCESS 0x0000U
Returned in case of no error. More...
#define | PH_ERR_SUCCESS_CHAINING 0x0071U
Rx chaining is not complete, further action needed. More...
#define | PH_ERR_SUCCESS_ACK 0x0072U
Received ACK packet for a previous transmitted packet. More...
#define | PH_ERR_SUCCESS_INCOMPLETE_BYTE 0x0073U
An incomplete byte was received. More...
#define | PH_ERR_SUCCESS_DESELECTED 0x0074U
DSL is sent for de-selection of target. More...
#define | PH_ERR_SUCCESS_RELEASED 0x0075U
RLS is sent for release of target. More...
#define | PH_ERR_SUCCESS_INFO_RECEIVED 0x0076U
Received I PDU in response for an I PDU. More...

Communication Errors

#define | PH_ERR_IO_TIMEOUT 0x0001U
No reply received, e.g. More...
#define | PH_ERR_INTEGRITY_ERROR 0x0002U
Wrong CRC or parity detected. More...
#define | PH_ERR_COLLISION_ERROR 0x0003U
A collision occurred. More...
#define | PH_ERR_BUFFER_OVERFLOW 0x0004U
Attempt to write beyond buffer size. More...
#define | PH_ERR_FRAMING_ERROR 0x0005U
Invalid frame format. More...
#define | PH_ERR_PROTOCOL_ERROR 0x0006U
Received response violates protocol. More...
#define | PH_ERR_AUTH_ERROR 0x0007U
Authentication error. More...
#define | PH_ERR_READ_WRITE_ERROR 0x0008U
A Read or Write error occurred in RAM/ROM or Flash. More...
#define | PH_ERR_TEMPERATURE_ERROR 0x0009U
The RC sensors signal over heating. More...
#define | PH_ERR_RF_ERROR 0x000AU
Error due to RF. More...
#define | PH_ERR_INTERFACE_ERROR 0x000BU
An error occurred in RC communication. More...
#define | PH_ERR_LENGTH_ERROR 0x000CU
A length error occurred. More...
#define | PH_ERR_RESOURCE_ERROR 0x000DU
An resource error. More...
#define | PH_ERR_TX_NAK_ERROR 0x000EU
TX Rejected sanely by the counterpart. More...
#define | PH_ERR_RX_NAK_ERROR 0x000FU
RX request Rejected sanely by the counterpart. More...
#define | PH_ERR_EXT_RF_ERROR 0x0010U
Error due to External RF. More...
#define | PH_ERR_NOISE_ERROR 0x0011U
EMVCo EMD Noise Error. More...
#define | PH_ERR_ABORTED 0x0012U
Used when HAL ShutDown is called. More...
#define | PH_ERR_INTERNAL_ERROR 0x007FU
An internal error occurred. More...

Parameter & Command Errors

#define | PH_ERR_INVALID_DATA_PARAMS 0x0020U
Invalid data parameters supplied (layer id check failed). More...
#define | PH_ERR_INVALID_PARAMETER 0x0021U
Invalid parameter supplied. More...
#define | PH_ERR_PARAMETER_OVERFLOW 0x0022U
Reading/Writing a parameter would produce an overflow. More...
#define | PH_ERR_UNSUPPORTED_PARAMETER 0x0023U
Parameter not supported. More...
#define | PH_ERR_UNSUPPORTED_COMMAND 0x0024U
Command not supported. More...
#define | PH_ERR_USE_CONDITION 0x0025U
Condition of use not satisfied. More...
#define | PH_ERR_KEY 0x0026U
A key error occurred. More...
#define | PH_ERR_OSAL_ERROR 0x0027U
Errors More...
#define | PH_ERR_OSAL_FAILURE 0x0028U
OSAL failed to perform the requested operation. More...
#define | PH_ERR_EVENT_ERROR 0x0029U
Errors More...
#define | PH_ERR_EVENT_FAILURE 0x0030U
Event failed to perform the requested operation. More...

phalI18000p3m3 Error Codes

#define | PHAL_I18000P3M3_ERR_OTHER (PH_ERR_CUSTOM_BEGIN+0)
Other Error. More...
#define | PHAL_I18000P3M3_ERR_MEMORY_OVERRUN (PH_ERR_CUSTOM_BEGIN+1)
Memory overrun. More...
#define | PHAL_I18000P3M3_ERR_MEMORY_LOCKED (PH_ERR_CUSTOM_BEGIN+2)
Memory locked. More...
#define | PHAL_I18000P3M3_ERR_INSUFFICIENT_POWER (PH_ERR_CUSTOM_BEGIN+3)
Insufficient power. More...
#define | PHAL_I18000P3M3_ERR_NON_SPECIFIC (PH_ERR_CUSTOM_BEGIN+4)
Non-specific error. More...

phpalI14443p4 Error Codes

#define PHPAL_I14443P4_ERR_RECOVERY_FAILED (PH_ERR_CUSTOM_BEGIN+0)
ISO14443-4 error recovery failed. More...

phpalI18092mPI Error Codes

#define PHPAL_I18092MPI_ERR_RECOVERY_FAILED (PH_ERR_CUSTOM_BEGIN+0)
ISO18092 error recovery failed. More...

phpalMifare Error Codes

#define | PHPAL_MIFARE_ERR_NAK0 (PH_ERR_CUSTOM_BEGIN+0)
NAK 0.
#define | PHPAL_MIFARE_ERR_NAK1 (PH_ERR_CUSTOM_BEGIN+1)
NAK 1.
#define | PHPAL_MIFARE_ERR_NAK4 (PH_ERR_CUSTOM_BEGIN+2)
NAK 4.
#define | PHPAL_MIFARE_ERR_NAK5 (PH_ERR_CUSTOM_BEGIN+3)
NAK 5.
#define | PHPAL_MIFARE_ERR_NAK6 (PH_ERR_CUSTOM_BEGIN+4)
NAK 6.
#define | PHPAL_MIFARE_ERR_NAK7 (PH_ERR_CUSTOM_BEGIN+5)
NAK 7.
#define | PHPAL_MIFARE_ERR_NAK8 (PH_ERR_CUSTOM_BEGIN+6)
NAK 8.
#define | PHPAL_MIFARE_ERR_NAK9 (PH_ERR_CUSTOM_BEGIN+7)
NAK 9.

phpalSli15693 Error Codes

#define PHPAL_SLI15693_ERR_ISO15693 (PH_ERR_CUSTOM_BEGIN+0)
ISO15693 specific error code from card. More...

Detailed Description

Common Error Codes.

phpalSli15693 Custom Errors

phpalMifare Custom Errors

phpalI18092 Custom Errors

phpalI14443p4 Custom Errors

phalI18000p3m3 Custom Errors

Macro Definition Documentation

§ PH_ERR_SUCCESS

#define PH_ERR_SUCCESS 0x0000U

Returned in case of no error.

§ PH_ERR_SUCCESS_CHAINING

#define PH_ERR_SUCCESS_CHAINING 0x0071U

Rx chaining is not complete, further action needed.

§ PH_ERR_SUCCESS_ACK

#define PH_ERR_SUCCESS_ACK 0x0072U

Received ACK packet for a previous transmitted packet.

§ PH_ERR_SUCCESS_INCOMPLETE_BYTE

#define PH_ERR_SUCCESS_INCOMPLETE_BYTE 0x0073U

An incomplete byte was received.

§ PH_ERR_SUCCESS_DESELECTED

#define PH_ERR_SUCCESS_DESELECTED 0x0074U

DSL is sent for de-selection of target.

§ PH_ERR_SUCCESS_RELEASED

#define PH_ERR_SUCCESS_RELEASED 0x0075U

RLS is sent for release of target.

§ PH_ERR_SUCCESS_INFO_RECEIVED

#define PH_ERR_SUCCESS_INFO_RECEIVED 0x0076U

Received I PDU in response for an I PDU.

§ PH_ERR_IO_TIMEOUT

#define PH_ERR_IO_TIMEOUT 0x0001U

No reply received, e.g.

PICC removal.

§ PH_ERR_INTEGRITY_ERROR

#define PH_ERR_INTEGRITY_ERROR 0x0002U

Wrong CRC or parity detected.

§ PH_ERR_COLLISION_ERROR

#define PH_ERR_COLLISION_ERROR 0x0003U

A collision occurred.

§ PH_ERR_BUFFER_OVERFLOW

#define PH_ERR_BUFFER_OVERFLOW 0x0004U

Attempt to write beyond buffer size.

§ PH_ERR_FRAMING_ERROR

#define PH_ERR_FRAMING_ERROR 0x0005U

Invalid frame format.

§ PH_ERR_PROTOCOL_ERROR

#define PH_ERR_PROTOCOL_ERROR 0x0006U

Received response violates protocol.

§ PH_ERR_AUTH_ERROR

#define PH_ERR_AUTH_ERROR 0x0007U

Authentication error.

§ PH_ERR_READ_WRITE_ERROR

#define PH_ERR_READ_WRITE_ERROR 0x0008U

A Read or Write error occurred in RAM/ROM or Flash.

§ PH_ERR_TEMPERATURE_ERROR

#define PH_ERR_TEMPERATURE_ERROR 0x0009U

The RC sensors signal over heating.

§ PH_ERR_RF_ERROR

#define PH_ERR_RF_ERROR 0x000AU

Error due to RF.

§ PH_ERR_INTERFACE_ERROR

#define PH_ERR_INTERFACE_ERROR 0x000BU

An error occurred in RC communication.

§ PH_ERR_LENGTH_ERROR

#define PH_ERR_LENGTH_ERROR 0x000CU

A length error occurred.

§ PH_ERR_RESOURCE_ERROR

#define PH_ERR_RESOURCE_ERROR 0x000DU

An resource error.

§ PH_ERR_TX_NAK_ERROR

#define PH_ERR_TX_NAK_ERROR 0x000EU

TX Rejected sanely by the counterpart.

§ PH_ERR_RX_NAK_ERROR

#define PH_ERR_RX_NAK_ERROR 0x000FU

RX request Rejected sanely by the counterpart.

§ PH_ERR_EXT_RF_ERROR

#define PH_ERR_EXT_RF_ERROR 0x0010U

Error due to External RF.

§ PH_ERR_NOISE_ERROR

#define PH_ERR_NOISE_ERROR 0x0011U

EMVCo EMD Noise Error.

§ PH_ERR_ABORTED

#define PH_ERR_ABORTED 0x0012U

Used when HAL ShutDown is called.

§ PH_ERR_INTERNAL_ERROR

#define PH_ERR_INTERNAL_ERROR 0x007FU

An internal error occurred.

§ PH_ERR_INVALID_DATA_PARAMS

#define PH_ERR_INVALID_DATA_PARAMS 0x0020U

Invalid data parameters supplied (layer id check failed).

§ PH_ERR_INVALID_PARAMETER

#define PH_ERR_INVALID_PARAMETER 0x0021U

Invalid parameter supplied.

§ PH_ERR_PARAMETER_OVERFLOW

#define PH_ERR_PARAMETER_OVERFLOW 0x0022U

Reading/Writing a parameter would produce an overflow.

§ PH_ERR_UNSUPPORTED_PARAMETER

#define PH_ERR_UNSUPPORTED_PARAMETER 0x0023U

Parameter not supported.

§ PH_ERR_UNSUPPORTED_COMMAND

#define PH_ERR_UNSUPPORTED_COMMAND 0x0024U

Command not supported.

§ PH_ERR_USE_CONDITION

#define PH_ERR_USE_CONDITION 0x0025U

Condition of use not satisfied.

§ PH_ERR_KEY

#define PH_ERR_KEY 0x0026U

A key error occurred.

§ PH_ERR_OSAL_ERROR

#define PH_ERR_OSAL_ERROR 0x0027U

Errors

Error occurred during initialization.

§ PH_ERR_OSAL_FAILURE

#define PH_ERR_OSAL_FAILURE 0x0028U

OSAL failed to perform the requested operation.

§ PH_ERR_EVENT_ERROR

#define PH_ERR_EVENT_ERROR 0x0029U

Errors

Error occurred during initialization.

§ PH_ERR_EVENT_FAILURE

#define PH_ERR_EVENT_FAILURE 0x0030U

Event failed to perform the requested operation.

§ PHAL_I18000P3M3_ERR_OTHER

#define PHAL_I18000P3M3_ERR_OTHER (PH_ERR_CUSTOM_BEGIN+0)

Other Error.

§ PHAL_I18000P3M3_ERR_MEMORY_OVERRUN

#define PHAL_I18000P3M3_ERR_MEMORY_OVERRUN (PH_ERR_CUSTOM_BEGIN+1)

Memory overrun.

§ PHAL_I18000P3M3_ERR_MEMORY_LOCKED

#define PHAL_I18000P3M3_ERR_MEMORY_LOCKED (PH_ERR_CUSTOM_BEGIN+2)

Memory locked.

§ PHAL_I18000P3M3_ERR_INSUFFICIENT_POWER

#define PHAL_I18000P3M3_ERR_INSUFFICIENT_POWER (PH_ERR_CUSTOM_BEGIN+3)

Insufficient power.

§ PHAL_I18000P3M3_ERR_NON_SPECIFIC

#define PHAL_I18000P3M3_ERR_NON_SPECIFIC (PH_ERR_CUSTOM_BEGIN+4)

Non-specific error.

§ PHPAL_I14443P4_ERR_RECOVERY_FAILED

#define PHPAL_I14443P4_ERR_RECOVERY_FAILED (PH_ERR_CUSTOM_BEGIN+0)

ISO14443-4 error recovery failed.

§ PHPAL_I18092MPI_ERR_RECOVERY_FAILED

#define PHPAL_I18092MPI_ERR_RECOVERY_FAILED (PH_ERR_CUSTOM_BEGIN+0)

ISO18092 error recovery failed.

§ PHPAL_SLI15693_ERR_ISO15693

#define PHPAL_SLI15693_ERR_ISO15693 (PH_ERR_CUSTOM_BEGIN+0)

ISO15693 specific error code from card.

When a response is received from the VICC with the error flag PHPAL_SLI15693_FLAG_RESP_ERROR set, this error code returned by library. The actual error code returned by VICC can be accessed via phpalSli15693_GetConfig using PHPAL_SLI15693_CONFIG_ADD_INFO option.


NXP NFC Reader Library: (Private definitions)

Macros | Functions
(Private definitions)
Other

Private definitions and functions of all components. More...

Collaboration diagram for (Private definitions):

Macros

#define | PHAL_MFC_RESP_ACK 0x0A
MIFARE Classic ACK response code.
#define | PHAL_MFC_RESP_NAK0 0x00
MIFARE Classic NAK0 response code.
#define | PHAL_MFC_RESP_NAK1 0x01
MIFARE Classic NAK1 response code.
#define | PHAL_MFC_RESP_NAK4 0x04
MIFARE Classic NAK4 response code.
#define | PHAL_MFC_RESP_NAK5 0x05
MIFARE Classic NAK5 response code.
#define | PHAL_MFC_CMD_RESTORE 0xC2
MIFARE Classic Restore command byte.
#define | PHAL_MFC_CMD_INCREMENT 0xC1
MIFARE Classic Increment command byte.
#define | PHAL_MFC_CMD_DECREMENT 0xC0
MIFARE Classic Decrement command byte.
#define | PHAL_MFC_CMD_TRANSFER 0xB0
MIFARE Classic Transfer command byte.
#define | PHAL_MFC_CMD_READ 0x30
MIFARE Classic Read command byte.
#define | PHAL_MFC_CMD_WRITE 0xA0
MIFARE Classic Write command byte.
#define | PHAL_MFC_CMD_AUTHA 0x60
MIFARE Classic Authenticate A command byte.
#define | PHAL_MFC_CMD_AUTHB 0x61
MIFARE Classic Authenticate B command byte.
#define | PHAL_MFC_CMD_PERSOUID 0x40
MIFARE Classic Personalize UID command.
#define | PHAL_MFC_CMD_GETVERSION 0x62
MIFARE Classic GET VERSION command.
#define | PHAL_MFC_VERSION_LENGTH 0x08
Length of a Version MIFARE(R) Classic data block.
#define | PHAL_MFP_TRUNCATED_MAC_SIZE 8
Size of the truncated MAC. More...
#define | PHAL_MFP_MIFARE_VALUE_BLOCK_SIZE 4
Size of a MIFARE value block. More...
#define | PHAL_MFP_MIFARE_BLOCK_SIZE 16
Size of the MIFARE blocks. More...
#define | PHAL_MFP_PC_RND_LEN 7
Size of the Proximity Check Random numbers. More...
#define | PHAL_MFUL_RESP_ACK 0x0AU
MIFARE Ultralight ACK response code.
#define | PHAL_MFUL_RESP_NAK0 0x00U
MIFARE Ultralight NAK0 response code.
#define | PHAL_MFUL_RESP_NAK1 0x01U
MIFARE Ultralight NAK1 response code.
#define | PHAL_MFUL_RESP_NAK4 0x04U
MIFARE Ultralight NAK4 response code.
#define | PHAL_MFUL_RESP_NAK5 0x05U
MIFARE Ultralight NAK5 response code.
#define | PHAL_MFUL_CMD_READ 0x30U
MIFARE Ultralight Read command byte.
#define | PHAL_MFUL_CMD_COMPWRITE 0xA0U
MIFARE Ultralight Compatibility Write command byte.
#define | PHAL_MFUL_CMD_WRITE 0xA2U
MIFARE Ultralight Write command byte.
#define | PHAL_MFUL_CMD_AUTH 0x1AU
MIFARE Ultralight Authenticate command byte.
#define | PHAL_MFUL_CMD_INCR_CNT 0xA5U
MIFARE Ultralight Increment count command byte.
#define | PHAL_MFUL_CMD_READ_CNT 0x39U
MIFARE Ultralight Read counter command byte.
#define | PHAL_MFUL_CMD_PWD_AUTH 0x1BU
MIFARE Ultralight Password Auth command byte.
#define | PHAL_MFUL_CMD_GET_VER 0x60U
MIFARE Ultralight Get version command byte.
#define | PHAL_MFUL_CMD_FAST_READ 0x3AU
MIFARE Ultralight Fast read command byte.
#define | PHAL_MFUL_CMD_READ_SIG 0x3CU
MIFARE Ultralight Read signature command byte.
#define | PHAL_MFUL_CMD_CHK_TRG_EVT 0x3EU
MIFARE Ultralight Check tearing event command byte.
#define | PHAL_MFUL_CMD_SECTOR_SELECT 0xC2U
Type 2 tag sector select command byte.
#define | PHAL_MFUL_PREAMBLE_TX 0xAFU
MIFARE Ultralight preamble byte (tx) for authentication. More...
#define | PHAL_MFUL_PREAMBLE_RX 0x00U
MIFARE Ultralight preamble byte (rx) for authentication. More...
#define | PHAL_MFUL_COMPWRITE_BLOCK_LENGTH 16U
Length of a compatibility write MIFARE(R) Ultralight data block. More...
#define | PHAL_T1T_READUID_RESP_LEN 6U
T1T RID response len.
#define | PHAL_T1T_READALL_RESP_LEN 122U
T1T RALL response len.
#define | PHAL_T1T_READBYTE_RESP_LEN 2U
T1T Read response len.
#define | PHAL_T1T_WRITEERASEBYTE_RESP_LEN 2U
T1T Write_E response len.
#define | PHAL_T1T_WRITENOERASEBYTE_RESP_LEN 2U
T1T Write_NE response len.
#define | PHAL_T1T_READSEG_RESP_LEN 129U
T1T RSEG response len.
#define | PHAL_T1T_READBLOCK_RESP_LEN 9U
T1T Read8 response len.
#define | PHAL_T1T_WRITEERASEBLOCK_RESP_LEN 9U
T1T Write_E8 response len.
#define | PHAL_T1T_WRITENOERASEBLOCK_RESP_LEN 9U
T1T Write_NE8 response len.
#define | PHAL_T1T_CMD_READUID 0x78U
T1T RID command byte.
#define | PHAL_T1T_CMD_READALL 0x00U
T1T RALL command byte.
#define | PHAL_T1T_CMD_READBYTE 0x01U
T1T Read command byte.
#define | PHAL_T1T_CMD_WRITEERASEBYTE 0x53U
T1T Write_E8 command byte.
#define | PHAL_T1T_CMD_WRITENOERASEBYTE 0x1AU
T1T Write_NE8 command byte.
#define | PHAL_T1T_CMD_READSEG 0x10U
T1T RID command byte.
#define | PHAL_T1T_CMD_READBLOCK 0x02U
T1T Read8 command byte.
#define | PHAL_T1T_CMD_WRITEERASEBLOCK 0x54U
T1T Write_E8 command byte.
#define | PHAL_T1T_CMD_WRITENOERASEBLOCK 0x1BU
T1T Write_NE8 command byte. More...
#define | PHAL_T1T_HEADER_ROM0 0x10U
T1T Header Rom 0 byte to check. More...
#define | PHAL_T1T_SW_READ_TIME_US 91U
Read commands timeout in microseconds. More...
#define | PHAL_T1T_SW_WRITE_ERASE_TIME_US 5236U
Write Erase commands timeout in microseconds. More...
#define | PHAL_T1T_SW_WRITE_NO_ERASE_TIME_US 2659U
Write No Erase commands timeout in microseconds. More...
#define | PHAL_T1T_SW_EXT_TIME_US 200U
Time extension in microseconds. More...
#define | PHBAL_REG_SERIALWIN_RX_TIMEOUT_VAL 500
Default timeout value to guarantee no deadlocks (ReadBus & WriteBus)
#define | PHPAL_I14443P3A_REQUEST_CMD 0x26U
ReqA Command code.
#define | PHPAL_I14443P3A_WAKEUP_CMD 0x52U
WupA Command code.
#define | PHPAL_I14443P3A_HALT_CMD 0x50U
HltA Command code.
#define | PHPAL_I14443P3A_CASCADE_TAG 0x88U
Cascade Tag (CT) value.
#define | PHPAL_I14443P3A_ATQA_LENGTH 2U
Length of AtqA.
#define | PHPAL_I14443P3A_SELECTION_TIME_US 85U
Wait time for selection command in microseconds.
#define | PHPAL_I14443P3A_HALT_TIME_US 1100U
Wait time for halt command in microseconds.
#define | PHPAL_I14443P3A_EXT_TIME_US 60
Time extension in microseconds for all commands. More...
#define | PHPAL_I14443P3B_SW_ATQB_TIME_US 600
TR0 + TR1 (ISO14443-2 9.2.5 75,5 + 94,4 ~ 170 –> set 200 us). More...
#define | PHPAL_I14443P3B_SW_DELTA_POLL 17
T(B,POLL) (Digital Protocol Ver1.1 (Article 7.9.1.5) is 16.4ms = ~17ms). More...
#define | PHPAL_I14443P3B_SW_ATTRIB_TIME_US 4800
Answer to ATTRIB FWT (ISO14443-3 7.9.4.3). More...
#define | PHPAL_I14443P3B_SW_APF 0x05U
Anticollision prefix code.
#define | PHPAL_I14443P3B_SW_PARAM_WUP_BIT 0x08U
Wakeup bit within PARAM byte.
#define | PHPAL_I14443P3B_SW_PARAM_EXTATQB_BIT 0x10U
Extended ATQB bit within PARAM byte.
#define | PHPAL_I14443P3B_SW_HALT_CMD 0x50U
HltB Command code.
#define | PHPAL_I14443P3B_SW_HALT_RESP 0x00U
HltB Response code.
#define | PHPAL_I14443P3B_SW_ATTRIB_CMD 0x1DU
ATTRIB Command code.
#define | PHPAL_I14443P3B_SW_ATTRIB_PARAM1_DEFAULT 0x00U
ATTRIB parameter1 default value.
#define | PHPAL_I14443P3B_SW_FWI_DEFAULT 0x04U
FWI default value.
#define | PHPAL_I14443P3B_SW_SFGI_DEFAULT 0x00U
SFGI default value.
#define | PHPAL_I14443P3B_SW_FSCI_DEFAULT 0x02U
FSCI default value.
#define | PHPAL_I14443P3B_SW_FWT_MIN_US 303
FTW min in microseconds.
#define | PHPAL_I14443P3B_SW_EXT_TIME_US 63
Time extension in microseconds for all commands. More...
#define | PHPAL_I14443P3B_FRAMESIZE_MAX 12
The maximum allowed FSDI/FSCI value. More...
#define | PHPAL_I14443P3B_SW_TXWAIT_US_TR2_0 133U
Minimum TxWait in case received TR2 value is (00)b. More...
#define | PHPAL_I14443P3B_SW_TXWAIT_US_TR2_1 246U
Minimum TxWait in case received TR2 value is (01)b. More...
#define | PHPAL_I14443P3B_SW_TXWAIT_US_TR2_2 397U
Minimum TxWait in case received TR2 value is (10)b. More...
#define | PHPAL_I14443P3B_SW_TXWAIT_US_TR2_3 699U
Minimum TxWait in case received TR2 value is (11)b. More...
#define | PHPAL_I14443P3B_SW_MINIMUM_TR2_MASK 0x06U
Minimum TR2 Mask to extract TR2 value. More...
#define | PHPAL_I14443P3B_SW_MINIMUM_TR2_POS 1U
TR2 position. More...
#define | PHPAL_I14443P3B_SW_MINIMUM_TR2_VALUE_0 0U
TR2 bit value (00)b. More...
#define | PHPAL_I14443P3B_SW_MINIMUM_TR2_VALUE_1 1U
TR2 bit value (01)b. More...
#define | PHPAL_I14443P3B_SW_MINIMUM_TR2_VALUE_2 2U
TR2 bit value (10)b. More...
#define | PHPAL_I14443P3B_SW_MINIMUM_TR2_VALUE_3 3U
TR2 bit value (11)b. More...
#define | PHPAL_I14443P3B_SW_DELTA_TPCD_US_MAX 16400U
Delta TPCD max in microseconds.
#define | PHPAL_I14443P3B_SW_DELTA_TPCD_US_MIN 0U
Delta TPCD minimum in microseconds.
#define | PHPAL_I14443P3B_SW_DELTA_FWT_US 3625U
Delta frame wait time (FWT) in microseconds = 49152/fc.
#define | PHPAL_I14443P3B_SW_DELTA_TPCD_US 1000U
Delta TPCD used for exchange (in microseconds)
#define | PHPAL_I14443P4_SW_BLOCK_MASK 0xC0U
ISO 14443-4 Block Mask.
#define | PHPAL_I14443P4_SW_I_BLOCK 0x00U
ISO 14443-4 I-Block.
#define | PHPAL_I14443P4_SW_I_BLOCK_RFU_MASK 0x22U
ISO 14443-4 I-Block RFU mask.
#define | PHPAL_I14443P4_SW_I_BLOCK_RFU_BITS 0x02U
ISO 14443-4 I-Block RFU bits.
#define | PHPAL_I14443P4_SW_R_BLOCK 0x80U
ISO 14443-4 R-Block.
#define | PHPAL_I14443P4_SW_R_BLOCK_RFU_MASK 0x26U
ISO 14443-4 R-Block RFU mask.
#define | PHPAL_I14443P4_SW_R_BLOCK_RFU_BITS 0x22U
ISO 14443-4 R-Block RFU bits.
#define | PHPAL_I14443P4_SW_S_BLOCK 0xC0U
ISO 14443-4 S-Block.
#define | PHPAL_I14443P4_SW_S_BLOCK_RFU_MASK 0x03U
ISO 14443-4 S-Block RFU mask.
#define | PHPAL_I14443P4_SW_S_BLOCK_RFU_BITS 0x02U
ISO 14443-4 S-Block RFU bits.
#define | PHPAL_I14443P4_SW_PCB_POS 0x00U
Byte position of PCB byte.
#define | PHPAL_I14443P4_SW_PCB_BLOCKNR 0x01U
Blocknumber Bit within PCB.
#define | PHPAL_I14443P4_SW_PCB_NAD_FOLLOWING 0x04U
Bit within PCB which signals presence of NAD byte.
#define | PHPAL_I14443P4_SW_PCB_CID_FOLLOWING 0x08U
Bit within PCB which signals presence of CID byte.
#define | PHPAL_I14443P4_SW_PCB_CHAINING 0x10U
Bit within PCB which signals chaining.
#define | PHPAL_I14443P4_SW_PCB_ACK 0x00U
Bit within PCB which signals ACK.
#define | PHPAL_I14443P4_SW_PCB_NAK 0x10U
Bit within PCB which signals NAK.
#define | PHPAL_I14443P4_SW_PCB_DESELECT 0x00U
Bits within PCB which signal a DESELECT command.
#define | PHPAL_I14443P4_SW_PCB_WTX 0x30U
Bits within PCB which signal a WTX command.
#define | PHPAL_I14443P4_SW_WTXM_BITS 0x3FU
WTXM Bits of WTX INF byte.
#define | PHPAL_I14443P4_SW_FWI_DEFAULT 0x04U
FWI default value.
#define | PHPAL_I14443P4_SW_FSCI_DEFAULT 0x02U
FSCI default value.
#define | PHPAL_I14443P4_SW_FWT_MIN_US 302
FTW min in microseconds.
#define | PHPAL_I14443P4_SW_FWT_MIN_US 302
FTW min in microseconds.
#define | PHPAL_I14443P4_SW_FWT_MAX_US 4949000
FTW max in microseconds.
#define | PHPAL_I14443P4_SW_FWT_DESELECT_US 5286
S(DESELECT) FTW in microseconds.
#define | PHPAL_I14443P4_SW_CID_MASK 0x0FU
Valid CID bits within CID field.
#define | PHPAL_I14443P4_SW_STATE_I_BLOCK_TX 0x01U
I-Block transmission mode.
#define | PHPAL_I14443P4_SW_STATE_I_BLOCK_RX 0x02U
I-Block reception mode.
#define | PHPAL_I14443P4_SW_STATE_FINISHED 0x0FU
Exchange finished mode.
#define | PHPAL_I14443P4_SW_STATE_RETRANSMIT_BIT 0x40U
An I-Block mode is retramsmitting.
#define | PHPAL_I14443P4_SW_STATE_CHAINING_BIT 0x80U
An I-Block mode is chaining.
#define | PHPAL_I14443P4_SW_STATE_MASK 0x0FU
Only 6 bits of the state are pure state codes.
#define | PHPAL_I14443P4_SW_MAX_RETRIES_DEFAULT 2U
Default Maximum Retry count for ISO/IEC 14443-4:2008(E) Rule 4 and 5.
#define | PHPAL_I14443P4_EXT_TIME_US 60
Time extension in microseconds for all commands. More...
#define | PHPAL_I14443P4_EMVCO_FWT_US 30
EMVCo: Time extension to support EMVCO Req.
#define | PHPAL_I14443P4_SW_S_BLOCK_INF_PLI_MASK 0xC0
Power level Indication bit mask for INF of SWTX.
#define | PHPAL_I14443P4_SW_DELTA_TPCD_US_MAX 16400U
Delta TPCD max in microseconds.
#define | PHPAL_I14443P4_SW_DELTA_TPCD_US_MIN 0U
Delta TPCD minimum in microseconds.
#define | PHPAL_I14443P4_SW_DELTA_FWT_US 3625U
Delta frame wait time (FWT) in microseconds = 49152/fc.
#define | PHPAL_I14443P4_SW_DELTA_TPCD_US 1000U
Delta TPCD used for exchange (in microseconds)
#define | PHPAL_I14443P4A_SAMAV2_X_PPSS 0xD0U
PPS Command code. More...
#define | PHPAL_I14443P4A_SAMAV2_X_PPS0 0x11U
PPS0 code. More...
#define | PHPAL_I14443P4A_SAMAV2_X_ATS_LEN 0
Position of LEN within ATS. More...
#define | PHPAL_I14443P4A_SAMAV2_X_ATS_T0 1
Position of T0 within ATS. More...
#define | PHPAL_I14443P4A_SAMAV2_X_ATS_TA1_PRESENT 0x10U
Bit which signals TA(1) presence. More...
#define | PHPAL_I14443P4A_SAMAV2_X_ATS_TB1_PRESENT 0x20U
Bit which signals TB(1) presence. More...
#define | PHPAL_I14443P4A_SAMAV2_X_ATS_TC1_PRESENT 0x40U
Bit which signals TC(1) presence. More...
#define | PHPAL_I14443P4A_SAMAV2_X_ATS_TC1_NAD_SUPPORT 0x01U
Bit within TC(1) which signals NAD support. More...
#define | PHPAL_I14443P4A_SAMAV2_X_ATS_TC1_CID_SUPPORT 0x02U
Bit within TC(1) which signals CID support. More...
#define | PHPAL_I14443P4A_SAMAV2_X_FWI_DEFAULT 0x04U
FWI default value. More...
#define | PHPAL_I14443P4A_SAMAV2_X_FSCI_DEFAULT 0x02U
FSCI default value. More...
#define | PHPAL_I14443P4A_SW_HALT_CMD 0x50U
HltA Command code. More...
#define | PHPAL_I14443P4A_SW_RATS 0xE0U
Rats Command code. More...
#define | PHPAL_I14443P4A_SW_PPSS 0xD0U
PPS Command code. More...
#define | PHPAL_I14443P4A_SW_PPS0 0x11U
PPS0 code. More...
#define | PHPAL_I14443P4A_SW_S_BLOCK 0xC0U
ISO 14443-4 S-Block. More...
#define | PHPAL_I14443P4A_SW_S_BLOCK_RFU_BITS 0x02U
ISO 14443-4 S-Block RFU bits. More...
#define | PHPAL_I14443P4A_SW_PCB_CID_FOLLOWING 0x08U
Bit within PCB which signals presence of CID byte . More...
#define | PHPAL_I14443P4A_SW_PCB_DESELECT 0x00U
Bits within PCB which signal a DESELECT command. More...
#define | PHPAL_I14443P4A_SW_FWT_ACTIVATION_US 5286
Activation FTW in microseconds. More...
#define | PHPAL_I14443P4A_SW_ATS_T0 1
Position of T0 within ATS. More...
#define | PHPAL_I14443P4A_SW_ATS_TA1_PRESENT 0x10U
Bit which signals TA(1) presence. More...
#define | PHPAL_I14443P4A_SW_ATS_TB1_PRESENT 0x20U
Bit which signals TB(1) presence. More...
#define | PHPAL_I14443P4A_SW_ATS_TC1_PRESENT 0x40U
Bit which signals TC(1) presence. More...
#define | PHPAL_I14443P4A_SW_ATS_TC1_NAD_SUPPORT 0x01U
Bit within TC(1) which signals NAD support. More...
#define | PHPAL_I14443P4A_SW_ATS_TC1_CID_SUPPORT 0x02U
Bit within TC(1) which signals CID support. More...
#define | PHPAL_I14443P4A_SW_FWI_DEFAULT 0x04U
FWI default value. More...
#define | PHPAL_I14443P4A_SW_SFGI_DEFAULT 0x00U
SFGI default value. More...
#define | PHPAL_I14443P4A_SW_FSCI_DEFAULT 0x02U
FSCI default value. More...
#define | PHPAL_I14443P4A_SW_FWT_MIN_US 303
FTW min in microseconds. More...
#define | PHPAL_I14443P4A_SW_HALT_TIME_US 1100U
Wait time for halt command in microseconds. More...
#define | PHPAL_I14443P4A_SW_EXT_TIME_US 60
Time extension in microseconds for all commands. More...
#define | PHPAL_I14443P4A_FRAMESIZE_MAX 12
The maximum allowed FSDI/FSCI value as per ISO. More...
#define | PHPAL_I14443P4A_EMVCO_FRAMESIZE_MAX 8
The maximum allowed FSDI/FSCI value as per Emvco and NfcForum. More...
#define | PHPAL_I14443P4A_SW_DELTA_TPCD_US_MAX 16400U
Delta TPCD max in microseconds.
#define | PHPAL_I14443P4A_SW_DELTA_TPCD_US_MIN 0U
Delta TPCD minimum in microseconds.
#define | PHPAL_I14443P4A_SW_DELTA_FWT_US 3625U
Delta frame wait time (FWT) in microseconds = 49152/fc.
#define | PHPAL_I14443P4A_SW_DELTA_TPCD_US 1000U
Delta TPCD used for exchange (in microseconds)
#define | PHPAL_I18092MPI_SW_IS_INVALID_BLOCK_STATUS(bStatus)
Macro which checks for invalid block status. More...
#define | PHPAL_I18092MPI_SW_IS_TIMEOUT(bPfb)
Macro which checks if given PDU is timeout PDU. More...
#define | PHPAL_I18092MPI_SW_IS_ATTENTION(bPfb)
Macro which checks if given PDU is ATN PDU. More...
#define | PHPAL_I18092MPI_SW_IS_ACK(bPfb)
Macro which checks if given PDU is ACK PDU. More...
#define | PHPAL_I18092MPI_SW_IS_NACK(bPfb)
Macro which checks if given PDU is NACK PDU. More...
#define | PHPAL_I18092MPI_SW_IS_CHAINING(bPfb)
Macro which checks if given I-PDU is chaining. More...
#define | PHPAL_I18092MPI_SW_IS_NOT_CHAINING(bPfb)
Macro which checks if given I-PDU is not chaining. More...
#define | PHPAL_I18092MPI_SW_IS_INFORMATION_PDU(bPfb)
Macro which checks if given PDU is an I-PDU. More...
#define | PHPAL_I18092MPI_SW_INCREMENT_PNI(bPni) (((bPni) == 3) ? 0 : ((bPni) + 1))
Macro used to increment PNI. More...
#define | PHPAL_I18092MPI_SW_START_BYTE 0xF0U
Start Byte to be added to the protocol header in case underlying protocol is ISO14443. More...
#define | PHPAL_I18092MPI_SW_CMD_REQUEST 0xD4U
Request command code. More...
#define | PHPAL_I18092MPI_SW_CMD_RESPONSE 0xD5U
Response command code. More...
#define | PHPAL_I18092MPI_SW_CMD_ATR_REQ 0x00U
Attribute request command code. More...
#define | PHPAL_I18092MPI_SW_ATR_PPI_LRI_BIT 0x04U
Bit position of LRi field within PPi byte for attribute request command. More...
#define | PHPAL_I18092MPI_SW_CMD_ATR_RES 0x01U
Attribute response command code. More...
#define | PHPAL_I18092MPI_SW_CMD_PSL_REQ 0x04U
Parameter select request command code. More...
#define | PHPAL_I18092MPI_SW_CMD_PSL_RES 0x05U
Parameter select response command code. More...
#define | PHPAL_I18092MPI_SW_CMD_DEP_REQ 0x06U
Data exchange protocol request command code. More...
#define | PHPAL_I18092MPI_SW_CMD_DEP_RES 0x07U
Data exchange protocol response command code. More...
#define | PHPAL_I18092MPI_SW_CMD_DSL_REQ 0x08U
Deselect request command code. More...
#define | PHPAL_I18092MPI_SW_CMD_DSL_RES 0x09U
Deselect response command code. More...
#define | PHPAL_I18092MPI_SW_CMD_RLS_REQ 0x0AU
Release request command code. More...
#define | PHPAL_I18092MPI_SW_CMD_RLS_RES 0x0BU
Release response command code. More...
#define | PHPAL_I18092MPI_SW_CMD_WUP_REQ 0x02U
Wakeup request command code. More...
#define | PHPAL_I18092MPI_SW_CMD_WUP_RES 0x03U
Wakeup response command code. More...
#define | PHPAL_I18092MPI_SW_ATR_RES_NFCID3_POS 0x02U
Position of NFCID3 within ATR_RES. More...
#define | PHPAL_I18092MPI_SW_ATR_RES_DID_POS 12U
Position of DID within ATR_RES. More...
#define | PHPAL_I18092MPI_SW_ATR_RES_BST_POS 13U
Position of BS(T) within ATR_RES. More...
#define | PHPAL_I18092MPI_SW_ATR_RES_BRT_POS 14U
Position of BR(T) within ATR_RES. More...
#define | PHPAL_I18092MPI_SW_ATR_RES_TO_POS 15U
Position of TO within ATR_RES. More...
#define | PHPAL_I18092MPI_SW_ATR_RES_PPT_POS 16U
Position of PP(T) within ATR_RES. More...
#define | PHPAL_I18092MPI_SW_ATR_RES_PPT_GT_AVAILABLE 0x02U
Gt_available bit within PP(T) byte of ATR_RES. More...
#define | PHPAL_I18092MPI_SW_ATR_RES_PPT_NAD_USED 0x01U
NAD_used bit within PP(T) byte of ATR_RES. More...
#define | PHPAL_I18092MPI_SW_PFB_INFORMATION_PDU_MASK 0x00U
Bit mask within PFB identifying an information PDU. More...
#define | PHPAL_I18092MPI_SW_PFB_ACK_PDU_MASK 0x40U
Bit mask within PFB identifying an ACK/NACK PDU. More...
#define | PHPAL_I18092MPI_SW_PFB_SUPERVISORY_PDU_MASK 0x80U
Bit mask within PFB identifying a supervisory PDU. More...
#define | PHPAL_I18092MPI_SW_PFB_PDU_TYPE_MASK 0xE0U
Bit mask within PFB to get type of PDU. More...
#define | PHPAL_I18092MPI_SW_PFB_NAD_MASK 0x08U
Bit mask within PFB for checking NAD enabler. More...
#define | PHPAL_I18092MPI_SW_PFB_DID_MASK 0x04U
Bit mask within PFB for checking DID enabler. More...
#define | PHPAL_I18092MPI_SW_PFB_PNI_MASK 0x03U
Bit mask within PFB for getting PNI. More...
#define | PHPAL_I18092MPI_SW_PFB_OPTION_MASK 0x10U
Bit mask within PDU for getting option field (NACK/ACK or ATTENTION/RTOS or MI). More...
#define | PHPAL_I18092MPI_SW_DELTA_T_INITIATOR_MS 100U
Activation response waiting time in milliseconds, NFCForum-TS-DigitalProtocol-1.0 section A.10. More...
#define | PHPAL_I18092MPI_SW_DELTA_RWT_US 2U
Time extension in microseconds for all commands, NFCForum-TS-DigitalProtocol-1.0 section A.10. More...
#define | PHPAL_I18092MPI_SW_RWT_ACTIVATION_MS 1239U
Activation response waiting time in milliseconds, NFCForum-TS-DigitalProtocol-1.0 section A.10. More...
#define | PHPAL_I18092MPI_SW_RWT_MIN_US 302U
Minimum response waiting time, ISO/IEC 18092:2004(E) section 12.5.1.2.1. More...
#define | PHPAL_I18092MPI_SW_RWT_MAX_MS 4949UL
Maximum response waiting time, ISO/IEC 18092:2013(E) section 12.5.1.2.1.
#define | PHPAL_I18092MPI_SW_TIRFG_MIN_MS 5U
Minimum initial RF guard time before retry of ATR_REQ. More...
#define | PHPAL_I18092MPI_SW_MIN_FRAMESIZE 3U
Minimum frame size, NFCForum-TS-DigitalProtocol-1.0. More...
#define | PHPAL_I18092MPI_SW_MAX_FRAMESIZE 255U
Maximum frame size, NFCForum-TS-DigitalProtocol-1.0. More...
#define | PHPAL_I18092MPI_SW_RETRIES_DEFAULT 2U
Default (=minimum) Maximum Retry count, NFCForum-TS-DigitalProtocol-1.0 section A.10. More...
#define | PHPAL_I18092MPI_SW_MIN_ACTIVATION_FRAME_LENGTH 17U
Frame length must be min. More...
#define | PHPAL_I18092MPI_SW_MAX_ACTIVATION_FRAME_LENGTH 64U
Frame length is limited to 64 bytes during activation. More...
#define | PHPAL_I18092MPI_SW_STATE_INFORMATION_PDU_TX 0x00U
State information PDU to be transmitted. More...
#define | PHPAL_I18092MPI_SW_STATE_ACK_PDU_TX 0x01U
State ACK PDU to be transmitted. More...
#define | PHPAL_I18092MPI_SW_STATE_INFORMATION_PDU_RX 0x02U
State information PDU to be received. More...
#define | PHPAL_I18092MPI_SW_STATE_FINISHED 0x03U
Finished state. More...
#define | PHPAL_I18092MPI_SW_STATE_MASK 0x0FU
State mask. More...
#define | PHPAL_I18092MPI_SW_STATE_RETRANSMIT_BIT 0x10U
Retransmission of information PDU. More...
#define | PHPAL_I18092MPI_SW_STATE_CHAINING_BIT 0x20U
Information PDU is chaining. More...
#define | PHPAL_I18092MPI_SW_STATE_CHAINING_FIRST_BIT 0x40U
Information PDU is first block in chain. More...
#define | PHPAL_I18092MPI_SW_STATE_CHAINING_LAST_BIT 0x80U
Information PDU is last block in chain. More...
#define | PHPAL_I18092MPI_SW_MAX_HEADER_LENGTH 0x07U
Max length of the Header.
#define | PHPAL_I18092MPI_SW_RTOX_PAYLOAD_LENGTH 0x01U
RTOX Data length.
#define | PHPAL_I18092MPI_SW_RTOX_MIN_VALUE 0x01U
RTOX Minimum Valid value.
#define | PHPAL_I18092MPI_SW_RTOX_MAX_VALUE 0x3BU
RTOX Maximum Valid value.
#define | PHPAL_MIFARE_RESP_ACK 0x0A
MIFARE ACK response code.
#define | PHPAL_MIFARE_RESP_NAK0 0x00
MIFARE NAK0 response code.
#define | PHPAL_MIFARE_RESP_NAK1 0x01
MIFARE NAK1 response code.
#define | PHPAL_MIFARE_RESP_NAK4 0x04
MIFARE NAK4 response code.
#define | PHPAL_MIFARE_RESP_NAK5 0x05
MIFARE NAK5 response code.
#define | PHPAL_MIFARE_RESP_NAK6 0x06
MIFARE NAK6 response code.
#define | PHPAL_MIFARE_RESP_NAK7 0x07
MIFARE NAK7 response code.
#define | PHPAL_MIFARE_RESP_NAK9 0x09
MIFARE NAK9 response code.

Functions

phStatus_t | phalI18000p3m3_Sw_ParseError (phalI18000p3m3_Sw_DataParams_t *pDataParams, uint8_t *pRxData, uint16_t wRxDataLength, uint8_t bRxLastBits)
Parse received error frame. More...
phStatus_t | phalMfc_Int_Transfer (void *pPalMifareDataParams, uint8_t bBlockNo)
Perform MIFARE(R) Transfer command with MIFARE Picc. More...
phStatus_t | phalMfc_Int_Value (void *pPalMifareDataParams, uint8_t bCmdCode, uint8_t bBlockNo, uint8_t *pValue)
Perform a MIFARE(R) Value operation with MIFARE Picc. More...
phStatus_t | phalMfc_Int_CreateValueBlock (uint8_t *pValue, uint8_t bAddrData, uint8_t *pBlock)
Create a Value block for a given value/addr pair. More...
phStatus_t | phalMfc_Int_CheckValueBlockFormat (uint8_t *pBlock)
Check value block format of a given block. More...
phStatus_t | phalMfc_Int_ResolveReturnCode (uint8_t bRetCode)
Resolve MIFARE(R) error code from response. More...
phStatus_t | phalMfc_SamAV2_X_ConvertNak (phStatus_t status)
Convert HAL Nak codes into palMifare NAK codes. More...
phStatus_t | phalMfp_Int_ComputeErrorResponse (uint16_t wNumBytesReceived, uint8_t bStatus, uint8_t bLayer4Comm)
Evaluate if the received response is erroneus. More...
phStatus_t | phalMfp_Int_WritePerso (void *pPalMifareDataParams, uint8_t bLayer4Comm, uint16_t wBlockNr, uint8_t *pValue)
Perform a MIFARE Plus Write Perso command. More...
phStatus_t | phalMfp_Int_CommitPerso (void *pPalMifareDataParams, uint8_t bLayer4Comm)
Perform a MIFARE Plus Commit Perso command. More...
phStatus_t | phalMfp_Int_ResetAuth (void *pPalMifareDataParams)
Perform a MIFARE Plus Reset Authenticate command. More...
phStatus_t | phalMfp_Int_PrepareProximityCheck (void *pPalMifareDataParams)
Perform a Prepare Proximity Check command. More...
phStatus_t | phalMfp_Int_ProximityCheck (void *pPalMifareDataParams, uint8_t bNumSteps, uint8_t *pRndC, uint8_t *pRndRC)
Perform a Proximity Check command. More...
phStatus_t | phalMfp_Int_MultiBlockRead (void *pPalMifareDataParams, uint8_t bBlockNr, uint8_t bNumBlocks, uint8_t *pBlocks)
Perform a Multi Block Read command. More...
phStatus_t | phalMfp_Int_MultiBlockWrite (void *pPalMifareDataParams, uint8_t bBlockNr, uint8_t bNumBlocks, uint8_t *pBlocks)
Perform a Multi Block Write command. More...
phStatus_t | phalMfp_Int_CreateValueBlock (uint8_t *pValue, uint8_t bAddrData, uint8_t *pBlock)
Create a Value block for a given value/addr pair. More...
phStatus_t | phalMfp_Int_CheckValueBlockFormat (uint8_t *pBlock)
Check value block format of a given block. More...
phStatus_t | phalMfp_SamAV2_AuthenticateGeneral (phalMfp_SamAV2_DataParams_t *pDataParams, uint8_t bLayer4Comm, uint8_t bFirstAuth, uint16_t wBlockNr, uint16_t wKeyNumber, uint16_t wKeyVersion, uint8_t bLenDivInput, uint8_t *pDivInput, uint8_t bUseKdfSl2, uint8_t bLenPcdCap2, uint8_t *pPcdCap2In, uint8_t *pPcdCap2Out, uint8_t *pPdCap2)
Perform a complete MIFARE Plus Authentication for either Security Level. More...
phStatus_t | phalMfp_SamAV2_WriteExt (phalMfp_SamAV2_DataParams_t *pDataParams, uint8_t bCmdCode, uint16_t wSrcBnr, uint16_t wDstBnr, uint8_t *pData, uint8_t bDataLength)
Perform a Write command in all it's flavours. More...
phStatus_t | phalMfp_SamAV2_X_WriteExt (phalMfp_SamAV2_X_DataParams_t *pDataParams, uint8_t bCmdCode, uint16_t wSrcBnr, uint16_t wDstBnr, uint8_t *pData, uint8_t bDataLength)
Perform a Write command in all it's flavours. More...
phStatus_t | phalMfp_SamAV2_X_ConvertNak (phStatus_t status)
Convert HAL Nak codes into palMifare NAK codes. More...
phStatus_t | phalMfp_Sw_AuthenticateGeneral (phalMfp_Sw_DataParams_t *pDataParams, uint8_t bLayer4Comm, uint8_t bFirstAuth, uint16_t wBlockNr, uint16_t wKeyNumber, uint16_t wKeyVersion, uint8_t bLenDivInput, uint8_t *pDivInput, uint8_t bUseKdfSl2, uint8_t bLenPcdCap2, uint8_t *pPcdCap2In, uint8_t *pPcdCap2Out, uint8_t *pPdCap2)
Perform a complete MIFARE Plus Authentication for either Security Level. More...
phStatus_t | phalMfp_Sw_WriteExt (phalMfp_Sw_DataParams_t *pDataParams, uint8_t bCmdCode, uint16_t wSrcBnr, uint16_t wDstBnr, uint8_t *pData, uint16_t wDataLength, uint8_t bEncrypted)
Perform a Write command in all it's flavours. More...
phStatus_t | phalMfp_Sw_Int_ComputeIv (uint8_t bIsResponse, uint8_t *pTi, uint16_t wRCtr, uint16_t wWCtr, uint8_t *pIv)
Calculate the Init-Vector for encryption from input data. More...
phStatus_t | phalMfp_Sw_Int_KdfSl2 (phalMfp_Sw_DataParams_t *pDataParams, uint8_t *pRndA, uint8_t *pRndB)
Perform a SL2 Key Derivation Function. More...
phStatus_t | phalMfp_Sw_Int_KdfSl3 (phalMfp_Sw_DataParams_t *pDataParams, uint8_t *pRndA, uint8_t *pRndB)
Perform a SL3 Key Derivation Function. More...
void | phalMfp_Sw_Int_TruncateMac (uint8_t *pMac, uint8_t *pTruncatedMac)
Perform MIFARE Plus specific MAC truncation. More...
phStatus_t | phbalReg_SerialWin_SetMode (void *phPort, uint32_t dwBitRate, uint8_t bStopBits)
Change host bit rate. More...
phStatus_t | phbalReg_SerialWin_SetTimeout (void *phPort, uint32_t dwTimeout)
Change reception timeout. More...
phStatus_t | phKeyStore_Sw_GetKeyValuePtrPos (phKeyStore_Sw_DataParams_t *pDataParams, uint16_t wKeyNumber, uint16_t wPos, phKeyStore_Sw_KeyVersionPair_t **pKeyVersion)
Get the pointer to a KeyValue Pair given a Key number and a Key position. More...
phStatus_t | phKeyStore_Sw_GetKeyValuePtrVersion (phKeyStore_Sw_DataParams_t *pDataParams, uint16_t wKeyNumber, uint16_t wKeyVersion, phKeyStore_Sw_KeyVersionPair_t **pKeyVersion)
Get the pointer to a KeyValue Pair given a Key number and a KeyVersion. More...
phStatus_t | phKeyStore_Sw_CheckUpdateKUC (phKeyStore_Sw_DataParams_t *pDataParams, uint16_t wKeyUsageCtrNumber)
Check value of a counter and increment it accordingly. More...
phLog_RegisterEntry_t * | phLog_GetRegisteredEntry (void *pDataParams)
Retreive phLog_RegisterEntry_t corresponding to given DataParams pointer. More...
void | phLog_AddParam_Raw (void *pDataParams, uint8_t bLogType, const char *pName, const void *pParam, uint16_t wLength, uint8_t bDataType)
Add a new log entry containing raw data. More...
phStatus_t | phpalI14443p3a_Sw_RequestAEx (phpalI14443p3a_Sw_DataParams_t *pDataParams, uint8_t bReqCode, uint8_t *pAtqa)
Perform a ISO14443-3A Request or Wakeup command. More...
phStatus_t | phpalI14443p3b_Sw_RequestBEx (phpalI14443p3b_Sw_DataParams_t *pDataParams, uint8_t bIsWakeUp, uint8_t bNumSlots, uint8_t bAfi, uint8_t bExtAtqb, uint8_t *pAtqb, uint8_t *pAtqbLen)
Perform a ISO14443-3B Request/Wakeup command. More...
phStatus_t | phpalI14443p3b_Sw_CheckATQBEx (phpalI14443p3b_Sw_DataParams_t *pDataParams, uint8_t *pResp, uint16_t wRespLength, uint8_t *pAtqb, uint8_t *pAtqbLen)
Check the received answer to Request/Wakeup/SlotMarker command. More...
phStatus_t | phpalI14443p3b_Sw_SetReaderBaudRateEx (phpalI14443p3b_Sw_DataParams_t *pDataParams)
Set the baud rate on the reader device. More...
phStatus_t | phpalI14443p3b_Sw_DecideBaudRateEx (uint8_t bBitRateCapability, uint8_t *pbDri, uint8_t *pbDsi)
Decide which baud rate to use depending on the VICCs capabilities and the callers request. More...
phStatus_t | phpalI14443p4_Sw_BuildIBlock (uint8_t bCidEnabled, uint8_t bCid, uint8_t bNadEnabled, uint8_t bNad, uint8_t bPcbBlockNum, uint8_t bChaining, uint8_t *pTxBuffer, uint16_t *pTxLength)
Build I-Block frame header. More...
phStatus_t | phpalI14443p4_Sw_BuildRBlock (uint8_t bCidEnabled, uint8_t bCid, uint8_t bPcbBlockNum, uint8_t bIsAck, uint8_t *pTxBuffer, uint16_t *pTxLength)
Build R(ACK) / R(NAK) frames. More...
phStatus_t | phpalI14443p4_Sw_BuildSBlock (uint8_t bCidEnabled, uint8_t bCid, uint8_t bIsWtx, uint8_t bWtxm, uint8_t *pTxBuffer, uint16_t *pTxLength)
Build S-Block frames. More...
phStatus_t | phpalI14443p4_Sw_IsValidIBlock (uint8_t bCheckCid, uint8_t bCid, uint8_t bCheckNad, uint8_t bNad, uint8_t *pRxBuffer, uint16_t wRxLength)
Check if received I-Block is valid. More...
phStatus_t | phpalI14443p4_Sw_IsValidRBlock (uint8_t bCheckCid, uint8_t bCid, uint8_t *pRxBuffer, uint16_t wRxLength)
Check if received R-Block is valid. More...
phStatus_t | phpalI14443p4_Sw_IsValidSBlock (uint8_t bCheckCid, uint8_t bCid, uint8_t *pRxBuffer, uint16_t wRxLength)
Check if received S-Block is valid. More...
phStatus_t | phpalI14443p4_Sw_IsoHandling (phpalI14443p4_Sw_DataParams_t *pDataParams, uint16_t wOption, uint8_t bRetryCount, uint8_t *pTxBuffer, uint16_t wTxLength, uint8_t **ppRxBuffer, uint16_t *pRxLength)
Perform actual exchanging and take care about error handling etc. More...
phStatus_t | phpalI18092mPI_Sw_WriteFrameHeader (phpalI18092mPI_Sw_DataParams_t *pDataParams, uint16_t wOption, uint8_t bCommandCode, uint8_t bDataLength)
Write header of transport protocol frame to internal buffer of HAL. More...
phStatus_t | phpalI18092mPI_Sw_WritePduHeader (phpalI18092mPI_Sw_DataParams_t *pDataParams, uint8_t bPduMask, uint8_t bOption, uint8_t bDataLength)
Write PDU header to internal buffer of HAL. More...
phStatus_t | phpalI18092mPI_Sw_UpdatePduHeader (phpalI18092mPI_Sw_DataParams_t *pDataParams, uint8_t bDataLength)
Update the length field within protocol frame header. More...
phStatus_t | phpalI18092mPI_Sw_GetPduHeaderLength (phpalI18092mPI_Sw_DataParams_t *pDataParams, uint8_t *pProtLength)
Retrieve the length of protocol frame header. More...
phStatus_t | phpalI18092mPI_Sw_ValidateAndNormalizeResponseFrame (phpalI18092mPI_Sw_DataParams_t *pDataParams, uint8_t *pFrame, uint16_t wFrameLength, uint8_t bExpectedResponseCode, uint8_t **ppValidatedFrame, uint16_t *pValidatedFrameLength, uint8_t **ppPayload, uint16_t *pPayloadLength)
Basic check if the received response is a valid frame. More...
phStatus_t | phpalI18092mPI_Sw_ConvertDatarate (uint16_t wHalDatarate, uint8_t *pI18092Datarate)
Convert data rate read out from HAL to ISO18092 compatible data rate value (PHPAL_I18092MPI_DATARATE_*). More...
phStatus_t | phpalI18092mPI_Sw_TransceivePdu (phpalI18092mPI_Sw_DataParams_t *pDataParams, uint16_t wOption, uint8_t *pTxBuffer, uint16_t wTxLength, uint8_t **ppRawResponse, uint16_t *pRawResponseLength, uint8_t **ppNormalizedResponse, uint16_t *pNormalizedResponseLength, uint8_t **ppPayload, uint16_t *pPayloadLength)
Transmit PDU to target and receive response. More...
phStatus_t | phpalI18092mPI_Sw_ValidateReceivedPdu (phpalI18092mPI_Sw_DataParams_t *pDataParams, phStatus_t statusRx, uint8_t **pRawResponse, uint16_t *wRawResponseLength, uint8_t **ppNormalizedResponse, uint16_t *pNormalizedResponseLength, uint8_t **ppPayload, uint16_t *pPayloadLength)
Validate the status. More...
phStatus_t | phpalMifare_SamAV2_X_ConvertNak (phStatus_t status)
Convert HAL Nak codes into palMifare NAK codes. More...
phStatus_t | phpalSli15693_Sw_InventoryEx (phpalSli15693_Sw_DataParams_t *pDataParams, uint8_t bOption, uint8_t bFlags, uint8_t bAfi, uint8_t *pMask, uint8_t bMaskBitLength, uint8_t bBlockNo, uint16_t wNoOfBlocks, uint8_t *pUid, uint8_t *pUidLength, uint8_t *pData, uint16_t *pLength)
Perform all kinds of Inventory commands. More...
phStatus_t | phpalSli15693_Sw_InventoryExt (phpalSli15693_Sw_DataParams_t *pDataParams, uint8_t bOption, uint8_t bFlags, uint8_t bAfi, uint8_t bExtended, uint8_t bExtendedOptions, uint8_t *pMask, uint8_t bMaskBitLength, uint8_t bBlockNo, uint16_t wNoOfBlocks, uint8_t *pUid, uint8_t *pUidLength, uint8_t *pData, uint16_t *pLength)
Perform Inventory Read Extended mode. More...

Felica Command Codes

#define | PHAL_FELICA_CMD_REQUEST_RESPONSE 0x04U
Get the PICCs current mode. More...
#define | PHAL_FELICA_CMD_REQUEST_SERVICE 0x02U
Get area key version and service key version. More...
#define | PHAL_FELICA_CMD_READ 0x06U
Read the record value of the specified service. More...
#define | PHAL_FELICA_CMD_WRITE 0x08U
Write records of the specified service. More...
#define | PHAL_FELICA_RSP_REQUEST_RESPONSE 0x05U
Response code to the Request Response command. More...
#define | PHAL_FELICA_RSP_REQUEST_SERVICE 0x03U
Response code to the Request Service command. More...
#define | PHAL_FELICA_RSP_READ 0x07U
Response code to the Read command. More...
#define | PHAL_FELICA_RSP_WRITE 0x09U
Response code to the Write command. More...

Command Codes

#define | PHAL_I18000P3M3_CMD_REQ_RN 0xC1
ReqRn command code. More...
#define | PHAL_I18000P3M3_CMD_READ 0xC2
Read command code. More...
#define | PHAL_I18000P3M3_CMD_WRITE 0xC3
Write command code. More...
#define | PHAL_I18000P3M3_CMD_KILL 0xC4
Kill command code. More...
#define | PHAL_I18000P3M3_CMD_LOCK 0xC5
Lock command code. More...
#define | PHAL_I18000P3M3_CMD_ACCESS 0xC6
Access command code. More...
#define | PHAL_I18000P3M3_CMD_BLOCKWRITE 0xC7
BlockWrite command code. More...
#define | PHAL_I18000P3M3_CMD_BLOCKERASE 0xC8
BlockErase command code. More...
#define | PHAL_I18000P3M3_CMD_BLOCKPERMALOCK 0xC9
BlockPermaLock command code. More...

I180000 Error Codes

#define | PHAL_I18000P3M3_ERRCODE_OTHER 0x00U
Other Error. More...
#define | PHAL_I18000P3M3_ERRCODE_MEMORY_OVERRUN 0x03U
Memory overrun. More...
#define | PHAL_I18000P3M3_ERRCODE_MEMORY_LOCKED 0x04U
Memory locked. More...
#define | PHAL_I18000P3M3_ERRCODE_INSUFFICIENT_POWER 0x0BU
Insufficient power. More...
#define | PHAL_I18000P3M3_ERRCODE_NON_SPECIFIC 0x0FU
Non-specific error. More...

MIFARE Desfire Native Commands

#define | PHAL_MFDF_CMD_AUTHENTICATE 0x0A
MF DF Authenticate command. More...
#define | PHAL_MFDF_CMD_AUTHENTICATE_ISO 0x1A
MF DF Authenticate ISO command. More...
#define | PHAL_MFDF_CMD_AUTHENTICATE_AES 0xAA
MF DF Authenticate AES command. More...
#define | PHAL_MFDF_CMD_CHANGE_KEY_SETTINGS 0x54
MF DF Change key settings cmd. More...
#define | PHAL_MFDF_CMD_GET_KEY_SETTINGS 0x45
MF DF Get Key Settings Cmd. More...
#define | PHAL_MFDF_CMD_CHANGE_KEY 0xC4
MF DF Change key cmd. More...
#define | PHAL_MFDF_CMD_GET_KEY_VERSION 0x64
MF DF Get Key Version. More...
#define | PHAL_MFDF_CMD_CREATE_APPLN 0xCA
MF DF Create Application cmd. More...
#define | PHAL_MFDF_CMD_DELETE_APPLN 0xDA
MF DF Delete Application cmd. More...
#define | PHAL_MFDF_CMD_GET_APPLN_IDS 0x6A
MF DF Get Application Ids cmd. More...
#define | PHAL_MFDF_CMD_GET_DF_NAMES 0x6D
MF DF Get Dedicated Fine names cmd. More...
#define | PHAL_MFDF_CMD_SELECT_APPLN 0x5A
MF DF Select Application Cmd. More...
#define | PHAL_MFDF_CMD_FORMAT_PICC 0xFC
MF DF Format PICC Cmd. More...
#define | PHAL_MFDF_CMD_GET_VERSION 0x60
MF DF Get Version cmd. More...
#define | PHAL_MFDF_CMD_FREE_MEM 0x6E
MF DF Free Memory cmd. More...
#define | PHAL_MFDF_CMD_SET_CONFIG 0x5C
MF DF Set Configuration Cmd. More...
#define | PHAL_MFDF_CMD_GET_CARD_UID 0x51
MF DF Get Card UID cmd. More...
#define | PHAL_MFDF_CMD_GET_FILE_IDS 0x6F
MF DF Get File IDs cmd. More...
#define | PHAL_MFDF_CMD_GET_ISO_FILE_IDS 0x61
MF DF Get ISO File IDs cmd. More...
#define | PHAL_MFDF_CMD_GET_FILE_SETTINGS 0xF5
MF DF Get File settings cmd. More...
#define | PHAL_MFDF_CMD_CHANGE_FILE_SETTINGS 0x5F
MF DF Change file settings cmd. More...
#define | PHAL_MFDF_CMD_CREATE_STD_DATAFILE 0xCD
MF DF Create Standard data file cmd. More...
#define | PHAL_MFDF_CMD_CREATE_BKUP_DATAFILE 0xCB
MF DF Create Backup data file cmd. More...
#define | PHAL_MFDF_CMD_CREATE_VALUE_FILE 0xCC
MF DF Create Value File cmd. More...
#define | PHAL_MFDF_CMD_CREATE_LINEAR_RECFILE 0xC1
MF DF Create Linear record file cmd. More...
#define | PHAL_MFDF_CMD_CREATE_CYCLIC_RECFILE 0xC0
MF DF Create Cyclic record file cmd. More...
#define | PHAL_MFDF_CMD_DELETE_FILE 0xDF
MF DF Delete File cmd. More...
#define | PHAL_MFDF_CMD_READ_DATA 0xBD
MF DF Read Data cmd. More...
#define | PHAL_MFDF_CMD_WRITE_DATA 0x3D
MF DF Write data cmd. More...
#define | PHAL_MFDF_CMD_GET_VALUE 0x6C
MF DF Get Value cmd. More...
#define | PHAL_MFDF_CMD_CREDIT 0x0C
MF DF Credit cmd. More...
#define | PHAL_MFDF_CMD_DEBIT 0xDC
MF DF Debit cmd. More...
#define | PHAL_MFDF_CMD_LIMITED_CREDIT 0x1C
MF DF Limited Credit cmd. More...
#define | PHAL_MFDF_CMD_WRITE_RECORD 0x3B
MF DF Write Record cmd. More...
#define | PHAL_MFDF_CMD_READ_RECORDS 0xBB
MF DF Read Records cmd. More...
#define | PHAL_MFDF_CMD_CLEAR_RECORDS_FILE 0xEB
MF DF Clear records file cmd. More...
#define | PHAL_MFDF_CMD_COMMIT_TXN 0xC7
MF DF Commit transaction cmd. More...
#define | PHAL_MFDF_CMD_ABORT_TXN 0xA7
MF DF Abort transaction cmd. More...

MIFARE Desfire Response Codes

#define | PHAL_MFDF_RESP_OPERATION_OK 0x00U
MF DF Response - Successful operation. More...
#define | PHAL_MFDF_RESP_NO_CHANGES 0x0CU
MF DF Response - No changes done to backup files. More...
#define | PHAL_MFDF_RESP_ERR_OUT_OF_EEPROM_ERROR 0x0EU
MF DF Response - Insufficient NV-Memory. More...
#define | PHAL_MFDF_RESP_ILLEGAL_COMMAND_CODE 0x1CU
MF DF command code not supported. More...
#define | PHAL_MFDF_RESP_ERR_INTEGRITY_ERROR 0x1EU
MF DF CRC or MAC does not match data padding bytes not valid. More...
#define | PHAL_MFDF_RESP_NO_SUCH_KEY 0x40U
MF DF Invalid key number specified. More...
#define | PHAL_MFDF_RESP_ERR_LENGTH_ERROR 0x7EU
MF DF Length of command string invalid. More...
#define | PHAL_MFDF_RESP_PERMISSION_DENIED 0x9DU
MF DF Current configuration/status does not allow the requested command. More...
#define | PHAL_MFDF_RESP_ERR_PARAMETER_ERROR 0x9EU
MF DF Value of params invalid. More...
#define | PHAL_MFDF_RESP_APPLICATION_NOT_FOUND 0xA0U
MF DF Requested AID not found on PICC. More...
#define | PHAL_MFDF_RESP_ERR_APPL_INTEGRITY_ERROR 0xA1U
MF DF Unrecoverable error within application, appln will be disabled. More...
#define | PHAL_MFDF_RESP_ERR_AUTHENTICATION_ERROR 0xAEU
MF DF Current authentication status does not allow the requested cmd. More...
#define | PHAL_MFDF_RESP_ADDITIONAL_FRAME 0xAFU
MF DF Additional data frame is expected to be sent. More...
#define | PHAL_MFDF_RESP_ERR_BOUNDARY_ERROR 0xBEU
MF DF Attempt to read/write data from/to beyond the files/record's limits. More...
#define | PHAL_MFDF_RESP_ERR_PICC_INTEGRITY 0xC1U
MF DF Unrecoverable error within PICC. More...
#define | PHAL_MFDF_RESP_ERR_COMMAND_ABORTED 0xCAU
MF DF Previous cmd not fully completed. More...
#define | PHAL_MFDF_RESP_ERR_PIC_DISABLED 0xCDU
MF DF PICC was disabled by an unrecoverable error. More...
#define | PHAL_MFDF_RESP_ERR_COUNT 0xCEU
MF DF Num. More...
#define | PHAL_MFDF_RESP_ERR_DUPLICATE 0xDEU
MF DF File/Application with same number already exists. More...
#define | PHAL_MFDF_RESP_ERR_EEPROM 0xEEU
MF DF Could not complete NV-Write operation due to loss of power. More...
#define | PHAL_MFDF_RESP_ERR_FILE_NOT_FOUND 0xF0U
MF DF Specified file number does not exist. More...
#define | PHAL_MFDF_RESP_ERR_FILE_INTEGRITY 0xF1U
MF DF Unrecoverable error within file. More...

ISO 7816 Instructions

#define | PHAL_MFDF_CMD_ISO7816_SELECT_FILE 0xA4
ISO Select File. More...
#define | PHAL_MFDF_CMD_ISO7816_READ_RECORDS 0xB2
ISO Read records. More...
#define | PHAL_MFDF_CMD_ISO7816_READ_BINARY 0xB0
ISO Read Binary. More...
#define | PHAL_MFDF_CMD_ISO7816_UPDATE_BINARY 0xD6
ISO UPDATE Binary. More...
#define | PHAL_MFDF_CMD_ISO7816_APPEND_RECORD 0xE2
ISO Append record. More...
#define | PHAL_MFDF_CMD_ISO7816_UPDATE_RECORD 0xD2
ISO Update record. More...
#define | PHAL_MFDF_CMD_ISO7816_GET_CHALLENGE 0x84
ISO Get challenge. More...
#define | PHAL_MFDF_CMD_ISO7816_EXT_AUTHENTICATE 0x82
ISO Ext. More...
#define | PHAL_MFDF_CMD_ISO7816_INT_AUTHENTICATE 0x88
ISO Int. More...

MIFARE Desfire specific defines

#define | PHAL_MFDF_MAXWRAPPEDAPDU_SIZE 0x37u
Maximum size of wrapped APDU 55 bytes. More...
#define | PHAL_MFDF_MAXDFAPDU_SIZE 0x3Cu
Maximum size of DESFire APDU 60 bytes. More...
#define | PHAL_MFDF_DFAPPID_SIZE 0x03u
Size of MF DF application Id. More...
#define | PHAL_MFDF_DATA_BLOCK_SIZE 0x10u
Data block size need for internal purposes. More...
#define | PHAL_MFDF_MAX_FRAME_SIZE 0x40u
Max size in a ISO 14443-4 frame. More...

ISO 7816 DF return Codes

#define | PHAL_MFDF_ISO7816_SUCCESS 0x9000U
Correct execution. More...
#define | PHAL_MFDF_ISO7816_ERR_WRONG_LENGTH 0x6700U
Wrong length. More...
#define | PHAL_MFDF_ISO7816_ERR_WRONG_PARAMS 0x6A86U
Wrong parameters P1 and/or P2. More...
#define | PHAL_MFDF_ISO7816_ERR_WRONG_LC 0x6A87U
Lc inconsistent with P1/p2. More...
#define | PHAL_MFDF_ISO7816_ERR_WRONG_LE 0x6C00U
Wrong Le. More...
#define | PHAL_MFDF_ISO7816_ERR_NO_PRECISE_DIAGNOSTICS 0x6F00U
No precise diagnostics. More...
#define | PHAL_MFDF_ISO7816_ERR_EOF_REACHED 0x6282U
End of File reached. More...
#define | PHAL_MFDF_ISO7816_ERR_FILE_ACCESS 0x6982U
File access not allowed. More...
#define | PHAL_MFDF_ISO7816_ERR_FILE_EMPTY 0x6985U
File empty or access conditions not satisfied. More...
#define | PHAL_MFDF_ISO7816_ERR_FILE_NOT_FOUND 0x6A82U
Application / File not found. More...
#define | PHAL_MFDF_ISO7816_ERR_MEMORY_FAILURE 0x6581U
Memory failure (unsuccessful update). More...
#define | PHAL_MFDF_ISO7816_ERR_INCORRECT_PARAMS 0x6B00U
Wrong parameter p1 or p2. More...
#define | PHAL_MFDF_ISO7816_ERR_WRONG_CLA 0x6E00U
Wrong Class byte. More...
#define | PHAL_MFDF_ISO7816_ERR_UNSUPPORTED_INS 0x6D00U
Instruction not supported. More...

MIFARE Plus Commands in MIFARE Plus Mode

#define | PHAL_MFP_CMD_AUTH1_FIRST 0x70
MFP Authenticate command (part 1, first authentication). More...
#define | PHAL_MFP_CMD_AUTH1 0x76
MFP Authenticate command (part 1, non-first authentication). More...
#define | PHAL_MFP_CMD_AUTH2 0x72
MFP Authenticate command (part 2). More...
#define | PHAL_MFP_CMD_AUTH3 0x74
MFP Authenticate command (part 3). More...
#define | PHAL_MFP_CMD_RAUTH 0x78
MFP ResetAuth command. More...
#define | PHAL_MFP_CMD_READ_ENM 0x30
MFP Read Encrypted, No mac on response, Mac on command. More...
#define | PHAL_MFP_CMD_READ_EMM 0x31
MFP Read Encrypted, Mac on response, Mac on command. More...
#define | PHAL_MFP_CMD_READ_PNM 0x32
MFP Read Plain, No mac on response, Mac on command. More...
#define | PHAL_MFP_CMD_READ_PMM 0x33
MFP Read Plain, Mac on response, Mac on command. More...
#define | PHAL_MFP_CMD_READ_ENU 0x34
MFP Read Encrypted, No mac on response, Unmac'ed command. More...
#define | PHAL_MFP_CMD_READ_EMU 0x35
MFP Read Encrypted, Mac on response, Unmac'ed command. More...
#define | PHAL_MFP_CMD_READ_PNU 0x36
MFP Read Plain, No mac on response, Unmac'ed command. More...
#define | PHAL_MFP_CMD_READ_PMU 0x37
MFP Read Plain, Mac on response, Unmac'ed command. More...
#define | PHAL_MFP_CMD_WRITE_EN 0xA0
MFP Write Encrypted, No mac on response, (Mac on command). More...
#define | PHAL_MFP_CMD_WRITE_EM 0xA1
MFP Write Encrypted, Mac on response, (Mac on command). More...
#define | PHAL_MFP_CMD_WRITE_PN 0xA2
MFP Write Plain, No mac on response, (Mac on command). More...
#define | PHAL_MFP_CMD_WRITE_PM 0xA3
MFP Write Plain, Mac on response, (Mac on command). More...
#define | PHAL_MFP_CMD_WRITEPERSO 0xA8
MFP Write Perso. More...
#define | PHAL_MFP_CMD_COMMITPERSO 0xAA
MFP Commit Perso. More...
#define | PHAL_MFP_CMD_INCR 0xB0
MFP Increment command. More...
#define | PHAL_MFP_CMD_INCR_M 0xB1
MFP Increment command MACed. More...
#define | PHAL_MFP_CMD_DECR 0xB2
MFP Decrement command. More...
#define | PHAL_MFP_CMD_DECR_M 0xB3
MFP Decrement command MACed. More...
#define | PHAL_MFP_CMD_TRANS 0xB4
MFP Transfer command. More...
#define | PHAL_MFP_CMD_TRANS_M 0xB5
MFP Transfer command MACed. More...
#define | PHAL_MFP_CMD_INCRTR 0xB6
MFP Increment Transfer command. More...
#define | PHAL_MFP_CMD_INCRTR_M 0xB7
MFP Increment Transfer command MACed. More...
#define | PHAL_MFP_CMD_DECRTR 0xB8
MFP Decrement Transfer command. More...
#define | PHAL_MFP_CMD_DECRTR_M 0xB9
MFP Decrement Transfer command MACed. More...
#define | PHAL_MFP_CMD_REST 0xC2
MFP Restore command. More...
#define | PHAL_MFP_CMD_REST_M 0xC3
MFP Restore command MACed. More...
#define | PHAL_MFP_CMD_PPC 0xF0
MFP Prepare Proximity Check. More...
#define | PHAL_MFP_CMD_PC 0xF2
MFP Proximity Check command. More...
#define | PHAL_MFP_CMD_VPC 0xFD
MFP Verify Proximity Check command. More...

MIFARE Plus Commands in MIFARE Mode

#define | PHAL_MFP_CMD_MBREAD 0x38
MFP Multi Block Read. More...
#define | PHAL_MFP_CMD_MBWRITE 0xA8
MFP Multi Block Read. More...

MIFARE Plus Response Codes

#define | PHAL_MFP_RESP_NACK0 0x00U /*< MFP NACK 0 (in ISO14443-3 mode). */
#define | PHAL_MFP_RESP_NACK1 0x01U /*< MFP NACK 1 (in ISO14443-3 mode). */
#define | PHAL_MFP_RESP_NACK4 0x04U /*< MFP NACK 4 (in ISO14443-3 mode). */
#define | PHAL_MFP_RESP_NACK5 0x05U /*< MFP NACK 5 (in ISO14443-3 mode). */
#define | PHAL_MFP_RESP_ACK_ISO3 0x0AU /*< MFP ACK (in ISO14443-3 mode). */
#define | PHAL_MFP_RESP_ACK_ISO4 0x90U /*< MFP ACK (in ISO14443-4 mode). */
#define | PHAL_MFP_RESP_ERR_AUTH 0x06U /*< MFP Authentication Error. */
#define | PHAL_MFP_RESP_ERR_CMD_OVERFLOW 0x07U /*< MFP Command Overflow Error. */
#define | PHAL_MFP_RESP_ERR_MAC_PCD 0x08U /*< MFP MAC Error. */
#define | PHAL_MFP_RESP_ERR_BNR 0x09U /*< MFP Blocknumber Error. */
#define | PHAL_MFP_RESP_ERR_EXT 0x0AU /*< MFP Extension Error. */
#define | PHAL_MFP_RESP_ERR_CMD_INVALID 0x0BU /*< MFP Invalid Command Error. */
#define | PHAL_MFP_RESP_ERR_FORMAT 0x0CU /*< MFP Format Error. */
#define | PHAL_MFP_RESP_ERR_GEN_FAILURE 0x0FU /*< MFP Generic Error. */

SLI Command Codes

#define | PHAL_SLI_CMD_SET_EAS 0xA2
SLI-S/SLI-L This command enables the EAS mode if the EAS mode is not locked. More...
#define | PHAL_SLI_CMD_RESET_EAS 0xA3
SLI-S/SLI-L This command disables the EAS mode if the EAS mode is not locked. More...
#define | PHAL_SLI_CMD_LOCK_EAS 0xA4
SLI-S/SLI-L This command locks the current state of the EAS mode and the EAS ID. More...
#define | PHAL_SLI_CMD_EAS_ALARM 0xA5
SLI-S/SLI-L EAS Alarm command. More...
#define | PHAL_SLI_CMD_PASSWORD_PROTECT_EAS 0xA6
SLI-S/SLI-L This command enables the password protection for EAS. More...
#define | PHAL_SLI_CMD_WRITE_EAS_ID 0xA7
SLI-S/SLI-L Write a new AES Identifier in the corresponding configuration memory. More...
#define | PHAL_SLI_CMD_READ_EPC 0xA8
SLI-S Return the EPC data. More...
#define | PHAL_SLI_CMD_GET_NXP_SYSTEM_INFOMATION 0xAB
SLIX2 Return the information about the IC access conditions and supported features. More...
#define | PHAL_SLI_CMD_GET_RANDOM_NUMBER 0xB2
SLI-S/SLI-L Receive a random number from the label IC. More...
#define | PHAL_SLI_CMD_SET_PASSWORD 0xB3
SLI-S/SLI-L Set password to get access to different protected functionalities. More...
#define | PHAL_SLI_CMD_WRITE_PASSWORD 0xB4
SLI-S/SLI-L Write a new password into the related memory. More...
#define | PHAL_SLI_CMD_LOCK_PASSWORD 0xB5
SLI-S/SLI-L This command will lock the addressed password to prevent futur change. More...
#define | PHAL_SLI_CMD_PROTECT_PAGE 0xB6
SLI-S Define the restriction to get access to the related page. More...
#define | PHAL_SLI_CMD_LOCK_PAGE_PROTECT_COND 0xB7
SLI-S Lock the page protection condition. More...
#define | PHAL_SLI_CMD_GET_MULT_BLOCK_PROT_ST 0xB8
SLI-S Return the block protection status of the requested blocks. More...
#define | PHAL_SLI_CMD_DESTROY_SLI 0xB9
SLI-S/SLI-L This irreversible command destroys the label IC. More...
#define | PHAL_SLI_CMD_ENABLE_PRIVACY 0xBA
SLI-S/SLI-L Enter into the privacy mode. More...
#define | PHAL_SLI_CMD_64BIT_PASSWORD_PROTECT 0xBB
SLI-S Lead to require both Rd and Wr passwords to get access to password protected blocks. More...
#define | PHAL_SLI_CMD_READ_SIGNATURE 0xBD
SLI-S/SLI-L returns an IC specific, 32-byte ECC signature. More...

Felica Command Codes

#define | PHPAL_FELICA_SW_CMD_REQC 0x00U
RequestC. More...
#define | PHPAL_FELICA_SW_CMD_REQ_RESP 0x04U
Request Response. More...
#define | PHPAL_FELICA_SW_CMD_REQ_SERVICE 0x02U
Request Service. More...
#define | PHPAL_FELICA_SW_CMD_READ 0x06U
Read. More...
#define | PHPAL_FELICA_SW_CMD_WRITE 0x08U
Write. More...
#define | PHPAL_FELICA_SW_CMD_AUTH1 0x10U
Authentication1. More...
#define | PHPAL_FELICA_SW_CMD_AUTH2 0x12U
Authentication2. More...
#define | PHPAL_FELICA_SW_CMD_READ_SECF 0x14U
Read from secure file. More...
#define | PHPAL_FELICA_SW_CMD_WRITE_SECF 0x16U
Write to secure file. More...
#define | PHPAL_FELICA_SW_RSP_REQC 0x01U
Response to RequestC. More...
#define | PHPAL_FELICA_SW_LEN_BYTE_SIZE 0x01U
Size of Length byte in RequestC response. More...
#define | PHPAL_FELICA_SW_RESP_REQC_SIZE 0x01U
Length of Response byte in RequestC response. More...

Flags

#define | PHPAL_FELICA_SW_FLAG_ERROR 0x01U
Error Flag. More...
#define | PHPAL_FELICA_SW_FLAG_ADDRESSED 0x20U
Addressed Flag. More...
#define | PHPAL_FELICA_SW_FLAG_SELECTED 0x10U
Selected Flag. More...

Values

#define | PHPAL_FELICA_SW_IDMPMM_VALID 0x01U
Stored UID is valid. More...
#define | PHPAL_FELICA_SW_IDMPMM_INVALID 0x00U
Stored UID is not valid. More...
#define | PHPAL_FELICA_SW_RESP_FRAME_SIZE 32U
Size of one Felica Response Frame. More...

Timing constants

#define | PHPAL_FELICA_SW_TIME_T_US 302U
#define | PHPAL_FELICA_SW_EXT_TIME_US 500U
Time extension in microseconds for all commands. More...
#define | PHPAL_FELICA_SW_T_DELAY_US 2417
NFC Forum Digital Protocol Technical Specification v1.1 : Appendix A.4.
#define | PHPAL_FELICA_SW_T_TIMESLOT_US 1208
NFC Forum Digital Protocol Technical Specification v1.1 : Appendix A.4.
#define | PHPAL_FELICA_SW_T_DELTA_F_POLL_US 1
NFC Forum Digital Protocol Technical Specification v1.1 : Appendix A.4.
#define | PHPAL_FELICA_SW_TR1_48BITS_AT212_US 227
NFC Forum Digital Protocol Technical Specification v1.1 : 8.1.2.
#define | PHPAL_FELICA_SW_TR1_56BITS_AT212_US 255
#define | PHPAL_FELICA_SW_TR1_64BITS_AT212_US 302
#define | PHPAL_FELICA_SW_TR1_72BITS_AT212_US 340
#define | PHPAL_FELICA_SW_TR1_48BITS_AT424_US 114
NFC Forum Digital Protocol Technical Specification v1.1 : 8.1.2.
#define | PHPAL_FELICA_SW_TR1_56BITS_AT424_US 128
#define | PHPAL_FELICA_SW_TR1_64BITS_AT424_US 151
#define | PHPAL_FELICA_SW_TR1_72BITS_AT424_US 170

Command Codes

#define | PHPAL_I18000P3M3_CMD_SELECT 0x0A
Select command code. More...
#define | PHPAL_I18000P3M3_CMD_BEGIN_ROUND 0x08
BeginRound command code. More...
#define | PHPAL_I18000P3M3_CMD_RESIZE_ROUND 0x09
ResizeRound command code. More...
#define | PHPAL_I18000P3M3_CMD_NEXT_SLOT 0x00
NextSlot command code. More...
#define | PHPAL_I18000P3M3_CMD_ACK 0x01
ACK command code. More...
#define | PHPAL_I18000P3M3_CMD_NAK 0xC0
NAK command code. More...

Timeout constants

#define | PHPAL_I18000P3M3_SW_T1_MAX_US 78U
#define | PHPAL_I18000P3M3_SW_T2_MIN_US 151U
#define | PHPAL_I18000P3M3_SW_T3_MIN_US 25U
#define | PHPAL_I18000P3M3_SW_T4_MIN_US 100U
#define | PHPAL_I18000P3M3_SW_DELTA_MIN_US 10U

Constats

#define | PHPAL_SLI15693_SW_NXP_MFG_CODE 0x04U
IC Manufacturer Code of NXP. More...
#define | PHPAL_SLI15693_SW_EXT_TIME_US 60
Time extension in microseconds for all commands. More...
#define | PHPAL_SLI15693_SW_T1_WAITING_TIME 324U
Waiting time T1 in us (ISO/IEC15693, 9.1.4.)
#define | PHPAL_SLI15693_SW_T2_WAITING_TIME 310U
Waiting time T2 in us (ISO/IEC15693, 9.1.4.)
#define | PHPAL_SLI15693_SW_UID_COMPLETE 64U
UID length in bits when complete. More...
#define | PHPAL_SLI15693_SW_FLAGS_DEFAULT 0x06U
Default flags (DATA_RATE and INVENTORY BIT is set). More...
#define | PHPAL_SLI15693_SW_TIMEOUT_SLOT_US PHPAL_SLI15693_SW_T1_WAITING_TIME + PHPAL_SLI15693_SW_T2_WAITING_TIME
Slot timeout.

Mandatory commands

#define | PHPAL_SLI15693_SW_CMD_INVENTORY 0x01U
Anticollision inventory cmd code.
#define | PHPAL_SLI15693_SW_CMD_STAY_QUIET 0x02U
Stay Quiet cmd code.

Optional commands

#define | PHPAL_SLI15693_SW_CMD_SELECT 0x25U
Select cmd code.
#define | PHPAL_SLI15693_SW_CMD_RESET_TO_READY 0x26U
Reset to ready cmd code.

Custom commands

#define | PHPAL_SLI15693_SW_CMD_INVENTORY_READ 0xA0U
Inventory read cmd code.
#define | PHPAL_SLI15693_SW_CMD_FAST_INVENTORY_READ 0xA1U
Fast inventory read cmd code.
#define | PHPAL_SLI15693_SW_CMD_INVENTORY_PAGE_READ 0xB0U
Inventory page read cmd code.
#define | PHPAL_SLI15693_SW_CMD_FAST_INVENTORY_PAGE_READ 0xB1U
Fast inventory page read cmd code.
#define | PHPAL_SLI15693_SW_CMD_STAY_QUIET_PERSISTENT 0xBCU
Stay quiet persistent cmd code.

Detailed Description

Private definitions and functions of all components.

Macro Definition Documentation

§ PHAL_FELICA_CMD_REQUEST_RESPONSE

#define PHAL_FELICA_CMD_REQUEST_RESPONSE 0x04U

Get the PICCs current mode.

§ PHAL_FELICA_CMD_REQUEST_SERVICE

#define PHAL_FELICA_CMD_REQUEST_SERVICE 0x02U

Get area key version and service key version.

§ PHAL_FELICA_CMD_READ

#define PHAL_FELICA_CMD_READ 0x06U

Read the record value of the specified service.

§ PHAL_FELICA_CMD_WRITE

#define PHAL_FELICA_CMD_WRITE 0x08U

Write records of the specified service.

§ PHAL_FELICA_RSP_REQUEST_RESPONSE

#define PHAL_FELICA_RSP_REQUEST_RESPONSE 0x05U

Response code to the Request Response command.

§ PHAL_FELICA_RSP_REQUEST_SERVICE

#define PHAL_FELICA_RSP_REQUEST_SERVICE 0x03U

Response code to the Request Service command.

§ PHAL_FELICA_RSP_READ

#define PHAL_FELICA_RSP_READ 0x07U

Response code to the Read command.

§ PHAL_FELICA_RSP_WRITE

#define PHAL_FELICA_RSP_WRITE 0x09U

Response code to the Write command.

§ PHAL_I18000P3M3_CMD_REQ_RN

#define PHAL_I18000P3M3_CMD_REQ_RN 0xC1

ReqRn command code.

§ PHAL_I18000P3M3_CMD_READ

#define PHAL_I18000P3M3_CMD_READ 0xC2

Read command code.

§ PHAL_I18000P3M3_CMD_WRITE

#define PHAL_I18000P3M3_CMD_WRITE 0xC3

Write command code.

§ PHAL_I18000P3M3_CMD_KILL

#define PHAL_I18000P3M3_CMD_KILL 0xC4

Kill command code.

§ PHAL_I18000P3M3_CMD_LOCK

#define PHAL_I18000P3M3_CMD_LOCK 0xC5

Lock command code.

§ PHAL_I18000P3M3_CMD_ACCESS

#define PHAL_I18000P3M3_CMD_ACCESS 0xC6

Access command code.

§ PHAL_I18000P3M3_CMD_BLOCKWRITE

#define PHAL_I18000P3M3_CMD_BLOCKWRITE 0xC7

BlockWrite command code.

§ PHAL_I18000P3M3_CMD_BLOCKERASE

#define PHAL_I18000P3M3_CMD_BLOCKERASE 0xC8

BlockErase command code.

§ PHAL_I18000P3M3_CMD_BLOCKPERMALOCK

#define PHAL_I18000P3M3_CMD_BLOCKPERMALOCK 0xC9

BlockPermaLock command code.

§ PHAL_I18000P3M3_ERRCODE_OTHER

#define PHAL_I18000P3M3_ERRCODE_OTHER 0x00U

Other Error.

§ PHAL_I18000P3M3_ERRCODE_MEMORY_OVERRUN

#define PHAL_I18000P3M3_ERRCODE_MEMORY_OVERRUN 0x03U

Memory overrun.

§ PHAL_I18000P3M3_ERRCODE_MEMORY_LOCKED

#define PHAL_I18000P3M3_ERRCODE_MEMORY_LOCKED 0x04U

Memory locked.

§ PHAL_I18000P3M3_ERRCODE_INSUFFICIENT_POWER

#define PHAL_I18000P3M3_ERRCODE_INSUFFICIENT_POWER 0x0BU

Insufficient power.

§ PHAL_I18000P3M3_ERRCODE_NON_SPECIFIC

#define PHAL_I18000P3M3_ERRCODE_NON_SPECIFIC 0x0FU

Non-specific error.

§ PHAL_MFDF_CMD_AUTHENTICATE

#define PHAL_MFDF_CMD_AUTHENTICATE 0x0A

MF DF Authenticate command.

§ PHAL_MFDF_CMD_AUTHENTICATE_ISO

#define PHAL_MFDF_CMD_AUTHENTICATE_ISO 0x1A

MF DF Authenticate ISO command.

§ PHAL_MFDF_CMD_AUTHENTICATE_AES

#define PHAL_MFDF_CMD_AUTHENTICATE_AES 0xAA

MF DF Authenticate AES command.

§ PHAL_MFDF_CMD_CHANGE_KEY_SETTINGS

#define PHAL_MFDF_CMD_CHANGE_KEY_SETTINGS 0x54

MF DF Change key settings cmd.

§ PHAL_MFDF_CMD_GET_KEY_SETTINGS

#define PHAL_MFDF_CMD_GET_KEY_SETTINGS 0x45

MF DF Get Key Settings Cmd.

§ PHAL_MFDF_CMD_CHANGE_KEY

#define PHAL_MFDF_CMD_CHANGE_KEY 0xC4

MF DF Change key cmd.

§ PHAL_MFDF_CMD_GET_KEY_VERSION

#define PHAL_MFDF_CMD_GET_KEY_VERSION 0x64

MF DF Get Key Version.

§ PHAL_MFDF_CMD_CREATE_APPLN

#define PHAL_MFDF_CMD_CREATE_APPLN 0xCA

MF DF Create Application cmd.

§ PHAL_MFDF_CMD_DELETE_APPLN

#define PHAL_MFDF_CMD_DELETE_APPLN 0xDA

MF DF Delete Application cmd.

§ PHAL_MFDF_CMD_GET_APPLN_IDS

#define PHAL_MFDF_CMD_GET_APPLN_IDS 0x6A

MF DF Get Application Ids cmd.

§ PHAL_MFDF_CMD_GET_DF_NAMES

#define PHAL_MFDF_CMD_GET_DF_NAMES 0x6D

MF DF Get Dedicated Fine names cmd.

§ PHAL_MFDF_CMD_SELECT_APPLN

#define PHAL_MFDF_CMD_SELECT_APPLN 0x5A

MF DF Select Application Cmd.

§ PHAL_MFDF_CMD_FORMAT_PICC

#define PHAL_MFDF_CMD_FORMAT_PICC 0xFC

MF DF Format PICC Cmd.

§ PHAL_MFDF_CMD_GET_VERSION

#define PHAL_MFDF_CMD_GET_VERSION 0x60

MF DF Get Version cmd.

§ PHAL_MFDF_CMD_FREE_MEM

#define PHAL_MFDF_CMD_FREE_MEM 0x6E

MF DF Free Memory cmd.

§ PHAL_MFDF_CMD_SET_CONFIG

#define PHAL_MFDF_CMD_SET_CONFIG 0x5C

MF DF Set Configuration Cmd.

§ PHAL_MFDF_CMD_GET_CARD_UID

#define PHAL_MFDF_CMD_GET_CARD_UID 0x51

MF DF Get Card UID cmd.

§ PHAL_MFDF_CMD_GET_FILE_IDS

#define PHAL_MFDF_CMD_GET_FILE_IDS 0x6F

MF DF Get File IDs cmd.

§ PHAL_MFDF_CMD_GET_ISO_FILE_IDS

#define PHAL_MFDF_CMD_GET_ISO_FILE_IDS 0x61

MF DF Get ISO File IDs cmd.

§ PHAL_MFDF_CMD_GET_FILE_SETTINGS

#define PHAL_MFDF_CMD_GET_FILE_SETTINGS 0xF5

MF DF Get File settings cmd.

§ PHAL_MFDF_CMD_CHANGE_FILE_SETTINGS

#define PHAL_MFDF_CMD_CHANGE_FILE_SETTINGS 0x5F

MF DF Change file settings cmd.

§ PHAL_MFDF_CMD_CREATE_STD_DATAFILE

#define PHAL_MFDF_CMD_CREATE_STD_DATAFILE 0xCD

MF DF Create Standard data file cmd.

§ PHAL_MFDF_CMD_CREATE_BKUP_DATAFILE

#define PHAL_MFDF_CMD_CREATE_BKUP_DATAFILE 0xCB

MF DF Create Backup data file cmd.

§ PHAL_MFDF_CMD_CREATE_VALUE_FILE

#define PHAL_MFDF_CMD_CREATE_VALUE_FILE 0xCC

MF DF Create Value File cmd.

§ PHAL_MFDF_CMD_CREATE_LINEAR_RECFILE

#define PHAL_MFDF_CMD_CREATE_LINEAR_RECFILE 0xC1

MF DF Create Linear record file cmd.

§ PHAL_MFDF_CMD_CREATE_CYCLIC_RECFILE

#define PHAL_MFDF_CMD_CREATE_CYCLIC_RECFILE 0xC0

MF DF Create Cyclic record file cmd.

§ PHAL_MFDF_CMD_DELETE_FILE

#define PHAL_MFDF_CMD_DELETE_FILE 0xDF

MF DF Delete File cmd.

§ PHAL_MFDF_CMD_READ_DATA

#define PHAL_MFDF_CMD_READ_DATA 0xBD

MF DF Read Data cmd.

§ PHAL_MFDF_CMD_WRITE_DATA

#define PHAL_MFDF_CMD_WRITE_DATA 0x3D

MF DF Write data cmd.

§ PHAL_MFDF_CMD_GET_VALUE

#define PHAL_MFDF_CMD_GET_VALUE 0x6C

MF DF Get Value cmd.

§ PHAL_MFDF_CMD_CREDIT

#define PHAL_MFDF_CMD_CREDIT 0x0C

MF DF Credit cmd.

§ PHAL_MFDF_CMD_DEBIT

#define PHAL_MFDF_CMD_DEBIT 0xDC

MF DF Debit cmd.

§ PHAL_MFDF_CMD_LIMITED_CREDIT

#define PHAL_MFDF_CMD_LIMITED_CREDIT 0x1C

MF DF Limited Credit cmd.

§ PHAL_MFDF_CMD_WRITE_RECORD

#define PHAL_MFDF_CMD_WRITE_RECORD 0x3B

MF DF Write Record cmd.

§ PHAL_MFDF_CMD_READ_RECORDS

#define PHAL_MFDF_CMD_READ_RECORDS 0xBB

MF DF Read Records cmd.

§ PHAL_MFDF_CMD_CLEAR_RECORDS_FILE

#define PHAL_MFDF_CMD_CLEAR_RECORDS_FILE 0xEB

MF DF Clear records file cmd.

§ PHAL_MFDF_CMD_COMMIT_TXN

#define PHAL_MFDF_CMD_COMMIT_TXN 0xC7

MF DF Commit transaction cmd.

§ PHAL_MFDF_CMD_ABORT_TXN

#define PHAL_MFDF_CMD_ABORT_TXN 0xA7

MF DF Abort transaction cmd.

§ PHAL_MFDF_RESP_OPERATION_OK

#define PHAL_MFDF_RESP_OPERATION_OK 0x00U

MF DF Response - Successful operation.

§ PHAL_MFDF_RESP_NO_CHANGES

#define PHAL_MFDF_RESP_NO_CHANGES 0x0CU

MF DF Response - No changes done to backup files.

§ PHAL_MFDF_RESP_ERR_OUT_OF_EEPROM_ERROR

#define PHAL_MFDF_RESP_ERR_OUT_OF_EEPROM_ERROR 0x0EU

MF DF Response - Insufficient NV-Memory.

§ PHAL_MFDF_RESP_ILLEGAL_COMMAND_CODE

#define PHAL_MFDF_RESP_ILLEGAL_COMMAND_CODE 0x1CU

MF DF command code not supported.

§ PHAL_MFDF_RESP_ERR_INTEGRITY_ERROR

#define PHAL_MFDF_RESP_ERR_INTEGRITY_ERROR 0x1EU

MF DF CRC or MAC does not match data padding bytes not valid.

§ PHAL_MFDF_RESP_NO_SUCH_KEY

#define PHAL_MFDF_RESP_NO_SUCH_KEY 0x40U

MF DF Invalid key number specified.

§ PHAL_MFDF_RESP_ERR_LENGTH_ERROR

#define PHAL_MFDF_RESP_ERR_LENGTH_ERROR 0x7EU

MF DF Length of command string invalid.

§ PHAL_MFDF_RESP_PERMISSION_DENIED

#define PHAL_MFDF_RESP_PERMISSION_DENIED 0x9DU

MF DF Current configuration/status does not allow the requested command.

§ PHAL_MFDF_RESP_ERR_PARAMETER_ERROR

#define PHAL_MFDF_RESP_ERR_PARAMETER_ERROR 0x9EU

MF DF Value of params invalid.

§ PHAL_MFDF_RESP_APPLICATION_NOT_FOUND

#define PHAL_MFDF_RESP_APPLICATION_NOT_FOUND 0xA0U

MF DF Requested AID not found on PICC.

§ PHAL_MFDF_RESP_ERR_APPL_INTEGRITY_ERROR

#define PHAL_MFDF_RESP_ERR_APPL_INTEGRITY_ERROR 0xA1U

MF DF Unrecoverable error within application, appln will be disabled.

§ PHAL_MFDF_RESP_ERR_AUTHENTICATION_ERROR

#define PHAL_MFDF_RESP_ERR_AUTHENTICATION_ERROR 0xAEU

MF DF Current authentication status does not allow the requested cmd.

§ PHAL_MFDF_RESP_ADDITIONAL_FRAME

#define PHAL_MFDF_RESP_ADDITIONAL_FRAME 0xAFU

MF DF Additional data frame is expected to be sent.

§ PHAL_MFDF_RESP_ERR_BOUNDARY_ERROR

#define PHAL_MFDF_RESP_ERR_BOUNDARY_ERROR 0xBEU

MF DF Attempt to read/write data from/to beyond the files/record's limits.

§ PHAL_MFDF_RESP_ERR_PICC_INTEGRITY

#define PHAL_MFDF_RESP_ERR_PICC_INTEGRITY 0xC1U

MF DF Unrecoverable error within PICC.

PICC will be disabled.

§ PHAL_MFDF_RESP_ERR_COMMAND_ABORTED

#define PHAL_MFDF_RESP_ERR_COMMAND_ABORTED 0xCAU

MF DF Previous cmd not fully completed.

Not all frames were requested or provided by the PCD.

§ PHAL_MFDF_RESP_ERR_PIC_DISABLED

#define PHAL_MFDF_RESP_ERR_PIC_DISABLED 0xCDU

MF DF PICC was disabled by an unrecoverable error.

§ PHAL_MFDF_RESP_ERR_COUNT

#define PHAL_MFDF_RESP_ERR_COUNT 0xCEU

MF DF Num.

of applns limited to 28. No additional applications possible.

§ PHAL_MFDF_RESP_ERR_DUPLICATE

#define PHAL_MFDF_RESP_ERR_DUPLICATE 0xDEU

MF DF File/Application with same number already exists.

§ PHAL_MFDF_RESP_ERR_EEPROM

#define PHAL_MFDF_RESP_ERR_EEPROM 0xEEU

MF DF Could not complete NV-Write operation due to loss of power.

§ PHAL_MFDF_RESP_ERR_FILE_NOT_FOUND

#define PHAL_MFDF_RESP_ERR_FILE_NOT_FOUND 0xF0U

MF DF Specified file number does not exist.

§ PHAL_MFDF_RESP_ERR_FILE_INTEGRITY

#define PHAL_MFDF_RESP_ERR_FILE_INTEGRITY 0xF1U

MF DF Unrecoverable error within file.

File will be disabled.

§ PHAL_MFDF_CMD_ISO7816_SELECT_FILE

#define PHAL_MFDF_CMD_ISO7816_SELECT_FILE 0xA4

ISO Select File.

§ PHAL_MFDF_CMD_ISO7816_READ_RECORDS

#define PHAL_MFDF_CMD_ISO7816_READ_RECORDS 0xB2

ISO Read records.

§ PHAL_MFDF_CMD_ISO7816_READ_BINARY

#define PHAL_MFDF_CMD_ISO7816_READ_BINARY 0xB0

ISO Read Binary.

§ PHAL_MFDF_CMD_ISO7816_UPDATE_BINARY

#define PHAL_MFDF_CMD_ISO7816_UPDATE_BINARY 0xD6

ISO UPDATE Binary.

§ PHAL_MFDF_CMD_ISO7816_APPEND_RECORD

#define PHAL_MFDF_CMD_ISO7816_APPEND_RECORD 0xE2

ISO Append record.

§ PHAL_MFDF_CMD_ISO7816_UPDATE_RECORD

#define PHAL_MFDF_CMD_ISO7816_UPDATE_RECORD 0xD2

ISO Update record.

§ PHAL_MFDF_CMD_ISO7816_GET_CHALLENGE

#define PHAL_MFDF_CMD_ISO7816_GET_CHALLENGE 0x84

ISO Get challenge.

§ PHAL_MFDF_CMD_ISO7816_EXT_AUTHENTICATE

#define PHAL_MFDF_CMD_ISO7816_EXT_AUTHENTICATE 0x82

ISO Ext.

Authenticate.

§ PHAL_MFDF_CMD_ISO7816_INT_AUTHENTICATE

#define PHAL_MFDF_CMD_ISO7816_INT_AUTHENTICATE 0x88

ISO Int.

Authenticate.

§ PHAL_MFDF_MAXWRAPPEDAPDU_SIZE

#define PHAL_MFDF_MAXWRAPPEDAPDU_SIZE 0x37u

Maximum size of wrapped APDU 55 bytes.

§ PHAL_MFDF_MAXDFAPDU_SIZE

#define PHAL_MFDF_MAXDFAPDU_SIZE 0x3Cu

Maximum size of DESFire APDU 60 bytes.

§ PHAL_MFDF_DFAPPID_SIZE

#define PHAL_MFDF_DFAPPID_SIZE 0x03u

Size of MF DF application Id.

§ PHAL_MFDF_DATA_BLOCK_SIZE

#define PHAL_MFDF_DATA_BLOCK_SIZE 0x10u

Data block size need for internal purposes.

§ PHAL_MFDF_MAX_FRAME_SIZE

#define PHAL_MFDF_MAX_FRAME_SIZE 0x40u

Max size in a ISO 14443-4 frame.

§ PHAL_MFDF_ISO7816_SUCCESS

#define PHAL_MFDF_ISO7816_SUCCESS 0x9000U

Correct execution.

§ PHAL_MFDF_ISO7816_ERR_WRONG_LENGTH

#define PHAL_MFDF_ISO7816_ERR_WRONG_LENGTH 0x6700U

Wrong length.

§ PHAL_MFDF_ISO7816_ERR_WRONG_PARAMS

#define PHAL_MFDF_ISO7816_ERR_WRONG_PARAMS 0x6A86U

Wrong parameters P1 and/or P2.

§ PHAL_MFDF_ISO7816_ERR_WRONG_LC

#define PHAL_MFDF_ISO7816_ERR_WRONG_LC 0x6A87U

Lc inconsistent with P1/p2.

§ PHAL_MFDF_ISO7816_ERR_WRONG_LE

#define PHAL_MFDF_ISO7816_ERR_WRONG_LE 0x6C00U

Wrong Le.

§ PHAL_MFDF_ISO7816_ERR_NO_PRECISE_DIAGNOSTICS

#define PHAL_MFDF_ISO7816_ERR_NO_PRECISE_DIAGNOSTICS 0x6F00U

No precise diagnostics.

§ PHAL_MFDF_ISO7816_ERR_EOF_REACHED

#define PHAL_MFDF_ISO7816_ERR_EOF_REACHED 0x6282U

End of File reached.

§ PHAL_MFDF_ISO7816_ERR_FILE_ACCESS

#define PHAL_MFDF_ISO7816_ERR_FILE_ACCESS 0x6982U

File access not allowed.

§ PHAL_MFDF_ISO7816_ERR_FILE_EMPTY

#define PHAL_MFDF_ISO7816_ERR_FILE_EMPTY 0x6985U

File empty or access conditions not satisfied.

§ PHAL_MFDF_ISO7816_ERR_FILE_NOT_FOUND

#define PHAL_MFDF_ISO7816_ERR_FILE_NOT_FOUND 0x6A82U

Application / File not found.

§ PHAL_MFDF_ISO7816_ERR_MEMORY_FAILURE

#define PHAL_MFDF_ISO7816_ERR_MEMORY_FAILURE 0x6581U

Memory failure (unsuccessful update).

§ PHAL_MFDF_ISO7816_ERR_INCORRECT_PARAMS

#define PHAL_MFDF_ISO7816_ERR_INCORRECT_PARAMS 0x6B00U

Wrong parameter p1 or p2.

READ RECORDS.

§ PHAL_MFDF_ISO7816_ERR_WRONG_CLA

#define PHAL_MFDF_ISO7816_ERR_WRONG_CLA 0x6E00U

Wrong Class byte.

§ PHAL_MFDF_ISO7816_ERR_UNSUPPORTED_INS

#define PHAL_MFDF_ISO7816_ERR_UNSUPPORTED_INS 0x6D00U

Instruction not supported.

§ PHAL_MFP_CMD_AUTH1_FIRST

#define PHAL_MFP_CMD_AUTH1_FIRST 0x70

MFP Authenticate command (part 1, first authentication).

§ PHAL_MFP_CMD_AUTH1

#define PHAL_MFP_CMD_AUTH1 0x76

MFP Authenticate command (part 1, non-first authentication).

§ PHAL_MFP_CMD_AUTH2

#define PHAL_MFP_CMD_AUTH2 0x72

MFP Authenticate command (part 2).

§ PHAL_MFP_CMD_AUTH3

#define PHAL_MFP_CMD_AUTH3 0x74

MFP Authenticate command (part 3).

§ PHAL_MFP_CMD_RAUTH

#define PHAL_MFP_CMD_RAUTH 0x78

MFP ResetAuth command.

§ PHAL_MFP_CMD_READ_ENM

#define PHAL_MFP_CMD_READ_ENM 0x30

MFP Read Encrypted, No mac on response, Mac on command.

§ PHAL_MFP_CMD_READ_EMM

#define PHAL_MFP_CMD_READ_EMM 0x31

MFP Read Encrypted, Mac on response, Mac on command.

§ PHAL_MFP_CMD_READ_PNM

#define PHAL_MFP_CMD_READ_PNM 0x32

MFP Read Plain, No mac on response, Mac on command.

§ PHAL_MFP_CMD_READ_PMM

#define PHAL_MFP_CMD_READ_PMM 0x33

MFP Read Plain, Mac on response, Mac on command.

§ PHAL_MFP_CMD_READ_ENU

#define PHAL_MFP_CMD_READ_ENU 0x34

MFP Read Encrypted, No mac on response, Unmac'ed command.

§ PHAL_MFP_CMD_READ_EMU

#define PHAL_MFP_CMD_READ_EMU 0x35

MFP Read Encrypted, Mac on response, Unmac'ed command.

§ PHAL_MFP_CMD_READ_PNU

#define PHAL_MFP_CMD_READ_PNU 0x36

MFP Read Plain, No mac on response, Unmac'ed command.

§ PHAL_MFP_CMD_READ_PMU

#define PHAL_MFP_CMD_READ_PMU 0x37

MFP Read Plain, Mac on response, Unmac'ed command.

§ PHAL_MFP_CMD_WRITE_EN

#define PHAL_MFP_CMD_WRITE_EN 0xA0

MFP Write Encrypted, No mac on response, (Mac on command).

§ PHAL_MFP_CMD_WRITE_EM

#define PHAL_MFP_CMD_WRITE_EM 0xA1

MFP Write Encrypted, Mac on response, (Mac on command).

§ PHAL_MFP_CMD_WRITE_PN

#define PHAL_MFP_CMD_WRITE_PN 0xA2

MFP Write Plain, No mac on response, (Mac on command).

§ PHAL_MFP_CMD_WRITE_PM

#define PHAL_MFP_CMD_WRITE_PM 0xA3

MFP Write Plain, Mac on response, (Mac on command).

§ PHAL_MFP_CMD_WRITEPERSO

#define PHAL_MFP_CMD_WRITEPERSO 0xA8

MFP Write Perso.

§ PHAL_MFP_CMD_COMMITPERSO

#define PHAL_MFP_CMD_COMMITPERSO 0xAA

MFP Commit Perso.

§ PHAL_MFP_CMD_INCR

#define PHAL_MFP_CMD_INCR 0xB0

MFP Increment command.

§ PHAL_MFP_CMD_INCR_M

#define PHAL_MFP_CMD_INCR_M 0xB1

MFP Increment command MACed.

§ PHAL_MFP_CMD_DECR

#define PHAL_MFP_CMD_DECR 0xB2

MFP Decrement command.

§ PHAL_MFP_CMD_DECR_M

#define PHAL_MFP_CMD_DECR_M 0xB3

MFP Decrement command MACed.

§ PHAL_MFP_CMD_TRANS

#define PHAL_MFP_CMD_TRANS 0xB4

MFP Transfer command.

§ PHAL_MFP_CMD_TRANS_M

#define PHAL_MFP_CMD_TRANS_M 0xB5

MFP Transfer command MACed.

§ PHAL_MFP_CMD_INCRTR

#define PHAL_MFP_CMD_INCRTR 0xB6

MFP Increment Transfer command.

§ PHAL_MFP_CMD_INCRTR_M

#define PHAL_MFP_CMD_INCRTR_M 0xB7

MFP Increment Transfer command MACed.

§ PHAL_MFP_CMD_DECRTR

#define PHAL_MFP_CMD_DECRTR 0xB8

MFP Decrement Transfer command.

§ PHAL_MFP_CMD_DECRTR_M

#define PHAL_MFP_CMD_DECRTR_M 0xB9

MFP Decrement Transfer command MACed.

§ PHAL_MFP_CMD_REST

#define PHAL_MFP_CMD_REST 0xC2

MFP Restore command.

§ PHAL_MFP_CMD_REST_M

#define PHAL_MFP_CMD_REST_M 0xC3

MFP Restore command MACed.

§ PHAL_MFP_CMD_PPC

#define PHAL_MFP_CMD_PPC 0xF0

MFP Prepare Proximity Check.

§ PHAL_MFP_CMD_PC

#define PHAL_MFP_CMD_PC 0xF2

MFP Proximity Check command.

§ PHAL_MFP_CMD_VPC

#define PHAL_MFP_CMD_VPC 0xFD

MFP Verify Proximity Check command.

§ PHAL_MFP_CMD_MBREAD

#define PHAL_MFP_CMD_MBREAD 0x38

MFP Multi Block Read.

§ PHAL_MFP_CMD_MBWRITE

#define PHAL_MFP_CMD_MBWRITE 0xA8

MFP Multi Block Read.

§ PHAL_MFP_TRUNCATED_MAC_SIZE

#define PHAL_MFP_TRUNCATED_MAC_SIZE 8

Size of the truncated MAC.

§ PHAL_MFP_MIFARE_VALUE_BLOCK_SIZE

#define PHAL_MFP_MIFARE_VALUE_BLOCK_SIZE 4

Size of a MIFARE value block.

§ PHAL_MFP_MIFARE_BLOCK_SIZE

#define PHAL_MFP_MIFARE_BLOCK_SIZE 16

Size of the MIFARE blocks.

§ PHAL_MFP_PC_RND_LEN

#define PHAL_MFP_PC_RND_LEN 7

Size of the Proximity Check Random numbers.

§ PHAL_MFUL_PREAMBLE_TX

#define PHAL_MFUL_PREAMBLE_TX 0xAFU

MIFARE Ultralight preamble byte (tx) for authentication.

§ PHAL_MFUL_PREAMBLE_RX

#define PHAL_MFUL_PREAMBLE_RX 0x00U

MIFARE Ultralight preamble byte (rx) for authentication.

§ PHAL_MFUL_COMPWRITE_BLOCK_LENGTH

#define PHAL_MFUL_COMPWRITE_BLOCK_LENGTH 16U

Length of a compatibility write MIFARE(R) Ultralight data block.

§ PHAL_SLI_CMD_SET_EAS

#define PHAL_SLI_CMD_SET_EAS 0xA2

SLI-S/SLI-L This command enables the EAS mode if the EAS mode is not locked.

§ PHAL_SLI_CMD_RESET_EAS

#define PHAL_SLI_CMD_RESET_EAS 0xA3

SLI-S/SLI-L This command disables the EAS mode if the EAS mode is not locked.

§ PHAL_SLI_CMD_LOCK_EAS

#define PHAL_SLI_CMD_LOCK_EAS 0xA4

SLI-S/SLI-L This command locks the current state of the EAS mode and the EAS ID.

§ PHAL_SLI_CMD_EAS_ALARM

#define PHAL_SLI_CMD_EAS_ALARM 0xA5

SLI-S/SLI-L EAS Alarm command.

§ PHAL_SLI_CMD_PASSWORD_PROTECT_EAS

#define PHAL_SLI_CMD_PASSWORD_PROTECT_EAS 0xA6

SLI-S/SLI-L This command enables the password protection for EAS.

§ PHAL_SLI_CMD_WRITE_EAS_ID

#define PHAL_SLI_CMD_WRITE_EAS_ID 0xA7

SLI-S/SLI-L Write a new AES Identifier in the corresponding configuration memory.

§ PHAL_SLI_CMD_READ_EPC

#define PHAL_SLI_CMD_READ_EPC 0xA8

SLI-S Return the EPC data.

§ PHAL_SLI_CMD_GET_NXP_SYSTEM_INFOMATION

#define PHAL_SLI_CMD_GET_NXP_SYSTEM_INFOMATION 0xAB

SLIX2 Return the information about the IC access conditions and supported features.

§ PHAL_SLI_CMD_GET_RANDOM_NUMBER

#define PHAL_SLI_CMD_GET_RANDOM_NUMBER 0xB2

SLI-S/SLI-L Receive a random number from the label IC.

§ PHAL_SLI_CMD_SET_PASSWORD

#define PHAL_SLI_CMD_SET_PASSWORD 0xB3

SLI-S/SLI-L Set password to get access to different protected functionalities.

§ PHAL_SLI_CMD_WRITE_PASSWORD

#define PHAL_SLI_CMD_WRITE_PASSWORD 0xB4

SLI-S/SLI-L Write a new password into the related memory.

§ PHAL_SLI_CMD_LOCK_PASSWORD

#define PHAL_SLI_CMD_LOCK_PASSWORD 0xB5

SLI-S/SLI-L This command will lock the addressed password to prevent futur change.

§ PHAL_SLI_CMD_PROTECT_PAGE

#define PHAL_SLI_CMD_PROTECT_PAGE 0xB6

SLI-S Define the restriction to get access to the related page.

§ PHAL_SLI_CMD_LOCK_PAGE_PROTECT_COND

#define PHAL_SLI_CMD_LOCK_PAGE_PROTECT_COND 0xB7

SLI-S Lock the page protection condition.

§ PHAL_SLI_CMD_GET_MULT_BLOCK_PROT_ST

#define PHAL_SLI_CMD_GET_MULT_BLOCK_PROT_ST 0xB8

SLI-S Return the block protection status of the requested blocks.

§ PHAL_SLI_CMD_DESTROY_SLI

#define PHAL_SLI_CMD_DESTROY_SLI 0xB9

SLI-S/SLI-L This irreversible command destroys the label IC.

§ PHAL_SLI_CMD_ENABLE_PRIVACY

#define PHAL_SLI_CMD_ENABLE_PRIVACY 0xBA

SLI-S/SLI-L Enter into the privacy mode.

§ PHAL_SLI_CMD_64BIT_PASSWORD_PROTECT

#define PHAL_SLI_CMD_64BIT_PASSWORD_PROTECT 0xBB

SLI-S Lead to require both Rd and Wr passwords to get access to password protected blocks.

§ PHAL_SLI_CMD_READ_SIGNATURE

#define PHAL_SLI_CMD_READ_SIGNATURE 0xBD

SLI-S/SLI-L returns an IC specific, 32-byte ECC signature.

§ PHAL_T1T_CMD_WRITENOERASEBLOCK

#define PHAL_T1T_CMD_WRITENOERASEBLOCK 0x1BU

T1T Write_NE8 command byte.

§ PHAL_T1T_HEADER_ROM0

#define PHAL_T1T_HEADER_ROM0 0x10U

T1T Header Rom 0 byte to check.

§ PHAL_T1T_SW_READ_TIME_US

#define PHAL_T1T_SW_READ_TIME_US 91U

Read commands timeout in microseconds.

§ PHAL_T1T_SW_WRITE_ERASE_TIME_US

#define PHAL_T1T_SW_WRITE_ERASE_TIME_US 5236U

Write Erase commands timeout in microseconds.

§ PHAL_T1T_SW_WRITE_NO_ERASE_TIME_US

#define PHAL_T1T_SW_WRITE_NO_ERASE_TIME_US 2659U

Write No Erase commands timeout in microseconds.

§ PHAL_T1T_SW_EXT_TIME_US

#define PHAL_T1T_SW_EXT_TIME_US 200U

Time extension in microseconds.

§ PHPAL_FELICA_SW_CMD_REQC

#define PHPAL_FELICA_SW_CMD_REQC 0x00U

RequestC.

§ PHPAL_FELICA_SW_CMD_REQ_RESP

#define PHPAL_FELICA_SW_CMD_REQ_RESP 0x04U

Request Response.

§ PHPAL_FELICA_SW_CMD_REQ_SERVICE

#define PHPAL_FELICA_SW_CMD_REQ_SERVICE 0x02U

Request Service.

§ PHPAL_FELICA_SW_CMD_READ

#define PHPAL_FELICA_SW_CMD_READ 0x06U

Read.

§ PHPAL_FELICA_SW_CMD_WRITE

#define PHPAL_FELICA_SW_CMD_WRITE 0x08U

Write.

§ PHPAL_FELICA_SW_CMD_AUTH1

#define PHPAL_FELICA_SW_CMD_AUTH1 0x10U

Authentication1.

§ PHPAL_FELICA_SW_CMD_AUTH2

#define PHPAL_FELICA_SW_CMD_AUTH2 0x12U

Authentication2.

§ PHPAL_FELICA_SW_CMD_READ_SECF

#define PHPAL_FELICA_SW_CMD_READ_SECF 0x14U

Read from secure file.

§ PHPAL_FELICA_SW_CMD_WRITE_SECF

#define PHPAL_FELICA_SW_CMD_WRITE_SECF 0x16U

Write to secure file.

§ PHPAL_FELICA_SW_RSP_REQC

#define PHPAL_FELICA_SW_RSP_REQC 0x01U

Response to RequestC.

§ PHPAL_FELICA_SW_LEN_BYTE_SIZE

#define PHPAL_FELICA_SW_LEN_BYTE_SIZE 0x01U

Size of Length byte in RequestC response.

§ PHPAL_FELICA_SW_RESP_REQC_SIZE

#define PHPAL_FELICA_SW_RESP_REQC_SIZE 0x01U

Length of Response byte in RequestC response.

§ PHPAL_FELICA_SW_FLAG_ERROR

#define PHPAL_FELICA_SW_FLAG_ERROR 0x01U

Error Flag.

§ PHPAL_FELICA_SW_FLAG_ADDRESSED

#define PHPAL_FELICA_SW_FLAG_ADDRESSED 0x20U

Addressed Flag.

§ PHPAL_FELICA_SW_FLAG_SELECTED

#define PHPAL_FELICA_SW_FLAG_SELECTED 0x10U

Selected Flag.

§ PHPAL_FELICA_SW_IDMPMM_VALID

#define PHPAL_FELICA_SW_IDMPMM_VALID 0x01U

Stored UID is valid.

§ PHPAL_FELICA_SW_IDMPMM_INVALID

#define PHPAL_FELICA_SW_IDMPMM_INVALID 0x00U

Stored UID is not valid.

§ PHPAL_FELICA_SW_RESP_FRAME_SIZE

#define PHPAL_FELICA_SW_RESP_FRAME_SIZE 32U

Size of one Felica Response Frame.

§ PHPAL_FELICA_SW_EXT_TIME_US

#define PHPAL_FELICA_SW_EXT_TIME_US 500U

Time extension in microseconds for all commands.

§ PHPAL_I14443P3A_EXT_TIME_US

#define PHPAL_I14443P3A_EXT_TIME_US 60

Time extension in microseconds for all commands.

§ PHPAL_I14443P3B_SW_ATQB_TIME_US

#define PHPAL_I14443P3B_SW_ATQB_TIME_US 600

TR0 + TR1 (ISO14443-2 9.2.5 75,5 + 94,4 ~ 170 –> set 200 us).

§ PHPAL_I14443P3B_SW_DELTA_POLL

#define PHPAL_I14443P3B_SW_DELTA_POLL 17

T(B,POLL) (Digital Protocol Ver1.1 (Article 7.9.1.5) is 16.4ms = ~17ms).

§ PHPAL_I14443P3B_SW_ATTRIB_TIME_US

#define PHPAL_I14443P3B_SW_ATTRIB_TIME_US 4800

Answer to ATTRIB FWT (ISO14443-3 7.9.4.3).

§ PHPAL_I14443P3B_SW_EXT_TIME_US

#define PHPAL_I14443P3B_SW_EXT_TIME_US 63

Time extension in microseconds for all commands.

§ PHPAL_I14443P3B_FRAMESIZE_MAX

#define PHPAL_I14443P3B_FRAMESIZE_MAX 12

The maximum allowed FSDI/FSCI value.

§ PHPAL_I14443P3B_SW_TXWAIT_US_TR2_0

#define PHPAL_I14443P3B_SW_TXWAIT_US_TR2_0 133U

Minimum TxWait in case received TR2 value is (00)b.

§ PHPAL_I14443P3B_SW_TXWAIT_US_TR2_1

#define PHPAL_I14443P3B_SW_TXWAIT_US_TR2_1 246U

Minimum TxWait in case received TR2 value is (01)b.

§ PHPAL_I14443P3B_SW_TXWAIT_US_TR2_2

#define PHPAL_I14443P3B_SW_TXWAIT_US_TR2_2 397U

Minimum TxWait in case received TR2 value is (10)b.

§ PHPAL_I14443P3B_SW_TXWAIT_US_TR2_3

#define PHPAL_I14443P3B_SW_TXWAIT_US_TR2_3 699U

Minimum TxWait in case received TR2 value is (11)b.

§ PHPAL_I14443P3B_SW_MINIMUM_TR2_MASK

#define PHPAL_I14443P3B_SW_MINIMUM_TR2_MASK 0x06U

Minimum TR2 Mask to extract TR2 value.

§ PHPAL_I14443P3B_SW_MINIMUM_TR2_POS

#define PHPAL_I14443P3B_SW_MINIMUM_TR2_POS 1U

TR2 position.

§ PHPAL_I14443P3B_SW_MINIMUM_TR2_VALUE_0

#define PHPAL_I14443P3B_SW_MINIMUM_TR2_VALUE_0 0U

TR2 bit value (00)b.

§ PHPAL_I14443P3B_SW_MINIMUM_TR2_VALUE_1

#define PHPAL_I14443P3B_SW_MINIMUM_TR2_VALUE_1 1U

TR2 bit value (01)b.

§ PHPAL_I14443P3B_SW_MINIMUM_TR2_VALUE_2

#define PHPAL_I14443P3B_SW_MINIMUM_TR2_VALUE_2 2U

TR2 bit value (10)b.

§ PHPAL_I14443P3B_SW_MINIMUM_TR2_VALUE_3

#define PHPAL_I14443P3B_SW_MINIMUM_TR2_VALUE_3 3U

TR2 bit value (11)b.

§ PHPAL_I14443P4_EXT_TIME_US

#define PHPAL_I14443P4_EXT_TIME_US 60

Time extension in microseconds for all commands.

§ PHPAL_I14443P4A_SAMAV2_X_PPSS

#define PHPAL_I14443P4A_SAMAV2_X_PPSS 0xD0U

PPS Command code.

§ PHPAL_I14443P4A_SAMAV2_X_PPS0

#define PHPAL_I14443P4A_SAMAV2_X_PPS0 0x11U

PPS0 code.

§ PHPAL_I14443P4A_SAMAV2_X_ATS_LEN

#define PHPAL_I14443P4A_SAMAV2_X_ATS_LEN 0

Position of LEN within ATS.

§ PHPAL_I14443P4A_SAMAV2_X_ATS_T0

#define PHPAL_I14443P4A_SAMAV2_X_ATS_T0 1

Position of T0 within ATS.

§ PHPAL_I14443P4A_SAMAV2_X_ATS_TA1_PRESENT

#define PHPAL_I14443P4A_SAMAV2_X_ATS_TA1_PRESENT 0x10U

Bit which signals TA(1) presence.

§ PHPAL_I14443P4A_SAMAV2_X_ATS_TB1_PRESENT

#define PHPAL_I14443P4A_SAMAV2_X_ATS_TB1_PRESENT 0x20U

Bit which signals TB(1) presence.

§ PHPAL_I14443P4A_SAMAV2_X_ATS_TC1_PRESENT

#define PHPAL_I14443P4A_SAMAV2_X_ATS_TC1_PRESENT 0x40U

Bit which signals TC(1) presence.

§ PHPAL_I14443P4A_SAMAV2_X_ATS_TC1_NAD_SUPPORT

#define PHPAL_I14443P4A_SAMAV2_X_ATS_TC1_NAD_SUPPORT 0x01U

Bit within TC(1) which signals NAD support.

§ PHPAL_I14443P4A_SAMAV2_X_ATS_TC1_CID_SUPPORT

#define PHPAL_I14443P4A_SAMAV2_X_ATS_TC1_CID_SUPPORT 0x02U

Bit within TC(1) which signals CID support.

§ PHPAL_I14443P4A_SAMAV2_X_FWI_DEFAULT

#define PHPAL_I14443P4A_SAMAV2_X_FWI_DEFAULT 0x04U

FWI default value.

§ PHPAL_I14443P4A_SAMAV2_X_FSCI_DEFAULT

#define PHPAL_I14443P4A_SAMAV2_X_FSCI_DEFAULT 0x02U

FSCI default value.

§ PHPAL_I14443P4A_SW_HALT_CMD

#define PHPAL_I14443P4A_SW_HALT_CMD 0x50U

HltA Command code.

§ PHPAL_I14443P4A_SW_RATS

#define PHPAL_I14443P4A_SW_RATS 0xE0U

Rats Command code.

§ PHPAL_I14443P4A_SW_PPSS

#define PHPAL_I14443P4A_SW_PPSS 0xD0U

PPS Command code.

§ PHPAL_I14443P4A_SW_PPS0

#define PHPAL_I14443P4A_SW_PPS0 0x11U

PPS0 code.

§ PHPAL_I14443P4A_SW_S_BLOCK

#define PHPAL_I14443P4A_SW_S_BLOCK 0xC0U

ISO 14443-4 S-Block.

§ PHPAL_I14443P4A_SW_S_BLOCK_RFU_BITS

#define PHPAL_I14443P4A_SW_S_BLOCK_RFU_BITS 0x02U

ISO 14443-4 S-Block RFU bits.

§ PHPAL_I14443P4A_SW_PCB_CID_FOLLOWING

#define PHPAL_I14443P4A_SW_PCB_CID_FOLLOWING 0x08U

Bit within PCB which signals presence of CID byte .

§ PHPAL_I14443P4A_SW_PCB_DESELECT

#define PHPAL_I14443P4A_SW_PCB_DESELECT 0x00U

Bits within PCB which signal a DESELECT command.

§ PHPAL_I14443P4A_SW_FWT_ACTIVATION_US

#define PHPAL_I14443P4A_SW_FWT_ACTIVATION_US 5286

Activation FTW in microseconds.

§ PHPAL_I14443P4A_SW_ATS_T0

#define PHPAL_I14443P4A_SW_ATS_T0 1

Position of T0 within ATS.

§ PHPAL_I14443P4A_SW_ATS_TA1_PRESENT

#define PHPAL_I14443P4A_SW_ATS_TA1_PRESENT 0x10U

Bit which signals TA(1) presence.

§ PHPAL_I14443P4A_SW_ATS_TB1_PRESENT

#define PHPAL_I14443P4A_SW_ATS_TB1_PRESENT 0x20U

Bit which signals TB(1) presence.

§ PHPAL_I14443P4A_SW_ATS_TC1_PRESENT

#define PHPAL_I14443P4A_SW_ATS_TC1_PRESENT 0x40U

Bit which signals TC(1) presence.

§ PHPAL_I14443P4A_SW_ATS_TC1_NAD_SUPPORT

#define PHPAL_I14443P4A_SW_ATS_TC1_NAD_SUPPORT 0x01U

Bit within TC(1) which signals NAD support.

§ PHPAL_I14443P4A_SW_ATS_TC1_CID_SUPPORT

#define PHPAL_I14443P4A_SW_ATS_TC1_CID_SUPPORT 0x02U

Bit within TC(1) which signals CID support.

§ PHPAL_I14443P4A_SW_FWI_DEFAULT

#define PHPAL_I14443P4A_SW_FWI_DEFAULT 0x04U

FWI default value.

§ PHPAL_I14443P4A_SW_SFGI_DEFAULT

#define PHPAL_I14443P4A_SW_SFGI_DEFAULT 0x00U

SFGI default value.

§ PHPAL_I14443P4A_SW_FSCI_DEFAULT

#define PHPAL_I14443P4A_SW_FSCI_DEFAULT 0x02U

FSCI default value.

§ PHPAL_I14443P4A_SW_FWT_MIN_US

#define PHPAL_I14443P4A_SW_FWT_MIN_US 303

FTW min in microseconds.

§ PHPAL_I14443P4A_SW_HALT_TIME_US

#define PHPAL_I14443P4A_SW_HALT_TIME_US 1100U

Wait time for halt command in microseconds.

§ PHPAL_I14443P4A_SW_EXT_TIME_US

#define PHPAL_I14443P4A_SW_EXT_TIME_US 60

Time extension in microseconds for all commands.

§ PHPAL_I14443P4A_FRAMESIZE_MAX

#define PHPAL_I14443P4A_FRAMESIZE_MAX 12

The maximum allowed FSDI/FSCI value as per ISO.

§ PHPAL_I14443P4A_EMVCO_FRAMESIZE_MAX

#define PHPAL_I14443P4A_EMVCO_FRAMESIZE_MAX 8

The maximum allowed FSDI/FSCI value as per Emvco and NfcForum.

§ PHPAL_I18000P3M3_CMD_SELECT

#define PHPAL_I18000P3M3_CMD_SELECT 0x0A

Select command code.

§ PHPAL_I18000P3M3_CMD_BEGIN_ROUND

#define PHPAL_I18000P3M3_CMD_BEGIN_ROUND 0x08

BeginRound command code.

§ PHPAL_I18000P3M3_CMD_RESIZE_ROUND

#define PHPAL_I18000P3M3_CMD_RESIZE_ROUND 0x09

ResizeRound command code.

§ PHPAL_I18000P3M3_CMD_NEXT_SLOT

#define PHPAL_I18000P3M3_CMD_NEXT_SLOT 0x00

NextSlot command code.

§ PHPAL_I18000P3M3_CMD_ACK

#define PHPAL_I18000P3M3_CMD_ACK 0x01

ACK command code.

§ PHPAL_I18000P3M3_CMD_NAK

#define PHPAL_I18000P3M3_CMD_NAK 0xC0

NAK command code.

§ PHPAL_I18092MPI_SW_IS_INVALID_BLOCK_STATUS

#define PHPAL_I18092MPI_SW_IS_INVALID_BLOCK_STATUS ( bStatus )
Value:
(( \
(((bStatus) & PH_ERR_MASK) == PH_ERR_IO_TIMEOUT) || \
(((bStatus) & PH_ERR_MASK) == PH_ERR_INTEGRITY_ERROR) || \
(((bStatus) & PH_ERR_MASK) == PH_ERR_FRAMING_ERROR) || \
(((bStatus) & PH_ERR_MASK) == PH_ERR_COLLISION_ERROR)) \
? 1 : 0 \
)
PH_ERR_COLLISION_ERROR
#define PH_ERR_COLLISION_ERROR
A collision occurred.
Definition: ph_Status.h:70
PH_ERR_FRAMING_ERROR
#define PH_ERR_FRAMING_ERROR
Invalid frame format.
Definition: ph_Status.h:72
PH_ERR_INTEGRITY_ERROR
#define PH_ERR_INTEGRITY_ERROR
Wrong CRC or parity detected.
Definition: ph_Status.h:69
PH_ERR_IO_TIMEOUT
#define PH_ERR_IO_TIMEOUT
No reply received, e.g.
Definition: ph_Status.h:68
PH_ERR_MASK
#define PH_ERR_MASK
Error Mask for status code.
Definition: ph_Status.h:157

Macro which checks for invalid block status.

§ PHPAL_I18092MPI_SW_IS_TIMEOUT

#define PHPAL_I18092MPI_SW_IS_TIMEOUT ( bPfb )
Value:
(( \
(((bPfb) & PHPAL_I18092MPI_SW_PFB_PDU_TYPE_MASK) == PHPAL_I18092MPI_SW_PFB_SUPERVISORY_PDU_MASK) && \
(((bPfb) & PHPAL_I18092MPI_SW_PFB_OPTION_MASK) == PHPAL_I18092MPI_SW_PFB_OPTION_MASK)) \
? 1 : 0 \
)
PHPAL_I18092MPI_SW_PFB_OPTION_MASK
#define PHPAL_I18092MPI_SW_PFB_OPTION_MASK
Bit mask within PDU for getting option field (NACK/ACK or ATTENTION/RTOS or MI).
Definition: phpalI18092mPI_Sw_Int.h:197
PHPAL_I18092MPI_SW_PFB_PDU_TYPE_MASK
#define PHPAL_I18092MPI_SW_PFB_PDU_TYPE_MASK
Bit mask within PFB to get type of PDU.
Definition: phpalI18092mPI_Sw_Int.h:185
PHPAL_I18092MPI_SW_PFB_SUPERVISORY_PDU_MASK
#define PHPAL_I18092MPI_SW_PFB_SUPERVISORY_PDU_MASK
Bit mask within PFB identifying a supervisory PDU.
Definition: phpalI18092mPI_Sw_Int.h:182

Macro which checks if given PDU is timeout PDU.

§ PHPAL_I18092MPI_SW_IS_ATTENTION

#define PHPAL_I18092MPI_SW_IS_ATTENTION ( bPfb )
Value:
(( \
(((bPfb) & PHPAL_I18092MPI_SW_PFB_PDU_TYPE_MASK) == PHPAL_I18092MPI_SW_PFB_SUPERVISORY_PDU_MASK) && \
(((bPfb) & PHPAL_I18092MPI_SW_PFB_OPTION_MASK) == 0x00)) \
? 1 : 0 \
)
PHPAL_I18092MPI_SW_PFB_OPTION_MASK
#define PHPAL_I18092MPI_SW_PFB_OPTION_MASK
Bit mask within PDU for getting option field (NACK/ACK or ATTENTION/RTOS or MI).
Definition: phpalI18092mPI_Sw_Int.h:197
PHPAL_I18092MPI_SW_PFB_PDU_TYPE_MASK
#define PHPAL_I18092MPI_SW_PFB_PDU_TYPE_MASK
Bit mask within PFB to get type of PDU.
Definition: phpalI18092mPI_Sw_Int.h:185
PHPAL_I18092MPI_SW_PFB_SUPERVISORY_PDU_MASK
#define PHPAL_I18092MPI_SW_PFB_SUPERVISORY_PDU_MASK
Bit mask within PFB identifying a supervisory PDU.
Definition: phpalI18092mPI_Sw_Int.h:182

Macro which checks if given PDU is ATN PDU.

§ PHPAL_I18092MPI_SW_IS_ACK

#define PHPAL_I18092MPI_SW_IS_ACK ( bPfb )
Value:
(( \
(((bPfb) & PHPAL_I18092MPI_SW_PFB_PDU_TYPE_MASK) == PHPAL_I18092MPI_SW_PFB_ACK_PDU_MASK) && \
(((bPfb) & PHPAL_I18092MPI_SW_PFB_OPTION_MASK) == 0x00)) \
? 1 : 0 \
)
PHPAL_I18092MPI_SW_PFB_OPTION_MASK
#define PHPAL_I18092MPI_SW_PFB_OPTION_MASK
Bit mask within PDU for getting option field (NACK/ACK or ATTENTION/RTOS or MI).
Definition: phpalI18092mPI_Sw_Int.h:197
PHPAL_I18092MPI_SW_PFB_ACK_PDU_MASK
#define PHPAL_I18092MPI_SW_PFB_ACK_PDU_MASK
Bit mask within PFB identifying an ACK/NACK PDU.
Definition: phpalI18092mPI_Sw_Int.h:179
PHPAL_I18092MPI_SW_PFB_PDU_TYPE_MASK
#define PHPAL_I18092MPI_SW_PFB_PDU_TYPE_MASK
Bit mask within PFB to get type of PDU.
Definition: phpalI18092mPI_Sw_Int.h:185

Macro which checks if given PDU is ACK PDU.

§ PHPAL_I18092MPI_SW_IS_NACK

#define PHPAL_I18092MPI_SW_IS_NACK ( bPfb )
Value:
(( \
(((bPfb) & PHPAL_I18092MPI_SW_PFB_PDU_TYPE_MASK) == PHPAL_I18092MPI_SW_PFB_ACK_PDU_MASK) && \
(((bPfb) & PHPAL_I18092MPI_SW_PFB_OPTION_MASK) == PHPAL_I18092MPI_SW_PFB_OPTION_MASK)) \
? 1 : 0 \
)
PHPAL_I18092MPI_SW_PFB_OPTION_MASK
#define PHPAL_I18092MPI_SW_PFB_OPTION_MASK
Bit mask within PDU for getting option field (NACK/ACK or ATTENTION/RTOS or MI).
Definition: phpalI18092mPI_Sw_Int.h:197
PHPAL_I18092MPI_SW_PFB_ACK_PDU_MASK
#define PHPAL_I18092MPI_SW_PFB_ACK_PDU_MASK
Bit mask within PFB identifying an ACK/NACK PDU.
Definition: phpalI18092mPI_Sw_Int.h:179
PHPAL_I18092MPI_SW_PFB_PDU_TYPE_MASK
#define PHPAL_I18092MPI_SW_PFB_PDU_TYPE_MASK
Bit mask within PFB to get type of PDU.
Definition: phpalI18092mPI_Sw_Int.h:185

Macro which checks if given PDU is NACK PDU.

§ PHPAL_I18092MPI_SW_IS_CHAINING

#define PHPAL_I18092MPI_SW_IS_CHAINING ( bPfb )
Value:
(( \
(((bPfb) & PHPAL_I18092MPI_SW_PFB_PDU_TYPE_MASK) == PHPAL_I18092MPI_SW_PFB_INFORMATION_PDU_MASK) && \
(((bPfb) & PHPAL_I18092MPI_SW_PFB_OPTION_MASK) == PHPAL_I18092MPI_SW_PFB_OPTION_MASK)) \
? 1 : 0 \
)
PHPAL_I18092MPI_SW_PFB_INFORMATION_PDU_MASK
#define PHPAL_I18092MPI_SW_PFB_INFORMATION_PDU_MASK
Bit mask within PFB identifying an information PDU.
Definition: phpalI18092mPI_Sw_Int.h:176
PHPAL_I18092MPI_SW_PFB_OPTION_MASK
#define PHPAL_I18092MPI_SW_PFB_OPTION_MASK
Bit mask within PDU for getting option field (NACK/ACK or ATTENTION/RTOS or MI).
Definition: phpalI18092mPI_Sw_Int.h:197
PHPAL_I18092MPI_SW_PFB_PDU_TYPE_MASK
#define PHPAL_I18092MPI_SW_PFB_PDU_TYPE_MASK
Bit mask within PFB to get type of PDU.
Definition: phpalI18092mPI_Sw_Int.h:185

Macro which checks if given I-PDU is chaining.

§ PHPAL_I18092MPI_SW_IS_NOT_CHAINING

#define PHPAL_I18092MPI_SW_IS_NOT_CHAINING ( bPfb )
Value:
(( \
(((bPfb) & PHPAL_I18092MPI_SW_PFB_PDU_TYPE_MASK) == PHPAL_I18092MPI_SW_PFB_INFORMATION_PDU_MASK) && \
(((bPfb) & PHPAL_I18092MPI_SW_PFB_OPTION_MASK) == 0x00)) \
? 1 : 0 \
)
PHPAL_I18092MPI_SW_PFB_INFORMATION_PDU_MASK
#define PHPAL_I18092MPI_SW_PFB_INFORMATION_PDU_MASK
Bit mask within PFB identifying an information PDU.
Definition: phpalI18092mPI_Sw_Int.h:176
PHPAL_I18092MPI_SW_PFB_OPTION_MASK
#define PHPAL_I18092MPI_SW_PFB_OPTION_MASK
Bit mask within PDU for getting option field (NACK/ACK or ATTENTION/RTOS or MI).
Definition: phpalI18092mPI_Sw_Int.h:197
PHPAL_I18092MPI_SW_PFB_PDU_TYPE_MASK
#define PHPAL_I18092MPI_SW_PFB_PDU_TYPE_MASK
Bit mask within PFB to get type of PDU.
Definition: phpalI18092mPI_Sw_Int.h:185

Macro which checks if given I-PDU is not chaining.

§ PHPAL_I18092MPI_SW_IS_INFORMATION_PDU

#define PHPAL_I18092MPI_SW_IS_INFORMATION_PDU ( bPfb )
Value:
( \
(((bPfb) & PHPAL_I18092MPI_SW_PFB_PDU_TYPE_MASK) == PHPAL_I18092MPI_SW_PFB_INFORMATION_PDU_MASK) \
? 1 : 0 \
)
PHPAL_I18092MPI_SW_PFB_INFORMATION_PDU_MASK
#define PHPAL_I18092MPI_SW_PFB_INFORMATION_PDU_MASK
Bit mask within PFB identifying an information PDU.
Definition: phpalI18092mPI_Sw_Int.h:176
PHPAL_I18092MPI_SW_PFB_PDU_TYPE_MASK
#define PHPAL_I18092MPI_SW_PFB_PDU_TYPE_MASK
Bit mask within PFB to get type of PDU.
Definition: phpalI18092mPI_Sw_Int.h:185

Macro which checks if given PDU is an I-PDU.

§ PHPAL_I18092MPI_SW_INCREMENT_PNI

#define PHPAL_I18092MPI_SW_INCREMENT_PNI ( bPni ) (((bPni) == 3) ? 0 : ((bPni) + 1))

Macro used to increment PNI.

§ PHPAL_I18092MPI_SW_START_BYTE

#define PHPAL_I18092MPI_SW_START_BYTE 0xF0U

Start Byte to be added to the protocol header in case underlying protocol is ISO14443.

§ PHPAL_I18092MPI_SW_CMD_REQUEST

#define PHPAL_I18092MPI_SW_CMD_REQUEST 0xD4U

Request command code.

§ PHPAL_I18092MPI_SW_CMD_RESPONSE

#define PHPAL_I18092MPI_SW_CMD_RESPONSE 0xD5U

Response command code.

§ PHPAL_I18092MPI_SW_CMD_ATR_REQ

#define PHPAL_I18092MPI_SW_CMD_ATR_REQ 0x00U

Attribute request command code.

§ PHPAL_I18092MPI_SW_ATR_PPI_LRI_BIT

#define PHPAL_I18092MPI_SW_ATR_PPI_LRI_BIT 0x04U

Bit position of LRi field within PPi byte for attribute request command.

§ PHPAL_I18092MPI_SW_CMD_ATR_RES

#define PHPAL_I18092MPI_SW_CMD_ATR_RES 0x01U

Attribute response command code.

§ PHPAL_I18092MPI_SW_CMD_PSL_REQ

#define PHPAL_I18092MPI_SW_CMD_PSL_REQ 0x04U

Parameter select request command code.

§ PHPAL_I18092MPI_SW_CMD_PSL_RES

#define PHPAL_I18092MPI_SW_CMD_PSL_RES 0x05U

Parameter select response command code.

§ PHPAL_I18092MPI_SW_CMD_DEP_REQ

#define PHPAL_I18092MPI_SW_CMD_DEP_REQ 0x06U

Data exchange protocol request command code.

§ PHPAL_I18092MPI_SW_CMD_DEP_RES

#define PHPAL_I18092MPI_SW_CMD_DEP_RES 0x07U

Data exchange protocol response command code.

§ PHPAL_I18092MPI_SW_CMD_DSL_REQ

#define PHPAL_I18092MPI_SW_CMD_DSL_REQ 0x08U

Deselect request command code.

§ PHPAL_I18092MPI_SW_CMD_DSL_RES

#define PHPAL_I18092MPI_SW_CMD_DSL_RES 0x09U

Deselect response command code.

§ PHPAL_I18092MPI_SW_CMD_RLS_REQ

#define PHPAL_I18092MPI_SW_CMD_RLS_REQ 0x0AU

Release request command code.

§ PHPAL_I18092MPI_SW_CMD_RLS_RES

#define PHPAL_I18092MPI_SW_CMD_RLS_RES 0x0BU

Release response command code.

§ PHPAL_I18092MPI_SW_CMD_WUP_REQ

#define PHPAL_I18092MPI_SW_CMD_WUP_REQ 0x02U

Wakeup request command code.

§ PHPAL_I18092MPI_SW_CMD_WUP_RES

#define PHPAL_I18092MPI_SW_CMD_WUP_RES 0x03U

Wakeup response command code.

§ PHPAL_I18092MPI_SW_ATR_RES_NFCID3_POS

#define PHPAL_I18092MPI_SW_ATR_RES_NFCID3_POS 0x02U

Position of NFCID3 within ATR_RES.

§ PHPAL_I18092MPI_SW_ATR_RES_DID_POS

#define PHPAL_I18092MPI_SW_ATR_RES_DID_POS 12U

Position of DID within ATR_RES.

§ PHPAL_I18092MPI_SW_ATR_RES_BST_POS

#define PHPAL_I18092MPI_SW_ATR_RES_BST_POS 13U

Position of BS(T) within ATR_RES.

§ PHPAL_I18092MPI_SW_ATR_RES_BRT_POS

#define PHPAL_I18092MPI_SW_ATR_RES_BRT_POS 14U

Position of BR(T) within ATR_RES.

§ PHPAL_I18092MPI_SW_ATR_RES_TO_POS

#define PHPAL_I18092MPI_SW_ATR_RES_TO_POS 15U

Position of TO within ATR_RES.

§ PHPAL_I18092MPI_SW_ATR_RES_PPT_POS

#define PHPAL_I18092MPI_SW_ATR_RES_PPT_POS 16U

Position of PP(T) within ATR_RES.

§ PHPAL_I18092MPI_SW_ATR_RES_PPT_GT_AVAILABLE

#define PHPAL_I18092MPI_SW_ATR_RES_PPT_GT_AVAILABLE 0x02U

Gt_available bit within PP(T) byte of ATR_RES.

§ PHPAL_I18092MPI_SW_ATR_RES_PPT_NAD_USED

#define PHPAL_I18092MPI_SW_ATR_RES_PPT_NAD_USED 0x01U

NAD_used bit within PP(T) byte of ATR_RES.

§ PHPAL_I18092MPI_SW_PFB_INFORMATION_PDU_MASK

#define PHPAL_I18092MPI_SW_PFB_INFORMATION_PDU_MASK 0x00U

Bit mask within PFB identifying an information PDU.

§ PHPAL_I18092MPI_SW_PFB_ACK_PDU_MASK

#define PHPAL_I18092MPI_SW_PFB_ACK_PDU_MASK 0x40U

Bit mask within PFB identifying an ACK/NACK PDU.

§ PHPAL_I18092MPI_SW_PFB_SUPERVISORY_PDU_MASK

#define PHPAL_I18092MPI_SW_PFB_SUPERVISORY_PDU_MASK 0x80U

Bit mask within PFB identifying a supervisory PDU.

§ PHPAL_I18092MPI_SW_PFB_PDU_TYPE_MASK

#define PHPAL_I18092MPI_SW_PFB_PDU_TYPE_MASK 0xE0U

Bit mask within PFB to get type of PDU.

§ PHPAL_I18092MPI_SW_PFB_NAD_MASK

#define PHPAL_I18092MPI_SW_PFB_NAD_MASK 0x08U

Bit mask within PFB for checking NAD enabler.

§ PHPAL_I18092MPI_SW_PFB_DID_MASK

#define PHPAL_I18092MPI_SW_PFB_DID_MASK 0x04U

Bit mask within PFB for checking DID enabler.

§ PHPAL_I18092MPI_SW_PFB_PNI_MASK

#define PHPAL_I18092MPI_SW_PFB_PNI_MASK 0x03U

Bit mask within PFB for getting PNI.

§ PHPAL_I18092MPI_SW_PFB_OPTION_MASK

#define PHPAL_I18092MPI_SW_PFB_OPTION_MASK 0x10U

Bit mask within PDU for getting option field (NACK/ACK or ATTENTION/RTOS or MI).

§ PHPAL_I18092MPI_SW_DELTA_T_INITIATOR_MS

#define PHPAL_I18092MPI_SW_DELTA_T_INITIATOR_MS 100U

Activation response waiting time in milliseconds, NFCForum-TS-DigitalProtocol-1.0 section A.10.

§ PHPAL_I18092MPI_SW_DELTA_RWT_US

#define PHPAL_I18092MPI_SW_DELTA_RWT_US 2U

Time extension in microseconds for all commands, NFCForum-TS-DigitalProtocol-1.0 section A.10.

§ PHPAL_I18092MPI_SW_RWT_ACTIVATION_MS

#define PHPAL_I18092MPI_SW_RWT_ACTIVATION_MS 1239U

Activation response waiting time in milliseconds, NFCForum-TS-DigitalProtocol-1.0 section A.10.

deltaRWT is included in this case.

§ PHPAL_I18092MPI_SW_RWT_MIN_US

#define PHPAL_I18092MPI_SW_RWT_MIN_US 302U

Minimum response waiting time, ISO/IEC 18092:2004(E) section 12.5.1.2.1.

§ PHPAL_I18092MPI_SW_TIRFG_MIN_MS

#define PHPAL_I18092MPI_SW_TIRFG_MIN_MS 5U

Minimum initial RF guard time before retry of ATR_REQ.

§ PHPAL_I18092MPI_SW_MIN_FRAMESIZE

#define PHPAL_I18092MPI_SW_MIN_FRAMESIZE 3U

Minimum frame size, NFCForum-TS-DigitalProtocol-1.0.

§ PHPAL_I18092MPI_SW_MAX_FRAMESIZE

#define PHPAL_I18092MPI_SW_MAX_FRAMESIZE 255U

Maximum frame size, NFCForum-TS-DigitalProtocol-1.0.

§ PHPAL_I18092MPI_SW_RETRIES_DEFAULT

#define PHPAL_I18092MPI_SW_RETRIES_DEFAULT 2U

Default (=minimum) Maximum Retry count, NFCForum-TS-DigitalProtocol-1.0 section A.10.

§ PHPAL_I18092MPI_SW_MIN_ACTIVATION_FRAME_LENGTH

#define PHPAL_I18092MPI_SW_MIN_ACTIVATION_FRAME_LENGTH 17U

Frame length must be min.

17 bytes during activation. (NFCForum-TS-DigitalProtocol-1.0, section 14.6.1.1.

§ PHPAL_I18092MPI_SW_MAX_ACTIVATION_FRAME_LENGTH

#define PHPAL_I18092MPI_SW_MAX_ACTIVATION_FRAME_LENGTH 64U

Frame length is limited to 64 bytes during activation.

(NFCForum-TS-DigitalProtocol-1.0, section 14.6.1.1.

§ PHPAL_I18092MPI_SW_STATE_INFORMATION_PDU_TX

#define PHPAL_I18092MPI_SW_STATE_INFORMATION_PDU_TX 0x00U

State information PDU to be transmitted.

§ PHPAL_I18092MPI_SW_STATE_ACK_PDU_TX

#define PHPAL_I18092MPI_SW_STATE_ACK_PDU_TX 0x01U

State ACK PDU to be transmitted.

§ PHPAL_I18092MPI_SW_STATE_INFORMATION_PDU_RX

#define PHPAL_I18092MPI_SW_STATE_INFORMATION_PDU_RX 0x02U

State information PDU to be received.

§ PHPAL_I18092MPI_SW_STATE_FINISHED

#define PHPAL_I18092MPI_SW_STATE_FINISHED 0x03U

Finished state.

§ PHPAL_I18092MPI_SW_STATE_MASK

#define PHPAL_I18092MPI_SW_STATE_MASK 0x0FU

State mask.

§ PHPAL_I18092MPI_SW_STATE_RETRANSMIT_BIT

#define PHPAL_I18092MPI_SW_STATE_RETRANSMIT_BIT 0x10U

Retransmission of information PDU.

§ PHPAL_I18092MPI_SW_STATE_CHAINING_BIT

#define PHPAL_I18092MPI_SW_STATE_CHAINING_BIT 0x20U

Information PDU is chaining.

§ PHPAL_I18092MPI_SW_STATE_CHAINING_FIRST_BIT

#define PHPAL_I18092MPI_SW_STATE_CHAINING_FIRST_BIT 0x40U

Information PDU is first block in chain.

§ PHPAL_I18092MPI_SW_STATE_CHAINING_LAST_BIT

#define PHPAL_I18092MPI_SW_STATE_CHAINING_LAST_BIT 0x80U

Information PDU is last block in chain.

§ PHPAL_SLI15693_SW_NXP_MFG_CODE

#define PHPAL_SLI15693_SW_NXP_MFG_CODE 0x04U

IC Manufacturer Code of NXP.

§ PHPAL_SLI15693_SW_EXT_TIME_US

#define PHPAL_SLI15693_SW_EXT_TIME_US 60

Time extension in microseconds for all commands.

§ PHPAL_SLI15693_SW_UID_COMPLETE

#define PHPAL_SLI15693_SW_UID_COMPLETE 64U

UID length in bits when complete.

§ PHPAL_SLI15693_SW_FLAGS_DEFAULT

#define PHPAL_SLI15693_SW_FLAGS_DEFAULT 0x06U

Default flags (DATA_RATE and INVENTORY BIT is set).

Function Documentation

§ phalI18000p3m3_Sw_ParseError()

phStatus_t phalI18000p3m3_Sw_ParseError | ( | phalI18000p3m3_Sw_DataParams_t * | pDataParams,
 |  | uint8_t * | pRxData,
 |  | uint16_t | wRxDataLength,
 |  | uint8_t | bRxLastBits
 | ) |  |

Parse received error frame.

Returns
Status code
Return values
PHAL_I18000P3M3_ERR_OTHER
PHAL_I18000P3M3_ERR_MEMORY_OVERRUN
PHAL_I18000P3M3_ERR_MEMORY_LOCKED
PHAL_I18000P3M3_ERR_INSUFFICIENT_POWER
PHAL_I18000P3M3_ERR_NON_SPECIFIC
PH_ERR_PROTOCOL_ERROR Either length or Handle does not match.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pRxData | Received data.
[in] | wRxDataLength | Length of received data in bytes.
[in] | bRxLastBits | Valid bits of last byte of RxData.

§ phalMfc_Int_Transfer()

phStatus_t phalMfc_Int_Transfer | ( | void * | pPalMifareDataParams,
 |  | uint8_t | bBlockNo
 | ) |  |

Perform MIFARE(R) Transfer command with MIFARE Picc.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pPalMifareDataParams | Pointer to a palMifare component context.
[in] | bBlockNo | block number the transfer buffer shall be transferred to.

§ phalMfc_Int_Value()

phStatus_t phalMfc_Int_Value | ( | void * | pPalMifareDataParams,
 |  | uint8_t | bCmdCode,
 |  | uint8_t | bBlockNo,
 |  | uint8_t * | pValue
 | ) |  |

Perform a MIFARE(R) Value operation with MIFARE Picc.

This is used by INCREMENT, DECREMENT and RESTORE commands.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pPalMifareDataParams | Pointer to a palMifare component context.
[in] | bCmdCode | Command Code - INC/DEC or RST.
[in] | bBlockNo | Block Number.
[in] | pValue | Value; (Needs to be zero in case of RST command).

§ phalMfc_Int_CreateValueBlock()

phStatus_t phalMfc_Int_CreateValueBlock | ( | uint8_t * | pValue,
 |  | uint8_t | bAddrData,
 |  | uint8_t * | pBlock
 | ) |  |

Create a Value block for a given value/addr pair.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pValue | Value to be converted.
[in] | bAddrData | bAddrData containing destination address.
[out] | pBlock | Formatted Value block.

§ phalMfc_Int_CheckValueBlockFormat()

phStatus_t phalMfc_Int_CheckValueBlockFormat ( uint8_t * pBlock )

Check value block format of a given block.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] pBlock Formatted Value block.

§ phalMfc_Int_ResolveReturnCode()

phStatus_t phalMfc_Int_ResolveReturnCode ( uint8_t bRetCode )

Resolve MIFARE(R) error code from response.

Returns
Status code
Return values
PH_ERR_SUCCESS | ACK received.
PHPAL_MIFARE_ERR_NAK0 | NAK0 received.
PHPAL_MIFARE_ERR_NAK1 | NAK1 received.
PHPAL_MIFARE_ERR_NAK4 | NAK4 received.
PHPAL_MIFARE_ERR_NAK5 | NAK5 received.
PH_ERR_PROTOCOL_ERROR | Unspecified response.
Parameters
[in] bRetCode Return Code byte from Card.

§ phalMfc_SamAV2_X_ConvertNak()

phStatus_t phalMfc_SamAV2_X_ConvertNak ( phStatus_t status )

Convert HAL Nak codes into palMifare NAK codes.

Returns
Status code
Return values
PHPAL_MIFARE_ERR_NAK0 | NAK 0.
PHPAL_MIFARE_ERR_NAK1 | NAK 1.
PHPAL_MIFARE_ERR_NAK4 | NAK 4.
PHPAL_MIFARE_ERR_NAK5 | NAK 5.
Other | Depending on implementation and underlying component.
Parameters
[in] status HAL NAK Code.

§ phalMfp_Int_ComputeErrorResponse()

phStatus_t phalMfp_Int_ComputeErrorResponse | ( | uint16_t | wNumBytesReceived,
 |  | uint8_t | bStatus,
 |  | uint8_t | bLayer4Comm
 | ) |  |

Evaluate if the received response is erroneus.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | wNumBytesReceived | Number of bytes received from the card.
[in] | bStatus | Status byte received from the card.
[in] | bLayer4Comm | 0: use ISO14443-3 protocol; 1: use ISO14443-4 protocol.

§ phalMfp_Int_WritePerso()

phStatus_t phalMfp_Int_WritePerso | ( | void * | pPalMifareDataParams,
 |  | uint8_t | bLayer4Comm,
 |  | uint16_t | wBlockNr,
 |  | uint8_t * | pValue
 | ) |  |

Perform a MIFARE Plus Write Perso command.

The Write Perso command can be executed using the ISO14443-3 communication protocol (after layer 3 activation) or using the ISO14443-4 protocol (after layer 4 activation).

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pPalMifareDataParams | Pointer to a palMifare component context.
[in] | bLayer4Comm | 0: use ISO14443-3 protocol; 1: use ISO14443-4 protocol.
[in] | wBlockNr | MIFARE Block number.
[in] | pValue | Value (16 bytes).

§ phalMfp_Int_CommitPerso()

phStatus_t phalMfp_Int_CommitPerso | ( | void * | pPalMifareDataParams,
 |  | uint8_t | bLayer4Comm
 | ) |  |

Perform a MIFARE Plus Commit Perso command.

The Commit Perso command can be executed using the ISO14443-3 communication protocol (after layer 3 activation) or using the ISO14443-4 protocol (after layer 4 activation).

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pPalMifareDataParams | Pointer to a palMifare component context.
[in] | bLayer4Comm | 0: use ISO14443-3 protocol; 1: use ISO14443-4 protocol.

§ phalMfp_Int_ResetAuth()

phStatus_t phalMfp_Int_ResetAuth ( void * pPalMifareDataParams )

Perform a MIFARE Plus Reset Authenticate command.

The Reset Authenticate command is executed using the ISO14443-4 communication protocol (after layer 4 activation)

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] pPalMifareDataParams Pointer to a palMifare component context.

§ phalMfp_Int_PrepareProximityCheck()

phStatus_t phalMfp_Int_PrepareProximityCheck ( void * pPalMifareDataParams )

Perform a Prepare Proximity Check command.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] pPalMifareDataParams Pointer to a palMifare component context.

§ phalMfp_Int_ProximityCheck()

phStatus_t phalMfp_Int_ProximityCheck | ( | void * | pPalMifareDataParams,
 |  | uint8_t | bNumSteps,
 |  | uint8_t * | pRndC,
 |  | uint8_t * | pRndRC
 | ) |  |

Perform a Proximity Check command.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pPalMifareDataParams | Pointer to a palMifare component context.
[in] | bNumSteps | Number of steps for the PC (1..7).
[in] | pRndC | RndC[7].
[out] | pRndRC | RndRC[14].

§ phalMfp_Int_MultiBlockRead()

phStatus_t phalMfp_Int_MultiBlockRead | ( | void * | pPalMifareDataParams,
 |  | uint8_t | bBlockNr,
 |  | uint8_t | bNumBlocks,
 |  | uint8_t * | pBlocks
 | ) |  |

Perform a Multi Block Read command.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pPalMifareDataParams | Pointer to a palMifare component context.
[in] | bBlockNr | MIFARE Block number.
[in] | bNumBlocks | Number of blocks to read (should not be more than 3).
[out] | pBlocks | Block(s); uint8_t[16 * bNumBlocks].

§ phalMfp_Int_MultiBlockWrite()

phStatus_t phalMfp_Int_MultiBlockWrite | ( | void * | pPalMifareDataParams,
 |  | uint8_t | bBlockNr,
 |  | uint8_t | bNumBlocks,
 |  | uint8_t * | pBlocks
 | ) |  |

Perform a Multi Block Write command.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pPalMifareDataParams | Pointer to a palMifare component context.
[in] | bBlockNr | MIFARE Block number.
[in] | bNumBlocks | Number of blocks to write (should not be more than 3).
[in] | pBlocks | Block(s); uint8_t[16 * bNumBlocks].

§ phalMfp_Int_CreateValueBlock()

phStatus_t phalMfp_Int_CreateValueBlock | ( | uint8_t * | pValue,
 |  | uint8_t | bAddrData,
 |  | uint8_t * | pBlock
 | ) |  |

Create a Value block for a given value/addr pair.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pValue | Value to be converted.
[in] | bAddrData | bAddrData containing destination address.
[out] | pBlock | Formatted Value block.

§ phalMfp_Int_CheckValueBlockFormat()

phStatus_t phalMfp_Int_CheckValueBlockFormat ( uint8_t * pBlock )

Check value block format of a given block.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] pBlock Formatted Value block.

§ phalMfp_SamAV2_AuthenticateGeneral()

phStatus_t phalMfp_SamAV2_AuthenticateGeneral | ( | phalMfp_SamAV2_DataParams_t * | pDataParams,
 |  | uint8_t | bLayer4Comm,
 |  | uint8_t | bFirstAuth,
 |  | uint16_t | wBlockNr,
 |  | uint16_t | wKeyNumber,
 |  | uint16_t | wKeyVersion,
 |  | uint8_t | bLenDivInput,
 |  | uint8_t * | pDivInput,
 |  | uint8_t | bUseKdfSl2,
 |  | uint8_t | bLenPcdCap2,
 |  | uint8_t * | pPcdCap2In,
 |  | uint8_t * | pPcdCap2Out,
 |  | uint8_t * | pPdCap2
 | ) |  |

Perform a complete MIFARE Plus Authentication for either Security Level.

Refer to the respective Authentication function for description.

See also
phalMfp_AuthenticateSL0
phalMfp_AuthenticateSL1
phalMfp_AuthenticateSL2
phalMfp_AuthenticateSL3
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bLayer4Comm | 0: use ISO14443-3 protocol; 1: use ISO14443-4 protocol;
[in] | bFirstAuth | 0: Following Authentication; 1: First Authentication;
[in] | wBlockNr | Key Block number.
[in] | wKeyNumber | Key Storage number.
[in] | wKeyVersion | Key Storage version.
[in] | bLenDivInput | Length of diversification input used to diversify the key. If 0, no diversification is performed.
[in] | pDivInput | Diversification Input used to diversify the key.
[in] | bUseKdfSl2 | Indicates if a Key derivation for SL2 should be performed.
[in] | bLenPcdCap2 | Lengh of the supplied PCDCaps.
[in] | pPcdCap2In | Pointer to PCDCaps (bLenPcdCap2 bytes), ignored if bLenPcdCap2 == 0.
[out] | pPcdCap2Out | Pointer to PCDCaps sent from the card (6 bytes).
[out] | pPdCap2 | Pointer to PCDCaps sent from the card (6 bytes).

§ phalMfp_SamAV2_WriteExt()

phStatus_t phalMfp_SamAV2_WriteExt | ( | phalMfp_SamAV2_DataParams_t * | pDataParams,
 |  | uint8_t | bCmdCode,
 |  | uint16_t | wSrcBnr,
 |  | uint16_t | wDstBnr,
 |  | uint8_t * | pData,
 |  | uint8_t | bDataLength
 | ) |  |

Perform a Write command in all it's flavours.

Refer to the respective Write function for description.

See also
phalMfp_Write
phalMfp_Increment
phalMfp_Decrement
phalMfp_IncrementTransfer
phalMfp_DecrementTransfer
phalMfp_Transfer
phalMfp_Restore
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bCmdCode | MIFARE Plus Command Code.
[in] | wSrcBnr | Source Block number.
[in] | wDstBnr | Destination Block number.
[in] | pData | Payload data.
[in] | bDataLength | Length of payload data.

§ phalMfp_SamAV2_X_WriteExt()

phStatus_t phalMfp_SamAV2_X_WriteExt | ( | phalMfp_SamAV2_X_DataParams_t * | pDataParams,
 |  | uint8_t | bCmdCode,
 |  | uint16_t | wSrcBnr,
 |  | uint16_t | wDstBnr,
 |  | uint8_t * | pData,
 |  | uint8_t | bDataLength
 | ) |  |

Perform a Write command in all it's flavours.

Refer to the respective Write function for description.

See also
phalMfp_Write
phalMfp_Increment
phalMfp_Decrement
phalMfp_IncrementTransfer
phalMfp_DecrementTransfer
phalMfp_Transfer
phalMfp_Restore
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bCmdCode | MIFARE Plus Command Code.
[in] | wSrcBnr | Source Block number.
[in] | wDstBnr | Destination Block number.
[in] | pData | Payload data.
[in] | bDataLength | Length of payload data.

§ phalMfp_SamAV2_X_ConvertNak()

phStatus_t phalMfp_SamAV2_X_ConvertNak ( phStatus_t status )

Convert HAL Nak codes into palMifare NAK codes.

Returns
Status code
Return values
PHPAL_MIFARE_ERR_NAK0 | NAK 0.
PHPAL_MIFARE_ERR_NAK1 | NAK 1.
PHPAL_MIFARE_ERR_NAK4 | NAK 4.
PHPAL_MIFARE_ERR_NAK5 | NAK 5.
Other | Depending on implementation and underlying component.
Parameters
[in] status HAL NAK Code.

§ phalMfp_Sw_AuthenticateGeneral()

phStatus_t phalMfp_Sw_AuthenticateGeneral | ( | phalMfp_Sw_DataParams_t * | pDataParams,
 |  | uint8_t | bLayer4Comm,
 |  | uint8_t | bFirstAuth,
 |  | uint16_t | wBlockNr,
 |  | uint16_t | wKeyNumber,
 |  | uint16_t | wKeyVersion,
 |  | uint8_t | bLenDivInput,
 |  | uint8_t * | pDivInput,
 |  | uint8_t | bUseKdfSl2,
 |  | uint8_t | bLenPcdCap2,
 |  | uint8_t * | pPcdCap2In,
 |  | uint8_t * | pPcdCap2Out,
 |  | uint8_t * | pPdCap2
 | ) |  |

Perform a complete MIFARE Plus Authentication for either Security Level.

Refer to the respective Authentication function for description.

See also
phalMfp_AuthenticateSL0
phalMfp_AuthenticateSL1
phalMfp_AuthenticateSL2
phalMfp_AuthenticateSL3
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bLayer4Comm | 0: use ISO14443-3 protocol; 1: use ISO14443-4 protocol;
[in] | bFirstAuth | 0: Following Authentication; 1: First Authentication;
[in] | wBlockNr | Key Block number.
[in] | wKeyNumber | Key Storage number.
[in] | wKeyVersion | Key Storage version.
[in] | bLenDivInput | Length of diversification input used to diversify the key. If 0, no diversification is performed.
[in] | pDivInput | Diversification Input used to diversify the key.
[in] | bUseKdfSl2 | Indicates if a Key derivation for SL2 should be performed.
[in] | bLenPcdCap2 | Lengh of the supplied PCDCaps.
[in] | pPcdCap2In | Pointer to PCDCaps (bLenPcdCap2 bytes), ignored if bLenPcdCap2 == 0.
[in] | pPcdCap2Out | Pointer to PCDCaps sent from the card (6 bytes).
[out] | pPdCap2 | Pointer to PDCaps sent from the card (6 bytes).

§ phalMfp_Sw_WriteExt()

phStatus_t phalMfp_Sw_WriteExt | ( | phalMfp_Sw_DataParams_t * | pDataParams,
 |  | uint8_t | bCmdCode,
 |  | uint16_t | wSrcBnr,
 |  | uint16_t | wDstBnr,
 |  | uint8_t * | pData,
 |  | uint16_t | wDataLength,
 |  | uint8_t | bEncrypted
 | ) |  |

Perform a Write command in all it's flavours.

Refer to the respective Write function for description.

See also
phalMfp_Write
phalMfp_Increment
phalMfp_Decrement
phalMfp_IncrementTransfer
phalMfp_DecrementTransfer
phalMfp_Transfer
phalMfp_Restore
Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bCmdCode | MIFARE Plus Command Code.
[in] | wSrcBnr | Source Block number.
[in] | wDstBnr | Destination Block number.
[in] | pData | Payload data.
[in] | wDataLength | Length of payload data.
[in] | bEncrypted | indicates whether the data should be encrypted or not.

§ phalMfp_Sw_Int_ComputeIv()

phStatus_t phalMfp_Sw_Int_ComputeIv | ( | uint8_t | bIsResponse,
 |  | uint8_t * | pTi,
 |  | uint16_t | wRCtr,
 |  | uint16_t | wWCtr,
 |  | uint8_t * | pIv
 | ) |  |

Calculate the Init-Vector for encryption from input data.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | bIsResponse | Whether this is a response or command or not.
[in] | pTi | Transaction Identifier; uint8_t[4].
[in] | wRCtr | R_CTR (read counter).
[in] | wWCtr | W_CTR (write counter).
[out] | pIv | Initvector; uint8_t[16].

§ phalMfp_Sw_Int_KdfSl2()

phStatus_t phalMfp_Sw_Int_KdfSl2 | ( | phalMfp_Sw_DataParams_t * | pDataParams,
 |  | uint8_t * | pRndA,
 |  | uint8_t * | pRndB
 | ) |  |

Perform a SL2 Key Derivation Function.

This function derives the MIFARE Sector Key.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pRndA | Pointer to RndA Buffer.
[in] | pRndB | Pointer to RndB Buffer.

§ phalMfp_Sw_Int_KdfSl3()

phStatus_t phalMfp_Sw_Int_KdfSl3 | ( | phalMfp_Sw_DataParams_t * | pDataParams,
 |  | uint8_t * | pRndA,
 |  | uint8_t * | pRndB
 | ) |  |

Perform a SL3 Key Derivation Function.

This function derives the MIFARE Sector Key.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pRndA | Pointer to RndA Buffer.
[in] | pRndB | Pointer to RndB Buffer.

§ phalMfp_Sw_Int_TruncateMac()

void phalMfp_Sw_Int_TruncateMac | ( | uint8_t * | pMac,
 |  | uint8_t * | pTruncatedMac
 | ) |  |

Perform MIFARE Plus specific MAC truncation.

Parameters
[in] | pMac | MAC; uint8_t[16].
[out] | pTruncatedMac | Truncated MAC; uint8_t[8].

§ phbalReg_SerialWin_SetMode()

phStatus_t phbalReg_SerialWin_SetMode | ( | void * | phPort,
 |  | uint32_t | dwBitRate,
 |  | uint8_t | bStopBits
 | ) |  |

Change host bit rate.

Changes host bit rate, stop bits and applies default settings (parity and the like).

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | phPort | handle to an open communication port
[in] | dwBitRate | bit rate value in windows-style (like '115200', in decimal)
[in] | bStopBits | number of stop bits

§ phbalReg_SerialWin_SetTimeout()

phStatus_t phbalReg_SerialWin_SetTimeout | ( | void * | phPort,
 |  | uint32_t | dwTimeout
 | ) |  |

Change reception timeout.

Applies new serial reception timeout

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | phPort | handle to an open communication port
[in] | dwTimeout | timeout value in windows-style (like '500', in milliseconds)

§ phKeyStore_Sw_GetKeyValuePtrPos()

phStatus_t phKeyStore_Sw_GetKeyValuePtrPos | ( | phKeyStore_Sw_DataParams_t * | pDataParams,
 |  | uint16_t | wKeyNumber,
 |  | uint16_t | wPos,
 |  | phKeyStore_Sw_KeyVersionPair_t ** | pKeyVersion
 | ) |  |

Get the pointer to a KeyValue Pair given a Key number and a Key position.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wKeyNumber | desired key number.
[in] | wPos | desired key position.
[out] | pKeyVersion | Pointer to the KeyVerison Pair.

§ phKeyStore_Sw_GetKeyValuePtrVersion()

phStatus_t phKeyStore_Sw_GetKeyValuePtrVersion | ( | phKeyStore_Sw_DataParams_t * | pDataParams,
 |  | uint16_t | wKeyNumber,
 |  | uint16_t | wKeyVersion,
 |  | phKeyStore_Sw_KeyVersionPair_t ** | pKeyVersion
 | ) |  |

Get the pointer to a KeyValue Pair given a Key number and a KeyVersion.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wKeyNumber | desired key number.
[in] | wKeyVersion | desired key version.
[out] | pKeyVersion | Pointer to the KeyVerison Pair.

§ phKeyStore_Sw_CheckUpdateKUC()

phStatus_t phKeyStore_Sw_CheckUpdateKUC | ( | phKeyStore_Sw_DataParams_t * | pDataParams,
 |  | uint16_t | wKeyUsageCtrNumber
 | ) |  |

Check value of a counter and increment it accordingly.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wKeyUsageCtrNumber | KUC Number.

§ phLog_GetRegisteredEntry()

phLog_RegisterEntry_t* phLog_GetRegisteredEntry ( void * pDataParams )

Retreive phLog_RegisterEntry_t corresponding to given DataParams pointer.

Parameters
[in] pDataParams The DataParams of the calling function.

§ phLog_AddParam_Raw()

void phLog_AddParam_Raw | ( | void * | pDataParams,
 |  | uint8_t | bLogType,
 |  | const char * | pName,
 |  | const void * | pParam,
 |  | uint16_t | wLength,
 |  | uint8_t | bDataType
 | ) |  |

Add a new log entry containing raw data.

See also
phLog_LogEnty_t
Parameters
[in] | pDataParams | The DataParams of the calling function.
[in] | bLogType | Type of Entry (one of the PH_LOG_LOGTYPE_* values).
[in] | pName | The Null-terminated name of the parameter.
[in] | pParam | Pointer to the memory where the parameter resides.
[in] | wLength | The length in bytes to the supplied buffer.
[in] | bDataType | Indicates the value type (either #PH_LOG_DATATYPE_BUFFER or #PH_LOG_DATATYPE_VALUE).

§ phpalI14443p3a_Sw_RequestAEx()

phStatus_t phpalI14443p3a_Sw_RequestAEx | ( | phpalI14443p3a_Sw_DataParams_t * | pDataParams,
 |  | uint8_t | bReqCode,
 |  | uint8_t * | pAtqa
 | ) |  |

Perform a ISO14443-3A Request or Wakeup command.

Request Codes:
REQUEST: bReqCode = 0x52
WAKEUP: bReqCode = 0x26

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bReqCode | request code according to ISO14443-3A.
[out] | pAtqa | AtqA; uint8_t[2].

§ phpalI14443p3b_Sw_RequestBEx()

phStatus_t phpalI14443p3b_Sw_RequestBEx | ( | phpalI14443p3b_Sw_DataParams_t * | pDataParams,
 |  | uint8_t | bIsWakeUp,
 |  | uint8_t | bNumSlots,
 |  | uint8_t | bAfi,
 |  | uint8_t | bExtAtqb,
 |  | uint8_t * | pAtqb,
 |  | uint8_t * | pAtqbLen
 | ) |  |

Perform a ISO14443-3B Request/Wakeup command.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] | bIsWakeUp | Performs ReqB if bIsWakeUp=0 and WupB if bIsWakeUp=1.
[in] | bNumSlots | Number of slots.
[in] | bAfi | AFI; Application Family Indentifier.
[in] | bExtAtqb | Enable Extended AtqB.
[out] | pAtqb | AtqB; uint8_t[13].
[out] | pAtqbLen | Length of received ATQB (12/13 bytes)

§ phpalI14443p3b_Sw_CheckATQBEx()

phStatus_t phpalI14443p3b_Sw_CheckATQBEx | ( | phpalI14443p3b_Sw_DataParams_t * | pDataParams,
 |  | uint8_t * | pResp,
 |  | uint16_t | wRespLength,
 |  | uint8_t * | pAtqb,
 |  | uint8_t * | pAtqbLen
 | ) |  |

Check the received answer to Request/Wakeup/SlotMarker command.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
Other | Depending on implementation and underlaying component.

§ phpalI14443p3b_Sw_SetReaderBaudRateEx()

phStatus_t phpalI14443p3b_Sw_SetReaderBaudRateEx ( phpalI14443p3b_Sw_DataParams_t * pDataParams )

Set the baud rate on the reader device.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
Other | Depending on implementation and underlaying component.

§ phpalI14443p3b_Sw_DecideBaudRateEx()

phStatus_t phpalI14443p3b_Sw_DecideBaudRateEx | ( | uint8_t | bBitRateCapability,
 |  | uint8_t * | pbDri,
 |  | uint8_t * | pbDsi
 | ) |  |

Decide which baud rate to use depending on the VICCs capabilities and the callers request.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
Other | Depending on implementation and underlaying component.

§ phpalI14443p4_Sw_BuildIBlock()

phStatus_t phpalI14443p4_Sw_BuildIBlock | ( | uint8_t | bCidEnabled,
 |  | uint8_t | bCid,
 |  | uint8_t | bNadEnabled,
 |  | uint8_t | bNad,
 |  | uint8_t | bPcbBlockNum,
 |  | uint8_t | bChaining,
 |  | uint8_t * | pTxBuffer,
 |  | uint16_t * | pTxLength
 | ) |  |

Build I-Block frame header.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | bCidEnabled | Set to != 0 to enable CID byte
[in] | bCid | CID byte
[in] | bNadEnabled | Set to != 0 to enable NAD byte
[in] | bNad | NAD byte
[in] | bPcbBlockNum | PCB block number bit
[in] | bChaining | Set to != 0 if chaining bit should be set
[out] | pTxBuffer | transmit buffer
[out] | pTxLength | number of bytes to send

§ phpalI14443p4_Sw_BuildRBlock()

phStatus_t phpalI14443p4_Sw_BuildRBlock | ( | uint8_t | bCidEnabled,
 |  | uint8_t | bCid,
 |  | uint8_t | bPcbBlockNum,
 |  | uint8_t | bIsAck,
 |  | uint8_t * | pTxBuffer,
 |  | uint16_t * | pTxLength
 | ) |  |

Build R(ACK) / R(NAK) frames.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | bCidEnabled | Set to != 0 to enable CID byte
[in] | bCid | CID byte
[in] | bPcbBlockNum | PCB block number bit
[in] | bIsAck | Set to != 0 if an ACK should be generated
[out] | pTxBuffer | transmit buffer
[out] | pTxLength | number of bytes to send

§ phpalI14443p4_Sw_BuildSBlock()

phStatus_t phpalI14443p4_Sw_BuildSBlock | ( | uint8_t | bCidEnabled,
 |  | uint8_t | bCid,
 |  | uint8_t | bIsWtx,
 |  | uint8_t | bWtxm,
 |  | uint8_t * | pTxBuffer,
 |  | uint16_t * | pTxLength
 | ) |  |

Build S-Block frames.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | bCidEnabled | Set to != 0 to enable CID byte
[in] | bCid | CID byte
[in] | bIsWtx | Set to != 0 if a WTX frame should be generated
[in] | bWtxm | WTXM bits, used if /ref bIsWtx is set
[out] | pTxBuffer | transmit buffer
[out] | pTxLength | number of bytes to send

§ phpalI14443p4_Sw_IsValidIBlock()

phStatus_t phpalI14443p4_Sw_IsValidIBlock | ( | uint8_t | bCheckCid,
 |  | uint8_t | bCid,
 |  | uint8_t | bCheckNad,
 |  | uint8_t | bNad,
 |  | uint8_t * | pRxBuffer,
 |  | uint16_t | wRxLength
 | ) |  |

Check if received I-Block is valid.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Block invalid.
Parameters
[in] | bCheckCid | Set to != 0 to enable CID check
[in] | bCid | Current CID for comparison
[in] | bCheckNad | Set to != 0 to enable NAD check
[in] | bNad | Current NAD for comparison
[in] | pRxBuffer | Received data
[in] | wRxLength | Number of received data bytes

§ phpalI14443p4_Sw_IsValidRBlock()

phStatus_t phpalI14443p4_Sw_IsValidRBlock | ( | uint8_t | bCheckCid,
 |  | uint8_t | bCid,
 |  | uint8_t * | pRxBuffer,
 |  | uint16_t | wRxLength
 | ) |  |

Check if received R-Block is valid.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Block invalid.
Parameters
[in] | bCheckCid | Set to != 0 to enable CID check
[in] | bCid | Current CID for comparison
[in] | pRxBuffer | Received data
[in] | wRxLength | Number of received data bytes

§ phpalI14443p4_Sw_IsValidSBlock()

phStatus_t phpalI14443p4_Sw_IsValidSBlock | ( | uint8_t | bCheckCid,
 |  | uint8_t | bCid,
 |  | uint8_t * | pRxBuffer,
 |  | uint16_t | wRxLength
 | ) |  |

Check if received S-Block is valid.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Block invalid.
Parameters
[in] | bCheckCid | Set to != 0 to enable CID check
[in] | bCid | Current CID for comparison
[in] | pRxBuffer | Received data
[in] | wRxLength | Number of received data bytes

§ phpalI14443p4_Sw_IsoHandling()

phStatus_t phpalI14443p4_Sw_IsoHandling | ( | phpalI14443p4_Sw_DataParams_t * | pDataParams,
 |  | uint16_t | wOption,
 |  | uint8_t | bRetryCount,
 |  | uint8_t * | pTxBuffer,
 |  | uint16_t | wTxLength,
 |  | uint8_t ** | ppRxBuffer,
 |  | uint16_t * | pRxLength
 | ) |  |

Perform actual exchanging and take care about error handling etc.

Checks response and performs state transition and complete error & WTX handling if neecessary.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wOption | option parameter.
[in] | bRetryCount | number of already performed retries.
[in] | pTxBuffer | data to transmit
[in] | wTxLength | length of input data
[out] | ppRxBuffer | Pointer to received data
[in] | pRxLength | Received data bytes

§ phpalI18092mPI_Sw_WriteFrameHeader()

phStatus_t phpalI18092mPI_Sw_WriteFrameHeader | ( | phpalI18092mPI_Sw_DataParams_t * | pDataParams,
 |  | uint16_t | wOption,
 |  | uint8_t | bCommandCode,
 |  | uint8_t | bDataLength
 | ) |  |

Write header of transport protocol frame to internal buffer of HAL.

Internal buffer is cleared first and protocol frame header is written without setting length field since frame size is not known at this point.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wOption | Option parameter.
[in] | bCommandCode | Code of the request command to send.
[in] | bDataLength | Length of data field.

§ phpalI18092mPI_Sw_WritePduHeader()

phStatus_t phpalI18092mPI_Sw_WritePduHeader | ( | phpalI18092mPI_Sw_DataParams_t * | pDataParams,
 |  | uint8_t | bPduMask,
 |  | uint8_t | bOption,
 |  | uint8_t | bDataLength
 | ) |  |

Write PDU header to internal buffer of HAL.

The following values for bPduMask are possible:

  • PHPAL_I18092MPI_SW_PFB_INFORMATION_PDU_MASK
  • PHPAL_I18092MPI_SW_PFB_ACK_PDU_MASK
  • PHPAL_I18092MPI_SW_PFB_SUPERVISORY_PDU_MASK
Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bPduMask | Bit mask of the desired PDU type.
[in] | bOption | Option bit; either PH_ON or PH_OFF.
[in] | bDataLength | Length of data field.

§ phpalI18092mPI_Sw_UpdatePduHeader()

phStatus_t phpalI18092mPI_Sw_UpdatePduHeader | ( | phpalI18092mPI_Sw_DataParams_t * | pDataParams,
 |  | uint8_t | bDataLength
 | ) |  |

Update the length field within protocol frame header.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | bDataLength | Length of data field.

§ phpalI18092mPI_Sw_GetPduHeaderLength()

phStatus_t phpalI18092mPI_Sw_GetPduHeaderLength | ( | phpalI18092mPI_Sw_DataParams_t * | pDataParams,
 |  | uint8_t * | pProtLength
 | ) |  |

Retrieve the length of protocol frame header.

Returns
Status code
Return values
PH_ERR_SUCCESS Operation successful.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[out] | pProtLength | Complete protocol length starting at the command byte.

§ phpalI18092mPI_Sw_ValidateAndNormalizeResponseFrame()

phStatus_t phpalI18092mPI_Sw_ValidateAndNormalizeResponseFrame | ( | phpalI18092mPI_Sw_DataParams_t * | pDataParams,
 |  | uint8_t * | pFrame,
 |  | uint16_t | wFrameLength,
 |  | uint8_t | bExpectedResponseCode,
 |  | uint8_t ** | ppValidatedFrame,
 |  | uint16_t * | pValidatedFrameLength,
 |  | uint8_t ** | ppPayload,
 |  | uint16_t * | pPayloadLength
 | ) |  |

Basic check if the received response is a valid frame.

Frame is also normalized, i.e. start byte in case of 106kbps data rate is removed.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful, frame seems to be a valid response frame.
PH_ERR_PROTOCOL_ERROR | Not a valid response frame.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | pFrame | Pointer to the received data buffer.
[in] | wFrameLength | Length of the received frame.
[in] | bExpectedResponseCode | The expected response command code the frame should contain.
[out] | ppValidatedFrame | Pointer to validated and normalized frame.
[out] | pValidatedFrameLength | Length of validated and normalized frame.
[out] | ppPayload | Pointer to begin of data payload (header skipped).
[out] | pPayloadLength | Length of data payload.

§ phpalI18092mPI_Sw_ConvertDatarate()

phStatus_t phpalI18092mPI_Sw_ConvertDatarate | ( | uint16_t | wHalDatarate,
 |  | uint8_t * | pI18092Datarate
 | ) |  |

Convert data rate read out from HAL to ISO18092 compatible data rate value (PHPAL_I18092MPI_DATARATE_*).

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INTERNAL_ERROR | Data rate can't be converted.
Parameters
[in] | wHalDatarate | Datarate read out from HAL.
[out] | pI18092Datarate | Pointer to a converted datarate; uint8_t[1]

§ phpalI18092mPI_Sw_TransceivePdu()

phStatus_t phpalI18092mPI_Sw_TransceivePdu | ( | phpalI18092mPI_Sw_DataParams_t * | pDataParams,
 |  | uint16_t | wOption,
 |  | uint8_t * | pTxBuffer,
 |  | uint16_t | wTxLength,
 |  | uint8_t ** | ppRawResponse,
 |  | uint16_t * | pRawResponseLength,
 |  | uint8_t ** | ppNormalizedResponse,
 |  | uint16_t * | pNormalizedResponseLength,
 |  | uint8_t ** | ppPayload,
 |  | uint16_t * | pPayloadLength
 | ) |  |

Transmit PDU to target and receive response.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | wOption | Option parameter.
[in] | pTxBuffer | Data to transmit.
[in] | wTxLength | Length of data to transmit.
[out] | ppRawResponse | Pointer to raw DEP frame.
[out] | pRawResponseLength | Length of raw DEP frame.
[out] | ppNormalizedResponse | Pointer to validated and normalized frame.
[out] | pNormalizedResponseLength | Length of validated and normalized frame.
[out] | ppPayload | Pointer to begin of data payload (header skipped).
[out] | pPayloadLength | Length of data payload.

§ phpalI18092mPI_Sw_ValidateReceivedPdu()

phStatus_t phpalI18092mPI_Sw_ValidateReceivedPdu | ( | phpalI18092mPI_Sw_DataParams_t * | pDataParams,
 |  | phStatus_t | statusRx,
 |  | uint8_t ** | pRawResponse,
 |  | uint16_t * | wRawResponseLength,
 |  | uint8_t ** | ppNormalizedResponse,
 |  | uint16_t * | pNormalizedResponseLength,
 |  | uint8_t ** | ppPayload,
 |  | uint16_t * | pPayloadLength
 | ) |  |

Validate the status.

If status is success then validate the received PDU from target.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
Other | Depending on implementation and underlying component.
Parameters
[in] | pDataParams | Pointer to this layer's parameter structure.
[in] | statusRx | Status returned by HAL Receive.
[out] | pRawResponse | Pointer to raw DEP frame.
[out] | wRawResponseLength | Length of raw DEP frame.
[out] | ppNormalizedResponse | Pointer to validated and normalized frame.
[out] | pNormalizedResponseLength | Length of validated and normalized frame.
[out] | ppPayload | Pointer to begin of data payload (header skipped).
[out] | pPayloadLength | Length of data payload.

§ phpalMifare_SamAV2_X_ConvertNak()

phStatus_t phpalMifare_SamAV2_X_ConvertNak ( phStatus_t status )

Convert HAL Nak codes into palMifare NAK codes.

Returns
Status code
Return values
PHPAL_MIFARE_ERR_NAK0 | NAK 0.
PHPAL_MIFARE_ERR_NAK1 | NAK 1.
PHPAL_MIFARE_ERR_NAK4 | NAK 4.
PHPAL_MIFARE_ERR_NAK5 | NAK 5.
Other | Depending on implementation and underlying component.
Parameters
[in] status HAL NAK Code.

§ phpalSli15693_Sw_InventoryEx()

phStatus_t phpalSli15693_Sw_InventoryEx | ( | phpalSli15693_Sw_DataParams_t * | pDataParams,
 |  | uint8_t | bOption,
 |  | uint8_t | bFlags,
 |  | uint8_t | bAfi,
 |  | uint8_t * | pMask,
 |  | uint8_t | bMaskBitLength,
 |  | uint8_t | bBlockNo,
 |  | uint16_t | wNoOfBlocks,
 |  | uint8_t * | pUid,
 |  | uint8_t * | pUidLength,
 |  | uint8_t * | pData,
 |  | uint16_t * | pLength
 | ) |  |

Perform all kinds of Inventory commands.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] bOption defines which way of (Fast)Inventory(Page)Read is done.
bOption bits are defined as follows:
  • b1 = 0 -> InventoryRead
  • b1 = 1 -> InventoryPageRead
  • b2 = 0 -> normal
  • b2 = 1 -> FAST
[in] | bFlags | Request flags byte.
[in] | bAfi | Application Family Identifier.
[in] | pMask | UID mask, holding known UID bits.
[in] | bMaskBitLength | Number of UID bits within pMask.
[in] | bBlockNo | Block number of first block to read.
[in] | wNoOfBlocks | Number of blocks to read
[out] | pUid | Received Uid
[out] | pUidLength | Number of received UID bytes.
[out] | pData | Received data.
[out] | pLength | Number of received data bytes.

§ phpalSli15693_Sw_InventoryExt()

phStatus_t phpalSli15693_Sw_InventoryExt | ( | phpalSli15693_Sw_DataParams_t * | pDataParams,
 |  | uint8_t | bOption,
 |  | uint8_t | bFlags,
 |  | uint8_t | bAfi,
 |  | uint8_t | bExtended,
 |  | uint8_t | bExtendedOptions,
 |  | uint8_t * | pMask,
 |  | uint8_t | bMaskBitLength,
 |  | uint8_t | bBlockNo,
 |  | uint16_t | wNoOfBlocks,
 |  | uint8_t * | pUid,
 |  | uint8_t * | pUidLength,
 |  | uint8_t * | pData,
 |  | uint16_t * | pLength
 | ) |  |

Perform Inventory Read Extended mode.

Returns
Status code
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_PROTOCOL_ERROR | Invalid response received.
Other | Depending on implementation and underlaying component.
Parameters
[in] | pDataParams | Pointer to this layers parameter structure.
[in] bOption defines which way of (Fast)Inventory(Page)Read is done.
bOption bits are defined as follows:
  • b1 = 0 -> InventoryRead
  • b1 = 1 -> InventoryPageRead
  • b2 = 0 -> normal
  • b2 = 1 -> FAST
[in] | bFlags | Request flags byte.
[in] | bAfi | Application Family Identifier.
[in] | bExtended | Extended mode
[in] | bExtendedOptions | Features of the extended mode
[in] | pMask | UID mask, holding known UID bits.
[in] | bMaskBitLength | Number of UID bits within pMask.
[in] | bBlockNo | Block number of first block to read.
[in] | wNoOfBlocks | Number of blocks to read
[out] | pUid | Received Uid
[out] | pUidLength | Number of received UID bytes.
[out] | pData | Received data.
[out] | pLength | Number of received data bytes.


NXP NFC Reader Library: NXP Build

Macros
NXP Build
Other

Controls build behaviour of components. More...

Collaboration diagram for NXP Build:

Macros

#define | NXPBUILD__PHBAL_REG
< DEBUG build definition More...
#define | NXPBUILD__PHHAL_HW
Generic HAL definition.
#define | NXPBUILD__PHPAL_I14443P3A
Generic PAL ISO 14443-3A definition.
#define | NXPBUILD__PHPAL_I14443P3B
Generic PAL ISO 14443-3B definition.
#define | NXPBUILD__PHPAL_I14443P4A
Generic PAL ISO 14443-4A definition.
#define | NXPBUILD__PHPAL_I14443P4
Generic PAL ISO 14443-4 definition.
#define | NXPBUILD__PHPAL_I14443P4MC
Generic PAL ISO 18092 target definition.
#define | NXPBUILD__PHPAL_MIFARE
Generic PAL MIFARE definition.
#define | NXPBUILD__PHPAL_SLI15693
Generic PAL Sli 15693 definition.
#define | NXPBUILD__PHPAL_FELICA
< Enable handling of multiple Felica card response More...
#define | NXPBUILD__PHPAL_EPCUID
Generic PAL ICode EPC/UID definition.
#define | NXPBUILD__PHPAL_I18000P3M3
Generic PAL I18000p3m3 definition.
#define | NXPBUILD__PHPAL_I18092MPI
Generic PAL ISO 18092 definition.
#define | NXPBUILD__PHPAL_I18092MT
Generic PAL ISO 18092 target definition.
#define | NXPBUILD__PHAC_DISCLOOP
Generic dicovery loop component.
#define | NXPBUILD__PHAC_DISCLOOP_TYPEA_TAGS
Detect Passive TypeA Tags/Peers.
#define | NXPBUILD__PHAC_DISCLOOP_TYPEB_TAGS
Detect TypeB Tags.
#define | NXPBUILD__PHAC_DISCLOOP_TARGET
Configure Target Mode.
#define | NXPBUILD__PH_OSAL
Generic OSAL definition.
#define | NXPBUILD__PHAL_FELICA
Generic AL Felica definition.
#define | NXPBUILD__PHAL_MFC
Generic AL MIFARE Classic definition.
#define | NXPBUILD__PHAL_MFDF
Generic AL MIFARE Desfire definition.
#define | NXPBUILD__PHAL_MFUL
Generic AL MIFARE Ultralight definition.
#define | NXPBUILD__PHAL_T1T
Generic AL Type 1 Tag definition.
#define | NXPBUILD__PHAL_TOP
Generic AL Tag Operations.
#define | NXPBUILD__PHCE_T4T
Generic HCE.
#define | NXPBUILD__PHAL_I15693
Generic AL I15693 definition.
#define | NXPBUILD__PHAL_SLI
Generic AL Sli definition.
#define | NXPBUILD__PHAL_I18000P3M3
Generic AL I18000p3m3 definition.
#define | NXPBUILD__PH_CIDMANAGER
Generic CID Manager definition.
#define | NXPBUILD__PH_CRYPTOSYM
Generic Crypto Sym definition.
#define | NXPBUILD__PH_CRYPTORNG
Generic CryptoRng definition.
#define | NXPBUILD__PH_KEYSTORE
Generic KeyStore definition.
#define | NXPBUILD__PHLN_LLCP
Generic Link layer definition.
#define | NXPBUILD__PHNP_SNEP
Generic HAL definition.
#define | NXPBUILD__PH_KINETIS
Kinetis.
#define | NXPBUILD__PH_PLATFORM
< DEBUG build definition More...
#define | NXPBUILD__PH_PLATFORM
< DEBUG build definition More...
#define | NXPBUILD__PH_KINETIS_K82
K82 Freedom Board.
#define | NXPBUILD__PHHAL_HW_PN7462AU
NFC Controller PN7462AU HAL. More...
#define | NXPBUILD__PHHAL_HW_PN7462AU
NFC Controller PN7462AU HAL. More...
#define | NXPBUILD__PHHAL_HW_PN7462AU
NFC Controller PN7462AU HAL. More...
#define | NXPBUILD__PH_LPC1769
Host Controller LPC1769. More...
#define | NXPBUILD__PH_LPC1769
Host Controller LPC1769. More...
#define | NXPBUILD__PH_LPC11U68
Host Controller LPC11U68. More...
#define | NXPBUILD__PH_LPC11U68
Host Controller LPC11U68. More...
#define | NXPBUILD__PH_RASPBERRY_PI
Host Controller RaspBerry Pi. More...
#define | NXPBUILD__PH_RASPBERRY_PI
Host Controller RaspBerry Pi. More...
#define | NXPBUILD__PH_UDOO_NEO
Host Controller udoo-neo.
#define | NXPBUILD__PH_OSAL_LINUX
OSAL Implementation of POSIX is included. More...
#define | NXPBUILD__PH_OSAL_LINUX
OSAL Implementation of POSIX is included. More...
#define | NXPBUILD__PH_OSAL_NULLOS
OSAL Implementation of NULL OS is included. More...
#define | NXPBUILD__PH_OSAL_NULLOS
OSAL Implementation of NULL OS is included. More...
#define | NXPBUILD__PH_OSAL_NULLOS
OSAL Implementation of NULL OS is included. More...
#define | NXPBUILD__PH_OSAL_FREERTOS
OSAL Implementation of Free RTOS is included. More...
#define | NXPBUILD__PH_OSAL_FREERTOS
OSAL Implementation of Free RTOS is included. More...
#define | NXPBUILD__PHBAL_REG_LPCOPEN_SPI
LPCOpenStack SPI BAL Component is included. More...
#define | NXPBUILD__PHBAL_REG_LPCOPEN_SPI
LPCOpenStack SPI BAL Component is included. More...
#define | NXPBUILD__PHBAL_REG_LPCOPEN_I2C
LPCOpenStack SPI I2C Component is included. More...
#define | NXPBUILD__PHBAL_REG_LPCOPEN_I2C
LPCOpenStack SPI I2C Component is included. More...
#define | NXPBUILD__PHBAL_REG_PI_SPI
Raspberry Linux UM/KM SPI BAL Component is included.
#define | NXPBUILD__PHBAL_REG_PI_SPI
Raspberry Linux UM/KM SPI BAL Component is included.
#define | NXPBUILD__PHBAL_REG_PI_I2C
Raspberry Linux UM I2C BAL Component is included.
#define | NXPBUILD__PHBAL_REG_PI_I2C
Raspberry Linux UM I2C BAL Component is included.
#define | NXPBUILD__PHHAL_HW_RC523
RC523 HAL Component is included. More...
#define | NXPBUILD__PHHAL_HW_RC523
RC523 HAL Component is included. More...
#define | NXPBUILD__PHHAL_HW_RC663
RC663 HAL Component is included.
#define | NXPBUILD__PHHAL_HW_RC663
RC663 HAL Component is included.
#define | NXPBUILD__PHHAL_HW_PN5180
PN5180 HAL Component is included.
#define | NXPBUILD__PHHAL_HW_PN5180
PN5180 HAL Component is included.
#define | NXPBUILD__PHHAL_HW_TARGET
Dependency checking if target mode macros should be enabled.
#define | NXPBUILD__PHHAL_HW_TARGET
Dependency checking if target mode macros should be enabled.
#define | NXPBUILD__PHPAL_I14443P4MC_SW
PAL ISO 14443-4 Card Mode SW Component is included. More...
#define | NXPBUILD__PHPAL_I14443P4MC_SW
PAL ISO 14443-4 Card Mode SW Component is included. More...
#define | NXPBUILD__PHPAL_I14443P4MC_SW
PAL ISO 14443-4 Card Mode SW Component is included. More...
#define | NXPBUILD__PHPAL_I18092MT_SW
PAL ISO 18092 Target Mode SW Component is included. More...
#define | NXPBUILD__PHPAL_I18092MT_SW
PAL ISO 18092 Target Mode SW Component is included. More...
#define | NXPBUILD__PHPAL_I18092MT_SW
PAL ISO 18092 Target Mode SW Component is included. More...
#define | NXPBUILD__PHPAL_SLI15693_SW
PAL SLI 15693 Component is included. More...
#define | NXPBUILD__PHPAL_I18000P3M3_SW
PAL ISO 18000p3m3 Component is included. More...
#define | NXPBUILD__PHPAL_I18000P3M3_SW
PAL ISO 18000p3m3 Component is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_LPCD
SRC to enable LPCD is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_LPCD
SRC to enable LPCD is included. More...
#define | NXPBUILD__PHAL_I18000P3M3_SW
AL ISO18000p3m3 SW Component is included.
#define | NXPBUILD__PHAL_I18000P3M3_SW
AL ISO18000p3m3 SW Component is included.
#define | NXPBUILD__PHCE_T4T_SW
AL HCE T2AT SW Component is included.
#define | NXPBUILD__PHPAL_I18092MPI_SW
PAL ISO18092 (P2P) SW Component is included. More...
#define | NXPBUILD__PHPAL_I18092MPI_SW
PAL ISO18092 (P2P) SW Component is included. More...
#define | NXPBUILD__PHLN_LLCP_SW
Link LLCP SW Component is included.
#define | NXPBUILD__PHPAL_I14443P3A_SW
PAL ISO 14443-3A SW Component is included. More...
#define | NXPBUILD__PHPAL_I14443P3B_SW
PAL ISO 14443-3B SW Component is included. More...
#define | NXPBUILD__PHPAL_I14443P4A_SW
PAL ISO 14443-4A SW Component is included. More...
#define | NXPBUILD__PHPAL_I14443P4_SW
PAL ISO 14443-4 SW Component is included. More...
#define | NXPBUILD__PHPAL_MIFARE_SW
PAL MIFARE SW Component is included.
#define | NXPBUILD__PHPAL_FELICA_SW
PAL Felica SW Component is included. More...
#define | NXPBUILD__PHPAL_EPCUID_SW
< If FE HAL is RC663, then include EPC UID PAL as required, otherwise exclude. More...
#define | NXPBUILD__PHAC_DISCLOOP_SW
Discovery Loop Activity SW Component is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEA_I3P3_TAGS
SRC/DATA to Detect/CollRes/Activate cards such as MFC, MFUL, MFP SL1 etc is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEA_JEWEL_TAGS
SRC/DATA to Detect cards such as NFC Forum T1T, Topaz/Jewel is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEA_I3P4_TAGS
SRC/DATA to Detect cards such as MFDF, MFP, T4AT NFC Forum Tag or Type A EMVCo is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEA_P2P_TAGS
SRC/DATA to Detect Peer Passive Type A P2P Target mode devices is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEA_P2P_ACTIVE
SRC/DATA to Detect Peer Active Type A P2P Target mode devices is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEF212_P2P_ACTIVE
SRC/DATA to Detect Peer Active Type F212 P2P Target mode devices is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEF424_P2P_ACTIVE
SRC/DATA to Detect Peer Active Type F424 P2P Target mode devices is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_FELICA_TAGS
SRC/DATA to Detect FeliCa Cards is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEF_P2P_TAGS
SRC/DATA to Detect Peer Passive Type F P2P Target mode devices is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEB_I3P3B_TAGS
SRC/DATA to Detect Type B Cards that operate at Layer3 level is included.
#define | NXPBUILD__PHAC_DISCLOOP_TYPEB_I3P4B_TAGS
SRC/DATA to Detect Type B Cards such as NFC Forum Type 4 Tags, EMVCo Type B Cards etc is included.
#define | NXPBUILD__PHAC_DISCLOOP_TYPEV_TAGS
SRC/DATA to Detect Type V Cards such as ICODE SLI/SLIX/SLI2/Tesa Cards is included.
#define | NXPBUILD__PHAC_DISCLOOP_I18000P3M3_TAGS
SRC/DATA to Detect ICODE ILT Cards such as SMARTRAC StackIt Cards is included.
#define | NXPBUILD__PHAC_DISCLOOP_TYPEA_TARGET_PASSIVE
SRC to Initialize Type A passive listen config and subsequently call HAL AutoColl is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEA_TARGET_ACTIVE
SRC to Initialize Type A active listen config and subsequently call HAL AutoColl is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEF212_TARGET_PASSIVE
SRC to Initialize Type F212 passive listen config and subsequently call HAL AutoColl is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEF212_TARGET_ACTIVE
SRC to Initialize Type F212 active listen config and subsequently call HAL AutoColl is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEF424_TARGET_PASSIVE
SRC to Initialize Type F424 passive listen config and subsequently call HAL AutoColl is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEF424_TARGET_ACTIVE
SRC to Initialize Type F424 active listen config and subsequently call HAL AutoColl is included. More...
#define | NXPBUILD__PHNFCLIB
Simplified API Interface, If enabling this the entry point should be this component in the application.
#define | NXPBUILD__PH_CIDMANAGER_SW
CID Manager SW Component is included. More...
#define | NXPBUILD__PH_KEYSTORE_SW
SW KeyStore Component is included. More...
#define | NXPBUILD__PH_CRYPTOSYM_SW
Crypto Symbols SW Component is included. More...
#define | NXPBUILD__PH_CRYPTORNG_SW
Crypto RNG SW Component is included. More...
#define | NXPBUILD__PHAL_FELICA_SW
AL FeliCa SW Component is included.
#define | NXPBUILD__PHAL_MFC_SW
AL Mifare Classic SW Component is included.
#define | NXPBUILD__PHAL_MFUL_SW
AL Mifare Ultrlight SW Component is included.
#define | NXPBUILD__PHAL_MFDF_SW
AL Mifare DesFire SW Component is included.
#define | NXPBUILD__PHAL_T1T_SW
AL Type T1 Tag SW Component is included.
#define | NXPBUILD__PHAL_I15693_SW
AL ISO 15693 SW Component is included.
#define | NXPBUILD__PHAL_SLI_SW
AL SLI SW Component is included.
#define | NXPBUILD__PHAL_TOP_SW
AL for TagOps Mapping SW Component is included.Required for NDEF operations.
#define | NXPBUILD__PHNP_SNEP_SW
Protocol SNEP SW Component is included.
#define | NXPBUILD__PH_PLATFORM
< DEBUG build definition More...
#define | NXPBUILD__PH_PLATFORM
< DEBUG build definition More...
#define | NXPBUILD__PH_KINETIS_K82
K82 Freedom Board.
#define | NXPBUILD__PHHAL_HW_PN7462AU
NFC Controller PN7462AU HAL. More...
#define | NXPBUILD__PHHAL_HW_PN7462AU
NFC Controller PN7462AU HAL. More...
#define | NXPBUILD__PHHAL_HW_PN7462AU
NFC Controller PN7462AU HAL. More...
#define | NXPBUILD__PH_LPC1769
Host Controller LPC1769. More...
#define | NXPBUILD__PH_LPC1769
Host Controller LPC1769. More...
#define | NXPBUILD__PH_LPC11U68
Host Controller LPC11U68. More...
#define | NXPBUILD__PH_LPC11U68
Host Controller LPC11U68. More...
#define | NXPBUILD__PH_RASPBERRY_PI
Host Controller RaspBerry Pi. More...
#define | NXPBUILD__PH_RASPBERRY_PI
Host Controller RaspBerry Pi. More...
#define | NXPBUILD__PH_UDOO_NEO
Host Controller udoo-neo.
#define | NXPBUILD__PH_OSAL_LINUX
OSAL Implementation of POSIX is included. More...
#define | NXPBUILD__PH_OSAL_LINUX
OSAL Implementation of POSIX is included. More...
#define | NXPBUILD__PH_OSAL_NULLOS
OSAL Implementation of NULL OS is included. More...
#define | NXPBUILD__PH_OSAL_NULLOS
OSAL Implementation of NULL OS is included. More...
#define | NXPBUILD__PH_OSAL_NULLOS
OSAL Implementation of NULL OS is included. More...
#define | NXPBUILD__PH_OSAL_FREERTOS
OSAL Implementation of Free RTOS is included. More...
#define | NXPBUILD__PH_OSAL_FREERTOS
OSAL Implementation of Free RTOS is included. More...
#define | NXPBUILD__PHBAL_REG_LPCOPEN_SPI
LPCOpenStack SPI BAL Component is included. More...
#define | NXPBUILD__PHBAL_REG_LPCOPEN_SPI
LPCOpenStack SPI BAL Component is included. More...
#define | NXPBUILD__PHBAL_REG_LPCOPEN_I2C
LPCOpenStack SPI I2C Component is included. More...
#define | NXPBUILD__PHBAL_REG_LPCOPEN_I2C
LPCOpenStack SPI I2C Component is included. More...
#define | NXPBUILD__PHBAL_REG_PI_SPI
Raspberry Linux UM/KM SPI BAL Component is included.
#define | NXPBUILD__PHBAL_REG_PI_SPI
Raspberry Linux UM/KM SPI BAL Component is included.
#define | NXPBUILD__PHBAL_REG_PI_I2C
Raspberry Linux UM I2C BAL Component is included.
#define | NXPBUILD__PHBAL_REG_PI_I2C
Raspberry Linux UM I2C BAL Component is included.
#define | NXPBUILD__PHHAL_HW_RC523
RC523 HAL Component is included. More...
#define | NXPBUILD__PHHAL_HW_RC523
RC523 HAL Component is included. More...
#define | NXPBUILD__PHHAL_HW_RC663
RC663 HAL Component is included.
#define | NXPBUILD__PHHAL_HW_RC663
RC663 HAL Component is included.
#define | NXPBUILD__PHHAL_HW_PN5180
PN5180 HAL Component is included.
#define | NXPBUILD__PHHAL_HW_PN5180
PN5180 HAL Component is included.
#define | NXPBUILD__PHHAL_HW_TARGET
Dependency checking if target mode macros should be enabled.
#define | NXPBUILD__PHHAL_HW_TARGET
Dependency checking if target mode macros should be enabled.
#define | NXPBUILD__PHPAL_I14443P4MC_SW
PAL ISO 14443-4 Card Mode SW Component is included. More...
#define | NXPBUILD__PHPAL_I14443P4MC_SW
PAL ISO 14443-4 Card Mode SW Component is included. More...
#define | NXPBUILD__PHPAL_I14443P4MC_SW
PAL ISO 14443-4 Card Mode SW Component is included. More...
#define | NXPBUILD__PHPAL_I18092MT_SW
PAL ISO 18092 Target Mode SW Component is included. More...
#define | NXPBUILD__PHPAL_I18092MT_SW
PAL ISO 18092 Target Mode SW Component is included. More...
#define | NXPBUILD__PHPAL_I18092MT_SW
PAL ISO 18092 Target Mode SW Component is included. More...
#define | NXPBUILD__PHPAL_SLI15693_SW
PAL SLI 15693 Component is included. More...
#define | NXPBUILD__PHPAL_I18000P3M3_SW
PAL ISO 18000p3m3 Component is included. More...
#define | NXPBUILD__PHPAL_I18000P3M3_SW
PAL ISO 18000p3m3 Component is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_LPCD
SRC to enable LPCD is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_LPCD
SRC to enable LPCD is included. More...
#define | NXPBUILD__PHAL_I18000P3M3_SW
AL ISO18000p3m3 SW Component is included.
#define | NXPBUILD__PHAL_I18000P3M3_SW
AL ISO18000p3m3 SW Component is included.
#define | NXPBUILD__PHCE_T4T_SW
AL HCE T2AT SW Component is included.
#define | NXPBUILD__PHPAL_I18092MPI_SW
PAL ISO18092 (P2P) SW Component is included. More...
#define | NXPBUILD__PHPAL_I18092MPI_SW
PAL ISO18092 (P2P) SW Component is included. More...
#define | NXPBUILD__PHLN_LLCP_SW
Link LLCP SW Component is included.
#define | NXPBUILD__PHPAL_I14443P3A_SW
PAL ISO 14443-3A SW Component is included. More...
#define | NXPBUILD__PHPAL_I14443P3B_SW
PAL ISO 14443-3B SW Component is included. More...
#define | NXPBUILD__PHPAL_I14443P4A_SW
PAL ISO 14443-4A SW Component is included. More...
#define | NXPBUILD__PHPAL_I14443P4_SW
PAL ISO 14443-4 SW Component is included. More...
#define | NXPBUILD__PHPAL_MIFARE_SW
PAL MIFARE SW Component is included.
#define | NXPBUILD__PHPAL_FELICA_SW
PAL Felica SW Component is included. More...
#define | NXPBUILD__PHPAL_EPCUID_SW
< If FE HAL is RC663, then include EPC UID PAL as required, otherwise exclude. More...
#define | NXPBUILD__PHAC_DISCLOOP_SW
Discovery Loop Activity SW Component is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEA_I3P3_TAGS
SRC/DATA to Detect/CollRes/Activate cards such as MFC, MFUL, MFP SL1 etc is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEA_JEWEL_TAGS
SRC/DATA to Detect cards such as NFC Forum T1T, Topaz/Jewel is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEA_I3P4_TAGS
SRC/DATA to Detect cards such as MFDF, MFP, T4AT NFC Forum Tag or Type A EMVCo is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEA_P2P_TAGS
SRC/DATA to Detect Peer Passive Type A P2P Target mode devices is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEA_P2P_ACTIVE
SRC/DATA to Detect Peer Active Type A P2P Target mode devices is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEF212_P2P_ACTIVE
SRC/DATA to Detect Peer Active Type F212 P2P Target mode devices is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEF424_P2P_ACTIVE
SRC/DATA to Detect Peer Active Type F424 P2P Target mode devices is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_FELICA_TAGS
SRC/DATA to Detect FeliCa Cards is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEF_P2P_TAGS
SRC/DATA to Detect Peer Passive Type F P2P Target mode devices is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEB_I3P3B_TAGS
SRC/DATA to Detect Type B Cards that operate at Layer3 level is included.
#define | NXPBUILD__PHAC_DISCLOOP_TYPEB_I3P4B_TAGS
SRC/DATA to Detect Type B Cards such as NFC Forum Type 4 Tags, EMVCo Type B Cards etc is included.
#define | NXPBUILD__PHAC_DISCLOOP_TYPEV_TAGS
SRC/DATA to Detect Type V Cards such as ICODE SLI/SLIX/SLI2/Tesa Cards is included.
#define | NXPBUILD__PHAC_DISCLOOP_I18000P3M3_TAGS
SRC/DATA to Detect ICODE ILT Cards such as SMARTRAC StackIt Cards is included.
#define | NXPBUILD__PHAC_DISCLOOP_TYPEA_TARGET_PASSIVE
SRC to Initialize Type A passive listen config and subsequently call HAL AutoColl is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEA_TARGET_ACTIVE
SRC to Initialize Type A active listen config and subsequently call HAL AutoColl is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEF212_TARGET_PASSIVE
SRC to Initialize Type F212 passive listen config and subsequently call HAL AutoColl is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEF212_TARGET_ACTIVE
SRC to Initialize Type F212 active listen config and subsequently call HAL AutoColl is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEF424_TARGET_PASSIVE
SRC to Initialize Type F424 passive listen config and subsequently call HAL AutoColl is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEF424_TARGET_ACTIVE
SRC to Initialize Type F424 active listen config and subsequently call HAL AutoColl is included. More...
#define | NXPBUILD__PHNFCLIB
Simplified API Interface, If enabling this the entry point should be this component in the application.
#define | NXPBUILD__PH_CIDMANAGER_SW
CID Manager SW Component is included. More...
#define | NXPBUILD__PH_KEYSTORE_SW
SW KeyStore Component is included. More...
#define | NXPBUILD__PH_CRYPTOSYM_SW
Crypto Symbols SW Component is included. More...
#define | NXPBUILD__PH_CRYPTORNG_SW
Crypto RNG SW Component is included. More...
#define | NXPBUILD__PHAL_FELICA_SW
AL FeliCa SW Component is included.
#define | NXPBUILD__PHAL_MFC_SW
AL Mifare Classic SW Component is included.
#define | NXPBUILD__PHAL_MFUL_SW
AL Mifare Ultrlight SW Component is included.
#define | NXPBUILD__PHAL_MFDF_SW
AL Mifare DesFire SW Component is included.
#define | NXPBUILD__PHAL_T1T_SW
AL Type T1 Tag SW Component is included.
#define | NXPBUILD__PHAL_I15693_SW
AL ISO 15693 SW Component is included.
#define | NXPBUILD__PHAL_SLI_SW
AL SLI SW Component is included.
#define | NXPBUILD__PHAL_TOP_SW
AL for TagOps Mapping SW Component is included.Required for NDEF operations.
#define | NXPBUILD__PHNP_SNEP_SW
Protocol SNEP SW Component is included.
#define | NXPRDLIB_REM_GEN_INTFS
< DEBUG build definition
#define | NXPBUILD__PH_PLATFORM
Embedded Platform Porting and Abstraction Component included. More...
#define | NXPBUILD__PH_OSAL_FREERTOS
OSAL Implementation of Free RTOS is included. More...
#define | NXPBUILD__PHHAL_HW_PN5180
< If the used NFC HW is not NFC Controller like PN7462AU, then include one of the front end HAL More...
#define | NXPBUILD__PHHAL_HW_TARGET
Dependency checking if target mode macros should be enabled.
#define | NXPBUILD__PHPAL_I14443P3A_SW
PAL ISO 14443-3A SW Component is included. More...
#define | NXPBUILD__PHPAL_I14443P3B_SW
PAL ISO 14443-3B SW Component is included. More...
#define | NXPBUILD__PHPAL_I14443P4A_SW
PAL ISO 14443-4A SW Component is included. More...
#define | NXPBUILD__PHPAL_I14443P4_SW
PAL ISO 14443-4 SW Component is included. More...
#define | NXPBUILD__PHPAL_MIFARE_SW
PAL MIFARE SW Component is included.
#define | NXPBUILD__PHPAL_FELICA_SW
PAL Felica SW Component is included. More...
#define | NXPBUILD__PHPAL_SLI15693_SW
PAL SLI 15693 Component is included. More...
#define | NXPBUILD__PHPAL_I18000P3M3_SW
PAL ISO 18000p3m3 Component is included. More...
#define | NXPBUILD__PHPAL_I18092MPI_SW
< If FE HAL is RC663, then include EPC UID PAL as required, otherwise exclude. More...
#define | NXPBUILD__PHPAL_I14443P4MC_SW
PAL ISO 14443-4 Card Mode SW Component is included. More...
#define | NXPBUILD__PHPAL_I18092MT_SW
PAL ISO 18092 Target Mode SW Component is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_SW
Discovery Loop Activity SW Component is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_LPCD
SRC to enable LPCD is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEA_I3P3_TAGS
SRC/DATA to Detect/CollRes/Activate cards such as MFC, MFUL, MFP SL1 etc is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEA_JEWEL_TAGS
SRC/DATA to Detect cards such as NFC Forum T1T, Topaz/Jewel is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEA_I3P4_TAGS
SRC/DATA to Detect cards such as MFDF, MFP, T4AT NFC Forum Tag or Type A EMVCo is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEA_P2P_TAGS
SRC/DATA to Detect Peer Passive Type A P2P Target mode devices is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEA_P2P_ACTIVE
SRC/DATA to Detect Peer Active Type A P2P Target mode devices is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEF212_P2P_ACTIVE
SRC/DATA to Detect Peer Active Type F212 P2P Target mode devices is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEF424_P2P_ACTIVE
SRC/DATA to Detect Peer Active Type F424 P2P Target mode devices is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_FELICA_TAGS
SRC/DATA to Detect FeliCa Cards is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEF_P2P_TAGS
SRC/DATA to Detect Peer Passive Type F P2P Target mode devices is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEB_I3P3B_TAGS
SRC/DATA to Detect Type B Cards that operate at Layer3 level is included.
#define | NXPBUILD__PHAC_DISCLOOP_TYPEB_I3P4B_TAGS
SRC/DATA to Detect Type B Cards such as NFC Forum Type 4 Tags, EMVCo Type B Cards etc is included.
#define | NXPBUILD__PHAC_DISCLOOP_TYPEV_TAGS
SRC/DATA to Detect Type V Cards such as ICODE SLI/SLIX/SLI2/Tesa Cards is included.
#define | NXPBUILD__PHAC_DISCLOOP_I18000P3M3_TAGS
SRC/DATA to Detect ICODE ILT Cards such as SMARTRAC StackIt Cards is included.
#define | NXPBUILD__PHAC_DISCLOOP_TYPEA_TARGET_PASSIVE
< If FE HAL is RC663, target mode is not supported at all, hence exclude those SRC, otherwise include as required More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEA_TARGET_ACTIVE
SRC to Initialize Type A active listen config and subsequently call HAL AutoColl is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEF212_TARGET_PASSIVE
SRC to Initialize Type F212 passive listen config and subsequently call HAL AutoColl is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEF212_TARGET_ACTIVE
SRC to Initialize Type F212 active listen config and subsequently call HAL AutoColl is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEF424_TARGET_PASSIVE
SRC to Initialize Type F424 passive listen config and subsequently call HAL AutoColl is included. More...
#define | NXPBUILD__PHAC_DISCLOOP_TYPEF424_TARGET_ACTIVE
SRC to Initialize Type F424 active listen config and subsequently call HAL AutoColl is included. More...
#define | NXPBUILD__PHNFCLIB
Simplified API Interface, If enabling this the entry point should be this component in the application. More...
#define | NXPBUILD__PHNFCLIB
Simplified API Interface, If enabling this the entry point should be this component in the application. More...
#define | NXPBUILD__PH_KEYSTORE_SW
SW KeyStore Component is included. More...
#define | NXPBUILD__PH_NDA_MFDF
Mifare DESFire implementation under NDA.
#define | NXPBUILD__PH_CRYPTOSYM_SW
Crypto Symbols SW Component is included. More...
#define | NXPBUILD__PH_CRYPTORNG_SW
Crypto RNG SW Component is included. More...
#define | NXPBUILD__PHAL_FELICA_SW
AL FeliCa SW Component is included.
#define | NXPBUILD__PHAL_MFC_SW
AL Mifare Classic SW Component is included.
#define | NXPBUILD__PHAL_MFUL_SW
AL Mifare Ultrlight SW Component is included.
#define | NXPBUILD__PHAL_MFDF_SW
AL Mifare DesFire SW Component is included.
#define | NXPBUILD__PHAL_T1T_SW
AL Type T1 Tag SW Component is included.
#define | NXPBUILD__PHAL_I15693_SW
AL ISO 15693 SW Component is included.
#define | NXPBUILD__PHAL_SLI_SW
AL SLI SW Component is included.
#define | NXPBUILD__PHAL_TOP_SW
AL for TagOps Mapping SW Component is included.Required for NDEF operations.
#define | NXPBUILD__PHAL_I18000P3M3_SW
AL ISO18000p3m3 SW Component is included.
#define | NXPBUILD__PHCE_T4T_SW
AL HCE T2AT SW Component is included.
#define | NXPBUILD__PHLN_LLCP_SW
< SRC to handle Extended NDEF Support as per T4T spec 3.0 is included More...
#define | NXPBUILD__PHNP_SNEP_SW
Protocol SNEP SW Component is included.

Detailed Description

Controls build behaviour of components.

Controls the Inclusion of required components, Inclusion SRC/DATA within components and the Build Dependencies between the components.

Macro Definition Documentation

§ NXPBUILD__PHBAL_REG

#define NXPBUILD__PHBAL_REG

< DEBUG build definition

Generic BAL definition

§ NXPBUILD__PHPAL_FELICA

#define NXPBUILD__PHPAL_FELICA

< Enable handling of multiple Felica card response

Generic PAL Felica definition

§ NXPBUILD__PH_PLATFORM [1/5]

#define NXPBUILD__PH_PLATFORM

< DEBUG build definition

Embedded Platform Porting and Abstraction Component included. Used for LPC_XXX, Kinetis_XXX,Raspberry_XXX,iMX_XXX etc. If RdLib executing on embedded platform, then include one of the below embedded platform and one of the OS used as required.

§ NXPBUILD__PH_PLATFORM [2/5]

#define NXPBUILD__PH_PLATFORM

< DEBUG build definition

Embedded Platform Porting and Abstraction Component included. Used for LPC_XXX, Kinetis_XXX,Raspberry_XXX,iMX_XXX etc. If RdLib executing on embedded platform, then include one of the below embedded platform and one of the OS used as required.

§ NXPBUILD__PHHAL_HW_PN7462AU [1/6]

#define NXPBUILD__PHHAL_HW_PN7462AU

NFC Controller PN7462AU HAL.

NFC Controller PN7462AU HAL and Porting Component is included.

§ NXPBUILD__PHHAL_HW_PN7462AU [2/6]

#define NXPBUILD__PHHAL_HW_PN7462AU

NFC Controller PN7462AU HAL.

NFC Controller PN7462AU HAL and Porting Component is included.

§ NXPBUILD__PHHAL_HW_PN7462AU [3/6]

#define NXPBUILD__PHHAL_HW_PN7462AU

NFC Controller PN7462AU HAL.

NFC Controller PN7462AU HAL and Porting Component is included.

§ NXPBUILD__PH_LPC1769 [1/4]

#define NXPBUILD__PH_LPC1769

Host Controller LPC1769.

Host Controller LPC1769 Porting Component is included.RdLib is linked to LPC1769 Driver from LPCOpenStack.

§ NXPBUILD__PH_LPC1769 [2/4]

#define NXPBUILD__PH_LPC1769

Host Controller LPC1769.

Host Controller LPC1769 Porting Component is included.RdLib is linked to LPC1769 Driver from LPCOpenStack.

§ NXPBUILD__PH_LPC11U68 [1/4]

#define NXPBUILD__PH_LPC11U68

Host Controller LPC11U68.

Host Controller LPC11U68 Porting Component is included.

§ NXPBUILD__PH_LPC11U68 [2/4]

#define NXPBUILD__PH_LPC11U68

Host Controller LPC11U68.

Host Controller LPC11U68 Porting Component is included.

§ NXPBUILD__PH_RASPBERRY_PI [1/4]

#define NXPBUILD__PH_RASPBERRY_PI

Host Controller RaspBerry Pi.

Host Controller RaspBerry Pi Porting Component is included.

§ NXPBUILD__PH_RASPBERRY_PI [2/4]

#define NXPBUILD__PH_RASPBERRY_PI

Host Controller RaspBerry Pi.

Host Controller RaspBerry Pi Porting Component is included.

§ NXPBUILD__PH_OSAL_LINUX [1/4]

#define NXPBUILD__PH_OSAL_LINUX

OSAL Implementation of POSIX is included.

RdLib is executed as UM application in Linux

§ NXPBUILD__PH_OSAL_LINUX [2/4]

#define NXPBUILD__PH_OSAL_LINUX

OSAL Implementation of POSIX is included.

RdLib is executed as UM application in Linux

§ NXPBUILD__PH_OSAL_NULLOS [1/6]

#define NXPBUILD__PH_OSAL_NULLOS

OSAL Implementation of NULL OS is included.

RdLib executed in Executive Loop.

§ NXPBUILD__PH_OSAL_NULLOS [2/6]

#define NXPBUILD__PH_OSAL_NULLOS

OSAL Implementation of NULL OS is included.

RdLib executed in Executive Loop.

§ NXPBUILD__PH_OSAL_NULLOS [3/6]

#define NXPBUILD__PH_OSAL_NULLOS

OSAL Implementation of NULL OS is included.

RdLib executed in Executive Loop.

§ NXPBUILD__PH_OSAL_FREERTOS [1/5]

#define NXPBUILD__PH_OSAL_FREERTOS

OSAL Implementation of Free RTOS is included.

RdLib is linked to Free RTOS Library

§ NXPBUILD__PH_OSAL_FREERTOS [2/5]

#define NXPBUILD__PH_OSAL_FREERTOS

OSAL Implementation of Free RTOS is included.

RdLib is linked to Free RTOS Library

§ NXPBUILD__PHBAL_REG_LPCOPEN_SPI [1/4]

#define NXPBUILD__PHBAL_REG_LPCOPEN_SPI

LPCOpenStack SPI BAL Component is included.

§ NXPBUILD__PHBAL_REG_LPCOPEN_SPI [2/4]

#define NXPBUILD__PHBAL_REG_LPCOPEN_SPI

LPCOpenStack SPI BAL Component is included.

§ NXPBUILD__PHBAL_REG_LPCOPEN_I2C [1/4]

#define NXPBUILD__PHBAL_REG_LPCOPEN_I2C

LPCOpenStack SPI I2C Component is included.

§ NXPBUILD__PHBAL_REG_LPCOPEN_I2C [2/4]

#define NXPBUILD__PHBAL_REG_LPCOPEN_I2C

LPCOpenStack SPI I2C Component is included.

§ NXPBUILD__PHHAL_HW_RC523 [1/4]

#define NXPBUILD__PHHAL_HW_RC523

RC523 HAL Component is included.

§ NXPBUILD__PHHAL_HW_RC523 [2/4]

#define NXPBUILD__PHHAL_HW_RC523

RC523 HAL Component is included.

§ NXPBUILD__PHPAL_I14443P4MC_SW [1/7]

#define NXPBUILD__PHPAL_I14443P4MC_SW

PAL ISO 14443-4 Card Mode SW Component is included.

< ISO14443 Card Mode PAL & ISO18092 Target Mode PAL will execute only in an embedded platform and not in PC platform.

PAL ISO 14443-4 Card Mode SW Component is included.

§ NXPBUILD__PHPAL_I14443P4MC_SW [2/7]

#define NXPBUILD__PHPAL_I14443P4MC_SW

PAL ISO 14443-4 Card Mode SW Component is included.

< ISO14443 Card Mode PAL & ISO18092 Target Mode PAL will execute only in an embedded platform and not in PC platform.

PAL ISO 14443-4 Card Mode SW Component is included.

§ NXPBUILD__PHPAL_I14443P4MC_SW [3/7]

#define NXPBUILD__PHPAL_I14443P4MC_SW

PAL ISO 14443-4 Card Mode SW Component is included.

< ISO14443 Card Mode PAL & ISO18092 Target Mode PAL will execute only in an embedded platform and not in PC platform.

PAL ISO 14443-4 Card Mode SW Component is included.

§ NXPBUILD__PHPAL_I18092MT_SW [1/7]

#define NXPBUILD__PHPAL_I18092MT_SW

PAL ISO 18092 Target Mode SW Component is included.

§ NXPBUILD__PHPAL_I18092MT_SW [2/7]

#define NXPBUILD__PHPAL_I18092MT_SW

PAL ISO 18092 Target Mode SW Component is included.

§ NXPBUILD__PHPAL_I18092MT_SW [3/7]

#define NXPBUILD__PHPAL_I18092MT_SW

PAL ISO 18092 Target Mode SW Component is included.

§ NXPBUILD__PHPAL_SLI15693_SW [1/3]

#define NXPBUILD__PHPAL_SLI15693_SW

PAL SLI 15693 Component is included.

§ NXPBUILD__PHPAL_I18000P3M3_SW [1/5]

#define NXPBUILD__PHPAL_I18000P3M3_SW

PAL ISO 18000p3m3 Component is included.

§ NXPBUILD__PHPAL_I18000P3M3_SW [2/5]

#define NXPBUILD__PHPAL_I18000P3M3_SW

PAL ISO 18000p3m3 Component is included.

§ NXPBUILD__PHAC_DISCLOOP_LPCD [1/5]

#define NXPBUILD__PHAC_DISCLOOP_LPCD

SRC to enable LPCD is included.

§ NXPBUILD__PHAC_DISCLOOP_LPCD [2/5]

#define NXPBUILD__PHAC_DISCLOOP_LPCD

SRC to enable LPCD is included.

§ NXPBUILD__PHPAL_I18092MPI_SW [1/5]

#define NXPBUILD__PHPAL_I18092MPI_SW

PAL ISO18092 (P2P) SW Component is included.

§ NXPBUILD__PHPAL_I18092MPI_SW [2/5]

#define NXPBUILD__PHPAL_I18092MPI_SW

PAL ISO18092 (P2P) SW Component is included.

§ NXPBUILD__PHPAL_I14443P3A_SW [1/3]

#define NXPBUILD__PHPAL_I14443P3A_SW

PAL ISO 14443-3A SW Component is included.

§ NXPBUILD__PHPAL_I14443P3B_SW [1/3]

#define NXPBUILD__PHPAL_I14443P3B_SW

PAL ISO 14443-3B SW Component is included.

§ NXPBUILD__PHPAL_I14443P4A_SW [1/3]

#define NXPBUILD__PHPAL_I14443P4A_SW

PAL ISO 14443-4A SW Component is included.

§ NXPBUILD__PHPAL_I14443P4_SW [1/3]

#define NXPBUILD__PHPAL_I14443P4_SW

PAL ISO 14443-4 SW Component is included.

§ NXPBUILD__PHPAL_FELICA_SW [1/3]

#define NXPBUILD__PHPAL_FELICA_SW

PAL Felica SW Component is included.

If FE HAL is RC523, then exclude ISO15693 & ISO18000p3m3 PAL, otherwise include as required.

§ NXPBUILD__PHPAL_EPCUID_SW [1/2]

#define NXPBUILD__PHPAL_EPCUID_SW

< If FE HAL is RC663, then include EPC UID PAL as required, otherwise exclude.

PAL EPC UID SW Component is included.

§ NXPBUILD__PHAC_DISCLOOP_SW [1/3]

#define NXPBUILD__PHAC_DISCLOOP_SW

Discovery Loop Activity SW Component is included.

If DiscLoop SW Component is included, macros( & it's dependencies) to include/exclude SRC/DATA within Discloop is defined.

§ NXPBUILD__PHAC_DISCLOOP_TYPEA_I3P3_TAGS [1/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEA_I3P3_TAGS

SRC/DATA to Detect/CollRes/Activate cards such as MFC, MFUL, MFP SL1 etc is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEA_JEWEL_TAGS [1/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEA_JEWEL_TAGS

SRC/DATA to Detect cards such as NFC Forum T1T, Topaz/Jewel is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEA_I3P4_TAGS [1/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEA_I3P4_TAGS

SRC/DATA to Detect cards such as MFDF, MFP, T4AT NFC Forum Tag or Type A EMVCo is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEA_P2P_TAGS [1/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEA_P2P_TAGS

SRC/DATA to Detect Peer Passive Type A P2P Target mode devices is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEA_P2P_ACTIVE [1/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEA_P2P_ACTIVE

SRC/DATA to Detect Peer Active Type A P2P Target mode devices is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEF212_P2P_ACTIVE [1/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEF212_P2P_ACTIVE

SRC/DATA to Detect Peer Active Type F212 P2P Target mode devices is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEF424_P2P_ACTIVE [1/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEF424_P2P_ACTIVE

SRC/DATA to Detect Peer Active Type F424 P2P Target mode devices is included.

§ NXPBUILD__PHAC_DISCLOOP_FELICA_TAGS [1/3]

#define NXPBUILD__PHAC_DISCLOOP_FELICA_TAGS

SRC/DATA to Detect FeliCa Cards is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEF_P2P_TAGS [1/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEF_P2P_TAGS

SRC/DATA to Detect Peer Passive Type F P2P Target mode devices is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEA_TARGET_PASSIVE [1/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEA_TARGET_PASSIVE

SRC to Initialize Type A passive listen config and subsequently call HAL AutoColl is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEA_TARGET_ACTIVE [1/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEA_TARGET_ACTIVE

SRC to Initialize Type A active listen config and subsequently call HAL AutoColl is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEF212_TARGET_PASSIVE [1/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEF212_TARGET_PASSIVE

SRC to Initialize Type F212 passive listen config and subsequently call HAL AutoColl is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEF212_TARGET_ACTIVE [1/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEF212_TARGET_ACTIVE

SRC to Initialize Type F212 active listen config and subsequently call HAL AutoColl is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEF424_TARGET_PASSIVE [1/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEF424_TARGET_PASSIVE

SRC to Initialize Type F424 passive listen config and subsequently call HAL AutoColl is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEF424_TARGET_ACTIVE [1/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEF424_TARGET_ACTIVE

SRC to Initialize Type F424 active listen config and subsequently call HAL AutoColl is included.

§ NXPBUILD__PH_CIDMANAGER_SW [1/2]

#define NXPBUILD__PH_CIDMANAGER_SW

CID Manager SW Component is included.

§ NXPBUILD__PH_KEYSTORE_SW [1/3]

#define NXPBUILD__PH_KEYSTORE_SW

SW KeyStore Component is included.

§ NXPBUILD__PH_CRYPTOSYM_SW [1/3]

#define NXPBUILD__PH_CRYPTOSYM_SW

Crypto Symbols SW Component is included.

§ NXPBUILD__PH_CRYPTORNG_SW [1/3]

#define NXPBUILD__PH_CRYPTORNG_SW

Crypto RNG SW Component is included.

§ NXPBUILD__PH_PLATFORM [3/5]

#define NXPBUILD__PH_PLATFORM

< DEBUG build definition

Embedded Platform Porting and Abstraction Component included. Used for LPC_XXX, Kinetis_XXX,Raspberry_XXX,iMX_XXX etc. If RdLib executing on embedded platform, then include one of the below embedded platform and one of the OS used as required.

§ NXPBUILD__PH_PLATFORM [4/5]

#define NXPBUILD__PH_PLATFORM

< DEBUG build definition

Embedded Platform Porting and Abstraction Component included. Used for LPC_XXX, Kinetis_XXX,Raspberry_XXX,iMX_XXX etc. If RdLib executing on embedded platform, then include one of the below embedded platform and one of the OS used as required.

§ NXPBUILD__PHHAL_HW_PN7462AU [4/6]

#define NXPBUILD__PHHAL_HW_PN7462AU

NFC Controller PN7462AU HAL.

NFC Controller PN7462AU HAL and Porting Component is included.

§ NXPBUILD__PHHAL_HW_PN7462AU [5/6]

#define NXPBUILD__PHHAL_HW_PN7462AU

NFC Controller PN7462AU HAL.

NFC Controller PN7462AU HAL and Porting Component is included.

§ NXPBUILD__PHHAL_HW_PN7462AU [6/6]

#define NXPBUILD__PHHAL_HW_PN7462AU

NFC Controller PN7462AU HAL.

NFC Controller PN7462AU HAL and Porting Component is included.

§ NXPBUILD__PH_LPC1769 [3/4]

#define NXPBUILD__PH_LPC1769

Host Controller LPC1769.

Host Controller LPC1769 Porting Component is included.RdLib is linked to LPC1769 Driver from LPCOpenStack.

§ NXPBUILD__PH_LPC1769 [4/4]

#define NXPBUILD__PH_LPC1769

Host Controller LPC1769.

Host Controller LPC1769 Porting Component is included.RdLib is linked to LPC1769 Driver from LPCOpenStack.

§ NXPBUILD__PH_LPC11U68 [3/4]

#define NXPBUILD__PH_LPC11U68

Host Controller LPC11U68.

Host Controller LPC11U68 Porting Component is included.

§ NXPBUILD__PH_LPC11U68 [4/4]

#define NXPBUILD__PH_LPC11U68

Host Controller LPC11U68.

Host Controller LPC11U68 Porting Component is included.

§ NXPBUILD__PH_RASPBERRY_PI [3/4]

#define NXPBUILD__PH_RASPBERRY_PI

Host Controller RaspBerry Pi.

Host Controller RaspBerry Pi Porting Component is included.

§ NXPBUILD__PH_RASPBERRY_PI [4/4]

#define NXPBUILD__PH_RASPBERRY_PI

Host Controller RaspBerry Pi.

Host Controller RaspBerry Pi Porting Component is included.

§ NXPBUILD__PH_OSAL_LINUX [3/4]

#define NXPBUILD__PH_OSAL_LINUX

OSAL Implementation of POSIX is included.

RdLib is executed as UM application in Linux

§ NXPBUILD__PH_OSAL_LINUX [4/4]

#define NXPBUILD__PH_OSAL_LINUX

OSAL Implementation of POSIX is included.

RdLib is executed as UM application in Linux

§ NXPBUILD__PH_OSAL_NULLOS [4/6]

#define NXPBUILD__PH_OSAL_NULLOS

OSAL Implementation of NULL OS is included.

RdLib executed in Executive Loop.

§ NXPBUILD__PH_OSAL_NULLOS [5/6]

#define NXPBUILD__PH_OSAL_NULLOS

OSAL Implementation of NULL OS is included.

RdLib executed in Executive Loop.

§ NXPBUILD__PH_OSAL_NULLOS [6/6]

#define NXPBUILD__PH_OSAL_NULLOS

OSAL Implementation of NULL OS is included.

RdLib executed in Executive Loop.

§ NXPBUILD__PH_OSAL_FREERTOS [3/5]

#define NXPBUILD__PH_OSAL_FREERTOS

OSAL Implementation of Free RTOS is included.

RdLib is linked to Free RTOS Library

§ NXPBUILD__PH_OSAL_FREERTOS [4/5]

#define NXPBUILD__PH_OSAL_FREERTOS

OSAL Implementation of Free RTOS is included.

RdLib is linked to Free RTOS Library

§ NXPBUILD__PHBAL_REG_LPCOPEN_SPI [3/4]

#define NXPBUILD__PHBAL_REG_LPCOPEN_SPI

LPCOpenStack SPI BAL Component is included.

§ NXPBUILD__PHBAL_REG_LPCOPEN_SPI [4/4]

#define NXPBUILD__PHBAL_REG_LPCOPEN_SPI

LPCOpenStack SPI BAL Component is included.

§ NXPBUILD__PHBAL_REG_LPCOPEN_I2C [3/4]

#define NXPBUILD__PHBAL_REG_LPCOPEN_I2C

LPCOpenStack SPI I2C Component is included.

§ NXPBUILD__PHBAL_REG_LPCOPEN_I2C [4/4]

#define NXPBUILD__PHBAL_REG_LPCOPEN_I2C

LPCOpenStack SPI I2C Component is included.

§ NXPBUILD__PHHAL_HW_RC523 [3/4]

#define NXPBUILD__PHHAL_HW_RC523

RC523 HAL Component is included.

§ NXPBUILD__PHHAL_HW_RC523 [4/4]

#define NXPBUILD__PHHAL_HW_RC523

RC523 HAL Component is included.

§ NXPBUILD__PHPAL_I14443P4MC_SW [4/7]

#define NXPBUILD__PHPAL_I14443P4MC_SW

PAL ISO 14443-4 Card Mode SW Component is included.

< ISO14443 Card Mode PAL & ISO18092 Target Mode PAL will execute only in an embedded platform and not in PC platform.

PAL ISO 14443-4 Card Mode SW Component is included.

§ NXPBUILD__PHPAL_I14443P4MC_SW [5/7]

#define NXPBUILD__PHPAL_I14443P4MC_SW

PAL ISO 14443-4 Card Mode SW Component is included.

< ISO14443 Card Mode PAL & ISO18092 Target Mode PAL will execute only in an embedded platform and not in PC platform.

PAL ISO 14443-4 Card Mode SW Component is included.

§ NXPBUILD__PHPAL_I14443P4MC_SW [6/7]

#define NXPBUILD__PHPAL_I14443P4MC_SW

PAL ISO 14443-4 Card Mode SW Component is included.

< ISO14443 Card Mode PAL & ISO18092 Target Mode PAL will execute only in an embedded platform and not in PC platform.

PAL ISO 14443-4 Card Mode SW Component is included.

§ NXPBUILD__PHPAL_I18092MT_SW [4/7]

#define NXPBUILD__PHPAL_I18092MT_SW

PAL ISO 18092 Target Mode SW Component is included.

§ NXPBUILD__PHPAL_I18092MT_SW [5/7]

#define NXPBUILD__PHPAL_I18092MT_SW

PAL ISO 18092 Target Mode SW Component is included.

§ NXPBUILD__PHPAL_I18092MT_SW [6/7]

#define NXPBUILD__PHPAL_I18092MT_SW

PAL ISO 18092 Target Mode SW Component is included.

§ NXPBUILD__PHPAL_SLI15693_SW [2/3]

#define NXPBUILD__PHPAL_SLI15693_SW

PAL SLI 15693 Component is included.

§ NXPBUILD__PHPAL_I18000P3M3_SW [3/5]

#define NXPBUILD__PHPAL_I18000P3M3_SW

PAL ISO 18000p3m3 Component is included.

§ NXPBUILD__PHPAL_I18000P3M3_SW [4/5]

#define NXPBUILD__PHPAL_I18000P3M3_SW

PAL ISO 18000p3m3 Component is included.

§ NXPBUILD__PHAC_DISCLOOP_LPCD [3/5]

#define NXPBUILD__PHAC_DISCLOOP_LPCD

SRC to enable LPCD is included.

§ NXPBUILD__PHAC_DISCLOOP_LPCD [4/5]

#define NXPBUILD__PHAC_DISCLOOP_LPCD

SRC to enable LPCD is included.

§ NXPBUILD__PHPAL_I18092MPI_SW [3/5]

#define NXPBUILD__PHPAL_I18092MPI_SW

PAL ISO18092 (P2P) SW Component is included.

§ NXPBUILD__PHPAL_I18092MPI_SW [4/5]

#define NXPBUILD__PHPAL_I18092MPI_SW

PAL ISO18092 (P2P) SW Component is included.

§ NXPBUILD__PHPAL_I14443P3A_SW [2/3]

#define NXPBUILD__PHPAL_I14443P3A_SW

PAL ISO 14443-3A SW Component is included.

§ NXPBUILD__PHPAL_I14443P3B_SW [2/3]

#define NXPBUILD__PHPAL_I14443P3B_SW

PAL ISO 14443-3B SW Component is included.

§ NXPBUILD__PHPAL_I14443P4A_SW [2/3]

#define NXPBUILD__PHPAL_I14443P4A_SW

PAL ISO 14443-4A SW Component is included.

§ NXPBUILD__PHPAL_I14443P4_SW [2/3]

#define NXPBUILD__PHPAL_I14443P4_SW

PAL ISO 14443-4 SW Component is included.

§ NXPBUILD__PHPAL_FELICA_SW [2/3]

#define NXPBUILD__PHPAL_FELICA_SW

PAL Felica SW Component is included.

If FE HAL is RC523, then exclude ISO15693 & ISO18000p3m3 PAL, otherwise include as required.

§ NXPBUILD__PHPAL_EPCUID_SW [2/2]

#define NXPBUILD__PHPAL_EPCUID_SW

< If FE HAL is RC663, then include EPC UID PAL as required, otherwise exclude.

PAL EPC UID SW Component is included.

§ NXPBUILD__PHAC_DISCLOOP_SW [2/3]

#define NXPBUILD__PHAC_DISCLOOP_SW

Discovery Loop Activity SW Component is included.

If DiscLoop SW Component is included, macros( & it's dependencies) to include/exclude SRC/DATA within Discloop is defined.

§ NXPBUILD__PHAC_DISCLOOP_TYPEA_I3P3_TAGS [2/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEA_I3P3_TAGS

SRC/DATA to Detect/CollRes/Activate cards such as MFC, MFUL, MFP SL1 etc is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEA_JEWEL_TAGS [2/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEA_JEWEL_TAGS

SRC/DATA to Detect cards such as NFC Forum T1T, Topaz/Jewel is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEA_I3P4_TAGS [2/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEA_I3P4_TAGS

SRC/DATA to Detect cards such as MFDF, MFP, T4AT NFC Forum Tag or Type A EMVCo is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEA_P2P_TAGS [2/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEA_P2P_TAGS

SRC/DATA to Detect Peer Passive Type A P2P Target mode devices is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEA_P2P_ACTIVE [2/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEA_P2P_ACTIVE

SRC/DATA to Detect Peer Active Type A P2P Target mode devices is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEF212_P2P_ACTIVE [2/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEF212_P2P_ACTIVE

SRC/DATA to Detect Peer Active Type F212 P2P Target mode devices is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEF424_P2P_ACTIVE [2/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEF424_P2P_ACTIVE

SRC/DATA to Detect Peer Active Type F424 P2P Target mode devices is included.

§ NXPBUILD__PHAC_DISCLOOP_FELICA_TAGS [2/3]

#define NXPBUILD__PHAC_DISCLOOP_FELICA_TAGS

SRC/DATA to Detect FeliCa Cards is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEF_P2P_TAGS [2/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEF_P2P_TAGS

SRC/DATA to Detect Peer Passive Type F P2P Target mode devices is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEA_TARGET_PASSIVE [2/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEA_TARGET_PASSIVE

SRC to Initialize Type A passive listen config and subsequently call HAL AutoColl is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEA_TARGET_ACTIVE [2/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEA_TARGET_ACTIVE

SRC to Initialize Type A active listen config and subsequently call HAL AutoColl is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEF212_TARGET_PASSIVE [2/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEF212_TARGET_PASSIVE

SRC to Initialize Type F212 passive listen config and subsequently call HAL AutoColl is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEF212_TARGET_ACTIVE [2/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEF212_TARGET_ACTIVE

SRC to Initialize Type F212 active listen config and subsequently call HAL AutoColl is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEF424_TARGET_PASSIVE [2/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEF424_TARGET_PASSIVE

SRC to Initialize Type F424 passive listen config and subsequently call HAL AutoColl is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEF424_TARGET_ACTIVE [2/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEF424_TARGET_ACTIVE

SRC to Initialize Type F424 active listen config and subsequently call HAL AutoColl is included.

§ NXPBUILD__PH_CIDMANAGER_SW [2/2]

#define NXPBUILD__PH_CIDMANAGER_SW

CID Manager SW Component is included.

§ NXPBUILD__PH_KEYSTORE_SW [2/3]

#define NXPBUILD__PH_KEYSTORE_SW

SW KeyStore Component is included.

§ NXPBUILD__PH_CRYPTOSYM_SW [2/3]

#define NXPBUILD__PH_CRYPTOSYM_SW

Crypto Symbols SW Component is included.

§ NXPBUILD__PH_CRYPTORNG_SW [2/3]

#define NXPBUILD__PH_CRYPTORNG_SW

Crypto RNG SW Component is included.

§ NXPBUILD__PH_PLATFORM [5/5]

#define NXPBUILD__PH_PLATFORM

Embedded Platform Porting and Abstraction Component included.

Used for LPC_XXX, Kinetis_XXX,Raspberry_XXX,iMX_XXX etc. If RdLib executing on embedded platform, then include one of the below embedded platform and one of the OS used as required.

§ NXPBUILD__PH_OSAL_FREERTOS [5/5]

#define NXPBUILD__PH_OSAL_FREERTOS

OSAL Implementation of Free RTOS is included.

RdLib is linked to Free RTOS Library

§ NXPBUILD__PHHAL_HW_PN5180

#define NXPBUILD__PHHAL_HW_PN5180

< If the used NFC HW is not NFC Controller like PN7462AU, then include one of the front end HAL

PN5180 HAL Component is included

§ NXPBUILD__PHPAL_I14443P3A_SW [3/3]

#define NXPBUILD__PHPAL_I14443P3A_SW

PAL ISO 14443-3A SW Component is included.

§ NXPBUILD__PHPAL_I14443P3B_SW [3/3]

#define NXPBUILD__PHPAL_I14443P3B_SW

PAL ISO 14443-3B SW Component is included.

§ NXPBUILD__PHPAL_I14443P4A_SW [3/3]

#define NXPBUILD__PHPAL_I14443P4A_SW

PAL ISO 14443-4A SW Component is included.

§ NXPBUILD__PHPAL_I14443P4_SW [3/3]

#define NXPBUILD__PHPAL_I14443P4_SW

PAL ISO 14443-4 SW Component is included.

§ NXPBUILD__PHPAL_FELICA_SW [3/3]

#define NXPBUILD__PHPAL_FELICA_SW

PAL Felica SW Component is included.

If FE HAL is RC523, then exclude ISO15693 & ISO18000p3m3 PAL, otherwise include as required.

§ NXPBUILD__PHPAL_SLI15693_SW [3/3]

#define NXPBUILD__PHPAL_SLI15693_SW

PAL SLI 15693 Component is included.

§ NXPBUILD__PHPAL_I18000P3M3_SW [5/5]

#define NXPBUILD__PHPAL_I18000P3M3_SW

PAL ISO 18000p3m3 Component is included.

§ NXPBUILD__PHPAL_I18092MPI_SW [5/5]

#define NXPBUILD__PHPAL_I18092MPI_SW

< If FE HAL is RC663, then include EPC UID PAL as required, otherwise exclude.

PAL ISO18092 (P2P) SW Component is included. If FE HAL is RC663, then exclude ISO14443 Card Mode PAL & ISO18092 Target Mode PAL, otherwise include as required. ISO14443 Card Mode PAL & ISO18092 Target Mode PAL will execute only in an embedded platform and not in PC platform.

§ NXPBUILD__PHPAL_I14443P4MC_SW [7/7]

#define NXPBUILD__PHPAL_I14443P4MC_SW

PAL ISO 14443-4 Card Mode SW Component is included.

§ NXPBUILD__PHPAL_I18092MT_SW [7/7]

#define NXPBUILD__PHPAL_I18092MT_SW

PAL ISO 18092 Target Mode SW Component is included.

§ NXPBUILD__PHAC_DISCLOOP_SW [3/3]

#define NXPBUILD__PHAC_DISCLOOP_SW

Discovery Loop Activity SW Component is included.

If DiscLoop SW Component is included, macros( & it's dependencies) to include/exclude SRC/DATA within Discloop is defined.

§ NXPBUILD__PHAC_DISCLOOP_LPCD [5/5]

#define NXPBUILD__PHAC_DISCLOOP_LPCD

SRC to enable LPCD is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEA_I3P3_TAGS [3/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEA_I3P3_TAGS

SRC/DATA to Detect/CollRes/Activate cards such as MFC, MFUL, MFP SL1 etc is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEA_JEWEL_TAGS [3/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEA_JEWEL_TAGS

SRC/DATA to Detect cards such as NFC Forum T1T, Topaz/Jewel is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEA_I3P4_TAGS [3/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEA_I3P4_TAGS

SRC/DATA to Detect cards such as MFDF, MFP, T4AT NFC Forum Tag or Type A EMVCo is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEA_P2P_TAGS [3/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEA_P2P_TAGS

SRC/DATA to Detect Peer Passive Type A P2P Target mode devices is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEA_P2P_ACTIVE [3/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEA_P2P_ACTIVE

SRC/DATA to Detect Peer Active Type A P2P Target mode devices is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEF212_P2P_ACTIVE [3/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEF212_P2P_ACTIVE

SRC/DATA to Detect Peer Active Type F212 P2P Target mode devices is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEF424_P2P_ACTIVE [3/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEF424_P2P_ACTIVE

SRC/DATA to Detect Peer Active Type F424 P2P Target mode devices is included.

§ NXPBUILD__PHAC_DISCLOOP_FELICA_TAGS [3/3]

#define NXPBUILD__PHAC_DISCLOOP_FELICA_TAGS

SRC/DATA to Detect FeliCa Cards is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEF_P2P_TAGS [3/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEF_P2P_TAGS

SRC/DATA to Detect Peer Passive Type F P2P Target mode devices is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEA_TARGET_PASSIVE [3/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEA_TARGET_PASSIVE

< If FE HAL is RC663, target mode is not supported at all, hence exclude those SRC, otherwise include as required

SRC to Initialize Type A passive listen config and subsequently call HAL AutoColl is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEA_TARGET_ACTIVE [3/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEA_TARGET_ACTIVE

SRC to Initialize Type A active listen config and subsequently call HAL AutoColl is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEF212_TARGET_PASSIVE [3/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEF212_TARGET_PASSIVE

SRC to Initialize Type F212 passive listen config and subsequently call HAL AutoColl is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEF212_TARGET_ACTIVE [3/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEF212_TARGET_ACTIVE

SRC to Initialize Type F212 active listen config and subsequently call HAL AutoColl is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEF424_TARGET_PASSIVE [3/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEF424_TARGET_PASSIVE

SRC to Initialize Type F424 passive listen config and subsequently call HAL AutoColl is included.

§ NXPBUILD__PHAC_DISCLOOP_TYPEF424_TARGET_ACTIVE [3/3]

#define NXPBUILD__PHAC_DISCLOOP_TYPEF424_TARGET_ACTIVE

SRC to Initialize Type F424 active listen config and subsequently call HAL AutoColl is included.

§ NXPBUILD__PHNFCLIB [1/2]

#define NXPBUILD__PHNFCLIB

Simplified API Interface, If enabling this the entry point should be this component in the application.

Simplified layer Component.

§ NXPBUILD__PHNFCLIB [2/2]

#define NXPBUILD__PHNFCLIB

Simplified API Interface, If enabling this the entry point should be this component in the application.

Simplified layer Component.

§ NXPBUILD__PH_KEYSTORE_SW [3/3]

#define NXPBUILD__PH_KEYSTORE_SW

SW KeyStore Component is included.

§ NXPBUILD__PH_CRYPTOSYM_SW [3/3]

#define NXPBUILD__PH_CRYPTOSYM_SW

Crypto Symbols SW Component is included.

§ NXPBUILD__PH_CRYPTORNG_SW [3/3]

#define NXPBUILD__PH_CRYPTORNG_SW

Crypto RNG SW Component is included.

§ NXPBUILD__PHLN_LLCP_SW

#define NXPBUILD__PHLN_LLCP_SW

< SRC to handle Extended NDEF Support as per T4T spec 3.0 is included

Link LLCP SW Component is included


NXP NFC Reader Library: Platform HOST Porting Component

Typedefs | Enumerations | Functions
Platform HOST Porting Component

These Components implement the Platform HOST porting abstraction layer. More...

Typedefs

typedef enum phPlatform_Port_Host_config | phPlatform_Port_Host_config_t
Functional Abstraction of various PINs between Host and Frontend.
typedef enum phPlatform_Port_Host_Interrupt | phPlatform_Port_Host_Interrupt_t
Configures the interrupt generation condition.

Enumerations

enum phPlatform_Port_Host_config {
PHPLATFORM_PORT_PIN_RESET = 0x1U, PHPLATFORM_PORT_PIN_IRQ = 0x2U, PHPLATFORM_PORT_PIN_SPI = 0x3U, PHPLATFORM_PORT_PIN_I2C = 0x4U,
PHPLATFORM_PORT_PIN_BUSY = 0x5U, PHPLATFORM_PORT_PIN_DWL = 0x6U, PHPLATFORM_PORT_PIN_IFSEL0 = 0x7U, PHPLATFORM_PORT_PIN_IFSEL1 = 0x8U,
PHPLATFORM_PORT_PIN_AD0 = 0x9U, PHPLATFORM_PORT_PIN_AD1 = 0xAU, PHPLATFORM_PORT_PIN_AD2 = 0xBU
}
Functional Abstraction of various PINs between Host and Frontend. More...
enum phPlatform_Port_Host_Interrupt { PHPLATFORM_PORT_INT_DISABLED = 0x0U, PHPLATFORM_PORT_INT_RISING_EDGE = 0x1U, PHPLATFORM_PORT_INT_FALLING_EDGE = 0x2U }
Configures the interrupt generation condition. More...

Functions

phStatus_t | phPlatform_Port_Host_SetPinConfig (phPlatform_Port_Host_config_t bConfig)
This API is used to configure and initialize the HOST pins (ex : Reset, IRQ, AD etc) which are connected to respective front-ends. More...
void | phPlatform_Port_Host_SetPinValue (phPlatform_Port_Host_config_t bConfig, uint8_t bVal)
This API is used to set the state of HOST pin. More...
bool | phPlatform_Port_Host_GetPinValue (phPlatform_Port_Host_config_t bConfig)
Get a GPIO pin state via the GPIO byte register. More...
void | phPlatform_Port_Host_ClearInt (void)
Clear interrupt status. More...
phStatus_t | phPlatform_Port_Host_HwTimer_Init (void)
Initialize the Host Timer module. More...
phStatus_t | phPlatform_Port_Host_HwTimer_Create (uint32_t dwUnits, uint8_t bTimerId, void **ppTimerHandle)
Allocates a free Host timer. More...
phStatus_t | phPlatform_Port_Host_HwTimer_Configure (void *pTimerHandle, uint32_t dwUnits, uint32_t dwTimePeriod)
This API configures the acquired timer with timeout duration. More...
phStatus_t | phPlatform_Port_Host_HwTimer_Start (void *pTimerHandle, uint16_t wOption)
Start the Host timer, upon timer expire phPlatform_Timer_IsrHandler API will be called with timer ID. More...
phStatus_t | phPlatform_Port_Host_HwTimer_GetElapsedDelay (void *pTimerHandle, uint32_t dwUnits, uint32_t *pdwGetElapsedDelay)
Get Elapsed Delay from host timer which is created and started before calling this API. More...
phStatus_t | phPlatform_Port_Host_HwTimer_Stop (void *pTimerHandle)
Stop the host timer. More...
phStatus_t | phPlatform_Port_Host_HwTimer_Reset (void *pTimerHandle)
Reset the host timer. More...
phStatus_t | phPlatform_Port_Host_HwTimer_Delete (void *pTimerHandle)
Delete the host timer. More...
void | phPlatform_Port_Host_HwTimer_DeInit (void)
DeInitializes the Timer component. More...

Detailed Description

These Components implement the Platform HOST porting abstraction layer.

These API provide easy to port NfcRdLib on different Host platform.

Enumeration Type Documentation

§ phPlatform_Port_Host_config

enum phPlatform_Port_Host_config

Functional Abstraction of various PINs between Host and Frontend.

Enumerator
PHPLATFORM_PORT_PIN_RESET | Reset the Frontend.
PHPLATFORM_PORT_PIN_IRQ | Interrupt from the Frontend to Host.
PHPLATFORM_PORT_PIN_SPI | SPI Pins of the Host.
PHPLATFORM_PORT_PIN_I2C | I2C Pins of the Host.
PHPLATFORM_PORT_PIN_BUSY | Frontend's Busy Status, if Applicable.
PHPLATFORM_PORT_PIN_DWL | Assert Download mode of Frontend, if Applicable.
PHPLATFORM_PORT_PIN_IFSEL0 | IFSEL0 of the Frontend, if Applicable.
PHPLATFORM_PORT_PIN_IFSEL1 | IFSEL1 of the Frontend, if Applicable.
PHPLATFORM_PORT_PIN_AD0 | Address Select Pin of Frontend, if Applicable.
PHPLATFORM_PORT_PIN_AD1 | Address Select Pin of Frontend, if Applicable.
PHPLATFORM_PORT_PIN_AD2 | Address Select Pin of Frontend, if Applicable.

§ phPlatform_Port_Host_Interrupt

enum phPlatform_Port_Host_Interrupt

Configures the interrupt generation condition.

Enumerator
PHPLATFORM_PORT_INT_DISABLED | Interrupt request is disabled.
PHPLATFORM_PORT_INT_RISING_EDGE | Interrupt on rising edge.
PHPLATFORM_PORT_INT_FALLING_EDGE | Interrupt on falling edge.

Function Documentation

§ phPlatform_Port_Host_SetPinConfig()

phStatus_t phPlatform_Port_Host_SetPinConfig ( phPlatform_Port_Host_config_t bConfig )

This API is used to configure and initialize the HOST pins (ex : Reset, IRQ, AD etc) which are connected to respective front-ends.

Port and Pin number are abstracted in specific Platform configuration header file. For any new combination of Host and Front-end, new configuration header file can be added to easy the porting.

Parameters
[in] bConfig : HOST pin that needs to be configured.
Returns
Status of the API
Return values
PH_ERR_SUCCESS Operation successful.

§ phPlatform_Port_Host_SetPinValue()

void phPlatform_Port_Host_SetPinValue | ( | phPlatform_Port_Host_config_t | bConfig,
 |  | uint8_t | bVal
 | ) |  |

This API is used to set the state of HOST pin.

Port and Pin number are abstracted in specific Platform configuration header file. For any new combination of Host and Front-end, new configuration header file can be added to easy the porting.

Parameters
[in] | bConfig | : HOST pin needs to be set.
[in] | bVal | : PH_PLATFORM_SET_HIGH for high, PH_PLATFORM_SET_LOW for low.
Returns
Nothing

§ phPlatform_Port_Host_GetPinValue()

bool phPlatform_Port_Host_GetPinValue ( phPlatform_Port_Host_config_t bConfig )

Get a GPIO pin state via the GPIO byte register.

Port and Pin number are abstracted in specific Platform configuration header file. For any new combination of Host and Front-end, new configuration header file can be added to easy the porting.

Parameters
[in] bConfig : Get the state of HOST pin.
Returns
Status of the API
true if HOST pin is in high state else false.

§ phPlatform_Port_Host_ClearInt()

void phPlatform_Port_Host_ClearInt ( void )

Clear interrupt status.

Port and Pin number are abstracted in specific Platform configuration header file. For any new combination of Host and Front-end, new configuration header file can be added to easy the porting.

Returns
Nothing

§ phPlatform_Port_Host_HwTimer_Init()

phStatus_t phPlatform_Port_Host_HwTimer_Init ( void )

Initialize the Host Timer module.

Note
This API will be called by phPlatform_Timer_Init API.
Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INTERNAL_ERROR | For unsuccessful operation.

§ phPlatform_Port_Host_HwTimer_Create()

phStatus_t phPlatform_Port_Host_HwTimer_Create | ( | uint32_t | dwUnits,
 |  | uint8_t | bTimerId,
 |  | void ** | ppTimerHandle
 | ) |  |

Allocates a free Host timer.

Note
This API will be called by phPlatform_Timer_Create API.
Parameters
[in] | dwUnits | Timer Resolution (e.g. PH_PLATFORM_TIMER_UNIT_S)
[in] | bTimerId | Timer Number
[out] | ppTimerHandle | Handle to the timer in case of success else NULL.
Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_RESOURCE_ERROR | If host timer cannot be created.

§ phPlatform_Port_Host_HwTimer_Configure()

phStatus_t phPlatform_Port_Host_HwTimer_Configure | ( | void * | pTimerHandle,
 |  | uint32_t | dwUnits,
 |  | uint32_t | dwTimePeriod
 | ) |  |

This API configures the acquired timer with timeout duration.

Note
This API will be called by phPlatform_Timer_Configure API.
Parameters
[in] | pTimerHandle | Handle to timer as returned by phPlatform_Port_Host_HwTimer_Create.
[in] | dwUnits | Timer Resolution configured during phPlatform_Port_Host_HwTimer_Create.
[in] | dwTimePeriod
Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | Invalid input parameter.
PH_ERR_PARAMETER_OVERFLOW | If timer cannot be configured to the provide time by parameter dwTimePeriod.

§ phPlatform_Port_Host_HwTimer_Start()

phStatus_t phPlatform_Port_Host_HwTimer_Start | ( | void * | pTimerHandle,
 |  | uint16_t | wOption
 | ) |  |

Start the Host timer, upon timer expire phPlatform_Timer_IsrHandler API will be called with timer ID.

Note
This API will be called by phPlatform_Timer_Start API.
Parameters
[in] | pTimerHandle | Handle to timer as returned by phPlatform_Port_Host_HwTimer_Create.
[in] | wOption | Parameter to mention Single shot PH_PLATFORM_TIMER_SINGLE_SHOT or Free running timer PH_PLATFORM_TIMER_FREE_RUN.
Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | Invalid input parameter.
PH_ERR_RESOURCE_ERROR | If host timer could not be started.

§ phPlatform_Port_Host_HwTimer_GetElapsedDelay()

phStatus_t phPlatform_Port_Host_HwTimer_GetElapsedDelay | ( | void * | pTimerHandle,
 |  | uint32_t | dwUnits,
 |  | uint32_t * | pdwGetElapsedDelay
 | ) |  |

Get Elapsed Delay from host timer which is created and started before calling this API.

Note
This API will be called by phPlatform_Timer_GetElapsedDelay API.
Parameters
[in] | pTimerHandle | Handle to timer as returned by phPlatform_Port_Host_HwTimer_Create.
[in] | dwUnits | Timer Resolution configured during phPlatform_Port_Host_HwTimer_Create.
[out] | pdwGetElapsedDelay | Duration of delay as per the passed resolution.
Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | Invalid input parameter.

§ phPlatform_Port_Host_HwTimer_Stop()

phStatus_t phPlatform_Port_Host_HwTimer_Stop ( void * pTimerHandle )

Stop the host timer.

Note
This API will be called by phPlatform_Timer_Stop API.
Parameters
[in] pTimerHandle Handle to timer as returned by phPlatform_Port_Host_HwTimer_Create.
Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | Invalid input parameter.
PH_ERR_RESOURCE_ERROR | Timer could not be stopped.

§ phPlatform_Port_Host_HwTimer_Reset()

phStatus_t phPlatform_Port_Host_HwTimer_Reset ( void * pTimerHandle )

Reset the host timer.

Note
This API will be called by phPlatform_Timer_Reset API.
Parameters
[in] pTimerHandle Handle to timer as returned by phPlatform_Port_Host_HwTimer_Create.
Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | Invalid input parameter.
PH_ERR_RESOURCE_ERROR | Could not reset timer.

§ phPlatform_Port_Host_HwTimer_Delete()

phStatus_t phPlatform_Port_Host_HwTimer_Delete ( void * pTimerHandle )

Delete the host timer.

Note
This API will be called by phPlatform_Timer_Delete API.
Parameters
[in] pTimerHandle Handle to timer as returned by phPlatform_Port_Host_HwTimer_Create
Returns
Status of the API
Return values
PH_ERR_SUCCESS | Operation successful.
PH_ERR_INVALID_PARAMETER | Invalid input parameter.
PH_ERR_RESOURCE_ERROR | Timer could not delete.

§ phPlatform_Port_Host_HwTimer_DeInit()

void phPlatform_Port_Host_HwTimer_DeInit ( void )

DeInitializes the Timer component.

Note
This API will be called by phPlatform_Timer_DeInit API.
Returns
Status of the API
Return values
PH_ERR_SUCCESS Operation successful.


NXP NFC Reader Library: Data Structures

Data Structures
Here are the data structures with brief descriptions:
[detail level 12]
C phacDiscLoop_I18000p3m3_Info | 18000p3m3 parameter structure
C phacDiscLoop_Sw_DataParams | Discovery loop parameter structure
▼C phacDiscLoop_Sw_TypeA_Info | Type A parameter structure
C phacDiscLoop_Type_P2P_TAGS | Structure holding information on Type A P2P activation/communication
C phacDiscLoop_TypeA_I3P3 | Structure info required for ISO/IEC 14443 communication
C phascDiscLoop_TypeA_I3P4 | Structure info required for ISO/IEC 14443-4 communication
▼C phacDiscLoop_Sw_TypeB_Info | Type B parameter structure
C phacDiscLoop_TypeB_I3P3B | Structure for Type B (ISO/IEC 14443-B) tags
C phacDiscLoop_TypeB_I3P4B | Type B ISO/IEC 14443-4B tag structure
▼C phacDiscLoop_Sw_TypeF_Info | Type F parameter structure
C phacDiscLoop_TypeF_P2P_Info | Structure holding information for Type F P2P communication
C phacDiscLoop_Sw_TypeV_Info | Type V parameter structure
C phacDiscLoop_TargetParams | Target parameter structure
C phalFelica_Sw_DataParams_t | Private parameter structure
C phalI15693_Sw_DataParams_t | Private parameter structure
C phalI18000p3m3_Sw_DataParams_t | Software PAL-I18000P3M3 parameter structure
C phalMfc_Sw_DataParams_t | Private parameter structure
C phalMfdf_Sw_DataParams_t | Struct phalMfdf_Sw_DataParams_t
C phalMful_Sw_DataParams_t | Private parameter structure
C phalSli_Sw_DataParams_t | Private parameter structure
C phalT1T_Sw_DataParams_t | Private parameter structure
C phalTop_Sw_DataParams | Tag Operations parameter structure
C phalTop_T1T | T1T parameter structure
C phalTop_T1T_LockCtrlTlv | T1T Lock Control TLV parameter structure
C phalTop_T1T_MemCtrlTlv | T1T Memory Control TLV parameter structure
C phalTop_T1T_ProprietaryTlv | T1T Proprietary TLV parameter structure
C phalTop_T2T | T2T parameter structure
C phalTop_T2T_LockCtrlTlv | T2T Lock Control TLV parameter structure
C phalTop_T2T_MemCtrlTlv | T2T Memory Control TLV parameter structure
C phalTop_T2T_Sector | T2T Sector parameters
C phalTop_T3T | T3T parameter structure
C phalTop_T4T | T4T parameter structure
C phalTop_T5T | T5T parameter structure
C phalTop_TIT_Segment | T1T Segment parameters
C phbalReg_KinetisI2C_DataParams_t | Kinetis I2C BAL parameter structure
C phbalReg_KinetisSpi_DataParams_t | Kinetis SPI BAL parameter structure
C phbalReg_LinuxKernelSpi_DataParams_t | BAL Linux Kernel Spi parameter structure
C phbalReg_LinuxUserI2C_DataParams_t | BAL Linux User I2C parameter structure
C phbalReg_LinuxUserSpi_DataParams_t | BAL Linux User Spi parameter structure
C phbalReg_LpcOpenI2c_DataParams_t | LPC Open I2C BAL parameter structure
C phbalReg_LpcOpenSpi_DataParams_t | LPC Open SPI BAL parameter structure
C phbalReg_Type_t | BAL type structure
C phceT4T_Sw_DataParams | NFC Type 4A Tag card emulation parameter structure
C phCidManager_Sw_DataParams_t | Cid Manager parameter structure
C phCryptoRng_Sw_DataParams_t | Software parameter structure
C phCryptoSym_Sw_DataParams_t | Software parameter structure
C phhalHw_Nfc_Ic_DataParams_t | HAL parameter structure
C phhalHw_Pn5180_DataParams_t | PN5180 HAL component
C phhalHw_PN7462AU_DataParams | Context Structure for PN7462AU
C phhalHw_Rc523_DataParams_t | Rc523 HAL parameter structure
C phhalHw_Rc663_DataParams_t | Rc663 HAL parameter structure
C phKeyStore_Sw_DataParams_t | Sw parameter structure
C phKeyStore_Sw_KeyEntry_t | Sw KeyEntry structure
C phKeyStore_Sw_KeyVersionPair_t | Sw KeyVersionPair structure
C phKeyStore_Sw_KUCEntry_t | Sw KeyUsageCounter structure
C phlnLlcp_LMDataParams | Link Management parameters that are expected by LLC
C phlnLlcp_Socket_Seq | Socket Sequence
C phlnLlcp_Sw_DataParams | LLCP parameter structure
C phlnLlcp_Transport_Socket | Socket structure of LLCP transport
C phNfcLib_DataParams_t | NFCLIB parameter structure
C phNfcLib_I15693 | Defines parameters that needs be provided by User to communicate with ISO 15693 card
C phNfcLib_I18000p3m3 | Defines parameters that needs be provided by User to communicate with ISO 18000p3m3 card
C phNfcLib_InternalState_t | NFC LIB State
C phNfcLib_MFC | Defines parameters that needs be provided by User to communicate with MIFare Classic card
C phNfcLib_MFdf | Defines parameters that needs be provided by User to communicate with MIFare DESFire card
C phNfcLib_MFUL | Defines parameters that needs be provided by User to communicate with MIFare Ultralight card
C phNfcLib_PeerInfo_t | Peer Information
C phNfcLib_RawTransmit | Defines parameters that needs be provided by User to communicate with raw ISO 14443-3 or ISO 14443-4 peer
C phNfcLib_Transmit | Defines parameters that needs be provided by User to use phNfcLib_Transmit API in ISO mode
C phnpSnep_Sw_DataParams | SNEP parameter structure
C phOsal_EventObj | Osal Event Object
C phOsal_MutexObj | Mutex Object
C phOsal_SemObj | OS Semaphore Object
C phOsal_ThreadObj | Osal Thread Object
C phOsal_TimePeriodObj | Timer Period Object
C phOsal_TimerObj | Osal Timer Object
C phpalFelica_Sw_DataParams_t | Felica parameter structure
C phpalI14443p3a_Sw_DataParams_t | Software PAL-ISO14443P3A parameter structure
C phpalI14443p3b_Sw_DataParams_t | Software PAL-ISO14443P3B parameter structure
C phpalI14443p4_Sw_DataParams_t | ISO14443-4 parameter structure
C phpalI14443p4a_Sw_DataParams_t | Software PAL-ISO14443P4A parameter structure
C phpalI14443p4mC_Sw_DataParams_t | ISO14443-4 card mode PAL parameter structure
C phpalI18000p3m3_Sw_DataParams_t | Software PAL-I18000P3M3 parameter structure
C phpalI18092mPI_Sw_DataParams_t | ISO18092 mode passive initiator parameter structure
C phpalI18092mT_Sw_DataParams_t | ISO18092 mode passive target parameter structure
C phpalMifare_Sw_DataParams_t | Software PAL-MIFARE parameter structure
C phpalSli15693_Sw_DataParams | Software Sli15693 PAL parameter structure
C phPlatform_DataParams_t | OSAL parameter structure
C phTools_Q | Queue structure of Message Queue


NXP NFC Reader Library: phhalHw_PN7462AU_DataParams Struct Reference

Data Fields
phhalHw_PN7462AU_DataParams Struct Reference

Context Structure for PN7462AU. More...

Data Fields

uint16_t wId
Layer ID for this HAL component, NEVER MODIFY!
uint8_t bCardType
Mode in which the device will start working.
uint8_t bFrameStep
Frame Step Mode for Jewel card. More...
uint8_t bSession
Inventory session of ISO 18000p3m3. More...
uint8_t bRxMultiple
Flag to configure Felica RX Multiple. More...
uint8_t bActiveMode
Flag for Active Configuration. More...
uint8_t bTxLastBits
No of bits to be send of the last byte. More...
uint8_t | abStoredCRC [2]
StoredCRC of ISO 18000p3m3 tag. More...
uint8_t bPiccAState
Information about MF Halted State in card mode.
uint8_t bNfcipMode
Enable/Disable to handle start byte at 106kbps in NFCIP-1 mode. More...
uint8_t bMfcCryptoDisabled
Flag indicates whether the MFC Crypto is enabled or not. More...
uint8_t bAsk100
Flag to indicate ASK 100 on or off status.
phhalRf_AutoCollParam_t | pAutocoll
Contains the parameter of autocoll.
uint8_t * pTxBuffer
Pointer to global transmit buffer used by the Exchange() function. More...
uint8_t * pRxBuffer
Pointer to global receive buffer used by the Exchange() function. More...
uint16_t wRxSubCarrier
Information about Subcarrier to be used during Rx.
uint16_t wTxDataRate
Transmission Data rate.
uint16_t wRxDataRate
Preferred reception data rate.
uint16_t wTxBufLen
Size of the buffer trasmitted.
uint16_t wParity
Parity Config.
uint16_t wOpeMode
Opemode of discloop differentiate between EMVCO, ISO and NFC mode.
uint16_t wFieldOffTime
Field off time for rf reset.
uint16_t wFieldRecoveryTime
Field recovery time for rf reset.
uint16_t wTxBufSize
Size of the global transmit buffer. More...
uint16_t wRxBufSize
Size of the global receive buffer. More...
uint16_t wRxBufLen
Number of valid bytes within the receive buffer. More...
uint16_t wAdditionalInfo
Additional Information. More...
uint16_t wRxBufStartPos
Start position of rx buffer. More...
uint16_t wCurrentSlotCount
ISO 18000p3m3 slot count at time of buffer overflow (PH_ERR_SUCCESS_CHAINING). More...
uint16_t wTargetMode
Flag for Target Mode Configuration. More...
uint32_t dwFdt
Frame delay time (us)
uint32_t dwLpcdThreshold
AGC_CardThreshold Initial Detection Threshold of the AGC to de-tune.
uint32_t dwLpcdReference
AGC_RefValue reference value for agc.
uint32_t dwLpcd_NewValue
Variable to store new agc value.
uint32_t dwI15693Sof
Presence of SOF of 15693.
void * | pKeyStoreDataParams
Pointer to the parameter structure of the keyStore layer. More...
phOsal_EventObj_t HwEventObj
Handle for Event. More...

Detailed Description

Context Structure for PN7462AU.

Field Documentation

§ bFrameStep

uint8_t phhalHw_PN7462AU_DataParams::bFrameStep

Frame Step Mode for Jewel card.

§ bSession

uint8_t phhalHw_PN7462AU_DataParams::bSession

Inventory session of ISO 18000p3m3.

§ bRxMultiple

uint8_t phhalHw_PN7462AU_DataParams::bRxMultiple

Flag to configure Felica RX Multiple.

§ bActiveMode

uint8_t phhalHw_PN7462AU_DataParams::bActiveMode

Flag for Active Configuration.

§ bTxLastBits

uint8_t phhalHw_PN7462AU_DataParams::bTxLastBits

No of bits to be send of the last byte.

§ abStoredCRC

uint8_t phhalHw_PN7462AU_DataParams::abStoredCRC[2]

StoredCRC of ISO 18000p3m3 tag.

§ bNfcipMode

uint8_t phhalHw_PN7462AU_DataParams::bNfcipMode

Enable/Disable to handle start byte at 106kbps in NFCIP-1 mode.

§ bMfcCryptoDisabled

uint8_t phhalHw_PN7462AU_DataParams::bMfcCryptoDisabled

Flag indicates whether the MFC Crypto is enabled or not.

§ pTxBuffer

uint8_t* phhalHw_PN7462AU_DataParams::pTxBuffer

Pointer to global transmit buffer used by the Exchange() function.

§ pRxBuffer

uint8_t* phhalHw_PN7462AU_DataParams::pRxBuffer

Pointer to global receive buffer used by the Exchange() function.

§ wTxBufSize

uint16_t phhalHw_PN7462AU_DataParams::wTxBufSize

Size of the global transmit buffer.

§ wRxBufSize

uint16_t phhalHw_PN7462AU_DataParams::wRxBufSize

Size of the global receive buffer.

§ wRxBufLen

uint16_t phhalHw_PN7462AU_DataParams::wRxBufLen

Number of valid bytes within the receive buffer.

§ wAdditionalInfo

uint16_t phhalHw_PN7462AU_DataParams::wAdditionalInfo

Additional Information.

§ wRxBufStartPos

uint16_t phhalHw_PN7462AU_DataParams::wRxBufStartPos

Start position of rx buffer.

§ wCurrentSlotCount

uint16_t phhalHw_PN7462AU_DataParams::wCurrentSlotCount

ISO 18000p3m3 slot count at time of buffer overflow (PH_ERR_SUCCESS_CHAINING).

§ wTargetMode

uint16_t phhalHw_PN7462AU_DataParams::wTargetMode

Flag for Target Mode Configuration.

§ pKeyStoreDataParams

void* phhalHw_PN7462AU_DataParams::pKeyStoreDataParams

Pointer to the parameter structure of the keyStore layer.

§ HwEventObj

phOsal_EventObj_t phhalHw_PN7462AU_DataParams::HwEventObj

Handle for Event.

The documentation for this struct was generated from the following file:
  • phhalHw.h


NXP NFC Reader Library: phNfcLib_DataParams_t Struct Reference

Data Fields
phNfcLib_DataParams_t Struct Reference

NFCLIB parameter structure. More...

Data Fields

uint16_t wId
ID of this component, do not modify. More...
phPlatform_DataParams_t sPlatform
Platform component holder.
pphNfcLib_ErrCallbck pNfcLib_ErrCallbck
Call back in case of error in activation(applicable for activation profile PH_NFCLIB_ACTIVATION_PROFILE_EMVCO)

Detailed Description

NFCLIB parameter structure.

Field Documentation

§ wId

uint16_t phNfcLib_DataParams_t::wId

ID of this component, do not modify.

The documentation for this struct was generated from the following file:
  • phNfcLib.h


NXP NFC Reader Library: phNfcLib_I15693 Struct Reference

Data Fields
phNfcLib_I15693 Struct Reference

Defines parameters that needs be provided by User to communicate with ISO 15693 card. More...

Data Fields

phNfcLib_I15693_Commands_t bCommand
[In] ISO-IEC 15693-3 command needs to be provided. More...
uint8_t bOption
[In] Option flag shall be set in Request flags. More...
uint8_t bAfi
[In] Application family identifier. More...
uint8_t bDsfid
[In] Data storage format identifier. More...
uint16_t wBlockNumber
[In] Block number on which ISO 15693-3 command to be executed. More...
uint16_t wNumBlocks
[In] Number of blocks on which command like ReadMultiple/WriteMultiple blocks command to be executed. More...

Detailed Description

Defines parameters that needs be provided by User to communicate with ISO 15693 card.

Field Documentation

§ bCommand

phNfcLib_I15693_Commands_t phNfcLib_I15693::bCommand

[In] ISO-IEC 15693-3 command needs to be provided.

§ bOption

uint8_t phNfcLib_I15693::bOption

[In] Option flag shall be set in Request flags.

Meaning is defined by each command description. For more info refer ISO-IEC 15693-3 Spec.

§ bAfi

uint8_t phNfcLib_I15693::bAfi

[In] Application family identifier.

§ bDsfid

uint8_t phNfcLib_I15693::bDsfid

[In] Data storage format identifier.

§ wBlockNumber

uint16_t phNfcLib_I15693::wBlockNumber

[In] Block number on which ISO 15693-3 command to be executed.

Optional commands block number is single byte. Only in case of Extended commands block number will be 2 bytes.

§ wNumBlocks

uint16_t phNfcLib_I15693::wNumBlocks

[In] Number of blocks on which command like ReadMultiple/WriteMultiple blocks command to be executed.

The documentation for this struct was generated from the following file:
  • phNfcLib.h


NXP NFC Reader Library: phNfcLib_I18000p3m3 Struct Reference

Data Fields
phNfcLib_I18000p3m3 Struct Reference

Defines parameters that needs be provided by User to communicate with ISO 18000p3m3 card. More...

Data Fields

phNfcLib_I18000_Commands_t bCommand
[In] ISO-IEC 18000-p3m3 command needs to be provided. More...
uint8_t bOption
[In] Options that can provided for Write, Kill and Access. More...
uint8_t bMemBank
[In] Memory bank being addressed. More...
uint8_t bReadLock
[In] Indicates if BlockPermaLock should read (bit 0) or lock (bit 1) the block. More...
uint8_t * pWordPtr
[In] Pointer to starting address for Read. More...
uint8_t bWordPtrLength
[In] Should indicate length of pWordPtr provided by User. More...
uint8_t bWordCount
[In] Number of 16-bit words to be Read or BlockWrite. More...
uint8_t * pPassword
[In] Pointer to 4 bytes of password used by Kill and Access command to put the Tag into killed or secured state respectively. More...
uint8_t bRecom
[In] Recommission Option - 3 bit significant, Option 0x04 is mandatory implementation rest is optional . More...
uint8_t * pMask
[In] Mask specifies which memory blocks a tag PermaLocks. More...
uint8_t * pAction
[In] Action specifies teh action to be perfomed for Lock on the given Mask. More...
uint8_t * pBlockPtr
[In] Pointer to starting address for BlockPermaLock. More...
uint8_t bBlockPtrLength
[In] Should indicate length of pBlockPtr provided by User. More...
uint8_t bBlockRange
[In] Specifies range of Mask, starting at BlockPtr and ending (16�BlockRange)�1 blocks later to starting address for BlockPermaLock. More...
uint8_t * pHandle
[In] Pointer to the 2 byte handle of the tag. More...
uint8_t * pUii
[In] Pointer to the UII Mem bank of the tag, could be at max 58 bytes data . More...
uint8_t wUiiMaskLength
[In] Length of the UII Membank data received . More...
uint8_t * pBuffer
[In] Pointer to 16bit or multiple of 16bit data that needs to be written on Tag. More...

Detailed Description

Defines parameters that needs be provided by User to communicate with ISO 18000p3m3 card.

Field Documentation

§ bCommand

phNfcLib_I18000_Commands_t phNfcLib_I18000p3m3::bCommand

[In] ISO-IEC 18000-p3m3 command needs to be provided.

§ bOption

uint8_t phNfcLib_I18000p3m3::bOption

[In] Options that can provided for Write, Kill and Access.

Refer nfc_lib_18000p3m3_options Options

§ bMemBank

uint8_t phNfcLib_I18000p3m3::bMemBank

[In] Memory bank being addressed.

Valid memory bank are 0, 1, 2 and 3.

§ bReadLock

uint8_t phNfcLib_I18000p3m3::bReadLock

[In] Indicates if BlockPermaLock should read (bit 0) or lock (bit 1) the block.

§ pWordPtr

uint8_t* phNfcLib_I18000p3m3::pWordPtr

[In] Pointer to starting address for Read.

Shall be of 8, 16, 24, 32 bit length.

§ bWordPtrLength

uint8_t phNfcLib_I18000p3m3::bWordPtrLength

[In] Should indicate length of pWordPtr provided by User.

Valid values are 0, 1, 2 and 3.

§ bWordCount

uint8_t phNfcLib_I18000p3m3::bWordCount

[In] Number of 16-bit words to be Read or BlockWrite.

§ pPassword

uint8_t* phNfcLib_I18000p3m3::pPassword

[In] Pointer to 4 bytes of password used by Kill and Access command to put the Tag into killed or secured state respectively.

§ bRecom

uint8_t phNfcLib_I18000p3m3::bRecom

[In] Recommission Option - 3 bit significant, Option 0x04 is mandatory implementation rest is optional .

§ pMask

uint8_t* phNfcLib_I18000p3m3::pMask

[In] Mask specifies which memory blocks a tag PermaLocks.

§ pAction

uint8_t* phNfcLib_I18000p3m3::pAction

[In] Action specifies teh action to be perfomed for Lock on the given Mask.

§ pBlockPtr

uint8_t* phNfcLib_I18000p3m3::pBlockPtr

[In] Pointer to starting address for BlockPermaLock.

Shall be of 8, 16, 24, 32 bit length.

§ bBlockPtrLength

uint8_t phNfcLib_I18000p3m3::bBlockPtrLength

[In] Should indicate length of pBlockPtr provided by User.

Valid values are 0, 1, 2 and 3.

§ bBlockRange

uint8_t phNfcLib_I18000p3m3::bBlockRange

[In] Specifies range of Mask, starting at BlockPtr and ending (16�BlockRange)�1 blocks later to starting address for BlockPermaLock.

If 0x00 then tag ignore the BlockPermalock command.

§ pHandle

uint8_t* phNfcLib_I18000p3m3::pHandle

[In] Pointer to the 2 byte handle of the tag.

§ pUii

uint8_t* phNfcLib_I18000p3m3::pUii

[In] Pointer to the UII Mem bank of the tag, could be at max 58 bytes data .

§ wUiiMaskLength

uint8_t phNfcLib_I18000p3m3::wUiiMaskLength

[In] Length of the UII Membank data received .

§ pBuffer

uint8_t* phNfcLib_I18000p3m3::pBuffer

[In] Pointer to 16bit or multiple of 16bit data that needs to be written on Tag.

The documentation for this struct was generated from the following file:
  • phNfcLib.h


NXP NFC Reader Library: phNfcLib_InternalState_t Struct Reference

phNfcLib_InternalState_t Struct Reference

NFC LIB State. More...

Detailed Description

NFC LIB State.

The documentation for this struct was generated from the following file:
  • phNfcLib_Int.h


NXP NFC Reader Library: phNfcLib_MFC Struct Reference

Data Fields
phNfcLib_MFC Struct Reference

Defines parameters that needs be provided by User to communicate with MIFare Classic card. More...

Data Fields

phNfcLib_MFC_Commands_t bCommand
[In] Mifare Classic command needs to be provided. More...
uint8_t bBlockNumber
[In] Block number on which Mifare Classic command to be executed. More...
uint8_t bKeyType
[In] Key Type used to Authenticate Mifare Classic. More...
uint8_t bKeyNumber
[In] Key Number from Sw KeyStore to be fetched to Authenticate Mifare Classic. More...
uint8_t bKeyVersion
[In] Key version from Sw KeyStore to be retrieved to Authenticate Mifare Classic. More...
uint8_t bUidType
[In] UID Type used to Personalize the MFC card. More...

Detailed Description

Defines parameters that needs be provided by User to communicate with MIFare Classic card.

Field Documentation

§ bCommand

phNfcLib_MFC_Commands_t phNfcLib_MFC::bCommand

[In] Mifare Classic command needs to be provided.

§ bBlockNumber

uint8_t phNfcLib_MFC::bBlockNumber

[In] Block number on which Mifare Classic command to be executed.

§ bKeyType

uint8_t phNfcLib_MFC::bKeyType

[In] Key Type used to Authenticate Mifare Classic.

Takes either PHHAL_HW_MFC_KEYA or PHHAL_HW_MFC_KEYB.

§ bKeyNumber

uint8_t phNfcLib_MFC::bKeyNumber

[In] Key Number from Sw KeyStore to be fetched to Authenticate Mifare Classic.

§ bKeyVersion

uint8_t phNfcLib_MFC::bKeyVersion

[In] Key version from Sw KeyStore to be retrieved to Authenticate Mifare Classic.

§ bUidType

uint8_t phNfcLib_MFC::bUidType

[In] UID Type used to Personalize the MFC card.

Refer nfc_lib_mfc_uid_type

The documentation for this struct was generated from the following file:
  • phNfcLib.h


NXP NFC Reader Library: phNfcLib_MFdf Struct Reference

Data Fields
phNfcLib_MFdf Struct Reference

Defines parameters that needs be provided by User to communicate with MIFare DESFire card. More...

Data Fields

phNfcLib_MFDF_Commands_t bCommand
[In] Mifare DESFire command needs to be provided. More...
uint8_t bOptions
[In] Option parameter. More...
uint8_t * pApplicationIdentifier
[In] Mifare DESFire AID (Application identifier), 0x000000 is reserved. More...
uint8_t bKeySettings1
[In] Mifare DESFire KeySetting 1 currently can be only set to 0x0F, as authentication support is not yet provided by Simplified API. More...
uint8_t bKeySettings2
[In] Mifare DESFire KeySetting 2, bits 6,7 defines the key that will be used, bit 5 indicates if application supports ISO File ID for selection, for whole application and lower nibble defines no of Keys that can be used. More...
uint8_t * pISOFileId
[In] Optional ISO File ID that can be used to Select application using 7816-4 command, Valid only if bit 5 of KeySetting 2 is set to '1'. More...
uint8_t * pISODFName
[In] Optional ISO DF name that can be used to Select application using 7816-4 command, Length of this parameter can be from 1 to 16bytes. More...
uint8_t bISODFNameLen
[In] ISO DF name length provided by User, can take value from 1 to 16bytes. More...
uint8_t bOption
[In] Option parameter. More...
uint8_t bFileNo
[In] File number in the range of 0x00 to 0x1F. More...
uint8_t bCommSett
[In] Communication settings, currently only plain comm is supported with bit 0 set to 0. More...
uint8_t * pAccessRights
[In] Read/Write access rights, currently only free access is supported with all nibbles set to 0xE. More...
uint8_t * pFileSize
[In] File size. More...
uint8_t bCommOption
[In] Communication settings, currently only plain comm is supported (value 0x00). More...
uint8_t * pOffset
[In] Offset from which write operation to be done. More...
uint8_t * pTxData
[In] Pointer to array of data to be written into File. More...
uint8_t * pTxDataLen
[In] Length of data. More...
uint8_t bSelector
[In] P1 field in ISO 7816-4, can take either 0x00 or 0x02 or 0x04. More...
uint8_t * pFid
[In] Elementary File Identifier used to select application when P1 is either 0x00 or 0x02. More...
uint8_t * pDFname
[In] DF name that can be used to Select ISO file. More...
uint8_t bDFnameLen
[In] Length of DF name provided by User, can take value from 1 to 16bytes. More...
uint16_t wOption
[In] Option parameter indicating PH_EXCHANGE_DEFAULT or PH_EXCHANGE_RXCHAINING. More...
uint8_t bSfid
[In] P1 field in ISO 7816-4, if bit 8 is set to zero then p1 indicates MSB of offset else bit5 to bit1 (5bits) indicates short ISO FID. More...
uint8_t bOffset
[In] P2 field in ISO 7816-4, codes offset. More...
uint8_t bBytesToRead
[In] Le field in ISO 7816-4, number of bytes to read from file. More...
uint8_t * pData
[In] Pointer to array data to be written. More...
uint8_t bDataLen
[In] Length of data provided by application. More...

Detailed Description

Defines parameters that needs be provided by User to communicate with MIFare DESFire card.

Field Documentation

§ bCommand

phNfcLib_MFDF_Commands_t phNfcLib_MFdf::bCommand

[In] Mifare DESFire command needs to be provided.

§ bOptions

uint8_t phNfcLib_MFdf::bOptions

[In] Option parameter.

§ pApplicationIdentifier

uint8_t* phNfcLib_MFdf::pApplicationIdentifier

[In] Mifare DESFire AID (Application identifier), 0x000000 is reserved.

[In] Mifare DESFire AID (Application identifier) to select file.

§ bKeySettings1

uint8_t phNfcLib_MFdf::bKeySettings1

[In] Mifare DESFire KeySetting 1 currently can be only set to 0x0F, as authentication support is not yet provided by Simplified API.

§ bKeySettings2

uint8_t phNfcLib_MFdf::bKeySettings2

[In] Mifare DESFire KeySetting 2, bits 6,7 defines the key that will be used, bit 5 indicates if application supports ISO File ID for selection, for whole application and lower nibble defines no of Keys that can be used.

§ pISOFileId

uint8_t* phNfcLib_MFdf::pISOFileId

[In] Optional ISO File ID that can be used to Select application using 7816-4 command, Valid only if bit 5 of KeySetting 2 is set to '1'.

[In] Optional ISO File ID that can be used to select file using 7816-4 command.

§ pISODFName

uint8_t* phNfcLib_MFdf::pISODFName

[In] Optional ISO DF name that can be used to Select application using 7816-4 command, Length of this parameter can be from 1 to 16bytes.

§ bISODFNameLen

uint8_t phNfcLib_MFdf::bISODFNameLen

[In] ISO DF name length provided by User, can take value from 1 to 16bytes.

§ bOption

uint8_t phNfcLib_MFdf::bOption

[In] Option parameter.

[In] P2 field in ISO 7816-4, when 0x00 FCI stored in file will be returned.

when 0x0C FCI shall not be returned. Any other value is invalid.

§ bFileNo

uint8_t phNfcLib_MFdf::bFileNo

[In] File number in the range of 0x00 to 0x1F.

§ bCommSett

uint8_t phNfcLib_MFdf::bCommSett

[In] Communication settings, currently only plain comm is supported with bit 0 set to 0.

§ pAccessRights

uint8_t* phNfcLib_MFdf::pAccessRights

[In] Read/Write access rights, currently only free access is supported with all nibbles set to 0xE.

§ pFileSize

uint8_t* phNfcLib_MFdf::pFileSize

[In] File size.

§ bCommOption

uint8_t phNfcLib_MFdf::bCommOption

[In] Communication settings, currently only plain comm is supported (value 0x00).

§ pOffset

uint8_t* phNfcLib_MFdf::pOffset

[In] Offset from which write operation to be done.

§ pTxData

uint8_t* phNfcLib_MFdf::pTxData

[In] Pointer to array of data to be written into File.

§ pTxDataLen

uint8_t* phNfcLib_MFdf::pTxDataLen

[In] Length of data.

§ bSelector

uint8_t phNfcLib_MFdf::bSelector

[In] P1 field in ISO 7816-4, can take either 0x00 or 0x02 or 0x04.

§ pFid

uint8_t* phNfcLib_MFdf::pFid

[In] Elementary File Identifier used to select application when P1 is either 0x00 or 0x02.

§ pDFname

uint8_t* phNfcLib_MFdf::pDFname

[In] DF name that can be used to Select ISO file.

§ bDFnameLen

uint8_t phNfcLib_MFdf::bDFnameLen

[In] Length of DF name provided by User, can take value from 1 to 16bytes.

§ wOption

uint16_t phNfcLib_MFdf::wOption

[In] Option parameter indicating PH_EXCHANGE_DEFAULT or PH_EXCHANGE_RXCHAINING.

§ bSfid

uint8_t phNfcLib_MFdf::bSfid

[In] P1 field in ISO 7816-4, if bit 8 is set to zero then p1 indicates MSB of offset else bit5 to bit1 (5bits) indicates short ISO FID.

§ bOffset

uint8_t phNfcLib_MFdf::bOffset

[In] P2 field in ISO 7816-4, codes offset.

§ bBytesToRead

uint8_t phNfcLib_MFdf::bBytesToRead

[In] Le field in ISO 7816-4, number of bytes to read from file.

§ pData

uint8_t* phNfcLib_MFdf::pData

[In] Pointer to array data to be written.

§ bDataLen

uint8_t phNfcLib_MFdf::bDataLen

[In] Length of data provided by application.

The documentation for this struct was generated from the following file:
  • phNfcLib.h


NXP NFC Reader Library: phNfcLib_MFUL Struct Reference

Data Fields
phNfcLib_MFUL Struct Reference

Defines parameters that needs be provided by User to communicate with MIFare Ultralight card. More...

Data Fields

phNfcLib_MFUL_Commands_t bCommand
[In] Mifare Ultralight command needs to be provided. More...
uint8_t bPageNumber
[In] Page number on which Mifare Ultralight command to be executed. More...

Detailed Description

Defines parameters that needs be provided by User to communicate with MIFare Ultralight card.

Field Documentation

§ bCommand

phNfcLib_MFUL_Commands_t phNfcLib_MFUL::bCommand

[In] Mifare Ultralight command needs to be provided.

§ bPageNumber

uint8_t phNfcLib_MFUL::bPageNumber

[In] Page number on which Mifare Ultralight command to be executed.

The documentation for this struct was generated from the following file:
  • phNfcLib.h


NXP NFC Reader Library: phNfcLib_PeerInfo_t Struct Reference

Data Fields
phNfcLib_PeerInfo_t Struct Reference

Peer Information. More...

Data Fields

uint32_t dwActivatedType
Activated type may be ORed value of phNfcLib_ActivatedType_t. More...
uint32_t dwSelectedType
Not used in this Beta release. More...
uint16_t wAtqa
To be done. More...
uint8_t bUidLength
Activated Type A tag UID length is provided. More...
uint8_t | aUid [10]
Provides UID of activated Type A card. More...
uint8_t bSak
To be done. More...
uint8_t bAtqbLength
To be done. More...
uint8_t | aPupi [4]
To be done. More...
uint8_t | aApplicationData [4]
To be done. More...
uint8_t bIsExtendedAtqb
To be done. More...
uint8_t | aProtocolInfo [4]
To be done. More...
uint8_t * pUii
Provides pointer to UII of ISO 18000p3m3 tags detected. More...
uint16_t wUiiLength
UII length in bits pointed by pUii. More...
struct {
} tIso14443_4
To be done. More...
struct {
} tIso18092
To be done. More...

Detailed Description

Peer Information.

Field Documentation

§ dwActivatedType

uint32_t phNfcLib_PeerInfo_t::dwActivatedType

Activated type may be ORed value of phNfcLib_ActivatedType_t.

§ dwSelectedType

uint32_t phNfcLib_PeerInfo_t::dwSelectedType

Not used in this Beta release.

User has to choose from 'dwActivatedType' with any one card type phNfcLib_ActivatedType_t he is interested.

§ wAtqa

uint16_t phNfcLib_PeerInfo_t::wAtqa

To be done.

§ bUidLength

uint8_t phNfcLib_PeerInfo_t::bUidLength

Activated Type A tag UID length is provided.

§ aUid

uint8_t phNfcLib_PeerInfo_t::aUid[10]

Provides UID of activated Type A card.

§ bSak

uint8_t phNfcLib_PeerInfo_t::bSak

To be done.

§ bAtqbLength

uint8_t phNfcLib_PeerInfo_t::bAtqbLength

To be done.

§ aPupi

uint8_t phNfcLib_PeerInfo_t::aPupi[4]

To be done.

§ aApplicationData

uint8_t phNfcLib_PeerInfo_t::aApplicationData[4]

To be done.

§ bIsExtendedAtqb

uint8_t phNfcLib_PeerInfo_t::bIsExtendedAtqb

To be done.

§ aProtocolInfo

uint8_t phNfcLib_PeerInfo_t::aProtocolInfo[4]

To be done.

§ pUii

uint8_t* phNfcLib_PeerInfo_t::pUii

Provides pointer to UII of ISO 18000p3m3 tags detected.

§ wUiiLength

uint16_t phNfcLib_PeerInfo_t::wUiiLength

UII length in bits pointed by pUii.

§ tIso14443_4

struct { ... } phNfcLib_PeerInfo_t::tIso14443_4

To be done.

§ tIso18092

struct { ... } phNfcLib_PeerInfo_t::tIso18092

To be done.

The documentation for this struct was generated from the following file:
  • phNfcLib.h


NXP NFC Reader Library: phNfcLib_RawTransmit Struct Reference

phNfcLib_RawTransmit Struct Reference

Defines parameters that needs be provided by User to communicate with raw ISO 14443-3 or ISO 14443-4 peer. More...

Detailed Description

Defines parameters that needs be provided by User to communicate with raw ISO 14443-3 or ISO 14443-4 peer.

The documentation for this struct was generated from the following file:
  • phNfcLib.h


NXP NFC Reader Library: phNfcLib_Transmit Union Reference

phNfcLib_Transmit Union Reference

Defines parameters that needs be provided by User to use phNfcLib_Transmit API in ISO mode. More...

Detailed Description

Defines parameters that needs be provided by User to use phNfcLib_Transmit API in ISO mode.

The documentation for this union was generated from the following file:
  • phNfcLib.h


NXP NFC Reader Library: Data Fields

Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

- a -

  • aApplicationData : phNfcLib_PeerInfo_t
  • aAtqa : phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_TypeA_I3P3
  • aAtqB : phacDiscLoop_Sw_TypeB_Info::phacDiscLoop_TypeB_I3P3B
  • abHandle : phalI18000p3m3_Sw_DataParams_t
  • abHR : phalT1T_Sw_DataParams_t
  • abStoredCRC : phhalHw_PN7462AU_DataParams , phhalHw_Rc663_DataParams_t , phpalI18000p3m3_Sw_DataParams_t
  • abUid : phalT1T_Sw_DataParams_t , phpalI14443p3a_Sw_DataParams_t
  • aIDmPMm : phpalFelica_Sw_DataParams_t
  • aNdefFileID : phalTop_T4T
  • aNfcid3i : phpalI18092mPI_Sw_DataParams_t , phpalI18092mT_Sw_DataParams_t
  • aNfcid3t : phpalI18092mT_Sw_DataParams_t
  • aProtocolInfo : phNfcLib_PeerInfo_t
  • aPupi : phacDiscLoop_Sw_TypeB_Info::phacDiscLoop_TypeB_I3P3B , phNfcLib_PeerInfo_t
  • aSak : phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_TypeA_I3P3
  • asLockCtrlTlv : phalTop_T1T , phalTop_T2T
  • asMemCtrlTlv : phalTop_T1T , phalTop_T2T
  • aSystemCode : phacDiscLoop_Sw_TypeF_Info
  • aUid : phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_TypeA_I3P3 , phNfcLib_PeerInfo_t


NXP NFC Reader Library: Data Fields

Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

- b -

  • b18000p3m3Q : phhalHw_Rc663_DataParams_t
  • bActiveMode : phhalHw_Pn5180_DataParams_t , phhalHw_PN7462AU_DataParams , phhalHw_Rc523_DataParams_t , phpalI18092mPI_Sw_DataParams_t
  • bActLisTechCfg : phacDiscLoop_Sw_DataParams
  • bActPollTechCfg : phacDiscLoop_Sw_DataParams
  • bAddress : phalTop_T2T_Sector , phalTop_TIT_Segment
  • bAdvFeaturesBit : phacDiscLoop_Sw_TypeB_Info
  • bAfi : phNfcLib_I15693
  • bAfiReq : phacDiscLoop_Sw_TypeB_Info
  • bAgreedVersion : phlnLlcp_Sw_DataParams
  • baPasConDevLim : phacDiscLoop_Sw_DataParams
  • bAsk100 : phhalHw_PN7462AU_DataParams
  • bAtnDisabled : phpalI18092mPI_Sw_DataParams_t
  • bAtqBLength : phacDiscLoop_Sw_TypeB_Info::phacDiscLoop_TypeB_I3P3B
  • bAtqbLength : phNfcLib_PeerInfo_t
  • bAtrResLength : phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_Type_P2P_TAGS , phacDiscLoop_Sw_TypeF_Info::phacDiscLoop_TypeF_P2P_Info
  • bAttribParam1 : phpalI14443p3b_Sw_DataParams_t
  • bAttributeBlock : phalTop_T3T
  • bAuthMode : phalMfdf_Sw_DataParams_t
  • bAvailableTlv : phlnLlcp_LMDataParams
  • bBalConnectionType : phhalHw_Pn5180_DataParams_t , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • bBalType : phbalReg_Type_t
  • bBitRateCaps : phpalI14443p4a_Sw_DataParams_t
  • bBlockAddress : phalTop_T2T_Sector
  • bBlockNr : phpalI14443p4mC_Sw_DataParams_t
  • bBlockNumber : phNfcLib_MFC
  • bBlockPtrLength : phNfcLib_I18000p3m3
  • bBlockRange : phNfcLib_I18000p3m3
  • bBlockSize : phalTop_T5T
  • bBri : phpalI18092mT_Sw_DataParams_t
  • bBrt : phpalI18092mT_Sw_DataParams_t
  • bBsi : phpalI18092mT_Sw_DataParams_t
  • bBst : phpalI18092mT_Sw_DataParams_t
  • bBytesLockedPerBit : phalTop_T1T_LockCtrlTlv , phalTop_T2T_LockCtrlTlv
  • bBytesPerPage : phalTop_T1T_LockCtrlTlv , phalTop_T1T_MemCtrlTlv , phalTop_T2T_LockCtrlTlv , phalTop_T2T_MemCtrlTlv
  • bBytesToRead : phNfcLib_MFdf
  • bCardMode : phhalHw_Pn5180_DataParams_t
  • bCardType : phhalHw_Pn5180_DataParams_t , phhalHw_PN7462AU_DataParams , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • bChainingRx : phpalI14443p4mC_Sw_DataParams_t
  • bChainingTx : phpalI14443p4mC_Sw_DataParams_t
  • bCheckEmdErr : phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • bCid : phacDiscLoop_Sw_TypeA_Info::phascDiscLoop_TypeA_I3P4 , phacDiscLoop_Sw_TypeB_Info , phpalI14443p3b_Sw_DataParams_t , phpalI14443p4_Sw_DataParams_t , phpalI14443p4a_Sw_DataParams_t , phpalI14443p4mC_Sw_DataParams_t
  • bCidEnable : phpalI14443p4mC_Sw_DataParams_t
  • bCidEnabled : phpalI14443p4_Sw_DataParams_t
  • bCidList : phCidManager_Sw_DataParams_t
  • bCidPresence : phpalI14443p4mC_Sw_DataParams_t
  • bCidSupported : phpalI14443p3b_Sw_DataParams_t , phpalI14443p4a_Sw_DataParams_t
  • bCmdtype : phpalI18092mT_Sw_DataParams_t
  • bCollPend : phacDiscLoop_Sw_DataParams
  • bCommand : phNfcLib_I15693 , phNfcLib_I18000p3m3 , phNfcLib_MFC , phNfcLib_MFdf , phNfcLib_MFUL
  • bCommOption : phNfcLib_MFdf
  • bCommSett : phNfcLib_MFdf
  • bCRC5Enabled : phhalHw_Rc663_DataParams_t
  • bCryptoMethod : phalMfdf_Sw_DataParams_t
  • bCurrentClientCnt : phlnLlcp_Sw_DataParams
  • bCurrentSelectedFile : phalTop_T4T
  • bDataLen : phNfcLib_MFdf
  • bDetectedTechs : phacDiscLoop_Sw_DataParams
  • bDFnameLen : phNfcLib_MFdf
  • bDid : phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_Type_P2P_TAGS , phacDiscLoop_Sw_TypeF_Info::phacDiscLoop_TypeF_P2P_Info , phpalI18092mPI_Sw_DataParams_t , phpalI18092mT_Sw_DataParams_t
  • bDisableWtx : phpalI14443p4mC_Sw_DataParams_t
  • bDr : phacDiscLoop_I18000p3m3_Info , phpalI14443p4mC_Sw_DataParams_t
  • bDri : phacDiscLoop_Sw_TypeA_Info::phascDiscLoop_TypeA_I3P4 , phacDiscLoop_Sw_TypeB_Info , phpalI14443p3b_Sw_DataParams_t , phpalI14443p4a_Sw_DataParams_t , phpalI18092mPI_Sw_DataParams_t
  • bDrt : phpalI18092mT_Sw_DataParams_t
  • bDs : phpalI14443p4mC_Sw_DataParams_t
  • bDsfid : phNfcLib_I15693
  • bDsi : phacDiscLoop_Sw_TypeA_Info::phascDiscLoop_TypeA_I3P4 , phacDiscLoop_Sw_TypeB_Info , phpalI14443p3b_Sw_DataParams_t , phpalI14443p4a_Sw_DataParams_t , phpalI18092mPI_Sw_DataParams_t
  • bDst : phpalI18092mT_Sw_DataParams_t
  • bEmdFlag : phhalHw_Pn5180_DataParams_t
  • bEmdNoiseMaxDataLen : phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • bExplicitlyAddressed : phpalSli15693_Sw_DataParams
  • bExtAtqb : phpalI14443p3b_Sw_DataParams_t
  • bExtendedAtqBbit : phacDiscLoop_Sw_TypeB_Info
  • bExtendedCommandSupport : phalTop_T5T
  • bFelicaBaud : phacDiscLoop_Sw_DataParams
  • bFifoSize : phhalHw_Rc663_DataParams_t
  • bFileNo : phNfcLib_MFdf
  • bFileWriteAccess : phceT4T_Sw_DataParams
  • bFlag : phacDiscLoop_Sw_TypeV_Info
  • bFlags : phpalSli15693_Sw_DataParams
  • bFrameStep : phhalHw_PN7462AU_DataParams
  • bFsci : phpalI14443p3b_Sw_DataParams_t , phpalI14443p4_Sw_DataParams_t , phpalI14443p4a_Sw_DataParams_t , phpalI14443p4mC_Sw_DataParams_t
  • bFsdi : phacDiscLoop_Sw_TypeA_Info::phascDiscLoop_TypeA_I3P4 , phacDiscLoop_Sw_TypeB_Info , phpalI14443p3b_Sw_DataParams_t , phpalI14443p4_Sw_DataParams_t , phpalI14443p4a_Sw_DataParams_t , phpalI14443p4mC_Sw_DataParams_t
  • bFsl : phpalI18092mPI_Sw_DataParams_t , phpalI18092mT_Sw_DataParams_t
  • bFwi : phpalI14443p3b_Sw_DataParams_t , phpalI14443p4_Sw_DataParams_t , phpalI14443p4a_Sw_DataParams_t , phpalI14443p4mC_Sw_DataParams_t
  • bGiLength : phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_Type_P2P_TAGS , phacDiscLoop_Sw_TypeF_Info::phacDiscLoop_TypeF_P2P_Info
  • bHandleUpdateCmd : phceT4T_Sw_DataParams
  • bHandleValid : phalI18000p3m3_Sw_DataParams_t
  • bI : phhalHw_Rc663_DataParams_t
  • bIDmPMmValid : phpalFelica_Sw_DataParams_t
  • bIsExtendedAtqb : phNfcLib_PeerInfo_t
  • bISODFNameLen : phNfcLib_MFdf
  • bIv : phalMfdf_Sw_DataParams_t
  • bJewelActivated : phhalHw_Pn5180_DataParams_t , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • bKeyNo : phalMfdf_Sw_DataParams_t
  • bKeyNumber : phNfcLib_MFC
  • bKeySettings1 : phNfcLib_MFdf
  • bKeySettings2 : phNfcLib_MFdf
  • bKeyType : phNfcLib_MFC
  • bKeyVersion : phNfcLib_MFC
  • bLastBlockBuffer : phalMfdf_Sw_DataParams_t
  • bLastBlockIndex : phalMfdf_Sw_DataParams_t
  • bLength : phpalFelica_Sw_DataParams_t
  • bLlcpBuf : phTools_Q
  • bLlcpData : phTools_Q
  • bLoadRegMode : phhalHw_Rc663_DataParams_t
  • bLockBlock : phalTop_T5T
  • bLockReservedOtp : phalTop_T2T_Sector , phalTop_TIT_Segment
  • bLockTlvCount : phalTop_T1T , phalTop_T2T
  • bLpcdEnabled : phacDiscLoop_Sw_DataParams
  • bLpcdMode : phhalHw_Pn5180_DataParams_t
  • bLri : phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_Type_P2P_TAGS , phacDiscLoop_Sw_TypeF_Info::phacDiscLoop_TypeF_P2P_Info , phpalI18092mPI_Sw_DataParams_t , phpalI18092mT_Sw_DataParams_t
  • bLrt : phpalI18092mPI_Sw_DataParams_t , phpalI18092mT_Sw_DataParams_t
  • bLsap : phlnLlcp_Transport_Socket
  • bLto : phlnLlcp_LMDataParams
  • bM : phacDiscLoop_I18000p3m3_Info
  • bMacType : phlnLlcp_Sw_DataParams
  • bMaxBlockNum : phalTop_T5T
  • bMaxRetryCount : phpalI14443p4_Sw_DataParams_t , phpalI18092mPI_Sw_DataParams_t
  • bMbli : phacDiscLoop_Sw_TypeB_Info::phacDiscLoop_TypeB_I3P4B
  • bMbRead : phalTop_T5T
  • bMemBank : phNfcLib_I18000p3m3
  • bMemoryTlvCount : phalTop_T1T , phalTop_T2T
  • bMfcCryptoDisabled : phhalHw_PN7462AU_DataParams
  • bMfcCryptoEnabled : phhalHw_Pn5180_DataParams_t
  • bMode : phhalHw_Rc663_DataParams_t
  • bNad : phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_Type_P2P_TAGS , phacDiscLoop_Sw_TypeA_Info::phascDiscLoop_TypeA_I3P4 , phacDiscLoop_Sw_TypeB_Info , phacDiscLoop_Sw_TypeF_Info::phacDiscLoop_TypeF_P2P_Info , phpalI14443p4_Sw_DataParams_t , phpalI14443p4mC_Sw_DataParams_t , phpalI18092mPI_Sw_DataParams_t
  • bNadEnable : phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_Type_P2P_TAGS , phacDiscLoop_Sw_TypeF_Info::phacDiscLoop_TypeF_P2P_Info , phpalI14443p4mC_Sw_DataParams_t
  • bNadEnabled : phpalI14443p4_Sw_DataParams_t , phpalI18092mPI_Sw_DataParams_t , phpalI18092mT_Sw_DataParams_t
  • bNadPresence : phpalI14443p4mC_Sw_DataParams_t
  • bNadSupported : phpalI14443p3b_Sw_DataParams_t , phpalI14443p4a_Sw_DataParams_t
  • bNadVal : phpalI18092mT_Sw_DataParams_t
  • bNbr : phalTop_T3T
  • bNbw : phalTop_T3T
  • bNfcActivityVersion : phacDiscLoop_Sw_DataParams
  • bNfcIdValid : phpalI18092mPI_Sw_DataParams_t
  • bNfcipMode : phhalHw_Pn5180_DataParams_t , phhalHw_PN7462AU_DataParams , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • bNmaxb : phalTop_T3T
  • bNumOfCards : phacDiscLoop_Sw_DataParams
  • bOffset : phNfcLib_MFdf
  • bOpeMode : phacDiscLoop_Sw_DataParams , phhalHw_Pn5180_DataParams_t , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t , phpalI14443p3a_Sw_DataParams_t , phpalI14443p3b_Sw_DataParams_t , phpalI14443p4_Sw_DataParams_t , phpalI14443p4a_Sw_DataParams_t
  • bOpMode : phpalI14443p4mC_Sw_DataParams_t
  • bOpt : phlnLlcp_LMDataParams
  • bOption : phNfcLib_I15693 , phNfcLib_I18000p3m3 , phNfcLib_MFdf
  • bOptionFlag : phalTop_T5T
  • bOptions : phNfcLib_MFdf
  • bPageNumber : phNfcLib_MFUL
  • bParam1 : phacDiscLoop_Sw_TypeB_Info::phacDiscLoop_TypeB_I3P4B
  • bPasLisTechCfg : phacDiscLoop_Sw_DataParams
  • bPasPollBailOut : phacDiscLoop_Sw_DataParams
  • bPasPollTechCfg : phacDiscLoop_Sw_DataParams
  • bPcbBlockNum : phpalI14443p4_Sw_DataParams_t
  • bPiccAState : phhalHw_PN7462AU_DataParams
  • bPni : phpalI18092mPI_Sw_DataParams_t , phpalI18092mT_Sw_DataParams_t
  • bPollCmd : phpalI14443p3a_Sw_DataParams_t , phpalI14443p3b_Sw_DataParams_t
  • bPollState : phacDiscLoop_Sw_DataParams
  • bPreambleLen : phpalFelica_Sw_DataParams_t
  • bPupiValid : phpalI14443p3b_Sw_DataParams_t
  • bQ : phhalHw_Rc663_DataParams_t
  • bRa : phalTop_T4T
  • bReadLock : phNfcLib_I18000p3m3
  • bRecom : phNfcLib_I18000p3m3
  • bRequestCode : phpalFelica_Sw_DataParams_t
  • bRetryCount : phacDiscLoop_TargetParams , phpalI14443p3b_Sw_DataParams_t , phpalI14443p4a_Sw_DataParams_t
  • bRfca : phhalHw_Pn5180_DataParams_t , phhalHw_Rc523_DataParams_t
  • bRfResetAfterTo : phhalHw_Pn5180_DataParams_t , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • bRsap : phlnLlcp_Transport_Socket
  • bRtoxDisabled : phpalI18092mT_Sw_DataParams_t
  • bRtoxExtnVal : phpalI18092mT_Sw_DataParams_t
  • bRwa : phalTop_T1T , phalTop_T2T , phalTop_T3T , phalTop_T5T
  • bRxAck_Vra : phlnLlcp_Socket_Seq
  • bRxMultiple : phhalHw_Pn5180_DataParams_t , phhalHw_PN7462AU_DataParams , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • bRxOption : phceT4T_Sw_DataParams
  • bRxState_Vr : phlnLlcp_Socket_Seq
  • bSak : phNfcLib_PeerInfo_t
  • bSdpClientSAP : phlnLlcp_Sw_DataParams
  • bSelector : phNfcLib_MFdf
  • bSendAck_Vsa : phlnLlcp_Socket_Seq
  • bSenderType : phTools_Q
  • bSendState_Vs : phlnLlcp_Socket_Seq
  • bSession : phhalHw_PN7462AU_DataParams , phhalHw_Rc663_DataParams_t , phpalI18000p3m3_Sw_DataParams_t
  • bSessionKey : phalMfdf_Sw_DataParams_t
  • bSfgi : phpalI14443p4mC_Sw_DataParams_t
  • bSfid : phNfcLib_MFdf
  • bSizeInBits : phalTop_T1T_LockCtrlTlv , phalTop_T2T_LockCtrlTlv
  • bSizeInBytes : phalTop_T1T_MemCtrlTlv , phalTop_T2T_MemCtrlTlv
  • bSkipSend : phhalHw_Pn5180_DataParams_t , phhalHw_Rc523_DataParams_t
  • bSnepVersion : phnpSnep_Sw_DataParams
  • bSplFrm : phalTop_T5T
  • bState : phlnLlcp_Transport_Socket
  • bStateNow : phpalI14443p4_Sw_DataParams_t , phpalI14443p4mC_Sw_DataParams_t , phpalI18092mPI_Sw_DataParams_t , phpalI18092mT_Sw_DataParams_t
  • bStoredCRCValid : phpalI18000p3m3_Sw_DataParams_t
  • bSupportProprietaryCmd : phceT4T_Sw_DataParams
  • bSupportType4B : phacDiscLoop_Sw_TypeB_Info::phacDiscLoop_TypeB_I3P3B
  • bSymbolEnd : phhalHw_Pn5180_DataParams_t , phhalHw_Rc663_DataParams_t
  • bSymbolStart : phhalHw_Pn5180_DataParams_t , phhalHw_Rc663_DataParams_t
  • bT1TFlag : phacDiscLoop_Sw_TypeA_Info
  • bTagMemoryType : phalTop_T1T , phalTop_T2T
  • bTagState : phalTop_Sw_DataParams , phceT4T_Sw_DataParams
  • bTagType : phalTop_Sw_DataParams
  • bTerminatorTlvPresence : phalTop_T1T , phalTop_T5T
  • bTimeoutPrescaler : phhalHw_Rc523_DataParams_t
  • bTimeoutUnit : phhalHw_Pn5180_DataParams_t , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • bTimeSlot : phacDiscLoop_Sw_TypeF_Info
  • bTms : phalTop_T1T , phalTop_T2T
  • bTo : phpalI18092mT_Sw_DataParams_t
  • bTotalFrames : phpalFelica_Sw_DataParams_t
  • bTotalTagsFound : phacDiscLoop_I18000p3m3_Info , phacDiscLoop_Sw_TypeA_Info , phacDiscLoop_Sw_TypeB_Info , phacDiscLoop_Sw_TypeF_Info , phacDiscLoop_Sw_TypeV_Info
  • bTransmited : phhalHw_Pn5180_DataParams_t
  • bTxLastBits : phhalHw_PN7462AU_DataParams
  • bTxWaitPrescaler : phhalHw_Rc523_DataParams_t
  • bType : phTools_Q
  • bUid : phalTop_T1T , phalTop_T3T
  • bUidBitLength : phpalSli15693_Sw_DataParams
  • bUidComplete : phpalI14443p3a_Sw_DataParams_t
  • bUidLength : phNfcLib_PeerInfo_t , phpalI14443p3a_Sw_DataParams_t
  • bUidSize : phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_TypeA_I3P3
  • bUidType : phNfcLib_MFC
  • bUnequalDrDs : phpalI14443p4mC_Sw_DataParams_t
  • bUseAntiColl : phacDiscLoop_Sw_DataParams
  • bValidity : phalTop_T2T_Sector
  • bVersion : phlnLlcp_LMDataParams
  • bVno : phalTop_Sw_DataParams
  • bWa : phalTop_T4T
  • bWordCount : phNfcLib_I18000p3m3
  • bWordPtrLength : phNfcLib_I18000p3m3
  • bWrappedMode : phalMfdf_Sw_DataParams_t
  • bWt : phpalI18092mPI_Sw_DataParams_t
  • bWtPercentage : phpalI14443p4mC_Sw_DataParams_t
  • bWtx : phpalI14443p4mC_Sw_DataParams_t


NXP NFC Reader Library: Data Fields

Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

- d -

  • dwActivatedType : phNfcLib_PeerInfo_t
  • dwBufLen : phlnLlcp_Transport_Socket
  • dwCrc : phalMfdf_Sw_DataParams_t
  • dwCurVal : phKeyStore_Sw_KUCEntry_t
  • dwFdt : phhalHw_PN7462AU_DataParams
  • dwFdtPc : phhalHw_Pn5180_DataParams_t , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • dwFileOffset : phceT4T_Sw_DataParams
  • dwFileSize : phceT4T_Sw_DataParams
  • dwI15693Sof : phhalHw_PN7462AU_DataParams
  • dwLength : phlnLlcp_Transport_Socket , phTools_Q
  • dwLimit : phKeyStore_Sw_KUCEntry_t
  • dwLpcd_NewValue : phhalHw_PN7462AU_DataParams
  • dwLpcdReference : phhalHw_PN7462AU_DataParams
  • dwLpcdThreshold : phhalHw_PN7462AU_DataParams
  • dwNdefFileSize : phceT4T_Sw_DataParams
  • dwRequestCounter : phCryptoRng_Sw_DataParams_t
  • dwSelectedType : phNfcLib_PeerInfo_t
  • dwTimingUs : phhalHw_Pn5180_DataParams_t , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • dwTxWaitMs : phhalHw_Pn5180_DataParams_t


NXP NFC Reader Library: Data Fields

Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

- e -

  • eServerType : phnpSnep_Sw_DataParams
  • eSocketType : phlnLlcp_Transport_Socket


NXP NFC Reader Library: Data Fields

Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

- f -

  • fReady : phlnLlcp_Transport_Socket


NXP NFC Reader Library: Data Fields

Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

- g -

  • gTimers : phPlatform_DataParams_t


NXP NFC Reader Library: Data Fields

Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

- h -

  • HwEventObj : phhalHw_Pn5180_DataParams_t , phhalHw_PN7462AU_DataParams , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t


NXP NFC Reader Library: Data Fields

Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

- l -

  • LlcpEventObj : phlnLlcp_Sw_DataParams


NXP NFC Reader Library: Data Fields

Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

- o -

  • ovrTask : phpalI18092mT_Sw_DataParams_t


NXP NFC Reader Library: Data Fields

Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

- p -

  • pAccessRights : phNfcLib_MFdf
  • pAction : phNfcLib_I18000p3m3
  • pAid : phalMfdf_Sw_DataParams_t
  • pAl18000p3m3DataParams : phacDiscLoop_Sw_DataParams
  • Pal18092mTEventObj : phpalI18092mT_Sw_DataParams_t
  • pAlI15693DataParams : phalTop_T5T
  • pAlT1TDataParams : phacDiscLoop_Sw_DataParams , phalTop_T1T
  • pAlT2TDataParams : phalTop_T2T
  • pAlT3TDataParams : phalTop_T3T
  • pAlT4TDataParams : phalTop_T4T
  • pAppBuffer : phceT4T_Sw_DataParams
  • pApplicationIdentifier : phNfcLib_MFdf
  • pAtrRes : phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_Type_P2P_TAGS , phacDiscLoop_Sw_TypeF_Info::phacDiscLoop_TypeF_P2P_Info
  • pAts : phacDiscLoop_Sw_TypeA_Info::phascDiscLoop_TypeA_I3P4
  • pAutocoll : phhalHw_PN7462AU_DataParams
  • pBalDataParams : phhalHw_Pn5180_DataParams_t , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • pbData : phTools_Q
  • pBlockPtr : phNfcLib_I18000p3m3
  • pbRxBuffer : phlnLlcp_Transport_Socket
  • pBuffer : phNfcLib_I18000p3m3
  • pCcFile : phceT4T_Sw_DataParams
  • pCryptoDataParams : phalMful_Sw_DataParams_t , phCryptoRng_Sw_DataParams_t
  • pCryptoDataParamsEnc : phalMfdf_Sw_DataParams_t
  • pCryptoRngDataParams : phalMfdf_Sw_DataParams_t , phalMful_Sw_DataParams_t
  • pData : phalTop_TIT_Segment , phNfcLib_MFdf
  • pDFname : phNfcLib_MFdf
  • pFid : phNfcLib_MFdf
  • pFileSize : phNfcLib_MFdf
  • pGi : phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_Type_P2P_TAGS , phacDiscLoop_Sw_TypeF_Info::phacDiscLoop_TypeF_P2P_Info
  • pHalDataParams : phacDiscLoop_Sw_DataParams , phalMfdf_Sw_DataParams_t , phpalFelica_Sw_DataParams_t , phpalI14443p3a_Sw_DataParams_t , phpalI14443p3b_Sw_DataParams_t , phpalI14443p4_Sw_DataParams_t , phpalI14443p4a_Sw_DataParams_t , phpalI14443p4mC_Sw_DataParams_t , phpalI18000p3m3_Sw_DataParams_t , phpalI18092mPI_Sw_DataParams_t , phpalI18092mT_Sw_DataParams_t , phpalMifare_Sw_DataParams_t , phpalSli15693_Sw_DataParams
  • pHandle : phNfcLib_I18000p3m3
  • pHigherLayerInf : phpalI14443p3b_Sw_DataParams_t
  • pHigherLayerResp : phpalI14443p3b_Sw_DataParams_t
  • pISODFName : phNfcLib_MFdf
  • pISOFileId : phNfcLib_MFdf
  • pIV : phCryptoSym_Sw_DataParams_t
  • pKey : phCryptoSym_Sw_DataParams_t , phKeyStore_Sw_KeyVersionPair_t
  • pKeyEntries : phKeyStore_Sw_DataParams_t
  • pKeyStoreDataParams : phalMfc_Sw_DataParams_t , phalMfdf_Sw_DataParams_t , phalMful_Sw_DataParams_t , phCryptoSym_Sw_DataParams_t , phhalHw_Pn5180_DataParams_t , phhalHw_PN7462AU_DataParams , phhalHw_Rc523_DataParams_t
  • pKeyVersionPairs : phKeyStore_Sw_DataParams_t
  • pKUCEntries : phKeyStore_Sw_DataParams_t
  • plnLlcpDataParams : phnpSnep_Sw_DataParams
  • pLoadRegConfig : phhalHw_Rc663_DataParams_t
  • pMask : phNfcLib_I18000p3m3
  • pNdefFile : phceT4T_Sw_DataParams
  • pNext : phlnLlcp_Transport_Socket , phTools_Q
  • pNfcLib_ErrCallbck : phNfcLib_DataParams_t
  • pOffset : phNfcLib_MFdf
  • pPal1443p3aDataParams : phacDiscLoop_Sw_DataParams
  • pPal1443p3bDataParams : phacDiscLoop_Sw_DataParams
  • pPal1443p4aDataParams : phacDiscLoop_Sw_DataParams
  • pPal14443p4DataParams : phacDiscLoop_Sw_DataParams
  • pPal18000p3m3DataParams : phacDiscLoop_Sw_DataParams
  • pPal18092mPIDataParams : phacDiscLoop_Sw_DataParams
  • pPalFelicaDataParams : phacDiscLoop_Sw_DataParams , phalFelica_Sw_DataParams_t
  • pPalI14443p3aDataParams : phalT1T_Sw_DataParams_t
  • pPalI14443p4DataParams : phpalMifare_Sw_DataParams_t
  • pPalI14443p4mCDataParams : phceT4T_Sw_DataParams
  • pPalI18000p3m3DataParams : phalI18000p3m3_Sw_DataParams_t
  • pPalI18092DataParams : phlnLlcp_Sw_DataParams
  • pPalMifareDataParams : phalMfc_Sw_DataParams_t , phalMfdf_Sw_DataParams_t , phalMful_Sw_DataParams_t
  • pPalSli15693DataParams : phacDiscLoop_Sw_DataParams , phalI15693_Sw_DataParams_t , phalSli_Sw_DataParams_t
  • pPassword : phNfcLib_I18000p3m3
  • pPlatform : phpalI14443p4mC_Sw_DataParams_t , phpalI18092mT_Sw_DataParams_t
  • pPupi : phpalI14443p3b_Sw_DataParams_t
  • pRFISRCallback : phhalHw_Pn5180_DataParams_t , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • pRtoxCallback : phpalI18092mT_Sw_DataParams_t
  • pRxBuffer : phacDiscLoop_TargetParams , phhalHw_Pn5180_DataParams_t , phhalHw_PN7462AU_DataParams , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • pSelectedFile : phceT4T_Sw_DataParams
  • pSender : phTools_Q
  • pSharedData : phceT4T_Sw_DataParams
  • psSocket : phnpSnep_Sw_DataParams
  • pTimerHandle : phpalI14443p4mC_Sw_DataParams_t , phpalI18092mT_Sw_DataParams_t
  • pTopTagsDataParams : phalTop_Sw_DataParams
  • pTxBuffer : phhalHw_Pn5180_DataParams_t , phhalHw_PN7462AU_DataParams , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • pTxData : phNfcLib_MFdf
  • pTxDataLen : phNfcLib_MFdf
  • pUid : phpalSli15693_Sw_DataParams
  • pUii : phNfcLib_I18000p3m3 , phNfcLib_PeerInfo_t
  • pUri : phlnLlcp_Transport_Socket
  • pWordPtr : phNfcLib_I18000p3m3
  • pWtxTimerCallback : phpalI14443p4mC_Sw_DataParams_t


NXP NFC Reader Library: Data Fields

Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

- s -

  • salTop_T1T : phalTop_Sw_DataParams
  • salTop_T2T : phalTop_Sw_DataParams
  • salTop_T3T : phalTop_Sw_DataParams
  • salTop_T4T : phalTop_Sw_DataParams
  • salTop_T5T : phalTop_Sw_DataParams
  • sBal : phPlatform_DataParams_t
  • sBal_Struct : phbalReg_LinuxKernelSpi_DataParams_t , phbalReg_LinuxUserI2C_DataParams_t , phbalReg_LinuxUserSpi_DataParams_t
  • sHal : phPlatform_DataParams_t
  • sI18000p3m3TargetInfo : phacDiscLoop_Sw_DataParams
  • sKeyStore : phPlatform_DataParams_t
  • sLocalLMParams : phlnLlcp_Sw_DataParams
  • sPlatform : phNfcLib_DataParams_t
  • sRemoteLMParams : phlnLlcp_Sw_DataParams
  • sSector : phalTop_T2T
  • sSegment : phalTop_T1T
  • sSeq : phlnLlcp_Transport_Socket
  • sTargetParams : phacDiscLoop_Sw_DataParams
  • sTypeATargetInfo : phacDiscLoop_Sw_DataParams
  • sTypeBTargetInfo : phacDiscLoop_Sw_DataParams
  • sTypeFTargetInfo : phacDiscLoop_Sw_DataParams
  • sTypeVTargetInfo : phacDiscLoop_Sw_DataParams


NXP NFC Reader Library: Data Fields

Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

- t -

  • T4TEventObj : phceT4T_Sw_DataParams
  • tIso14443_4 : phNfcLib_PeerInfo_t
  • tIso18092 : phNfcLib_PeerInfo_t


NXP NFC Reader Library: Data Fields

Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

- w -

  • wActPollGTimeUs : phacDiscLoop_Sw_DataParams
  • wAdditionalInfo : phalFelica_Sw_DataParams_t , phalMfdf_Sw_DataParams_t , phhalHw_Pn5180_DataParams_t , phhalHw_PN7462AU_DataParams , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t , phpalSli15693_Sw_DataParams
  • waPasPollGTimeUs : phacDiscLoop_Sw_DataParams
  • wAppBufferSize : phceT4T_Sw_DataParams
  • wAtqa : phNfcLib_PeerInfo_t
  • wBlockNumber : phNfcLib_I15693
  • wByteAddr : phalTop_T1T_LockCtrlTlv , phalTop_T1T_MemCtrlTlv , phalTop_T2T_LockCtrlTlv , phalTop_T2T_MemCtrlTlv
  • wCcContentLen : phceT4T_Sw_DataParams
  • wCcFileSize : phceT4T_Sw_DataParams
  • wCCLEN : phalTop_T4T
  • wCfgShadow : phhalHw_Pn5180_DataParams_t , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • wCrc : phalMfdf_Sw_DataParams_t
  • wCurrentSlotCount : phhalHw_PN7462AU_DataParams , phhalHw_Rc663_DataParams_t
  • wDetectionTimeUs : phhalHw_Rc663_DataParams_t
  • wErrorCode : phacDiscLoop_Sw_DataParams
  • wExitStatus : phceT4T_Sw_DataParams
  • wFieldOffTime : phhalHw_Pn5180_DataParams_t , phhalHw_PN7462AU_DataParams , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • wFieldRecoveryTime : phhalHw_Pn5180_DataParams_t , phhalHw_PN7462AU_DataParams , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • wFrameOpt : phTools_Q
  • wHigherLayerInfLen : phpalI14443p3b_Sw_DataParams_t
  • wHigherLayerRespLen : phpalI14443p3b_Sw_DataParams_t
  • wHigherLayerRespSize : phpalI14443p3b_Sw_DataParams_t
  • wId : phacDiscLoop_Sw_DataParams , phalFelica_Sw_DataParams_t , phalI15693_Sw_DataParams_t , phalI18000p3m3_Sw_DataParams_t , phalMfc_Sw_DataParams_t , phalMfdf_Sw_DataParams_t , phalMful_Sw_DataParams_t , phalSli_Sw_DataParams_t , phalT1T_Sw_DataParams_t , phalTop_Sw_DataParams , phbalReg_Type_t , phceT4T_Sw_DataParams , phCidManager_Sw_DataParams_t , phCryptoRng_Sw_DataParams_t , phCryptoSym_Sw_DataParams_t , phhalHw_Pn5180_DataParams_t , phhalHw_PN7462AU_DataParams , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t , phKeyStore_Sw_DataParams_t , phlnLlcp_Sw_DataParams , phNfcLib_DataParams_t , phnpSnep_Sw_DataParams , phpalFelica_Sw_DataParams_t , phpalI14443p3a_Sw_DataParams_t , phpalI14443p3b_Sw_DataParams_t , phpalI14443p4_Sw_DataParams_t , phpalI14443p4a_Sw_DataParams_t , phpalI14443p4mC_Sw_DataParams_t , phpalI18000p3m3_Sw_DataParams_t , phpalI18092mPI_Sw_DataParams_t , phpalI18092mT_Sw_DataParams_t , phpalMifare_Sw_DataParams_t , phpalSli15693_Sw_DataParams , phPlatform_DataParams_t
  • wKeepIV : phCryptoSym_Sw_DataParams_t
  • wKeyType : phCryptoSym_Sw_DataParams_t , phKeyStore_Sw_KeyEntry_t
  • wLastTxLen : phpalI14443p4mC_Sw_DataParams_t , phpalI18092mPI_Sw_DataParams_t , phpalI18092mT_Sw_DataParams_t
  • wLc : phceT4T_Sw_DataParams
  • wLength : phalTop_T1T_ProprietaryTlv
  • wLpcdReference : phhalHw_Pn5180_DataParams_t
  • wMaxFileSize : phalTop_T4T
  • wMaxNdefLength : phalTop_Sw_DataParams
  • wMaxPrecachedBytes : phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • wMiu : phlnLlcp_LMDataParams
  • wMLc : phalTop_T4T
  • wMLe : phalTop_T4T
  • wMlen : phalTop_T5T
  • wNdefHeaderAddr : phalTop_T1T , phalTop_T2T , phalTop_T5T
  • wNdefLength : phalTop_Sw_DataParams
  • wNdefMsgAddr : phalTop_T1T , phalTop_T2T , phalTop_T5T
  • wNoOfKeyEntries : phKeyStore_Sw_DataParams_t
  • wNoOfKUCEntries : phKeyStore_Sw_DataParams_t
  • wNoOfVersions : phKeyStore_Sw_DataParams_t
  • wNumBlocks : phNfcLib_I15693
  • wOffset : phalTop_T1T_LockCtrlTlv , phalTop_T1T_MemCtrlTlv , phalTop_T1T_ProprietaryTlv , phalTop_T2T_LockCtrlTlv , phalTop_T2T_MemCtrlTlv
  • wOpeMode : phhalHw_PN7462AU_DataParams
  • wOption : phNfcLib_MFdf
  • wParity : phhalHw_PN7462AU_DataParams
  • wPayLoadLen : phalMfdf_Sw_DataParams_t
  • wPowerDownTimeMs : phhalHw_Rc663_DataParams_t
  • wProtParams : phacDiscLoop_TargetParams
  • wRefNoKUC : phKeyStore_Sw_KeyEntry_t
  • wRMiu : phlnLlcp_Transport_Socket
  • wRxBufferLen : phacDiscLoop_TargetParams
  • wRxBufLen : phhalHw_Pn5180_DataParams_t , phhalHw_PN7462AU_DataParams , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • wRxBufSize : phhalHw_Pn5180_DataParams_t , phhalHw_PN7462AU_DataParams , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • wRxBufStartPos : phhalHw_Pn5180_DataParams_t , phhalHw_PN7462AU_DataParams , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • wRxDataRate : phhalHw_PN7462AU_DataParams
  • wRxSubCarrier : phhalHw_PN7462AU_DataParams
  • wSelectedFileId : phceT4T_Sw_DataParams
  • wSharedDataLen : phceT4T_Sw_DataParams
  • wStatus : phlnLlcp_Transport_Socket
  • wStatusWord : phceT4T_Sw_DataParams
  • wTargetMode : phhalHw_Pn5180_DataParams_t , phhalHw_PN7462AU_DataParams , phhalHw_Rc523_DataParams_t
  • wTimeoutReloadVal : phhalHw_Rc523_DataParams_t
  • wTimingMode : phhalHw_Pn5180_DataParams_t , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • wTxBufLen : phhalHw_Pn5180_DataParams_t , phhalHw_PN7462AU_DataParams , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • wTxBufSize : phhalHw_Pn5180_DataParams_t , phhalHw_PN7462AU_DataParams , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • wTxBufStartPos : phhalHw_Pn5180_DataParams_t
  • wTxDataRate : phhalHw_PN7462AU_DataParams
  • wTxWaitReloadVal : phhalHw_Rc523_DataParams_t
  • wUiiLength : phNfcLib_PeerInfo_t
  • wUiiMaskLength : phNfcLib_I18000p3m3
  • wVersion : phKeyStore_Sw_KeyVersionPair_t
  • wWakeupCounterInMs : phhalHw_Pn5180_DataParams_t
  • wWks : phlnLlcp_LMDataParams
  • wWtDelta : phpalI14443p4mC_Sw_DataParams_t


NXP NFC Reader Library: Data Fields

Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

- x -

  • xRxSema : phlnLlcp_Transport_Socket
  • xSema : phlnLlcp_Transport_Socket


NXP NFC Reader Library: Data Fields - Variables

- a -

  • aApplicationData : phNfcLib_PeerInfo_t
  • aAtqa : phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_TypeA_I3P3
  • aAtqB : phacDiscLoop_Sw_TypeB_Info::phacDiscLoop_TypeB_I3P3B
  • abHandle : phalI18000p3m3_Sw_DataParams_t
  • abHR : phalT1T_Sw_DataParams_t
  • abStoredCRC : phhalHw_PN7462AU_DataParams , phhalHw_Rc663_DataParams_t , phpalI18000p3m3_Sw_DataParams_t
  • abUid : phalT1T_Sw_DataParams_t , phpalI14443p3a_Sw_DataParams_t
  • aIDmPMm : phpalFelica_Sw_DataParams_t
  • aNdefFileID : phalTop_T4T
  • aNfcid3i : phpalI18092mPI_Sw_DataParams_t , phpalI18092mT_Sw_DataParams_t
  • aNfcid3t : phpalI18092mT_Sw_DataParams_t
  • aProtocolInfo : phNfcLib_PeerInfo_t
  • aPupi : phacDiscLoop_Sw_TypeB_Info::phacDiscLoop_TypeB_I3P3B , phNfcLib_PeerInfo_t
  • aSak : phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_TypeA_I3P3
  • asLockCtrlTlv : phalTop_T1T , phalTop_T2T
  • asMemCtrlTlv : phalTop_T1T , phalTop_T2T
  • aSystemCode : phacDiscLoop_Sw_TypeF_Info
  • aUid : phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_TypeA_I3P3 , phNfcLib_PeerInfo_t


NXP NFC Reader Library: Data Fields - Variables

- b -

  • b18000p3m3Q : phhalHw_Rc663_DataParams_t
  • bActiveMode : phhalHw_Pn5180_DataParams_t , phhalHw_PN7462AU_DataParams , phhalHw_Rc523_DataParams_t , phpalI18092mPI_Sw_DataParams_t
  • bActLisTechCfg : phacDiscLoop_Sw_DataParams
  • bActPollTechCfg : phacDiscLoop_Sw_DataParams
  • bAddress : phalTop_T2T_Sector , phalTop_TIT_Segment
  • bAdvFeaturesBit : phacDiscLoop_Sw_TypeB_Info
  • bAfi : phNfcLib_I15693
  • bAfiReq : phacDiscLoop_Sw_TypeB_Info
  • bAgreedVersion : phlnLlcp_Sw_DataParams
  • baPasConDevLim : phacDiscLoop_Sw_DataParams
  • bAsk100 : phhalHw_PN7462AU_DataParams
  • bAtnDisabled : phpalI18092mPI_Sw_DataParams_t
  • bAtqBLength : phacDiscLoop_Sw_TypeB_Info::phacDiscLoop_TypeB_I3P3B
  • bAtqbLength : phNfcLib_PeerInfo_t
  • bAtrResLength : phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_Type_P2P_TAGS , phacDiscLoop_Sw_TypeF_Info::phacDiscLoop_TypeF_P2P_Info
  • bAttribParam1 : phpalI14443p3b_Sw_DataParams_t
  • bAttributeBlock : phalTop_T3T
  • bAuthMode : phalMfdf_Sw_DataParams_t
  • bAvailableTlv : phlnLlcp_LMDataParams
  • bBalConnectionType : phhalHw_Pn5180_DataParams_t , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • bBalType : phbalReg_Type_t
  • bBitRateCaps : phpalI14443p4a_Sw_DataParams_t
  • bBlockAddress : phalTop_T2T_Sector
  • bBlockNr : phpalI14443p4mC_Sw_DataParams_t
  • bBlockNumber : phNfcLib_MFC
  • bBlockPtrLength : phNfcLib_I18000p3m3
  • bBlockRange : phNfcLib_I18000p3m3
  • bBlockSize : phalTop_T5T
  • bBri : phpalI18092mT_Sw_DataParams_t
  • bBrt : phpalI18092mT_Sw_DataParams_t
  • bBsi : phpalI18092mT_Sw_DataParams_t
  • bBst : phpalI18092mT_Sw_DataParams_t
  • bBytesLockedPerBit : phalTop_T1T_LockCtrlTlv , phalTop_T2T_LockCtrlTlv
  • bBytesPerPage : phalTop_T1T_LockCtrlTlv , phalTop_T1T_MemCtrlTlv , phalTop_T2T_LockCtrlTlv , phalTop_T2T_MemCtrlTlv
  • bBytesToRead : phNfcLib_MFdf
  • bCardMode : phhalHw_Pn5180_DataParams_t
  • bCardType : phhalHw_Pn5180_DataParams_t , phhalHw_PN7462AU_DataParams , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • bChainingRx : phpalI14443p4mC_Sw_DataParams_t
  • bChainingTx : phpalI14443p4mC_Sw_DataParams_t
  • bCheckEmdErr : phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • bCid : phacDiscLoop_Sw_TypeA_Info::phascDiscLoop_TypeA_I3P4 , phacDiscLoop_Sw_TypeB_Info , phpalI14443p3b_Sw_DataParams_t , phpalI14443p4_Sw_DataParams_t , phpalI14443p4a_Sw_DataParams_t , phpalI14443p4mC_Sw_DataParams_t
  • bCidEnable : phpalI14443p4mC_Sw_DataParams_t
  • bCidEnabled : phpalI14443p4_Sw_DataParams_t
  • bCidList : phCidManager_Sw_DataParams_t
  • bCidPresence : phpalI14443p4mC_Sw_DataParams_t
  • bCidSupported : phpalI14443p3b_Sw_DataParams_t , phpalI14443p4a_Sw_DataParams_t
  • bCmdtype : phpalI18092mT_Sw_DataParams_t
  • bCollPend : phacDiscLoop_Sw_DataParams
  • bCommand : phNfcLib_I15693 , phNfcLib_I18000p3m3 , phNfcLib_MFC , phNfcLib_MFdf , phNfcLib_MFUL
  • bCommOption : phNfcLib_MFdf
  • bCommSett : phNfcLib_MFdf
  • bCRC5Enabled : phhalHw_Rc663_DataParams_t
  • bCryptoMethod : phalMfdf_Sw_DataParams_t
  • bCurrentClientCnt : phlnLlcp_Sw_DataParams
  • bCurrentSelectedFile : phalTop_T4T
  • bDataLen : phNfcLib_MFdf
  • bDetectedTechs : phacDiscLoop_Sw_DataParams
  • bDFnameLen : phNfcLib_MFdf
  • bDid : phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_Type_P2P_TAGS , phacDiscLoop_Sw_TypeF_Info::phacDiscLoop_TypeF_P2P_Info , phpalI18092mPI_Sw_DataParams_t , phpalI18092mT_Sw_DataParams_t
  • bDisableWtx : phpalI14443p4mC_Sw_DataParams_t
  • bDr : phacDiscLoop_I18000p3m3_Info , phpalI14443p4mC_Sw_DataParams_t
  • bDri : phacDiscLoop_Sw_TypeA_Info::phascDiscLoop_TypeA_I3P4 , phacDiscLoop_Sw_TypeB_Info , phpalI14443p3b_Sw_DataParams_t , phpalI14443p4a_Sw_DataParams_t , phpalI18092mPI_Sw_DataParams_t
  • bDrt : phpalI18092mT_Sw_DataParams_t
  • bDs : phpalI14443p4mC_Sw_DataParams_t
  • bDsfid : phNfcLib_I15693
  • bDsi : phacDiscLoop_Sw_TypeA_Info::phascDiscLoop_TypeA_I3P4 , phacDiscLoop_Sw_TypeB_Info , phpalI14443p3b_Sw_DataParams_t , phpalI14443p4a_Sw_DataParams_t , phpalI18092mPI_Sw_DataParams_t
  • bDst : phpalI18092mT_Sw_DataParams_t
  • bEmdFlag : phhalHw_Pn5180_DataParams_t
  • bEmdNoiseMaxDataLen : phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • bExplicitlyAddressed : phpalSli15693_Sw_DataParams
  • bExtAtqb : phpalI14443p3b_Sw_DataParams_t
  • bExtendedAtqBbit : phacDiscLoop_Sw_TypeB_Info
  • bExtendedCommandSupport : phalTop_T5T
  • bFelicaBaud : phacDiscLoop_Sw_DataParams
  • bFifoSize : phhalHw_Rc663_DataParams_t
  • bFileNo : phNfcLib_MFdf
  • bFileWriteAccess : phceT4T_Sw_DataParams
  • bFlag : phacDiscLoop_Sw_TypeV_Info
  • bFlags : phpalSli15693_Sw_DataParams
  • bFrameStep : phhalHw_PN7462AU_DataParams
  • bFsci : phpalI14443p3b_Sw_DataParams_t , phpalI14443p4_Sw_DataParams_t , phpalI14443p4a_Sw_DataParams_t , phpalI14443p4mC_Sw_DataParams_t
  • bFsdi : phacDiscLoop_Sw_TypeA_Info::phascDiscLoop_TypeA_I3P4 , phacDiscLoop_Sw_TypeB_Info , phpalI14443p3b_Sw_DataParams_t , phpalI14443p4_Sw_DataParams_t , phpalI14443p4a_Sw_DataParams_t , phpalI14443p4mC_Sw_DataParams_t
  • bFsl : phpalI18092mPI_Sw_DataParams_t , phpalI18092mT_Sw_DataParams_t
  • bFwi : phpalI14443p3b_Sw_DataParams_t , phpalI14443p4_Sw_DataParams_t , phpalI14443p4a_Sw_DataParams_t , phpalI14443p4mC_Sw_DataParams_t
  • bGiLength : phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_Type_P2P_TAGS , phacDiscLoop_Sw_TypeF_Info::phacDiscLoop_TypeF_P2P_Info
  • bHandleUpdateCmd : phceT4T_Sw_DataParams
  • bHandleValid : phalI18000p3m3_Sw_DataParams_t
  • bI : phhalHw_Rc663_DataParams_t
  • bIDmPMmValid : phpalFelica_Sw_DataParams_t
  • bIsExtendedAtqb : phNfcLib_PeerInfo_t
  • bISODFNameLen : phNfcLib_MFdf
  • bIv : phalMfdf_Sw_DataParams_t
  • bJewelActivated : phhalHw_Pn5180_DataParams_t , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • bKeyNo : phalMfdf_Sw_DataParams_t
  • bKeyNumber : phNfcLib_MFC
  • bKeySettings1 : phNfcLib_MFdf
  • bKeySettings2 : phNfcLib_MFdf
  • bKeyType : phNfcLib_MFC
  • bKeyVersion : phNfcLib_MFC
  • bLastBlockBuffer : phalMfdf_Sw_DataParams_t
  • bLastBlockIndex : phalMfdf_Sw_DataParams_t
  • bLength : phpalFelica_Sw_DataParams_t
  • bLlcpBuf : phTools_Q
  • bLlcpData : phTools_Q
  • bLoadRegMode : phhalHw_Rc663_DataParams_t
  • bLockBlock : phalTop_T5T
  • bLockReservedOtp : phalTop_T2T_Sector , phalTop_TIT_Segment
  • bLockTlvCount : phalTop_T1T , phalTop_T2T
  • bLpcdEnabled : phacDiscLoop_Sw_DataParams
  • bLpcdMode : phhalHw_Pn5180_DataParams_t
  • bLri : phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_Type_P2P_TAGS , phacDiscLoop_Sw_TypeF_Info::phacDiscLoop_TypeF_P2P_Info , phpalI18092mPI_Sw_DataParams_t , phpalI18092mT_Sw_DataParams_t
  • bLrt : phpalI18092mPI_Sw_DataParams_t , phpalI18092mT_Sw_DataParams_t
  • bLsap : phlnLlcp_Transport_Socket
  • bLto : phlnLlcp_LMDataParams
  • bM : phacDiscLoop_I18000p3m3_Info
  • bMacType : phlnLlcp_Sw_DataParams
  • bMaxBlockNum : phalTop_T5T
  • bMaxRetryCount : phpalI14443p4_Sw_DataParams_t , phpalI18092mPI_Sw_DataParams_t
  • bMbli : phacDiscLoop_Sw_TypeB_Info::phacDiscLoop_TypeB_I3P4B
  • bMbRead : phalTop_T5T
  • bMemBank : phNfcLib_I18000p3m3
  • bMemoryTlvCount : phalTop_T1T , phalTop_T2T
  • bMfcCryptoDisabled : phhalHw_PN7462AU_DataParams
  • bMfcCryptoEnabled : phhalHw_Pn5180_DataParams_t
  • bMode : phhalHw_Rc663_DataParams_t
  • bNad : phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_Type_P2P_TAGS , phacDiscLoop_Sw_TypeA_Info::phascDiscLoop_TypeA_I3P4 , phacDiscLoop_Sw_TypeB_Info , phacDiscLoop_Sw_TypeF_Info::phacDiscLoop_TypeF_P2P_Info , phpalI14443p4_Sw_DataParams_t , phpalI14443p4mC_Sw_DataParams_t , phpalI18092mPI_Sw_DataParams_t
  • bNadEnable : phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_Type_P2P_TAGS , phacDiscLoop_Sw_TypeF_Info::phacDiscLoop_TypeF_P2P_Info , phpalI14443p4mC_Sw_DataParams_t
  • bNadEnabled : phpalI14443p4_Sw_DataParams_t , phpalI18092mPI_Sw_DataParams_t , phpalI18092mT_Sw_DataParams_t
  • bNadPresence : phpalI14443p4mC_Sw_DataParams_t
  • bNadSupported : phpalI14443p3b_Sw_DataParams_t , phpalI14443p4a_Sw_DataParams_t
  • bNadVal : phpalI18092mT_Sw_DataParams_t
  • bNbr : phalTop_T3T
  • bNbw : phalTop_T3T
  • bNfcActivityVersion : phacDiscLoop_Sw_DataParams
  • bNfcIdValid : phpalI18092mPI_Sw_DataParams_t
  • bNfcipMode : phhalHw_Pn5180_DataParams_t , phhalHw_PN7462AU_DataParams , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • bNmaxb : phalTop_T3T
  • bNumOfCards : phacDiscLoop_Sw_DataParams
  • bOffset : phNfcLib_MFdf
  • bOpeMode : phacDiscLoop_Sw_DataParams , phhalHw_Pn5180_DataParams_t , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t , phpalI14443p3a_Sw_DataParams_t , phpalI14443p3b_Sw_DataParams_t , phpalI14443p4_Sw_DataParams_t , phpalI14443p4a_Sw_DataParams_t
  • bOpMode : phpalI14443p4mC_Sw_DataParams_t
  • bOpt : phlnLlcp_LMDataParams
  • bOption : phNfcLib_I15693 , phNfcLib_I18000p3m3 , phNfcLib_MFdf
  • bOptionFlag : phalTop_T5T
  • bOptions : phNfcLib_MFdf
  • bPageNumber : phNfcLib_MFUL
  • bParam1 : phacDiscLoop_Sw_TypeB_Info::phacDiscLoop_TypeB_I3P4B
  • bPasLisTechCfg : phacDiscLoop_Sw_DataParams
  • bPasPollBailOut : phacDiscLoop_Sw_DataParams
  • bPasPollTechCfg : phacDiscLoop_Sw_DataParams
  • bPcbBlockNum : phpalI14443p4_Sw_DataParams_t
  • bPiccAState : phhalHw_PN7462AU_DataParams
  • bPni : phpalI18092mPI_Sw_DataParams_t , phpalI18092mT_Sw_DataParams_t
  • bPollCmd : phpalI14443p3a_Sw_DataParams_t , phpalI14443p3b_Sw_DataParams_t
  • bPollState : phacDiscLoop_Sw_DataParams
  • bPreambleLen : phpalFelica_Sw_DataParams_t
  • bPupiValid : phpalI14443p3b_Sw_DataParams_t
  • bQ : phhalHw_Rc663_DataParams_t
  • bRa : phalTop_T4T
  • bReadLock : phNfcLib_I18000p3m3
  • bRecom : phNfcLib_I18000p3m3
  • bRequestCode : phpalFelica_Sw_DataParams_t
  • bRetryCount : phacDiscLoop_TargetParams , phpalI14443p3b_Sw_DataParams_t , phpalI14443p4a_Sw_DataParams_t
  • bRfca : phhalHw_Pn5180_DataParams_t , phhalHw_Rc523_DataParams_t
  • bRfResetAfterTo : phhalHw_Pn5180_DataParams_t , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • bRsap : phlnLlcp_Transport_Socket
  • bRtoxDisabled : phpalI18092mT_Sw_DataParams_t
  • bRtoxExtnVal : phpalI18092mT_Sw_DataParams_t
  • bRwa : phalTop_T1T , phalTop_T2T , phalTop_T3T , phalTop_T5T
  • bRxAck_Vra : phlnLlcp_Socket_Seq
  • bRxMultiple : phhalHw_Pn5180_DataParams_t , phhalHw_PN7462AU_DataParams , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • bRxOption : phceT4T_Sw_DataParams
  • bRxState_Vr : phlnLlcp_Socket_Seq
  • bSak : phNfcLib_PeerInfo_t
  • bSdpClientSAP : phlnLlcp_Sw_DataParams
  • bSelector : phNfcLib_MFdf
  • bSendAck_Vsa : phlnLlcp_Socket_Seq
  • bSenderType : phTools_Q
  • bSendState_Vs : phlnLlcp_Socket_Seq
  • bSession : phhalHw_PN7462AU_DataParams , phhalHw_Rc663_DataParams_t , phpalI18000p3m3_Sw_DataParams_t
  • bSessionKey : phalMfdf_Sw_DataParams_t
  • bSfgi : phpalI14443p4mC_Sw_DataParams_t
  • bSfid : phNfcLib_MFdf
  • bSizeInBits : phalTop_T1T_LockCtrlTlv , phalTop_T2T_LockCtrlTlv
  • bSizeInBytes : phalTop_T1T_MemCtrlTlv , phalTop_T2T_MemCtrlTlv
  • bSkipSend : phhalHw_Pn5180_DataParams_t , phhalHw_Rc523_DataParams_t
  • bSnepVersion : phnpSnep_Sw_DataParams
  • bSplFrm : phalTop_T5T
  • bState : phlnLlcp_Transport_Socket
  • bStateNow : phpalI14443p4_Sw_DataParams_t , phpalI14443p4mC_Sw_DataParams_t , phpalI18092mPI_Sw_DataParams_t , phpalI18092mT_Sw_DataParams_t
  • bStoredCRCValid : phpalI18000p3m3_Sw_DataParams_t
  • bSupportProprietaryCmd : phceT4T_Sw_DataParams
  • bSupportType4B : phacDiscLoop_Sw_TypeB_Info::phacDiscLoop_TypeB_I3P3B
  • bSymbolEnd : phhalHw_Pn5180_DataParams_t , phhalHw_Rc663_DataParams_t
  • bSymbolStart : phhalHw_Pn5180_DataParams_t , phhalHw_Rc663_DataParams_t
  • bT1TFlag : phacDiscLoop_Sw_TypeA_Info
  • bTagMemoryType : phalTop_T1T , phalTop_T2T
  • bTagState : phalTop_Sw_DataParams , phceT4T_Sw_DataParams
  • bTagType : phalTop_Sw_DataParams
  • bTerminatorTlvPresence : phalTop_T1T , phalTop_T5T
  • bTimeoutPrescaler : phhalHw_Rc523_DataParams_t
  • bTimeoutUnit : phhalHw_Pn5180_DataParams_t , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • bTimeSlot : phacDiscLoop_Sw_TypeF_Info
  • bTms : phalTop_T1T , phalTop_T2T
  • bTo : phpalI18092mT_Sw_DataParams_t
  • bTotalFrames : phpalFelica_Sw_DataParams_t
  • bTotalTagsFound : phacDiscLoop_I18000p3m3_Info , phacDiscLoop_Sw_TypeA_Info , phacDiscLoop_Sw_TypeB_Info , phacDiscLoop_Sw_TypeF_Info , phacDiscLoop_Sw_TypeV_Info
  • bTransmited : phhalHw_Pn5180_DataParams_t
  • bTxLastBits : phhalHw_PN7462AU_DataParams
  • bTxWaitPrescaler : phhalHw_Rc523_DataParams_t
  • bType : phTools_Q
  • bUid : phalTop_T1T , phalTop_T3T
  • bUidBitLength : phpalSli15693_Sw_DataParams
  • bUidComplete : phpalI14443p3a_Sw_DataParams_t
  • bUidLength : phNfcLib_PeerInfo_t , phpalI14443p3a_Sw_DataParams_t
  • bUidSize : phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_TypeA_I3P3
  • bUidType : phNfcLib_MFC
  • bUnequalDrDs : phpalI14443p4mC_Sw_DataParams_t
  • bUseAntiColl : phacDiscLoop_Sw_DataParams
  • bValidity : phalTop_T2T_Sector
  • bVersion : phlnLlcp_LMDataParams
  • bVno : phalTop_Sw_DataParams
  • bWa : phalTop_T4T
  • bWordCount : phNfcLib_I18000p3m3
  • bWordPtrLength : phNfcLib_I18000p3m3
  • bWrappedMode : phalMfdf_Sw_DataParams_t
  • bWt : phpalI18092mPI_Sw_DataParams_t
  • bWtPercentage : phpalI14443p4mC_Sw_DataParams_t
  • bWtx : phpalI14443p4mC_Sw_DataParams_t


NXP NFC Reader Library: Data Fields - Variables

- d -

  • dwActivatedType : phNfcLib_PeerInfo_t
  • dwBufLen : phlnLlcp_Transport_Socket
  • dwCrc : phalMfdf_Sw_DataParams_t
  • dwCurVal : phKeyStore_Sw_KUCEntry_t
  • dwFdt : phhalHw_PN7462AU_DataParams
  • dwFdtPc : phhalHw_Pn5180_DataParams_t , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • dwFileOffset : phceT4T_Sw_DataParams
  • dwFileSize : phceT4T_Sw_DataParams
  • dwI15693Sof : phhalHw_PN7462AU_DataParams
  • dwLength : phlnLlcp_Transport_Socket , phTools_Q
  • dwLimit : phKeyStore_Sw_KUCEntry_t
  • dwLpcd_NewValue : phhalHw_PN7462AU_DataParams
  • dwLpcdReference : phhalHw_PN7462AU_DataParams
  • dwLpcdThreshold : phhalHw_PN7462AU_DataParams
  • dwNdefFileSize : phceT4T_Sw_DataParams
  • dwRequestCounter : phCryptoRng_Sw_DataParams_t
  • dwSelectedType : phNfcLib_PeerInfo_t
  • dwTimingUs : phhalHw_Pn5180_DataParams_t , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • dwTxWaitMs : phhalHw_Pn5180_DataParams_t


NXP NFC Reader Library: Data Fields - Variables

- e -

  • eServerType : phnpSnep_Sw_DataParams
  • eSocketType : phlnLlcp_Transport_Socket


NXP NFC Reader Library: Data Fields - Variables

- f -

  • fReady : phlnLlcp_Transport_Socket


NXP NFC Reader Library: Data Fields - Variables

- g -

  • gTimers : phPlatform_DataParams_t


NXP NFC Reader Library: Data Fields - Variables

- h -

  • HwEventObj : phhalHw_Pn5180_DataParams_t , phhalHw_PN7462AU_DataParams , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t


NXP NFC Reader Library: Data Fields - Variables

- l -

  • LlcpEventObj : phlnLlcp_Sw_DataParams


NXP NFC Reader Library: Data Fields - Variables

- o -

  • ovrTask : phpalI18092mT_Sw_DataParams_t


NXP NFC Reader Library: Data Fields - Variables

- p -

  • pAccessRights : phNfcLib_MFdf
  • pAction : phNfcLib_I18000p3m3
  • pAid : phalMfdf_Sw_DataParams_t
  • pAl18000p3m3DataParams : phacDiscLoop_Sw_DataParams
  • Pal18092mTEventObj : phpalI18092mT_Sw_DataParams_t
  • pAlI15693DataParams : phalTop_T5T
  • pAlT1TDataParams : phacDiscLoop_Sw_DataParams , phalTop_T1T
  • pAlT2TDataParams : phalTop_T2T
  • pAlT3TDataParams : phalTop_T3T
  • pAlT4TDataParams : phalTop_T4T
  • pAppBuffer : phceT4T_Sw_DataParams
  • pApplicationIdentifier : phNfcLib_MFdf
  • pAtrRes : phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_Type_P2P_TAGS , phacDiscLoop_Sw_TypeF_Info::phacDiscLoop_TypeF_P2P_Info
  • pAts : phacDiscLoop_Sw_TypeA_Info::phascDiscLoop_TypeA_I3P4
  • pAutocoll : phhalHw_PN7462AU_DataParams
  • pBalDataParams : phhalHw_Pn5180_DataParams_t , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • pbData : phTools_Q
  • pBlockPtr : phNfcLib_I18000p3m3
  • pbRxBuffer : phlnLlcp_Transport_Socket
  • pBuffer : phNfcLib_I18000p3m3
  • pCcFile : phceT4T_Sw_DataParams
  • pCryptoDataParams : phalMful_Sw_DataParams_t , phCryptoRng_Sw_DataParams_t
  • pCryptoDataParamsEnc : phalMfdf_Sw_DataParams_t
  • pCryptoRngDataParams : phalMfdf_Sw_DataParams_t , phalMful_Sw_DataParams_t
  • pData : phalTop_TIT_Segment , phNfcLib_MFdf
  • pDFname : phNfcLib_MFdf
  • pFid : phNfcLib_MFdf
  • pFileSize : phNfcLib_MFdf
  • pGi : phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_Type_P2P_TAGS , phacDiscLoop_Sw_TypeF_Info::phacDiscLoop_TypeF_P2P_Info
  • pHalDataParams : phacDiscLoop_Sw_DataParams , phalMfdf_Sw_DataParams_t , phpalFelica_Sw_DataParams_t , phpalI14443p3a_Sw_DataParams_t , phpalI14443p3b_Sw_DataParams_t , phpalI14443p4_Sw_DataParams_t , phpalI14443p4a_Sw_DataParams_t , phpalI14443p4mC_Sw_DataParams_t , phpalI18000p3m3_Sw_DataParams_t , phpalI18092mPI_Sw_DataParams_t , phpalI18092mT_Sw_DataParams_t , phpalMifare_Sw_DataParams_t , phpalSli15693_Sw_DataParams
  • pHandle : phNfcLib_I18000p3m3
  • pHigherLayerInf : phpalI14443p3b_Sw_DataParams_t
  • pHigherLayerResp : phpalI14443p3b_Sw_DataParams_t
  • pISODFName : phNfcLib_MFdf
  • pISOFileId : phNfcLib_MFdf
  • pIV : phCryptoSym_Sw_DataParams_t
  • pKey : phCryptoSym_Sw_DataParams_t , phKeyStore_Sw_KeyVersionPair_t
  • pKeyEntries : phKeyStore_Sw_DataParams_t
  • pKeyStoreDataParams : phalMfc_Sw_DataParams_t , phalMfdf_Sw_DataParams_t , phalMful_Sw_DataParams_t , phCryptoSym_Sw_DataParams_t , phhalHw_Pn5180_DataParams_t , phhalHw_PN7462AU_DataParams , phhalHw_Rc523_DataParams_t
  • pKeyVersionPairs : phKeyStore_Sw_DataParams_t
  • pKUCEntries : phKeyStore_Sw_DataParams_t
  • plnLlcpDataParams : phnpSnep_Sw_DataParams
  • pLoadRegConfig : phhalHw_Rc663_DataParams_t
  • pMask : phNfcLib_I18000p3m3
  • pNdefFile : phceT4T_Sw_DataParams
  • pNext : phlnLlcp_Transport_Socket , phTools_Q
  • pNfcLib_ErrCallbck : phNfcLib_DataParams_t
  • pOffset : phNfcLib_MFdf
  • pPal1443p3aDataParams : phacDiscLoop_Sw_DataParams
  • pPal1443p3bDataParams : phacDiscLoop_Sw_DataParams
  • pPal1443p4aDataParams : phacDiscLoop_Sw_DataParams
  • pPal14443p4DataParams : phacDiscLoop_Sw_DataParams
  • pPal18000p3m3DataParams : phacDiscLoop_Sw_DataParams
  • pPal18092mPIDataParams : phacDiscLoop_Sw_DataParams
  • pPalFelicaDataParams : phacDiscLoop_Sw_DataParams , phalFelica_Sw_DataParams_t
  • pPalI14443p3aDataParams : phalT1T_Sw_DataParams_t
  • pPalI14443p4DataParams : phpalMifare_Sw_DataParams_t
  • pPalI14443p4mCDataParams : phceT4T_Sw_DataParams
  • pPalI18000p3m3DataParams : phalI18000p3m3_Sw_DataParams_t
  • pPalI18092DataParams : phlnLlcp_Sw_DataParams
  • pPalMifareDataParams : phalMfc_Sw_DataParams_t , phalMfdf_Sw_DataParams_t , phalMful_Sw_DataParams_t
  • pPalSli15693DataParams : phacDiscLoop_Sw_DataParams , phalI15693_Sw_DataParams_t , phalSli_Sw_DataParams_t
  • pPassword : phNfcLib_I18000p3m3
  • pPlatform : phpalI14443p4mC_Sw_DataParams_t , phpalI18092mT_Sw_DataParams_t
  • pPupi : phpalI14443p3b_Sw_DataParams_t
  • pRFISRCallback : phhalHw_Pn5180_DataParams_t , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • pRtoxCallback : phpalI18092mT_Sw_DataParams_t
  • pRxBuffer : phacDiscLoop_TargetParams , phhalHw_Pn5180_DataParams_t , phhalHw_PN7462AU_DataParams , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • pSelectedFile : phceT4T_Sw_DataParams
  • pSender : phTools_Q
  • pSharedData : phceT4T_Sw_DataParams
  • psSocket : phnpSnep_Sw_DataParams
  • pTimerHandle : phpalI14443p4mC_Sw_DataParams_t , phpalI18092mT_Sw_DataParams_t
  • pTopTagsDataParams : phalTop_Sw_DataParams
  • pTxBuffer : phhalHw_Pn5180_DataParams_t , phhalHw_PN7462AU_DataParams , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • pTxData : phNfcLib_MFdf
  • pTxDataLen : phNfcLib_MFdf
  • pUid : phpalSli15693_Sw_DataParams
  • pUii : phNfcLib_I18000p3m3 , phNfcLib_PeerInfo_t
  • pUri : phlnLlcp_Transport_Socket
  • pWordPtr : phNfcLib_I18000p3m3
  • pWtxTimerCallback : phpalI14443p4mC_Sw_DataParams_t


NXP NFC Reader Library: Data Fields - Variables

- s -

  • salTop_T1T : phalTop_Sw_DataParams
  • salTop_T2T : phalTop_Sw_DataParams
  • salTop_T3T : phalTop_Sw_DataParams
  • salTop_T4T : phalTop_Sw_DataParams
  • salTop_T5T : phalTop_Sw_DataParams
  • sBal : phPlatform_DataParams_t
  • sBal_Struct : phbalReg_LinuxKernelSpi_DataParams_t , phbalReg_LinuxUserI2C_DataParams_t , phbalReg_LinuxUserSpi_DataParams_t
  • sHal : phPlatform_DataParams_t
  • sI18000p3m3TargetInfo : phacDiscLoop_Sw_DataParams
  • sKeyStore : phPlatform_DataParams_t
  • sLocalLMParams : phlnLlcp_Sw_DataParams
  • sPlatform : phNfcLib_DataParams_t
  • sRemoteLMParams : phlnLlcp_Sw_DataParams
  • sSector : phalTop_T2T
  • sSegment : phalTop_T1T
  • sSeq : phlnLlcp_Transport_Socket
  • sTargetParams : phacDiscLoop_Sw_DataParams
  • sTypeATargetInfo : phacDiscLoop_Sw_DataParams
  • sTypeBTargetInfo : phacDiscLoop_Sw_DataParams
  • sTypeFTargetInfo : phacDiscLoop_Sw_DataParams
  • sTypeVTargetInfo : phacDiscLoop_Sw_DataParams


NXP NFC Reader Library: Data Fields - Variables

- t -

  • T4TEventObj : phceT4T_Sw_DataParams
  • tIso14443_4 : phNfcLib_PeerInfo_t
  • tIso18092 : phNfcLib_PeerInfo_t


NXP NFC Reader Library: Data Fields - Variables

- w -

  • wActPollGTimeUs : phacDiscLoop_Sw_DataParams
  • wAdditionalInfo : phalFelica_Sw_DataParams_t , phalMfdf_Sw_DataParams_t , phhalHw_Pn5180_DataParams_t , phhalHw_PN7462AU_DataParams , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t , phpalSli15693_Sw_DataParams
  • waPasPollGTimeUs : phacDiscLoop_Sw_DataParams
  • wAppBufferSize : phceT4T_Sw_DataParams
  • wAtqa : phNfcLib_PeerInfo_t
  • wBlockNumber : phNfcLib_I15693
  • wByteAddr : phalTop_T1T_LockCtrlTlv , phalTop_T1T_MemCtrlTlv , phalTop_T2T_LockCtrlTlv , phalTop_T2T_MemCtrlTlv
  • wCcContentLen : phceT4T_Sw_DataParams
  • wCcFileSize : phceT4T_Sw_DataParams
  • wCCLEN : phalTop_T4T
  • wCfgShadow : phhalHw_Pn5180_DataParams_t , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • wCrc : phalMfdf_Sw_DataParams_t
  • wCurrentSlotCount : phhalHw_PN7462AU_DataParams , phhalHw_Rc663_DataParams_t
  • wDetectionTimeUs : phhalHw_Rc663_DataParams_t
  • wErrorCode : phacDiscLoop_Sw_DataParams
  • wExitStatus : phceT4T_Sw_DataParams
  • wFieldOffTime : phhalHw_Pn5180_DataParams_t , phhalHw_PN7462AU_DataParams , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • wFieldRecoveryTime : phhalHw_Pn5180_DataParams_t , phhalHw_PN7462AU_DataParams , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • wFrameOpt : phTools_Q
  • wHigherLayerInfLen : phpalI14443p3b_Sw_DataParams_t
  • wHigherLayerRespLen : phpalI14443p3b_Sw_DataParams_t
  • wHigherLayerRespSize : phpalI14443p3b_Sw_DataParams_t
  • wId : phacDiscLoop_Sw_DataParams , phalFelica_Sw_DataParams_t , phalI15693_Sw_DataParams_t , phalI18000p3m3_Sw_DataParams_t , phalMfc_Sw_DataParams_t , phalMfdf_Sw_DataParams_t , phalMful_Sw_DataParams_t , phalSli_Sw_DataParams_t , phalT1T_Sw_DataParams_t , phalTop_Sw_DataParams , phbalReg_Type_t , phceT4T_Sw_DataParams , phCidManager_Sw_DataParams_t , phCryptoRng_Sw_DataParams_t , phCryptoSym_Sw_DataParams_t , phhalHw_Pn5180_DataParams_t , phhalHw_PN7462AU_DataParams , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t , phKeyStore_Sw_DataParams_t , phlnLlcp_Sw_DataParams , phNfcLib_DataParams_t , phnpSnep_Sw_DataParams , phpalFelica_Sw_DataParams_t , phpalI14443p3a_Sw_DataParams_t , phpalI14443p3b_Sw_DataParams_t , phpalI14443p4_Sw_DataParams_t , phpalI14443p4a_Sw_DataParams_t , phpalI14443p4mC_Sw_DataParams_t , phpalI18000p3m3_Sw_DataParams_t , phpalI18092mPI_Sw_DataParams_t , phpalI18092mT_Sw_DataParams_t , phpalMifare_Sw_DataParams_t , phpalSli15693_Sw_DataParams , phPlatform_DataParams_t
  • wKeepIV : phCryptoSym_Sw_DataParams_t
  • wKeyType : phCryptoSym_Sw_DataParams_t , phKeyStore_Sw_KeyEntry_t
  • wLastTxLen : phpalI14443p4mC_Sw_DataParams_t , phpalI18092mPI_Sw_DataParams_t , phpalI18092mT_Sw_DataParams_t
  • wLc : phceT4T_Sw_DataParams
  • wLength : phalTop_T1T_ProprietaryTlv
  • wLpcdReference : phhalHw_Pn5180_DataParams_t
  • wMaxFileSize : phalTop_T4T
  • wMaxNdefLength : phalTop_Sw_DataParams
  • wMaxPrecachedBytes : phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • wMiu : phlnLlcp_LMDataParams
  • wMLc : phalTop_T4T
  • wMLe : phalTop_T4T
  • wMlen : phalTop_T5T
  • wNdefHeaderAddr : phalTop_T1T , phalTop_T2T , phalTop_T5T
  • wNdefLength : phalTop_Sw_DataParams
  • wNdefMsgAddr : phalTop_T1T , phalTop_T2T , phalTop_T5T
  • wNoOfKeyEntries : phKeyStore_Sw_DataParams_t
  • wNoOfKUCEntries : phKeyStore_Sw_DataParams_t
  • wNoOfVersions : phKeyStore_Sw_DataParams_t
  • wNumBlocks : phNfcLib_I15693
  • wOffset : phalTop_T1T_LockCtrlTlv , phalTop_T1T_MemCtrlTlv , phalTop_T1T_ProprietaryTlv , phalTop_T2T_LockCtrlTlv , phalTop_T2T_MemCtrlTlv
  • wOpeMode : phhalHw_PN7462AU_DataParams
  • wOption : phNfcLib_MFdf
  • wParity : phhalHw_PN7462AU_DataParams
  • wPayLoadLen : phalMfdf_Sw_DataParams_t
  • wPowerDownTimeMs : phhalHw_Rc663_DataParams_t
  • wProtParams : phacDiscLoop_TargetParams
  • wRefNoKUC : phKeyStore_Sw_KeyEntry_t
  • wRMiu : phlnLlcp_Transport_Socket
  • wRxBufferLen : phacDiscLoop_TargetParams
  • wRxBufLen : phhalHw_Pn5180_DataParams_t , phhalHw_PN7462AU_DataParams , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • wRxBufSize : phhalHw_Pn5180_DataParams_t , phhalHw_PN7462AU_DataParams , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • wRxBufStartPos : phhalHw_Pn5180_DataParams_t , phhalHw_PN7462AU_DataParams , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • wRxDataRate : phhalHw_PN7462AU_DataParams
  • wRxSubCarrier : phhalHw_PN7462AU_DataParams
  • wSelectedFileId : phceT4T_Sw_DataParams
  • wSharedDataLen : phceT4T_Sw_DataParams
  • wStatus : phlnLlcp_Transport_Socket
  • wStatusWord : phceT4T_Sw_DataParams
  • wTargetMode : phhalHw_Pn5180_DataParams_t , phhalHw_PN7462AU_DataParams , phhalHw_Rc523_DataParams_t
  • wTimeoutReloadVal : phhalHw_Rc523_DataParams_t
  • wTimingMode : phhalHw_Pn5180_DataParams_t , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • wTxBufLen : phhalHw_Pn5180_DataParams_t , phhalHw_PN7462AU_DataParams , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • wTxBufSize : phhalHw_Pn5180_DataParams_t , phhalHw_PN7462AU_DataParams , phhalHw_Rc523_DataParams_t , phhalHw_Rc663_DataParams_t
  • wTxBufStartPos : phhalHw_Pn5180_DataParams_t
  • wTxDataRate : phhalHw_PN7462AU_DataParams
  • wTxWaitReloadVal : phhalHw_Rc523_DataParams_t
  • wUiiLength : phNfcLib_PeerInfo_t
  • wUiiMaskLength : phNfcLib_I18000p3m3
  • wVersion : phKeyStore_Sw_KeyVersionPair_t
  • wWakeupCounterInMs : phhalHw_Pn5180_DataParams_t
  • wWks : phlnLlcp_LMDataParams
  • wWtDelta : phpalI14443p4mC_Sw_DataParams_t


NXP NFC Reader Library: Data Fields - Variables

- x -

  • xRxSema : phlnLlcp_Transport_Socket
  • xSema : phlnLlcp_Transport_Socket


NXP NFC Reader Library: Data Structure Index

Data Structure Index
p
p
phalMful_Sw_DataParams_t phbalReg_LinuxKernelSpi_DataParams_t phlnLlcp_LMDataParams phOsal_TimePeriodObj
phalSli_Sw_DataParams_t phbalReg_LinuxUserI2C_DataParams_t phlnLlcp_Socket_Seq phOsal_TimerObj
phacDiscLoop_I18000p3m3_Info phalT1T_Sw_DataParams_t phbalReg_LinuxUserSpi_DataParams_t phlnLlcp_Sw_DataParams phpalFelica_Sw_DataParams_t
phacDiscLoop_Sw_DataParams phalTop_Sw_DataParams phbalReg_LpcOpenI2c_DataParams_t phlnLlcp_Transport_Socket phpalI14443p3a_Sw_DataParams_t
phacDiscLoop_Sw_TypeA_Info phalTop_T1T phbalReg_LpcOpenSpi_DataParams_t phNfcLib_DataParams_t phpalI14443p3b_Sw_DataParams_t
phacDiscLoop_Sw_TypeB_Info phalTop_T1T_LockCtrlTlv phbalReg_Type_t phNfcLib_I15693 phpalI14443p4_Sw_DataParams_t
phacDiscLoop_Sw_TypeF_Info phalTop_T1T_MemCtrlTlv phceT4T_Sw_DataParams phNfcLib_I18000p3m3 phpalI14443p4a_Sw_DataParams_t
phacDiscLoop_Sw_TypeV_Info phalTop_T1T_ProprietaryTlv phCidManager_Sw_DataParams_t phNfcLib_InternalState_t phpalI14443p4mC_Sw_DataParams_t
phacDiscLoop_TargetParams phalTop_T2T phCryptoRng_Sw_DataParams_t phNfcLib_MFC phpalI18000p3m3_Sw_DataParams_t
phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_Type_P2P_TAGS phalTop_T2T_LockCtrlTlv phCryptoSym_Sw_DataParams_t phNfcLib_MFdf phpalI18092mPI_Sw_DataParams_t
phacDiscLoop_Sw_TypeA_Info::phacDiscLoop_TypeA_I3P3 phalTop_T2T_MemCtrlTlv phhalHw_Nfc_Ic_DataParams_t phNfcLib_MFUL phpalI18092mT_Sw_DataParams_t
phacDiscLoop_Sw_TypeB_Info::phacDiscLoop_TypeB_I3P3B phalTop_T2T_Sector phhalHw_Pn5180_DataParams_t phNfcLib_PeerInfo_t phpalMifare_Sw_DataParams_t
phacDiscLoop_Sw_TypeB_Info::phacDiscLoop_TypeB_I3P4B phalTop_T3T phhalHw_PN7462AU_DataParams phNfcLib_RawTransmit phpalSli15693_Sw_DataParams
phacDiscLoop_Sw_TypeF_Info::phacDiscLoop_TypeF_P2P_Info phalTop_T4T phhalHw_Rc523_DataParams_t phNfcLib_Transmit phPlatform_DataParams_t
phalFelica_Sw_DataParams_t phalTop_T5T phhalHw_Rc663_DataParams_t phnpSnep_Sw_DataParams phTools_Q
phalI15693_Sw_DataParams_t phalTop_TIT_Segment phKeyStore_Sw_DataParams_t phOsal_EventObj
phalI18000p3m3_Sw_DataParams_t phacDiscLoop_Sw_TypeA_Info::phascDiscLoop_TypeA_I3P4 phKeyStore_Sw_KeyEntry_t phOsal_MutexObj
phalMfc_Sw_DataParams_t phbalReg_KinetisI2C_DataParams_t phKeyStore_Sw_KeyVersionPair_t phOsal_SemObj
phalMfdf_Sw_DataParams_t phbalReg_KinetisSpi_DataParams_t phKeyStore_Sw_KUCEntry_t phOsal_ThreadObj
p


NXP NFC Reader Library: Sw Directory Reference

  • comps
  • phpalI14443p3b
  • src
  • Sw
Sw Directory Reference

Files

file | phpalI14443p3b_Sw.h
Software ISO14443-3B Component of Reader Library Framework.
file | phpalI14443p3b_Sw_Int.h
Internal definitions for Software ISO14443-3B Component of Reader Library Framework.


NXP NFC Reader Library: src Directory Reference

  • comps
  • phlnLlcp
  • src
src Directory Reference

Directories

Generated by doxygen 1.8.12


NXP NFC Reader Library: src Directory Reference

  • comps
  • phalTop
  • src
src Directory Reference

Directories

Generated by doxygen 1.8.12


NXP NFC Reader Library: phalMfp Directory Reference

  • comps
  • phalMfp
phalMfp Directory Reference

Directories

Generated by doxygen 1.8.12


NXP NFC Reader Library: phNfcLib Directory Reference

  • comps
  • phNfcLib
phNfcLib Directory Reference

Directories

Generated by doxygen 1.8.12


NXP NFC Reader Library: phpalI14443p4 Directory Reference

  • comps
  • phpalI14443p4
phpalI14443p4 Directory Reference


NXP NFC Reader Library: phpalMifare Directory Reference

  • comps
  • phpalMifare
phpalMifare Directory Reference

Directories

Generated by doxygen 1.8.12


NXP NFC Reader Library: phlnLlcp Directory Reference

  • comps
  • phlnLlcp
phlnLlcp Directory Reference


NXP NFC Reader Library: phbalReg Directory Reference

  • comps
  • phbalReg
phbalReg Directory Reference


NXP NFC Reader Library: src Directory Reference

  • comps
  • phpalI18000p3m3
  • src
src Directory Reference

Directories

Generated by doxygen 1.8.12


NXP NFC Reader Library: src Directory Reference

  • comps
  • phalI18000p3m3
  • src
src Directory Reference

Directories

Generated by doxygen 1.8.12


NXP NFC Reader Library: STUB Directory Reference

  • comps
  • phpalSli15693
  • src
  • STUB
STUB Directory Reference

Files

file phpalSli15693_STUB.h
phpalSli15693_STUB.h STUB Component of Basic Function Library Framework.


NXP NFC Reader Library: inc Directory Reference

  • comps
  • phpalSli15693
  • tst
  • utSli15693
  • inc
inc Directory Reference


NXP NFC Reader Library: phpalI18000p3m3 Directory Reference

  • comps
  • phpalI18000p3m3
phpalI18000p3m3 Directory Reference


NXP NFC Reader Library: Callback Directory Reference

  • comps
  • phhalHw
  • src
  • Callback
Callback Directory Reference

Files

file phhalHw_Callback.h
Callback HAL-Component of Reader Library Framework.


NXP NFC Reader Library: src Directory Reference

  • comps
  • phpalI14443p4
  • src
src Directory Reference

Directories

Generated by doxygen 1.8.12


NXP NFC Reader Library: phpalI14443p3b Directory Reference

  • comps
  • phpalI14443p3b
phpalI14443p3b Directory Reference


NXP NFC Reader Library: src Directory Reference

  • comps
  • phKeyStore
  • src
src Directory Reference

Directories

Files

file phKeyStore_Int.h
Internal functions and defines of Generic Keystore application layer.


NXP NFC Reader Library: Sw Directory Reference

  • comps
  • phalI15693
  • src
  • Sw
Sw Directory Reference

Files

file | phalI15693_Sw.h
Software ICode SLI Application Component of Reader Library Framework.
file | phalI15693_Sw_Int.h
Internal functions of Software implementation of ICode SLI (R) application layer.


NXP NFC Reader Library: utSli15693 Directory Reference

  • comps
  • phpalSli15693
  • tst
  • utSli15693
utSli15693 Directory Reference

Directories

Generated by doxygen 1.8.12


NXP NFC Reader Library: PN7462AU Directory Reference

  • comps
  • phhalHw
  • src
  • PN7462AU
PN7462AU Directory Reference

Files

file phhalHw_PN7462AU.h
: This file contains wrapper Api's which connects the Reader library interfaces with the phhalRf interfaces.


NXP NFC Reader Library: Delegate Directory Reference

  • comps
  • phbalReg
  • src
  • Delegate
Delegate Directory Reference

Files

file phbalReg_Delegate.h
Delegate BAL Component of Reader Library Framework.


NXP NFC Reader Library: Sw Directory Reference

  • comps
  • phalT1T
  • src
  • Sw
Sw Directory Reference

Files

file phalT1T_Sw.h
Internal functions for Tag Operation Application Layer Component of Reader Library Framework.


NXP NFC Reader Library: phCidManager Directory Reference

  • comps
  • phCidManager
phCidManager Directory Reference


NXP NFC Reader Library: phpalI14443p4mC Directory Reference

  • comps
  • phpalI14443p4mC
phpalI14443p4mC Directory Reference


NXP NFC Reader Library: src Directory Reference

  • comps
  • phalSli
  • src
src Directory Reference

Directories

Files

file phalSli_Int.h
Internal functions and defines of ISO15693 application layer.


NXP NFC Reader Library: phalI15693 Directory Reference

  • comps
  • phalI15693
phalI15693 Directory Reference


NXP NFC Reader Library: Sw Directory Reference

  • comps
  • phpalSli15693
  • src
  • Sw
Sw Directory Reference

Files

file | phpalSli15693_Sw.h
Software ISO14443-3A Component of Reader Library Framework.
file | phpalSli15693_Sw_Int.h
Internal definitions for Software ISO14443-3A Component of Reader Library Framework.


NXP NFC Reader Library: src Directory Reference

  • comps
  • phpalI14443p4a
  • src
src Directory Reference

Directories

Generated by doxygen 1.8.12


NXP NFC Reader Library: tst Directory Reference

  • comps
  • phpalSli15693
  • tst
tst Directory Reference


NXP NFC Reader Library: NullOs Directory Reference

  • comps
  • phOsal
  • src
  • NullOs
NullOs Directory Reference


NXP NFC Reader Library: Winos Directory Reference

  • comps
  • phOsal
  • src
  • Winos
Winos Directory Reference

Files

file phOsal_Winos.h
Winos OSAL Component of Reader Library Framework.


NXP NFC Reader Library: Rd710 Directory Reference

  • comps
  • phpalMifare
  • src
  • Rd710
Rd710 Directory Reference

Files

file phpalMifare_Rd710.h
Software MIFARE(R) Component of Reader Library Framework.


NXP NFC Reader Library: Port Directory Reference

  • comps
  • phPlatform
  • src
  • Port
Port Directory Reference

Directories

Generated by doxygen 1.8.12


NXP NFC Reader Library: Stub Directory Reference

  • comps
  • phCryptoSym
  • src
  • Stub
Stub Directory Reference

Files

file phCryptoSym_Stub.h
Software specific Symmetric Cryptography Component of Reader Library Framework.


NXP NFC Reader Library: Sw Directory Reference

  • comps
  • phpalI14443p4a
  • src
  • Sw
Sw Directory Reference

Files

file | phpalI14443p4a_Sw.h
Software ISO14443-4A Component of Reader Library Framework.
file | phpalI14443p4a_Sw_Int.h
Internal definitions for Software ISO14443-4A Component of Reader Library Framework.


NXP NFC Reader Library: Rd710 Directory Reference

  • comps
  • phKeyStore
  • src
  • Rd710
Rd710 Directory Reference

Files

file phKeyStore_Rd710.h
RD710 functions of Reader Library Framework.


NXP NFC Reader Library: Sw Directory Reference

  • comps
  • phalSli
  • src
  • Sw
Sw Directory Reference

Files

file | phalSli_Sw.h
Software ICode SLI Application Component of Reader Library Framework.
file | phalSli_Sw_Int.h
Internal functions of Software implementation of ICode SLI (R) application layer.


NXP NFC Reader Library: DUT Directory Reference

  • comps
  • phpalMifare
  • src
  • DUT
DUT Directory Reference

Files

file phpalMifare_DUT.h
DUT MIFARE(R) Component of Reader Library Framework.


NXP NFC Reader Library: Abend Directory Reference

  • comps
  • phbalReg
  • src
  • Abend
Abend Directory Reference

Files

file phbalReg_Abend.h
(Windows) BAL Component of Reader Library Framework.


NXP NFC Reader Library: utDiscLoop Directory Reference

  • comps
  • phacDiscLoop
  • tst
  • utDiscLoop
utDiscLoop Directory Reference

Directories

Generated by doxygen 1.8.12


NXP NFC Reader Library: Sw Directory Reference

  • comps
  • phalTop
  • src
  • Sw
Sw Directory Reference

Files

file | phalTop_Sw.h
Software Tag Operation Application Layer Component of Reader Library Framework.
file | phalTop_Sw_Int_T1T.h
Internal functions for Tag Operation Application Layer Component of Reader Library Framework.
file | phalTop_Sw_Int_T2T.h
Internal functions for Tag Operation Application Layer Component of Reader Library Framework.
file | phalTop_Sw_Int_T3T.h
Internal functions for Tag Operation Application Layer Component of Reader Library Framework.
file | phalTop_Sw_Int_T4T.h
Internal functions for Tag Operation Application Layer Component of Reader Library Framework.
file | phalTop_Sw_Int_T5T.h
Internal functions for Tag Operation Application Layer Component of Reader Library Framework.


NXP NFC Reader Library: Rc663 Directory Reference

  • comps
  • phhalHw
  • src
  • Rc663
Rc663 Directory Reference

Files

file | phhalHw_Rc663.h
RC523 specific HAL-Component of Reader Library Framework.
file | phhalHw_Rc663_Config.h
Internal definitions for Rc663 specific HAL-Component of Reader Library Framework.
file | phhalHw_Rc663_Int.h
Internal definitions for Rc663 specific HAL-Component of Reader Library Framework.


NXP NFC Reader Library: Rc663 Directory Reference

  • comps
  • phKeyStore
  • src
  • Rc663
Rc663 Directory Reference

Files

file | phKeyStore_Rc663.h
RC663 functions of Reader Library Framework.
file | phKeyStore_Rc663_Int.h
Rc663 functions of Reader Library Framework.


NXP NFC Reader Library: LpcOpenI2C Directory Reference

  • comps
  • phbalReg
  • src
  • LpcOpenI2C
LpcOpenI2C Directory Reference

Files

file phbalReg_LpcOpenI2c.h
BAL Stub Component of Reader Library Framework.


NXP NFC Reader Library: src Directory Reference

  • comps
  • phpalFelica
  • src
src Directory Reference

Directories

Generated by doxygen 1.8.12


NXP NFC Reader Library: src Directory Reference

  • comps
  • phpalI14443p3a
  • src
src Directory Reference

Directories

Generated by doxygen 1.8.12


NXP NFC Reader Library: Rd710 Directory Reference

  • comps
  • phCidManager
  • src
  • Rd710
Rd710 Directory Reference

Files

file phCidManager_Rd710.h
Software Cid Manager Component of Reader Library Framework.


NXP NFC Reader Library: STUB Directory Reference

  • comps
  • phhalHw
  • src
  • STUB
STUB Directory Reference

Files

file phhalHw_STUB.h
phhalHw_STUB.h STUB specific HAL-Component of Reader Library Framework.


NXP NFC Reader Library: Rd710 Directory Reference

  • comps
  • phpalI14443p3a
  • src
  • Rd710
Rd710 Directory Reference

Files

file phpalI14443p3a_Rd710.h
Software ISO14443-3A Component of Reader Library Framework.


NXP NFC Reader Library: phpalI18092mPI Directory Reference

  • comps
  • phpalI18092mPI
phpalI18092mPI Directory Reference


NXP NFC Reader Library: SamAV2 Directory Reference

  • comps
  • phalMful
  • src
  • SamAV2
SamAV2 Directory Reference

Files

file phalMful_SamAV2.h
SamAV2 MIFARE(R) Ultralight Application Component of Reader Library Framework.


NXP NFC Reader Library: Rd710 Directory Reference

  • comps
  • phpalI14443p4
  • src
  • Rd710
Rd710 Directory Reference

Files

file phpalI14443p4_Rd710.h
Software ISO14443-4 Rd710 Component of Basic Function Library Framework.


NXP NFC Reader Library: Sw Directory Reference

  • comps
  • phalMful
  • src
  • Sw
Sw Directory Reference

Files

file phalMful_Sw.h
Software MIFARE(R) Ultralight Application Component of Reader Library Framework.


NXP NFC Reader Library: phCryptoSym Directory Reference

  • comps
  • phCryptoSym
phCryptoSym Directory Reference

Directories

Generated by doxygen 1.8.12


NXP NFC Reader Library: Sw Directory Reference

  • comps
  • phlnLlcp
  • src
  • Sw
Sw Directory Reference

Files

file | phlnLlcp_Sw.h
Software LLCP Link layer Component of Reader Library Framework.
file | phlnLlcp_Sw_Int.h
Software LLCP Link layer Component of Reader Library Framework.
file | phlnLlcp_Sw_Mac.h
Software MAC Layer of LLCP Link layer Component of Reader Library Framework.
file | phlnLlcp_Timers.h
Software LLCP Link layer Component of Reader Library Framework.


NXP NFC Reader Library: tst Directory Reference

  • comps
  • phacDiscLoop
  • tst
tst Directory Reference


NXP NFC Reader Library: src Directory Reference

  • comps
  • phacDiscLoop
  • src
src Directory Reference

Directories

Generated by doxygen 1.8.12


NXP NFC Reader Library: KinetisI2C Directory Reference

  • comps
  • phbalReg
  • src
  • KinetisI2C
KinetisI2C Directory Reference

Files

file phbalReg_KinetisI2C.h
BAL Stub Component of Reader Library Framework.


NXP NFC Reader Library: SamAV2_X Directory Reference

  • comps
  • phpalI14443p4
  • src
  • SamAV2_X
SamAV2_X Directory Reference

Files

file phpalI14443p4_SamAV2_X.h
Software ISO14443-4 SamAV2 Component of Basic Function Library Framework.


NXP NFC Reader Library: src Directory Reference

  • comps
  • phalMfdf
  • src
src Directory Reference

Directories

Files

file phalMfdf_Int.h
Internal functions of Software implementation of MIFARE DESFIRE EV1 application layer.


NXP NFC Reader Library: intfs Directory Reference

  • intfs
intfs Directory Reference

Files

file | phacDiscLoop.h
Generic Discovery Loop Activities Component of Reader Library Framework.
file | phalFelica.h
Generic Felica Application Component of Reader Library Framework.
file | phalI15693.h
Generic ISO 15693 Application Component of Reader Library Framework.
file | phalI18000p3m3.h
Generic ISO18000-3 Mode3 Application Component of Reader Library Framework.
file | phalMfc.h
Generic MIFARE(R) Application Component of Reader Library Framework.
file | phalMfdf.h
Generic MIFARE DESFire(R) EV1 Application Component of Reader Library Framework.
file | phalMfp.h
Generic MIFARE(R) Application Component of Reader Library Framework.
file | phalMful.h
Generic MIFARE(R) Ultralight Application Component of Reader Library Framework.
file | phalSli.h
Generic ICode SLI Application Component of Reader Library Framework.
file | phalT1T.h
Internal functions for Tag Operation Application Layer component of Reader Library Framework.
file | phalTop.h
Generic Tag Operation Application Layer Component of Reader Library Framework.
file | phbalReg.h
Generic BAL Component of Reader Library Framework.
file | phceT4T.h
Card Emulation component for Type 4A Tag.
file | phCidManager.h
Cid Manager Component of Reader Library Framework.
file | phCryptoRng.h
Generic HostComm Component of Reader Library Framework.
file | phCryptoSym.h
Generic Symmetric Cryptography Component of the Reader Library Framework.
file | phhalHw.h
Generic HAL component of Reader Library Framework.
file | phhalHw_Pn5180_Instr.h
PN5180 HAL Instruction Layer.
file | phhalHw_Pn5180_Reg.h
PN5180 Register map.
file | phhalHw_Rc523_Cmd.h
Command functions for Rc523 specific HAL-Component of Reader Library Framework.
file | phhalHw_Rc523_Reg.h
Rc523 register definitions for Reader Library Framework.
file | phhalHw_Rc663_Cmd.h
Command functions for Rc663 specific HAL-Component of Reader Library Framework.
file | phhalHw_Rc663_Reg.h
Rc663 register definitions for Reader Library Framework.
file | phKeyStore.h
Generic KeyStore Component of Reader Library Framework.
file | phlnLlcp.h
Generic LLCP Link layer Component of Reader Library Framework.
file | phLog.h
Log Component of Reader Library Framework.
file | phNfcLib.h
NXP NFC Library Top Level API.
file | phnpSnep.h
Generic Simple NDEF Exchange Protocol( SNEP) Component of Reader Library Framework.
file | phOsal.h
Generic OSAL Component of Reader Library Framework.
file | phOsal_Config.h
phOsal_Config.h: Osal Configuration
file | phpalFelica.h
Generic Felica Component of Reader Library Framework.
file | phpalI14443p3a.h
Generic ISO14443-3A Component of Reader Library Framework.
file | phpalI14443p3b.h
Generic ISO14443-3B Component of Reader Library Framework.
file | phpalI14443p4.h
Generic ISO14443-4 Component of Reader Library Framework.
file | phpalI14443p4a.h
Generic ISO14443-4A Component of Reader Library Framework.
file | phpalI14443p4mC.h
Generic ISO 14443p4mC component of Reader Library Framework.
file | phpalI18000p3m3.h
Generic ISO18000-3 Mode3 Component of Reader Library Framework.
file | phpalI18092mPI.h
Generic ISO18092 passive initiator mode Component of Reader Library Framework.
file | phpalI18092mT.h
Generic ISO18092 target mode Component of Reader Library Framework.
file | phpalMifare.h
Generic MIFARE(R) Component of Reader Library Framework.
file | phpalSli15693.h
Generic Sli15693 Component of Reader Library Framework.
file | phPlatform.h
Timer of MicroController Platform.
file | phPlatform_Port_Host.h
Platform file abstracting functions of Host controller.
file | phPlatform_Port_LPC11u68_RC523.h
Platform file abstracting HOST and front-end.
file | phPlatform_Port_LPC11u68_RC663.h
Platform file abstracting HOST and front-end.
file | phPlatform_Port_LPC1769_RC523.h
Platform file abstracting HOST and front-end.
file | phPlatform_Port_LPC1769_RC663.h
Platform file abstracting HOST and front-end.
file | phPlatform_Port_PN7462AU.h
Platform file abstracting HOST and front-end.
file | phTools.h
Generic Tools Component of Reader Library Framework.


NXP NFC Reader Library: Sw Directory Reference

  • comps
  • phpalI18092mT
  • src
  • Sw
Sw Directory Reference

Files

file | phpalI18092mT_Sw.h
Software ISO18092 target mode Component of Reader Library Framework.
file | phpalI18092mT_Sw_Int.h
Internal definitions for software ISO18092 target mode Component of Reader Library Framework.


NXP NFC Reader Library: phceT4T Directory Reference

  • comps
  • phceT4T
phceT4T Directory Reference


NXP NFC Reader Library: src Directory Reference

  • comps
  • phhalHw
  • src
src Directory Reference

Directories

directory RdFpgaV6


NXP NFC Reader Library: Visa Directory Reference

  • comps
  • phbalReg
  • src
  • Visa
Visa Directory Reference

Directories

Generated by doxygen 1.8.12


NXP NFC Reader Library: src Directory Reference

  • comps
  • phCryptoRng
  • src
src Directory Reference

Directories

Generated by doxygen 1.8.12


NXP NFC Reader Library: src Directory Reference

  • comps
  • phpalI14443p3b
  • src
src Directory Reference

Directories

Generated by doxygen 1.8.12


NXP NFC Reader Library: Stub Directory Reference

  • comps
  • phbalReg
  • src
  • Stub
Stub Directory Reference

Files

file phbalReg_Stub.h
BAL Stub Component of Reader Library Framework.


NXP NFC Reader Library: phalI18000p3m3 Directory Reference

  • comps
  • phalI18000p3m3
phalI18000p3m3 Directory Reference


NXP NFC Reader Library: SamAV2_X Directory Reference

  • comps
  • phpalI14443p3a
  • src
  • SamAV2_X
SamAV2_X Directory Reference

Files

file phpalI14443p3a_SamAV2_X.h
Software ISO14443-3A Component of Reader Library Framework.


NXP NFC Reader Library: phalT1T Directory Reference

  • comps
  • phalT1T
phalT1T Directory Reference


NXP NFC Reader Library: Sw Directory Reference

  • comps
  • phpalI14443p4mC
  • src
  • Sw
Sw Directory Reference

Files

file | phpalI14443p4mC_Sw.h
Software ISO 14443p4mC mode Component of Reader Library Framework.
file | phpalI14443p4mC_Sw_Int.h
Software ISO 14443p4mC mode Component of Reader Library Framework.


NXP NFC Reader Library: SamAV2_X Directory Reference

  • comps
  • phalMfc
  • src
  • SamAV2_X
SamAV2_X Directory Reference

Files

file | phalMfc_SamAV2_X.h
SamAV2 (X-Mode) MIFARE(R) Component of Reader Library Framework.
file | phalMfc_SamAV2_X_Int.h
Internal functions of Software implementation of MIFARE (R) application layer.


NXP NFC Reader Library: phpalI18092mT Directory Reference

  • comps
  • phpalI18092mT
phpalI18092mT Directory Reference


NXP NFC Reader Library: src Directory Reference

  • comps
  • phPlatform
  • src
src Directory Reference


NXP NFC Reader Library: phacDiscLoop Directory Reference

  • comps
  • phacDiscLoop
phacDiscLoop Directory Reference


NXP NFC Reader Library: Rd70xUsbWin Directory Reference

  • comps
  • phbalReg
  • src
  • Rd70xUsbWin
Rd70xUsbWin Directory Reference

Directories

Files

file | phbalReg_Rd70xUsbWin.h
Rd70x USB (Windows) BAL Component of Reader Library Framework.
file | phbalReg_Rd70xUsbWin_Int.h
Internal definitions for Rd70x USB (Windows) BAL Component of Reader Library Framework.


NXP NFC Reader Library: src Directory Reference

  • comps
  • phpalMifare
  • src
src Directory Reference

Directories

Files

file phpalMifare_Int.h
Internal definitions for Software MIFARE(R) Component of Reader Library Framework.


NXP NFC Reader Library: phCryptoRng Directory Reference

  • comps
  • phCryptoRng
phCryptoRng Directory Reference


NXP NFC Reader Library: phalFelica Directory Reference

  • comps
  • phalFelica
phalFelica Directory Reference

Directories

Generated by doxygen 1.8.12


NXP NFC Reader Library: Sw Directory Reference

  • comps
  • phacDiscLoop
  • src
  • Sw
Sw Directory Reference

Files

file | phacDiscLoop_Sw.h
This File contains all functions that's needed by Discovery Loop for Starting the discovery loop, Set & Get Configuration and Card Activation, as part of the Reader Library Framework.
file | phacDiscLoop_Sw_Int.h
This File contains all support functions that's needed by Discovery Loop for performing activities defined by NFC Forum as part of the Reader Library Framework.
file | phacDiscLoop_Sw_Int_A.h
Discovery Loop Activities for Type A polling.
file | phacDiscLoop_Sw_Int_B.h
Discovery Loop Activities for Type B polling.
file | phacDiscLoop_Sw_Int_F.h
Discovery Loop Activities for Type F polling.
file | phacDiscLoop_Sw_Int_I18000p3m3.h
Discovery Loop Activities for ISO 18000p3m3 polling.
file | phacDiscLoop_Sw_Int_V.h
Discovery Loop Activities for Type V polling.


NXP NFC Reader Library: Rc523 Directory Reference

  • comps
  • phhalHw
  • src
  • Rc523
Rc523 Directory Reference

Files

file | phhalHw_Rc523.h
RC523 specific HAL-Component of Reader Library Framework.
file | phhalHw_Rc523_Config.h
Internal definitions for Rc523 specific HAL-Component of Reader Library Framework.
file | phhalHw_Rc523_Int.h
Internal definitions for Rc523 specific HAL-Component of Reader Library Framework.


NXP NFC Reader Library: phLog Directory Reference

  • comps
  • phLog
phLog Directory Reference

Directories

Generated by doxygen 1.8.12


NXP NFC Reader Library: phKeyStore Directory Reference

  • comps
  • phKeyStore
phKeyStore Directory Reference

Directories

Generated by doxygen 1.8.12


NXP NFC Reader Library: DUT Directory Reference

  • comps
  • phpalI14443p3b
  • src
  • DUT
DUT Directory Reference

Files

file phpalI14443p3b_DUT.h
ISO14443-3B DUT Component of Basic Function Library Framework.


NXP NFC Reader Library: src Directory Reference

  • comps
  • phalFelica
  • src
src Directory Reference

Directories

Files

file phalFelica_Int.h
Internal functions and defines of the Felica application layer.


NXP NFC Reader Library: Sw Directory Reference

  • comps
  • phpalMifare
  • src
  • Sw
Sw Directory Reference

Files

file phpalMifare_Sw.h
Software MIFARE(R) Component of Reader Library Framework.


NXP NFC Reader Library: DUT Directory Reference

  • comps
  • phpalI14443p4a
  • src
  • DUT
DUT Directory Reference

Files

file phpalI14443p4a_DUT.h
DUT ISO14443-4A Component of Reader Library Framework.


NXP NFC Reader Library: phOsal Directory Reference

  • comps
  • phOsal
phOsal Directory Reference


NXP NFC Reader Library: types Directory Reference

  • types
types Directory Reference

Files

file | ph_NxpBuild.h
Build System Definitions for Reader Library Framework.
file | types/ph_NxpBuild_App.h
Build System Definitions for Reader Library Framework.
file | ph_NxpBuild_Doxygen.h
Build System Definitions for Reader Library Framework.
file | ph_NxpBuild_Lpc.h
Build System Definitions for Reader Library Framework.
file | ph_NxpBuild_Pc.h
Build System Definitions for Reader Library Framework.
file | ph_RefDefs.h
Platform definitions for Reader Library Framework.
file | ph_Status.h
Status Code definitions for Reader Library Framework.
file | ph_TypeDefs.h
Type definitions for Reader Library Framework.


NXP NFC Reader Library: src Directory Reference

  • comps
  • phCidManager
  • src
src Directory Reference

Directories

Generated by doxygen 1.8.12


NXP NFC Reader Library: src Directory Reference

  • comps
  • phOsal
  • src
src Directory Reference

Directories

Generated by doxygen 1.8.12


NXP NFC Reader Library: LinuxUserSpi Directory Reference

  • comps
  • phbalReg
  • src
  • LinuxUserSpi
LinuxUserSpi Directory Reference

Files

file phbalReg_LinuxUserSpi.h
phbalReg_LinuxUserSpi.h: BAL for linux User Mode


NXP NFC Reader Library: phalTop Directory Reference

  • comps
  • phalTop
phalTop Directory Reference


NXP NFC Reader Library: phnpSnep Directory Reference

  • comps
  • phnpSnep
phnpSnep Directory Reference


NXP NFC Reader Library: Linux Directory Reference

  • comps
  • phOsal
  • src
  • Linux
Linux Directory Reference

Files

file phOsal_Linux.h
Linux file for OSAL.


NXP NFC Reader Library: LpcOpenSPI Directory Reference

  • comps
  • phbalReg
  • src
  • LpcOpenSPI
LpcOpenSPI Directory Reference

Files

file phbalReg_LpcOpenSpi.h
BAL Stub Component of Reader Library Framework.


NXP NFC Reader Library: src Directory Reference

  • comps
  • phalMful
  • src
src Directory Reference

Directories

Files

file phalMful_Int.h
Internal functions of Software implementation of MIFARE (R) Ultralight application layer.


NXP NFC Reader Library: comps Directory Reference

  • comps
comps Directory Reference


NXP NFC Reader Library: Freertos Directory Reference

  • comps
  • phOsal
  • src
  • Freertos
Freertos Directory Reference


NXP NFC Reader Library: Sw Directory Reference

  • comps
  • phpalI18092mPI
  • src
  • Sw
Sw Directory Reference

Files

file | phpalI18092mPI_Sw.h
Software ISO18092 passive initiator mode Component of Reader Library Framework.
file | phpalI18092mPI_Sw_Int.h
Internal definitions for software ISO18092 passive initiator mode Component of Reader Library Framework.


NXP NFC Reader Library: Sw Directory Reference

  • comps
  • phnpSnep
  • src
  • Sw
Sw Directory Reference

Files

file phnpSnep_Sw.h
=========================================================================== *


NXP NFC Reader Library: external Directory Reference

  • comps
  • phbalReg
  • src
  • Rd70xUsbWin
  • external
external Directory Reference


NXP NFC Reader Library: Sw Directory Reference

  • comps
  • phceT4T
  • src
  • Sw
Sw Directory Reference

Files

file | phceT4T_Sw.h
Card Emulation component for Type 4A Tag.
file | phceT4T_Sw_Int.h
Card Emulation component for Type 4A Tag.


NXP NFC Reader Library: LinuxUserI2C Directory Reference

  • comps
  • phbalReg
  • src
  • LinuxUserI2C
LinuxUserI2C Directory Reference

Files

file phbalReg_LinuxUserI2C.h
phbalReg_LinuxUserI2C.h: BAL for linux User Mode


NXP NFC Reader Library: src Directory Reference

  • comps
  • phpalI14443p4mC
  • src
src Directory Reference

Directories

Generated by doxygen 1.8.12


NXP NFC Reader Library: DUT Directory Reference

  • comps
  • phpalFelica
  • src
  • DUT
DUT Directory Reference

Files

file phpalFelica_DUT.h
DUT Felica Component of Reader Library Framework.


NXP NFC Reader Library: src Directory Reference

  • comps
  • phnpSnep
  • src
src Directory Reference

Directories

Generated by doxygen 1.8.12


NXP NFC Reader Library: Sw Directory Reference

  • comps
  • phalFelica
  • src
  • Sw
Sw Directory Reference

Files

file phalFelica_Sw.h
Software Felica Application Component of Reader Library Framework.


NXP NFC Reader Library: external Directory Reference

  • comps
  • phhalHw
  • src
  • RdFpgaV6
  • external
external Directory Reference


NXP NFC Reader Library: phPlatform Directory Reference

  • comps
  • phPlatform
phPlatform Directory Reference


NXP NFC Reader Library: Sw Directory Reference

  • comps
  • phKeyStore
  • src
  • Sw
Sw Directory Reference

Files

file | phKeyStore_Sw.h
Sw functions of Reader Library Framework.
file | phKeyStore_Sw_Int.h
Internal definitions for Keystore-Component of Reader Library Framework.


NXP NFC Reader Library: Rd710 Directory Reference

  • comps
  • phpalI14443p4a
  • src
  • Rd710
Rd710 Directory Reference

Files

file phpalI14443p4a_Rd710.h
Rd710 ISO14443-4A Component of Reader Library Framework.


NXP NFC Reader Library: DUT Directory Reference

  • comps
  • phpalI18000p3m3
  • src
  • DUT
DUT Directory Reference

Files

file phpalI18000p3m3_DUT.h
DUT ISO14443-3B Component of Basic Function Library Framework.


NXP NFC Reader Library: SamAV2_X Directory Reference

  • comps
  • phalMfdf
  • src
  • SamAV2_X
SamAV2_X Directory Reference

Files

file phalMfdf_SamAV2_X.h
Software MIFARE DESFire Application Component of Reader Library Framework.


NXP NFC Reader Library: phpalI14443p4a Directory Reference

  • comps
  • phpalI14443p4a
phpalI14443p4a Directory Reference


NXP NFC Reader Library: SamAV2_X Directory Reference

  • comps
  • phalMful
  • src
  • SamAV2_X
SamAV2_X Directory Reference

Files

file phalMful_SamAV2_X.h
SamAV2_X MIFARE(R) Ultralight Application Component of Reader Library Framework.


NXP NFC Reader Library: SamAV2 Directory Reference

  • comps
  • phalMfp
  • src
  • SamAV2
SamAV2 Directory Reference

Files

file | phalMfp_SamAV2.h
Software MIFARE Plus(R) Application Component of Reader Library Framework.
file | phalMfp_SamAV2_Int.h
Internal functions of Software implementation of MIFARE (R) application layer.


NXP NFC Reader Library: RaspberryPi Directory Reference

  • comps
  • phPlatform
  • src
  • Port
  • RaspberryPi
RaspberryPi Directory Reference


NXP NFC Reader Library: phhalHw Directory Reference

  • comps
  • phhalHw
phhalHw Directory Reference


NXP NFC Reader Library: SamAV2_X Directory Reference

  • comps
  • phalMfp
  • src
  • SamAV2_X
SamAV2_X Directory Reference

Files

file | phalMfp_SamAV2_X.h
Software MIFARE Plus (R) Application Component of Reader Library Framework.
file | phalMfp_SamAV2_X_Int.h
Internal functions of Software implementation of MIFARE (R) application layer.


NXP NFC Reader Library: phalSli Directory Reference

  • comps
  • phalSli
phalSli Directory Reference

Directories

Generated by doxygen 1.8.12


NXP NFC Reader Library: Sw Directory Reference

  • comps
  • phpalFelica
  • src
  • Sw
Sw Directory Reference

Files

file | phpalFelica_Sw.h
Software Felica Component of Reader Library Framework.
file | phpalFelica_Sw_Int.h
Internal definitions for Software palFelica Component of Reader Library Framework.


NXP NFC Reader Library: Pn5180 Directory Reference

  • comps
  • phhalHw
  • src
  • Pn5180
Pn5180 Directory Reference

Files

file | phhalHw_Pn5180.h
PN5180 generic HAL interface.
file | phhalHw_Pn5180_Int.h
Internal definitions for Pn5180 specific HAL-Component of Reader Library Framework.
file | phhalHw_Pn5180_Wait.h
Internal definitions for Pn5180 specific HAL-Component of Reader Library Framework.


NXP NFC Reader Library: Sw Directory Reference

  • comps
  • phalMfp
  • src
  • Sw
Sw Directory Reference

Files

file | phalMfp_Sw.h
Software MIFARE Plus(R) Application Component of Reader Library Framework.
file | phalMfp_Sw_Int.h
Internal functions of Software implementation of MIFARE (R) application layer.


NXP NFC Reader Library: DUT Directory Reference

  • comps
  • phpalSli15693
  • src
  • DUT
DUT Directory Reference

Files

file phpalSli15693_DUT.h
Software ISO14443-4 DUT Component of Basic Function Library Framework.


NXP NFC Reader Library: Rc632 Directory Reference

  • comps
  • phKeyStore
  • src
  • Rc632
Rc632 Directory Reference

Files

file | phKeyStore_Rc632.h
RC632 functions of Reader Library Framework.
file | phKeyStore_Rc632_Int.h
RC632 functions of Reader Library Framework.


NXP NFC Reader Library: src Directory Reference

  • comps
  • phpalSli15693
  • src
src Directory Reference

Directories

Generated by doxygen 1.8.12


NXP NFC Reader Library: external Directory Reference

  • comps
  • phbalReg
  • src
  • Visa
  • external
external Directory Reference


NXP NFC Reader Library: SamAV2_X Directory Reference

  • comps
  • phpalI14443p4a
  • src
  • SamAV2_X
SamAV2_X Directory Reference

Files

file | phpalI14443p4a_SamAV2_X.h
SamAV2 ISO14443-4A Component of Reader Library Framework.
file | phpalI14443p4a_SamAV2_X_Int.h
Internal definitions for SamAV2 ISO14443-4A Component of Reader Library Framework.


NXP NFC Reader Library: Sw Directory Reference

  • comps
  • phpalI14443p3a
  • src
  • Sw
Sw Directory Reference

Files

file | phpalI14443p3a_Sw.h
Software ISO14443-3A Component of Reader Library Framework.
file | phpalI14443p3a_Sw_Int.h
Internal definitions for Software ISO14443-3A Component of Reader Library Framework.


NXP NFC Reader Library: Sw Directory Reference

  • comps
  • phalMfdf
  • src
  • Sw
Sw Directory Reference


NXP NFC Reader Library: SamAV2_X Directory Reference

  • comps
  • phpalMifare
  • src
  • SamAV2_X
SamAV2_X Directory Reference

Files

file | phpalMifare_SamAV2_X.h
Software MIFARE(R) Component of Reader Library Framework.
file | phpalMifare_SamAV2_X_Int.h
Internal functions of Software implementation of MIFARE (R) protocol layer.


NXP NFC Reader Library: phalMful Directory Reference

  • comps
  • phalMful
phalMful Directory Reference

Directories

Generated by doxygen 1.8.12


NXP NFC Reader Library: PcscWin Directory Reference

  • comps
  • phbalReg
  • src
  • PcscWin
PcscWin Directory Reference

Files

file | phbalReg_PcscWin.h
PCSC (Windows) BAL Component of Reader Library Framework.
file | phbalReg_PcscWin_Int.h
Internal definitions for PCSC (Windows) BAL Component of Reader Library Framework.


NXP NFC Reader Library: Sw Directory Reference

  • comps
  • phCidManager
  • src
  • Sw
Sw Directory Reference

Files

file phCidManager_Sw.h
Software Cid Manager Component of Reader Library Framework.


NXP NFC Reader Library: phalMfdf Directory Reference

  • comps
  • phalMfdf
phalMfdf Directory Reference

Directories

Generated by doxygen 1.8.12


NXP NFC Reader Library: Stub Directory Reference

  • comps
  • phpalMifare
  • src
  • Stub
Stub Directory Reference

Files

file phpalMifare_Stub.h
Stub MIFARE(R) Component of Reader Library Framework.


NXP NFC Reader Library: LinuxKernelSpi Directory Reference

  • comps
  • phbalReg
  • src
  • LinuxKernelSpi
LinuxKernelSpi Directory Reference

Files

file phbalReg_LinuxKernelSpi.h
phbalReg_LinuxKernel.h: BAL for linux Kernel Mode


NXP NFC Reader Library: Sw Directory Reference

  • comps
  • phalMfc
  • src
  • Sw
Sw Directory Reference

Files

file phalMfc_Sw.h
Software MIFARE(R) Application Component of Reader Library Framework.


NXP NFC Reader Library: src Directory Reference

  • comps
  • phbalReg
  • src
src Directory Reference

Directories

directory Visa


NXP NFC Reader Library: KinetisSPI Directory Reference

  • comps
  • phbalReg
  • src
  • KinetisSPI
KinetisSPI Directory Reference

Files

file phbalReg_KinetisSpi.h
BAL Stub Component of Reader Library Framework.


NXP NFC Reader Library: SerialWin Directory Reference

  • comps
  • phbalReg
  • src
  • SerialWin
SerialWin Directory Reference

Files

file | phbalReg_SerialWin.h
RS232 (Windows) BAL Component of Reader Library Framework.
file | phbalReg_SerialWin_Int.h
Internal definitions for RS232 (Windows) BAL Component of Reader Library Framework.


NXP NFC Reader Library: src Directory Reference

  • comps
  • phpalI18092mT
  • src
src Directory Reference

Directories

Generated by doxygen 1.8.12


NXP NFC Reader Library: Sw Directory Reference

  • comps
  • phalI18000p3m3
  • src
  • Sw
Sw Directory Reference

Files

file | phalI18000p3m3_Sw.h
Software ISO18000-3 Mode3 Component of Reader Library Framework.
file | phalI18000p3m3_Sw_Int.h
Software ISO18000-3 Mode3 Application Layer (Internals).


NXP NFC Reader Library: phpalI14443p3a Directory Reference

  • comps
  • phpalI14443p3a
phpalI14443p3a Directory Reference


NXP NFC Reader Library: src Directory Reference

  • comps
  • phalT1T
  • src
src Directory Reference

Directories

Generated by doxygen 1.8.12


NXP NFC Reader Library: Sw Directory Reference

  • comps
  • phpalI14443p4
  • src
  • Sw
Sw Directory Reference

Files

file | phpalI14443p4_Sw.h
Software ISO14443-4 Component of Reader Library Framework.
file | phpalI14443p4_Sw_Int.h
Internal definitions for ISO14443-4 Component of Reader Library Framework.


NXP NFC Reader Library: phpalSli15693 Directory Reference

  • comps
  • phpalSli15693
phpalSli15693 Directory Reference


NXP NFC Reader Library: Sw Directory Reference

  • comps
  • phpalI18000p3m3
  • src
  • Sw
Sw Directory Reference

Files

file | phpalI18000p3m3_Sw.h
Software ISO18000-3 Mode3 Component of Reader Library Framework.
file | phpalI18000p3m3_Sw_Int.h
Software ISO18000-3 Mode3 Component of Reader Library Framework.


NXP NFC Reader Library: DUT Directory Reference

  • comps
  • phpalI14443p3a
  • src
  • DUT
DUT Directory Reference

Files

file phpalI14443p3a_DUT.h
DUT ISO14443-3A Component of Reader Library Framework.


NXP NFC Reader Library: RdFpgaV6 Directory Reference

  • comps
  • phhalHw
  • src
  • RdFpgaV6
RdFpgaV6 Directory Reference

Directories

Generated by doxygen 1.8.12


NXP NFC Reader Library: phpalFelica Directory Reference

  • comps
  • phpalFelica
phpalFelica Directory Reference


NXP NFC Reader Library: src Directory Reference

  • comps
  • phalI15693
  • src
src Directory Reference

Directories

Generated by doxygen 1.8.12


NXP NFC Reader Library: DUT Directory Reference

  • comps
  • phpalI14443p4
  • src
  • DUT
DUT Directory Reference

Files

file phpalI14443p4_DUT.h
DUT ISO14443-4 DUT Component of Basic Function Library Framework.


NXP NFC Reader Library: src Directory Reference

  • comps
  • phpalI18092mPI
  • src
src Directory Reference

Directories

Generated by doxygen 1.8.12


NXP NFC Reader Library: src Directory Reference

  • comps
  • phLog
  • src
src Directory Reference

Files

file phLog_Int.h
Internal definitions for Log Component of Reader Library Framework.


NXP NFC Reader Library: AbendSecFw Directory Reference

  • comps
  • phbalReg
  • src
  • AbendSecFw
AbendSecFw Directory Reference

Files

file phbalReg_AbendSecFw.h
RS232 (Windows) BAL Component of Reader Library Framework.


NXP NFC Reader Library: src Directory Reference

  • comps
  • phNfcLib
  • src
src Directory Reference


NXP NFC Reader Library: Rd70x Directory Reference

  • comps
  • phpalI14443p3a
  • src
  • Rd70x
Rd70x Directory Reference

Files

file phpalI14443p3a_Rd70x.h
Software ISO14443-3A Component of Reader Library Framework.


NXP NFC Reader Library: Rd710Sam Directory Reference

  • comps
  • phbalReg
  • src
  • Rd710Sam
Rd710Sam Directory Reference

Files

file | phbalReg_Rd710Sam.h
RD710Sam BAL Component of Reader Library Framework.
file | phbalReg_Rd710Sam_Int.h
Internal definitions for RD710Sam BAL Component of Reader Library Framework.


NXP NFC Reader Library: inc Directory Reference

  • comps
  • phacDiscLoop
  • tst
  • utDiscLoop
  • inc
inc Directory Reference


NXP NFC Reader Library: src Directory Reference

  • comps
  • phceT4T
  • src
src Directory Reference

Directories

Generated by doxygen 1.8.12


NXP NFC Reader Library: SamAV2 Directory Reference

  • comps
  • phalMfdf
  • src
  • SamAV2
SamAV2 Directory Reference


NXP NFC Reader Library: src Directory Reference

  • comps
  • phalMfc
  • src
src Directory Reference

Directories

Files

file phalMfc_Int.h
Internal functions for MIFARE (R) application layer.


NXP NFC Reader Library: src Directory Reference

  • comps
  • phCryptoSym
  • src
src Directory Reference

Directories

Files

file phCryptoSym_Int.h
Internal functions of the Symmetric Cryptogpraphy Component.


NXP NFC Reader Library: DUT Directory Reference

  • comps
  • phpalI18092mPI
  • src
  • DUT
DUT Directory Reference

Files

file phpalI18092mPI_DUT.h
DUT ISO14443-3B Component of Basic Function Library Framework.


NXP NFC Reader Library: src Directory Reference

  • comps
  • phalMfp
  • src
src Directory Reference

Directories

Files

file phalMfp_Int.h
Internal functions of Software implementation of MIFARE (R) application layer.


NXP NFC Reader Library: phalMfc Directory Reference

  • comps
  • phalMfc
phalMfc Directory Reference

Directories

Generated by doxygen 1.8.12


NXP NFC Reader Library: Stub Directory Reference

  • comps
  • phCryptoRng
  • src
  • Stub
Stub Directory Reference

Files

file phCryptoRng_Stub.h
Software specific HAL-Component of Reader Library Framework.