基于STC11F32單片機的射頻讀卡器設計
引 言
無線射頻識別技術(shù)(RFID)以其高度安全保密性、通信高速性、使用方便性、成本低等特點而得到快速的普及和推廣,現(xiàn)已廣泛地應用于各類門禁控制系統(tǒng)、公共交通支付系統(tǒng)、醫(yī)療保險系統(tǒng)、停車場管理系統(tǒng)、倉儲管理、車輛防盜等方面,并帶動了讀寫器和各類應用產(chǎn)品的開發(fā)和推廣。本文在分析射頻識別系統(tǒng)組成和原理的基礎上,提出了基于STC11F32高速單片機和MFRC500芯片的射頻讀寫器設計方案;同時,在該讀卡器上擴展了點陣圖形液晶LCD和串行存儲器W25X80,以及USB芯片CH340T等外圍設備。LCD可以顯示各種圖形和漢字;串行存儲器用來存儲點陣字庫、圖形庫等;USB芯片使得該讀卡器省去了串口和電源供電端口,可以通過USB接口和PC管理軟件通信。該讀卡器使用方便、成本低,電路運行穩(wěn)定,可以應用到各種場合。
1 射頻讀寫系統(tǒng)的構(gòu)成和基本原理
最基本的RFID系統(tǒng)由3部分組成:
?、匐娮訕撕?Tag,或稱射頻標簽),由芯片及內(nèi)置天線組成。芯片內(nèi)保存有一定格式的電子數(shù)據(jù),作為待識別物品的標識性信息,是射頻識別系統(tǒng)真正的數(shù)據(jù)載體。內(nèi)置天線用于和射頻天線間進行通信。
?、陂喿x器,讀寫電子標簽信息的設備。主要任務是控制射頻模塊向標簽發(fā)射讀取信號,并接收標簽的應答;對標簽的對象標識信息進行解碼,將對象標識信息連帶標簽上其他相關信息傳輸?shù)街鳈C以供處理。
?、厶炀€,標簽與閱讀器之間傳輸數(shù)據(jù)的發(fā)射、接收裝置。
射頻讀寫系統(tǒng)基本原理如下:讀寫器向卡片發(fā)一組固定頻率的電磁波,卡片內(nèi)有一個LC串聯(lián)諧振電路,其頻率與讀寫器發(fā)射的頻率相同。在電磁波的激勵下,LC諧振電路產(chǎn)生共振,從而使電容內(nèi)有了電荷。在這個電容的另一端接有一個單向?qū)ǖ碾娮颖?,將電容?nèi)的電荷送到另一個電容內(nèi)存儲。當所積累的電荷達到2 V時,此電容可作為電源為其他電路提供工作電壓,將卡內(nèi)數(shù)據(jù)發(fā)射出去或存取讀寫器的數(shù)據(jù)。
2 讀卡器硬件設計
STC11F32是宏晶科技公司生產(chǎn)的單時鐘/機器周期(1T)的單片機,是高速、低功耗、具有超強抗干擾能力的新一代8051單片機,指令代碼完全兼容傳統(tǒng)8051,但速度快8~12倍。內(nèi)部集成高可靠復位電路,可用在高速通信、智能控制、強干擾等場合;內(nèi)部有32 KB的Flash、29KB的EEPROM和1 280字節(jié)的SRAM;EA、ALE、PSEN和RST引腳可以定義為通用I/O,即4個P4引腳;編程支持ISP下載功能,使用起來比較方便。
MFRC500是Philips公司應用于13.56 MHz非接觸式通信中高集成讀卡IC系列中的一員。該讀卡IC系列利用先進的調(diào)制解調(diào)概念,完全集成了13.56 MHz下所有類型的被動非接觸式通信方式和協(xié)議。MFRC500支持ISO 14443A所有的層,內(nèi)部的發(fā)送器部分不需要增加有源電路就能夠直接驅(qū)動近操作距離的天線(距離可達10cm);與微控制器的接口方式有多種,既可以采用總線擴展方式,也可以采用模擬總線方式。
為了使用STC11F32內(nèi)部1 KB的擴展SRAM,采用模擬總線接口方式,即用單片機的P0口和MFRC500的D0~D7相連,用EA、ALE、WR、RD等作為控制線分別和MFRC500的NCS、ALE、NWR、NRD等相連。由于是模擬總線方式,所以單片機的P0口要加上拉電阻。采用模擬總線方式是一種通用的方法,特別是對于不支持總線擴展的單片機更為重要。該設計中使用模擬總線方式可防止MFRC500和單片機內(nèi)部的RAM發(fā)生總線沖突。圖1是讀卡器的系統(tǒng)硬件原理圖。
CH340T是南京沁恒公司生產(chǎn)的USB總線轉(zhuǎn)接芯片,可以實現(xiàn)USB轉(zhuǎn)串口,用于為計算機擴展異步串行口,或者將普通的串口設備直接升級到USB總線。CH340T是全速USB設備接口,兼容USB V2.0,外圍元器件只需要晶體和電容等器件;硬件全雙工串口,內(nèi)置收發(fā)緩沖區(qū),支持通信波特率50 bps~2 Mbps;支持常用的Modem聯(lián)絡信號RTS、DTR、DCD、RI、DSR等。CH340T使得該讀卡器省去了串口和電源供電端口,可以通過該USB接口和PC管理軟件通信。
LCD采用的是不帶字庫的點陣圖形LCD模塊FG12864E。為了使讀卡器可以應用在諸如圖書館圖書管理等需要漢字顯示的場合,采用串行存儲器W25X80自行設計了GB2312漢字庫和其他圖片庫。串行存儲器以其體積小、密度高、功耗低、價位低、操作簡單而備受青睞。Winbond公司生產(chǎn)的W25X80為8 Mb串行存儲器,分為4 096頁,每頁為256字節(jié)的存儲單元,且?guī)в?56字節(jié)的緩沖區(qū),SPI接口方式。使用Flash自行設計漢字庫不僅操作十分簡單,并且可以靈活地適用于多個設計方案。
3 讀卡器軟件設計
在軟件設計中STC11F32和MFRC500之間的模擬通信是最關鍵的一步,因為只有打通了底層通信的關鍵環(huán)節(jié),STC11F32才能進一步通過控制MFRC500實現(xiàn)讀、寫卡的基本操作。為了實現(xiàn)這一步,首先要弄清楚MFRC500的讀寫時序。本設計采用的是獨立讀/寫選通、復用地址總線的方式,在此方式下MFRC500的讀寫時序如圖2所示。
根據(jù)該時序圖可以寫出STC11F32單片機從MFRC500讀、寫一個字節(jié)的C語言實現(xiàn)代碼。
(1)從一個地址讀出一個數(shù)據(jù)
STC11F32主要通過調(diào)用這兩個最基本的函數(shù)來實現(xiàn)對MFRC500進行復雜的讀寫控制的。采用模擬總線通信方式的最大好處是,用C語言寫的代碼很容易移植到不支持總線擴展的各種單片機上,增強了軟件模塊的可復用性和可移植性。打通了底層通信的關鍵環(huán)節(jié)之后,就可以編寫調(diào)試各個軟件模塊。軟件總體流程如圖3所示。
系統(tǒng)上電后,首先要初始化STCllF32的I/O引腳和串行口。I/O設置主要是把STC11F32的特殊引腳(如EA、ALE、PSEN等)定義為通用I/O,以便與MFRC500進行模擬通信。之后進行MFRCS00的復位,要延時足夠長的時間以使MFRC500得到可靠的復位。在復位過程中,MFRC500的一些寄存器位由硬件預置;復位成功以后,還需要對MFRC500的各個寄存器進行必要的配置。
在LCD初始化完成后,LCD上將顯示系統(tǒng)的相關提示信息,然后等待用戶從串口或按鍵輸入的命令,根據(jù)用戶輸入的命令進行相應的操作,并把執(zhí)行操作的結(jié)果再返回給用戶,同時在LCD上顯示出來。
結(jié) 語
本文采用宏晶科技的高速、低價位單片機STC11F32和Philips公司的MFRC500芯片設計出了非接觸式的射頻讀卡器;按照ISO/IEC 14443的標準,完成了系統(tǒng)硬件和軟件的設計工作。經(jīng)實際使用證明,該讀卡器工作穩(wěn)定、抗干擾能力強、性價比高、操作靈活,具有很強的市場競爭力。
評論