概述
ID01 UHF RFID Reader-UART 远距离RFID标签读卡器模块是一款非接触式超高频远距离IC卡读写模块。广泛地运用于车辆监控、遥控、家庭防盗系统、无线抄表、门禁系统、小区传呼、工业数据采集系统、无线标签、身份识别、非接触RF智能卡、小型无线数据终端、安全防火系统、无线遥控系统、生物信号采集、水文气象监控、机器人控制、等领域中。
DFRobot推出的这款ID01 UHF RFID Reader-UART 远距离RFID标签读卡器摸块能很方便的融入到现有无线网络中去,同时模块拥有UART接口,创客们可以通过UART接口进行通信,使用方面。
技术指标
- 模块接口:UART
- 工作电流:最大200mA
- 输出功率:最大24dBm
- 读卡距离: >30cm(有效距离与天线、电子标签及工作环境有关)
- 灵 敏 度:典型-102dBm最差-98dBm
- 支持波特率:9600、19200、38400、57600、115200(单位kbps)
- 支持协议:ISO18000-6C(EPC G2)
- 识别时间:读每8字节小于10ms,写每字节小于20ms
- 环境温度:-20℃~+65℃
- 模块尺寸:155mm*100mm
接口定义
- 红色线:模块电源输入端7V/2A
- 黑色线:模块GND
- 绿色线:接UART的TX端
- 黄绿色线:接UART的RX端
ID01 UHF RFID Reader-UART的使用
ID01 UHF RFID Reader-UART远距离RFID标签读卡器模块的读写方式采用固定的数据传输格式(详细说明请参考ID01 UHF RFID Reader技术文档),如数据流通方向由主机到从机,则主机需发送如下数据:
PacketType | Length | Command Code | Device Number | Command Data | ... | Command Data | Command Data | Checksum |
0x0a | 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是校验和域,规定校验范围是从包类型域到参数域最后一个字节为所有字节的校验和,读写器接受到命令帧后需要计算校验和来检错。
在给ID01 UHF RFID Reader-UART远距离RFID标签读卡器模块上电后,模块会发出短暂的“嘟”声,且模块处于连续读卡模式,把电子标签置于模块上方,模块开始读卡,通过串口给模块发送停止读卡命令可以停止读卡(停止读卡命令为A0 03 50 00 D),如果操作成功,返回数据位E4 04 50 00 00 C8,如果操作失败,返回数据位E4 04 50 00 (其他值) C8。
特别注意,模块具有销毁、锁定等特殊功能,如果电子标签一旦被销毁,则此电子标签就废了,请慎用销毁功能!
示例代码
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技术文档链接