ID串口读卡器-被动式二次开发读卡器
本设备为采用微电子的射频接收模块及嵌入式微控制器,结合高效的解码算法和先进的数据处理技术, 对非接接触式卡进行读操作。 设备经过数年的升级和完善,已非常稳定, 【 性能参数】 ■ 读卡类型:ID卡 EM卡 可选IC卡 ■ 工作频率 125khz ,支持 ISO14443 TYPE A/B 标准 ■ 通讯格式:USB取电 RS232串口双向通讯 ■ 供电方式:USB口取电 5V ■ 电源功率 0.2(W) ■ 自带设备号,可控制读卡, 可控制发声音 ■ 读卡距离:0-15CM ■ 读卡时间:<100ms ■ 支持Windows/XP/WIN7/WIN10, 32位及64位系统均可支持。 ■可支持C/S 及B/S结构开发, ■提供ACTIVEX控件,可用于WEB网页开发 ■可以浏览器对读卡器进行操作控制。 ■提供了丰富的二次开发平台和范例 本产品针对二次软件开发使用,请客户免费获取二次开发接口,交由开发人员核实可开发后 再进行采购
产品选型表
RD100U-D 标准版
RD100U 高档版
ID卡 EM卡
免驱动 即插即用,支持全系WINdows系统 ,高档
版USB传输距离 读卡距离更远 外壳 线材 主板 芯片 包装 更好,
RC100U-D 标准版
RC100U 高档版
IC卡
M1卡
RD100P
特性:
1、 通讯协议为(19200,N,8,1):波特率19200,数据位8 位,停止位1位。读头接受上位机设备发来的控制指令进行发送卡号、驱动蜂鸣器响、查询读头的设备号、更改读头的设备号等。
注意:此款读头,不像韦根读头一样刷卡时会主动向上位机设备发送卡号,而是在刷卡时把卡号先暂存进设备缓冲区,然后等待上位机设备来读取。缓冲区只能存放一个卡号,在缓冲区为空时刷卡将会嘀一声,并把卡号存入缓冲区,缓冲区已满时刷卡仅会指示灯闪而不会冲掉缓冲区里的卡号。必须等到上位机设备读卡才能清空缓冲区,使下一张卡刷卡有效。
2、 支持机号从1~65535(两个字节的机号),可通过在读头上菜单操作设定,也可以用调用动态库函数设定。
4、 一个LED指示灯和一个可发命令控制的蜂鸣器。刷卡时指示灯闪一下,蜂鸣器则只能在卡号缓冲为空时才“嘀”一声。
5、 μEM4001、4100及其兼容的RFID卡,频率125kHz,感应距离为80-150mm。
6、 读卡时间小于80ms,能自动检测卡片是否仍在感应区。
7、 采用抗干扰、快速轮询的通讯算法,通讯更快更稳定。
8
直接串口的控制方法:
1、 读卡
发送:0xAA,0xAA,机号低字节,机号高字节,0xD2(命令字)
如从2号机读卡,应发送0xAA,0xAA,0x02,0x00,0xD2(命令字)
注:设备机号为1~65535,每个设备都要设定成一个固定的机号,如何设定可运行我们提供的测试程序。“0x”表示十六进制数。
有卡时返回:0x69,0xD2,卡号字节0,字节1,字节2,字节3,字节4,5个卡号字节的异或和校验码。
如返回0x69, 0xD2, 0x38, 0x00, 0x51, 0xA2, 0x82, 0x49
其中0x49 应等于 0x38 ^ 0x00 ^ 0x51 ^ 0xA2 ^ 0x82,如果不等于表示通讯错误,
卡号字节0属于厂商代码,不需理会。真正的卡号为字节1~字节4。一般ID卡表面上印的卡号为
(字节1×256×256×256+字节2×256×256+字节3×256+字节4)转换成十进前的结果
没卡时返回:0x00
2、 蜂鸣器响一声
发送:0xAA,0xAA,机号低字节,机号高字节,0Xc3(命令字),响声时长高字节,低字节,响声时长高字节和低字节的异或和校验码。
如驱动2号机响一声100毫秒,应发送0xAA,0xAA,0x02,0x00,0xC3,0x00,0x64,0x64。
不需返回。
电脑调用动态库的控制方法:
本公司特提供本读头专用的高性能DLL动态库sycomdll.dll,在VC6.0制作,其函数接口如下:
3、 打开串口
函数原型: HANDLE __stdcall PortOpen(int comport)
输入:comport为串口号,如COM1为1
返回:串口句柄,如果打开不成功,返回-1
4、 关闭串口
函数原型: bool __stdcall PortClose(HANDLE comport_handle)
程序关闭之前务必释放串口,以便其他程序使用。
输入:comport_handle打开串口时所返回的句柄
返回:关闭成功返回true,否则false
5、 设定机号(机号为两个字节)
函数原型:int __stdcall SetDeviceNo(HANDLE ComportHandle,int Jihao_old,int Jihao_new);
输入:comport_handle串口句柄,在VB中为Long类型
Jihao_old 原机号,可先读出原机号,必须知道原机号才能更改成新机号,机号范围从1-65535
Jihao_new新机号
返回:
数字-1表示端口未打开
数字0表示读机号成功,机号卡号已存发在JihaoString字符中
数字1表示发送失败
数字2表示通讯超时
数字3表示读机号失败
数字4表示读机号失败
6、 读取机号
函数原型: int __stdcall GetDeviceNo(HANDLE ComportHandle,LPSTR JihaoString)
输入:comport_handl为串口句柄,JihaoString 机号字符串缓冲区,至少需要6个字符的空间
7、 读卡
(1)号并在形参中返回字符串
int __stdcall GetCardNoForString(HANDLE ComportHandle,int Jihao,LPSTR CardNoString);
输入:comport_handle串口句柄,Jihao 原机号
CardNoString字符串缓冲区,至少需要10个字符的空间
数字0表示读卡号成功,卡号已存发在JihaoString字符中
(2)读取卡号并在形参中返回五字节unsigned char数组
int __stdcall GetCardNoForByte(HANDLE ComportHandle,int Jihao,unsigned char * CardNoBuf);
CardNoBuf卡号字节缓冲区,至少需要5个字节空间,在VB中为byte型
数字0表示读卡成功,卡号已存发在CardNoBuf中
数字3表示没寻到卡
8、 驱动蜂鸣器响 x毫秒
int __stdcall SetBeep(HANDLE ComportHandle,int Jihao,int BeepXms);
输入:comport_handle串口句柄
Jihao 机号
BeepXms响铃持续时间
返回:数字0表示成功
9、 驱动蜂鸣器,循环z次:响x个20毫秒,停y个20毫秒
int __stdcall SetBeepEx(HANDLE ComportHandle,int Jihao,int beeptimes,int beepinterval,int loopcount);
beeptimes 响铃持续时间
beepinterval停顿时间
loopcount循环次数
返回::数字0表示成功
10、 关闭蜂鸣器
int __stdcall CloseBeep(HANDLE ComportHandle,int Jihao);