RFID实验部分_低频LF-125K
一、功能介绍
1.LF-125K技术基础
125KHz RFID系统采用电感耦合方式工作,由于应答器成本低、非金属材料和水对该频率的射频具有较低的吸收率,所以125KHz RFID系统在动物识别、工业和民用水表等领域获得广泛应用。
e5551应答器芯片
e5551芯片是Atmel公司生产的非接触式、无源、可读写、具有防碰撞能力的RFID器件,
中心工作频率为125K 。具有以下主要特性:
☼ 低功耗,低工作电压
☼ 非接触能量供给和读写数据
☼ 工作频率范围为100~150KHz
☼ EEPROM存储器容量为264bit,分8块,每块33位
☼ 具有7块用户数据,每块32位,共224位
☼ 具有块写保护
☼ 采用请求应答实现防碰撞
☼ 完成块写和检验的时间小于50ms
☼ 可编程选择传输速率和编码调制方式
☼ 可工作于密码方式
e5551芯片的内部电路组成框图如下,该图给出了e5551芯片和读写器之间的耦合方式。读写器向e5551芯片传送射频能量和读写命令,同时接收e5551芯片以负载调制方式送来的数据信号。
e5551芯片由模拟前端、写解码、比特率产生器、调制器、模式寄存器、控制器、测试逻辑、存储器、编程用高压产生器等部分构成。
e5551芯片在射频工作时,仅使用coil1(引脚8)和coil2(引脚1),外接电感L2和电容器C2,构成谐振回路。在测试模式时,VDD和VSS引脚为外加电压正端和地,通过测试引脚实现测试功能
二、使用演示
三、代码分析
//程序开启了一个线程,用于监听125KHz模块发送的串口数据(当模块读到标签后会通过串口发送卡号信息)
void RfidThread::run(){
int ret;
qDebug()<<"rfid thread starting!";
runFlag = true;
while(runFlag == true) {
ret = ReceiveFrame(5000); // 等待接受低频125K模块发送的标签卡号信息
if(ret<0) continue;
else{
qDebug()<<"Get Tag ID";
emit RfidReadTagEvt(); // 向窗口发送读取标签卡号事件
}
}
}
/*读取标签卡号信号槽的连接*/
connect(rfidThread, SIGNAL(RfidReadTagEvt()), this, SLOT(RfidReadTagProcess()), Qt::QueuedConnection);
/* RfidReadTagProcess()函数显示读取的标签卡号信息*/
void Widget::RfidReadTagProcess(){
QTableWidgetItem *item;
QString str;
HexToQString(str, rfidThread->tagId, 5); //转化字符串
int row = FindTag(str); //记录行号
if(row<0){
row = ui->tw_tagInfo->rowCount();
ui->tw_tagInfo->insertRow(row);
item = new QTableWidgetItem(str);
ui->tw_tagInfo->setItem(row, 0, item);
item = new QTableWidgetItem(QString::number(1));
ui->tw_tagInfo->setItem(row, 1, item);
}else{
item = ui->tw_tagInfo->item(row, 1);
int count = item->text().toInt();
item->setText(QString::number(++count));
} ui->tw_tagInfo->selectRow(row);
}
四、实践操作
1、编译程序
2、下载测试