Online Store

MIFARE Classic i MIFARE Plus IC memorija NDEF metode mapiranja podataka

MIFARE direktorij aplikacija #

Memorijsko mapiranje NDEF metoda MIFARE Classic i MIFARE Plus IC koriste MIFARE strukturu direktorija aplikacija (MAD).

MIFARE aplikativni direktorij (MAD) identificira kojoj aplikaciji pripadaju informacije pohranjene unutar svakog memorijskog sektora.

Navedena su dva MIFARE direktorija aplikacija:

      1. MIFARE aplikacijski direktorij 1 (MAD1): MAD1 MOŽE se koristiti u bilo kojem MIFARE Classic kompatibilnom proizvodu. MAD1 se nalazi u MAD sektoru (sektor 00h), U slučaju da se MAD1 koristi na proizvodima veličine memorije veće od 1Kbytes, MAD1 memoriju može koristiti i adresirati samo 1Kbytes memoriju. Preostala memorija se stoga ne koristi za NDEF pohranu i ostaje besplatna.
      2. MIFARE aplikacijski direktorij 2 (MAD2): MAD1 MOŽE se koristiti u bilo kojem MIFARE Classic kompatibilnom proizvodu s veličinom memorije većom od 1Kbytes. MAD2 nije primjenjiv za proizvode čija je veličina memorije manja ili jednaka 1Kbytes. MAD2 se nalazi u MAD sektorima (sektor 00h i 10h)

Za svaku aplikaciju, MAD povezuje jedinstveni identifikator aplikacija (AID). Identifikatori aplikacija (AID) se čuvaju u MAD sektoru(ima) 00h.

AID je dugačak dva bajta, a podijeljen je na 2 polja po jedan bajt:

  1. kod klastera funkcija (1 bajt) koji identifikuje klaster kojem aplikacija pripada, i
  2. aplikativni kod (1 bajt) koji identificira aplikaciju unutar klastera. Za više informacija o MAD1 i MAD2.

Bajt opće namjene (GPB) MAD sektora BIT će postavljen sa DA bitom jednakim 1b (DA bit je MAD dostupan bit GPB-a).

Svi trenutno neiskorišćeni sektori TREBA da budu zaštićeni tajnim ključevima koje je definisao izdavalac oznaka kako bi se sprečilo nenamerno redefinisanje uslova pristupa i ključeva. Preporučljivo je koristiti različite ključeve za sve slobodne sektore. Ovo omogućava buduće puštanje nekih sektora novim pružaocima usluga bez potrebe za oslobađanjem svih slobodnih sektora.

MAD Sector Access #

Sektori memorije u kojima se čuvaju MAD1 i MAD2 zaštićeni [MAD]su ključem A i ključem B. [MAD] Prema sektorima memorije su:

        • MAD1: MAD sektor je 00h (sektor 0), i
        • MAD2: MAD sektori su 00h i 10h (sektor 0 i sektor 16).

Svakome će biti dozvoljeno da čita MAD sektore. To se postiže korišćenjem javnog ključa A opisanog u tabeli 1 (vidi takođe [MAD]).

Sto 1. Javni ključ Vrijednost MAD sektora(a)

Bajt 0 Bajt 1 Bajt 2 Bajt 3 Bajt 4 Bajt 5
A0h A1h A2h A3h A4h A5h

Pristupni dijelovi za MAD sektor(e) su postavljeni na:

        • kao što je opisano u Tabeli 2 ako je MAD sektor pročitao i napisao pristup odobren, ili
        • kao što je opisano u Tabeli 3 ako MAD sektor ima odobren pristup samo za čitanje (vidi takođe [MF1K, MF4K, MFPLUS]).

U tom kontekstu, termin pristup čitanju i pisanju znači da je za MAD sektore koji su prethodno autentifikovani tajnim ključem B, moguće čitati i pisati sve sektorske blokove osim bloka prikolica sektora (pogledajte tabelu 2 za više detalja).

Umjesto toga, odobreni pristup samo za čitanje znači da je za MAD sektore koji su prethodno autentifikovani javnim ključem A tabele 1 ili tajnim ključem B, moguće čitati samo sve sektorske blokove osim bloka prikolica sektora (pogledajte Tabelu 5 za više detalja).

Koristeći ključ A, uvek je moguće čitati samo blokove MAD sektora. Sektorske prikolice imaju određenu konfiguraciju pristupa kada se odobri pristup čitanju/pisanju ili pristup samo za čitanje (vidi tabelu 2 i tabelu 3).

MAD sektori TREBA da budu zaštićeni pisanjem pomoću tajnog ključa B (npr. definisanog od strane izdavaoca oznaka) ili postavljanjem oznake MIFARE Classic i MIFARE Plus kao oznake samo za čitanje koristeći pristupne bitove.

Stol 2. Postavka bitova pristupa za MAD sektor sa odobrenim pristupom čitanju i pisanju

Podešavanje bitova pristupa za sektor 0 MAD1 ili MAD2 i za sektor 16 MAD2
Pristupni bitovi Vrijednosti Primjedbe
C1 0 C20 C30 100bi Blok 0 se čita sa ključem A ili ključem B i piše se tipkom B
C1 1 C21 C31 100b Blok 1 se čita sa ključem A ili ključem B i piše se tipkom B
C1 2 C22 C32 100b Blok 2 se čita sa ključem A ili ključem B i piše se tipkom B
C1 3 C23 C33 011b Sektorski blok prikolica:

  • Ključ A je napisan sa ključem B i nikada se ne čita.
  • Pristupni bitovi se čitaju sa ključem A ili ključem B i pišu se tipkom B,
  • Ključ B je napisan sa ključem B i nikada se ne čita.
i. Preporučena vrijednost za pristupne bitove C10 C20 C30 sektora 0 (blok proizvođača).

Stol 3. Postavka bitova pristupa za MAD sektor sa odobrenim pristupom samo za čitanje

Podešavanje bitova pristupa za sektor 0 MAD1 ili MAD2 i za sektor 16 MAD2
Pristupni bitovi Vrijednosti Primjedbe
C1 0 C20 C30 010b Blok 0 se čita sa ključem A ili ključem B
C1 1 C21 C31 010b Blok 1 se čita sa ključem A ili ključem B
C1 2 C22 C32 010b Blok 2 se čita sa ključem A ili ključem B
C1 3 C23 C33 110b Sektorski blok prikolica:

  • Ključ A nikada nije napisan i pročitan.
  • Pristupni bitovi se čitaju sa ključem A ili ključem B i nikada se ne pišu.
  • Ključ B nikada nije napisan i pročitan.
i. Preporučena vrijednost za pristupne bitove C10 C20 C30 sektora 0 (blok proizvođača).

TLV blokovi #

TLV blok se sastoji od jednog do tri polja:

T (polje oznake ili T polje) MORA identificirati tip TLV bloka (vidi tablicu 9), a MORA se sastojati od jednog bajta koji kodira broj od 00h do FFh. Vrednosti oznake 01h, 02h, 04h do FCh i FFh rezervisane su za buduću upotrebu.

L (polje dužine ili L polje) MORA da obezbedi veličinu u bajtovima polja vrednosti. Ima dva različita formata sastavljena od jednog ili tri bajta. Uređaj READER ĆE razumeti sve formate polja sa dve dužine. Fig 5 prikazuje dvije različite strukture polja dužine. Međutim, u zavisnosti od vrednosti polja oznake, polje dužine možda neće biti prisutno.

  • Format jednog bajta: Format sa jednim bajtom TREBA da kodira dužinu polja vrednosti između 00h i FEh bajtova. Ovaj bajt TUMAČI se kao kardinal ako je vrijednost između 00h i FEh. Ako sadrži FFh, vrijednost INTERPRETIRA se kao zastava koja određuje da se polje dužine sastoji od više od jednog bajta.
  • Tri uzastopna bajta formata: Ovaj format MORA kodirati dužinu polja vrijednosti između 00FFh i FFFEh bajtova. Za prvi bajt se pretpostavlja da je zastava jednaka FFh, što znači da će se još dva bajta tumačiti kao riječ. Ova riječ TUMAČI se kao kardinal ako je vrijednost između 00FFh i FFFEh. FFFFh je rezervisan za buduću upotrebu (RFU).

V (polje vrednosti ili V polje) Ako je polje dužine jednako 00h ili nema polja dužine, NE sme biti polje vrednosti, tj. TLV blok je prazan. Ako postoji polje dužine i označava dužinu polja vrednosti N veće od nule (N>0), polje vrednosti SHALL se sastoji od N uzastopnih bajtova.

Tabela 4 navodi TLV blokove navedene ovim dokumentom koji su opisani u sledećim odeljcima.

Sto 4. Definisani TLV blokovi

TLV naziv bloka Vrijednost polja oznake Kratak opis
NULL TLV 00h Može se koristiti za podlogu memorijskih područja i uređaj čitača ĆE ignorisati ovo
NDEF poruka TLV 03h Sadrži NDEF poruke
Vlasnički TLV FDh Označite vlasničke informacije
Terminator TLV FEh Poslednji TLV blok u oblasti podataka

Uređaj za čitanje TREBA da napiše TLV blokove određenim redosledom unutar oblasti podataka u skladu sa sledećim pravilima:

  • TLV blokovi MORAJU biti napisani po redosledu počevši od bajta 0 bloka 0 NFC sektora (sektor koji sadrži NDEF podatke) sa najmanjom adresom.
  • TLB blok može biti memorisan u dva ili više NFC sektora.
  • Ako je prisutan, Terminator TLV je poslednji TLV blok na MIFARE Classic i MIFARE Plus tagu.

NULL TLV i Terminator TLV su jedini TLV blokovi koji su dugi 1 bajt (npr. sastoje se samo od polja Tag, pogledajte ispod).

Uređaji za čitanje ĆE ignorisati i preskočiti one TLV blokove koji koriste rezervisane vrednosti polja oznake (vidi gore). Da biste preskočili TLV blok sa rezervisanim vrednostima polja oznaka, uređaj ČITAČ TREBA da čita polje dužine da bi razumeo dužinu polja vrednosti.

Buduće definicije TLV blokova sastavljenih samo od polja oznake nisu unazad kompatibilne sa ovom napomenom aplikacije.

NDEF poruka TLV #

Najmanje jedna NDEF poruka TLV će uvek biti prisutna u MIFARE Classic i MIFARE Plus tagu. NDEF Message TLV pohranjuje NDEF poruku unutar polja Vrijednost. Uređaj za čitanje ĆE moći da čita i obrađuje NDEF Message TLV koji se nalazi u NDEF postupku detekcije (koji se naziva i obavezni NDEF Message TLV ili prvi NDEF Message TLV); U svakom slučaju, NDEF Message TLV blokovi mogu biti prisutni. Ispod je prikazano kodiranje 3 TLV polja NDEF Message TLV:

T će biti jednako 03h (vidi tabelu 4).

L mora biti jednaka veličini u bajtovima pohranjene NDEF poruke.

V će pohraniti NDEF poruku.

Prazna NDEF poruka TLV MORA biti definisana kao NDEF poruka TLV sa L poljem jednakim 00h, i bez V polja (tj. nijedna NDEF poruka nije prisutna u V polju, pogledajte [NDEF]).

Neprazna NDEF poruka TLV može sadržavati prazne ili neprazne NDEF poruke.

Vlasnički TLV #

Vlasnički TLV sadrži vlasničke informacije. MIFARE Classic i MIFARE Plus oznaka moraju sadržavati nula, jedan ili više vlasničkih TLV-a. Uređaj čitača može ignorisati podatke sadržane u ovom TLV bloku. Ispod je prikazano kodiranje 3 TLV polja vlasničkog TLV-a:

T će biti jednak FDh (vidi tabelu 4).

L MORA biti jednaka veličini u bajtovima vlasničkih podataka u polju Vale.

V mora sadržavati sve vlasničke podatke.

NULL TLV #

NULL TLV se može koristiti za punjenje područja podataka. MIFARE Classic i MIFARE Plus oznaka mogu sadržavati nula, jedan ili više NULL TLV. Uređaj za čitanje ĆE ignorisati ovaj TLV blok. NULL TLV se sastoji od polja oznake od 1 bajta. Ispod je prikazano kodiranje polja oznake NULL TLV:

T će biti jednako 00h (vidi tabelu 4).

L neće biti prisutan.

V neće biti prisutan.

Terminator TLV #

Terminator TLV može biti prisutan u MIFARE Classic i MIFARE Plus tagu, a uređaj za čitanje će moći da ga čita/obradi. Terminator TLV je poslednji TLV blok u oblasti memorije podataka. Terminator TLV se sastoji od 1-bajtnog tag polja. Ispod je prikazano kodiranje polja oznake Terminator TLV:

T će biti jednako FEh (vidi tabelu 4).

L neće biti prisutan.

V neće biti prisutan.