影音先锋熟女少妇av资源,国产精品52页,2021精品国产自在现线看,亚洲高清中文字幕在线

物聯(lián)傳媒 旗下網(wǎng)站
登錄 注冊
RFID世界網(wǎng) >  技術文章  >  其他  >  正文

一款基于FPGA的RFID閱讀器設計

作者:不詳
來源:與非網(wǎng)
日期:2015-06-04 17:37:01
摘要:本文給出了閱讀器的總體結構、硬件部分結構和軟件部分結構,研究了RFID 射頻模塊與FPGA 之間的接口實現(xiàn)及標簽信息在LCD 顯示。具有廣泛的使用價值。

引言

RFID技術是從20世紀80年代走向成熟的一項自動識別技術,近年來發(fā)展十分迅速。目前,在全世界,基于RFID技術的電子標簽,使用已經非常廣泛了,這主要取決于它的特性,RFID標簽可以使用在幾乎所有的物理對象上。RFID技術在工業(yè)自動化,物體跟蹤,交通運輸控制管理,防偽校園卡,電子錢包,行李標簽,收費系統(tǒng),醫(yī)用裝置,電子物品的監(jiān)控和軍事用途等方面已經得到了廣泛的應用。例如第二代居民身份證,使用基于ISO/IEC4443-B標準的13.56MHz電子標簽,該項目可以說國內乃至國際上最大的RFID應用的項目之一。

RFID系統(tǒng)由閱讀器(Reader),電子標簽(Tag)和后臺數(shù)據(jù)庫組成,見圖1。閱讀器從附著在物品上的Tag中讀取數(shù)據(jù),這些數(shù)據(jù)在閱讀器或送給后臺的數(shù)據(jù)庫應用程序進行處理。閱讀器作為RFID系統(tǒng)中的關鍵部件通過天線與電子標簽進行無線通信,可以實現(xiàn)對標簽識別碼和內存數(shù)據(jù)的讀出或寫入操作。

一款基于FPGA的RFID閱讀器設計

圖1RFID系統(tǒng)構成。

FPGA具有開發(fā)簡單,靜態(tài)可重復編程和動態(tài)在系統(tǒng)編程的特點,已經成為當今應用最廣泛的可編程專用集成電路。目前在FPGA的集成開發(fā)環(huán)境中提供各種I/O接口的IP核,方便實現(xiàn)各種I/O接口。

現(xiàn)有的RFID閱讀器一般是由ARM(AdvancedRISCMachines)結構體系實現(xiàn)的,一般體積較大,不容易升級。本文研究和實現(xiàn)了基于FPGA的閱讀器,這種閱讀器具有結構靈活、體積小、升級容易、方便實現(xiàn)不同的外設接口等優(yōu)點。

論文結構如下第一部分描述閱讀器的總體結構,第二部分是硬件部分結構,第三部分是軟件部分結構,第四部分是閱讀器的實現(xiàn)。

1基于FPGA的RFID閱讀器總體結構

閱讀器是由FPGA、射頻模塊、LCD和FLASH構成的,閱讀器的系統(tǒng)結構見圖2。標準串口向射頻模塊發(fā)送對標簽操作的命令,用于接收從射頻模塊返回的標簽中的內容,LCD顯示標簽信息,系統(tǒng)控制程序是系統(tǒng)的核心程序,它協(xié)調各部分的運行,F(xiàn)LASH存儲器存放數(shù)據(jù)。

一款基于FPGA的RFID閱讀器設計

圖2閱讀器的系統(tǒng)結構

FPGA實現(xiàn)的外部接口有:串口、LCD接口、FLASH接口和鍵盤接口等,射頻模塊內部含有符合RFID標準的標簽操作程序,能夠執(zhí)行來自串口的操作標簽的命令,返回標簽的信息。

2閱讀器的硬件部分結構

閱讀器是以FPGA為核心,控制數(shù)據(jù)處理交換的模塊結構。FPGA實現(xiàn)的模塊有:各個外設接口和CPU模塊,這些模塊由該FPGA內部的可編程邏輯電路實現(xiàn)的,它完成與射頻模塊的通信,射頻模塊前端與標簽的空中接口通信讀取標簽信息,F(xiàn)PGA從串口模塊取回標簽信息送LCD顯示,硬件結構如圖3。

一款基于FPGA的RFID閱讀器設計

圖3閱讀器的硬件結構。

3閱讀器軟件部分結構

程序的執(zhí)行從鍵盤的觸發(fā)開始,此時通過串口向射頻模塊發(fā)送讀標簽命令,射頻模塊返回標簽的信息,觸發(fā)串口中斷服務程序執(zhí)行,將讀出的信息放入FIFO對列,將結果送LCD顯示。軟件部分程序執(zhí)行流程圖見圖4。

一款基于FPGA的RFID閱讀器設計

圖4軟件部分程序執(zhí)行流程。

4閱讀器的實現(xiàn)

本文使用日立產射頻模塊、2.4GHz電子標簽、XilinxSpartan-3LC1500開發(fā)板、XilinxPlatformStudio7.1i集成開發(fā)環(huán)境和XilinxISE7.1i集成開發(fā)環(huán)境硬件連接見圖5。FPGA開發(fā)板設計一個串口連接射頻模塊,用于向射頻模塊發(fā)送標簽操作命令和接收標簽的信息。圖中URAT為設計的串口,G16和H16為FPGA的I/O引腳,74LS04為電平轉換模塊。1602為液晶顯示模塊。

一款基于FPGA的RFID閱讀器設計

圖5硬件連接。

4.1FPGA中的CPU模塊

嵌入式CPU的設計是SOC設計的核心。FPGA可以方便地實現(xiàn)嵌入式CPU核[6],在FPGA器件中嵌入式CPU有硬核和軟核兩種,如Xilinx的VirtexII器件中含有CPU硬核POWERPC401核,Altera的Excalibur器件中含有PowerTrace核;軟核如Xilinx的PicoBlaze和MicroBlaze,Altera的Nios,Tensilica的Xtensa和OpenCores的OpenRISC軟核。硬核提供了豐富的指令和功能,但不能改變其電路結構。硬核具有高速和高效的優(yōu)點,但熟悉和充分掌握硬核的使用比較困難,硬核并不是所有的FPGA器件都有的。而軟核是用VHDL語言設計實現(xiàn),設計者可以根據(jù)具體需要進行設計或對軟核進行適當?shù)男薷?,適當增加或減少硬件電路,如寄存器數(shù)量,RAM容量和總線寬度等,,提高芯片利用率,,還可以提高CPU運行速度,并且軟核還具有使用靈活和低成本的特點。本文使用的是Microblaze軟核。

4.2實現(xiàn)過程

在集成開發(fā)環(huán)境中添加LCD、URAT和DIP的軟件IP核,其中DIP用于模擬鍵盤輸入。然后配置各個接口IP核的總線類型、地址范圍和外部端口,在項目的UCF文件中配置接口IP核的引腳和FGPA的I/O的連接關系。

從串口接收數(shù)據(jù)有兩種方法:一種是采用定時器讀;另一種采用串口的中斷服務程序來讀。采用定時器消耗資源比較大,本文采用串口中斷的方法,當串口有數(shù)據(jù)到達時,激活串口中斷服務程序,在中斷服務程序中讀出串口緩沖區(qū)的數(shù)據(jù),然后寫道FIFO對列。

URAT中斷服務程序的主要代碼如下:

VoidXUartLite_InterruptHandler(XUartLite*

InstancePtr)

/*判斷Uart緩沖區(qū)是否為空*/

if(!XUartLite_mIsReceiveEmpty(RS232_BASEADD

R))

{

/*接收URAT數(shù)據(jù)*/

Data=XUartLite_RecvByte(RS232_BASEADDR);//

/*寫入FIFO緩沖隊列*/

Add_Queue(Data);

}

其中FIFO緩沖隊列是由一個自定義的數(shù)據(jù)結構和對它的操作實現(xiàn)的。

下面是主程序的主要代碼。

初始化部分

/*URAT初始化*/

XUartLite_Initialize(&Uart,

XPAR_RS232_DEVICE_ID)

/*LCD初始化*/

voidlcd_init(unsignedintbase_addr)

/*URAT開中斷*/

voidXUartLite_EnableInterrupt(XUartLite*

InstancePtr)

/*設置URAT初始化*/

voidXUartLite_SetSendHandler(XUartLite

*InstancePtr,XUartLite_HandlerFuncPtr,void

*CallBackRef)

/*設置URAT的中斷服務程序*/

voidXUartLite_SetRecvHandler(XUartLite*

InstancePtr,,XUartLite_Handler

XUartLite_InterruptHandle,void*CallBackRef)

初始化完成以后,然后進入一個無限循環(huán)。

/*判斷是否有鍵按下*/

XGpio_InterruptGetStatus(XGpio*InstancePtr)

/*發(fā)送讀標簽命令*/

for(j=0;j

{XUartLite_SendByte(UARTLITE_0_BASEA

DDR,*(commanda+j));

wait(50000);

}

/*如果對列不為空*/

If(!IsEmptyQuque())

/*讀取隊列數(shù)據(jù)*/

Read_Quque(data)

/*寫入FLASH*/

voidflash_write(Xuint32addr,longdata)

對FLASH的操作首先要塊檫除,然后才能寫,對FLASH寫的代碼如下:

voidflash_write(Xuint32addr,longdata)

{XIo_Out32(flash_base_addr+(0x555<<2),

0x00aa00aa);

XIo_Out32(flash_base_addr+(0xaaa<<2),

0x00550055);

XIo_Out32(flash_base_addr+(0x555<<2),

0x00a000a0);

XIo_Out32(addr,data);

return;

}

程序編寫完成后,經過編譯和消除錯誤后,下載到目標板,在FPGA開發(fā)板運行程序,在LCD得到標簽信息,見圖6。

一款基于FPGA的RFID閱讀器設計

圖6標簽信息在LCD的顯示

5結論

RFID技術是近年來發(fā)展起來的一種新型的自動識別技術。FPGA技術是未來硬件廣泛使用的一種技術,本文結合將RFID技術與FPGA技術相結合,研究和實現(xiàn)了一種新結構的閱讀器,基于FPGA的閱讀器具有結構靈活、體積小、升級容易和易擴展等優(yōu)點。本文給出了閱讀器的總體結構、硬件部分結構和軟件部分結構,研究了RFID射頻模塊與FPGA之間的接口實現(xiàn)及標簽信息在LCD顯示。具有廣泛的使用價值。