M 1卡 1) 主要指標
容量為8K位EEPROM
分為16個扇區,每個扇區為4塊,每塊16個字節,以塊為存取單位
每個扇區有獨立的一組密碼及訪問控制
每張卡有唯一序列號,為32位
具有防沖突機制,支持多卡操作
無電源,自帶天線,內含加密控制邏輯和通訊邏輯電路
數據保存期為10年,可改寫10萬次,讀無限次
工作溫度:-20℃~50℃(溫度為90%)
工作頻率:13.56MHZ
通信速率:106KBPS
讀寫距離:10mm以內(與讀寫器有關)
2)存儲結構 1、 M1卡分為16個扇區,每個扇區由4塊(塊0、塊1、塊2、塊3)組成,(我們也將16個扇區的64個塊按絕對地址編號為0~63,存貯結構如下圖所示:
r |
|
|
|
|
|
塊0 |
|
數據塊 |
0 |
扇區0 |
塊1 |
|
數據塊 |
1 |
|
塊2 |
|
數據塊 |
2 |
|
塊3 |
密碼A 存取控制 密碼B |
控制塊 |
3 |
|
塊0 |
|
數據塊 |
4 |
扇區1 |
塊1 |
|
數據塊 |
5 |
|
塊2 |
|
數據塊 |
6 |
|
塊3 |
密碼A 存取控制 密碼B |
控制塊 |
7 |
|
|
: : : |
|
|
|
0 |
|
數據塊 |
60 |
|
1 |
|
數據塊 |
61 |
扇區15 |
2 |
|
數據塊 |
62 |
|
3 |
密碼A 存取控制 密碼B |
控制塊 |
63 | |
塊0 數據塊 0 扇區0 塊1 數據塊 1 塊2 數據塊 2 塊3 密碼A 存取控制 密碼B 控制塊 3 塊0 數據塊 4 扇區1 塊1 數據塊 5 塊2 數據塊 6 塊3 密碼A 存取控制 密碼B 控制塊 7 ∶ ∶ ∶ 0 數據塊 60 扇區15 1 數據塊 61 2 數據塊 62 3 密碼A 存取控制 密碼B 控制塊 63
2、 第0扇區的塊0(即絕對地址0塊),它用于存放廠商代碼,已經固化,不可更改。 3、 每個扇區的塊0、塊1、塊2為數據塊,可用于存貯數據。 數據塊可作兩種應用: ★ 用作一般的數據保存,可以進行讀、寫操作。 ★ 用作數據值,可以進行初始化值、加值、減值、讀值操作。 4、 每個扇區的塊3為控制塊,包括了密碼A、存取控制、密碼B。具體結構如下:
A0 A1 A2 A3 A4 A5 FF 07 80 69 B0 B1 B2 B3 B4 B5 |
密碼A(6字節) 存取控制(4字節) 密碼B(6字節) 5、 每個扇區的密碼和存取控制都是獨立的,可以根據實際需要設定各自的密碼及存取控制。存取控制為4個字節,共32位,扇區中的每個塊(包括數據塊和控制塊)的存取條件是由密碼和存取控制共同決定的,在存取控制中每個塊都有相應的三個控制位,定義如下: 塊0: C10 C20 C30 塊1: C11 C21 C31 塊2: C12 C22 C32 塊3: C13 C23 C33 三個控制位以正和反兩種形式存在于存取控制字節中,決定了該塊的訪問權限(如 進行減值操作必須驗證KEY A,進行加值操作必須驗證KEY B,等等)。三個控制 位在存取控制字節中的位置,以塊0為例:
對塊0的控制:
|
字節6 |
|
|
|
C20_b |
|
|
|
C10_b |
字節7 |
|
|
|
C10 |
|
|
|
C30_b |
字節8 |
|
|
|
C30 |
|
|
|
C20 |
字節9 |
|
|
|
|
|
|
|
|
(注:c10_B表示C10取反) | |
存取控制(4字節,其中字節9為備用字節)結構如下所示:
|
字節6 |
C23_b |
C22_b |
C21_b |
C20_b |
C13_b |
C12_b |
C11_b |
C10_b |
字節7 |
C13 |
C12 |
C11 |
C10 |
C33_b |
C32_b |
C31_b |
C30_b |
字節8 |
C3. |
C23 |
C31 |
C30 |
C23 |
C22 |
C21 |
C20 |
字節9 |
|
|
|
|
|
|
|
|
(注:_b表示取反) | |
6、數據塊(塊0、塊1、塊2)的存取控制如
控制位(X=0.1.2) |
訪 問 條 件 (對數據塊 0、1、2) |
C1X |
C2X |
C3X |
Read |
Write |
Increment |
Decrement, transfer,
Restore |
0 |
0 |
0 |
KeyA|B |
KeyA|B |
KeyA|B |
KeyA|B |
0 |
1 |
0 |
KeyA|B |
Never |
Never |
Never |
1 |
0 |
0 |
KeyA|B |
KeyB |
Never |
Never |
1 |
1 |
0 |
KeyA|B |
KeyB |
KeyB |
KeyA|B |
0 |
0 |
1 |
KeyA|B |
Never |
Never |
KeyA|B |
0 |
1 |
1 |
KeyB |
KeyB |
Never |
Never |
1 |
0 |
1 |
KeyB |
Never |
Never |
Never |
1 |
1 |
1 |
Never |
Never |
Never |
Never | |
(KeyA|B 表示密碼A或密碼B,Never表示任何條件下不能實現)
例如:當塊0的存取控制位C10 C20 C30=1 0 0時,驗證密碼A或密碼B正確后可讀; 驗證密碼B正確后可寫;不能進行加值、減值操作。
7、控制塊塊3的存取控制與數據塊(塊0、1、2)不同,它的存取控制如下:
|
密碼A |
存取控制 |
密碼B |
C13 |
C23 |
C33 |
Read |
Write |
Read |
Write |
Read |
Write |
0 |
0 |
0 |
Never |
KeyA|B |
KeyA|B |
Never |
KeyA|B |
KeyA|B |
0 |
1 |
0 |
Never |
Never |
KeyA|B |
Never |
KeyA|B |
Never |
1 |
0 |
0 |
Never |
KeyB |
KeyA|B |
Never |
Never |
KeyB |
1 |
1 |
0 |
Never |
Never |
KeyA|B |
Never |
Never |
Never |
0 |
0 |
1 |
Never |
KeyA|B |
KeyA|B |
KeyA|B |
KeyA|B |
KeyA|B |
0 |
1 |
1 |
Never |
KeyB |
KeyA|B |
KeyB |
Never |
KeyB |
1 |
0 |
1 |
Never |
Never |
KeyA|B |
KeyB |
Never |
Never |
1 |
1 |
1 |
Never |
Never |
KeyA|B |
Never |
Never |
Never | |
例如:當塊3的存取控制位C13 C23 C33=1 0 0時,表示: 密碼A:不可讀,驗證KEYA或KEYB正確后,可寫(更改)。 存取控制:驗證KEYA或KEYB正確后,可讀、可寫。 密碼B:驗證KEYA或KEYB正確后,可讀、可寫。
3) 工作原理 卡片的電氣部分只由一個天線和ASIC組成。 天線:卡片的天線是只有幾組繞線的線圈,很適于封裝到IS0卡片中。 ASIC:卡片的ASIC由一個高速(106KB波特率)的RF接口,一個控制單元和一個 8K位EEPROM組成。 工作原理:讀寫器向M1卡發一組固定頻率的電磁波,卡片內有一個LC串聯諧振電路,其頻率與讀寫器發射的頻率相同,在電磁波的激勵下,LC諧振電路產生共振,從而使電容內有了電荷,在這個電容的另一端,接有一個單向導通的電子泵,將電容內的電荷送到另一個電容內儲存,當所積累的電荷達到2V時,此電容可做為電源為其它電路提供工作電壓,將卡內數據發射出去或接取讀寫器的數據。
4) M1射頻卡與讀寫器的通訊
復位應答(Answer to request) M1射頻卡的通訊協議和通訊波特率是定義好的,當有卡片進入讀寫器的操作范圍時,讀寫器以特定的協議與它通訊,從而確定該卡是否為M1射頻卡,即驗證卡片的卡型。
防沖突機制 (Anticollision Loop) 當有多張卡進入讀寫器操作范圍時,防沖突機制會從其中選擇一張進行操作,未選中的則處于空閑模式等待下一次選卡,該過程會返回被選卡的序列號。
選擇卡片(Select Tag) 選擇被選中的卡的序列號,并同時返回卡的容量代碼。
三次互相確認(3 Pass Authentication) 選定要處理的卡片之后,讀寫器就確定要訪問的扇區號,并對該扇區密碼進行密碼校驗,在三次相互認證之后就可以通過加密流進行通訊。(在選擇另一扇區時,則必須進行另一扇區密碼校驗。)
對數據塊的操作 讀 (Read):讀一個塊; 寫 (Write):寫一個塊; 加(Increment):對數值塊進行加值; 減(Decrement):對數值塊進行減值; 存儲(Restore):將塊中的內容存到數據寄存器中; 傳輸(Transfer):將數據寄存器中的內容寫入塊中; 中止(Halt):將卡置于暫停工作狀態; |