Arduino通讯模块-UHF RFID MODULE-RS485 远距离RFID标签读卡器
外观
概述
- UHF RFID MODULE-RS485 远距离RFID标签读卡器模块是一款非接触式超高频远距离IC卡读写模块。
- 广泛地运用于车辆监控、遥控、家庭防盗系统、无线抄表、门禁系统、小区传呼、工业数据采集系统、无线标签、身份识别、非接触RF智能卡、小型无线数据终端、安全防火系统、无线遥控系统、生物信号采集、水文气象监控、机器人控制、等领域中。
- DFRobot推出的这款UHF RFID MODULE-RS485 远距离RFID标签读卡器模块能很方便的融入到现有无线网络中去,同时模块有另一拥有UART接口的版本,创客们可以通过UART接口进行通信,使用方便。
技术指标
- 模块接口:RS485
- 工作电流:最大200mA
- 输出功率:最大24dBm
- 读卡距离: 0~30cm,最远可达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 |
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技术文档
标签读取 | 标签销毁 | 停止读取 | 重新识别标签 | 控制BUZZER |
A0 06 80 00 01 02 01 D6 | A0 08 86 00 00 12 34 56 78 BE | A0 03 50 00 0D | A0 03 FC 00 61 | A0 04 B0 00 00(关闭) AC A0 04 B0 00 01(开启) AB |
在给UHF RFID MODULE-UART 远距离RFID标签读卡器模块上电后,模块会发出短暂的“嘟”声,且模块处于连续读卡模式,把电子标签置于模块上方,模块开始读卡,通过串口给模块发送停止读卡命令可以停止读卡(停止读卡命令为A0 03 50 00 0D),如果操作成功,返回数据位E4 04 50 00 00 C8,如果操作失败,返回数据位E4 04 50 00 (其他值) C8。
特别注意,模块具有销毁、锁定等特殊功能,如果电子标签一旦被销毁,则此电子标签就废了,请慎用销毁功能!
连接图
我们先试着让读卡器与arduino主控板进行通信,只需要通过RS485/TTL转接器(例如:Multiplexer 多功能转换器(SKU:TEL0070))连接两者就可以实现信息互传。连线图如下:
代码
//本示例演示:由arduino控制关闭读取与重置配置的状态切换
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]={0xe0,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);
delay(200);
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(500);
}
n=1;
while(n)
{
Serial.write(ResetCode,5);
delay(200);
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(500);
}
}
使用实例
-该读写器使用RS485接口,演示中我们使用Multiplexer 多功能转换器(SKU:TEL0070)将RS485接口转接成USB接口,方便数据观察与调试。在听到“嘀”的一声激活蜂鸣后,读卡器就正式开始工作了。
- 应用中,我们使用串口助手来帮助我们更方便地发送与接收命令。通过读取tag命令,可以看到远距离RFID标签读卡器做出了回应,返回了读取的标签名。之后我们继续尝试其他指令,如下图所示。
- 图中左侧为主机发送的命令帧及其对应说明,右侧为读卡器返回的信息帧以及命令完成响应帧其对应说明。
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号
- 上一篇: Arduino通讯模块-UHF RFID MODULE-USB 远距离RFID标签读卡器
- 下一篇: Arduino通讯模块-UHF RFID MODULE-UART 远距离RFID标签读卡器