Non utilizzare mai ATQ! Usa SAK solo per carte non 14443-4 (ad esempio Mifare Classic)! L'ATS è anche una cattiva pratica in quanto il venditore di schede diverse può impostarlo in modo diverso.
Ora come farlo:
solo modo per pensare a carte e non si ottiene folle è immaginare le cose come stanno stack di comunicazione completo (vedi modello OSI).
Ricorda che il tuo obiettivo è connettere due applicazioni, una nella scheda e una nel computer. 14443-4 fornisce un meccanismo per l'invio di messaggi e non si preoccupa del suo contenuto.
Sopra di esso sono implementate interfacce di diverse carte e se entrambi i lati: card - carddriver sono compatibili, comunicano. In caso contrario, ci saranno errori a quel livello. Quindi sai che dovrai usare un driver di scheda diverso.
completo stack di comunicazione sarà simile a questa:
Your Application
| CardProtocol/7816-4
| | 14443-4
| | | 14443
| | | | radio waves
| | | 14443 (in card)
| | 14443-4 (in card)
| CardProtocol/7816-4 (in card)
Application/Appdata (in card)
Naturalmente tra ogni strato deve essere una certa interfaccia.
Se si dispone di due applicazioni che vogliono comunicare, provare una e quindi provare secondo.
errore al livello di applicazione => non v'è alcuna applicazione compatibile sulla carta
errore al livello CardProtocol => non c'è scheda compatibile
Point è la tua comunicazione deve succed a tutti i livelli in modo da non preoccupati di provare a comunicare con la scheda tramite un protocollo non compatibile - se tu (per miracolo) non ottieni errori a livello di CardProtocol ne otterrai sicuramente una a livello di applicazione e il risultato sarà lo stesso. Buona fortuna!
P.S. Ci sono alcune situazioni più complesse come "un'app su due protocolli/tipi di schede" ma possono essere gestite facilmente.
fonte
2015-09-18 13:41:10
Sì, lo so, ma ATS può essere modificato nelle carte Mifare Plus, quindi non è affidabile al 100%. E sospetto che possano esistere altre carte (non della famiglia Mifare) che hanno lo stesso SAK. NXP consiglia di valutare solo il bit 6 di SAK per verificare se la scheda supporta ISO 14443-4 e ignorare altri bit. –
Probabilmente il miglior modo di agire sarà implementare un approccio "pragmatico": prima usare SAK e ATS (quindi coprirai la maggior parte delle carte) più alcuni comandi di prova per i casi d'angolo. Il tuo lettore software dovrà supportare tutte le schede generiche Mifare Plus o solo quelle personalizzate per una specifica applicazione o servizio? – mictter
Penso che sarà sufficiente per gestire quelli personalizzati, oltre a nuove schede vuote per la personalizzazione. –