Arduino通讯模块-UHF RFID MODULE-UART 远距离RFID标签读卡器
外观
概述
- UHF RFID MODULE-UART 远距离RFID标签读卡器模块是一款非接触式超高频远距离IC卡读写模块。
- 广泛地运用于车辆监控、遥控、家庭防盗系统、无线抄表、门禁系统、小区传呼、工业数据采集系统、无线标签、身份识别、非接触RF智能卡、小型无线数据终端、安全防火系统、无线遥控系统、生物信号采集、水文气象监控、机器人控制、等领域中。
- DFRobot推出的这款UHF RFID MODULE-UART 远距离RFID标签读卡器模块能很方便的通过UART接口进行通信,同时模块有另一拥有RS485接口的版本,创客们可以通过RS485融入到现有无线网络中去,使用方便。
技术指标
- 模块接口:UART
- 工作电流:最大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
- 绿色线:接UART的TX端
- 黄绿色线:接UART的RX端
注意:在使用ATmega328P芯片的控制板连接读卡器时,如果您通过PC端输入命令,需要交换TX、RX端。
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控制激活读卡器的关闭读取功能与重置配置之间的来回切换。
连线图
示例代码
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);
}
}
使用实例
该版本读卡器使用UART接口TTL接线方式,与arduino主控板上的RX与TX端相连即可使用。在听到“嘀”的一声激活蜂鸣后,读卡器就正式开始工作了。 因为需要通过串口主动输入指令,接线时TX与RX要交换
应用中,我们使用串口助手来帮助我们更方便地发送与接收命令。通过读取tag命令,可以看到远距离RFID标签读卡器做出了回应,返回了读取的标签名。之后我们继续尝试其他指令,如下图所示。
图中左侧为主机发送的命令帧及其对应说明,右侧为读卡器返回的信息帧以及命令完成响应帧其对应说明。
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号