M1卡介绍
- 容量为8K位EEPROM(Electrically Erasable Programmable Read-Only Memory,带电可擦可编程只读存储器)
- 分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位
- 每个扇区有独立的一组密码及访问控制
- 每张卡有唯一序列号,为32位
- 具有防冲突机制,支持多卡操作
- 无电源,自带天线,内含加密控制逻辑和通讯逻辑电路
- 数据保存期为10年,可改写10万次,读无限次
- 工作温度:-20℃~50℃(温度为90%)
- 工作频率:13.56MHZ
- 通信速率:106KBPS
- 读写距离:10mm以内(与读写器有关)
1、M1卡分为16个扇区,每个扇区4块(块0~3),共64块,按块号编址为0~63。第0扇区的块0(即绝对地址0块)用于存放厂商代码,已经固化,不可更改。其他各扇区的块0、块1、块2为数据块,用于存贮数据;块3为控制块,存放密码A、存取控制、密码B。每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取控制。存贮结构如下表所示:
|
块0
|
IC卡厂家信息
|
数据块
|
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
|
3、每个扇区的块0、块1、块2为数据块,可用于存贮数据。
数据块可作两种应用:
用作一般的数据保存,可以进行读、写操作。
用作数据值,可以进行初始化值、加值、减值、读值操作。
4、每个扇区的块3为控制块,包括了密码A、存取控制、密码B。具体结构如下:
各区控制块3 结构 | 字节号 | 0 1 2 3 4 5 | 6 7 8 9 | 10 11 12 13 14 15 |
控制值 | FF FF FF FF FF FF | FF 07 80 69 | FF FF FF FF FF FF | |
说明 | 密码A(0~5字节) | 存取控制(6~9字节) | 密码B(10~15字节) |
密码A(6字节) 存取控制(4字节) 密码B(6字节)
5、每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取控制。存取控制为4个字节,共32位,扇区中的每个块(包括数据块和控制块)的存取条件是由密码和存取控制共同决定的,在存取控制中每个块都有相应的三个控制位,定义如下:
表:控制位定义"CXxy" (x=0~15扇区; y=块0,块1,块2)
块0 | C1x0 | C2x0 | C3x0 | 用户数据块,(0区0块除外) |
块1 | C1x1 | C2x1 | C3x1 | 用户数据块 |
块2 | C1x2 | C2x2 | C3x2 | 用户数据块 |
块3 | C1x3 | C2x3 | C3x3 | 密匙存取控制块 |
例如C1x0中的C代码这是控制位,1代表第一位,0代表是块0的控制位。
三个控制位以正和反两种形式存在于存取控制字节中,决定了该块的访问权限(如进行减值操作必须验证KEY A,进行加值操作必须验证KEY B,等等)。三个控制位在存取控制字节中的位置
表:三个控制位在存取控制字节中的位置(注:" _b" 表示取反)
字节号 | 位号 | bit 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
字节6 | C2x3_b | C2x2_b | C2x1_b | C2x0_b | C1x3_b | C1x2_b | C1x1_b | C1x0_b |
字节7 | C1x3 | C1x2 | C1x1 | C1x0 | C3x3_b | C3x2_b | C3x1_b | C3x0_b |
字节8 | C3x3 | C3x2 | C3x1 | C3x0 | C2x3 | C2x2 | C2x1 | C2x0 |
字节9 | BX7 | BX6 | BX5 | BX4 | BX3 | BX2 | BX1 | BX0 |
所属块 | 块3控制位 | 块2控制位 | 块1控制位 | 块0控制位 | 块3控制位 | 块2控制位 | 块1控制位 | 块0控制位 |
以块0为例,对块0的控制:
bit |