薛定谔的猫

一款自己设计的主动式读卡器简单协议

0
阅读(5528)

主动式读卡器通信协议

说明:

主动式的意思是:读卡器读取到电子标签以后,主动将数据上传给电脑或者其它控制设备。

电脑往读头方向的数据为主机命令

读头往电脑方向的命令为从机命令

所有的命令和数据都是以字节为单位

产品开机默认设置为:

读头地址为1

通信波特率为9600  数位8  停止位1  无校验  无流程控制 

衰减器的参数为0(也就是无衰减  此刻读卡距离最远) 

蜂鸣器默认为叫

参数配置时选择16进制发送,16进制接收。数据接收时为ASC格式。

系统工作原理:

电子标签定时主动发送,1S钟发送3次(用户可以指定次数)。读卡器将协议参数保存在单片机的FLASH中。每读取一次射频卡的数据,读卡器自动将数据发送给主机(数据格式见协议)并清除数据缓冲区中的数据。

协议的详细说明:

  1. 从机主动发送数据的格式

    

 

 

1字节

5字节

1字节

从机发送

开始标志

ASC

结束标志

接收

S

电子标签卡号

E

 

发送数据解析如下:

S--------开始标志

E--------结束标志

中间是5个字节的ASC码。卡号的范围是1----32767.

比如:卡号为35236。数据传输格式为:

S35236E

  1. 设置读头地址命令是C8

    

 

 

1字节

1字节

1字节

1字节

1字节

主机

原读头地址

数据长度 

命令

新读头地址

结束

从机

开始标志

开始标志

新读头地址

结束标志

结束标志

测试数据(主机向从机发送命令并接收从机的数据)

发送

01

05

C8

01

03

接收

FF

FF

01

EE

EE

 

3.  设置通讯波特率 命令是C9

 

 

1字节

1字节

1字节

1字节

1字节

1字节

主机

读头地址

数据长度 

命令

波特率代号

结束

 

从机

开始标志

开始标志

读头地址

波特率代号

结束标志

结束标志

测试数据(主机向从机发送命令并接收从机的数据)

发送

01

05

C9

03

03

 

接收

FF

FF

01

03

EE

EE

注意:设置波特率,实际上是设置波特率对应的代号,对应关系如下:

2.4Kbps, 4.8Kbps, 9.6Kbps, 19.2Kbps, 38.4Kbps

         01         02       03      04        05      

 

4.  设置衰减器的值 命令是CC  1个字节---设置的数据是1个字节

 

 

1字节

1字节

1字节

1字节

1字节

1字节

主机

读头地址

数据长度 

命令

衰减值

结束

 

从机

开始标志

开始标志

读头地址

衰减值

结束标志

结束标志

测试数据(主机向从机发送命令并接收从机的数据)

发送

01

05

CC

00

03

 

接收

FF

FF

01

00

EE

EE

注意: 衰减器的数据范围是从00-1f

值越大,读卡距离越近。调节距离的时候要拿一张卡来测试,持卡人从远处到近处走动,调试人员可以通过该命令给读写器发命令,调整希望读写器工作的距离。读卡器出厂衰减值默认为00,此时读卡距离最远,大约50米左右。

 

  1.  关闭蜂鸣器叫声  命令是CD

 

 

1字节

1字节

1字节

1字节

1字节

1字节

主机

读头地址

数据长度

命令

数据标志

结束

 

从机

开始标志

开始标志

读头地址

数据标志

结束标志

结束标志

测试数据(主机向从机发送命令并接收从机的数据)

发送

01

05

CD

01

03

 

接收

FF

FF

01

01

EE

EE

数据标志  01: 表示关闭蜂鸣器

00:表示打开蜂鸣器