ic卡读写器怎么写

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ic卡读写器:非接触式IC卡的读写程序怎么写?

关IC卡没有任何关系,主要是读卡器的问题,看你的是串口,还是USB啊,如果是USB的应该就有相应的动态库,如果说是串口就按相关的协议进行串口读写即可.

有windows32位动态库,不知道是干什么用,在哪里用的。发出来大家帮帮看看怎么用。ic卡读写器参考:[/] RF 系列非接触式 IC 卡6

2.2 库函数一览表

序号函数说明备注

1 rf_init () 初始化串口

2 rf_exit () 关闭串口

3 rf_card () 寻卡

4 rf_authentication () 验证卡中某一扇区密码

5 rf_halt () 中止卡操作

6 rf_read () 读数据(字符)

7 rf_read_hex () 读数据(十六进制)

8 rf_write () 写数据(字符)

9 rf_write_hex () 写数据(十六进制)

10 rf_intival () 初始化块值

11 rf_increment () 加值

12 rf_decrement () 减值

13 rf_readval () 读值

14 rf_restore () 将块数据传到卡的内部寄存器

15 rf_transfer () 将寄存器的数据传到块中

16 rf_load_key () 向读写器下载授权密码

17 rf_load_key_hex () 向读写器下载授权密码(十六进

制)

C 语言库中未提供

此函数

18 rf_beep () 蜂鸣器鸣叫

19 rf_disp () 数码管显示数据

20 rf_request () 寻卡请求 FoxPro For Dos 库

中未提供此函数

21 rf_anticoll () 防止卡冲突 FoxPro For Dos 库

中未提供此函数

22 Rf_select () 选取一个给定序列号的卡 FoxPro For Dos 库

中未提供此函数

23 Rf_encrypt () DES 加密算法

24 Rf_decrypt () DES 解密算法

25 Rf_get_status () 读取读写器的版本号

26 Rf_reset () 射频头复位

27 Rf_initval () 高级初始化值

28 Rf_HL_decrement () 高级增值操作

29 Rf_HL_inctement () 高级减值操作

30 Rf_HL_write () 高级写

31 Rf_HL_read () 高级读

32 Rf_initval_ml () ML 卡初始化值

33 Rf_decrement_ml () ML 卡减值操作

34 Rf_readval_ml () ML 卡读值操作

这个是具体的函数库:

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 *_S nr);

功能:寻卡,能返回在工作区域内某张卡的序列号

参数: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;

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

8

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 *_Dat a);

功能:读数据,一次必须读一个块

参数: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*/

相关文档
最新文档