基于RC522的讀卡器系統(tǒng)設(shè)計(jì)
本文設(shè)計(jì)的讀卡器系統(tǒng)以PICl6F7x單片機(jī)作為主控芯片,選用MIFARE S50卡片,讀卡器與卡片間以106kbps速率通信,同時(shí)實(shí)現(xiàn)讀卡過(guò)程中的防沖突處理和對(duì)卡E2PROM塊內(nèi)容的讀/寫(xiě)等功能。讀卡器內(nèi)部設(shè)置了Flash存儲(chǔ)器以存放卡數(shù)據(jù),在Flash容量滿的情況下可通過(guò)讀卡器的以太網(wǎng)口讀出全部數(shù)據(jù)到管理中心上位機(jī),便于建立對(duì)卡數(shù)據(jù)的綜合管理系統(tǒng)。
本文引用地址:http://m.butianyuan.cn/article/173194.htm讀卡器硬件框圖如圖1所示。
單片機(jī)PICl6F7x通過(guò)SPI總線與RC522和Flash芯片AT45D011相連,同時(shí)用簡(jiǎn)化的ISA總線連接以太網(wǎng)接口芯片C58900,以提供連接到局域網(wǎng)的能力。AT45D0ll存儲(chǔ)容量為lMb,可同時(shí)存儲(chǔ)7400多組MIFARE的E2PROM塊和UID號(hào),提供了足夠讀卡器一天內(nèi)讀取的信息量的存放容量。對(duì)于RC522天線部分的設(shè)計(jì),Philips公司有專(zhuān)門(mén)的手冊(cè)詳細(xì)介紹,本文不再贅述。RC522的SPI總線接口有其自身的時(shí)序要求。它只能工作于從模式,最高傳輸速率為10 Mbps,數(shù)據(jù)與時(shí)鐘相位關(guān)系滿足“空閑態(tài)時(shí)鐘為低電平,在時(shí)鐘上升沿同步接收和發(fā)送數(shù)據(jù),在下降沿?cái)?shù)據(jù)轉(zhuǎn)換”的約束關(guān)系。PICl6F7x系列單片機(jī)的片上外設(shè)包括1個(gè)SSP模塊。該模塊可配置為SPI接口使用,通過(guò)相應(yīng)的寄存器可控制SPI接口的數(shù)據(jù)傳輸率、數(shù)據(jù)一時(shí)鐘相位天系等通信參數(shù)。本文中配置SSP模塊工作于SPI主模式下,時(shí)鐘為1/4單片機(jī)主頻,接收和發(fā)送數(shù)據(jù)都在時(shí)鐘上升沿發(fā)生。
需要注意的是,由于RC522支持的數(shù)字接口形式多種多樣,因此芯片在每次復(fù)位時(shí)都會(huì)檢測(cè)外部引腳連接關(guān)系。對(duì)于SPI接口,RC522的相關(guān)引腳必須按照?qǐng)D2所示的連接關(guān)系配置。
除了通用的4條SPI信號(hào)線(時(shí)鐘線SCK、輸入數(shù)據(jù)線MOSI、輸出數(shù)據(jù)線MOSO和選通線NSS)以外,RC522要求額外的2個(gè)引腳I2C和EA分別固定接低電平和高電平。這2個(gè)引腳不參與SPI總線傳輸,只起設(shè)定RC522數(shù)字界面采用SPI接口的作用。另外,片選信號(hào)必須保證在寫(xiě)入數(shù)據(jù)流期問(wèn)為低電平,而在無(wú)數(shù)據(jù)流寫(xiě)入時(shí)則為高電平;用戶(hù)不得為節(jié)省PIC單片機(jī)引腳資源而一直將NSS置為低電平。
2 軟件系統(tǒng)設(shè)計(jì)
相對(duì)于Philips公司生產(chǎn)的其他14443基站芯片(如RC500、RC530等),RC522簡(jiǎn)化了內(nèi)部系統(tǒng)結(jié)構(gòu),去掉了片內(nèi)E2PROM。從而大大縮減了芯片命令集。另外,對(duì)載波調(diào)制電路,發(fā)送電路和解調(diào)、解碼電路的控制也相應(yīng)簡(jiǎn)化,去掉了校準(zhǔn)接收電路I時(shí)鐘、Q時(shí)鐘、校準(zhǔn)發(fā)送與接收時(shí)鐘相位等繁瑣的操作。一般而言,單片機(jī)與RC522的通信流程如圖3所示。
評(píng)論