Differenza tra 'Comando di trasmissione diretta' (ACR122U) e 'PC_to_RDR_Escape' (ACR1251U)
-
02-01-2020 - |
Domanda
Con un ACR122U so che puoi trasmettere messaggi diretti al controller NFC (PN532) utilizzando il comando di trasmissione diretta: 0xff 0x00 0x00 0x00...
.
Quando leggo il manuale dell'ACR1251U dice: I comandi di controllo delle periferiche del lettore vengono implementati utilizzando PC_to_RDR_Escape.
Cosa significa esattamente?Ciò significa che non è possibile inviare messaggi diretti al controller NFC?Se è possibile, dove puoi trovare quale controller NFC utilizza?
Qualsiasi informazione è benvenuta!
Grazie in anticipo.
Soluzione
Il "comando di trasmissione diretta" è un formato APDU che consente di inviare comandi nativi al controller NFC PN532 incorporato nel dispositivo di lettura ACR122U.Quindi questo definisce fondamentalmente il wrapper per adattare i comandi nativi al protocollo basato su APDU con cui parli al lettore su PC/SC (e CCID):
0xFF 0x00 0x00 0x00 <Lc> <DATA>
Dove <DATA>
è in realtà un comando per il PN532.
PC_to_RDR_Escape
è il messaggio CCID (classe/protocollo del dispositivo parlato tramite USB) che viene richiamato dallo stack PC/SC quando si invia un comando di escape.Ad esempio, se utilizzi le API Java SmartcardIO Card.transmitControlCommand()
metodo, lo stack PC/SC invierà un file PC_to_RDR_Escape
messaggio tramite USB.Il lettore risponde a questo messaggio con a RDR_to_PC_Escape
risposta.
Allo stesso modo se usi il metodo CardChannel.transmit()
metodo, questo fa sì che lo stack PS/SC emetta uno (o più?) PC_to_RDR_XfrBlock
messaggi tramite USB.
Come hai scoperto in questa risposta, sembra che utilizzeresti il formato APDU del "comando di trasmissione diretta" per entrambi i metodi di scambio dei comandi.
La necessità di utilizzare il comando escape o il comando di trasmissione sembra dipendere dalla versione firmware del lettore.Ad esempio, per la versione firmware 101, 102 (e 103?) in genere è necessario solo il comando di trasmissione, ma le versioni di prossima generazione (2xx) sembrano preferire/richiedere (se non emulano un ATR) l'approccio del comando di fuga .