一款基于FPGA的RFID閱讀器設計
初始化部分
/*URAT 初始化*/
XUartLite_Initialize( Uart,
XPAR_RS232_DEVICE_ID)
/*LCD 初始化*/
void lcd_init(unsigned int base_addr)
/*URAT 開(kāi)中斷*/
void XUartLite_EnableInterrupt ( XUartLite *
InstancePtr)
/*設置URAT 初始化*/
void XUartLite_SetSendHandler(XUartLite
* InstancePtr, XUartLite_Handler FuncPtr, void
*CallBackRef)
/*設置URAT 的中斷服務(wù)程序*/
void XUartLite_SetRecvHandler(XUartLite *
InstancePtr, , XUartLite_Handler
XUartLite_InterruptHandle, void * CallBackRef)
初始化完成以后,然后進(jìn)入一個(gè)無(wú)限循環(huán)。
/*判斷是否有鍵按下*/
XGpio_InterruptGetStatus(XGpio *InstancePtr)
/*發(fā)送讀標簽命令*/
for (j=0;jcount ;j++)
{ XUartLite_SendByte(UARTLITE_0_BASEA
DDR, *(commanda+j) );
wait(50000);
}
/*如果對列不為空*/
If(!IsEmptyQuque())
/* 讀取隊列數據 */
Read_Quque(data )
/* 寫(xiě)入FLASH*/
void flash_write(Xuint32 addr, long data)
對FLASH 的操作首先要塊檫除,然后才能寫(xiě),對FLASH 寫(xiě)的代碼如下:
void flash_write(Xuint32 addr, long data)
{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;
}
程序編寫(xiě)完成后,經(jīng)過(guò)編譯和消除錯誤后,下載到目標板,在FPGA 開(kāi)發(fā)板運行程序,在LCD得到標簽信息,見(jiàn)圖6。
圖6 標簽信息在LCD 的顯示
6 結 論
RFID 技術(shù)是近年來(lái)發(fā)展起來(lái)的一種新型的自動(dòng)識別技術(shù)。FPGA 技術(shù)是未來(lái)硬件廣泛使用的一種技術(shù),本文結合將RFID 技術(shù)與FPGA 技術(shù)相結合,研究和實(shí)現了一種新結構的閱讀器,基于FPGA的閱讀器具有結構靈活、體積小、升級容易和易擴展等優(yōu)點(diǎn)。本文給出了閱讀器的總體結構、硬件部分結構和軟件部分結構,研究了RFID 射頻模塊與FPGA 之間的接口實(shí)現及標簽信息在LCD 顯示。具有廣泛的使用價(jià)值。
評論