1、读卡器内存分配
读卡器内部分数据输入区和数据输出区,PLC向读卡器输入区写入相关的数据和操作指令,读卡器执行读写器指令后,把执行指令的结果存储到读卡器的输出区,PLC读取该部分数据即可。
![](https://i-blog.csdnimg.cn/blog_migrate/a24ed8fcd6df1a1ebd9617b8fe5b4282.png)
读卡器内存映射空间大小为128字节,按2字节使用也就是64 半字(word),即输入区和输出区各64个寄存器,1个寄存器=2个字节。
输入区地址从0x0000开始,输出区地址从0x8000开始。
如输入区中的“操作控制”寄存器,地址为0x0000,大小为16bit,即2个字节;输出区中的“标签数量”寄存器,地址为0x8001,大小为16bit,即2个字节。
![](https://i-blog.csdnimg.cn/blog_migrate/d473ec99a21bb1cd3e41c01f395458bf.png)
2. 输入区内存分配说明
往读卡器输入去内写入相关的数据可执行对应的操作。
2.1 操作控制寄存器
该操作控制寄存器主要用于控制部分操作是否执行,寄存器16bit上每个位所代表的操作各有不同,可根据实际需求选择合适的操作,其中每个位所代表的操作如表格所示:
操作控制寄存器 操作位
Bit | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 |
操作 |
|
|
|
|
|
|
|
|
Bit | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
操作 |
|
|
|
|
|
| 天线关闭标志位 | 标签上传标志位 |
- 标志位:设备检测到该标志位上升沿时重新上传标签EPC
2. 天线关闭标志位:设备天线默认开启,该标志位置1时关闭天线,置零则启动天线,天线启动后需要1~2s后才能正常工作。
2.2 多标签上传间隔时间寄存器
该寄存器用于控制输出区上传每张标签EPC时的时间间隔,默认50ms,该寄存器数值不能少于50ms。单位:毫秒。
2.3 访问密码寄存器
访问密码即Access密码,共4个字节,默认的Access密码为0x00000000,保存在标签RFU存储器中,具体地址可查看标签内存分布。
2.4 选择EPC寄存器
在执行相关操作时(如读标签数据),需要填写对应的标签EPC来选择标签进行操作,作为标识的EPC共12字节,即6个寄存器。
2.5 操作命令寄存器
常用命令:
0x00:空闲模式
0x03:读数据模式
0x06:写数据模式
其他命令:
0x21:设置工作区域
0x22:设置工作信道
0x23:获取工作信道
0x24:设置自动跳频
0x25:设置发射功率
0x26:获取发射功率
2.6 操作地址寄存器
该寄存器用于填写读卡器执行相关命令时所需要操作的地址,标签中各个地址的分布可参考RFID标签数据地址分配表,选择合适的操作地址。
2.7 操作长度寄存器
该寄存器用于填写相关命令执行时所需要操作的寄存器数量。
e.g.
使用读命令0x03时,如数据长度为0x01,则读卡器读取出来的数据保存在输出区中输出数据区1寄存器中 ,如数据长度为0x02,则输出区中输出数据区1、输出数据区2的内容有效,以此类推。
e.g.
使用写命令0x06时,如数据长度为0x01,则输入区的输入数据区1寄存器有效,如数据长度为0x02,则输入区的输入数据区1、输入数据区 2有效,以此类推。
2.8 输入数据区寄存器
用于进行相关命令操作时所需要写入的数据。
输入区的数据只在相关操作时有效,输入区大小为64个寄存器(半字),即128个字节。如多标签上传间隔时间+访问密码+选择EPC+操作命令+操作地址+操作长度+输入数据1到输入数据3,一共16个半字空间。
保存读卡器固件版本号以及状态信息。
系统信息寄存器
Bit15 – bit 8 | Bit7 – bit 0 |
保存版本号 | 表示系统状态信息 |
版本号:当前程序配置的版本号
系统状态信息:
系统状态信息含义
Bit7 – bit 0 | 标志内容 |
Bit0* | 1:专有协议掉线 0:无错误 |
Bit1* | 1:看门狗复位 0:无错误 |
Bit2* | 1:TCP掉线 0:无错误 |
Bit3-Bit6 | 保留 |
Bit7 | 保留 |
*系统异常状态断电才允许清0否则要一直保持
2.8 操作成功标志寄存器
该寄存器用于显示执行相关命令后是否成功,执行命令后可查询该标志位是否置1以及操作状态寄存器以判断成功状态。
操作成功标志
操作成功标志 | 注释 |
1 | 操作成功 |
0 | 操作未执行/尚未成功 |
注:在读模式标签离开后保留100毫秒,在写模式标签离开后保留150毫秒。
2.9 操作状态寄存器
记录操作失败的原因,操作成功后自动清除
操作状态寄存器
Bit 15 – bit 8 | Bit 7 – bit 0 |
操作命令 | 操作错误码 |
操作命令:例如0x03表示读操作 0x06表示写模式
操作错误码:
错误码
错误码 | 注释 |
0x80 | 操作超时 |
0x81 | 无卡 |
0x82 | 访问密码错误 |
0x83 | 命令错误/不存在 |
0x84 | 参数错误 |
0x85 | 命令执行失败 |
0xFF | 其他错误 |
2.10 上传EPC寄存器
该区域用于上传读卡器搜索到的标签EPC,上传速度由输入区中的多标签上传间隔时间寄存器控制。用于标识的EPC共12字节,占6个寄存器。
2.11 输出数据区
输出区的数据只在相关操作时有效,输出区大小为64个寄存器(半字),即128个字节。如系统信息+标签数量+操作成功标志+操作状态+上传EPC+输出数据1到输出数据6一共16个半字空间。
3. RFID标签地址分配
标签的地址分配如表。
RFID标签数据地址分配表
RFU存储区地址 | Addr=0x0000(杀死密码高16位) | Addr=0x0001(杀死密码低16位) | 读写 |
Addr=0x0002(访问密码高16位) | Addr=0x0003(访问密码高16位) | ||
EPC存储区地址 | Addr=0x0100(CRC-16) | Addr=0x0101(PC) | 只读 |
Addr=0x0102(EPC) | Addr=0x0103(EPC) | 读写 | |
Addr=0x0104(EPC) | … | ||
TID存储区地址 | Addr=0x0200 | Addr=0x0201 | 只读 |
Addr=0x0202 | … | ||
USER存储区地址 | Addr=0x0300 | Addr=0x0301 | 读写 |
Addr=0x0302 | … |
注:
●最大可支持2K Byte容量标签的读写操作。标签根据不同型号有不同的容量值,具体可参考标签的数据手册。
●地址0x0300开始为USER存储区,实际大小与标签空间大小有关,用户可对该区域进行读写操作。用户可在地址addr=0x0004至addr=0x4100为用户数据寄存器,用户可对这些寄存器进行读写操作。