<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的RFID無線通信系統(tǒng)的實(shí)現(xiàn)

          基于FPGA的RFID無線通信系統(tǒng)的實(shí)現(xiàn)

          作者: 時(shí)間:2010-10-29 來源:網(wǎng)絡(luò) 收藏

          隨著計(jì)算機(jī)技術(shù)的迅速發(fā)展,電子信息技術(shù)越來越快地普及到各行各業(yè)的應(yīng)用中去。傳統(tǒng)的物流信息采集工作方式是通過工作人員將票物進(jìn)行核對(duì),然后將票上的數(shù)據(jù)輸入到計(jì)算機(jī)中。這一過程費(fèi)時(shí)費(fèi)力,并且可能由于各種人為過失造成各種各樣錯(cuò)誤數(shù)據(jù)的存在,影響所采集信息的可靠性。而自動(dòng)識(shí)別技術(shù)利用計(jì)算機(jī)進(jìn)行自動(dòng)識(shí)別,增加了輸入的靈活性與準(zhǔn)確性,使人們擺脫繁雜的統(tǒng)計(jì)識(shí)別工作,并且大大提高了物流信息采集的工作效率。目前,由沃爾瑪、麥德隆等大超市一手推動(dòng)的RFID應(yīng)用,為零售業(yè)帶來包括降低勞動(dòng)力成本、商品的可視度提高,降低因商品斷貨造成的損失,減少商品偷竊現(xiàn)象等好處。其可應(yīng)用的過程包括:商品的銷售數(shù)據(jù)實(shí)時(shí)統(tǒng)計(jì),補(bǔ)貨,防盜等。本文利用RFID技術(shù),用FPGA芯片與NRF905搭建了無線通信系統(tǒng),成功的實(shí)現(xiàn)了無線收發(fā)數(shù)據(jù)。

          1 系統(tǒng)設(shè)計(jì)
          1.1 RFID簡介

          RFID(Radio Frequency Identification,射頻識(shí)別技術(shù))是利用無線電波對(duì)記錄媒體進(jìn)行讀/寫。射頻識(shí)別的距離可達(dá)幾十厘米至幾米,且根據(jù)讀/寫的方式,可以輸入數(shù)千字節(jié)的信息,同時(shí),還具有極高的保密性。射頻識(shí)別技術(shù)適用的領(lǐng)域:物料跟蹤、運(yùn)載工具和貨架
          識(shí)別等要求非接觸數(shù)據(jù)采集和交換的場(chǎng)合,要求頻繁改變數(shù)據(jù)內(nèi)容的場(chǎng)合尤為適用。如香港的車輛自動(dòng)識(shí)別系統(tǒng)駕易通,采用的主要技術(shù)就是射頻技術(shù)。射頻技術(shù)在其他物品的識(shí)別自動(dòng)化管理方面也得到了較廣泛的應(yīng)用。
          如圖1所示即為本無線系統(tǒng)的整個(gè)構(gòu)架,由控制模塊,SPI模塊以及天線模塊構(gòu)成。其中對(duì)SPI模塊的配置由控制模塊通過Wishbone總線來完成,并且對(duì)天線模塊的配置,模式轉(zhuǎn)換,收發(fā)數(shù)據(jù)等操作均由控制模塊通過SPI總線來完成。下面將就各個(gè)部分進(jìn)行說明。

          本文引用地址:http://www.ex-cimer.com/article/156991.htm


          1.2 天線模塊(NRF905收發(fā)模塊)
          1.2.1 NRF905介紹

          NRF905是挪威Nordic公司推出的單片射頻發(fā)射器芯片,工作電壓為1.9~3.6 V,32引腳QFN封裝,工作于433/868/915MHz三個(gè)ISM頻道。可以自動(dòng)完成處理字頭和CRC(循環(huán)冗余碼校驗(yàn))的工作,可由片內(nèi)硬件自動(dòng)完成曼徹斯特編碼/解碼,使用SPI接口與微控制器通信,配置方便,功耗低,以-10 dBm的輸出功率發(fā)射時(shí)電流只有11 mA,在接收模式時(shí)電流為12.5 mA。
          NRF905有ShockBurst接收與ShockBurst發(fā)送兩種工作模式;掉電和SPI編程與Standby和SPI編程兩種節(jié)電模式。其ShoekBurst工作模式的特點(diǎn)是自動(dòng)產(chǎn)生前導(dǎo)碼和CRC,可以通過SPI接口進(jìn)行編程配置。NRF905的工作模式由對(duì)TRX_CE,TX_EN,PWR_UP的設(shè)置來設(shè)置,見表1。


          1.2.2 NRF905配置與工作過程
          nRF905的所有配置都通過SPI接口進(jìn)行。SPI接口由5個(gè)寄存器組成,一條SPI指令用來決定進(jìn)行什么操作。SPI接口只有在掉電模式和Standby模式是激活的。
          其中SPI接口的5個(gè)寄存器分別為:
          (1)狀態(tài)寄存器:寄存器包含數(shù)據(jù)就緒DR和地址匹配AM狀態(tài)。
          (2)RF配置寄存器:寄存器包含的頻率、輸出功率等配置信息。
          (3)發(fā)送地址:寄存器包含目標(biāo)器件地址,字節(jié)長度由配置寄存器設(shè)置。
          (4)發(fā)送有效數(shù)據(jù):寄存器包含發(fā)送的有效Shock Burst數(shù)據(jù)包數(shù)據(jù),字節(jié)長度由配置寄存器設(shè)置。
          (5)接收有效數(shù)據(jù):寄存器包含接收到的有效ShockBurst數(shù)據(jù)包數(shù)據(jù),字節(jié)長度由配置寄存器設(shè)置。在寄存器中的有效數(shù)據(jù)由數(shù)據(jù)準(zhǔn)備就緒DR指示。
          ShoekBurst技術(shù)使nRF905能夠提供高速的數(shù)據(jù)傳輸,而不需要高速控制器來進(jìn)行數(shù)據(jù)處理或時(shí)鐘覆蓋。通過將與RF協(xié)議有關(guān)的高速信號(hào)處理放到芯片內(nèi),nRF905提供給應(yīng)用控制器一個(gè)SPI接口,速率由微控制器自己設(shè)定的接口速度決定。nRF905通過ShockBurst工作模式在RF以最大速率進(jìn)行連接時(shí)降低數(shù)字應(yīng)用部分的速度來降低在應(yīng)用中的平均電流消耗。在ShockBurst RX(接收)模式中,地址匹配AM和數(shù)據(jù)準(zhǔn)備就緒DR信號(hào)通知控制器一個(gè)有效的地址和數(shù)據(jù)包已經(jīng)各自接收完成。在ShockBurst TX(發(fā)送)模式中,nRF905自動(dòng)產(chǎn)生前導(dǎo)碼和CRC校驗(yàn)碼,數(shù)據(jù)
          準(zhǔn)備就緒DR信號(hào)通知控制器數(shù)據(jù)傳輸已經(jīng)完成。
          1.3 SPI模塊
          1.3.1 SPI總線介紹

          SPI(Serial Parallel Bus)總線是Motorola公司提出的一個(gè)同步串行外設(shè)接口,容許CPU與各種外圍接口器件,以串行方式進(jìn)行通信。它使用4條線:串行時(shí)鐘線(SCK)、主機(jī)輸入/從機(jī)輸出線(MISO)、主機(jī)輸出/從機(jī)輸入線(MOSI)、低電平有效的使能信號(hào)線(SS)。這樣,僅需3~4根數(shù)據(jù)線和控制線即可擴(kuò)展具有SPI接口的各種I/0器件。


          上一頁 1 2 3 下一頁

          關(guān)鍵詞: 收發(fā)器

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();