非接触式IC卡,即射频卡或感应卡,它成功地将射频识别技术结合起来,解决了无源和免接触这一难题,是电子器件领域的一大突破。
非接触卡内含有唯一的独立的卡号,使用时,技术人员需在读卡器有效读 区内(一般5-10CM)将卡片轻轻一晃,便将卡内信息输入读 器内,实现考勤、收费管理。
非接触式IC卡的工作原理如下:
卡片的电气部分由一个元件和AISC组成,没有其他的外部器件,卡片中的天线是只有线圈,很适合封状到ISO卡片中。ASIC由一个高速(106KB波特率)的接口,一个控制单元和一个810位EEPROM组成。以MIAREI为例,读卡器向IC发一组固定频率的电磁波,卡内有一个IC串联谐振电路,其频率与读写器的频率相同,这样便产生电磁共振,从而使电容内有了电荷,在电容的另一端接有一个单向通的电子泵,将电容内的电荷送到另一个电容内储存,当储存积累的电荷达到2V时,此电源可作电源为其他电路提供工作电压,将卡内数据发射出去或接收读写器的数据。
一、 主要指标
l 容量为8K位EEPROM
l 分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位
l 每个扇区有独立的一组密码及访问控制
l 每张卡有唯一序列号,为32位
l 具有防冲突机制,支持多卡操作
l 无电源,自带天线,内含加密控制逻辑和通讯逻辑电路
l 数据保存期为10年,可改写10万次,读无限次
l 工作温度:-20℃~50℃
l 工作频率:13.56MHZ
l 通信速率:106KBPS
l 读写距离:10mm以内(与读写器有关)
二、 存储结构
1、M1卡分为16个扇区,每个扇区由4块(块0、块1、块2、块3)组成,(我们也将16个扇区的64个块按绝对地址编号为0~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的控制:
bit 7 6 5 4 3 2 1 0
字节6
|
|
|
|
C20_b
|
|
|
|
C10_b
|
字节7
|
|
|
|
C10
|
|
|
|
C30_b
|
字节8
|
|
|
|
C30
|
|
|
|
C20
|
字节9
|
|
|
|
|
|
|
|
|
( 注: C10_b表示C10取反 )
存取控制(4字节,其中字节9为备用字节)结构如下所示:
bit 7 6 5 4 3 2 1 0
字节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
|
C33
|
C32
|
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= 0 0 1时,验证密码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= 0 0 1时,表示:
密码A:不可读,验证KEYA或KEYB正确后,可写(更改)。
存取控制:验证KEYA或KEYB正确后,可读、可写。
密码B:验证KEYA或KEYB正确后,可读、可写。
新卡片中的控制字(FF 07 80 69)密码A可用,密码B不可用;
推荐的控制字
方案一:7F 07 88 69
此控制字说明:数据块:用密码A或B都可以读写;
控制块:密码A:由密码B来写,不可读;
密码B:由密码B来写,不可读;
控制字:用密码A或B都可读,由密码B写;
方案二:08 77 8F 69
此控制字说明:数据块:用密码A读,由密码B读写;
控制块:密码A:由密码B来写,不可读;
密码B:由密码B来写,不可读;
控制字:用密码A或B都可读,由密码B写;
三、 卡片
卡片的电气部分只由一个天线和ASIC组成。
天线:卡片的天线是只有几组绕线的线圈,很适于封装到IS0卡片中。
ASIC:卡片的ASIC由一个高速(106KB波特率)的RF接口,一个控制单元和一个
8K位EEPROM组成。
四、对数据块的操作
读 (Read):读一个块;
写 (Write):写一个块;
加(Increment):对数值块进行加值;
减(Decrement):对数值块进行减值;
存储(Restore):将块中的内容存到数据寄存器中;
传输(Transfer):将数据寄存器中的内容写入块中;
中止(Halt):将卡置于暂停工作状态;