当前位置:首页 >> 信息与通信 >>

RF系列读写器使用说明


RF 系列非接触式 IC 卡读写器

使







RF 系列非接触式 IC 卡读写器使用手册


一. 1.1 1.2 1.3 1.4 1.5 1.6 1.7 二.



RF 系列非接触式 I

C 卡读写器简介....................................................................................... 3 概述............................................................................................................................................ 3 特性............................................................................................................................................ 3 设备接口.................................................................................................................................... 3 读写器装箱清单........................................................................................................................ 4 程序安装.................................................................................................................................... 4 软件............................................................................................................................................ 4 技术指标.................................................................................................................................... 4 库函数说明................................................................................................................................ 5

2.1 函数使用说明.................................................................................................................................. 5 2.2 库函数一览表.................................................................................................................................. 6 2.3WINDOWS 32 位动态库 .................................................................................................................... 7 2.4 库函数使用范例............................................................................................................................ 15 2.5 函数错误类型代码........................................................................................................................ 15 附录 1 MIFARE ONE 射频卡的特性 ................................................................................................ 16

2

RF 系列非接触式 IC 卡读写器使用手册

一. RF 系列非接触式 IC 卡读写器简介 1.1 概述
RF 系列非接触式 IC 卡读写器是由主机、天线、串行接口等组成,通过 RS232 串行接口能实 现同 PC 机的连接。随机提供的接口函数库可满足用户二次开发的需要;其完善、可靠的接口函 数,支持访问射频卡的全部功能。目前该设备已广泛地应用于门禁、考勤及高速公路、油站、停 车场、公交等收费系统中。

1.2 特性
适用于符合 MIFARE 标准的非接触卡 支持 MIFARE 标准 - 工作频率 13.56MHZ - 以 106kbit/s 速率高速访问射频卡 - 数据加密和双向验证 - 防冲突,可同时读取多张射频卡 - 通信错误自动侦测 功能操作:读、写、初始化值、加值、减值、读值和装载密码等 通讯接口:RS232 串口 波特率:9600~115200 bit/s,自动侦测 操作距离:平均 50MM 数码管显示:8 位数码管显示 控制蜂鸣器鸣响功能 提供丰富的二次开发平台和应用范例

1.3 设备接口

RS232 串口 DC5V 电源

读写器 内置天线

RF 卡

RS232 串行接口用于与上位 PC 联机通讯;

3

RF 系列非接触式 IC 卡读写器使用手册

1.4 读写器装箱清单

包装盒内配有:读写器,通讯线,驱动软盘, 5V 电源(独立包装)

1.5 程序安装
安装步骤: a. 将通讯线一端接到读写器上,另一端接至计算机串口上; b. 接通读写器电源; c. 打开计算机,进入 WINDOWS 98 或 WINDOWS2000/ME/XP,将驱动软盘插入软驱; e. 运行 setup 文件 注: 安装结束后,在 Program files 下创建一个 rfreader 的子目录,所有软件均在此目录下。

1.6 软件
RF 系列读写器软件包括:演示程序、函数库和应用范例 a. 演示程序 提供 Windows 版演示程序: DemoRF.exe。 b. 函数库 C 语言接口函数库 WINDOWS32 位动态库 c. 应用范例 EXAMPLES 目录下提供各种开发平台的应用范例,包括 VB、VC、DELPHI、C 等。

1.7 技术指标
支持 MIFARE 标准 - 发射频率:13.56MHz - 访问卡速率:106Kbit/s 接口功能:RS232 串行接口 波特率:9600~115200bit/s ,自动侦测 工作电源: DC 5V±5% 读写距离:平均为 50mm(Mifare 标准卡读写距离) 最大功耗:200mW 环境温度:0°С? 50°С 相对湿度:30%?95% 重量:约 200 克

4

RF 系列非接触式 IC 卡读写器使用手册

二. 库函数说明 2.1 函数使用说明
函数调用应遵循如下规则: (1) 程序开始,首先要调用 rf_init( ) 函数初始化串口。 (2) 用 rf_load_kdy()将卡中某一扇区密码输入到读写器中,一次只能操作一个扇区。 (3) 调用 rf_card()函数(相当连续调用 rf_request()、anticoll()、select()三个函数) ,成功可返 回卡的序列号。 (4) 用 rf_anthetication() 函数验证设备密码和卡中密码,一次只能验证一个扇区。 (5) 对已验证过的扇区可进行读、写、初始化值、加值、减值等功能操作。对其它扇区的读、 写操作必须重复上述(3)(4)过程。 、 (6) 由于高级函数集成了若干低级函数,所以调用前可不必运行(3)(4)过程。 、 (7) 对某张卡操作完成后,应用 rf_halt()函数中止对该卡的操作。 (8) 程序正常退出或因错误退出之前,要用 rf_exit()函数关闭串口;否则再次执行初始化串 口时将出错。 (9) 有关调用各种函数库的具体方法,请参考\Examples\目录下的使用范例。

5

RF 系列非接触式 IC 卡读写器使用手册

2.2 库函数一览表
序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 rf_init () rf_exit () rf_card () rf_authentication () rf_halt () rf_read () rf_read_hex () rf_write () rf_write_hex () rf_intival () rf_increment () rf_decrement () rf_readval () rf_restore () rf_transfer () rf_load_key () rf_load_key_hex () rf_beep () rf_disp () rf_request () rf_anticoll () Rf_select () Rf_encrypt () Rf_decrypt () Rf_get_status () Rf_reset () Rf_initval () Rf_HL_decrement () Rf_HL_inctement () Rf_HL_write () Rf_HL_read () Rf_initval_ml () Rf_decrement_ml () Rf_readval_ml () 函数 初始化串口 关闭串口 寻卡 验证卡中某一扇区密码 中止卡操作 读数据(字符) 读数据(十六进制) 写数据(字符) 写数据(十六进制) 初始化块值 加值 减值 读值 将块数据传到卡的内部寄存器 中 将寄存器的数据传到块中 向读写器下载授权密码 向读写器下载授权密码 (十六进 制) 蜂鸣器鸣叫 数码管显示数据 寻卡请求 防止卡冲突 选取一个给定序列号的卡 DES 加密算法 DES 解密算法 读取读写器的版本号 射频头复位 高级初始化值 高级增值操作 高级减值操作 高级写 高级读 ML 卡初始化值 ML 卡减值操作 ML 卡读值操作 FoxPro For Dos 库 中未提供此函数 FoxPro For Dos 库 中未提供此函数 FoxPro For Dos 库 中未提供此函数 C 语言库中未提供 此函数 说明 备注

6

RF 系列非接触式 IC 卡读写器使用手册

2.3Windows 32 位动态库
(1)HANDLE rf_init(__int16 port,long baud); 功 能:初始化串口 参 数:__int16 port:通讯口号(0~3) long baud:通讯波特率(9600~115200) 返 回:成功则返回设备描述符(≥0) 例:HANDLE icdev; icdev=rf_init(1,115200); /*初始化 com2 口以波特率 115200*/ (2)__int16 rf_exit(HANDLE icdev); 功 能:关闭串口 参 数:HANDLE icdev:rf_init()返回的设备描述符 返 回:成功返回 0 例:rf_exit(icdev); (3)__int16 rf_card(HANDLE icdev,unsigned char _Mode,unsigned long *_Snr); 功 能:寻卡,能返回在工作区域内某张卡的序列号 参 数:HANDLE icdev:rf_init()返回的设备描述符 unsigned char _Mode:寻卡模式 Mode=0: IDLE 模式,一次操作一张卡 Mode=1: ALL 模式, 一次操作多张卡 unsigned long *_Snr: 返回卡的序列号地址 返 回:成功则返回 0 例:__int16 st; unsigned long snr; st=rf_card(icdev,IDLE,&snr); 注:如果设为 IDLE 模式,则在对卡操作完成后,须执行 rf_halt()指令中止对卡的操作。 这样,只有该卡离开并重新进入操作区时,读写器才能对它再次操作。 (4)__int16 rf_authentication(HANDLE icdev ,unsigned char _Mode, unsigned char _SecNr); 功 能:验证某一扇区密码 参 数:HANDLE icdev:rf_init()返回的设备描述符 unsigned char _Mode:验证密码的方式 取值如下: 0 — 用 KEYSET0 和 KEYA 验证 1 — 用 KEYSET1 和 KEYA 验证 2 — 用 KEYSET2 和 KEYA 验证 4 — 用 KEYSET0 和 KEYB 验证 5 — 用 KEYSET1 和 KEYB 验证 6 — 用 KEYSET2 和 KEYB 验证 unsigned char _SecNr:要验证密码的扇区号(0~15) 返 回:成功则返回 0 例:__int16 st;
7

RF 系列非接触式 IC 卡读写器使用手册

st=rf_authentication(icdev,0,0); 注:每张卡上有 A 密码和 B 密码,可根据实际需要确定是否使用 B 密码,这由卡的存取 控制位来决定。此外,读写器中可以存放三套密码,可用 rf_load_key()分别装 入,只有装入后才能使用验证密码函数验证。 (5)__int16 rf_halt(HANDLE icdev); 功 能:中止卡操作 参 数:HANDLE icdev:rf_init()返回的设备描述符 返 回:成功则返回 0 例:__int16 st; st=rf_halt(icdev); 注:使用 rf_card()函数时,如果模式选择为 0 则在对卡进行读写操作完毕后, 必须执行 rf_halt(),且只能当该卡离开并再次进入操作区域时,读写器 才能够再次操作它。 (6)__int16 rf_read(HANDLE icdev,usigned char _Adr,unsigned char *_Data); 功 能:读数据,一次必须读一个块 参 数:HANDLE icdev:rf_init()返回的设备描述符 unsigned char _Adr:块地址(0~63) unsigned char *_Data:读出数据 返 回:成功则返回 0 例:__int16 st; static unsigned char data[16] st=rf_read(icdev,0,data); (7)__int16 rf_read_hex(HANDLE icdev,usigned char _Adr,unsigned char *_Data); 功 能:以十六进制读数据,一次必须读一个块 参 数:HANDLE icdev:rf_init()返回的设备描述符 unsigned char _Adr:块地址(0~63) unsigned char *_Data:读出数据 返 回:成功则返回 0 例:__int16 st; static unsigned char data[32] st=rf_read_hex(icdev,0,data); /*读出数据格式如 rf_write_hex*/ (8)__int16 rf_write(HANDLE icdev,unsigned char _Adr,unsigned char *_Data); 功 能:写数据, 一次必须写一个块 参 数:HANDLE icdev:rf_init()返回的设备描述符 unsigned char _Adr:块地址(1~63) unsigned char *_Data:写入数据,块长度为 16 B 返 回:成功则返回 0 例:__int16 st; static unsigned char data[16] /* 给 data 赋值*/ st=rf_write(icdev,1,data); /*写入块 1*/

8

RF 系列非接触式 IC 卡读写器使用手册

(9)__int16 rf_write_hex(HANDLE icdev,unsigned char _Adr,unsigned char *_Data); 功 能:以十六进制写数据, 一次必须写一个块 参 数:HANDLE icdev:rf_init()返回的设备描述符 unsigned char _Adr:块地址(1~63) unsigned char *_Data:写入数据,块长度为 32Byte 返 回:成功则返回 0 例:__int16 st; unsigned char data[32]="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; /* data 赋值为 16 个 0xaa*/ st=rf_write_hex(icdev,1,data); /*写入块 1*/ (10)__int16 rf_initval(HANDLE icdev,unsigned char _Adr,unsigned long _Value); 功 能:初始化块值 参 数:HANDLE icdev:rf_init()返回的设备描述符 unsigned char _Adr:块地址(1~63) unsigned long _Value:初始值 返 回:成功则返回 0 例:__int16 st; unsigned long value; value=1000; st=rf_initval(icdev,1,value); /*将块 1 的值初始化为 value*/ 注:作为数值处理的块,是以特殊格式存贮的,所以必须用初始化值函数初始化, 初始化之后方可进行读、减、加的处理。 (11)__int16 rf_increment(HANDLE icdev,unsigned char _Adr,unsigned long _Value); 功 能:块增值操作 参 数:HANDLE icdev:rf_init()返回的设备描述符 unsigned char _Adr:块地址(1~63) unsigned long _Value:要增加的值 返 回:成功则返回 0; 例:__int16 st; unsigned long value; value=1; st=rf_increment(icdev,1,value); /*将块 1 的值增加 value*/ (12)__int16 rf_decrment(HANDLE icdev,unsigned char _Adr,unsigned long _Value); 功 能:块减值操作 参 数:HANDLE icdev:rf_init()返回的设备描述符 unsigned char _Adr:块地址(1~63) unsigned long _Value:要减少的值 返 回:成功则返回 0 例:__int16 st; unsigned long value; value=1; st=rf_decrement(icdev,1,value); /*将块 1 的值减少 value*/

9

RF 系列非接触式 IC 卡读写器使用手册

(13)__int16 rf_readval(HANDLE icdev,unsigned char _Adr,unsigned long *_Value); 功 能:读值 参 数:HANDLE icdev:rf_init()返回的设备描述符 unsigned char _Adr:块地址(0~63) unsigned long *_Value:返回读出值的地址 返 回:成功返回 0 例:__int16 st; unsigned long value; st=rf_readval(icdev,1,&value); /*读出块 1 的值,放入 value*/ (14)__int16 rf_restore(HANDLE icdev,unsigned char _Adr); 功 能:将某块的数据传入卡的内部寄存器中 参 数:HANDLE icdev:rf_init()返回的设备描述符 unsigned char _Adr:要进行回传的地址 返 回:成功返回 0 例:__int16 st; st=rf_restore(icdev,1); 注:用此函数将某一块内的数值传入卡的内部寄存器,然后用 rf_transfer()函数 将寄存器的数据再传送到另一块中去,即实现了块与块之间的数值传送。 (15)__int16 rf_transfer(HANDLE icdev,unsigned char _Adr); 功 能:将寄存器的数据传送到某一块中 参 数:HANDLE icdev:rf_init()返回的设备描述符 unsigned char _Adr:要传送的地址(0~63) 返 回:成功返回 0 例:__int16 st; st=rf_transfer(icdev,1); 注:见 rf_restore()的说明。 (16)__int16 rf_load_key(HANDLE icdev,unsigned char _Mode,unsigned char SecNr, unsigned char * _Nkey); 功 能:向读写器的 RAM 装入密码 参 数:HANDLE icdev:rf_init()返回的设备描述符 unsigned char _Mode :同 rf_authentication() unsigned char _SecNr:同 rf_authentication() unsigned char *_Nkey:包含了要写入硬件系统 RAM 中的卡密码 返 回:成功则返回 0 例://key A and key B unsigned char tk[2][7]= { {0xa0,0xa1,0xa2,0xa3,0xa4,0xa5}, {0xb0,0xb1,0xb2,0xb3,0xb4,0xb5} }; /*装入 1 扇区的 A 密码 0 套,*/ if((rf_load_key(icdev,0, 1,tk[1]))!=0) { printf("Load key error!"); rf_exit(); exit(1);
10

RF 系列非接触式 IC 卡读写器使用手册

} 注:*_Nkey 是与卡中的密码相对应的密码。 (17)__int16 rf_load_key_hex(HANDLE icdev,unsigned char _Mode, unsigned char SecNr,char * _Nkey); 功 能:向读写器的 RAM 装入 16 进制密码 参 数:HANDLE icdev:rf_init()返回的设备描述符 unsigned char _Mode :同 rf_authentication() unsigned char _SecNr:同 rf_authentication() unsigned char *_Nkey:要写入读写器 RAM 中的卡密码 返 回:成功则返回 0 例://key A unsigned char tk[]= "a0a1a2a3a4a5"/*等同于{0xa0_.0xa5}*/ /*装入 1 扇区的 A 密码|0 套,*/ if((rf_load_key_Hex(icdev,0, 1,tk))!=0) { printf("Load key error!"); rf_exit(); exit(1); } 注:*_Nkey 是与卡中的密码相对应的密码。 (18)_int16 rf_get_status(unsigned char *_Status); 功 能:取得读写器的版本号 参 数:unsigned char *_Status:返回读写器版本信息 返 回:成功则返回 0 例:int st; unsigned char status[32]; st=rf_get_status(status); (19) __int16 rf_request(int icdev,unsigned char _Mode, unsigned int *TagType); 功 能:寻卡请求 参 数: HANDLE icdev:设备描述符 unsigned char _Mode:寻卡模式,为 0 或 1 Mode=0:IDLE 模式,一次只选一张卡 Mode=1:ALL 模式, 一次可选多张卡 unsigned int *Tagtype:指向返回的卡类型值 返 回:成功则返回 0 例:int st; st=rf_request(icdev,IDLE,tagtype); 注:对卡操作前先执行寻卡指令 (20)__int16 rf_anticoll(int icdev,unsigned char _Bcnt,unsigned long *_Snr); 功 能:防止卡冲突;返回卡的序列号 参 数:HANDLE icdev: 设备描述符 unsigned char _Bcnt: 预选卡所用的位数,标准值为 0(不考虑系列号)
11

RF 系列非接触式 IC 卡读写器使用手册

unsigned long *_Snr: 返回的卡序列号地址 返 回:成功则返回 0 例:int st; st=rf_anticoll(0,snr); 注:request 指令之后应立即调用 anticoll,除非卡的序列号已知。 (21)__int16 rf_select(int icdev,unsigned long _Snr,unsigned char *_Size); 功 能:从多个卡中选取一个给定序列号的卡 参 数:HANDLE icdev:设备描述符 unsigned long _Snr:卡序列号 unsigned char *_Size:指向返回的卡容量的数据 返 回:成功则返回 0 例: int st; snr=239474; st=rf_select(snr,size); /* 返回 239474 卡的容量 */ 注:上述 rf_card()寻卡函数包含了 19~21 三个低级函数。每次对卡重新操作时首先要调用 rf_card()函数(或连续调用 19~21 三个函数) 。 (22)__int16 rf_encrypt(char *key,char *ptrsource,unsigned __int16 msglen, char *ptrdest); 功 能:DES 算法加密 参 数:char *key:加密的密码,长度为 8 char *ptrsource:原文 unsigned __int16 msglen:原文长度 char *ptrdest:密文 返 回:成功则返回 0 例:/* 将长度为 16 的”abcdefghabcdefgh”用密码“12345678”加密 */ rf_encrypt(“12345678”,”abcdefghabcdefgh”,16,ptrdest) (23)__int16 rf_decrypt(char *key,char *ptrsource,unsigned __int16 msglen, char *ptrdest); 功 能:DES 算法解密函数 参 数:char *key:加密的密码,长度为 8 char *ptrsource:加密后密文 unsigned __int16 msglen:原文长度 char *ptrdest:原文 返 回:成功则返回 0 例:略,使用过程与 rf_encrypt 相反。 (24)__int rf_beep(unsigned int _Msec); 功 能:蜂鸣 参 数:unsigned int _Msec:蜂鸣时间的长短,单位是 10 毫秒; 返 回:成功则返回 0 例:int st; st=rf_beep(10); /*鸣叫 100 毫秒*/

12

RF 系列非接触式 IC 卡读写器使用手册

(25)__int rf_disp(HANDLE icdev,unsigned char pt_mode,unsigned int digit); 功 能:使读写器的数码管显示数字 参 数:HANDLE icdev:rf_init()返回的设备描述符 unsigned char pt_mode: 小数点显示模式 取值如下: 0 — 小数点熄灭 1 — 个位后的小数点位亮 2 — 十位后的小数点位亮 3 — 百位后的小数点位亮 4 — 千位后的小数点位亮 unsigned int digit:要显示的数 返 回:成功则返回 0 例:int st; st=rf_disp(icdev,0,1234); /*显示整数 1234*/ (26)__int16 rf_reset(HANDLE icdev,unsigned __int16 _Msec); 功 能:射频头复位 参 数:HANDLE icdev:rf_init()返回的设备描述符 unsigned __int16 _Msec:复位时间,0~500 毫秒有效 返 回:成功则返回 0 例:st=rf_reset(icdev,60); (27)__int16 rf_HL_initval(HANDLE icdev,unsigned char _Mode,unsigned char _SecNr, unsigned long _Value,unsigned char *_Snr); 功 能:高级初始化值 参 数:HANDLE icdev:rf_init()返回的设备描述符 unsigned char _Mode:寻卡模式,为 0、1 或 2 Mode=0: IDLE 模式,一次只操作一张卡 1:ALL 模式,一次可操作多张卡 2:只对给定序列号的卡操作 unsigned char _SecNr:扇区号(0~15) unsigned long _Value:初始值 unsigned char *_Snr:卡的序列号地址 返 回:成功则返回 0 例:st=rf_HL_initval(icdev,0,3,100L,&Snr); 注:高级函数为几个低级函数的组合,对卡操作之前不必使用 rf_card()和 rf_authentication()函数。 (28)__int16 rf_HL_decrement(HANDLE icdev,unsigned char _Mode, unsigned char _SecNr,unsigned long _Value, unsigned long _Snr,unsigned long *_NValue, unsigned long *_NSnr); 功 能:高级减值函数 参 数:HANDLE icdev:rf_init()返回的设备描述符 unsigned char _Mode:寻卡模式,同 HR_initval(); unsigned char _SecNr:扇区号(0~15)
13

RF 系列非接触式 IC 卡读写器使用手册

unsigned long _Value:要减的值 unsigned long _Snr:卡的序列号 unsigned long *_NValue:减后的值的地址 unsigned long *_NSnr:返回卡的序列号地址 返 回:成功则返回 0 例:st=rf_HL_decrement(icdev,0,2,1,Snr,&Nvalue,&NSnr); (29)__int16 rf_HL_increment(HANDLE icdev,unsigned char _Mode, unsigned char _SecNr,unsigned long _Value, unsigned long _Snr,unsigned long *_NValue, unsigned long *_NSnr); 功 能:高级增值函数 参 数:HANDLE icdev:rf_init()返回的设备描述符 unsigned char _Mode:寻卡模式,同 HL_initval(); unsigned char _SecNr:扇区号(0~15) unsigned long _Value:要加的值 unsigned long _Snr:卡的序列号 unsigned long *_NValue:加后的值的地址 unsigned long *_NSnr:返回卡的序列号地址 返 回:成功则返回 0 例:st=rf_HL_increment(icdev,0,2,1,Snr,&Nvalue,&NSnr); (30)__int16 rf_HL_write(HANDLE icdev,unsigned char _Mode,unsigned char _Adr, unsigned long *_Snr,unsigned char *_Data); 功 能:高级写数据 参 数:HANDLE icdev:rf_init()返回的设备描述符 unsigned char _Mode:寻卡模式,为 0、1 或 2 Mode=0: IDLE 模式,一次只操作一张卡 1:ALL 模式,一次可操作多张卡 2:只对给定序列号的卡操作 unsigned char _Adr:块地址(1~63) unsigned long *_Snr:卡的序列号地址 unsigned char *_Data:写入的数据 返 回:成功则返回 0 例:st=rf_HL_write(icdev,0,3,&Snr,data); (31)__int16 rf_HL_read(HANDLE icdev,unsigned char _Mode,unsigned char _Adr, unsigned long _Snr,unsigned char *_Data, unsigned long *_NSnr); 功 能:高级读数据 参 数:HANDLE icdev:rf_init()返回的设备描述符 unsigned char _Mode:同 HL_write(); unsigned char _Adr:块地址(0~63) unsigned long _Snr:卡的序列号 unsigned char *_Data:读出的数据 unsigned long *_NSnr:返回卡的序列号地址
14

RF 系列非接触式 IC 卡读写器使用手册

返 回:成功则返回 0 例:st=rf_HL_read(icdev,0,3,Snr,data,&NSnr);

2.4 库函数使用范例
参见随机盘\EXAMPLES 目录下各种开发平台的应用范例

2.5 函数错误类型代码
十六进制 -0x80 -0x81 -0x82 -0x84 -0x87 错误类型 读错误 写错误 通讯错误 超时错误 格式错误

15

RF 系列非接触式 IC 卡读写器使用手册

附录 1
特性:

Mifare One 射频卡的特性

1K 字节 EEPROM 分为16个扇区,每个扇区包括4 块,每块16个字节,以块为存取单位 用户可自定义每个存储块的访问条件 每张卡有唯一序列号,为32位 具有防冲突机制,支持多卡操作 非接触传送数据和无源 (卡中无电源) 至少10 年数据保存期 至少10万次擦写 读写距离: 在100mm 内(与天线形状有关) 工作频率: 13.56 MHZ 通信速率: 106kbit/s 典型交易过程: <100 ms(包括备份管理) 温度范围: -20℃~50℃ 存储结构: 1. 1024*8 位 EEPROM 存储区分为16 个扇区,每扇区分为4块(块0, 块1, 块2, 块 3),按块号编址为0~63共64块。存储区的分布图如下: 扇区号 序号 0 0 1 2 3 0 1 1 2 3 A 密码 存取控制 B 密码 A 密码 存取控制 B 密码 12345 6789 10 11 12 13 14 15 名称 厂商代码区 数据区 数据区 扇区 0 控制块区 数据区 数据区 数据区 扇区 1 控制块区 块号 0 1 2 3 4 5 6 7

∶ ∶

0 15 1 2 3 A 密码 存取控制 B 密码
16

数据区 数据区 数据区 扇区 15 控制块区

60 61 62 63

RF 系列非接触式 IC 卡读写器使用手册

厂商代码区: 第0扇区的块0(即绝对地址0块)用于存放厂商代码,已经固化,不可 更改。 最高位 X X X X 0 0 1 最低位 Philips 公司厂商代码 0

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

系列号 检查字节

厂商代码区

数据区: 所有扇区都有3块(每块16个字节)存储数据。 (扇区0只有两个数据块和 一个只读厂商代码块) 值块: 值块可用作电子钱包(有效的命令有: read,write,increment,decrement,restore,transfer).每个值块的值为4个字节。 2. 扇区控制块(块 3): 每个扇区都有一个扇区控制块包括: 密码 A 和密码 B(可选), 读取时返回 “0” 访问该扇区4块的存取控制 如果不需要密码 B,块3的最后6个字节可用作数据。 控制属性 各扇区的块 0、块 1、块 2 为数据块,用于存贮数据;块 3 为控制块,存放密码 A、存取 控制、密码 B,其结构如下: A0A1A2A3A4A5 FF 07 80 69 B0B1B2B3B4B5 密码 A(6 字节) 存取控制(4 字节) 密码 B(6 字节) 每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取控制。在 存取控制中每个块都有相应的三个控制位,定义如下: 块 0: C10 C20 C30 块 1: C11 C21 C31 块 2: C12 C22 C32 块 3: C13 C23 C33 三个控制位以正和反两种形式存在于存取控制字节中,决定了该块的访问权限(如进行减值 操作必须验证 KEY A,进行加值操作必须验证 KEY B,等等) 。三个控制位在存取控制字节中的位 置如下(字节 9 为备用字节,默认值为 0x69) : bit 7 字节 6 字节 7 字节 8 C23_b C13 C33 6 C22_b C12 C32 5 C21_b C11 C31 4 C20_b C10 C30
17

3 C13_b C33_b C23

2 C12_b C32_b C22

1 C11_b C31_b C21

0 C10_b C30_b C20

RF 系列非接触式 IC 卡读写器使用手册

(注: _b 表示取反) 其中,黑色区控制块 3,蓝色区控制块 2,绿色区控制块 1,红色区控制块 0。 数据块(块 0、块 1、块 2)的存取控制如下: 控制位(X=0..2) C1X C2X C3X 访 问 条 件 (对块 0、1、2) Read Write Increment Decrement transfer restore KeyA|B Never Never KeyA|B KeyA|B Never Never Never

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

0 0 0 0 1 1 1 1

KeyA|B KeyA|B KeyA|B KeyA|B KeyA|B KeyB KeyB Never

KeyA|B Never KeyB KeyB Never KeyB Never Never

KeyA|B Never Never KeyB Never Never Never Never

(KeyA|B 表示密码 A 或密码 B,Never 表示任何条件下不能实现) 例如:当块 0 的存取控制位 C10 C20 C30=100 时,验证密码 A 或密码 B 正确后可读;验证密 码 B 正确后可写;不能进行加值、减值操作。 控制块(块 3)的存取控制与数据块(块 0、1、2)不同,它的存取控制如下: 控制位 C13 0 0 1 1 0 0 1 1 C23 0 1 0 1 0 1 0 1 C33 0 0 0 0 1 1 1 1 密码 A Read Never Never Never Never Never Never Never Never Write KeyA|B Never KeyB Never KeyA|B KeyB Never Never 存取控制 Read KeyA|B KeyA|B KeyA|B KeyA|B KeyA|B KeyA|B KeyA|B KeyA|B Write Never Never Never Never KeyA|B KeyB KeyB Never Read KeyA|B KeyA|B Never Never KeyA|B Never Never Never 密码 B Write KeyA|B Never KeyB Never KeyA|B KeyB Never Never

例如:当块 3 的存取控制位 C13 C23 C33=100 时,表示: 密码 A: 不可读,验证 KEYB 正确后,可写(更改) 。 存取控制:验证 KEYA 或 KEYB 正确后,可读不可写。 密码 B: 不可读,验证 KEYB 正确后,可写。
18

RF 系列非接触式 IC 卡读写器使用手册

工作原理 卡片的电气部分只由一个天线和 ASIC 组成。 天线:卡片的天线是只有几组绕线的线圈,很适于封装到 IS0 卡片中。 ASIC: 卡片的 ASIC 由一个高速 (106KB 波特率) RF 接口, 的 一个控制单元和一个 8K 位 EEPROM 组成。 读写器向 M1 卡发一组固定频率的电磁波,卡片内有一个 LC 串联谐振电路,其频率与讯写 器发射的频率相同,在电磁波的激励下,LC 谐振电路产生共振,从而使电容内有了电荷,在这个 电容的另一端,接有一个单向导通的电子泵,将电容内的电荷送到另一个电容内储存,当所积累 的电荷达到 2V 时,此电容可做为电源为其它电路提供工作电压,将卡内数据发射出去或接取读 写器的数据。 功能介绍: 1. Request Standard/ALL: 一张卡上电复位后就可以响应读写器发出的寻卡命令。读 写器向天线范围内的所有卡片发出命令,并识别卡片的型号。 2. Anticollision Loop:在防冲突循环中将读出卡片的系列号。如果有几张卡 片都在读写器的读写范围内,可以通过唯一的系列号区别它们,并选中其中一张卡 片,其余没有选中的卡片将进入等待状态,等待下一次寻卡命令。 3. Select Card: 用选卡命令读写器选择一张卡片来进行密码验证和有关的 存储操作。卡片将对代码为08h 的选卡命令 ATS 做出响应,该命令决定了所选卡 片的类型。 4. 3 Pass Authentication: 读写器选中一张卡片后就指定了后续存取访问的存储空间, 并以次响应开始3重密码验证。 5. HALT: 调用 rf_halt () 函数来停止对卡片的所有操作,卡片进入 HALT 状态。 6. Memory Operations: 密码验证通过后,可进行以下操作: 读块: 读取一个存储块的内容 写块: 写入一个存储块的内容. 减值: 减少一个块的值并保存在内部寄存器内 增值: 增加一个块的值并保存在内部寄存器内 保存: 将块的内容写入数据寄存器中 传输: 将内部寄存器的内容写入某一块中 注:用 rf_ restore () 函数将某一块的内容传到内部寄存器内, 然后用 rf_truansfer() 函数将内部 寄存器的内容传到卡片其余块中。通过这种方法,可以将数据从一块传向另一块。

19


相关文章:
RF系列感应式IC卡读写器技术操作使用方法规格书
RF系列感应式IC卡读写器技术操作使用方法规格书_电子/电路_工程科技_专业资料。峰华科技是一家以研制、开发、生产、经营智能IC卡,嵌入式IC卡读写模块及桌面型IC卡...
读写器操作说明(实际操作应用)
读写器操作说明(实际操作应用)_机械/仪表_工程科技_专业资料。ZKR6806M 嵌入式...本模块只用到 RF 通道 1, 所以只需 要设置 RF 通道 1 的功率即可。通过...
MF06读写器使用说明书
MF06 Mifare 系列射频卡 通用读写器 使用说明书 版本 2.1 1 目第一章 MF06 通用读写器系统描述 1.1 用途说明 1.2 技术指标 1.3 系统结构 1.4 型号及...
RF500读写器说明书
GAC-RF500 系列非接触式 IC 卡读写器使用手册 Page: 1 第一章 GAC-RF500 非接触式读写器简介 1.1 概述 深圳市捷安凯科技有限公司是以开发 IC 卡终端设备...
HB-500B读写器参数配置程序使用说明书
HB-500B 系列读写器 参数配置程序使用说明书 参数配置程序使用说明读写器采用...? 功率设置:读写器RF功率值设定,功率有效值范围是0-150,功率值越大,读写器...
2411E读写器使用说明书V0.1
Rfid射频介绍Rfid射频介绍隐藏>> 2411E 读写器使用说明书 2411E 2411E 读写器使用说明书 2411E 读写器是本公司自主研制开发的 RFID 系列产品之一。该读写器工...
600系列说明书
RF系列FG24-600风光互补... 7页 1下载券 PSIU600系列智能单元说明... 15页 2下载券 Ps600系列使用说明书 73页 2下载券 RD600系列IC卡读写器使用... 27...
2421E读写器使用说明书V0.1
Rfid射频读写器使用说明Rfid射频读写器使用说明隐藏>> 2421E 读写器使用说明书...货车定位装卸、金融押运、地铁定位等应用系统而专门 研制开发的 RFID 系列产品之...
晨风M1读写器使用说明
就会导致卡片 不能再使用,请务必小心使用(控制位资料参见四:射频卡介绍) 5.4 ...读写器动态库使用说明 13页 免费 WS-R-C系列读写器二次开... 28页 免费...
通用125K读写器测试程序使用说明
? 切换:在读卡和写卡操作之间切换。 3.写数据块:窗口如图: ? 第 3 页共 7页 写加密的射频卡:选择该选项在执行写卡以前读写器先是用用户的提供的密码 ...
更多相关标签:
rfid读写器使用说明 | rf读写器 | ukb 500 rf使用说明书 | winperf使用说明 | 25系列读写器的制作 | 松拓本源系列使用说明 | sew电机k系列使用说明 | 磁条卡读写器使用方法 |