MF–800 系列非接触式IC卡读写器
说明书
一、设备特性
MF-800非接触式IC卡读写器是由我公司研制而成的非接触卡读写设备,它由主机、天线、串行接口等组成,通过RS232串口或USB通用串行接口能实现同PC机的连接。随机提供的接口函数库可满足用户二次开发的需要;其完善、可靠的接口函数,支持访问射频卡的全部功能。目前该设备已广泛地应用于门禁、考勤及高速公路、油站、停车场、公交等收费系统中。
二、MF–800读写器主要特性:
●增强天线感应距离,最远可达100mm
●读写器连接线采用RJ45水晶头接口方式
●双色LED显示,并可以通过软件来进行显示颜色控制
●类型有:MF-800R(RS232),MF-800U(USB)、MF-800A(RS232)三
种
三、技术指标
●支持Mifare标准,ISO14443 Type A
●发射频率:13.56MHz
●访问卡速率:106Kbit/s
●波特率:9600~115200bit/s ,手动控制
●工作电源:DC 5V±5%
●读写距离:30~100mm
●最大功耗:200mA
●环境温度:-10℃~55℃
●相对湿度:30%~95%
●重量:约100克(包括天线)
四、操作步骤
A、和电脑的连接:MF-800R是通过Keyboard(键盘)PS 2取电,COM(串
口)232传输数据;MF-800U是通过电脑USB(通用串行口,即插即用,支持热插拔)取电和传数据,要求电脑的Power(电源)要质量优良性能和电压相对稳定
B、M F-800R接法:首先把电脑的键盘口拨下(一般是蓝色),把MF-800R
连接线的PS 2公头插在电脑的PS 2口(一般是蓝色),然后把键盘口插在连接线PS 2另一头(母头)上,再把连接线的RS232头接在电脑的COM (串口232)
C、M F-800U接法:把USB连接线的大头连接到电脑的USB(通用串行口),
另一(小)头连读写器上
D、读写器和电脑连接成功时会有短促“嘀”的一声,在读写器的右上角会亮红色的指
示灯
E、运行操作Demo测试程序,直接运行文件夹中的ICTransfer.exe文件如图
(中文)或运行安装文件InstDemo_en.exe如果图安装这个测试程序,然后再运行ICTransfer.exe测试文件
安装完程后,所有例程、动态库、USB驱动全在程序文件里,如“D:\RFREADER\”,所有函数说明均在程序中的帮助文件里
F、打开测试程序,如下图:
在使用此测试程序Demo时先设备读写器的连接端口,点“设置→端口设置→端口值选择”→COM1(这个选择是根据您把读写器和电脑的哪个COM端口连接,如果您的电脑中有两个COM口而您是连在上面的第一个上那就是COM1口,如果是用MF-800U 那您就先安装MF-800U的设备驱动程序,驱动程序在Usbdrive文件夹里,装完驱动程序后会有个虚拟的COM3口,那么在用MF-800U时就选择COM3口了),波特率选9600~19200之间,然后点连接,在状态栏上的提示就会显示“提示:连接成功”。或是如果你确定了连接COM口,您也可以点“设置→断开通讯连接→连接通讯”这样也是一样
G、一切准备就绪那就可以拿Mifare 1 卡来测试了,点“选择操作卡→ISO14443A→
Mifare_Std S50”,把Mifare 1卡水平放在读写器的上方,然后点击“寻卡.ALL”,在测试Demo的最下方就会显示“rf_int_com 呼叫成功……”,在测试Demo上方的状态栏也会有提示“提示:呼叫成功”等;如果有一个失败,则说明卡片有问题或是卡片超出了读写器的读写范围,在测试Demo上方的状态栏也会有错误信息的提示“提示:Error
14 00 ……”
五、二次开发说明
文档最后的蓝色部分为新增加的通讯协议,适合MF-800A型号(自动读取卡序列号)。更改后读卡器自动判断卡片是否在感应区内,不需要外部设置,也并不影响和以前的软件兼容,以前所有的指令都还保留即可正常执行。
出厂默认波特率为9600,掉电可记忆用户更改后的波特率。认证密钥并没有时间的限制。
A、主从:外部CPU为主,读写卡器为从,读写卡器始终处于应答状态,不
主动向外部CPU发送命令。1BIT起始位、8BIT数据、1BIT停止位
B、通讯协议
1.外部CPU命令格式
命令头+ 长度字+ 设备标识符+ 命令码+ 命令参数+ 校验字
命令头:2BYTE,0xAABB
长度字:2BYTE,指明后续的字节数,从设备标识到效验字
在这款读卡器中,第一字节有效,第二字节保留为0
设备标识:2BYTE
命令码:2BYTE
命令参数:命令报文(可以为空)
校验字:1BYTE、设备标识到命令参数最后一字节的逐字节异或
注:如果从长度字到校验字中有一个字节=AA,则后跟一字节00以区分命令头,长度字不变
2.读写卡器应答格式
命令头+ 长度字+ 设备标识符+ 命令码+ 状态字+ 数据+ 校验字
命令头:2BYTE,0xAABB
长度字:2BYTE,指明后续的字节数,从设备标识到效验字
在这款读卡器中,第一字节有效,第二字节保留为0
设备标识:2BYTE
命令码:2BYTE
状态字:1BYTE 、00 = 成功;非零=失败
数据:返回的数据(可以为空)
校验字:1BYTE、从长度字取反到数据内容的逐字节异或
注:如果读写卡器在100mS内无响应或响应中断,上位机认为此次通讯失
败。
C、命令详解
1.rf_init_com
功能:设置波特率
命令码:0x0101
参数:00=4800
01=9600
02=14400
03=19200
04=28800
05=38400
06=57600
07=115200
应答数据:无
2.rf_init_device_number
功能:设置设备标识符
命令码:0x0201
参数:2BYTE设备标识
备注:读卡器只响应设备标识符与本身相符或设备标识符等于0x0000(广播)的指令
应答数据:无
3.rf_get_device_number
功能:读取设备标识符
命令码:0x0301
参数:无
应答数据:2BYTE设备标识
4.rf_light
功能:设置指示灯颜色
命令码:0x0701
参数:00 = 熄灭
01 = 红色
02 = 绿色
03 = 黄色
备注:读卡器上电指示灯为绿色,约1S后变为红色,指示射频模块初始化成功若变为黄色指示频模块初始化失败此后指示灯颜色由外部指令控制
应答数据:无
5.rf_antenna_sta
功能:设置天线状态
命令码:0x0C01
参数:00 = 关闭
非零= 开启
备注:读卡器上电后天线处于开启状态
应答数据:无
6.rf_request1
功能:高级寻卡
命令码:0x0002
参数:0x26 = 寻未进入休眠状态的卡
0x52 = 寻所有状态卡
备注:此命令为新加命令,在读卡器内集合了原rf_request、rf_anticoll、
rf_select三条指令
应答数据:4BYTE卡片序列号
7.rf_request
功能:寻卡
命令码:0x0102
参数:0x26 = 寻未进入休眠状态的卡
0x52 = 寻所有状态卡
应答数据:2BYTE卡片类型码
8.rf_anticoll
功能:防冲撞
命令码:0x0202
参数:无
应答数据:4BYTE卡片序列号
9.rf_select
功能:选定卡
命令码:0x0302
参数:4BYTE卡片序列号
应答数据:1BYTE卡片容量代码
10.rf_halt
功能:使已选定的卡片进入休眠状态
命令码:0x0402
参数:无
应答数据:无
11.rf_M1_authentication2
功能:验证Mifare卡密钥
命令码:0x0702
参数:1BYTE密码验证方式(MODEL)+1BYTE绝对块号+6BYTE密钥MODEL = 0x60:验证A密钥
MODEL = 0x61:验证B密钥
应答数据:无
12.rf_M1_read
功能:读块
命令码:0x0802
参数:1BYTE绝对块号
应答数据:16BYTE数据
13.rf_M1_write
功能:写块
命令码:0x0902
参数:1BYTE绝对块号+16BYTE写入数据
应答数据:无
14.rf_M1_initval
功能:初始化钱包
命令码:0x0A02
参数:1BYTE绝对块号+4BYTE初始金额(低字节在前)
应答数据:无
15.rf_M1_readval
功能:读钱包金额
命令码:0x0B02
参数:1BYTE绝对块号
应答数据:4BYTE钱包金额(低字节在前)
16.rf_M1_decrement
功能:扣款
命令码:0x0C02
参数:1BYTE绝对块号+4BYTE扣款金额(低字节在前)
应答数据:无
17.rf_M1_increment
功能:充值
命令码:0x0D02
参数:1BYTE绝对块号+4BYTE充值金额(低字节在前)
应答数据:无
18.rf_M1_restore
功能:把某一块数据调入卡片的BUFFER中
命令码:0x0E02
参数:1BYTE绝对块号
应答数据:无
19.rf_M1_transfer
功能:把卡片的BUFFER中数据写入到卡上某一块
命令码:0x0F02
参数:1BYTE绝对块号
应答数据:无
20.rf_M1_reada
功能:验证Mifare卡密钥并读取一块数据
命令码:0x3002
参数:1BYTE密码验证方式(MODEL)+1BYTE绝对块号+6BYTE密钥
MODEL = 0x60:验证A密钥
MODEL = 0x61:验证B密钥
应答数据:16BYTE数据
21.rf_M1_in
功能:卡片进场报告,读卡器主动发出,外部CPU接收到此信息后可跳过寻卡、防
冲撞、选卡进行后续操作
命令码:0x3101
发出数据:4BYTE卡片序列号
例:AA BB 0A 00 11 12 31 01 00 D6 00 C8 E8 C5
命令头长度字设备标识命令码状态字序列号校验字
22.rf_M1_out
功能:卡片离场报告
命令码:0x3201发出数据:无
例:AA BB 06 00 11 12 32 01 00 30
命令头长度字设备标识命令码状态字校验字
D、二次开发补充说明
我们提供的动态连接库在EXAMPLE这个文件夹中,接口语言包括VB、VC、BC、PB、DELPHI等五种,您在做二次开发的过程中除了参照动态库和以上的这些函数外,请您再打开我们的电子版帮助说明文件(打开测试程序DEMO时也可以点击菜单栏中的“帮助→帮助主题”)仔细了解一遍,以便让您更快捷和顺利地进行二次开发