ST Expansion SW Team / RFAL

Dependents:   mbed-os-nfc05a1

Embed: (wiki syntax)

« Back to documentation index

rfal_isoDep.h File Reference

rfal_isoDep.h File Reference

Implementation of ISO-DEP protocol. More...

Go to the source code of this file.

Data Structures

struct  rfalIsoDepRats
struct  rfalIsoDepAts
struct  rfalIsoDepPpsReq
struct  rfalIsoDepPpsRes
struct  rfalIsoDepAttribCmd
struct  rfalIsoDepAttribRes
union  rfalIsoDepActivation
struct  rfalIsoDepInfo
struct  rfalIsoDepDevice
struct  rfalIsoDepAttribResParam
struct  rfalIsoDepAtsParam
struct  rfalIsoDepBufFormat
struct  rfalIsoDepApduBufFormat
struct  rfalIsoDepListenActvParam
struct  rfalIsoDepTxRxParam
struct  rfalIsoDepApduTxRxParam

Enumerations

enum  rfalIsoDepFSxI {
  RFAL_ISODEP_FSXI_16 = 0, RFAL_ISODEP_FSXI_24 = 1, RFAL_ISODEP_FSXI_32 = 2, RFAL_ISODEP_FSXI_40 = 3,
  RFAL_ISODEP_FSXI_48 = 4, RFAL_ISODEP_FSXI_64 = 5, RFAL_ISODEP_FSXI_96 = 6, RFAL_ISODEP_FSXI_128 = 7,
  RFAL_ISODEP_FSXI_256 = 8, RFAL_ISODEP_FSXI_512 = 9, RFAL_ISODEP_FSXI_1024 = 10, RFAL_ISODEP_FSXI_2048 = 11,
  RFAL_ISODEP_FSXI_4096 = 12
}
enum  rfalIsoDepFSx {
  RFAL_ISODEP_FSX_16 = 16, RFAL_ISODEP_FSX_24 = 24, RFAL_ISODEP_FSX_32 = 32, RFAL_ISODEP_FSX_40 = 40,
  RFAL_ISODEP_FSX_48 = 48, RFAL_ISODEP_FSX_64 = 64, RFAL_ISODEP_FSX_96 = 96, RFAL_ISODEP_FSX_128 = 128,
  RFAL_ISODEP_FSX_256 = 256, RFAL_ISODEP_FSX_512 = 512, RFAL_ISODEP_FSX_1024 = 1024, RFAL_ISODEP_FSX_2048 = 2048,
  RFAL_ISODEP_FSX_4096 = 4096
}

Functions

void rfalIsoDepInitialize (void)
 Initialize the ISO-DEP protocol.
void rfalIsoDepInitializeWithParams (rfalComplianceMode compMode, uint8_t maxRetriesR, uint8_t maxRetriesS, uint8_t maxRetriesI, uint8_t maxRetriesRATS)
 Initialize the ISO-DEP protocol.
uint16_t rfalIsoDepFSxI2FSx (uint8_t fsxi)
 FSxI to FSx.
uint32_t rfalIsoDepFWI2FWT (uint8_t fwi)
 FWI to FWT.
bool rfalIsoDepIsRats (uint8_t *buf, uint8_t bufLen)
 Check if the buffer data contains a valid RATS command.
bool rfalIsoDepIsAttrib (uint8_t *buf, uint8_t bufLen)
 Check if the buffer data contains a valid ATTRIB command.
ReturnCode rfalIsoDepListenStartActivation (rfalIsoDepAtsParam *atsParam, rfalIsoDepAttribResParam *attribResParam, uint8_t *buf, uint16_t bufLen, rfalIsoDepListenActvParam rxParam, SPI *mspiChannel, ST25R3911 *mST25, DigitalOut *gpio_cs, InterruptIn *IRQ, DigitalOut *fieldLED_01, DigitalOut *fieldLED_02, DigitalOut *fieldLED_03, DigitalOut *fieldLED_04, DigitalOut *fieldLED_05, DigitalOut *fieldLED_06)
 Start Listen Activation Handling.
ReturnCode rfalIsoDepListenGetActivationStatus (SPI *mspiChannel, ST25R3911 *mST25, DigitalOut *gpio_cs, InterruptIn *IRQ, DigitalOut *fieldLED_01, DigitalOut *fieldLED_02, DigitalOut *fieldLED_03, DigitalOut *fieldLED_04, DigitalOut *fieldLED_05, DigitalOut *fieldLED_06)
 Get the current Activation Status.
uint16_t rfalIsoDepGetMaxInfLen (void)
 Get the ISO-DEP Communication Information.
ReturnCode rfalIsoDepStartTransceive (rfalIsoDepTxRxParam param)
 ISO-DEP Start Transceive.
ReturnCode rfalIsoDepGetTransceiveStatus (SPI *mspiChannel, ST25R3911 *mST25, DigitalOut *gpio_cs, InterruptIn *IRQ, DigitalOut *fieldLED_01, DigitalOut *fieldLED_02, DigitalOut *fieldLED_03, DigitalOut *fieldLED_04, DigitalOut *fieldLED_05, DigitalOut *fieldLED_06)
 Get the Transceive status.
ReturnCode rfalIsoDepStartApduTransceive (rfalIsoDepApduTxRxParam param)
 ISO-DEP Start APDU Transceive.
ReturnCode rfalIsoDepGetApduTransceiveStatus (SPI *mspiChannel, ST25R3911 *mST25, DigitalOut *gpio_cs, InterruptIn *IRQ, DigitalOut *fieldLED_01, DigitalOut *fieldLED_02, DigitalOut *fieldLED_03, DigitalOut *fieldLED_04, DigitalOut *fieldLED_05, DigitalOut *fieldLED_06)
 Get the APDU Transceive status.
ReturnCode rfalIsoDepRATS (rfalIsoDepFSxI FSDI, uint8_t DID, rfalIsoDepAts *ats, uint8_t *atsLen, SPI *mspiChannel, ST25R3911 *mST25, DigitalOut *gpio_cs, InterruptIn *IRQ, DigitalOut *fieldLED_01, DigitalOut *fieldLED_02, DigitalOut *fieldLED_03, DigitalOut *fieldLED_04, DigitalOut *fieldLED_05, DigitalOut *fieldLED_06)
 ISO-DEP Send RATS.
ReturnCode rfalIsoDepPPS (uint8_t DID, rfalBitRate DSI, rfalBitRate DRI, rfalIsoDepPpsRes *ppsRes, SPI *mspiChannel, ST25R3911 *mST25, DigitalOut *gpio_cs, InterruptIn *IRQ, DigitalOut *fieldLED_01, DigitalOut *fieldLED_02, DigitalOut *fieldLED_03, DigitalOut *fieldLED_04, DigitalOut *fieldLED_05, DigitalOut *fieldLED_06)
 ISO-DEP Send PPS.
ReturnCode rfalIsoDepATTRIB (uint8_t *nfcid0, uint8_t PARAM1, rfalBitRate DSI, rfalBitRate DRI, rfalIsoDepFSxI FSDI, uint8_t PARAM3, uint8_t DID, uint8_t *HLInfo, uint8_t HLInfoLen, uint32_t fwt, rfalIsoDepAttribRes *attribRes, uint8_t *attribResLen, SPI *mspiChannel, ST25R3911 *mST25, DigitalOut *gpio_cs, InterruptIn *IRQ, DigitalOut *fieldLED_01, DigitalOut *fieldLED_02, DigitalOut *fieldLED_03, DigitalOut *fieldLED_04, DigitalOut *fieldLED_05, DigitalOut *fieldLED_06)
 ISO-DEP Send ATTRIB.
ReturnCode rfalIsoDepDeselect (SPI *mspiChannel, ST25R3911 *mST25, DigitalOut *gpio_cs, InterruptIn *IRQ, DigitalOut *fieldLED_01, DigitalOut *fieldLED_02, DigitalOut *fieldLED_03, DigitalOut *fieldLED_04, DigitalOut *fieldLED_05, DigitalOut *fieldLED_06)
 Deselects PICC.
ReturnCode rfalIsoDepPollAHandleActivation (rfalIsoDepFSxI FSDI, uint8_t DID, rfalBitRate maxBR, rfalIsoDepDevice *isoDepDev, SPI *mspiChannel, ST25R3911 *mST25, DigitalOut *gpio_cs, InterruptIn *IRQ, DigitalOut *fieldLED_01, DigitalOut *fieldLED_02, DigitalOut *fieldLED_03, DigitalOut *fieldLED_04, DigitalOut *fieldLED_05, DigitalOut *fieldLED_06)
 ISO-DEP Poller Handle NFC-A Activation.
ReturnCode rfalIsoDepPollBHandleActivation (rfalIsoDepFSxI FSDI, uint8_t DID, rfalBitRate maxBR, uint8_t PARAM1, rfalNfcbListenDevice *nfcbDev, uint8_t *HLInfo, uint8_t HLInfoLen, rfalIsoDepDevice *isoDepDev, SPI *mspiChannel, ST25R3911 *mST25, DigitalOut *gpio_cs, InterruptIn *IRQ, DigitalOut *fieldLED_01, DigitalOut *fieldLED_02, DigitalOut *fieldLED_03, DigitalOut *fieldLED_04, DigitalOut *fieldLED_05, DigitalOut *fieldLED_06)
 ISO-DEP Poller Handle NFC-B Activation.

Detailed Description

Implementation of ISO-DEP protocol.

Author:
Gustavo Patricio

This implementation was based on the following specs:

  • ISO/IEC 14443-4 2nd Edition 2008-07-15
  • NFC Forum Digital Protocol 1.1 2014-01-14

Definition in file rfal_isoDep.h.