《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 基于RC522的讀卡器系統設計
基于RC522的讀卡器系統設計
摘要: 本文設計的讀卡器系統以PICl6F7x單片機作為主控芯片,選用MIFARE S50卡片,讀卡器與卡片間以106kbps速率通信,同時實現讀卡過程中的防沖突處理和對卡E2PROM塊內容的讀/寫等功能。讀卡器內部設置了Flash存儲器以存放卡數據,在Flash容量滿的情況下可通過讀卡器的以太網口讀出全部數據到管理中心上位機,便于建立對卡數據的綜合管理系統。  1 硬件系統設計  讀卡器硬件框圖如圖1所示。     單片機PICl6F7x通過SPI總線與RC522和Flash芯片AT45D011相連,同時用簡化的ISA總線連接以太網接口芯片C58900,以提供連接到局域網的能力。AT45D0ll存儲容量為lMb,可同時存儲7400多組MIFARE的E2PROM塊和UID號,提供了足夠讀卡器一天內讀取的信息量的存放容量。對于RC522天線部分的設計,Philips公司有專門的手冊詳細介紹,本文不再贅述。RC522的SPI總線接口有其自身的時序要求。它只能工作于從模式,最高傳輸速率為10 Mbps,數據與時鐘相位關系滿足“空閑態時鐘為低電平,在時鐘上升沿同步接收和發送數據,在下降沿數據轉換”的約束關系。PICl6F7x
Abstract:
Key words :

  本文設計的讀卡器系統以PICl6F7x單片機作為主控芯片,選用MIFARE S50卡片,讀卡器與卡片間以106kbps速率通信,同時實現讀卡過程中的防沖突處理和對卡E2PROM塊內容的讀/寫等功能。讀卡器內部設置了Flash存儲器以存放卡數據,在Flash容量滿的情況下可通過讀卡器的以太網口讀出全部數據到管理中心上位機,便于建立對卡數據的綜合管理系統。

  1 硬件系統設計

  讀卡器硬件框圖如圖1所示。

  

 

  單片機PICl6F7x通過SPI總線與RC522和Flash芯片AT45D011相連,同時用簡化的ISA總線連接以太網接口芯片C58900,以提供連接到局域網的能力。AT45D0ll存儲容量為lMb,可同時存儲7400多組MIFARE的E2PROM塊和UID號,提供了足夠讀卡器一天內讀取的信息量的存放容量。對于RC522天線部分的設計,Philips公司有專門的手冊詳細介紹,本文不再贅述。RC522的SPI總線接口有其自身的時序要求。它只能工作于從模式,最高傳輸速率為10 Mbps,數據與時鐘相位關系滿足“空閑態時鐘為低電平,在時鐘上升沿同步接收和發送數據,在下降沿數據轉換”的約束關系。PICl6F7x系列單片機的片上外設包括1個SSP模塊。該模塊可配置為SPI接口使用,通過相應的寄存器可控制SPI接口的數據傳輸率、數據一時鐘相位天系等通信參數。本文中配置SSP模塊工作于SPI主模式下,時鐘為1/4單片機主頻,接收和發送數據都在時鐘上升沿發生。

  需要注意的是,由于RC522支持的數字接口形式多種多樣,因此芯片在每次復位時都會檢測外部引腳連接關系。對于SPI接口,RC522的相關引腳必須按照圖2所示的連接關系配置。

  

 

  除了通用的4條SPI信號線(時鐘線SCK、輸入數據線MOSI、輸出數據線MOSO和選通線NSS)以外,RC522要求額外的2個引腳I2C和EA分別固定接低電平和高電平。這2個引腳不參與SPI總線傳輸,只起設定RC522數字界面采用SPI接口的作用。另外,片選信號必須保證在寫入數據流期問為低電平,而在無數據流寫入時則為高電平;用戶不得為節省PIC單片機引腳資源而一直將NSS置為低電平。

  2 軟件系統設計

  相對于Philips公司生產的其他14443基站芯片(如RC500、RC530等),RC522簡化了內部系統結構,去掉了片內E2PROM。從而大大縮減了芯片命令集。另外,對載波調制電路,發送電路和解調、解碼電路的控制也相應簡化,去掉了校準接收電路I時鐘、Q時鐘、校準發送與接收時鐘相位等繁瑣的操作。一般而言,單片機與RC522的通信流程如圖3所示。

  

 

  根據RC522和MIFARE卡問傳送的控制流數據的不同,通信過程中可能會出現不同的狀態。對各種狀態須作不同處理,這正是軟件系統開發的難度所在。下面給出RC522命令集中2個最基本命令(Tranceive和MFAuthe-nt)執行過程中可能遇到的通信狀態及處理。這兩個命令分別實現向MIFARE卡發送/接收數據和加密認證功能。實際上,通過它們即可完成對MIFARE卡的所有操作,包括Request、Anticollision、Select、READ、WRITE等。

  2.1 RC522命令集的實現

  RC522主要的狀態指示寄存器包括ComIrqReg、Er-rorReg、Status2Reg和FIFOLevelReg等。軟件處理的思路:通過ComIrgReg得到RC522內部中斷狀態;由中斷判斷RC522與MIFARE卡的通信流程信息,從而決定是否進行下一流程處理;若中斷指示有錯誤發生,則需進一步讀取ErrorReg的內容,據此返回錯誤字。

  2.1.1 Tranceive命令

  Tranceive命令的具體執行過程;讀取RC522 FIFO中的所有數據,經基帶編碼和數字載波調制后通過通信接口以射頻形式發送到MIFARE卡;發送完畢后通過通信接口檢測有無MIFARE卡發送的射頻信號回應,并將收到的信號解調、解碼后放入FIFO中。分析以上Ttanceive命令執行過程,可以得到處理該命令的算法流程圖,如圖4所示。

  

 

  為了處理MIIFARE卡在讀卡器產生的電磁場中激勵后,未完成處理義從激勵場中拿開的情況,軟件中啟用了RC522芯片內部的定時器。若超過設定的時間未得到卡片應答,則中止與卡的通信,返回“卡無反應”的錯誤信息。

  從圖4中可以看出Tranceive命令的核心處理方法:根據相關通信狀態指示寄存器的內容返回各種錯誤狀態字,若有位沖突錯誤,則進一步返回位沖突位置。Tranceive命令不處理面向比特的幀,這種幀只可能在MIFARE卡防沖突循環中出現。為了保持Tranceive命令對各種MI-FARE卡命令的普適性,該命令只完成幀的發送和接收,不對幀信息作處理,所有位沖突處理留在函數外進行。

  需要注意的是,Tranceive命令不能自動中止,在任何情況下從該命令返回時必須先執行IDLE指令使RC522轉入空閑態。

  2.1.2 MFAuthent命令

  RC522簡化了與MIFARE卡的加密認證操作,用一個MFAuthent命令代替了原來RC500需要的Authentl和Authent2兩條命令。MFAuthent命令執行的最終目的在于開啟RC522的加密認證單元。該指令執行成功后,RC522芯片與MIFARE卡間的通信信息將首先加密,然后再通過射頻接口發送。從本質上講,MFAuthent是一條變相的Tranceive命令,其算法流程圖與圖4一致。但RC522芯片內部已經對通信過程中的各種通信狀態作了相應處理,且該命令執行完后自動中止,因此用戶只須檢測定時器狀態和錯誤寄存器狀態來判斷執行情況。實際上,MFAuthent只可能有一種錯誤狀態(RC522與MI-FARE卡通信幀格式錯誤),此時該命令不能打開加密認證單元,用戶必須重新執行認證操作。

  MFAuthent執行過程中RC522將依次從FIFO中讀取1字節認證模式、l字節要認證的E2PROM塊號、6字節密鑰和4字節射頻卡UID號等信息,在命令執行前必須保證這12字節數據完整地保存在FIFO中。認證模式有A密鑰認證和B密鑰認證兩種,一般選用A密鑰認證。

  一次MFAutllent認證只能保證對MIFARE卡的一個扇區中的4個數據塊解密,若要操作其他扇區的數據用戶還須另外啟動對該扇區的認證操作。

  2.2 MIFARE卡操作指令

  對MIFARE卡常用的操作指令包括查詢、防沖突、選卡、讀/寫E2PROM塊等。其中,防沖突指令是14443A協議的精華部分,實現難度較大。下面將重點介紹防沖突算法的軟件實現方法。

  2.2.1 防沖突指令

  14443A標準定義的防沖突算法本質上是一種基于信道時分復用的信道復用方法。在某一時刻若多個射頻卡占用射頻信道與讀卡器通信,則讀卡器將會檢測到比特流的沖突位置;然后重新啟動另一次與射頻卡的通信過程,在過程中將沖突位置上的比特值置為確定值(一般為1)后展開二進制搜索,直到投有沖突錯誤被檢測到為止。MIFARE卡內有4字節的全球惟一序列號UID,而RC522防沖突處理的目的就在于最終確定MIFARE卡的UID。14443A標準的防沖突指令格式如下:

  

 

  其中:命令代碼“93”代表要處理的射頻卡UID只有4字節;NVM表示此次防沖突命令的UID域中正確的比特數;BCC字節只有在NVM為70(即UID的4字節都正確)時才存在,它表示此時整個UID都被識別,防沖突流程結束。

  防沖突算法流程圖如圖5所示。

  

 

  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 讀卡器總體軟件設計

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

  

 

  RC522芯片在每次使用前都必須復位,除了在復位引腳NRSTPD輸入從低電平至高電平的跳變沿外,還必須向RC522的命令寄存器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時隙方式。

此內容為AET網站原創,未經授權禁止轉載。
欧美激情办公室aⅴ_国产欧美综合一区二区三区_欧美午夜精品久久久久免费视_福利视频欧美一区二区三区

          香蕉久久久久久久av网站| 国产精品一区免费观看| 日韩一级在线| 亚洲伦理一区| 午夜影院日韩| 午夜激情一区| 亚洲国产一区二区精品专区| 亚洲国产1区| 国产精品日韩精品欧美精品| 久久国产主播| 亚洲调教视频在线观看| 国产欧美欧美| 欧美福利电影在线观看| 91久久精品国产91久久性色tv| 国产区二精品视| 欧美福利网址| 亚洲视频二区| 国精品一区二区| 亚洲综合二区| 亚洲国内在线| 久久综合中文色婷婷| 伊人久久成人| 久久久久久一区| 亚洲精品国产日韩| 午夜久久资源| 亚洲欧美成人综合| 91久久中文| 国产精品99免费看| 久久国产精品亚洲77777| 亚洲成人在线视频网站| 欧美一区亚洲| 免费在线亚洲欧美| 一区二区欧美日韩| 黄色在线成人| 欧美私人啪啪vps| 久久精品伊人| 国产伦精品一区二区三区高清版| 国产精品av一区二区| 久久婷婷麻豆| 香蕉国产精品偷在线观看不卡| 黄色亚洲在线| 国内自拍视频一区二区三区| 欧美激情一级片一区二区| 亚洲深夜福利| 国产精品一国产精品k频道56| 亚洲福利免费| 亚洲国产清纯| 最新日韩在线| 99国产精品| 一本久久知道综合久久| 一本色道久久综合| 国产欧美一级| 欧美中文字幕| 麻豆成人精品| 午夜国产精品视频免费体验区| 久久看片网站| 欧美a级片一区| 欧美午夜一区二区福利视频| 欧美日韩成人| 韩国亚洲精品| 亚洲精品一区二区三区蜜桃久 | 国内精品嫩模av私拍在线观看| 欧美日本不卡高清| 亚洲视频一二| 国产一区二区三区成人欧美日韩在线观看 | 一区二区三区导航| 亚洲深夜影院| 久久久久国产一区二区| 欧美日韩18| 亚洲美女啪啪| 久久久久久久久久久久久久一区| 久久久蜜桃一区二区人| 欧美色123| 国产精品免费看| 亚洲欧美综合| 亚洲美女少妇无套啪啪呻吟| 久久久久久色| 宅男噜噜噜66国产日韩在线观看| 久久九九电影| 一区二区三区高清视频在线观看| 欧美不卡高清| 99热在线精品观看| 国产精品草草| 久久精品123| 99精品国产99久久久久久福利| 久久精品免费| 99热这里只有精品8| 欧美久久一级| 久久蜜桃精品| 国产麻豆综合| 日韩午夜黄色| 亚洲无吗在线| 欧美久久一级| 麻豆久久婷婷| 国产午夜精品一区二区三区欧美| 很黄很黄激情成人| 久久久综合网| 国产精品久久国产三级国电话系列| 欧美精品福利| 女人香蕉久久**毛片精品| 国产精品视频免费一区| 99精品免费网| 亚洲欧洲视频| 亚洲国产婷婷| 亚洲大胆在线| 国一区二区在线观看| 老司机午夜精品视频| 国产视频一区在线观看一区免费| 怡红院精品视频在线观看极品| 欧美激情视频一区二区三区在线播放| 美脚丝袜一区二区三区在线观看| 99视频+国产日韩欧美| 伊人久久婷婷色综合98网| 午夜国产精品视频免费体验区| 免费日韩一区二区| 久久av在线| 久久久福利视频| 久久在线精品| 欧美女人交a| 国产精品www.| 在线看片成人| 亚洲欧洲在线一区| 一级成人国产| 国产精品美女久久久| 国产乱人伦精品一区二区 | 欧美日韩喷水| 欧美日韩一区自拍| 国产精品激情| 亚洲国产一区在线| 一区二区国产在线观看| 国产精品最新自拍| 你懂的视频一区二区| 你懂的网址国产 欧美| 欧美三级乱码| 136国产福利精品导航网址| 亚洲韩日在线| 亚洲欧美清纯在线制服| 麻豆久久久9性大片| 午夜精品国产| 亚洲九九精品| 欧美在线综合| 欧美午夜久久| 99riav1国产精品视频| 久久国产免费| 18成人免费观看视频| 亚洲一区二区三区高清| 欧美一区二区| 影音先锋亚洲一区| 欧美一区=区| 欧美日韩天天操| 日韩午夜精品| 久久久精品日韩| 亚洲高清久久| 欧美在线91| 在线视频日韩| 欧美日韩精品免费看| 日韩视频在线播放| 欧美日韩国产高清视频| 国产九区一区在线| 激情欧美一区| 欧美一区激情| 国产精品区二区三区日本| 欧美三级午夜理伦三级中文幕| 一本色道久久综合一区| 欧美日韩免费观看一区| 亚洲一区日韩在线| aa级大片欧美三级| 狠狠色综合网站久久久久久久| 欧美~级网站不卡| 一本色道久久99精品综合| 亚洲精选国产| 极品尤物久久久av免费看| 国产精品推荐精品| 在线成人h网| 欧美人与禽猛交乱配视频| 国产一区91| 亚洲三级视频| 亚洲图片在线观看| 欧美日本亚洲韩国国产| 噜噜噜久久亚洲精品国产品小说| 亚洲伦伦在线| 精品69视频一区二区三区Q| 欧美成人日韩| 久久国产精品一区二区三区| 日韩视频久久| 亚洲黄色天堂| 一区二区亚洲精品| 黄色在线一区| 国产一区二区三区无遮挡| 久久精品中文字幕一区二区三区| aa国产精品| 日韩午夜精品| 99综合视频| 一本一本久久| 日韩一级在线| 日韩一级网站| 一区二区三区|亚洲午夜| 99精品99| 国产日韩高清一区二区三区在线| 亚洲人成免费| 99亚洲一区二区| 日韩亚洲精品在线| 一区二区三区四区五区精品视频 | 久久久久久9| 亚洲欧美久久久| 模特精品在线| 久久狠狠久久综合桃花| 久久青青草综合| 欧美日本久久| 在线日本成人| 国产精品呻吟| 欧美69视频| 伊人久久av导航| 夜夜嗨一区二区| 欧美专区一区二区三区| 欧美 亚欧 日韩视频在线| 午夜亚洲福利| 亚洲福利一区| 性色一区二区| 欧美午夜精品| 国产日韩欧美一区二区三区四区 | 亚洲高清精品中出| aa级大片欧美三级| 久久亚洲图片| 亚洲国产精品一区二区第四页av| 国产精品入口66mio| 欧美高清视频一区二区三区在线观看 | 欧美女激情福利| 一区在线播放| 麻豆精品网站| 亚洲精华国产欧美| 久久久久久国产精品mv| 日韩视频一区| 欧美激情日韩| 国产免费成人| 亚洲激情二区| 欧美午夜不卡| 久久精品系列| 国产视频一区在线观看一区免费| 欧美99在线视频观看| 亚洲久久一区| 国内精品99| 久久综合福利| 国产精品五区| 日韩亚洲视频| 欧美性天天影院| 久久亚洲午夜电影| 国产麻豆综合| 一区二区三区成人精品| 国内精品久久久久久久影视蜜臀 | 韩国亚洲精品| 久久性天堂网| 久久精品女人天堂| 翔田千里一区二区| 国产精品久久久久久模特| 在线看片一区| 国产在线欧美日韩| 欧美精品网站| 欧美另类综合| 欧美色图首页| 欧美日韩精品| 欧美日韩一区二区三区四区在线观看| 噜噜噜噜噜久久久久久91| 亚洲一区在线直播| 亚洲一区三区视频在线观看| 亚洲视频二区| 国产精品美女久久久| 99av国产精品欲麻豆| 亚洲高清激情| 中文在线一区| 午夜在线精品偷拍| 久久久成人网| 欧美日本亚洲韩国国产| 国产精品porn| 亚洲视频一二| 日韩天堂av| 亚洲综合国产| 久久综合网络一区二区| 久久一区中文字幕| 欧美特黄a级高清免费大片a级| 欧美日韩三区四区| 在线观看视频免费一区二区三区| 亚洲人成人一区二区三区| 一本久道综合久久精品| 免费一区视频| 欧美日本二区| 日韩午夜一区| 美女精品在线观看| 欧美私人啪啪vps| 亚洲三级影院| 久久精品电影| 亚洲一二三区在线| 国产伦精品一区二区| 欧美不卡高清| 亚洲三级视频| 美日韩精品视频| 国产精品播放| 国产精品美女xx| 欧美激情第8页| 99精品欧美| 玖玖视频精品| 亚洲美女一区| 欧美精品大片| av不卡在线| 欧美日本国产精品| 亚洲一区二区三区午夜| 欧美日韩影院| 亚洲女优在线| 亚洲私人影院| 久久香蕉精品| 国产精品一区免费观看| 国外成人免费视频| 亚洲欧美视频一区二区三区| 欧美日韩一区在线播放| 国产精品日本| 亚洲国产欧美不卡在线观看| 久久亚洲综合网| 国产亚洲一级| 在线欧美视频| 欧美三级乱码| 久久一区激情| 久久不射网站| 日韩午夜激情| 影音先锋久久| 国产一区自拍视频| 欧美一区二区三区另类 | 亚洲国产一区二区三区在线播| 亚欧美中日韩视频| 精品电影一区| 亚洲欧美亚洲| 久久久久久一区二区| 亚洲人成在线影院| 伊人激情综合| 极品少妇一区二区三区| 国产精品xxx在线观看www| 亚洲欧美伊人| 午夜久久美女| 欧美另类一区| 欧美激情91| 欧美久久久久久久| 欧美69视频| 欧美一区二区三区久久精品茉莉花 | 影音先锋在线一区| 欧美暴力喷水在线| 牛牛国产精品| 欧美激情综合| 国产一区激情| 精品成人一区| 亚洲国产网站| 一本色道久久综合亚洲精品不卡 | 亚洲乱码久久| 一区二区三区四区五区视频| 国产日本精品| 久久国产日韩| 午夜久久黄色| 韩日视频一区| 亚洲美女少妇无套啪啪呻吟| 亚洲精品九九| 亚洲一区网站| 欧美黄污视频| 亚洲国产电影| 国产精品美女| 欧美一区1区三区3区公司 | 亚洲女优在线| 久久国产日韩欧美| 欧美极品一区二区三区| 黄色免费成人| 国产欧美短视频| 久久九九电影| 亚洲一级二级| 亚洲综合首页| 欧美精选一区| 亚洲精品在线二区| 国产精品日本| 欧美成人一区二免费视频软件| 欧美日韩中文| 国产亚洲精品v| 午夜精品区一区二区三| 悠悠资源网久久精品| 另类国产ts人妖高潮视频| 国户精品久久久久久久久久久不卡| 日韩一级在线| 久久亚洲精品欧美| 99在线|亚洲一区二区| 久久福利电影| 亚洲日本国产| 欧美喷水视频| 性8sex亚洲区入口| 亚洲成人原创| 欧美成人亚洲| 亚洲欧美高清| 亚洲经典在线| 欧美日韩天天操| 性感少妇一区| 99精品99| 在线精品观看| 欧美日韩亚洲一区二区三区在线 | 91久久国产自产拍夜夜嗨| 久久九九免费| 国产精品日韩欧美一区二区三区|