好吊视频一区二区三区-国产精品V欧美精品V日韩精品-老司机亚洲精品影院-国产精品视频免费播放

物聯傳媒 旗下網站
登錄 注冊
RFID世界網 >  技術文章  >  其他  >  正文

Microblaze在RFID閱讀器的軟硬件設計中的應用

作者:不詳
來源:中國測控網
日期:2016-04-01 15:20:45
摘要:RFID技術在工業自動化,物體跟蹤,交通運輸控制管理,防偽校園卡,電子錢包,行李標簽,收費系統,醫用裝置,電子物品的監控和軍事用途等方面已經得到了廣泛的應用。例如第二代居民身份證,使用基于ISO/IEC4443-B標準的13.56MHz電子標簽,該項目可以說國內乃至國際上最大的RFID應用的項目之一。
關鍵詞:RFID自動識別FPGA

  引言

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

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

Microblaze在RFID閱讀器的軟硬件設計中的應用

  圖1RFID系統構成

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

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

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

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

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

Microblaze在RFID閱讀器的軟硬件設計中的應用

  圖2閱讀器的系統結構

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

  2閱讀器的硬件部分結構

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

Microblaze在RFID閱讀器的軟硬件設計中的應用

  圖3閱讀器的硬件結構

  3閱讀器軟件部分結構

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

Microblaze在RFID閱讀器的軟硬件設計中的應用

  圖4軟件部分程序執行流程

  4閱讀器的實現

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

Microblaze在RFID閱讀器的軟硬件設計中的應用

  圖5硬件連接

  4.1FPGA中的CPU模塊

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

  4.2實現過程

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

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

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

  VoidXUartLite_InterruptHandler(XUartLite*

  InstancePtr)

  /*判斷Uart緩沖區是否為空*/

  if(!XUartLite_mIsReceiveEmpty(RS232_BASEADD

  R))

  {

  /*接收URAT數據*/

  Data=XUartLite_RecvByte(RS232_BASEADDR);//

  /*寫入FIFO緩沖隊列*/

  Add_Queue(Data);

  }

  其中FIFO緩沖隊列是由一個自定義的數據結構和對它的操作實現的。

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

  初始化部分

  /*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)

  初始化完成以后,然后進入一個無限循環。

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

  XGpio_InterruptGetStatus(XGpio*InstancePtr)

  /*發送讀標簽命令*/

  for(j=0;j

  {XUartLite_SendByte(UARTLITE_0_BASEA

  DDR,*(commanda+j));

  wait(50000);

  }

  /*如果對列不為空*/

  If(!IsEmptyQuque())

  /*讀取隊列數據*/

  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開發板運行程序,在LCD得到標簽信息,見圖6。

Microblaze在RFID閱讀器的軟硬件設計中的應用

  圖6標簽信息在LCD的顯示

  5結論

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