最新125KHz射频卡读写器动态连接库开发使用说明
125kHzRFID读写器的硬件设计_

中国高新技术企业
125kHz RFID 读ห้องสมุดไป่ตู้器的硬件设计
文 / 王萍 曾宝国
【摘 要 】 射 频 识 别 (R FID ) 是 利 用 无 线 方 式 对 电 子 数 据 载 体 ( 电 子 标 签 ) 进 行 识 别 的 一 种 新 兴 技 术 。本 文 针 对 工 作 频 率 为 125kHz 的 电 子 标 签 AT88FR 256- 12 , 介 绍 了 其 识 读 系 统 的 组 成 及 读 写 终 端 的 硬 件 设 计 。 【关 键 词 】 R FID 读 写 器 硬 件 设 计
4 结束语 以上是本人在计算机机房工作多年中, 所总结的计算机故障及 维护的一些处理方法。前面我们已提到过计算机是高精密设备, 它 的 维 护 与 保 养 是 繁 重 的 、复 杂 的 , 希 望 这 些 方 法 能 给 每 位 计 算 机 用 户提供方便, 减少不必要的经济损失。
(作者单位系陕西理工学院计算机科学与技术系)
射 频 识 别 技 术 (RFID)是 近 年 迅 速 发 展 起 来 的 一 项 新 技 术 , 它 利 用 射 频 信 号 通 过 空 间 耦 合 (交 变 磁 场 或 电 磁 场 )实 现 非 接 触 式 信 息 传 递 , 达 到 自 动 识 别 目 的 。 与 接 触 式 IC 卡 和 条 形 码 识 别 技 术 相 比 , 射 频 识 别 技 术 最 大 的 优 势 在 于 特 别 适 合 对 数 量 大 、分 布 区 域 广 的 信 息 进 行 智 能 化 管 理 和 高 效 快 捷 地 运 作 , 因 此 在 物 流 、交 通 航 运 、自 动 收 费、服务领域等方面有着广泛的应用前景。 针对工作频率为 125kHz 的 电 子 标 签 AT88FR256 - 12 , 本 文 介 绍 了 其 识 读 系 统 的 组 成 及读写终端的硬件设计。
TEMIC系列射频卡开发指南

TEMIC系列射频卡开发指南一. 开发设计简介:TEMIC系列射频卡产品包括E5550、E5560卡和U2270B基站芯片。
`在开发过程中由开发商自行设计基站发射、接收电路。
由于U2270B基站芯片只需少量的驱动电路,并且具有多种供电模式。
这给用户以极大的简便性和灵活性。
用户可以根据不同的应用要求快速、简便的设计出不同特点的基站电路。
用户仍然需要绕制基站天线,一般使用铜制漆包线绕制直径3CM、100圈的线圈即可。
这些特点要求开发射频卡应用软件的同时还要设计基站发射电路。
二. 设计目标:1.硬件设计:根据应用环境(供电条件、功耗要求)的需要设计发射基站电路。
绕制合适的天线线圈,要求达到要求的频率特性。
设计单片机控制接口电路对基站电路进行控制。
2.软件设计:根据设计电路的约定设计射频卡读写程序,要求能够对射频卡进行完备操作(读数据、写数据、加密控制等),并能够提供简便易用的编程接口(函数封装)。
设计单片机与PC机的通讯程序,设计通讯和命令格式约定等协议。
在PC端还要设计应用程序接口(动态连接库 .DLL)供上层应用程序调用。
三. 实现:1.硬件实现:E2270B支持两种供电方式。
一种为+5V直流电源供电,另一种为汽车用+12V电池供电,并且E2270B还具有电压输出功能可以给微处理器或其他外围电路供电。
此外,对E2270B还有省电模式和STANDBY控制可选,所以设计基站电路时应中和以上功能的不同要求,设计基站的外围电路。
这里只对几个常用控制功能的实现加以说明。
A.省电模式:当射频卡系统应用于汽车、门禁等领域如果对电路的耗电量加以控制(射频信号发射的功耗是远远大于接触式IC卡的),可以有效的节省能耗延长内置电池的寿命。
在需要降低功耗的领域可以在无卡检测的过程中间断的打开和关闭射频输出(E2270B 的CFE 脚)。
也可以使卡处于STANDBY模式(控制U2270B的STANDBY脚)这样可以极大的降低基站的耗电量。
125KHz RFID读写器的FSK解调器设计

125KHz RFID读写器的FSK解调器设计很多工作在125KHz载波频率的RFID芯片,如Microchip公司的MCRF200、MCRF250以及Atmel公司的e5551、T5557等都可以将其调制方式设置为FSK方式。
若芯片设置为FSK调制方式,那么读写器(PCD)必须具有FSK解调电路。
FSK解调电路将FSK调制信号解调为NRZ码。
本文给出一种FSK解调电路,该电路的特点是电路简单可靠,很适宜PCD中应用。
FSK调制工作在125KHz的RFID的FSK调制方式都很相似,图1给出了一种FSK调制方式的波形图。
从图中可见,此时数据速率为:载波频率fc/40=125K/40=3125bps,在进行FSK调制后,数据0是频率为fc/8的方波,即f0 = fc/8;而数据1是频率为fc/5的方波,即f1= fc/5。
经FSK调制后的传送数据,通过负载调制方式传送到PCD,图1中也给出了射频波形,载波的调制是采用调幅。
F SK解调PCD经载波解调(通常采用包络检波)、放大滤波和脉冲成形电路后,得到FSK 调制信号。
FSK解调电路完成将FSK调制信号恢复为NRZ码。
FSK解调实现方法较多,本文介绍的一种FSK解调电路示于图2,该电路简单方便,可以很好地完成FSK解调。
图2所示电路工作原理如下:触发器D1将输入FSK信号变成窄脉冲,即Q为高时,FSK上跳沿将Q端置高,但由于此时Q为低,故CL端为低,又使Q端回到低电平。
Q端的该脉冲使十进计数器4017复零并重新计数。
4017计数器对125KHz时钟计数, 由于数据宽为40/fc=40Tc(Tc为载波周期),若为数据0,FSK方波周期T0=8Tc。
当计至第7个时钟数时,Q7输出为高,使CLKen(CLK使能端)为高,计数器不再计第8个时钟,此时Q7为高,当触发器D1的Q输出端在下一个FSK波形上跳时,触发器D2的Q端输出为低。
FSK波形上跳同时也将计数器复零并重新计数。
EM485非接触式射频ID卡只读器说明书

EM-485 非接触式射频ID卡只读器说明书一. 概述485系列的125KHZ非接触式射频ID卡只读器是釆用先进的射频接收线路设计及嵌入式微控制器,结合高效译码算法,完成对64bits Read-Only uem4100兼容式ID卡的接收,具有接收灵敏度高﹑工作电流小﹑单直流电源供电﹑低价位高性能等特点.485只读器适用于门禁﹑考勤﹑收费﹑防盗等各种射频识别应用领域.●使用说明:只读器通电后,红绿灯交替亮,然后红灯常亮,蜂鸣器常鸣一声.卡接近时,红灯转绿灯闪烁一下再变为红灯.读卡后,若ID卡仍在射频感应区内只读器将不重读该卡号.同一ID卡,读卡后迅速离开射频感应区又进入该区时,只读器将不读该ID卡号.不同ID卡分别进入射频感应区范围,只读器将连续读卡.●安装说明:485只读器可直接安装在墙面或墙内,表面不能覆盖金属物.安装步骤:a)移开前面罩b)按只读器上的两孔在墙上的相应位置打孔c)用螺丝把只读器固定在墙上d)盖上前面罩, 安装完毕二.特点●内置天线,工作频率为125KHZ●完全支持uem4100兼容格式ID卡(64bits,Manchester编码)●有效距离10-20cm●在有效距离内数据接收时间小于100ms●5-15V供电,工作电流小于70mA●RS485数据输出●内置双色LED及蜂鸣器三. 接口描述引线编号引线颜色说明1 红电源(Vcc): +5V~+15V2 黑接地(GND)3 绿数据输出(R+)4 白数据输出(R-)四. 特性参数●极限参数项目数值单位电源,Vcc +15 V引线R﹢,R-电流±25 mA工作温度,T OPR0~70 ︒C贮藏温度,T STR -55~+125 ︒C●电气﹑机械特性非特别说明T A=25︒,Vcc=5V项目最小典型最大单位电源,Vcc 5 6 15 V 工作电流,Ic 48 70 mA 工作频率,F RES 100 125 150 khz 有效距离,D * 100 150 mm 译码时间,T DEC 65 100 ms 尺寸, LXWXH 11.2 X 7.2 X 1.7 cm五. 通讯协议卡片只读器通讯协议格式如下:1.SOH和END都是一个字节的控制字符:SOH控制器端定义为﹤0X09﹥模块端定义为﹤0X0A﹥END控制器及模块端均定义为﹤0X0D﹥其中﹤0X﹥为十六进制表示法2.TYPE为模块型式编号,固定为一个字节.本型式编号为固定为”A”3.ID为模块端的识别代码.这一字节的ASCII字符必须是在1﹤0X31﹥到8﹤0X38﹥的范围内.假如控制器端传送的ID值与模块地址编号相同,则该模块将会接收控制器端所传送的数据,而模块响应时,也会传回相同的地址编号4.FC是通讯功能码,和资料有相关性,固定为一个字节.这些资料请参阅通讯协议表及相关说明.5.8 bits BCC是所有字符的检查字段,为二个字节.有关8 bits BCC的信息和范围程序,请参阅附录A6.RS485传输协议设定为”E,8,1”,速率为”19200”.控制器与模块通讯协议表:FC : B 读取模块出厂序号说明:此功能为读取卡片内模块出厂序号,共有8个码.第1码至第2码为出厂年份,第3码至第4码为出厂周别,第5码至第8码为该型号流水号码.控制器发送信息:模块代码(ID): ﹤1﹥~ ﹤8﹥资料(DATA): ﹤none﹥模块响应信息:资料(DATA): ﹤99080001﹥说明:此功能为设定地址编号,使用模块出厂序号.控制器发送信息:模块代码(ID):固定为﹤X﹥资料(DATA):出厂序号﹤99080001﹥,模块代码﹤1﹥模块响应信息:资料(DATA): ﹤none﹥FC: D 读取模块地址编号说明: 此功能为读取地址编号, 使用模块出厂序号.控制器发送信息:模块代码(ID):固定为﹤X﹥资料(DATA):出厂序号﹤99080001﹥模块响应信息:资料(DATA): 模块代码﹤1﹥HEAD 头标志DATA BCC CHECK END SOH TYPE ID FC 资料( 8 bits BCC) 结束码起始码模块型式模块型式功能码错误检查码0X0A A X D 1 BCC1 BCC2 0X0D FC: F 读取卡片资料说明:此功能为读取卡片阅读模块所读到的卡片资料.控制器发送信息:模块代码(ID): ﹤1﹥~﹤8﹥资料(DATA): ﹤none﹥模块响应信息: (有卡片感应)资料(DATA): ﹤00000FF1A﹥(*附注)模块响应信息: (无卡片感应)资料(DATA): ﹤none﹥附注: 资料(DATA): 00000FF1A第一码为卡片形式代号,固定为0,第二码以后为卡片内码(CARD ID).编码方式为ASCII码.FC: G 重新读取卡片资料说明:此功能为重新读取卡片阅读模块所读到的卡片资料控制器发送信息:模块代码(ID): ﹤1﹥~﹤8﹥资料(DATA): ﹤none﹥模块响应信息:资料(DATA): ﹤00000FF1A﹥(*附注)附注:卡片阅读模块Power On时,如果未曾联机读取资料,则感应到卡片时,卡片阅读模块哔一声且LED会亮一下,若联机读取过资料,则感应到卡片时,LED会一直亮绿灯且不能够再感应卡片,直到收到读取卡片资料(FC: “F”)后才会变回红灯且恢复正常读卡.附录A计算一个BCC检查字符BCC检查字符是将所有要传送出去的信息,以逻辑异或(XOR)所产生的结果为BCC的值.例如有如下信息:BCC的计算有4个步骤:1.排除BCC及END,不加入XOR2.“SOH”与”TYPE”异或,产生一个二进制的值3.将步骤2所异或的结果与”ID”异或4.再将步骤3所产生的结果与”FC”异或,以此方法,继续将”DATA”内容先后异或,最后产生的结果即是BCC的值.以下为计算范例:1.信息名称十六进制说明SOH 09 开始码的ASCII值TYPE 41 十六进制”A” 的ASCII值ID 31 十六进制”1” 的ASCII值FC 46 十六进制”F” 的ASCII值DATA ---- 无资料BCC 需运算求值END 0D 结束码的ASCII值2. 将”SOH”与”TYPE”的值XOR,RES表示运算结果:SOH 0000 1001XOR XORTYPE 0100 0001RES2 0100 10003. 将步骤2的结果RES2与ID的值XOR:RES2 0100 1000XOR XORID 0011 0001RES3 0111 10014. 以此方法将其它信息名称的内容先后异或(XOR),最后产生的结果即为BCC:RES3 0111 1001XOR XORFC 0100 0110BCC 0011 1111十六进制字符 3 F其中:BCC1为0X33(十六进制”3”的ASCII值为0X33)BCC2为0X46(十六进制”F”的ASCII值为0X46)注: 发卡机的协议格式如上,只支持”F”功能码,接口为RS232,可直接联接PC机, 参数为”E,8,1”,速率为”19200”。
125KHz 射频卡读写器动态连接库开发使用说明

125KHz 射频卡读写器动态连接库开发使用说明125khz射频卡读写器动态连接库开发使用说明第1页共8页第一部份:读写器初始化函数。
入口参数:portname是指向通讯口名字的指针.通讯口名字可为:datarate设置通讯波特率。
(值域如下:)960019200384002880057600115200返回值:函数回到‘0’则表示操作方式顺利,回到其他值表明继续执行错误。
(详尽错误信息见到错误信息说明说明:此函数完成通讯口的初始化。
在进行一切读写卡的操作之前必须调用此函数。
必须和closeport成对使用。
读写器使用19200的波特率!!参照:函数名:intwinapiclose_serial_port(shortintportname)功能:停用用openport关上的通讯口,完结通讯。
入口参数:portname就是指向通讯口名字的指针通讯口名字可以为:返回值:函数返回‘0’表示执行正确,返回其他值则执行错误(详细错误说明见错误信息说明表明:顺利完成通讯口的停用。
在完结读取卡程序时必须调用此函数。
必须和openport雄雀采用。
在最新的版本中该函数的参数没意义,可以就是任何值,但无法省略。
函数只是停用当前采用的串口。
参照:openport,selectport,poweron,poweroff,一般函数的返回值1第2页共8页函数名:intwinapiopen_device()功能:自动检测连接的设备,检测到以后返回正确,否则提示错误。
参数:无返回值:函数回到‘0’则表示继续执行恰当,回到其他值则继续执行错误(详尽错误表明见到错误信息说明。
参照:openport,selectport函数名:intwinapiselectport(shortintportname)功能:当在同一台电脑上打开多个串口时,使用该函数在各个串口间进行切换。
一台电用时请注意彼此间的距离,应当大于30公分防止彼此的阻碍。
射频卡读卡器设置说明

射频卡读卡器设置方法
(1)如果读卡器跟主机接口是USB口的,把读卡器连接好后,右键桌面上
我的电脑属性,点管理,然后双击设备管理器,看看右边有个端口,
点一下端口前面的“+”号里面会出现一个。
有个英文字母pro开头的菜单,后面括号中就是USB读卡器的端口号。
然后关闭该窗口,点一
下电脑左下角开始,点一下程序找到智能表管理系统里面有一项读卡
器设置程序,
打开后选择相应的com口,如果读卡器跟右边图片是一样的,就选择串口或者小
USB读卡器,然后点一下设置,读卡器会响一声,就说明你设置正确了。
如果不
一样就选择USB读卡器,然后点设置,响一下后,就设置正确了。
然后登陆软件,
管理员代码sa 密码 111 进入之后,点一下基本信息设置,有个系统参数设置
选择一下相应的端口号,然后点保存就可以。
然后放上一张卡,点日常操作制工
具卡里面,点一下自动测卡,如果能测出卡来就说明设置好了。
(2)若读卡器跟主机接口是串口的,不是USB接口的。
可以在设置读卡器程序里面选
择好串口或者小USB读卡器后,依次选择端口号点保存(哪一个端口响了就是该
端口了)然后此时就可以拿一张卡,进入管理员代码sa 密码 111 进入之后,
点一下基本信息设置,有个系统参数设置选择一下相应的端口号,然后点保存就
可以。
然后放上一张卡,点日常操作制工具卡里面,点一下自动测卡,如果能测
出卡来就说明设置好了。
125kHz低频RFID读写器设计

125kHz低频RFID读写器设计作者:张建文王怀平来源:《软件工程师》2014年第04期摘要:本文介绍一种基于基站芯片EM4095和AT89S52单片机的低频RFID读写器设计方案。
论文首先对读写器硬件功能框图进行说明,并给出了读写器硬件接口电路。
在分析了EM4095解调、输出的曼彻斯特编码数据波形后,根据该曼彻斯特码编码特点,提出了利用计算曼彻斯特码的下降沿间隔的载波数的方法进行解码的思路,并给出了软件流程图,此解码方法提高了解码的速度和准确性,实验证明,读写器读卡稳定可靠,效果好。
关键词:射频识别;EM4095;曼彻斯特码;读写器中图分类号:TP334 文献标识码:A1 引言(Introduction)射频识别(Radio Frequency Identification,RFID)属无线电通信范畴,基本物理原理就是电磁场感应。
射频识别系统由两部分组成:一部分是识别对象(标签);另一部分是识别器(读写器)[1]。
读写器模块是由微控制器、射频基站芯片、线圈和一些外围阻容器件组成。
本文所设计的125kHz低频RFID读写器能够准确可靠的读取标签的内存信息,并送入计算机终端进行管理,实现非接触式门禁考勤、动物识别等系统的核心管理功能。
2 硬件电路设计(The hardware circuit design)125kHz读写器主要是由射频模块、控制模块,通信模块和电源模块等部分电路组成的,其硬件功能框图如图1所示。
我们选用的EM4095是EM公司设计生产的低频RFID读写器专用芯片,它集成的PLL系统能达到载波频率自适应天线的共振频率,而不需外接晶振,工作频率100kHz—150kHz。
EM4095与微控制器接口简单,由EM4095构成的读写器电路图如图2所示,芯片供电后,SHD应先为高电平,对芯片进行初始化,然后再接低电平,芯片即发射射频信号,解调模块将天线上AM信号中携带的数字信号取出,并由DEMOD_OUT端输出。
EM4100 RFID 125KHz 动态链接库函数说明

MF1动态链接库名称:int MF_Halt()功能:使卡进入被中断的状态,只有当卡退出操作范围再进入或用ALL操作模式,才能操作卡输入:输出:返回:0 操作成功1 操作失败举例:名称:int ControlLED(unsigned char para1,unsigned char para2, unsigned char *buf)功能:para1=0时,开关天线。
操作卡时需先打开天线,不操作卡时,可用来关闭天线以省电para1=1时,复位RF模块输入:para1=0para2=0关闭天线, para1=2关闭天线输出:操作失败,则buf [0] 为错误代码操作成功,则buf [0] 为成功标志,即为0x80返回:0 操作成功1 操作失败举例:ControlLED(0,1,buf) 打开天线名称:int ControlBuzzer(unsigned char para1,unsigned char para2, unsigned char *buf)功能:操作LED和SPK的状态输入:para1=0:操作LEDpara2=0,红色LED亮绿色LED灭,para2=1,绿色LED亮红色LED关para1=1:操作SPKpara2=0,SPK关para2=1,SPK响输出:操作失败,则buf [0] 为错误代码操作成功,则buf [0] 为成功标志,即为0x80返回:0 操作成功1 操作失败举例:ControlBuzzer(1,1,buf) SPK响名称:int MF_Getsnr(unsigned char para1, unsigned char para2,unsigned char *buf1,unsigned char *buf2)功能:读取卡片唯一卡号输入:para1=0读取在IDLE状态卡片卡号para1=1读取所有状态卡片卡号para2=0输出:操作失败,则buf 1[0] 为错误代码操作成功,则buf 2[0…3] 为卡号返回:0 操作成功1 操作失败举例:int MF_Getsnr(1,0,buf1,buf2) 读取所有状态卡片卡号名称:int MF_Read(unsigned char para1, unsigned char para2, unsigned char para3,unsigned char *buf1,unsigned char *buf2)功能:读取卡片块或机器EEPROM内容输入:para1.0=0 操作在IDLE状态卡片para1.0=1操作所有状态卡片para1.1=0 操作密钥为A密钥para1.1=1 操作密钥为B密钥para1.4=0 用buf1里的密钥para1.4=1 用机器EEPROM里的密钥para1.5=0 做操作卡前的所有步骤para1.5=1 仅做读卡单一步骤para1.6=0 操作卡片块内容para1.6=1 操作机器EEPROM内容para2 操作卡片时的块号para2=1 操作机器EEPROM时para3=1buf1 para1.4=0时buf1[0..5]为操作密钥para1.4=1时buf1[0] 在机器EEPROM里密钥编号输出:操作失败,则buf 2[0] 为错误代码读取卡片成功时,buf1[0…3]为卡片卡号, buf2[0…15]为卡片内容读取机器EEPROM成功时,buf1[0…3]为机器版本号, buf2[0…15]为EEPROM容返回:0 操作成功1 操作失败举例:名称:int MF_Write(unsigned char para1, unsigned char para2, unsigned char para3,unsigned char *buf1,unsigned char *buf2)功能:写入卡片块或机器EEPROM内容输入:para1.0=0 操作在IDLE状态卡片para1.0=1操作所有状态卡片para1.1=0 操作密钥为A密钥para1.1=1 操作密钥为B密钥para1.4=0 用buf1里的密钥para1.4=1 用机器EEPROM里的密钥para1.5=0 做操作卡前的所有步骤para1.5=1 仅做写卡单一步骤para1.6=0 操作卡片块内容para1.6=1 操作机器EEPROM内容para2 操作卡片时的块号para2=1 操作机器EEPROM时para3=1buf1 para1.4=0时buf1[0..5]为操作密钥para1.4=1时buf1[0] 在机器EEPROM里密钥编号buf2 写入的内容输出:操作失败,则buf 2[0] 为错误代码写入卡片成功时,buf1[0…3]为卡片卡号写入机器EEPROM成功时,buf1[0…3]为机器版本号返回:0 操作成功1 操作失败举例:名称:int MF_InitValue(unsigned char para1, unsigned char para2, unsigned char *buf1,unsigned char *buf2)功能:初始化卡片值块输入:para1.0=0 操作在IDLE状态卡片para1.0=1操作所有状态卡片para1.1=0 操作密钥为A密钥para1.1=1 操作密钥为B密钥para1.4=0 用buf1里的密钥para1.4=1 用机器EEPROM里的密钥para1.5=0 做操作卡前的所有步骤para1.5=1 仅做初始化单一步骤para2 卡片块号buf1 para1.4=0时buf1[0..5]为操作密钥para1.4=1时buf1[0] 在机器EEPROM里密钥编号buf2 初始化值输出:操作失败,则buf 1[0] 为错误代码操作成功, buf1[0…3] 为卡片卡号返回:0 操作成功1 操作失败举例:名称:int MF_Dec(unsigned char para1, unsigned char para2, unsigned char *buf1,unsigned char *buf2)功能:卡片块减值输入:para1.0=0 操作在IDLE状态卡片para1.0=1操作所有状态卡片para1.1=0 操作密钥为A密钥para1.1=1 操作密钥为B密钥para1.4=0 用buf1里的密钥para1.4=1 用机器EEPROM里的密钥para1.5=0 做操作卡前的所有步骤para1.5=1 仅做单一减值步骤para2 卡片块号buf1 para1.4=0时buf1[0..5]为操作密钥para1.4=1时buf1[0] 在机器EEPROM里密钥编号buf2 减值输出:操作失败,则buf 1[0] 为错误代码操作成功, buf1[0…3] 为卡片卡号返回:0 操作成功1 操作失败举例:名称:int MF_Inc(unsigned char para1, unsigned char para2, unsigned char *buf1,unsigned char *buf2)功能:卡片块加值输入:para1.0=0 操作在IDLE状态卡片para1.0=1操作所有状态卡片para1.1=0 操作密钥为A密钥para1.1=1 操作密钥为B密钥para1.4=0 用buf1里的密钥para1.4=1 用机器EEPROM里的密钥para1.5=0 做操作卡前的所有步骤para1.5=1 仅做单一加值步骤para2 卡片块号buf1 para1.4=0时buf1[0..5]为操作密钥para1.4=1时buf1[0] 在机器EEPROM里密钥编号buf2 加值输出:操作失败,则buf 1[0] 为错误代码操作成功, buf1[0…3] 为卡片卡号返回:0 操作成功1 操作失败举例:错误代码0x83 没有检测到卡0x84 数据错误0x85 参数错误0x8B 防冲突错误0x8C 密钥错误0x8F 未知命令0xA0 复位RF模块失败。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
125K H z射频卡读写器动态连接库开发使用说明125KHz 射频卡读写器动态连接库开发使用说明第一部份:读写器初始化函数。
函数名:int WINAPI Open_Serial_Port(short int PortName,long DataRate)功能:初始化与读写卡器的通讯.新版本读写器,支持Open_Device函数调用。
可以调用Open_Device函数,自动搜索连接的串口设备。
并且支持串口号到COM32,所以建议使用Open_Device函数替代该函数。
入口参数:PortName是指向通讯口名字的指针.通讯口名字可为:1:COM12:COM23:COM34:COM4DataRate设置通讯波特率。
(取值如下:)960019200384002880057600115200返回值:函数返回‘0’表示操作成功,返回其他值说明执行错误。
(详细错误信息见错误信息说明说明:此函数完成通讯口的初始化。
在进行一切读写卡的操作之前必须调用此函数。
必须和ClosePort成对使用。
读写器使用19200的波特率!!参照:函数名:int WINAPI Close_Serial_Port(short int PortName)功能:关闭用OpenPort打开的通讯口,结束通讯。
入口参数:PortName是指向通讯口名字的指针通讯口名字可为:1:COM12:COM23:COM34:COM4返回值:函数返回‘0’表示执行正确,返回其他值则执行错误(详细错误说明见错误信息说明说明:完成通讯口的关闭。
在结束读写卡程序时必须调用此函数。
必须和OpenPort成对使用。
在最新的版本中该函数的参数没有意义,可以是任何值,但不能省略。
函数只是关闭当前使用的串口。
参照:OpenPort, SelectPort, PowerOn, PowerOff, 一般函数的返回值函数名:int WINAPI Open_Device()功能:自动检测连接的设备,检测到以后返回正确,否则提示错误。
参数:无返回值:函数返回‘0’表示执行正确,返回其他值则执行错误(详细错误说明见错误信息说明。
参照:OpenPort, SelectPort函数名:int WINAPI SelectPort(short int PortName)功能:当在同一台电脑上打开多个串口时,使用该函数在各个串口间进行切换。
一台电脑最多允许连接4台独立的读写器,分别对应COM1,COM2,COM3,COM4。
编制应用程序的时候可以一次打开所有的串口,然后用该函数在各个串口连接的读写器之间切换。
同一时间只能和一台指定的读写交换数据。
多台读写器同时使用时请注意彼此间的距离,应大于30公分避免彼此的干扰。
入口参数:PortName是指向通讯口名字的指针通讯口名字可为:1:COM12:COM23:COM34:COM4返回值:函数返回‘0’表示执行正确,返回其他值则执行错误(详细错误说明见错误信息说明说明:完成通讯口的关闭。
在结束读写卡程序时必须调用此函数。
必须和OpenPort成对使用.部分版本的读写器不支持该功能。
参照:OpenPort, SelectPort 一般函数的返回值。
函数名:int WINAPI Beep_Option();功能:蜂鸣器鸣叫一声。
入口参数:无返回值:函数返回‘0’表示执行正确,返回其他值则执行错误(详细错误说明见错误信息说明。
参照:函数名:int WINAPI Led_Option()功能:LED指示灯闪烁。
入口参数:无返回值:函数返回‘0’表示执行正确,返回其他值则执行错误(详细错误说明见错误信息说明。
参照:函数名:int WINAPI Open_Mod();功能:给天线供电,允许读写卡。
入口参数:无返回值:函数返回‘0’表示执行正确,返回其他值则执行错误(详细错误说明见错误信息说明,部分版本的读写器不支持该功能。
参照:Close_Mod函数名:int WINAPI Close_Mod();功能:切断天线电源,不允许读写卡。
入口参数:无返回值:函数返回‘0’表示执行正确,返回其他值则执行错误(详细错误说明见错误信息说明,部分版本的读写器不支持该功能。
参照:Open_Mod第二部份 RF256卡读写函数函数名:int WINAPI RF_256_Read_ID(char *Result)功能:读取RF256卡的ID识别号。
该函数只支持4个字节的ID。
如果用户需要使用更长的ID的卡片,可以使用RF256_Read_ID_New函数。
该函数支持不定长的ID号。
入口参数: Result: 指向数据缓冲区的地址指针,数据缓冲区在调用函数前由用户程序申请。
出口参数:函数返回0表成功,Result执行的缓冲区存放读取的数据否则为错误代码(详细错误见错误说明)。
说明:参考:RF256_Read_ID_New函数名:int WINAPI RF256_Read_ID_New(char *RLength,char *Result) 功能:读取RF256卡的ID识别号。
入口参数: Result: 指向数据缓冲区的地址指针,数据缓冲区在调用函数前由用户程序申请。
Rlength: 返回实际读取的卡ID的长度。
RF256-12卡最多支持4--16个字节的ID号。
出口参数:函数返回0表成功,Result执行的缓冲区存放读取的数据否则为错误代码(详细错误见错误说明)。
说明:参考:RF256_Read_ID函数名:int WINAPI RF_256_Read_Zone(short int Address,char *Result) 功能:读取RF256卡的数据区数据。
入口参数: Address: 读取数据的数据块号。
(0----7)。
每块儿数据为4个字节Result: 指向数据缓冲区的地址指针,数据缓冲区在调用函数前由用户程序申请。
出口参数:函数返回0表成功,Result执行的缓冲区存放读取的数据,否则为错误代码(详细错误见错误说明)。
说明:参考:函数名:int WINAPI RF_256_Stop_Card()功能:禁止射频卡向外发送数据。
RF256-12卡被入口参数:出口参数:函数返回0表示成功,否则为错误代码(详细错误见错误说明)。
说明:参考:函数名:int WINAPI RF_256_Write_Card(short int Address,char *Data) 功能:向RF256卡的数据区写入数据。
入口参数: Address: 写入数据的数据块号。
(0----9)其中第8块数据不能使用该函数写入。
BLOCK0:卡ID号。
BLOCK1---BLOCK7:用户数据区。
BLOCK8:卡功能配置区。
BLOCK9:卡密码区。
Data: 指向数据缓冲区的地址指针,数据缓冲区存放要写入的数据。
出口参数:函数返回0表成功,否则为错误代码(详细错误见错误说明)。
说明:参考:函数名:int WINAPI RF_256_Config_Card(char *Data,char *Result)功能:向RF256卡的配置区写入数据。
更新卡的配置修改卡的功能设置。
(配置字的内容参考RF256卡的资料)注意:这里说的配置区的数据是实际的配置数据区中的和配置有关的3个字节的数据。
入口参数: Data: 指向数据缓冲区的地址指针,数据缓冲区存放要写入的数据(3个字节)。
Result:返回实际卡的配置。
(应该与Data内容相同才对)。
出口参数:函数返回0表成功,否则为错误代码(详细错误见错误说明)。
说明:参考:函数名:int WINAPI RF_256_Change_Password(char *Data)功能:修改卡的密码。
入口参数: Data: 指向数据缓冲区的地址指针,数据缓冲区存放要写入的密码4字节。
出口参数:函数返回0表成功,否则为错误代码(详细错误见错误说明)。
说明:在加密功能启用的时候该函数要在比较密码操作后再进行。
参考: RF_256_Check_Password函数名:int WINAPI RF_256_Check_Password(char *Data)功能:比较加密的卡的密码。
入口参数: Data: 指向数据缓冲区的地址指针,数据缓冲区存放卡密码4字节。
出口参数:函数返回0表成功,否则为错误代码(详细错误见错误说明)。
说明:参考:函数名:int WINAPI RF_256_Lock_Card(short int Address)功能:锁定指定地址的数据块。
入口参数: Address: 要锁定的数据块编号(0----7)。
出口参数:函数返回0表成功,否则为错误代码(详细错误见错误说明)。
说明:参考:第三部份 TEMIC E5551卡读写函数函数名:int WINAPI E5550_Read(short int Length,short int AorBit,char*Password,char *Result);功能:读取射频卡中的数据。
入口参数: Length: 读取的数据块数(每块4字节,具体内容参考E5550卡的技术文档)AorBit: 设置是否使用AOR模式读卡。
使用AOR模式时先比较密码后读取数据。
0:不使用AOR模式; 1:使用AOR模式Password: 4个字节的卡密码区地址指针。
(使用AOR模式时有用)。
Result: 指向数据缓冲区的地址指针,数据缓冲区在调用函数前由用户程序申请。
出口参数:函数返回0表成功,Result指向的缓冲区存储读取的数据,否则为错误代码(详细错误见错误说明)。
说明:参考:函数名:int WINAPI E5550_Write_Free(short int Address,short int Lockbit,char *Data);功能:向射频卡中写入数据(不加密)。
入口参数: Address: 写入数据的数据块号LockBit: 是否在写入同时将该数据块数据锁定,如果锁定该块数据将不能再进行修改。
该参数为0则不锁定数据块,如果该参数为1则锁定数据。
Data: 要写入射频卡的数据内容(4字节)。
出口参数:函数返回0表成功,否则为错误代码(详细错误见错误说明)。
说明:参考:函数名:int WINAPI E5550_Write_Pwd(short int Address,short int LockBit,char *Password,char *Data);功能:向射频卡中写入数据(写加密卡)。
入口参数: Address: 写入数据的数据块号LockBit: 是否在写入同时将该数据块数据锁定,如果锁定该块数据将不能再进行修改。
该参数为0则不锁定数据块,如果该参数为1则锁定数据。
Password: 4个字节的卡密码区地址指针。