Online Store

NDEF-Erkennung und -Zugriff – MIFARE Classic & MIFARE Plus-Tags

NDEF-Erkennung und -Zugriff #

In diesem Kapitel wird beschrieben, wie NDEF-Daten (z. B. NDEF-Nachricht) im MIFARE Classic- und MIFARE Plus-Tag gespeichert und abgerufen werden sollen.

Die NDEF-Nachricht, die in diesem Anwendungshinweis in einem MIFARE Classic und MIFARE Plus verwaltet wird, wird in einer NDEF-Nachrichten-TLV gespeichert, die als obligatorische NDEF-Nachrichten-TLV oder erste NDEF-Nachrichten-TLV bezeichnet wird. Die obligatorische NDEF-Nachrichten-TLV ist auch die NDEF-Nachrichten-TLV, die durch das NDEF-Erkennungsverfahren gefunden wurde (siehe Abschnitt 1. 4.1).

NDEF-Verwaltung #

Um NDEF-Daten (z. B. NDEF-Nachricht) innerhalb des MIFARE Classic- und MIFARE Plus-Tags zu erkennen und darauf zuzugreifen, wird der MAD zusammen mit dem GPB der NFC-Sektoren verwendet (siehe Abschnitt 2.4).

Ein Application Identifier (AID) des MAD, genannt NFC AID, wurde reserviert, um Sektoren mit NDEF-Daten zu identifizieren. Ein Sektor mit NDEF-Daten wird als NFC-Sektor bezeichnet. Die beiden Felder des NFC AID sind wie folgt festgelegt:

Der Funktionsclustercode ist gleich E1h, um den Cluster von Sektoren mit NDEF-Daten zu identifizieren, und

Der Anwendungscode ist gleich 03h, um den NFC-Sektor zu identifizieren, auf den sich diese Anwendungsnotiz bezieht.

Ein oder mehrere NFC-Sektoren KÖNNEN in einem MIFARE Classic 1k/4k-Tag vorhanden sein.

Wenn mehr als ein NFC-Sektor vorhanden ist, MÜSSEN die NFC-Sektoren zusammenhängend sein. Im Falle von MIFARE Classic 4k oder MIFARE Plus mit 4 KByte GILT es als zusammenhängend mit einer Folge von NFC-Sektoren, die den MAD-Sektor 16 einschließt.

Beispiele für zusammenhängende NFC-Sektoren sind:

  • NFC-Sektoren von Sektor 2 bis Sektor 3 und
  • NFC Sektoren von Sektor 1 bis Sektor 39. In diesem Fall ist der MAD-Sektor 16 enthalten, aber wie oben definiert, gelten die NFC-Sektoren als zusammenhängend.

Ein Beispiel für nicht zusammenhängende NFC-Sektoren ist:

  • Sektor 3 und Sektor 5 ohne Sektor 4 sind NFC-Sektoren. In diesem Fall ist Sektor 4 kein NFC-Sektor, so dass die beiden verbleibenden NFC-Sektoren nicht zusammenhängend sind.

Die NDEF-Daten MÜSSEN beginnend mit dem NFC-Sektor mit der kleinsten Sektornummer bis zum größten geschrieben werden.

Das General Purpose Byte (GPB, siehe Abschnitt 2.1 und Abschnitt 2.3) jedes NFC-Sektors enthält Informationen über die Versionsnummer des Mapping-Modells, das zum Speichern der NDEF-Daten in MIFARE Classic und MIFARE Plus verwendet wird (siehe Abschnitt 1. 1.1) und den Schreibzugriff der NFC-Sektoren. GPB IST wie in Tabelle 1 beschrieben zu kodieren.

Tabelle 1. Allgemeine Bytestruktur

msb Bit 7  Bit 6  Bit 5  Bit 4  Bit 3  Bit 2  Bit 1 lsb Bit 0
Zuordnung der Versionsnummer Zugangsbedingungen
Hauptversionsnummer Nebenversionsnummer Zugriffsbedingung lesen Schreibzugriffsbedingung

Die 4 am wenigsten signifikanten Bits (lsb) des GPB geben die Zugangsbedingungen des NFC-Sektors an:

  • Bit 2-3 gibt die Lesezugriffsbedingung an:
    • Der Wert 00b gibt an, dass der Lesezugriff ohne Sicherheit gewährt wird.
    • Der Wert 11b gibt an, dass überhaupt kein Lesezugriff gewährt wird.
    • Jeder andere Wert gibt an, dass Vendor-Sicherheitsoperationen erforderlich sind, um Lesezugriff zu gewähren, d. h. proprietär.
  • Bit 0-1 gibt die Schreibzugriffsbedingung an:
    • Der Wert 00b gibt den Schreibzugriff an, der ohne Sicherheit gewährt wird.
    • Der Wert 11b gibt an, dass überhaupt kein Schreibzugriff gewährt wird.
    • Jeder andere Wert gibt an, dass Vendor-Sicherheitsoperationen erforderlich sind, um Schreibzugriff zu gewähren, d. h. proprietär.

Die 4 Most Significant Bits (msb) geben die Mapping-Versionsnummer an (siehe Abschnitt 1. 1.1):

  • Bit 7-6 (die 2 msb des Mapping-Versionsnummernfelds) gibt die Hauptversionsnummer an.
  • Bit 5-4 (das Feld 2 lsb der Zuordnungsversionsnummer) gibt die Nebenversionsnummer an.

Innerhalb eines MIFARE Classic- und MIFARE Plus-Tags werden die NFC-Sektoren, die die obligatorische NDEF-Nachricht TLV enthalten, mit einer Lesezugriffsbedingung von 00h und Schreibzugriffsbedingungen von entweder 00b oder 11b gesetzt (siehe Abschnitt 1. 3).

Das Reader-Gerät, das diese Anwendung implementiert, MUSS MIFARE Classic und MIFARE Plus-Tags mit einer Hauptversionsnummer gleich 01b und der Nebenversionsnummer gleich 00b verwalten, d.h. Mapping-Version 1.0.

Versionsbehandlung #

Der GPB der NFC-Sektoren enthält die Mapping-Versionsnummer des angewendeten Mapping-Modells des MIFARE Classic 1k/4k- oder MIFARE Plus-Tags. Die Mapping-Versionsnummer wird mit zwei Nummern angegeben: Hauptversionsnummer und Nebenversionsnummer.

Die Handhabung der verschiedenen Haupt- und Nebenversionsnummern des MIFARE Classic- oder MIFARE Plus-Tags (MSVNo genannt) und des im Reader-Gerät implementierten Tags (NFCDevVNo genannt) wird in den 4 Fällen von Tabelle 12 erläutert.

Tabelle 12. Umgang mit den Versionsnummern des Mapping-Dokuments

Nein Fall der Versionsnummer Handhabung
1 Major NFCDevVNo ist gleich Major MSVNo, und

minor NFCDevVNo ist größer oder gleich minor MSVNo

Das Lesegerät MUSS auf das MIFARE Classic- oder MIFARE Plus-Tag zugreifen und alle Funktionen des angewendeten Mapping-Dokuments auf dieses MIFARE Classic- oder MIFARE Plus-Tag verwenden.
2 Wenn major NFCDevVNo gleich major MSVNo ist, und

minor NFCDevVNo ist niedriger als minor MSVNo

Möglicherweise kann nicht auf alle Funktionen des MIFARE Classic oder MIFARE Plus Tags zugegriffen werden. Das Lesegerät MUSS alle seine Funktionen nutzen und auf dieses MIFARE Classic- oder MIFARE Plus-Tag zugreifen.
 

Nein Fall der Versionsnummer Handhabung
3 Wenn Major NFCDevVNo kleiner als Major MSVNo ist Inkompatibles Datenformat. Das Reader-Gerät kann die MIFARE Classic- oder MIFARE Plus-Tag-Daten nicht verstehen. Das Lesegerät MUSS dieses MIFARE Classic- oder MIFARE Plus-Tag ablehnen.
4 Wenn Major NFCDevVNo größer als Major MSVNo ist Das Reader-Gerät implementiert möglicherweise zusätzlich zu seiner Hauptversion die Unterstützung für frühere Versionen dieser Spezifikation. Falls das Reader-Gerät die Unterstützung der vorherigen Version hat, MUSS es auf das MIFARE Classic- oder MIFARE Plus-Tag zugreifen. Im Gegenteil, falls das Lesegerät keine Unterstützung von der vorherigen Version hat, MUSS es das MIFARE Classic- oder MIFARE Plus-Tag ablehnen.

NDEF-Speicher #

Das Datenformat der NDEF-Nachricht ist in [NDEF]definiert. Die NDEF-Nachricht MUSS im Wertfeld der NDEF-Nachrichten-TLV (siehe Abschnitt 2.6.1) unter Verwendung eines oder mehrerer NFC-Sektoren gespeichert werden. NFC-Sektoren werden von der NFC-AID in dem/den MAD-Sektor(en) identifiziert.

Lebenszyklus #

Die NFC-Sektoren eines MIFARE Classic- oder MIFARE Plus-Tags KÖNNEN sich in den folgenden Zuständen INITIALISIERT, LESEN/SCHREIBEN oder READ-ONLY befinden. Die NFC-Sektoren MÜSSEN sich zu einem bestimmten Zeitpunkt nur in einem Zustand befinden. Der Zustand SOLL sich im Inhalt der NFC-Sektoren widerspiegeln. Der Staat bezieht sich nicht auf einen einzelnen NFC-Sektor, sondern auf alle NFC-Sektoren zusammen. Die Zustände werden in den folgenden Abschnitten beschrieben.

Wenn das MIFARE Classic- oder MIFARE Plus-Tag nur NFC-Sektoren enthält, wird der Status der NFC-Sektoren als Status des MIFARE Classic- oder MIFARE Plus-Tags bezeichnet. In der Beschreibung unten wird der Status des MIFARE Classic- oder MIFARE Plus-Tags mit dem Status der NFC-Sektoren verwechselt (d. h. gleich).

Jeder Status hat seine gültigen Operationen, die als Übergänge oder Zustandsänderungen bezeichnet werden. Die Zustandsübergänge sind nur für Reader-Geräte relevant, die MIFARE Classic- oder MIFARE Plus-Tags schreiben können.

Die verschiedenen Zustände werden identifiziert, indem der GPB des NFC-Sektors, in dem die obligatorische NDEF-Nachrichten-TLV beginnt, und die Felder der obligatorischen NDEF-Nachrichten-TLV verglichen werden. Beachten Sie, dass die in Abschnitt 2.5 beschriebenen Zugriffsbits des Sektortrailers in diesem Anwendungshinweis nicht zur Identifizierung des spezifischen Zustands verwendet werden.

Wenn sich das MIFARE Classic- oder MIFARE Plus-Tag nicht in einem gültigen Zustand gemäß diesem Anwendungshinweis befindet, werden die NDEF-Daten des MIFARE Classic- oder MIFARE Plus-Tags in allen NFC-Sektoren ignoriert. Die Gründe KÖNNEN sein:

  • Nicht zusammenhängende NFC-Sektoren.
  • Innerhalb des Tags sind keine NFC-Sektoren vorhanden, d.h. keine Sektoren werden vom MAD mit der NFC AID angezeigt.
  • Eine Diskrepanz zwischen der Gesamtlänge der TLV-Blöcke und der tatsächlichen Länge des Datenbereichs.
  • Ungültiger TLV-Block.

INITIALISIERTER Zustand #

Ein MIFARE Classic- oder MIFARE Plus-Tag MUSS im Status INITIALISIERT erkannt werden, wenn

        • Der GPB wird wie in Abschnitt 1 beschrieben festgelegt. 1, insbesondere mit Bit 0-1 gleich 00b und Bit 2-3 gleich 00b (Lese- und Schreibzugriff gewährt),
        • der/die NFC-Sektor(en) enthält eine NDEF-Nachrichten-TLV (die obligatorische) und
        • Das Längenfeld der obligatorischen NDEF-Nachrichten-TLV ist gleich 00h.

Im Status INITIALISIERT KANN das NFC-Gerät den Inhalt der obligatorischen NDEF-Nachrichten-TLV ändern, die eine NDEF-Nachricht darin schreibt. Anhang D in Kapitel 10, Anhang E in Kapitel 0 und Anhang F in Kapitel 12 zeigen zwei Beispiele für MIFARE Classic 1k, MIFARE Plus mit 2 KB und MIFARE Classic 4k oder MIFARE Plus mit 4 KByte, alle im Status INITIALISIERT.

READ/WRITE-Zustand #

Ein MIFARE Classic- oder MIFARE Plus-Tag MUSS im READ/WRITE-Zustand erkannt werden, wenn:

        • Der GPB wird wie in Abschnitt 1 beschrieben festgelegt. 1, insbesondere mit Bit 0-1 gleich 00b und Bit 2-3 gleich 00b (Lese- und Schreibzugriff gewährt),
        • die obligatorische NDEF-Nachrichten-TLV in den NFC-Sektoren vorhanden ist und
        • Das Längenfeld der obligatorischen NDEF-Nachrichten-TLV unterscheidet sich von Null.

Der READ/WRITE-Zustand SOLL über den Status INITIALISED erreicht werden. In diesem Zustand KANN das NFC-Gerät den Inhalt der obligatorischen NDEF-Nachrichten-TLV ändern, die eine NDEF-Nachricht darin schreibt.

SCHREIBGESCHÜTZTER Zustand #

Ein MIFARE Classic- oder MIFARE Plus-Tag MUSS im READ-ONLY-Zustand erkannt werden, wenn:

        • Der GPB wird wie in Abschnitt 1 beschrieben festgelegt. 1, insbesondere mit Bit 0-1 gleich 11b und Bit 2-3 gleich 00b (es wird kein Schreibzugriff gewährt, es wird nur Lesezugriff gewährt),
        • die obligatorische NDEF-Nachrichten-TLV in den NFC-Sektoren vorhanden ist und
        • Das Längenfeld der obligatorischen NDEF-Nachricht TLV MUSS von Null abweichen.

Im Status READ-ONLY haben alle NFC-Sektoren Lesezugriff gewährt. Das MIFARE Classic- oder MIFARE Plus-Tag bleibt für den verbleibenden Lebenszyklus im READ-ONLY-Zustand.

Beschreibung der Befehlssequenz #

In diesem Abschnitt werden mehrere Verfahren zur Verwaltung von NDEF-Daten beschrieben, z. B. die obligatorische NDEF-Nachrichten-TLV innerhalb der NFC-Sektoren. Die verschiedenen Zustandsänderungen oder Übergänge zwischen den Zuständen des MIFARE Classic oder MIFARE Plus Tags werden ebenfalls detailliert dargestellt.

Jeder an den Verfahren beteiligte Sektor MUSS vor dem Lesen oder Schreiben mit dem Authentifizierungsvorgang authentifiziert werden. Der öffentliche Schlüssel A WIRD auf der Grundlage des Sektortyps, d. h. des MAD-Sektors oder des NFC-Sektors, ausgewählt.

NDEF-Erkennungsverfahren #

Das NDEF-Erkennungsverfahren MUSS verwendet werden, um die obligatorische NDEF-Nachricht (siehe [NDEF]) in einem MIFARE Classic- oder MIFARE Plus-Tag zu erkennen.

Das NDEF-Erkennungsverfahren basiert auf der Überprüfung von:

        • Den MAD-Sektor(en),
        • den (die) NFC-Sektor(en) und
        • die obligatorische NDEF-Nachrichten-TLV, die die NDEF-Nachricht enthält.

Wie bereits erwähnt, wird die von der NDEF-Erkennungsprozedur gefundene NDEF-Nachrichten-TLV als obligatorische NDEF-Nachrichten-TLV oder erste NDEF-Nachrichten-TLV bezeichnet. Wenn sich MIFARE Classic oder MIFARE Plus im Status READ/WRITE oder READ-ONLY befindet, enthält diese NDEF-Nachrichten-TLV eine NDEF-Nachricht. Im Status INITIALISIERT ist die NDEF-Nachrichten-TLV leer.

NDEF graph(1) Nachdem ein Authentifizierungs- oder Lesevorgang fehlgeschlagen ist, reagiert der MIFARE Classic oder MIFARE Plus auf keine Befehle mehr und muss erneut aktiviert und ausgewählt werden, um die NDEF-Erkennungsprozedur fortzusetzen.

Um das NDEF-Erkennungsverfahren auszuführen, MUSS das Lesegerät (oder NFC-Gerät) die folgenden Operationen (siehe auch Abb. 6) am MIFARE Classic oder MIFARE Plus ausführen:

  1. Überprüfen Sie die Existenz des/der MAD-Sektor(en).
  2. Authentifizieren und Lesen Sie den/die MAD-Sektor(en): Sektor 0 für MAD1 oder Sektor 0 und 16 für MAD2 mithilfe des Lesevorgangs.
  1. Wenn in der MAD eine oder mehrere AID in Höhe der NFC-AID gefunden werden, die sich auf einen oder mehrere zusammenhängende Sektoren beziehen, fahren Sie mit Punkt 4 fort. Andernfalls wurde im MIFARE Classic- oder MIFARE Plus-Tag keine NFC-AID erkannt, und das MIFARE Classic- oder MIFARE Plus-Tag befindet sich nicht in einem gültigen Zustand.
  2. Führen Sie für jeden NFC-Sektor die folgenden Vorgänge aus, beginnend mit der kleinsten Sektornummer bis zur höchsten:
    1. Authentifizieren und lesen Sie den Sektortrailer des NFC-Sektors mit dem öffentlichen Schlüssel A für NFC-Sektoren (siehe Tabelle 6).
    2. Wenn die Authentifizierung und die Lesevorgänge erfolgreich sind, überprüfen Sie den Sektortrailer des NFC-Sektors. Andernfalls, wenn die Authentifizierung oder der Lesevorgang fehlschlägt, wird ein proprietärer NFC-Sektor gefunden (siehe Beschreibung des NFC-Sektors unten) und gehen Sie zu Punkt f.
    3. Wenn die Bits 4-7 des GPB die richtige Versionsnummer gemäß den oben definierten Regeln beschreiben, gehen Sie zu Punkt d. Andernfalls beenden Sie den Vorgang, da sich das MIFARE Classic- oder MIFARE Plus-Tag nicht in einem gültigen Zustand befindet.
    4. Wenn der Wert des Felds für die Lesezugriffsbedingung (Bit 2-3) des GPB gleich 00b ist und der Wert der Datei für die Schreibzugriffsbedingung (Bit 0-1) des GPB gleich 00b oder 11b ist, lesen Sie die Datenblöcke des relativen NFC-Sektors mit dem in Abschnitt 5.1.3 angegebenen Lesevorgang, suchen Sie nach NDEF-Nachrichten-TLVs. und gehen Sie zu Punkt E. Andernfalls, wenn der Lesezugriffsfeldwert des GPB von 00h abweicht oder der Wert der Schriftzugriffsbedingung (Bit 0-1) des GPB von 00b und 11b abweicht, wird ein proprietärer NFC-Sektor (siehe Beschreibung des NFC-Sektors unten) gefunden, dann gehen Sie zu Punkt f.
    5. Wenn eine NDEF-Nachrichten-TLV gefunden wird, ist dies die (d. h. die erste) obligatorische NDEF-Nachrichten-TLV und fahren Sie dann mit Punkt 5 fort. Andernfalls, wenn keine NDEF-Nachrichten-TLV gefunden wird, fahren Sie mit Punkt f fort.
    6. Falls verfügbar, überprüfen Sie den nächsten NFC-Sektor und gehen Sie zu Punkt a. Andernfalls, wenn keine NFC-Sektoren mehr verfügbar sind, beenden Sie den Vorgang, da keine NDEF-Nachrichten-TLV gefunden wird. Das MIFARE Classic- oder MIFARE Plus-Tag befindet sich nicht in einem gültigen Zustand.
  3. Wenn das Längenfeld der obligatorischen NDEF-Nachrichten-TLV von Null abweicht, wird die NDEF-Nachricht (siehe [NDEF]) im MIFARE Classic- oder MIFARE Plus-Tag erkannt und das Lesegerät KANN die NDEF-Leseprozedur oder die NDEF-Schreibprozedur verwenden. Wenn das Längenfeld gleich Null ist, wird im MIFARE Classic- oder MIFARE Plus-Tag keine NDEF-Meldung erkannt, und das Lesegerät KANN die NDEF-Schreibprozedur verwenden (das Tag befindet sich möglicherweise im Status INITIALISIERT).

Die NDEF-Erkennungsprozedur bezieht sich nicht auf eine gültige NDEF-Nachricht. Es liest die NDEF-Nachrichtenlänge aus dem Längenfeld der NDEF-Nachrichten-TLV, analysiert die NDEF-Nachricht jedoch nicht.

Das Lesegerät MUSS die proprietären NFC-Sektoren ignorieren und überspringen. Der proprietäre NFC-Sektor ist definiert als NFC-Sektor, der entweder nicht mit dem öffentlichen Schlüssel A für NFC-Sektoren authentifiziert werden kann oder der Lesezugriffsfeldwert des GPB von 00b abweicht oder der Wert der Schreibzugriffsbedingung (Bit 0-1) des GPB von 00b und 11b abweicht.

Jedes Mal, wenn ein Authentifizierungsvorgang, ein Lesevorgang oder ein Schreibvorgang fehlschlägt, bleibt der MIFARE Classic oder MIFARE Plus stumm und reagiert nicht mehr auf einen

Befehle. In diesem Fall muss MIFARE Classic oder MIFARE Plus erneut aktiviert und ausgewählt werden, um das NDEF-Erkennungsverfahren fortzusetzen.

NDEF-Lesevorgang #

Die NDEF-Leseprozedur wird vom Lesegerät verwendet, um die NDEF-Nachricht aus der obligatorischen NDEF-Nachrichten-TLV zu lesen. Vor dem Lesen der NDEF-Nachricht MUSS das NDEF-Erkennungsverfahren ausgeführt werden, und das MIFARE Classic- oder MIFARE Plus-Tag MUSS sich in einem gültigen Zustand befinden.

Mit der NDEF-Leseprozedur MUSS das Lesegerät die gesamte NDEF-Nachricht aus dem obligatorischen NDEF-Nachrichten-TLV mit einem oder mehreren Lesevorgängen lesen. Die Länge der zu lesenden NDEF-Nachricht wird aus dem Längenfeld der obligatorischen NDEF-Nachrichten-TLV angegeben.

Wenn die obligatorische NDEF-Nachrichten-TLV in einem oder mehreren NFC-Sektoren gespeichert ist, MUSS das Lesegerät in der Lage sein, alle diese Sektoren mit dem öffentlichen Schlüssel A für NFC-Sektoren zu authentifizieren (siehe Tabelle 6). Falls der Authentifizierungsvorgang fehlschlägt, befindet sich das MIFARE Classic- oder MIFARE Plus-Tag nicht in einem gültigen Zustand.

NDEF-Schreibvorgang #

Die NDEF-Schreibprozedur MUSS vom Reader-Gerät verwendet werden, um die obligatorische NDEF-Nachrichten-TLV zu schreiben, die eine NDEF-Nachricht in einem MIFARE Classic- oder MIFARE-Plus-Tag enthält.

Die NDEF-Schreibprozedur verwendet die Lese- und Schreibvorgänge (siehe Abschnitt 5.1.3 und Abschnitt 5.1.4).

Um die NDEF-Nachricht zu schreiben, MUSS sich das MIFARE Classic- oder MIFARE Plus-Tag im Status INITIALISIERT oder LESEN/SCHREIBEN befinden, d. h. der obligatorische NDEF-Nachrichten-TLV MUSS bereits im MIFARE Classic- oder MIFARE Plus-Tag vorhanden sein.

NDEF write procedure

Um die NDEF-Schreibprozedur auszuführen, MUSS das Lesegerät die folgenden Vorgänge für das MIFARE Classic- oder MIFARE Plus-Tag ausführen:

  1. Verwenden Sie das NDEF-Erkennungsverfahren (siehe Abschnitt 1.4.1), um die obligatorische NDEF-Nachrichten-TLV zu finden. Wenn die obligatorische NDEF-Nachrichten-TLV gefunden wird, fahren Sie mit Punkt 2 fort. Wenn andernfalls keine NDEF-Nachrichten-TLV gefunden wird, beenden Sie den Vorgang.
  2. Wenn die verfügbare Speichergröße für die NDEF-Nachrichten-TLV gleich oder größer als die NDEF-Nachrichtengröße ist, MÜSSEN die folgenden Vorgänge in der folgenden Reihenfolge mit einem oder mehreren Schreibvorgängen ausgeführt werden:
    1. das Längenfeld der obligatorischen NDEF-Nachrichten-TLV MUSS ein Byte lang sein und sein Wert MUSS auf 00h gesetzt werden;
    2. die neue NDEF-Nachricht MUSS in das Wertfeld der obligatorischen NDEF-Nachrichten-TLV geschrieben werden und
    1. Das Längenfeld der obligatorischen NDEF-Nachrichten-TLV MUSS mit der Länge der NDEF-Nachricht aktualisiert werden.

Andernfalls, wenn im MIFARE Classic- oder MIFARE Plus-Tag nicht genügend Speicherplatz verfügbar ist, darf die NDEF-Nachricht NICHT in das MIFARE Classic- oder MIFARE Plus-Tag geschrieben werden.

  1. Wenn Element 2 erfolgreich ausgeführt wird, MUSS das Lesegerät die Terminator-TLV im nächsten Byte nach der NDEF-Nachrichten-TLV mit dem Schreibvorgang schreiben.Der Terminator TLV darf nicht geschrieben werden, wenn die obligatorische NDEF-Nachrichten-TLV am letzten Byte des letzten verfügbaren NFC-Sektors, d.h. des NFC-Sektors mit der größten Sektornummer, endet.

Betreffend den Vorgangspunkt 2. b, das Schreiben des Wertfelds der gefundenen NDEF-Nachricht TLV MUSS 1 oder 3 Byte für das Längenfeld übrig lassen, die für den nächsten Vorgangspunkt 2 benötigt werden. c, um die Länge der NDEF-Nachricht zu speichern.

Die NDEF-Schreibprozedur ändert nicht die Startposition der obligatorischen NDEF-Nachrichten-TLV.

Die NDEF-Schreibprozedur KANN die NDEF-Nachrichten-TLV über angrenzende NFC-Sektoren schreiben, mit Ausnahme von MAD-Sektor 16, falls MIFARE Classic 4k und MIFARE Plus mit 4 KByte verwendet werden.

Die verfügbare Speichergröße für die obligatorische NDEF-Nachrichten-TLV wird aus der Position der obligatorischen NDEF-Nachrichten-TLV als Summe folgender Faktoren berechnet:

  • der freie Speicherplatz des NFC-Sektors, der die obligatorische NDEF-Nachrichten-TLV enthält. Der freie Speicherplatz beginnt am Anfang der obligatorischen NFC-Nachrichten-TLV und endet am Ende des NFC-Sektors und
  • der gesamte Speicherplatz der NFC-Sektoren, die dem Sektor folgen, der die obligatorische NDEF-Nachrichten-TLV enthält. Die folgenden NFC-Sektoren KÖNNEN eine Größe von 48 Byte (3 Blöcke) oder 240 Bytes (15 Blöcke) haben. Die Informationen über die folgenden verfügbaren NFC-Sektoren SOLLEN aus den MAD-Sektoren abgerufen werden.

Für den Write-Vorgang wird zuerst das Lesen von nicht vollständig aktualisierten Blöcken benötigt, wenn z.B. die NDEF-Message-TLV in der Mitte eines Blocks beginnt.

Zustandsänderungen #

In diesem Abschnitt werden die möglichen Zustandsänderungen des MIFARE Classic- oder MIFARE Plus-Tags beschrieben. Abb. 8 zeigt die Zustände und die Zustandsänderung (auch Übergang genannt) zwischen ihnen. In diesem Anwendungshinweis wird nur der Übergang von INITIALISIERT zu LESEN/SCHREIBEN angegeben.

Das Reader-Gerät KANN ein MIFARE Classic- oder MIFARE Plus-Tag im Status INITIALISED, READ/WRITE oder sogar im Status READ-ONLY ausgeben.life cycle transaction

Der Übergang von INITIALISIERT zu LESEN/SCHREIBEN #

Um den Übergang von INITIALISIERT zu LESEN/SCHREIBEN durchzuführen, MUSS das Lesegerät den folgenden Vorgang ausführen: eine nicht leere NDEF-Nachrichten-TLV (Längenfeld anders als Null) MUSS die vorherige leere NDEF-Nachrichten-TLV mithilfe der NDEF-Schreibprozedur ersetzen. Die NDEF-Nachrichten-TLV ist die obligatorische, die mithilfe der NDEF-Erkennungsprozedur erkannt wird.

Die leere NDEF-Nachricht KANN verwendet werden, um eine nicht leere NDEF-Nachricht zu ersetzen.