User manual

NXP Semiconductors
UM10663
NXP Reader Library User Manual
UM10663
All information provided in this document is subject to legal disclaimers.
© NXP B.V. 2013. All rights reserved.
User Manual
COMPANY PUBLIC
Rev. 1.224 July 2013
257412
28 of 47
function, where SAK == 0x04 provokes next cascade level to obtain complete UID by
Anti-collision function
phpalI14443p3a_Anticollision()
.
returnValues:
PH_ERR_PROTOCOL_ERROR:
Disagreement between first byte of UID and SAK. First byte of
UID
pUidIn[0] == PHPAL_I14443P3A_CASCADE_TAG
together with
SAK != 0x04
or vice versa.
PH_ERR_SUCCESS
- operation successful.
Other: depending on implementation and underlaying component.
2.3.7 Exchange
- phpalI14443p3a_Exchange()
In comparison with PCD CLRC663 native commands performing functions are
ISO/IEC14443p3 related functions more complex and exploit different communication
principle to achieve correct performing of particular ISO operation. PCD transmits partial
command to PICC (if any), afterwards PCD receives eventual reply from PICC. Common
issue for all ISO/IEC14443p3A related functions is bidirectional communication (half-
duplex base) between PCD and PICC. Exchange function performs transmission and
reception respectively, via suitably exploiting native Transceive command and additional
register settings ensuring flawless communication.
Note:
Although ISO/IEC14443-3A functions directly implement
phhalHw_Exchange()
function, in this section it is described another one (from PAL layer), which implements
that function also.
phStatus_t phpalI14443p3a_Exchange(
void * pDataParams, [In]
uint16_t wOption, [In]
uint8_t * pTxBuffer, [In]
uint16_t wTxLength, [In]
uint8_t ** ppRxBuffer, [Out]
uint16_t * pRxLength ); [Out]
*pDataParams: pointer to the PAL layer parameter structure.
wOption: all ISO/IEC14443p3 functions pass default parameter EXCHANGE_DEFAULT
*pTxBuffer: pointer to data array to be transmitted. Actually, this array contains PICC
command defined by byte code and data for PICC.
wTxLength: number of data bytes to be transmitted. If function performing a card
command calls this function, then this variable is one greater than length of data to be
transmitted, due to length of command itself. Developer does not need to care about this,
command related functions handles it automatically.
**ppRxBuffer: pointer to pointer to received data.
*pRxLength: pointer to address, where information about received data is passed.
returnValues:
PH_ERR_SUCCESS
- operation successful.
Other: depending on implementation and underlaying component.
2.3.8 Halt A
- phStatus_t phpalI14443p3a_HaltA()
After MIFARE card has been activated one option is to get the card into Halt state. The
card can be later reactivated by WakeUpA or
phpalI14443p3a_ActivateCard()
function.
phStatus_t phpalI14443p3a_HaltA(