MUR100上位机库函数及演示软件使用说明.docx

上传人:b****5 文档编号:7923407 上传时间:2023-01-27 格式:DOCX 页数:16 大小:129.20KB
下载 相关 举报
MUR100上位机库函数及演示软件使用说明.docx_第1页
第1页 / 共16页
MUR100上位机库函数及演示软件使用说明.docx_第2页
第2页 / 共16页
MUR100上位机库函数及演示软件使用说明.docx_第3页
第3页 / 共16页
MUR100上位机库函数及演示软件使用说明.docx_第4页
第4页 / 共16页
MUR100上位机库函数及演示软件使用说明.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

MUR100上位机库函数及演示软件使用说明.docx

《MUR100上位机库函数及演示软件使用说明.docx》由会员分享,可在线阅读,更多相关《MUR100上位机库函数及演示软件使用说明.docx(16页珍藏版)》请在冰豆网上搜索。

MUR100上位机库函数及演示软件使用说明.docx

MUR100上位机库函数及演示软件使用说明

MUR-100上位机库函数及演示软件使用说明 

         

USB驱动里面分别有WIN98和WIN2000_xp的驱动安装文件

首先把读卡器连接到主机的USB口上

要求安装这种硬件的驱动程序

1.对于WIN98

第一次连接到USB口时出现的提示框如下

 点击下一步

选择第一个选项出现下图

 选择指定位置选项从中选择目录出现下图

点击下一步

点击完成按钮就完成了对USB驱动的安装

点击下一步

选择第一个选项出现下图

选择指定一个位置选项出现下图

 点击浏览按钮USB驱动安装\win2000_xp\driversÈ»ºóµãÈ·¶¨°´Å¥

点击完成按钮就完成了对USB驱动的安装

 演示软件的使用 

开始进入系统时界面如下图

  

1. 选择要进行操作的读卡器类型 

 开始进行操作前这里选择MUR-100 

  

 

2. 设置连接参数 

 接下来从设置菜单中选择参数选择选项

  此时会弹出一个对话框 

 

 

3. 连接 

 接着从文件菜单中选择连接选项进行连接

  

 连接上后系统界面如下图

  此时你要选择你想操作的卡型号

  

3.1 选择MF1 S50/70卡 

接下来的操作有两个分支

只要你选择好要进行操作的各项参数写入数据写入数值和加减还有装载密钥以及更改密钥按钮进行操作了你可以直接双击左边树列表框中的某个数据块来直接选择此数据块这里有必要详细说明一下装载密钥以及更改密钥的功能

 

 在其中你可以进行装载密钥操作在以后要验证卡密钥

的时候就可以调用RC500USB_authentication2这个函数来进行验证密钥操作 

3.1.1.2 更改密钥 

 点击此按钮会弹出一个更改密钥对话框

  当你设置好验证参数后读取原始参数此时界面如下

  在对话框中的两个表格中颜色变为反白的一行表示为对应的卡的原始访问条件

在设置好新密钥A和B以及新访问条件后就可以点击按钮进行修改

 

 

 

3.1.2  循环测试 

 要进行循环操作时 

  此时弹出一个对话框

 

 从中你可以选择你循环测试时所要进行的操作每次读写完将卡挂起

就开始对卡进行读写操作要进行第二次操作的话

然后再放进去才行 

  此时你可以点击循环测试按钮进行测试在这之前首先得确保你已经选择好要进行操作的各项参数要改变只能先中止循环测试再进行更改你只要把卡放到感应区就能自动进行指定的操作

循环测试选项前打勾表示已经选择

 

 在密钥编辑框中输入卡的密钥后点击按钮则会弹出一个更改密钥对话框来进行更改密钥操作

 

 点击速度测试按钮可以进行读写卡速度测试

 

 

 库函数说明 

1.1unsignedchar__stdcallRC500USB_init(

入口参数

此函数的功能是打开USB

函数功能 

 

1.3unsignedchar__stdcallRC500USB_request(unsignedcharmode,unsignedshort&tagtype

入口参数

HALT状态的除外

此函数发送Request命令

返回值否则返回错误码

bcnt:

为预选卡所分配的位的个数

此函数开始防冲突操作

0表示成功

1.5unsignedchar__stdcallRC500USB_anticoll2(unsignedcharencoll,unsignedcharbcnt,unsignedlong&snr

入口参数

则使能多张卡进入天线区则不允许多张卡进入

通常Bcnt=0

snr:

返回卡的序号

函数功能

返回值否则返回错误码

snr:

卡的序号

size:

返回卡的容量

函数功能

返回值否则返回错误码

mode:

密钥类型,密钥A:

0x00,密钥B:

0x04

secnr:

要验证的卡扇区号

函数功能在进行对卡片的读写操作之前在系统初始化时

返回值否则返回错误码

mode:

密钥类型,密钥A:

0x00,密钥B:

0x04

secnr:

要验证的卡扇区号

keynr:

用于证实的密匙区号

函数功能在进行对卡片的读写操作之前在系统初始化时

返回值否则返回错误码

mode:

密钥类型,密钥A:

0x00,密钥B:

0x04

key:

存储密钥缓冲区

secnr:

要验证的卡扇区号

函数功能写减等操作前若卡中的密钥与所传输的密码相匹配函数将返回MI_OK

返回值否则返回错误码

函数功能即使之处于Halt模式只能用ALL方式进行选择 

返回值否则返回错误码

addr:

块号(0x00--0x3f

data:

块数据

此函数功能是读取卡的一个块的数据

0表示成功

 

1.12 unsignedchar__stdcallRC500USB_write(unsignedcharaddr,unsignedchar*data入口参数

长度16个字节

函数功能

返回值否则返回错误码

addr:

块号(0x00--0x3f

value:

要写入的值

函数功能

返回值否则返回错误码

addr:

块号(0x00--0x3f

value:

存储要读出的值

函数功能

返回值否则返回错误码

mode:

模式加C1H复制C2H

´Ëº¯Êý¹¦ÄÜÊǶÔÒ»¸ö¿é½øÐÐÖµ²Ù×÷

返回值否则返回错误码

mode:

密钥类型,密钥A:

0x00,密钥B:

0x04

secnr:

要载入的读卡器中的密钥区号

key:

密码

这条指令的功能是将RC500中的密匙与卡中的密匙进行验证

必须成功执行此指令主控设备将把每个扇区的密码加载到读卡器中

0表示成功

1.17 unsignedchar__stdcallRC500USB_reset(unsignedcharmsec

入口参数

msec:

射频电路关闭时间

函数功能若msec=0Ò»Ö±µ½ÏÂÒ»¸öRequest命令到来

返回值否则返回错误码

函数功能关闭RC500ÈôÒªÖØÐÂÆô¶¯ÔòÐèµ÷ÓÃConfig(

0表示成功

1.19  unsignedchar__stdcallRC500USB_config(void

入口参数

模块每次上电复位之后才能进行进一步的操作

0表示成功

1.20unsignedchar__stdcallRC500USB_get_info(unsignedchar*info

入口参数

依次为0x30,0x88,0xf8,0x00,0xXX

info[5]-info[8]为RC500的序列号

函数功能

返回值否则返回错误码

函数功能

返回值否则返回错误码

函数功能

0表示成功

1.23unsignedchar__stdcallRC500USB_buzzer(unsignedcharcontrl,unsignedcharopentm,unsignedcharclosetm,unsignedcharrepcnt

入口参数

如下表相应位为1时该器件动作

取值

取值

此函数输出一驱动信号可驱动蜂鸣器和绿色发光管间隙时间和重复次数可调

0表示成功

1.24unsignedchar__stdcallRC500USB_read_E2(unsignedcharaddr,unsignedcharlength,unsignedchar*data

入口参数

  被读RC500内EEPROM首址

  被读数据长度

data

´Ëº¯Êý½«RC500内EEPROM的数据读出

0表示成功

1.25unsignedchar__stdcallRC500USB_write_E2(unsignedcharaddr,unsignedcharlength,unsignedchar*data

入口参数

  RC500内EEPROM的写入首址0x30-0x7E

被写数据长度

data

此函数将数据写入RC500内EEPROM中

0x10-0x2F为启动寄存器初始化文件区0x80-0x1FF为只读密钥区

0x7F为模块波特率参数存贮区

返回值否则返回错误码

keyblock

4字节密码首址

函数功能 

返回值否则返回错误码

block

4字节数据首址

函数功能

返回值否则返回错误码

block

4字节数据首址

函数功能

返回值否则返回错误码

2. 库函数使用方法 

 

2.1  调用动态库方法 

 首先总共有四个文件RC500USB.lib

EasyD12_500.dll

1 

在工程文件中加入RC500USB.lib文件

首先得调用LoadLibrary函数来加载RC500USB.dll,用完后调用FreeLibrary函数来卸载之

则可以按照以下步骤来调用

 

 

语法:

 

[Public | Private] Declare Function name Lib "libname" [Alias "aliasname"] [([arglist]] [As type]  

Declare 语句的语法包含下面部分

可选 

Private 

Name动态链接库的入口处区分大小写

必选包含所声明的函数动态链接库名或代码资源名

可选表示将被调用的函数在动态链接库 (DLL 中还有另外的名称

就可以使用这个参数常数或任何其它过程的名称相同时如果该动态链接库函数中的某个字符不符合动态链接库的命名约定时 

Aliasname动态链接库则 aliasname 是动态链接库中该函数入口处的名称则随后的字符必须指定该函数入口处的顺序号

可选代表调用该函数时需要传递参数的变量表

可选Function返回值的数据类型BooleanLongSingleDecimalString或 Variant或对象类型

 

    [Optional] [ByVal | ByRef] [ParamArray] varname[( ] [As type] 

部分描述

可选表示参数不是必需的则 arglist 中的后续参数都必需是可选的如果使用了 ParamArray     ByVal 

    ByRef  

例如

2.2库函数使用流程 

 

2.2.1 操作MIFARE S70/S50卡时的操作流程

2.2.2 操作SHC1102卡时的操作流程

只有在操作SHC1102卡时需要复位

2.3  使用举例 

2.3.1操作MIFARES70/S50例子

#include“RC500USB.h”

unsignedlongsnr;

unsignedshorttype;

unsignedcharsize;

unsignedchardata[16];

unsignedcharszpwd[6]={0xff,0xff,0xff,0xff,0xff,0xff};

for(inti=0;i<16;i++

{

data[i]=i;

}

longvalue=0x500;

RC500USB_init(;//打开USB

while(1

{

if(RC500USB_request(0,type!

=0//对第一个读卡器进行操作continue;

if(RC500USB_anticoll(0,snr!

=0//进行防碰撞选择

printf("%x\n",value;

RC500USB_halt(;//使卡进入halt状态

RC500USB_buzzer(1,25,25,1;//让蜂鸣器响一次

sleep(50;

}

 

2.3.2操作SHC1102例子

 

unsignedshorttype;

unsignedchardata[4];

unsignedcharszpwd4]={0xff,0xff,0xff,0xff};

for(inti=0;i<4;i++

{

data[i]=i;

}

RC500USB_init(;//打开端口和设定波特率while(1

{

RC500USB_reset(2;//让天线复位2ms

if(RC500USB_request(0,type!

=0//发送请求命令

continue;

if(RC500USB_authshc1102(8,szpwd!

=0//验证密钥

continue;

if(RC500USB_wirteshc1102(2,data!

=0//往第二块写入数据continue;

if(RC500USB_readshc1102(2,data!

=0//读取第二块的数据continue;

RC500USB_buzzer(1,25,25,1;//让蜂鸣器响一次

sleep(50;

}

附录

 

 

函数名称执行时间 

RC500USB_request 3.295 

RC500USB_anticoll 3.911 

RC500USB_anticoll2 3.930 

RC500USB_select 4.024 

RC500USB_authentication 4.946 

RC500USB_authentication2 5.970 

RC500USB_authkey 6.922 

RC500USB_halt 4.020 

RC500USB_read 5.000 

RC500USB_write 10.285 

RC500USB_writeval 10.400 

RC500USB_readval 5.101 

RC500USB_value 15.644 

RC500USB_load_key 9.967 

RC500USB_reset 2.914 

RC500USB_close 0.911 

RC500USB_config 30.979 

RC500USB_set_control_bit 0.941 

RC500USB_clr_control_bit 1.847 

RC500USB_buzzer 1.965 

 

RC500USB_read_E2 3.551 (16 bytes

 

RC500USB_write_E2 9.914 (16 bytes

RC500USB_authshc1102 4.040 

RC500USB_readshc1102 3.848 

RC500USB_writeshc1102 21.036 

 

 错误码列表 名称MI_OK,COMM_OKMI_NOTAGERRMI_CRCERRMI_EMPTYMI_AUTHERRMI_PARITYERRMI_CODEERRMI_SENDRERRMI_NOTAUTHERRMI_BITCOUNTERRMI_BYTECOUNTERRMI_TRANSERRMI_WRITEERRMI_INCRERRMI_DECRERRMI_READERRMI_COLLERRMI_QUITMIS_CHK_OKMIS_CHK_FAILEDMIS_CHK_COMPERRCOMM_ERR值0123456810111214151617182430012255描述函数调用成功在有效区域内没有卡从卡中接收到了错误的CRC校验和值溢出不能验证从卡中接收到了错误的校验位通信错误在防冲突时读到了错误的串行码卡没有验证从卡中接收到了错误数量的位从卡中接收了错误数量的字节调用Transfer函数出错调用Write函数出错调用Increment函数出错调用Decrment函数出错调用Read函数出错冲突错上一次了送命令时被打断CheckWrite正确CheckWrite出错CheckWrite:

写出错串行通信错误比较出错 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1