snifer

【原创】低频LF-125K开发实例

0
阅读(3768) 评论(0)

自2004年起,全球范围内掀起了一场无线射频识别技术(RFID)的热潮,包括沃尔玛、宝洁、波音公司在内的商业巨头无不积极推动RFID在制造、物流、零售、交通等行业的应用。RFID技术及其应用正处于迅速上升的时期,被业界公认为是本世纪最具潜力的技术之一,它的发展和应用推广将是自动识别行业的一场技术革命。而RFID在交通物流行业的应用更是为通信技术提供了一个崭新的舞台,将成为未来电信业有潜力的利润增长点之一。

本研究以UP-RFID-T型RFID综合平台为硬件基础,着重介绍如何在该平台上进行相关的RFID实验。

blob.png

用到的低频 LF-125K模块

blob.png

125KHz RFID系统采用电感耦合方式工作,由于应答器成本低、非金属材料和水对该频率的射频具有较低的吸收率,所以125KHz RFID系统在动物识别、工业和民用水表等领域获得广泛应用。 e5551应答器芯片 1、e5551芯片的性能和电路组成 (1)主要技术性能 e5551芯片是Atmel公司生产的非接触式、无源、可读写、具有防碰撞能力的RFID器件,中心工作频率为125K 。具有以下主要特性: 1 低功耗,低工作电压2非接触能量供给和读写数据 3 工作频率范围为100~150KHz.

结构图

blob.png

当编码为曼彻斯特码或Biphase码时,调制为PSK2或比特率为RF/8且脉冲频率为RF/8的PSK调制; ♥ 比特率为RF/50或者RF/100的PSK调制,PSK的脉冲频率不为比特率的整数倍 。存储器 存储器EEPROM的结构如下图,它由8块构成,每块33位,第0位为锁存位,共264位。所有33位都可被编程,编程所需电压来自片内。但若某块的锁存位被置1,则该块被锁存,不能通过射频再次编程。

程序开启了一个线程,用于监听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); }

运行界面:

blob.png

物联网的一个小实验,希望能对大家有所帮助。