These Components implement the ISO/IEC 14443-3 Type-A contactless protocol. More...

Modules | |
| Component : Software | |
| Component : Rd70x | |
| Component : Rd710 | |
| Component : Pcsc | |
| Component : SamAV2_X | |
| Component : SamAV3_X | |
Macros | |
| #define | PHPAL_I14443P3A_CASCADE_LEVEL_1 0x93 |
| Cascade Level 1 code for ISO14443-3A anticollision/select command. | |
| #define | PHPAL_I14443P3A_CASCADE_LEVEL_2 0x95 |
| Cascade Level 2 code for ISO14443-3A anticollision/select command. | |
| #define | PHPAL_I14443P3A_CASCADE_LEVEL_3 0x97 |
| Cascade Level 3 code for ISO14443-3A anticollision/select command. | |
| #define | PHPAL_I14443P3A_TIMEOUT_DEFAULT_MS 10 |
| Timeout after card selection in milliseconds. | |
Functions | |
| phStatus_t | phpalI14443p3a_RequestA (void *pDataParams, uint8_t *pAtqa) |
| Perform a ISO14443-3A Request A command. More... | |
| phStatus_t | phpalI14443p3a_RequestS (void *pDataParams, uint8_t *pAtqs) |
| Perform a ISO14443-3A Request S command. More... | |
| phStatus_t | phpalI14443p3a_WakeUpA (void *pDataParams, uint8_t *pAtqa) |
| Perform a ISO14443-3A Wakeup A command. More... | |
| phStatus_t | phpalI14443p3a_WakeUpS (void *pDataParams, uint8_t *pAtqs) |
| Perform a ISO14443-3A Wakeup S 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/WupA or ReqS/WupS 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... | |
| phStatus_t | phpalI14443p3a_GetConfig (void *pDataParams, uint16_t wConfig, uint16_t *pValue) |
| Perform a GetConfig command. More... | |
| phStatus_t | phpalI14443p3a_SetConfig (void *pDataParams, uint16_t wConfig, uint16_t wValue) |
| Perform a SetConfig command. More... | |
The configuration to be used for SetConfig / GetConfig. | |
| #define | PHPAL_I14443P3A_SILENT_MODE 0x00A1U |
| Option for Get/Set Config to enable/disable Silent mode activation (phpalI14443p3a_ActivateCard). More... | |
| #define | PHPAL_I14443P3A_SILENT_MODE_DISABLED 0x00U |
| Silent mode is disabled. More... | |
| #define | PHPAL_I14443P3A_SILENT_MODE_ENABLED 0x01U |
| Silent mode is enabled. More... | |
These Components implement the ISO/IEC 14443-3 Type-A contactless protocol.
| #define PHPAL_I14443P3A_SILENT_MODE 0x00A1U |
Option for Get/Set Config to enable/disable Silent mode activation (phpalI14443p3a_ActivateCard).
By default the configuration will be disabled.
| #define PHPAL_I14443P3A_SILENT_MODE_DISABLED 0x00U |
Silent mode is disabled.
ReqA / WupA command will be used. This is the default option for PHPAL_I14443P3A_SILENT_MODE configuration.
| #define PHPAL_I14443P3A_SILENT_MODE_ENABLED 0x01U |
Silent mode is enabled.
ReqS / WupS command will be used.
| phStatus_t phpalI14443p3a_RequestA | ( | void * | pDataParams, |
| uint8_t * | pAtqa | ||
| ) |
Perform a ISO14443-3A Request A 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.
| PH_ERR_SUCCESS | Operation successful. |
| PH_ERR_PROTOCOL_ERROR | Invalid response received. |
| Other | Depending on implementation and underlaying component. |
| [in] | pDataParams | [In] Pointer to this layer's parameter structure. |
| [out] | pAtqa | [Out] Response of RequestA command. The buffer cannot be null and size should be 2 bytes long. |
| phStatus_t phpalI14443p3a_RequestS | ( | void * | pDataParams, |
| uint8_t * | pAtqs | ||
| ) |
Perform a ISO14443-3A Request S command.
This command is support for software mode only.
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.
| PH_ERR_SUCCESS | Operation successful. |
| PH_ERR_PROTOCOL_ERROR | Invalid response received. |
| Other | Depending on implementation and underlaying component. |
| [in] | pDataParams | [In] Pointer to this layer's parameter structure. |
| [out] | pAtqs | [Out] Response of RequestS command. The buffer cannot be null and size should be 2 bytes long. |
| phStatus_t phpalI14443p3a_WakeUpA | ( | void * | pDataParams, |
| uint8_t * | pAtqa | ||
| ) |
Perform a ISO14443-3A Wakeup A 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.
| PH_ERR_SUCCESS | Operation successful. |
| PH_ERR_PROTOCOL_ERROR | Invalid response received. |
| Other | Depending on implementation and underlaying component. |
| [in] | pDataParams | [In] Pointer to this layer's parameter structure. |
| [out] | pAtqa | [Out] Response of WakeUpA command. The buffer cannot be null and size should be 2 bytes long. |
| phStatus_t phpalI14443p3a_WakeUpS | ( | void * | pDataParams, |
| uint8_t * | pAtqs | ||
| ) |
Perform a ISO14443-3A Wakeup S command.
This command is support for software mode only.
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.
| PH_ERR_SUCCESS | Operation successful. |
| PH_ERR_PROTOCOL_ERROR | Invalid response received. |
| Other | Depending on implementation and underlaying component. |
| [in] | pDataParams | [In] Pointer to this layer's parameter structure. |
| [out] | pAtqs | [Out] Response of WakeUpS command. The buffer cannot be null and size should be 2 bytes long. |
| phStatus_t phpalI14443p3a_HaltA | ( | void * | pDataParams | ) |
Perform a ISO14443-3A Halt command.
| PH_ERR_SUCCESS | Operation successful. |
| PH_ERR_PROTOCOL_ERROR | Invalid response received. |
| Other | Depending on implementation and underlaying component. |
| [in] | pDataParams | [In] Pointer to this layer's parameter structure. |
| 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.
| PH_ERR_SUCCESS | Operation successful. |
| PH_ERR_PROTOCOL_ERROR | Invalid response received. |
| PH_ERR_FRAMING_ERROR | Bcc invalid. |
| Other | Depending on implementation and underlaying component. |
| [in] | pDataParams | [In] Pointer to this layer's parameter structure. |
| [in] | bCascadeLevel | [In] Cascade level code. |
| [in] | pUidIn | [In] Known Uid, can be NULL; uint8_t[0-4]. |
| [in] | bNvbUidIn | [In] Number of valid bits of UidIn. MSB codes the valid bytes, LSB codes the valid bits. |
| [out] | pUidOut | [Out] Complete Uid; uint8_t[4]. |
| [out] | pNvbUidOut | [Out] Number of valid bits of UidOut. MSB codes the valid bytes, LSB codes the valid bits. |
| phStatus_t phpalI14443p3a_Select | ( | void * | pDataParams, |
| uint8_t | bCascadeLevel, | ||
| uint8_t * | pUidIn, | ||
| uint8_t * | pSak | ||
| ) |
Perform a ISO14443-3A Select command.
| PH_ERR_SUCCESS | Operation successful. |
| PH_ERR_PROTOCOL_ERROR | Invalid response received. |
| Other | Depending on implementation and underlaying component. |
| [in] | pDataParams | [In] Pointer to this layer's parameter structure. |
| [in] | bCascadeLevel | [In] Cascade level code. |
| [in] | pUidIn | [In] Uid; uint8_t[4]. |
| [out] | pSak | [Out] Select Acknowledge; uint8_t. |
| 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/WupA or ReqS/WupS and Anticollision/Select commands for all cascade levels.
| 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 underlaying component. |
| [in] | pDataParams | [In] Pointer to this layer's parameter structure. |
| [in] | pUidIn | [In] Known Uid, can be NULL if bLenUidIn is 0; uint8_t[4/7/10]. |
| [in] | bLenUidIn | [In] Length of known Uid; 0/4/7/10. |
| [out] | pUidOut | [Out] Complete Uid; uint8_t[10]. |
| [out] | pLenUidOut | [Out] Length of Uid; 4/7/10. |
| [out] | pSak | [Out] Select Acknowledge; uint8_t. |
| [out] | pMoreCardsAvailable | [Out] Whether there are more cards in the field or not; uint8_t. |
| 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:
Alternatively, the following bits can be combined:
| PH_ERR_SUCCESS | Operation successful. |
| Other | Depending on implementation and underlaying component. |
| [in] | pDataParams | [In] Pointer to this layer's parameter structure. |
| [in] | wOption | [In] Option parameter. |
| [in] | pTxBuffer | [In] Data to transmit. |
| [in] | wTxLength | [In] Length of data to transmit. |
| [out] | ppRxBuffer | [Out] Pointer to received data. |
| [out] | pRxLength | [Out] number of received data bytes. |
| phStatus_t phpalI14443p3a_GetSerialNo | ( | void * | pDataParams, |
| uint8_t * | pUidOut, | ||
| uint8_t * | pLenUidOut | ||
| ) |
Retrieve the serial number.
| PH_ERR_SUCCESS | Operation successful. |
| PH_ERR_USE_CONDITION | No Serial number available at the moment. |
| [in] | pDataParams | [In] Pointer to this layer's parameter structure. |
| [out] | pUidOut | [Out] Last Complete Uid; uint8_t[10]. |
| [out] | pLenUidOut | [Out] Length of Uid; 4/7/10. |
| phStatus_t phpalI14443p3a_GetConfig | ( | void * | pDataParams, |
| uint16_t | wConfig, | ||
| uint16_t * | pValue | ||
| ) |
Perform a GetConfig command.
| PH_ERR_SUCCESS | Operation successful. |
| Other | Depending on implementation and underlying component. |
| [in] | pDataParams | [In] Pointer to this layer's parameter structure. |
| [in] | wConfig | [In] Configuration to read. Will be one of the below values. |
| [out] | pValue | [Out] The value for the mentioned configuration. |
| phStatus_t phpalI14443p3a_SetConfig | ( | void * | pDataParams, |
| uint16_t | wConfig, | ||
| uint16_t | wValue | ||
| ) |
Perform a SetConfig command.
| PH_ERR_SUCCESS | Operation successful. |
| Other | Depending on implementation and underlying component. |
| [in] | pDataParams | [In] Pointer to this layer's parameter structure. |
| [in] | wConfig | [In] Configuration to set. Will be one of the below values. |
| [in] | wValue | [In] The value for the mentioned configuration. |