<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 手機(jī)與無(wú)線通信 > 設(shè)計(jì)應(yīng)用 > 低功耗便攜式射頻巡更讀寫(xiě)器設(shè)計(jì)

          低功耗便攜式射頻巡更讀寫(xiě)器設(shè)計(jì)

          作者: 時(shí)間:2011-06-07 來(lái)源:網(wǎng)絡(luò) 收藏

            本文介紹一款便攜式機(jī)()的設(shè)計(jì)。該主要由MCU、IC卡讀寫(xiě)模塊、天線及等部分組成。為了方便對(duì)情況的實(shí)時(shí)記錄,系統(tǒng)采用了具有時(shí)間基準(zhǔn)功能的時(shí)鐘芯片。

            隨著近年來(lái)智能小區(qū)、智能大廈的迅猛發(fā)展,系統(tǒng)將有著廣泛的應(yīng)用前景。手持式的主要開(kāi)發(fā)指標(biāo)包括微型化、低功耗、便攜式及方便的數(shù)據(jù)傳輸接口。

            讀寫(xiě)器總體設(shè)計(jì)方案

            便攜式IC卡讀寫(xiě)器主要由電池供電。由于讀寫(xiě)器不斷發(fā)射無(wú)線電波,功耗較大,所以必須從每一個(gè)細(xì)節(jié)來(lái)考慮如何降低功耗,從而盡可能地延長(zhǎng)電池的使用時(shí)間。硬件上采用低功耗設(shè)計(jì),如低功耗器件、低壓、模塊化供電等;軟件上采用規(guī)?;O(shè)計(jì),盡量減少處理器的工作時(shí)間,使其處于低功耗運(yùn)行模式。

            讀寫(xiě)器的設(shè)計(jì)要達(dá)到以下要求:具有自檢功能,開(kāi)機(jī)時(shí)能首先自檢設(shè)備有無(wú)故障;能夠準(zhǔn)確、快捷地讀取非接觸式IC卡內(nèi)的信息;具有聲光報(bào)警電路;電池直接供電,可由3節(jié)AA鎳氫電池供電,開(kāi)機(jī)靜態(tài)電流不大于10mA,工作電流不大于40mA;具有;體積小,成本低,性能穩(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í)記錄下來(lái);巡更完成后巡更機(jī)把采集到的信息通過(guò)USB接口芯片存儲(chǔ)到U盤(pán)中或直接傳給計(jì)算機(jī)軟件處理。

            系統(tǒng)硬件設(shè)計(jì)


          圖1 便攜式射頻讀寫(xiě)器的原理框圖


          圖2 主控模塊電路原理圖
          2 射頻模塊設(shè)計(jì)

            讀寫(xiě)模塊是射頻IC卡與外界通信的媒介,讀寫(xiě)模塊連接著的天線與IC卡線圈產(chǎn)生共振,進(jìn)行數(shù)據(jù)傳遞,完成讀寫(xiě)模塊與卡之間的通信。本設(shè)計(jì)使用的 FM1702N支持13.56MHz頻率下TYPE A 非接觸通信協(xié)議,它是與非接觸式IC卡實(shí)現(xiàn)無(wú)線通信的核心模塊,也是關(guān)鍵接口芯片。它根據(jù)寄存器的設(shè)計(jì)對(duì)發(fā)送緩沖區(qū)中的數(shù)據(jù)進(jìn)行調(diào)制得到發(fā)送的信號(hào),通過(guò)由TX1、TX2引腳驅(qū)動(dòng)的天線以電磁波的形式發(fā)出去,IC卡采用RF場(chǎng)的負(fù)載調(diào)制進(jìn)行響應(yīng)。天線拾取IC卡的響應(yīng)信號(hào)經(jīng)過(guò)天線匹配電路送到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)行通信,讀寫(xiě)器必須有能發(fā)射和接受射頻信號(hào)的天線??梢葬槍?duì)不同的應(yīng)用設(shè)計(jì)不同大小和形狀的天線。天線設(shè)計(jì)具體步驟為:設(shè)定讀寫(xiě)器工作環(huán)境,優(yōu)化讀寫(xiě)器與應(yīng)答器之間的耦合系數(shù),確定天線線圈和電容。

            非接觸式IC卡天線利用電感耦合產(chǎn)生磁通,磁通用來(lái)向應(yīng)答器提供電源,并且在兩者間傳輸數(shù)據(jù)。因此對(duì)讀寫(xiě)器天線的構(gòu)造有以下幾個(gè)基本要求:使天線線圈的電流最大,用于產(chǎn)生最大的磁通量Φ;功率匹配,以最大程度地利用產(chǎn)生磁通量的可用能量;足夠的帶寬以無(wú)失真地傳送數(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ì)

            實(shí)時(shí)時(shí)鐘采用低功耗的CMOS實(shí)時(shí)時(shí)鐘/日歷芯片PCF8563實(shí)現(xiàn),PCF8563提供一個(gè)可編程時(shí)鐘輸出,一個(gè)中斷輸出和掉電檢測(cè)器,其所有地址和數(shù)據(jù)通過(guò)I2C 總線接口串行傳遞(由STC89LE58R的P1.6和P1.7構(gòu)成模擬I2C串行口)。時(shí)鐘電路主要是采集實(shí)時(shí)時(shí)間,以便進(jìn)行實(shí)時(shí)跟蹤記錄。同時(shí)考慮到PCF8563為實(shí)時(shí)時(shí)鐘芯片,在沒(méi)有外接電源時(shí)仍然要求連續(xù)供電,以保持時(shí)間的準(zhǔn)確無(wú)誤。所以,該部分電路還加了掉電保護(hù)功能。

            6 通信接口設(shè)計(jì)

            本系統(tǒng)采用USB進(jìn)行通信,USB接口芯片采用的是CH375,支持HOST主機(jī)方式和SLAVE設(shè)備方式。在USB主機(jī)方式下,CH375提供了并行和串行兩種通信方式,本次設(shè)計(jì)中采用并口通信方式,通過(guò)8位被動(dòng)并行接口的D7~D0、RD、WR、A0、CS直接掛接到MCU的系統(tǒng)總線上,電路連接簡(jiǎn)單。CH375內(nèi)置了處理海量存儲(chǔ)設(shè)備的專用通信協(xié)議的固件,所以讀寫(xiě)器系統(tǒng)的MCU可通過(guò)CH375按照相應(yīng)的USB協(xié)議與USB設(shè)備通信,可將U盤(pán)作為可移動(dòng)的大容量存儲(chǔ)器,無(wú)須詳細(xì)了解USB通信協(xié)議,便可能數(shù)據(jù)進(jìn)行讀寫(xiě)操作。

            系統(tǒng)軟件設(shè)計(jì)

            系統(tǒng)軟件設(shè)計(jì)主要分為三部分,即對(duì)FM1702N的應(yīng)用程序設(shè)計(jì)、USB接口程序設(shè)計(jì)和主程序設(shè)計(jì)。

            讀寫(xiě)器從休眠中被喚醒后進(jìn)行卡探測(cè),如果有卡或有通信請(qǐng)求,就進(jìn)行讀卡、寫(xiě)記錄、通信等正常的工作過(guò)程,工作結(jié)束就進(jìn)入休眠。如果無(wú)卡,就直接進(jìn)入休眠狀態(tài)。喚醒脈沖固定500ms一次,正常工作狀態(tài)時(shí),屏蔽喚醒中斷。所以終端在無(wú)卡狀態(tài)下,每間隔500ms被喚醒一次,進(jìn)行卡探測(cè)??ㄌ綔y(cè)的時(shí)間就是電流的主要消耗時(shí)間,因此縮短卡探測(cè)的時(shí)間是很關(guān)鍵的。本設(shè)計(jì)的系統(tǒng)卡探測(cè)時(shí)間為2ms,這樣,終端在無(wú)外界干預(yù)的情況下實(shí)現(xiàn)卡探測(cè),功耗很低。在無(wú)卡狀態(tài)下,每個(gè)500ms循環(huán)中,有2~3ms處于工作狀態(tài),瞬態(tài)最大電流為40mA,有497~498ms處于休眠狀態(tài),電流只有幾個(gè)微安,總體平均電流為 50μA,從而達(dá)到手持式終端的低功耗的要求。

            MCU采用C51語(yǔ)言編程,系統(tǒng)軟件流程圖如圖4所示。


          圖4 系統(tǒng)軟件流程圖
          讀寫(xiě)器的功耗測(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,在讀寫(xiě) IC卡時(shí)電流為38mA。讀寫(xiě)器的功耗和輸入電壓密切相關(guān),輸入電壓升高,讀寫(xiě)器的功耗也相應(yīng)加大,所以合理選項(xiàng)用輸入電壓很重要。若以3節(jié)5號(hào)鎳氫電池供電,讀寫(xiě)器可連續(xù)工作半年以上。對(duì)設(shè)計(jì)實(shí)現(xiàn)的讀寫(xiě)器進(jìn)行測(cè)試,結(jié)果表明:一般環(huán)境中可在0~8cm范圍內(nèi)尋到IC卡;讀寫(xiě)距離為0~4cm,正常完成各項(xiàng)工作設(shè)計(jì)功能,運(yùn)行穩(wěn)定,基本達(dá)到了技術(shù)指標(biāo)要求。

            然而,本次設(shè)計(jì)在很多方面需要改進(jìn),例如,可為讀寫(xiě)器加上LCD顯示,加裝鍵盤(pán);本設(shè)計(jì)沒(méi)有考慮到上位機(jī)的軟件設(shè)計(jì)問(wèn)題;應(yīng)用程序可以進(jìn)一步的優(yōu)化,以提高程序的執(zhí)行效率。

          蜂鳴器相關(guān)文章:蜂鳴器原理


          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();