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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM的RFID閱讀器設(shè)計(jì)

          基于ARM的RFID閱讀器設(shè)計(jì)

          作者: 時(shí)間:2012-05-24 來(lái)源:網(wǎng)絡(luò) 收藏

          3改進(jìn)的防沖突算法

          根據(jù)ISO14443協(xié)議,M1型卡傳統(tǒng)的防沖突算法是動(dòng)態(tài)二進(jìn)制檢索樹(shù)算法。它首先利用MANCHESTER編碼“沒(méi)有變化”的狀態(tài)來(lái)檢測(cè)碰撞位,然后把碰撞位設(shè)為二進(jìn)制“1”,用SELECT命令發(fā)送碰撞前接收的部分卡片序列號(hào)和碰撞位,如果卡片開(kāi)頭部分序列號(hào)與其相同,則做出應(yīng)答,不相同則沒(méi)有響應(yīng)。以此來(lái)縮小卡片范圍,最終達(dá)到無(wú)碰撞。圖3顯示了兩個(gè)卡片(PICC#1和PICC#2)的防碰撞流程。

          但是,傳統(tǒng)的防碰撞方法要求所有應(yīng)答器準(zhǔn)確同步,應(yīng)答器必須準(zhǔn)確地在同一時(shí)刻開(kāi)始傳輸他們的序列號(hào)。然而,在實(shí)際使用中,應(yīng)答器由用戶控制,可能產(chǎn)生異步發(fā)送數(shù)據(jù),如果仍然采用傳統(tǒng)防沖突算法,有可能導(dǎo)致死循環(huán),如圖4所示。

          為了解決死循環(huán)問(wèn)題,在傳統(tǒng)算法的基礎(chǔ)上設(shè)置了一個(gè)記錄碰撞位數(shù)的變量,如果第二次碰撞位數(shù)和第一次相等,則把SELECT發(fā)送的部分卡號(hào)增加一位,設(shè)為二進(jìn)制數(shù)“1”發(fā)送出去。如果在規(guī)定時(shí)間內(nèi)沒(méi)有收到應(yīng)答,則把增加位設(shè)為“0”發(fā)送出去??梢杂行ьA(yù)防由于應(yīng)答器異步導(dǎo)致的死循環(huán)問(wèn)題。針對(duì)圖4的改進(jìn)流程如圖5。

          4結(jié)束語(yǔ)

          本文給出了一個(gè)器軟硬件框架,實(shí)現(xiàn)了對(duì)射頻卡的基本讀寫(xiě)等功能。器采用的微處理器,接口資源豐富,還有很多空閑接口,可在器的基礎(chǔ)上進(jìn)行擴(kuò)展,例如,可利用的其它接口驅(qū)動(dòng)電機(jī),利用射頻卡對(duì)電機(jī)實(shí)現(xiàn)控制,只有卡內(nèi)信息正確,系統(tǒng)才能向電機(jī)發(fā)出控制命令,從而在硬件上增加了安全性。另外,改進(jìn)的防沖突算法也使讀卡器在應(yīng)答器異步發(fā)送數(shù)據(jù)的情況下有效的避免死鎖。本文對(duì)實(shí)現(xiàn)帶有功能的多功能系統(tǒng)有一定的參考價(jià)值和實(shí)用價(jià)值。


          上一頁(yè) 1 2 下一頁(yè)

          關(guān)鍵詞: 設(shè)計(jì) 閱讀 RFID ARM 基于

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