Mifare S50和Mifare S70又常被稱為Mifare Standard、Mifare Classic、MF1,是遵守ISO14443A標(biāo)準(zhǔn)的卡片中應(yīng)用最為廣泛、影響力最大的的一員。而Mifare S70的容量是S50的4倍,S50的容量是1K字節(jié),S70的容量為4K字節(jié)。讀寫器對(duì)卡片的操作時(shí)序和操作命令,二者完全一致。
Mifare S50和Mifare S70的每張卡片都有一個(gè)4字節(jié)的全球唯一序列號(hào),卡上數(shù)據(jù)保存期為10年,可改寫10萬(wàn)次,讀無(wú)限次。一般的應(yīng)用中,不用考慮卡片是否會(huì)被讀壞寫壞的問(wèn)題,當(dāng)然暴力硬損壞除外。
Mifare S50和Mifare S70的區(qū)別主要有兩個(gè)方面。一是讀寫器對(duì)卡片發(fā)出請(qǐng)求命令,二者應(yīng)答返回的卡類型(ATQA)字節(jié)不同。Mifare S50的卡類型(ATQA)是0004H,Mifare S70的卡類型(ATQA)是0002H。另一個(gè)區(qū)別就是二者的容量和內(nèi)存結(jié)構(gòu)不同。
Mifare S50把1K字節(jié)的容量分為16個(gè)扇區(qū)(Sector0-Sector15),每個(gè)扇區(qū)包括4個(gè)數(shù)據(jù)塊(Block0-Block3,我們也將16個(gè)扇區(qū)的64個(gè)塊按絕對(duì)地址編號(hào)為0~63),每個(gè)數(shù)據(jù)塊包含16個(gè)字節(jié)(Byte0-Byte15),64*16=1024。
如下表所示:
Mifare S70把4K字節(jié)的容量分為40個(gè)扇區(qū)(Sector0-Sector39),其中前32個(gè)扇區(qū)(Sector0-Sector31)的結(jié)構(gòu)和Mifare S50完全一樣,每個(gè)扇區(qū)包括4個(gè)數(shù)據(jù)塊(Block0-Block3),后8個(gè)扇區(qū)每個(gè)扇區(qū)包括16個(gè)數(shù)據(jù)塊(Block0-Block15)。我們也將40個(gè)扇區(qū)的256個(gè)塊按絕對(duì)地址編號(hào)為0~255),每個(gè)數(shù)據(jù)塊包含16個(gè)字節(jié)(Byte0-Byte15),256*16=4096。如下表所示:
每個(gè)扇區(qū)都有一組獨(dú)立的密碼及訪問(wèn)控制,放在每個(gè)扇區(qū)的最后一個(gè)Block,這個(gè)Block又被稱為區(qū)尾塊,S50是每個(gè)扇區(qū)的Block3,S70的前32個(gè)扇區(qū)也是Block3,后8個(gè)扇區(qū)是Block15。
S50和S70的0扇區(qū)0塊(即絕對(duì)地址0塊)用于存放廠商代碼,已經(jīng)固化,不可更改,卡片序列號(hào)就存放在這里。除了廠商塊和控制塊,卡片中其余的塊都是數(shù)據(jù)塊,可用于存貯數(shù)據(jù)。數(shù)據(jù)塊可作兩種應(yīng)用:
(1)用作一般的數(shù)據(jù)保存,可以進(jìn)行讀、寫操作。
(2)用作數(shù)據(jù)值,可以進(jìn)行初始化值、加值、減值、讀值操作。
數(shù)據(jù)塊和值塊有什么區(qū)別呢?無(wú)論塊中的內(nèi)容是什么,你都可以把他看成普通數(shù)據(jù),即使它是一個(gè)值塊。但是并不是任何數(shù)據(jù)都可以看成是值,因?yàn)橹祲K有一個(gè)比較嚴(yán)格的格式要求。值塊中值的長(zhǎng)度為4個(gè)字節(jié)的補(bǔ)碼,其表示的范圍(-2147483648~2147483647),值塊的存儲(chǔ)格式如下:
帶下劃線表示取反。VALUE是值的補(bǔ)碼,addr是塊號(hào)(0-63).只有具有上述格式,才被認(rèn)為是值塊,否則就是普通的數(shù)據(jù)塊。
每個(gè)扇區(qū)的區(qū)尾塊為控制塊,包括了6字節(jié)密碼A、4字節(jié)存取控制、6字節(jié)密碼B。例如一張新出廠的卡片控制塊內(nèi)容如下:
A0 A1 A2 A3 A4 A5 FF 07 80 69 B0 B1 B2 B3 B4 B5
密碼A 存取控制 密碼B
新卡的出廠密碼一般是密碼A為A0A1A2A3A4A5,密碼B為B0B1B2B3B4B5,或者密碼A和密碼B都是6個(gè)FF。存取控制用以設(shè)定扇區(qū)中各個(gè)塊(包括控制塊本身)的存取條件,這部分有點(diǎn)復(fù)雜,后面將專文介紹。
讀寫器與S50和S70的通訊流程如下圖所示:
卡片選擇和三次相互認(rèn)證在前面已經(jīng)介紹過(guò)。其他操作如下:
(1)讀 (Read):讀取一個(gè)塊的內(nèi)容,包括普通數(shù)據(jù)塊和值塊;
(2)寫 (Write):寫數(shù)據(jù)到一個(gè)塊,包括普通數(shù)據(jù)塊和值塊,值塊中寫入了非法格式的數(shù)據(jù),值塊就變成了普通數(shù)據(jù)塊;
(3)加(Increment):對(duì)值塊進(jìn)行加值,只能對(duì)值塊操作;
(4)減(Decrement):對(duì)值塊進(jìn)行減值,只能對(duì)值塊操作;
(5)中止(Halt):將卡置于睡眠工作狀態(tài),只有使用WAKE-UP命令才能喚醒。
事實(shí)上加值和減值操作并不是直接在Mifare的塊中進(jìn)行的。這兩個(gè)命令先把Block中的值讀出來(lái),然后進(jìn)行加或減,加減后的結(jié)果暫時(shí)存放在卡上的易失性數(shù)據(jù)寄存器(RAM)中,然后再利用另一個(gè)命令傳輸(Transfer)將數(shù)據(jù)寄存器中的內(nèi)容寫入塊中。與傳輸(Transfer)相對(duì)應(yīng)的命令是存儲(chǔ)(Restore),作用是將塊中的內(nèi)容存到數(shù)據(jù)寄存器中,不過(guò)這個(gè)命令很少用到。
審核編輯 黃宇
-
RFID
+關(guān)注
關(guān)注
387文章
6105瀏覽量
237380 -
射頻識(shí)別技術(shù)
+關(guān)注
關(guān)注
0文章
95瀏覽量
16739
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論