新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于RC522的讀卡器系統設計

        基于RC522的讀卡器系統設計

        作者: 時間:2010-09-29 來源:網絡 收藏

          NVM初始值為20,表示該命令只含有2個字節,即“93+20”,不含UID數據,MIFARE卡須返回全部UID字節作為響應。若返回的UID數據有位沖突的情況發生,則根據沖突位置更新NVM值。可知在搜索循環中,隨著UID已知比特數的加入,NVM不斷增加,直到70為止。它表示除了“93+70”兩個命令字節外,還有UID0~UID3和BCC 5個UID數據字節。此時命令字節共有7個,防沖突命令轉變為卡片選擇命令。

          防沖突流程中若遇到須發送和接收面向比特的幀的情況,則必須預先設置通信控制寄存器BitFramingReg。該寄存器可指明發送幀中最后一個字節和接收幀第一個字節中不完整的比特的位數。

          2.2.2 讀卡和寫卡指令

          14443A協議中并沒有具體規定對射頻卡的讀寫操作方式,故對每種卡的讀寫操作都必須考慮該卡的存儲區域組織形式和應答形式。MIFARE卡內部存儲器是由E2PROM組成的,共劃分為16個扇區,每個扇區4個塊,每塊16字節。對E2PROM的讀寫都以塊為單位進行,即每次讀/寫16字節。

          以寫卡指令為例,MIFARE卡要求有兩步握手,指令格式分別如下所述。

          Setp A:查詢塊狀態。

          

          若塊準備好,則MIFARE卡返回4比特應答。若值為1010,則可進行下一步操作;若值非1010,則表示塊未準備好,必須等待直至塊準備好為止。

          Step B:寫數據。

          

          若寫入成功,則MIFARE卡返回4比特應答,值仍為1010;若非lOl0,則表示寫入失敗。

          讀卡指令格式如下:

          

          若執行成功,則MIFARE卡返回18字節應答比特。需要注意的是,其中只有16字節是讀取的塊數據,另外2個字節為填充字節。若字節數不為18,則可判斷讀卡操作錯誤。

          MIFARE卡數據加密時以扇區為單位,一次加密認證僅能操作一個扇區的數據。這為用戶實現“一卡通”功能提供了便利,用戶可在不同的扇區內采用不同加密方式互不干擾地存放各種目的應用數據。實際生活中常見的一種應用是電子錢包,對卡的寫操作須按照一定的格式進行。一個塊的數據組成如下:

          

          注意:address值無意義,但value值寫入時必須在4~7字節中存入取反值。

          2.3 總體軟件

          的軟件思路是利用的Tranceive命令作為標準函數,通過調用此函數實現MIFARE卡操作指令。MIFARE卡的操作流程如圖6所示,其要點是將操作完成的卡轉入休眠態,遞減可能發生沖突的卡片數目直至所有卡片操作完畢,此時防沖突函數無卡片應答。

          

          芯片在每次使用前都必須復位,除了在復位引腳NRSTPD輸入從低電平至高電平的跳變沿外,還必須向的命令寄存器CommandReg寫人軟復位命令代碼0x0I?進行軟復位。在利用Rc522操作MIF’RAE卡之前,用戶必須正確設置芯片模擬部分的工作狀態。依筆者經驗,一般情況下RC522調制、解調方式采用默認設置即可;在106 kbps通信速率下可正常使用,但必須保證天線驅動接口打開,可以通過設置Tx—controlReg寄存器實現。另外,由于14443A協議采用調制深度為100}《的ASK調制,這一點與默認設置不同,因此必須相應設置TxASKRc毽來實現該種調制方式。

          RC522的通信參數設置很復雜,可以調控調制相位、調制位寬、射頻信號檢測強度、發送/接收速度等設置。在硬件調試過程中,用戶可根據實際情況選用適合自身使用的設置形式。

          結語

          本文在106 kbps通信速率下讀卡距離達50 mm,可以實現考勤、電子錢包功能;整個讀卡器采用低功耗元件,可以作為一個網絡終端、以電池作后備電源可靠地工作。對于Rc522的應用,防沖突和通信接口的設置是重點。不同的射頻卡協議,防沖突流程各不相同,通信接口也會有差異,但修改Rc522的相關設置即可使物理接口滿足協議要求。對于防沖突處理,Rc522{支持比特沖突檢測的處理方式,不可處理類似144。13B的ALOHA時隙方式。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 曲水县| 昔阳县| 昂仁县| 保定市| 乌苏市| 巨野县| 伽师县| 翁牛特旗| 花垣县| 尖扎县| 景洪市| 民勤县| 东辽县| 上栗县| 陇川县| 西藏| 六安市| 泊头市| 乌什县| 丰镇市| 北辰区| 简阳市| 祁东县| 长宁区| 临泽县| 青神县| 九龙坡区| 定南县| 伊宁市| 泰顺县| 当雄县| 武邑县| 建水县| 宾阳县| 甘肃省| 五家渠市| 高淳县| 昌图县| 湖南省| 榆树市| 平度市|