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