概述
ID01 UHF RFID Reader-RS485 远距离RFID标签读卡器模块是一款非接触式超高频远距离IC卡读写模块。广泛地运用于车辆监控、遥控、家庭防盗系统、无线抄表、门禁系统、小区传呼、工业数据采集系统、无线标签、身份识别、非接触RF智能卡、小型无线数据终端、安全防火系统、无线遥控系统、生物信号采集、水文气象监控、机器人控制、等领域中。
DFRobot推出的这款ID01 UHF RFID Reader-RS485 远距离RFID标签读卡器摸块能很方便的融入到现有无线网络中去,同时模块拥有RS485接口,创客们可以通过RS485接口进行通信,使用方面。
技术指标
- 模块接口:RS485
- 工作电流:最大200mA
- 输出功率:最大24dBm
- 读卡距离: >50cm(有效距离与天线、电子标签及工作环境有关)
- 灵 敏 度:典型-102dBm最差-98dBm
- 支持波特率:9600、19200、38400、57600、115200(单位kbps)
- 支持协议:ISO18000-6C(EPC G2)
- 识别时间:读每8字节小于10ms,写每字节小于20ms
- 环境温度:-20℃~+65℃
- 模块尺寸:155mm*100mm
接口定义
- 红色线:模块电源输入端7V/2A
- 黑色线:模块GND
- 绿色线:接RS485的A端
- 黄绿色线:接RS485的B端
UHF RFID MODULE-UART的使用
UHF RFID MODULE-UART远距离RFID标签读卡器模块的读写方式采用固定的数据传输格式,如命令帧:命令帧是主机操作读写器得数据帧,数据流通方向由主机到从机,则主机需发送如下数据:
PacketType | Length | Command Code | Device Number | Command Data | ... | Command Data | Command Data | Checksum |
0xa0 | n+3 | 1 byte | 1 byte | Byte 1 | Byte n-1 | Byte n | cc |
Packet Type是包类型域,命令帧包类型固定为0xa0; Length是包长域,表示Length域后帧中字节数; Command Code是命令码域; Device Number是设备号域,当设备号usercode为00时,表示群发; Command Data是命令帧中的参数域; Checksum是校验和域,规定校验范围是从包类型域到参数域最后一个字节为所有字节的校验和,读写器接受到命令帧后需要计算校验和来检错。
读写器命令完成响应帧是一种固定长度的数据帧,数据流通方向由从机到主机,其格式如下表所示:
PacketType | Length | Command Code | Device Number | Status | Checksum |
0xe4 | 0x04 | 1 byte | 1 byte | 1 byte | cc |
Status是状态域,状态域表明读写器完成PC机命令后读写器状态或执行命令后的结果,其规定如下表所示;
序号 | 值 | 名称 | 描述 |
1 | 0x00 | ERR_NONE | 命令成功完成 |
2 | 0x02 | CRC_ERROR | CRC校验错误 |
3 | 0x10 | COMMMAND_ERROR | 非法命令 |
4 | 0x01 | OTHER_ERROR | 其他错误 |
读写器信息帧是返回给主机的数据帧,比如,用于发送标签给主机,数据流通方向由从机到主机,其格式定义如下表所示
PacketType | Length | Response Code | Device Number | Response Data | ... | Response Data | Checksum |
0xe0 | n+3 | 1 byte | 1 byte | Byte 1 | Byte n | cc |
Response Code是信息码域,取值表示信息的类型;
Response Data是信息帧中的参数域;
在给UHF RFID MODULE-UART 远距离RFID标签读卡器模块上电后,模块会发出短暂的“嘟”声,且模块处于连续读卡模式,把电子标签置于模块上方,模块开始读卡,通过串口给模块发送停止读卡命令可以停止读卡(停止读卡命令为A0 03 50 00 D),如果操作成功,返回数据位E4 04 50 00 00 C8,如果操作失败,返回数据位E4 04 50 00 (其他值) C8。
下面将列举一些常用主机命令,更多内容与更详细的说明请参考UHF RFID MODULE技术文档
标签读取 | 标签销毁 | 停止读取标签 | 重新识别标签 | 控制BUZZER |
A0 06 80 00 01 02 01 D6 | A0 08 86 00 00 12 34 56 78 BE | A0 03 A8 00 B5 | A0 03 FC 00 61 | A0 04 B0 00 00(关闭) AC |
A0 04 B0 00 01(开启) AC |
特别注意,模块具有销毁、锁定等特殊功能,如果电子标签一旦被销毁,则此电子标签就废了,请慎用销毁功能!
示例代码
unsigned char StopReadCode[5] = {0xA0,0x03,0xA8,0x00,0xB5};//Stop reading the label code
unsigned char ResetCode[5]={0xa0,0x03,0x65,0x00,0xf8};//Reset code
unsigned char StopReadCodeCB[6]={0xe4,0x04,0xa8,0x00,0x00,0x74};//Stop reading code success and return the value
unsigned char ResetCodeCB[6]={0xe4,0x04,0x65,0x00,0x00,0xb3};//Reset code success and return the value
unsigned char data[6]={};
void setup()
{
Serial.begin(9600);
}
void loop()
{
int i;
int n=1;
delay(2000);
while(n)
{
Serial.write(StopReadCode,5);
if(Serial.available())
{
for(i=0;i<6;i++)
{
data[i]=Serial.read();
delay(1);
}
for(i=0;i<6;i++)
{
if(data[i]==StopReadCodeCB[i])
n=0;
else
n=1;
}
}
delay(50);
}
n=1;
while(n)
{
Serial.write(ResetCode,5);
if(Serial.available())
{
for(i=0;i<6;i++)
{
data[i]=Serial.read();
delay(1);
}
for(i=0;i<6;i++)
{
if(data[i]==ResetCodeCB[i])
n=0;
else
n=1;
}
}
delay(50);
}
While(1);
}
相关文档
ID01 UHF RFID Reader技术文档链接