Online Store

MIFARE Classic i MIFARE Plus IC memorija NDEF metode mapiranja podataka

Imenik aplikacije MIFARE #

NDEF metode mapiranja memorijskih podataka MIFARE Classic i MIFARE Plus IC koriste strukturu direktorija aplikacija MIFARE (MAD).

Direktorij aplikacije MIFARE (MAD) određuje kojoj aplikaciji pripadaju informacije pohranjene unutar svakog memorijskog sektora.

Navedena su dva direktorija aplikacije MIFARE:

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

Svakoj aplikaciji MAD povezuje jedinstveni identifikator aplikacije (AID). Identifikatori aplikacija (AID-ovi) pohranjuju se unutar MAD sektora 00h.

AID je dugačak dva bajta i podijeljen je u 2 polja od po jednog bajta:

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

Bajt opće namjene (GPB) sektora MAD postavlja se s DA bitom jednakim 1b (DA bit je mad dostupan bit GPB-a).

Svi trenutno neiskorišteni sektori TREBAJU biti zaštićeni od pisanja tajnim ključevima koje je definirao izdavatelj oznaka kako bi se spriječilo nenamjerno redefiniranje uvjeta pristupa i ključeva. PREPORUČUJE se korištenje različitih ključeva za sve slobodne sektore. To omogućuje buduće oslobađanje nekih sektora novim pružateljima usluga bez potrebe za oslobađanjem svih slobodnih sektora.

Pristup sektoru MAD #

Memorijski sektori u kojima su pohranjeni MAD1 i MAD2 (vidi [MAD]), zaštićeni su ključem A i ključem B. Prema [MAD] memorijskim sektorima su:

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

Svatko smije čitati sektore MAD-a. To se postiže korištenjem javnog ključa A opisanog u tablici 1. (vidi također [MAD]).

Stol 1. Javni ključ Vrijednost sektora MAD-a

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

Pristupni bitovi za mad sektore postavljeni su na:

        • kako je opisano u tablici 2., ako je sektoru MAD odobren pristup za čitanje i pisanje, ili
        • kako je opisano u tablici 3., ako je sektoru MAD odobren pristup samo za čitanje (vidjeti također [MF1K, MF4K, MFPLUS]).

U tom kontekstu, odobreni pojam pristup čitanju i pisanju znači da je za sektore MAD-a koji su prethodno autentificirani tajnim ključem B moguće pročitati i napisati sve sektorske blokove osim bloka prikolica sektora (za više pojedinosti vidi tablicu 2.).

Umjesto toga, pojam odobren samo za čitanje znači da je za sektore MAD-a koji su prethodno autentificirani javnim ključem tablice A tablice 1. ili tajnim ključem B moguće pročitati samo sve sektorske blokove osim bloka prikolica sektora (za više pojedinosti vidi tablicu 5.).

Pomoću ključa A uvijek je moguće samo čitati blokove mad sektora. Sektorske prikolice imaju posebnu konfiguraciju pristupa kada je odobren pristup za čitanje/pisanje ili pristup samo za čitanje (vidi tablicu 2. i tablicu 3.).

Mad sektori trebaju biti zaštićeni pisanjem pomoću tajnog ključa B (npr. definiranog od strane izdavatelja oznaka) ili postavljanjem oznake MIFARE Classic i MIFARE Plus samo za čitanje pomoću pristupnih bitova.

Stol 2. Postavka bitova pristupa za sektor MAD s odobrenim pristupom za čitanje i pisanje

Postavka bitova pristupa za sektor 0 od MAD1 ili MAD2 i za sektor 16. MAD2
Bitovi programa Access Vrijednosti Primjedbe
C10 C20 C30 100bi Blok 0 čita se s ključem A ili tipkom B i piše se ključem B
C11 C21 C31 100b Blok 1 čita se s ključem A ili tipkom B i napisan je ključem B
C12 C22 C32 100b Blok 2 se čita s ključem A ili tipkom B i piše se ključem B
C13 C23 C33 011b Sektorski blok prikolica:

  • Ključ A napisan je ključem B i nikad se ne čita,
  • Bitovi pristupa čitaju se ključem A ili tipkom B i pišu ključem B,
  • Tipka B napisana je ključem B i nikad 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 sektor MAD s odobrenim pristupom samo za čitanje

Postavka bitova pristupa za sektor 0 od MAD1 ili MAD2 i za sektor 16. MAD2
Bitovi programa Access Vrijednosti Primjedbe
C10 C20 C30 010b Blok 0 čita se s tipkom A ili tipkom B
C11 C21 C31 010b Blok 1 se čita s tipkom A ili tipkom B
C12 C22 C32 010b Blok 2 čita se s tipkom A ili tipkom B
C13 C23 C33 110b Sektorski blok prikolica:

  • Ključ A nikada nije napisan i pročitan,
  • Bitovi pristupa čitaju se s ključem A ili tipkom B i nikada nisu napisani,
  • 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 sastoji se od jednog do tri polja:

T (polje oznake ili polje T) označava vrstu bloka TLV (vidjeti tablicu 9.) i sastoji se od jednog bajta koji kodira broj od 00h do FFh. Vrijednosti oznaka 01h, 02h, 04h do FCh i FFh rezervirane su za buduću upotrebu.

L (polje duljine ili polje L) navodi veličinu u bajtovima polja vrijednosti. Ima dva različita formata sastavljena od jednog ili tri bajta. Uređaj čitača MORA razumjeti sve dvodužne oblike polja. Slika 5 prikazuje dvije različite strukture polja duljine. Međutim, ovisno o vrijednosti polja strukturnih oznaka, polje duljine MOŽDA neće biti prisutno.

  • Oblik jednog bajta: Oblik jednog bajta kodira duljinu polja vrijednosti između 00h i FEh bajtova. Ovaj bajt će se tumačiti kao kardinal ako je vrijednost između 00h i FEh. Ako sadrži FFh vrijednost se tumači kao zastava koja određuje da se polje duljine sastoji od više od jednog bajta.
  • Oblik tri uzastopna bajta: Ovaj format mora sadržavati duljinu polja vrijednosti između bajtova 00FFh i FFFEh. Pretpostavlja se da je prvi bajt zastava jednaka FFh-u koja označava da se duljina još dva bajta tumači kao riječ. Ta se riječ tumači kao kardinal ako je vrijednost između 00FFh i FFFEh. Vrijednost FFFFh rezervirana je za buduću uporabu (RFU).

V (polje vrijednosti ili polje V) Ako je polje duljine jednako 00h ili nema polja duljine, polje vrijednosti NE SMIJE biti, tj. Ako postoji polje duljine i označava duljinu polja vrijednosti N veće od nule (N>0), polje vrijednosti sastoji se od N uzastopnih bajtova.

Tablica 4 navodi TLV blokove navedene u ovom dokumentu koji su opisani u sljedećim odjeljcima.

Stol 4. Definirani TLV blokovi

Naziv bloka TLV Vrijednost polja oznake Kratki opis
NULL TLV 00h Može se koristiti za podstavu memorijskih područja, a Uređaj čitača to mora zanemariti
TLV poruke NDEF-a 03h Sadrži NDEF poruku
Vlasnički TLV FDh Označavanje vlasničkih informacija
Terminator TLV FEh Posljednji TLV blok u području podataka

Uređaj čitača mora TLV blokove napisati određenim redoslijedom unutar područja podataka prema pravilima u nastavku:

  • Blokovi TLV-a pišu se tako da počevši od bajta 0. bloka 0 sektora NFC-a (sektor koji sadrži podatke iz NDEF-a) s najmanjom adresom.
  • TLB blok MOŽE se zapamtiti u dva ili više NFC sektora.
  • Ako je prisutan Terminator TLV je posljednji TLV blok na MIFARE Classic i MIFARE Plus oznaci.

NULL TLV i Terminator TLV jedini su TLV blokovi duljine 1 bajta (npr. sastoje se samo od polja Oznaka, vidi dolje).

Uređaji čitača MORAJU zanemariti i preskočiti one TLV blokove koji koriste rezervirane vrijednosti polja oznaka (vidi gore). Da bi preskočio blok TLV s rezerviranim vrijednostima polja strukturnih oznaka, uređaj Reader MORA pročitati polje duljine kako bi razumio duljinu polja vrijednosti.

Buduće definicije TLV blokova sastavljenih samo od polja strukturnih oznaka nisu kompatibilne unatrag s ovom aplikacijskom napomenom.

TLV poruke NDEF-a #

Najmanje jedna NDEF poruka TLV uvijek će biti prisutna unutar oznake MIFARE Classic i MIFARE Plus. TLV poruke NDEF-a pohranjuje NDEF poruku unutar polja Vrijednost. Uređaj čitača mora moći čitati i obrađivati TLV poruke NDEF-a pronađenu postupkom otkrivanja NDEF-a (koji se naziva i obvezna poruka NDEF-a TLV ili prva poruka NDEF-a TLV); u svakom slučaju, daljnji TLV blokovi poruke NDEF-a MOGU biti prisutni. Ispod kodiranja 3 TLV polja poruke NDEF-a TLV prikazano je:

T mora biti jednak 03h (vidjeti tablicu 4.).

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

V MORA pohraniti NDEF Poruku.

Prazna poruka NDEF-a TLV definira se kao TLV poruke NDEF-a s poljem L jednakim 00h i bez polja V (tj. u polju V nema poruke NDEF-a, vidi [NDEF]).

TLV poruke NDEF-a koja nije prazna može sadržavati prazne ili neprazne poruke NDEF-a.

Vlasnički TLV #

Vlasnički TLV sadrži vlasničke informacije. Oznaka MIFARE Classic i MIFARE Plus MORA sadržavati nula, jedan ili više vlasničkih TLV-a. Uređaj Reader možda zanemaruje podatke sadržane u ovom TLV bloku. Ispod kodiranja 3 TLV polja vlasničkog TLV-a prikazano je:

T mora biti jednak FDh (vidjeti tablicu 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 može se koristiti za podstavu podatkovnog područja. OZNAKA MIFARE Classic i MIFARE Plus MOŽE sadržavati nula, jedan ili više NULL TLV.-a. Uređaj Čitač MORA zanemariti ovaj TLV blok. NULL TLV sastoji se od polja oznake od 1 bajta. Ispod kodiranja polja strukturnih oznaka NULL TLV prikazano je:

T mora biti jednak 00h (vidjeti tablicu 4.).

L NEĆE BITI PRISUTAN.

V NE SMIJE biti prisutan.

Terminator TLV #

Terminator TLV MOŽE biti prisutan unutar oznake MIFARE Classic i MIFARE Plus, a uređaj Reader će ga moći čitati/obrađivati. Terminator TLV posljednji je TLV blok u području podatkovne memorije. Terminator TLV sastoji se od polja oznake od 1 bajta. Ispod kodiranja polja strukturnih oznaka terminatorskog TLV-a prikazano je:

T mora biti jednak FEh (vidjeti tablicu 4.).

L NEĆE BITI PRISUTAN.

V NE SMIJE biti prisutan.