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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于FPGA和 C8051F020 的915 MHz射頻讀卡器設(shè)計(jì)

          基于FPGA和 C8051F020 的915 MHz射頻讀卡器設(shè)計(jì)

          作者: 時(shí)間:2011-05-18 來源:網(wǎng)絡(luò) 收藏

          2.1 讀寫卡操作程序
          讀寫卡操作程序完成基于ISO/IEC 18000-6 Type B協(xié)議的基帶信號(hào)編解碼,其程序設(shè)計(jì)流程圖如圖4所示。
          具體工作過程如下:(1)上電復(fù)位,系統(tǒng)初始化,包括單片機(jī)時(shí)鐘、端口、LCD、定時(shí)器的初始化,配置FPGA和開中斷。(2)等待接收上位機(jī)或鍵盤發(fā)送的指令。(3)對(duì)指令進(jìn)行判斷,如果為多卡操作,則進(jìn)入防沖突子程序;如果為單卡操作,則直接進(jìn)行讀卡、寫卡、值操作和中止操作。(4)若操作成功,所得數(shù)據(jù)回傳給上位機(jī),同時(shí)驅(qū)動(dòng)LCD顯示操作成功信息;若操作失敗,則驅(qū)動(dòng)LCD顯示操作失敗信息。

          基于FPGA和 C8051F020 的915 MHz射頻讀卡器設(shè)計(jì)

          2.2 防沖突程序
          當(dāng)對(duì)射頻卡進(jìn)行多卡操作時(shí),在其天線覆蓋范圍內(nèi)的所有射頻卡將被激活,并處于識(shí)別狀態(tài),造成了多張射頻卡讀寫沖突。所以解決沖突是多卡操作的關(guān)鍵。ISO/IEC 18000-6 Type B協(xié)議詳細(xì)規(guī)定了防沖突機(jī)制,其程序設(shè)計(jì)流程圖如圖5所示。該防沖突機(jī)制的原理是利用隨機(jī)產(chǎn)生的0和1信號(hào)實(shí)現(xiàn)二進(jìn)制樹形搜索,并且設(shè)定了成功命令,進(jìn)一步提高了搜索的效率,是一種二進(jìn)制樹形的防沖突算法[7]。具體實(shí)現(xiàn)過程為:首先,射頻卡進(jìn)入的工作范圍,從離場(chǎng)掉電狀態(tài)進(jìn)入就緒狀態(tài)。可以通過GroupSeleet命令和GroupUnseleet命令讓讀卡器工作范圍內(nèi)處于就緒狀態(tài)的所有或部分的射頻卡參與防沖突過程。針對(duì)該模式的防沖突機(jī)制,射頻卡應(yīng)該具有如下兩種硬件電路:一個(gè)8 bit的計(jì)數(shù)器和一個(gè)0、1隨機(jī)數(shù)發(fā)生器。當(dāng)射頻卡進(jìn)入識(shí)別狀態(tài)(ID狀態(tài))后,將其內(nèi)部的計(jì)數(shù)器清0,其中的一部分可以通過接收GroupUnselect命令重新回到就緒狀態(tài),其他處于識(shí)別狀態(tài)的射頻卡則進(jìn)入了防沖突執(zhí)行的過程中。被選中的射頻卡開始下面的循環(huán):(1)所有處于識(shí)別狀態(tài)并且內(nèi)部計(jì)數(shù)器為0的射頻卡將發(fā)送其識(shí)別碼;(2)如果有一個(gè)以上的射頻卡發(fā)送識(shí)別碼時(shí),讀卡器將檢測(cè)到?jīng)_突而發(fā)送Fail命令;(3)所有接收到Fail命令并且內(nèi)部計(jì)數(shù)器不等于0的射頻卡將把本身的計(jì)數(shù)器加1;所有接收到Fail命令并且內(nèi)部計(jì)數(shù)器等于0的射頻卡(即剛剛發(fā)送過應(yīng)答的射頻卡)將產(chǎn)生一個(gè)1或0的隨機(jī)數(shù)。如果選擇了1,射頻卡將把自己的計(jì)數(shù)器加1;如果選擇了0,射頻卡將保持計(jì)數(shù)器為0并且再次發(fā)送它們的識(shí)別碼。在接下來的過程中會(huì)出現(xiàn)4種可能的情況;(4)情況1:如果有一個(gè)以上的射頻卡發(fā)送,將重復(fù)步驟(2);(5)情況2:如果所有的射頻卡都隨機(jī)選擇了1,讀卡器將接收不到應(yīng)答,此時(shí),讀卡器將會(huì)發(fā)送Success命令,所有的射頻卡的計(jì)數(shù)器減1,然后計(jì)數(shù)器等于0的射頻卡開始發(fā)送,接著重復(fù)步驟(2);(6)如果只有一個(gè)射頻卡發(fā)送并且它的識(shí)別碼被讀卡器正確接收,讀卡器將發(fā)送包含識(shí)別碼的DataRead命令,射頻卡正確接收該條命令后將進(jìn)入數(shù)據(jù)交換狀態(tài),開始發(fā)送它的數(shù)據(jù)。此后,讀卡器將發(fā)送Success命令,使處于識(shí)別狀態(tài)的射頻卡的計(jì)數(shù)器減1;(7)情況3:如果只有一個(gè)射頻卡的計(jì)數(shù)器等于0并且返回應(yīng)答,重復(fù)步驟(5)讀卡器發(fā)Success命令或重復(fù)步驟(6)發(fā)送DataRead命令;如果有一個(gè)以上的射頻卡返回應(yīng)答,重復(fù)步驟(2);(8)情況4:如果只有一個(gè)射頻卡返回應(yīng)答,并且它的識(shí)別碼未被正確接收,讀卡器將發(fā)送一個(gè)Resend命令。如果識(shí)別碼被正確接收,重復(fù)步驟(5)。如果識(shí)別碼被重復(fù)幾次的接收(這個(gè)次數(shù)可以基于系統(tǒng)所希望的錯(cuò)誤處理標(biāo)準(zhǔn)來設(shè)定),就假定有一個(gè)以上的射頻卡在響應(yīng),重復(fù)步驟(2)。

          基于FPGA和 C8051F020 的915 MHz射頻讀卡器設(shè)計(jì)

          經(jīng)過如上的防沖突過程,射頻場(chǎng)內(nèi)的射頻卡將可以逐一被識(shí)別并進(jìn)行數(shù)據(jù)交換。


          2.3 串行通信程序
          系統(tǒng)使用PC機(jī)作為上位機(jī),讀卡器作為下位機(jī)。上位機(jī)與下位機(jī)之間的通信采用基于RS-232-C的串口通信。RS-232-C是一種串行通信總線標(biāo)準(zhǔn),是數(shù)據(jù)終端設(shè)備(DTE)和數(shù)據(jù)通信設(shè)備(DCE)之間的接口標(biāo)準(zhǔn),不同廠家生產(chǎn)的設(shè)備,只要它們都具有RS-232-C標(biāo)準(zhǔn)接口,則不需要任何轉(zhuǎn)換電路,就可以互相插接起來。
          串行通信程序是MCU與PC機(jī)通信的控制程序。發(fā)送程序采用查詢的方式設(shè)計(jì),即把待發(fā)送的數(shù)據(jù)先送到緩沖區(qū)中,然后查詢串口發(fā)送中斷標(biāo)志是不是有空,若有空就發(fā)送下一個(gè)數(shù)據(jù)。
          接收程序采用中斷的方式設(shè)計(jì),即當(dāng)PC機(jī)要發(fā)數(shù)據(jù)給MCU時(shí),主動(dòng)向MCU申請(qǐng)中斷,接收中斷標(biāo)志有效,則PC向MCU傳送數(shù)據(jù)。


          3 驗(yàn)證方案
          3.1 驗(yàn)證平臺(tái)的建立
          為了驗(yàn)證所設(shè)計(jì)的讀卡器能否完成預(yù)期的功能,設(shè)計(jì)了相應(yīng)的驗(yàn)證平臺(tái)[8]。驗(yàn)證平臺(tái)由數(shù)據(jù)解碼通道、數(shù)據(jù)編碼通道以及指令分析器三部分組成。數(shù)據(jù)解碼通道是對(duì)讀卡器發(fā)送出的數(shù)據(jù)幀進(jìn)行解碼,提取指令的原始數(shù)據(jù);指令分析器是對(duì)收到的指令數(shù)據(jù)進(jìn)行判斷,同時(shí)返回相應(yīng)的數(shù)據(jù)并發(fā)送給數(shù)據(jù)編碼通道;數(shù)據(jù)編碼通道則是對(duì)發(fā)送來的數(shù)據(jù)進(jìn)行編碼,再發(fā)送給讀卡器。
          平臺(tái)采用Verilog HDL硬件語言搭建,選用Altera公司Cyclone系列的EP1C6Q240C8芯片為目標(biāo)器件,使用Quartus II進(jìn)行綜合驗(yàn)證,其結(jié)構(gòu)框圖和電路原理圖分別如圖6、圖7所示。

          基于FPGA和 C8051F020 的915 MHz射頻讀卡器設(shè)計(jì)

          3.2 測(cè)試結(jié)果分析
          (1)時(shí)序分析
          通過運(yùn)行QuartusII 7.1自帶的時(shí)序分析器,可以得到時(shí)序分析的一些參數(shù):tsu(輸入建立時(shí)間)、tco(時(shí)鐘到輸出延時(shí))、th(保持時(shí)間)分別為3.530 ns、13.174 ns、0.751 ns?;l時(shí)鐘clk最大可以達(dá)到89.06 MHz,而ISO/IEC 18000-6 Type B協(xié)議規(guī)定的基頻時(shí)鐘為40 kHz。從分析本系統(tǒng)的時(shí)序結(jié)果顯示,完全符合協(xié)議要求。具體的時(shí)序分析結(jié)果如圖8所示。

          基于FPGA和 C8051F020 的915 MHz射頻讀卡器設(shè)計(jì)

          (2)功能分析
          功能分析以GROUP_SELECT_LT命令為例。 GROUP_SELECT_LT命令是多卡操作中的組選命令,射頻卡接到此命令,卡內(nèi)指定地址的數(shù)據(jù)與幀中提供的數(shù)據(jù)進(jìn)行對(duì)比。若卡內(nèi)數(shù)據(jù)較小,則返回射頻卡的64 bit序列號(hào),否則不作任何響應(yīng)。GROUP_SELECT_LT命令的命令號(hào)為03,地址設(shè)為0F,掩碼設(shè)為FF,64 bit數(shù)據(jù)全設(shè)為F,所以從MCU傳給FPGA的命令數(shù)據(jù)為03_0F_FF_FFFF_FFFF_FFFF_FFFF。原始數(shù)據(jù)經(jīng)過FPGA數(shù)字信號(hào)處理模塊處理后,就成了一幀基帶數(shù)據(jù)信號(hào)。驗(yàn)證平臺(tái)將讀卡器發(fā)來的數(shù)據(jù)幀進(jìn)行解碼,然后判斷指令并返回射頻卡的64 bit序列號(hào),經(jīng)編碼后成一幀數(shù)據(jù)幀發(fā)送給讀卡器。讀卡器收到此幀后即解碼,并進(jìn)行CRC校驗(yàn),若都沒有錯(cuò),則把解碼后的數(shù)據(jù)傳輸給MCU。
          GROUP_SELECT_LT命令仿真波形圖如圖9所示,實(shí)驗(yàn)證明可實(shí)現(xiàn)ISO/IEC 18000-6 Type B協(xié)議。
          隨著RFID相關(guān)國際標(biāo)準(zhǔn)的確立(如ISO/IEC 18000)RFID的研發(fā)已成為國際性的課題。在諸多RFID工作頻段中,UHF頻段的RFID技術(shù)前景最為看好,也成為現(xiàn)今RFID技術(shù)領(lǐng)域研究的熱點(diǎn)。

          基于FPGA和 C8051F020 的915 MHz射頻讀卡器設(shè)計(jì)


          上一頁 1 2 下一頁

          關(guān)鍵詞: 射頻識(shí)別 讀卡器 altera

          評(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); })();