RF系列读写器使用说明_第1页
RF系列读写器使用说明_第2页
RF系列读写器使用说明_第3页
RF系列读写器使用说明_第4页
RF系列读写器使用说明_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、rf系列非接触式 ic 卡读写器使用手册rf 系列非接触式ic 卡读写器使用手册2目录一rf 系列非接触式ic 卡读写器简介. 31.1 概述 .3 1.2 特性 .3 1.3 设备接口 .3 1.4 读写器装箱清单.4 1.5 程序安装 .4 1.6 软件 .4 1.7 技术指标 .4 二库函数说明 .52.1 函数使用说明.5 2.2 库函数一览表.6 2.3windows 32 位动态库 .7 2.4 库函数使用范例.15 2.5 函数错误类型代码.15 附录 1 mifare one 射频卡的特性. 16rf 系列非接触式ic 卡读写器使用手册3一rf 系列非接触式ic 卡读写器简介1

2、.1 概述rf 系列非接触式ic 卡读写器是由主机、天线、串行接口等组成,通过rs232 串行接口能实现同 pc 机的连接。随机提供的接口函数库可满足用户二次开发的需要;其完善、可靠的接口函数,支持访问射频卡的全部功能。目前该设备已广泛地应用于门禁、考勤及高速公路、油站、停车场、公交等收费系统中。1.2特 性z适用于符合mifare标准的非接触卡z支持 mifare标准- 工作频率 13.56mhz - 以 106kbit/s 速率高速访问射频卡- 数据加密和双向验证- 防冲突,可同时读取多张射频卡- 通信错误自动侦测z功能操作:读、写、初始化值、加值、减值、读值和装载密码等z通讯接口: rs

3、232 串口 /usb 接口z波特率: 9600115200 bit/s ,自动侦测z操作距离:平均50mm z数码管显示:8 位数码管显示z控制蜂鸣器鸣响功能z提供丰富的二次开发平台和应用范例1.3设 备接口rs232 串口读写器内置天线dc5v 电源rs232 串行接口用于与上位pc 联机通讯;rf卡rf 系列非接触式ic 卡读写器使用手册41.4读 写器装箱清单包装盒内配有:读写器,通讯线,驱动软盘, 5v 电源 (独立包装 ) 1.5程 序安装安装步骤:a.将通讯线一端接到读写器上,另一端接至计算机串口上;b.接通读写器电源; c. 打开计算机,进入windows 98 或 windo

4、ws2000/me/xp,将驱动软盘插入软驱; e. 运行 setup 文件注: 安装结束后, 在 program files下创建一个rfreader的子目录, 所有软件均在此目录下。1.6软 件rf 系列读写器软件包括:演示程序、函数库和应用范例a. 演示程序提供 windows 版演示程序 : demorfexe。b. 函数库c 语言接口函数库windows32位动态库c. 应用范例examples 目录下提供各种开发平台的应用范例,包括vb 、vc 、delphi 、c等。1.7技 术指标z支持 mifare 标准- 发射频率: 13.56mhz - 访问卡速率: 106kbit/s

5、z接口功能: rs232 串行接口 /usb 接口z波特率: 9600115200bit/s ,自动侦测z工作电源: dc 5v5%z读写距离:平均为50mm(mifare 标准卡读写距离)z最大功耗: 200mw z环境温度: 0 50z相对湿度: 30% 95% z重量:约 200 克rf 系列非接触式ic 卡读写器使用手册5二库函数说明2.1 函数使用说明函数调用应遵循如下规则:(1)程序开始,首先要调用rf_init( ) 函数初始化串口。(2)用 rf_load_kdy() 将卡中某一扇区密码输入到读写器中,一次只能操作一个扇区。(3)调用 rf_card() 函数(相当连续调用rf

6、_request() 、anticoll() 、select()三个函数),成功可返回卡的序列号。(4)用 rf_anthetication() 函数验证设备密码和卡中密码,一次只能验证一个扇区。(5)对已验证过的扇区可进行读、写、初始化值、 加值、减值等功能操作。对其它扇区的读、写操作必须重复上述(3) 、 ( 4)过程。(6)由于高级函数集成了若干低级函数,所以调用前可不必运行(3) 、 (4)过程。(7)对某张卡操作完成后,应用rf_halt() 函数中止对该卡的操作。(8)程序正常退出或因错误退出之前,要用rf_exit() 函数关闭串口;否则再次执行初始化串口时将出错。(9)有关调用

7、各种函数库的具体方法,请参考examples目录下的使用范例。rf 系列非接触式ic 卡读写器使用手册5二库函数说明2.1 函数使用说明函数调用应遵循如下规则:(1)程序开始,首先要调用rf_init( ) 函数初始化串口。(2)用 rf_load_kdy() 将卡中某一扇区密码输入到读写器中,一次只能操作一个扇区。(3)调用 rf_card() 函数(相当连续调用rf_request() 、anticoll() 、select()三个函数),成功可返回卡的序列号。(4)用 rf_anthetication() 函数验证设备密码和卡中密码,一次只能验证一个扇区。(5)对已验证过的扇区可进行读、

8、写、初始化值、 加值、减值等功能操作。对其它扇区的读、写操作必须重复上述(3) 、 ( 4)过程。(6)由于高级函数集成了若干低级函数,所以调用前可不必运行(3) 、 (4)过程。(7)对某张卡操作完成后,应用rf_halt() 函数中止对该卡的操作。(8)程序正常退出或因错误退出之前,要用rf_exit() 函数关闭串口;否则再次执行初始化串口时将出错。(9)有关调用各种函数库的具体方法,请参考examples目录下的使用范例。rf 系列非接触式ic 卡读写器使用手册72.3windows 32 位动态库(0)handle usb_init(); 功 能:初始化usb通讯参 数:无返 回:成

9、功则返回设备描述符( 0) 例: handle icdev; icdev=usb_init(); (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 icde

10、v: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 例: _int1

11、6 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:验证密码的方式取值如

12、下: 0 用 keyset0 和 keya验证 1 用 keyset1 和 keya验证rf 系列非接触式ic 卡读写器使用手册8 2 用 keyset2 和 keya验证 4 用 keyset0 和 keyb验证 5 用 keyset1 和 keyb验证 6 用 keyset2 和 keyb验证 unsigned char _secnr:要验证密码的扇区号(0 15) 返 回:成功则返回 0 例: _int16 st; st=rf_authentication(icdev,0,0); 注: 每张卡上有a密码和 b密码,可根据实际需要确定是否使用b密码,这由卡的存取控制位来决定。此外,读写器中

13、可以存放三套密码,可用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

14、 _adr,unsigned char *_data); 功 能:读数据,一次必须读一个块参 数: handle icdev:rf_init()返回的设备描述符 unsigned char _adr:块地址 (0 63) unsigned char *_data:读出数据返 回:成功则返回0 例: _int16 st; static unsigned char data16 st=rf_read(icdev,0,data); (7)_int16 rf_read_hex(handle icdev,usigned char _adr,unsigned char *_data); 功 能:以十六进制

15、读数据,一次必须读一个块参 数: handle icdev:rf_init()返回的设备描述符 unsigned char _adr:块地址 (0 63) unsigned char *_data:读出数据返 回:成功则返回0 例: _int16 st; static unsigned char data32 st=rf_read_hex(icdev,0,data); /*读出数据格式如rf_write_hex*/ (8)_int16 rf_write(handle icdev,unsigned char _adr,unsigned char *_data); 功 能:写数据 , 一次必须写一

16、个块参 数: handle icdev:rf_init()返回的设备描述符 unsigned char _adr:块地址 (1 63) rf 系列非接触式ic 卡读写器使用手册9 unsigned char *_data:写入数据,块长度为16 b 返 回:成功则返回 0 例: _int16 st; static unsigned char data16 /* 给 data 赋值 */ st=rf_write(icdev,1,data); /*写入块 1*/ (9)_int16 rf_write_hex(handle icdev,unsigned char _adr,unsigned char

17、 *_data); 功 能:以十六进制写数据, 一次必须写一个块参 数: handle icdev:rf_init()返回的设备描述符 unsigned char _adr:块地址 (1 63) unsigned char *_data:写入数据,块长度为32byte 返 回:成功则返回 0 例: _int16 st; unsigned char data32=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa; /* data赋值为 16 个 0 xaa*/ st=rf_write_hex(icdev,1,data); /*写入块 1*/ (10)_int16 rf_init

18、val(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*/ 注: 作为数值处理的块,是以特殊格式存贮的,所以必须用初始化值函

19、数初始化,初始化之后方可进行读、减、加的处理。(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 的

20、值增加value*/ (12)_int16 rf_decrment(handle icdev,unsigned char _adr,unsigned long _value); 功 能:块减值操作参 数: handle icdev:rf_init()返回的设备描述符 unsigned char _adr:块地址 (1 63) rf 系列非接触式ic 卡读写器使用手册10 unsigned long _value:要减少的值返 回:成功则返回 0 例: _int16 st; unsigned long value; value=1; st=rf_decrement(icdev,1,value);

21、 /*将块 1 的值减少value*/ (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*/

22、 (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,u

23、nsigned 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 装入密码参 数: ha

24、ndle 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 tk27= 0 xa0,0 xa1,0 xa2,0 xa3,0 xa4,0 xa5, rf 系列非接触式ic 卡读写器使用手册11 0 xb0,0 xb1,0 xb2,0 xb3,0 xb4,0 x

25、b5 ; /*装入 1 扇区的 a密码 0 套, */ if(rf_load_key(icdev,0, 1,tk1)!=0) printf(load key error!); rf_exit(); exit(1); 注: *_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

26、 _mode :同 rf_authentication() unsigned char _secnr:同 rf_authentication() unsigned char *_nkey:要写入读写器ram 中的卡密码返 回:成功则返回 0 例: /key a unsigned char tk= a0a1a2a3a4a5/*等同于 0 xa0_.0 xa5*/ /*装入 1 扇区的 a密码 |0 套, */ if(rf_load_key_hex(icdev,0, 1,tk)!=0) printf(load key error!); rf_exit(); exit(1); 注: *_nkey 是

27、与卡中的密码相对应的密码。(18)_int16 rf_get_status(unsigned char *_status); 功 能:取得读写器的版本号参 数: unsigned char *_status:返回读写器版本信息返 回:成功则返回 0 例: int st; unsigned char status32; st=rf_get_status(status); (19) _int16 rf_request(int icdev,unsigned char _mode, unsigned int *tagtype); 功 能:寻卡请求参 数: handle icdev: 设备描述符 uns

28、igned char _mode:寻卡模式,为0 或 1 mode=0:idle 模式,一次只选一张卡 mode=1:all 模式,一次可选多张卡 unsigned int *tagtype:指向返回的卡类型值返 回:成功则返回 0 例: int st; rf 系列非接触式ic 卡读写器使用手册12 st=rf_request(icdev,idle,tagtype); 注: 对卡操作前先执行寻卡指令(20)_int16 rf_anticoll(int icdev,unsigned char _bcnt,unsigned long *_snr); 功 能:防止卡冲突;返回卡的序列号参 数: ha

29、ndle icdev: 设备描述符 unsigned char _bcnt: 预选卡所用的位数,标准值为0(不考虑系列号) 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:设备描述符 unsigne

30、d long _snr:卡序列号 unsigned char *_size:指向返回的卡容量的数据返 回:成功则返回 0 例: int st; snr=239474; st=rf_select(snr,size); /* 返回 239474 卡的容量 */ 注: 上述rf_card()寻卡函数包含了1921 三个低级函数。每次对卡重新操作时首先要调用rf_card()函数(或连续调用1921 三个函数)。(22)_int16 rf_encrypt(char *key,char *ptrsource,unsigned _int16 msglen, char *ptrdest); 功 能: des

31、算法加密参 数: 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

32、); 功 能: des算法解密函数参 数: char *key:加密的密码,长度为8 char *ptrsource:加密后密文 unsigned _int16 msglen:原文长度 char *ptrdest:原文返 回:成功则返回0 例:略,使用过程与rf_encrypt相反。rf 系列非接触式ic 卡读写器使用手册13(24)_int rf_beep(unsigned int _msec); 功 能:蜂鸣参 数: unsigned int _msec:蜂鸣时间的长短,单位是10 毫秒;返 回:成功则返回 0 例: int st; st=rf_beep(10); /*鸣叫 100 毫秒

33、*/ (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); /*显示整数1

34、234*/ (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 *_

35、snr); 功 能:高级初始化值参 数: handle icdev:rf_init()返回的设备描述符 unsigned char _mode:寻卡模式,为0、1 或 2 mode=0: idle模式,一次只操作一张卡 1:all 模式,一次可操作多张卡 2:只对给定序列号的卡操作 unsigned char _secnr:扇区号( 015) unsigned long _value:初始值 unsigned char *_snr:卡的序列号地址返 回:成功则返回 0 例: st=rf_hl_initval(icdev,0,3,100l,&snr); 注: 高级函数为几个低级函数的组合

36、,对卡操作之前不必使用rf_card()和 rf_authentication()函数。rf 系列非接触式ic 卡读写器使用手册14(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 _mod

37、e:寻卡模式,同hr_initval(); unsigned char _secnr:扇区号( 015) 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,

38、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:扇区号( 015) unsigned long _value:要加的值 unsigned long _snr:卡的序列号 unsigned long *_nvalue:

39、加后的值的地址 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:寻卡模式

40、,为0、1 或 2 mode=0: idle模式,一次只操作一张卡 1:all模式,一次可操作多张卡 2:只对给定序列号的卡操作 unsigned char _adr:块地址( 163) 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,un

41、signed char *_data, rf 系列非接触式ic 卡读写器使用手册15 unsigned long *_nsnr); 功 能:高级读数据参 数: handle icdev:rf_init()返回的设备描述符 unsigned char _mode:同 hl_write(); unsigned char _adr:块地址( 063) unsigned long _snr:卡的序列号 unsigned char *_data:读出的数据 unsigned long *_nsnr:返回卡的序列号地址返 回:成功则返回 0 例: st=rf_hl_read(icdev,0,3,snr,d

42、ata,&nsnr); 2.4 库函数使用范例参见随机盘examples 目录下各种开发平台的应用范例2.5 函数错误类型代码十六进制错误类型 -0 x80 读错误 -0 x81 写错误 -0 x82 通讯错误 -0 x84 超时错误 -0 x87 格式错误rf 系列非接触式ic 卡读写器使用手册16附录 1 mifare one 射频卡的特性特性 : z1k 字节 eepromz分为 16个扇区,每个扇区包括4 块,每块 16个字节,以块为存取单位z用户可自定义每个存储块的访问条件z每张卡有唯一序列号,为32位z具有防冲突机制,支持多卡操作z非接触传送数据和无源(卡中无电源 )z至少

43、 10 年数据保存期z至少 10万次擦写z读写距离 : 在100mm 内(与天线形状有关)z工作频率 : 13.56 mhzz通信速率 : 106kbit/sz典型交易过程 : 100 ms(包括备份管理 )z温度范围 : -2050存储结构 : 1.1024*8 位 eeprom存储区分为 16 个扇区,每扇区分为4块(块0, 块1, 块2, 块3),按块号编址为063共64块。存储区的分布图如下: 扇区号序号1 2 3 4 5 6 7 8 9 10 11 12 13 14 15名称块号0 厂商代码区0 0 1 数据区1 2 数据区2 3 a 密码存取控制b 密码扇区 0 控制块区3 0 数

44、据区4 1 1 数据区5 2 数据区6 3 a 密码存取控制b 密码扇区 1 控制块区7 0 数据区60 15 1 数据区61 2 数据区62 3 a 密码存取控制b 密码扇区 15 控制块区63 rf 系列非接触式ic 卡读写器使用手册17厂商代码区 : 第0扇区的块 0(即绝对地址 0块)用于存放厂商代码,已经固化,不可更改。最高位最低位philips 公司厂商代码0 1 2 3 4 5 6 7 8 9 101112 13 14 15 系列号厂商代码区检查字节数据区 : 所有扇区都有 3块(每块 16个字节)存储数据。(扇区 0只有两个数据块和一个只读厂商代码块) 值块 : 值块可用作电子

45、钱包(有效的命令有:read,write,increment,decrement,restore,transfer ).每个值块的值为4个字节。2.扇区控制块 (块 3): 每个扇区都有一个扇区控制块包括:z密码 a 和密码 b(可选 ), 读取时返回 “ 0” z访问该扇区 4块的存取控制如果不需要密码b,块 3的最后 6个字节可用作数据。控制属性各扇区的块0、块 1、块 2 为数据块 ,用于存贮数据;块3 为控制块 ,存放密码a、存取控制、密码b,其结构如下: a0a1a2a3a4a5 ff 07 80 69 b0b1b2b3b4b5 密码 a(6 字节 ) 存取控制 (4 字节 ) 密码

46、 b(6 字节 ) 每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取控制。在存取控制 中每个块都有相应的三个控制位 , 定义如下:块 0: c10 c20 c30 块 1: c11 c21 c31 块 2: c12 c22 c32 块 3: c13 c23 c33 三个控制位以正和反两种形式存在于存取控制字节中,决定了该块的访问权限(如进行减值操作必须验证key a,进行加值操作必须验证key b,等等)。三个控制位在存取控制字节中的位置如下(字节9 为备用字节,默认值为0 x69) :bit 7 6 5 4 3 2 1 0 字节 6 c23_b c22_b c21_b

47、 c20_b c13_bc12_b c11_b c10_b 字节 7 c13 c12 c11 c10 c33_bc32_b c31_b c30_b 字节 8 c33 c32 c31 c30 c23 c22 c21 c20 x x x x 0 0 1 0 rf 系列非接触式ic 卡读写器使用手册18(注: _b 表示取反)其中,黑色区控制块 3,蓝色区 控制 块 2,绿色区 控制 块 1,红色区 控制 块 0。数据块 (块 0、块 1、块 2)的存取控制如下:控制位 (x=0.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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论