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):將卡置于暫停工作狀態; |