低功耗射頻IC卡讀寫器設(shè)計(jì)
本文介紹一款便攜式巡更機(jī)(射頻讀寫器)的設(shè)計(jì)。該讀寫器主要由MCU、射頻IC卡讀寫模塊、天線及USB通信接口等部分組成。為了方便對(duì)巡更情況的實(shí)時(shí)記錄,系統(tǒng)采用了具有時(shí)間基準(zhǔn)功能的時(shí)鐘芯片。
隨著近年來智能小區(qū)、智能大廈的迅猛發(fā)展,巡更系統(tǒng)將有著廣泛的應(yīng)用前景。手持式讀寫器的主要開發(fā)指標(biāo)包括微型化、低功耗、便攜式及方便的數(shù)據(jù)傳輸接口。
讀寫器總體設(shè)計(jì)方案
便攜式IC卡讀寫器主要由電池供電。由于讀寫器不斷發(fā)射無線電波,功耗較大,所以必須從每一個(gè)細(xì)節(jié)來考慮如何降低功耗,從而盡可能地延長(zhǎng)電池的使用時(shí)間。硬件上采用低功耗設(shè)計(jì),如低功耗器件、低壓、模塊化供電等;軟件上采用規(guī)?;O(shè)計(jì),盡量減少處理器的工作時(shí)間,使其處于低功耗運(yùn)行模式。
讀寫器的設(shè)計(jì)要達(dá)到以下要求:具有自檢功能,開機(jī)時(shí)能首先自檢設(shè)備有無故障;能夠準(zhǔn)確、快捷地讀取非接觸式IC卡內(nèi)的信息;具有聲光報(bào)警電路;電池直接供電,可由3節(jié)AA鎳氫電池供電,開機(jī)靜態(tài)電流不大于10mA,工作電流不大于40mA;具有USB通信接口;體積小,成本低,性能穩(wěn)定可靠。
系統(tǒng)功能概述
根據(jù)不同場(chǎng)合對(duì)巡更系統(tǒng)的要求,需要及時(shí)了解巡更人員巡邏的情況,以確保小區(qū)、商場(chǎng)、鐵路沿線等場(chǎng)合的安全。
因此,本系統(tǒng)應(yīng)具有以下功能:在確定的巡更線路上安裝一系列代表不同點(diǎn)的射頻卡,到達(dá)各點(diǎn)時(shí)巡更人員用手持式巡更機(jī)靠近巡道檢測(cè)點(diǎn),把代表該點(diǎn)的卡號(hào)和時(shí)間同時(shí)記錄下來;巡更完成后巡更機(jī)把采集到的信息通過USB接口芯片存儲(chǔ)到U盤中或直接傳給計(jì)算機(jī)軟件處理。
系統(tǒng)硬件設(shè)計(jì)
圖1是便攜式射頻讀寫器的原理框圖。
圖1 讀卡模塊系統(tǒng)原理框圖
系統(tǒng)以MCU STC89LE58為核心,負(fù)責(zé)整個(gè)系統(tǒng)的監(jiān)控。FM1702N是非接觸式讀卡機(jī)專用芯片(兼容MF RC500),采用并行通信方式和MCU連接,在MCU控制下,讀寫器通過射頻模塊及其天線與卡片進(jìn)行通信。系統(tǒng)采用低功耗的實(shí)時(shí)時(shí)鐘/日歷芯片記錄采集數(shù)據(jù)的時(shí)間,采用虛擬I2C總線進(jìn)行數(shù)據(jù)交換;CH375通過串行輸入、串行輸出和中斷輸出與MCU相連接,它支持各種常用的USB全速設(shè)備,MCU通過CH375按照相應(yīng)的USB協(xié)議與USB設(shè)備通信。在對(duì)各模塊進(jìn)行操作時(shí)由電池向其供電,提供電壓為3.3~3.6V。
1 主控模塊設(shè)計(jì)
讀寫器主控模塊由MCU及其外圍電路組成??蓞⒖糓CU的工作電壓和所提供的低功耗模式,并結(jié)合設(shè)計(jì)的需要選擇集成所需外圍芯片的MCU。依據(jù)以上三個(gè)原則,選擇了超強(qiáng)抗干擾、高速、低功耗的MCU STC89LE58,其內(nèi)部有16KB的EEPROM。此外,由于其工作電壓范圍較寬(2~3.8V),功耗低,特別適合用于電池供電系統(tǒng)。
圖2是主控模塊電路原理圖,USB接口芯片CH375與讀寫器芯片F(xiàn)M1702N與MCU通信都采用并口通信方式,直接掛接到MCU的系統(tǒng)總線上。
圖2 主控模塊電路原理圖
2 射頻模塊設(shè)計(jì)
讀寫模塊是射頻IC卡與外界通信的媒介,讀寫模塊連接著的天線與IC卡線圈產(chǎn)生共振,進(jìn)行數(shù)據(jù)傳遞,完成讀寫模塊與卡之間的通信。本設(shè)計(jì)使用的FM1702N支持13.56MHz頻率下TYPE A 非接觸通信協(xié)議,它是與非接觸式IC卡實(shí)現(xiàn)無線通信的核心模塊,也是關(guān)鍵接口芯片。它根據(jù)寄存器的設(shè)計(jì)對(duì)發(fā)送緩沖區(qū)中的數(shù)據(jù)進(jìn)行調(diào)制得到發(fā)送的信號(hào),通過由TX1、TX2引腳驅(qū)動(dòng)的天線以電磁波的形式發(fā)出去,IC卡采用RF場(chǎng)的負(fù)載調(diào)制進(jìn)行響應(yīng)。天線拾取IC卡的響應(yīng)信號(hào)經(jīng)過天線匹配電路送到RX引腳,F(xiàn)M1702N內(nèi)部接收緩沖器對(duì)信號(hào)進(jìn)行檢測(cè)和解調(diào)并根據(jù)寄存器的設(shè)定進(jìn)行處理。處理后的數(shù)據(jù)發(fā)送到并行接口由MCU讀取。
3 天線設(shè)計(jì)
為了與非接觸式IC卡進(jìn)行通信,讀寫器必須有能發(fā)射和接受射頻信號(hào)的天線??梢葬槍?duì)不同的應(yīng)用設(shè)計(jì)不同大小和形狀的天線。天線設(shè)計(jì)具體步驟為:設(shè)定讀寫器工作環(huán)境,優(yōu)化讀寫器與應(yīng)答器之間的耦合系數(shù),確定天線線圈和電容。非接觸式IC卡天線利用電感耦合產(chǎn)生磁通,磁通用來向應(yīng)答器提供電源,并且在兩者間傳輸數(shù)據(jù)。因此對(duì)讀寫器天線的構(gòu)造有以下幾個(gè)基本要求:使天線線圈的電流最大,用于產(chǎn)生最大的磁通量Φ;功率匹配,以最大程度地利用產(chǎn)生磁通量的可用能量;足夠的帶寬以無失真地傳送數(shù)據(jù)調(diào)制的載波信號(hào)。
4 蜂鳴器驅(qū)動(dòng)電路設(shè)計(jì)
蜂鳴器是在每次讀卡操作不成功的時(shí)候發(fā)出報(bào)警指示音。由于MCU的I/O口驅(qū)動(dòng)能力有限,一般不能直接驅(qū)動(dòng)壓電式蜂鳴器,因此選用一 PNP 型晶體管組成晶體管驅(qū)動(dòng)電路,MCU I/O口(P3.4)輸出經(jīng)驅(qū)動(dòng)電路放大后即可驅(qū)動(dòng)蜂鳴器。本設(shè)計(jì)選用蜂鳴器的工作電流為10mA,其驅(qū)動(dòng)電路如圖3所示。
圖3 蜂鳴器驅(qū)動(dòng)電路
5 時(shí)鐘電路設(shè)計(jì)
如圖4所示,實(shí)時(shí)時(shí)鐘采用低功耗的CMOS實(shí)時(shí)時(shí)鐘/日歷芯片PCF8563實(shí)現(xiàn),PCF8563提供一個(gè)可編程時(shí)鐘輸出,一個(gè)中斷輸出和掉電檢測(cè)器,其所有地址和數(shù)據(jù)通過I2C 總線接口串行傳遞(由STC89LE58R的P1.6和P1.7構(gòu)成模擬I2C串行口)。時(shí)鐘電路主要是采集實(shí)時(shí)時(shí)間,以便進(jìn)行實(shí)時(shí)跟蹤記錄。同時(shí)考慮到PCF8563為實(shí)時(shí)時(shí)鐘芯片,在沒有外接電源時(shí)仍然要求連續(xù)供電,以保持時(shí)間的準(zhǔn)確無誤。所以,該部分電路還加了掉電保護(hù)功能。
圖4 時(shí)鐘電路
6 通信接口設(shè)計(jì)
本系統(tǒng)采用USB進(jìn)行通信,USB接口芯片采用的是CH375,支持HOST主機(jī)方式和SLAVE設(shè)備方式。在USB主機(jī)方式下,CH375提供了并行和串行兩種通信方式,本次設(shè)計(jì)中采用并口通信方式,通過8位被動(dòng)并行接口的D7~D0、RD、WR、A0、CS直接掛接到MCU的系統(tǒng)總線上,電路連接簡(jiǎn)單。CH375內(nèi)置了處理海量存儲(chǔ)設(shè)備的專用通信協(xié)議的固件,所以讀寫器系統(tǒng)的MCU可通過CH375按照相應(yīng)的USB協(xié)議與USB設(shè)備通信,可將U盤作為可移動(dòng)的大容量存儲(chǔ)器,無須詳細(xì)了解USB通信協(xié)議,便可能數(shù)據(jù)進(jìn)行讀寫操作。
系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)主要分為三部分,即對(duì)FM1702N的應(yīng)用程序設(shè)計(jì)、USB接口程序設(shè)計(jì)和主程序設(shè)計(jì)。
讀寫器從休眠中被喚醒后進(jìn)行卡探測(cè),如果有卡或有通信請(qǐng)求,就進(jìn)行讀卡、寫記錄、通信等正常的工作過程,工作結(jié)束就進(jìn)入休眠。如果無卡,就直接進(jìn)入休眠狀態(tài)。喚醒脈沖固定500ms一次,正常工作狀態(tài)時(shí),屏蔽喚醒中斷。所以終端在無卡狀態(tài)下,每間隔500ms被喚醒一次,進(jìn)行卡探測(cè)??ㄌ綔y(cè)的時(shí)間就是電流的主要消耗時(shí)間,因此縮短卡探測(cè)的時(shí)間是很關(guān)鍵的。本設(shè)計(jì)的系統(tǒng)卡探測(cè)時(shí)間為2ms,這樣,終端在無外界干預(yù)的情況下實(shí)現(xiàn)卡探測(cè),功耗很低。在無卡狀態(tài)下,每個(gè)500ms循環(huán)中,有2~3ms處于工作狀態(tài),瞬態(tài)最大電流為40mA,有497~498ms處于休眠狀態(tài),電流只有幾個(gè)微安,總體平均電流為50μA,從而達(dá)到手持式終端的低功耗的要求。
MCU采用C51語言編程,系統(tǒng)軟件流程圖如圖5所示。
圖5 系統(tǒng)軟件流程圖
讀寫器的功耗測(cè)試結(jié)果
當(dāng)對(duì)設(shè)計(jì)好的系統(tǒng)進(jìn)行實(shí)際測(cè)試時(shí),經(jīng)常發(fā)現(xiàn)功耗并不像理論上計(jì)算的那樣小。此時(shí),首先要分清電能主要是MCU本身消耗了還是I/O引腳驅(qū)動(dòng)外圍電路消耗了。最簡(jiǎn)單的判斷方法是分別測(cè)出MCU電源輸入引腳的電流和MCU接地引腳的電流,只有當(dāng)兩者的數(shù)值基本相等時(shí),整個(gè)系統(tǒng)的功耗最低??蓮囊韵聨讉€(gè)方面進(jìn)行分析:所有輸入引腳不能懸空。如果懸空的將使得數(shù)字輸入緩沖區(qū)產(chǎn)生切換電流,從而增大功耗。所有未用的引腳設(shè)置為輸出,并設(shè)置為固定的高電平或低電平。如果MCU電源輸入引腳電流和接地引腳流出電流不相等,則I/O引腳一定輸出或吸收了電流,應(yīng)該仔細(xì)查找輸出或吸收電流的I/O引腳并采取的措施以降低功耗。檢查是否所有片上的外圍電路都給關(guān)閉了,否則外圍電路會(huì)消耗額外的電流。
本設(shè)計(jì)的測(cè)試結(jié)果如下:待機(jī)電流為7mA,在讀寫IC卡時(shí)電流為38mA。讀寫器的功耗和輸入電壓密切相關(guān),輸入電壓升高,讀寫器的功耗也相應(yīng)加大,所以合理選項(xiàng)用輸入電壓很重要。若以3節(jié)5號(hào)鎳氫電池供電,讀寫器可連續(xù)工作半年以上。對(duì)設(shè)計(jì)實(shí)現(xiàn)的讀寫器進(jìn)行測(cè)試,結(jié)果表明:一般環(huán)境中可在0~8cm范圍內(nèi)尋到IC卡;讀寫距離為0~4cm,正常完成各項(xiàng)工作設(shè)計(jì)功能,運(yùn)行穩(wěn)定,基本達(dá)到了技術(shù)指標(biāo)要求。
然而,本次設(shè)計(jì)在很多方面需要改進(jìn),例如,可為讀寫器加上LCD顯示,加裝鍵盤;本設(shè)計(jì)沒有考慮到上位機(jī)的軟件設(shè)計(jì)問題;應(yīng)用程序可以進(jìn)一步的優(yōu)化,以提高程序的執(zhí)行效率。
蜂鳴器相關(guān)文章:蜂鳴器原理
評(píng)論