Niemals ATQ verwenden! Verwenden Sie SAK nur für Nicht-14443-4-Karten (z. B. Mifare Classic)! ATS ist auch eine schlechte Übung, da verschiedene Kartenanbieter es anders einstellen können. Jetzt
, wie es geht:
Nur Art und Weise, wie über Karte zu denken und nicht bekommen, verrückt ist es vorstellen, wie es voll Kommunikations-Stack (siehe OSI-Modell) ist.
Denken Sie daran, dass es Ihr Ziel ist, zwei Anwendungen zu verbinden, eine auf der Karte und eine auf Ihrem Computer. 14443-4 bietet Mechanismen zum Senden von Nachrichten und kümmert sich nicht um deren Inhalt.
Obendrein gibt es implementierte Schnittstellen verschiedener Karten und wenn beide Seiten: Karten - Kartentreiber kompatibel sind, werden sie kommunizieren. Wenn nicht, wird es auf dieser Ebene Fehler geben. Sie müssen also einen anderen Kartentreiber verwenden.
komplette Kommunikations-Stack wird wie folgt aussehen:
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)
Natürlich zwischen jeder Schicht hat einige Schnittstelle.
Wenn Sie zwei Anwendungen haben, die kommunizieren möchten, versuchen Sie einen und versuchen Sie dann Sekunde.
Fehler auf Anwendungsebene => gibt es keine kompatible Anwendung auf der Karte
Fehler auf CardProtocol Ebene => es nicht kompatible Karte
Punkt ist Ihre Kommunikation auf allen Ebenen succed hat also nicht Sorgen Sie sich, um zu versuchen, mit Karte durch nicht kompatibles Protokoll zu kommunizieren - wenn Sie (durch irgendein Wunder) keinen Fehler auf KarteProtocol Niveau erhalten, erhalten Sie bestimmt einen auf Ihrer Anwendungsebene und Ergebnis ist das selbe. Viel Glück!
P.S. Es gibt einige komplexere Situationen wie "eine App über zwei Protokolle/Kartentypen", aber sie können auch leicht gehandhabt werden.
Ja, ich weiß das, aber ATS kann in Mifare Plus Karten geändert werden, also ist es nicht 100% zuverlässig. Und ich vermute, dass es andere Karten (nicht Mifare-Familie) geben kann, die denselben SAK haben. NXP empfiehlt, nur Bit 6 von SAK auszuwerten, um festzustellen, ob die Karte ISO 14443-4 unterstützt und andere Bits ignoriert. –
Wahrscheinlich ist die beste Vorgehensweise, einen "pragmatischen" Ansatz zu implementieren: zuerst SAK und ATS (so dass Sie die meisten Karten abdecken) sowie einige Testbefehle für die Eckfälle. Muss Ihre Reader-Software alle generischen Mifare Plus-Karten unterstützen oder nur solche, die für eine bestimmte Anwendung oder Dienstleistung personalisiert sind? – mictter
Ich denke, es wird ausreichen, um die personalisierten, sowie neue leere Karten für die Personalisierung zu behandeln. –