I have checked the programming interface for the MIFARE Ultralight and TOPAZ/Jewel IC tags. The API quite nicely describes how the bytes are saved on the card, how to address the memory blocks, how to make all operations like read, read-all, use of the OTP (One Time Programmable) function, how to read ROM bytes, how to switch from idle to ready state (REQA, WUPA commands), it says if commands are CRC protected, how to access the tag UID, etc.
When stared to program the NFC reader (ACR122U or SCL010) I found that all communication between PCD (reader) an PICC (tag) starts with the ATR (Answer-To-Reset) command, which is as described on Internet a command that the PCD sends to PICC for identification purposes.
But none of the tags documentation mentions the ATR command – all communication with tags when they become powered (PQR) starts with REQA, WUPA commands in order to switch the card to the Ready mode.
My understanding is that ATR is built by PC/SC based on the NFC card the reader communicated with. Once the reader detect what type of technology is the tag based on it creates the ATR. Also according to documentation ATR for different NFC readers are different for the same NFC tags.
Am I right? Does the PC/SC build the ATR?
BR STeN