基于ARM的RFID閱讀器設(shè)計(jì)
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è)基于ARM的RFID閱讀器軟硬件框架,實(shí)現(xiàn)了對(duì)射頻卡的基本讀寫(xiě)等功能。閱讀器采用的ARM微處理器,接口資源豐富,還有很多空閑接口,可在閱讀器的基礎(chǔ)上進(jìn)行擴(kuò)展,例如,可利用ARM的其它接口驅(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)帶有RFID功能的多功能系統(tǒng)有一定的參考價(jià)值和實(shí)用價(jià)值。
評(píng)論