Contact-less Smart Card Reader & Mifare one Card 二次開發文檔
Author: Dennis Lan
Date: 2003/12/17
Copyright© Universal Master Information Co(sz)., Ltd 轉載請說明出處
一. 開發環境簡介:
本文檔是以 Oracle Fors6i開發工具為基礎的應用程式上使用 RD800M Contact-less Smart Card Reader 進行考勤、門禁、會議簽到、資料簽核等等而寫.
開發工具:
1. Oracle Forms6i;
2. Microsoft Visual C++ Compiler (VS.NET 2003)
程式語言: PL/SQL、C/C++
操作系統: Windows2000,XP Pro
非接觸式 IC 卡讀寫設備: RD800M
IC 卡: Mifare One
二. 非接觸式 IC 卡性能介紹(以上海復旦 Mifare one Card 為例,其它廠商類同)
主要指标
l 容量为8K位EEPROM
l 分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位
l 每个扇区有独立的一组密码及访问控制
l 每张卡有唯一序列号,为32位
l 具有防冲突机制,支持多卡操作
l 无电源,自带天线,内含加密控制逻辑和通讯逻辑电路
l 数据保存期为10年,可改写10万次,读无限次
l 工作温度:-20℃~50℃(温度为90%)
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
待續 ...
附錄:
參考資料: