用户登陆
读头--ID卡--485通讯--刷卡等待上位机查询
更新时间:2007-11-20 2:07:49  查看次数:0

 
产品简介

IDD-05型485通讯ID卡读头--上位机轮询模式

特性:

1、   RS-485通讯方式,通讯协议为(19200,N,8,1):波特率19200,数据位8 位,停止位1位,读头接受上位机设备发来的控制指令进行发送卡号、驱动蜂鸣器响、查询读头的设备号、更改读头的设备号等。

注意:此款读头,不像韦根读头一样刷卡时会主动向上位机设备发送卡号,而是在刷卡时把卡号先暂存进设备缓冲区,然后等待上位机设备来读取。缓冲区只能存放一个卡号,在缓冲区为空时刷卡将会嘀一声,并把卡号存入缓冲区,缓冲区已满时刷卡仅会指示灯闪而不会冲掉缓冲区里的卡号。必须等到上位机设备读卡才能清空缓冲区,使下一张卡刷卡有效。

 2、   支持机号从1~65535(两个字节的机号),更改机号时必须先知道旧机号。

3、   外接12V电源,内置电源保护。

4、   一个LED指示灯和一个可发命令控制的蜂鸣器。刷卡时指示灯闪一下,蜂鸣器则只能在卡号缓冲为空时才“嘀”一声。

5、   μEM40014100及其兼容的RFID卡,频率125kHz,感应距离为80-150mm

6、   读卡时间小于80ms,能自动检测卡片是否仍在感应区。

7、   读卡时输出全部5个字节的卡序列号,而不像一般读卡器只输出4个字节。因此可更全面的使用卡号。

8、   功耗<0.2W

接线说明:

电缆线颜色

用途

棕色

+12V

黑色

GND

黄色

485通讯的A+

蓝色

485通讯的B-

其他颜色为韦根通讯的保留线,不必理会,绿色为韦根通讯的DATA 0, 白色为韦根通讯的DATA 1

控制协议:

1、 设定机号(机号为两个字节)

上位机向读头发送: 0xAA, 0xAA,旧机号低字节,旧机号高字节,0xF0,新机号低字节,新机号高字节, EDC校验码(=旧机号低字节^旧机号高字节^新机号低字节^新机号高字节,^表示异或)

更改机号成功时返回:0xF0,不成功时返回其他或者没有返回!

注:0xAA表示十六进制的AA,“0x”是十六制在C语言中的标识。

2、 读取机号

上位机向读头发送:0xAA, 0xAA, 0x00, 0x00,0xA5

读头读取更改机号成功时返回:0xA5,机号低字节,机号高字节,EDC校验码(=机号低字节^机号高字节,^表示异或)

读头不成功时返回其他或者没有返回!

3、 读卡

上位机向读头发送:0xAA0xAA,机号低字节,机号高字节,0xD2

读头读取更改机号成功时返回:0xD2,卡号(低字节在前,共5个字节)字节0,字节1,字节2,字节3,字节4EDC校验码(=卡号字节0^字节1^字节2^字节3^字节4,机号低字节^机号高字节,^表示异或)

读头不成功时返回0或者没有返回!

4、 驱动蜂鸣器响 x毫秒

上位机向读头发送:0xAA,0xAA,机号低字节,机号高字节,0xC3,毫秒数的高字节,低字节,EDC校验码(=毫秒数的高字节^低字节,^表示异或)

读头不返回!

5、 驱动蜂鸣器,循环z次:响x20毫秒,停y20毫秒

上位机向读头发送:0xAA,0xAA,机号低字节,机号高字节,0x96,x,y,z

读头不返回!

 

6、 关闭蜂鸣器

上位机向读头发送:0xAA,0xAA,机号低字节,机号高字节,0xB4

读头不返回!

 

7、 注意:当上位机向读头发送指令时指定的机号低、高字节均为0时,联网的所有读头都有响应。

所以在这里严重声明,指令机号低、高字节为0来更改机号,只能在一读头联网时使用,否则有可能将所有读头都更改为同一机号。

 为了更方便地使用本读头,本公司特提供本读头专用的高性能DLL动态库sycomdll.dll,其函数接口如下:

 1、  打口串口函数

HANDLE  __stdcall PortOpen(int comport);

       输入:comport串口号,在VB中为Long类型

返回:串口句柄,在VB中为Long类型

           2、  关闭串口函数

bool  __stdcall PortClose(HANDLE comport_handle);

     输入:comport_handle串口句柄,在VB中为Long类型

返回:布尔值truefalse,成功返回true,失败返回false

 

3、读取读头机号函数

int  __stdcall GetDeviceNo(HANDLE ComportHandle,LPSTR JihaoString);

     输入:comport_handle串口句柄,在VB中为Long类型

       JihaoString 机号字符串缓冲区,至少需要6个字符的空间

返回:数字0表示读机号成功,机号卡号已存发在JihaoString字符中

       数字1表示发送失败

       数字2表示通讯超时

       数字3表示读机号失败

 

4、设置读头机号函数

int  __stdcall SetDeviceNo(HANDLE ComportHandle,int Jihao_old,int Jihao_new);

输入:comport_handle串口句柄,在VB中为Long类型

       Jihao_old 原机号,可先读出原机号,必须知道原机号才能更改成新机号,机号范围从1-65535

       Jihao_new新机号

返回:数字0表示设定成功

       数字1表示发送失败

       数字2表示通讯超时

       数字3表示设定失败

 

5、读取卡号并在形参中返回字符串

int  __stdcall GetCardNoForString(HANDLE ComportHandle,int Jihao,LPSTR CardNoString);

输入:comport_handle串口句柄,在VB中为Long类型

       Jihao 原机号

       CardNoString字符串缓冲区,至少需要10个字符的空间

返回:数字0表示读卡成功,卡号已存发在CardNoString字符中

       数字1表示发送失败

       数字2表示通讯超时

       数字3表示没寻到卡

 

 

 

6、读取卡号并在形参中返回五字节unsigned char数组

int  __stdcall GetCardNoForByte(HANDLE ComportHandle,int Jihao,unsigned char * CardNoBuf);

输入:comport_handle串口句柄,在VB中为Long类型

       Jihao 原机号

       CardNoBuf卡号字节缓冲区,至少需要5个字节空间,在VB中为byte

返回::数字0表示读卡成功,卡号已存发在CardNoBuf

       数字1表示发送失败

       数字2表示通讯超时

       数字3表示没寻到卡

 

7、  驱动蜂鸣器响 x毫秒

int  __stdcall SetBeep(HANDLE ComportHandle,int Jihao,int BeepXms);

输入:comport_handle串口句柄,在VB中为Long类型

       Jihao 机号

       BeepXms响铃持续时间

返回::数字0表示成功

       数字1表示发送失败

 

8、  驱动蜂鸣器,循环z次:响x20毫秒,停y20毫秒

int  __stdcall SetBeepEx(HANDLE ComportHandle,int Jihao,int beeptimes,int beepinterval,int loopcount);

输入:comport_handle串口句柄,在VB中为Long类型

       Jihao 机号

       beeptimes 响铃持续时间

       beepinterval停顿时间

       loopcount循环次数

返回::数字0表示成功

       数字1表示发送失败

 

9、  关闭蜂鸣器

int  __stdcall CloseBeep(HANDLE ComportHandle,int Jihao);  

输入:comport_handle串口句柄,在VB中为Long类型

       Jihao 机号

返回::数字0表示成功

       数字1表示发送失败

网友评论【发表评论】(只显示最新5条评论)