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

          新聞中心

          EEPW首頁(yè) > 設(shè)計(jì)應(yīng)用 > 低功耗非接觸式射頻讀寫(xiě)器的設(shè)計(jì)

          低功耗非接觸式射頻讀寫(xiě)器的設(shè)計(jì)

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

           芯片電路的功耗主要來(lái)自開(kāi)關(guān)的動(dòng)態(tài)功耗和漏電的靜態(tài)功耗。動(dòng)態(tài)功耗主要是電容的充放電(包括網(wǎng)絡(luò)電容和輸入負(fù)載)以及P/N MOS同時(shí)打開(kāi)形成的瞬間短路電流。靜態(tài)功耗主要是擴(kuò)散區(qū)與襯底形成二極管的反偏電流和關(guān)斷晶體管中通過(guò)柵氧的電流。工作時(shí)序及軟件算法設(shè)計(jì)有缺陷,會(huì)降低系統(tǒng)工作效率、延長(zhǎng)工作時(shí)間,也會(huì)直接增加系統(tǒng)能量的消耗。本文將具體闡述設(shè)計(jì)理念在基于MSP430和MFRC522的讀寫(xiě)器上的應(yīng)用與實(shí)現(xiàn)。

          本文引用地址:http://www.ex-cimer.com/article/260428.htm

            模塊電路設(shè)計(jì)

            系統(tǒng)選用MSP430F413和MFRC522芯片。為簡(jiǎn)化系統(tǒng)結(jié)構(gòu),本系統(tǒng)僅由低電壓報(bào)警單元、MCU單元、收發(fā)單元、天線、紅外發(fā)射接收以及外圍信號(hào)組成。

            本系統(tǒng)選用的是SPI接口方式,其連接圖如圖1所示。

            圖1 MCU與接口及下載接口圖

            MSP430選用JTAG接口下載仿真程序。為了進(jìn)一步減少功耗,在系統(tǒng)處于休眠模式時(shí)可通過(guò)指令關(guān)閉SPI接口和MCU中無(wú)用的端口。

            射頻卡讀寫(xiě)器采用電感耦合式天線,主要用于產(chǎn)生磁通量,而磁通量用于向射頻卡提供電源并在讀卡器與射頻卡之間傳輸信息。當(dāng)一個(gè)RFID系統(tǒng)正常工作時(shí)所需的磁感應(yīng)強(qiáng)度B一定時(shí),安培匝數(shù)NI由環(huán)形天線的邊長(zhǎng)a以及標(biāo)簽和讀寫(xiě)器天線的距離x來(lái)共同決定。其關(guān)系式為:

            

            電感耦合式天線的特征值主要有品質(zhì)因數(shù)(Q)和諧振頻率。一般而言,Q一方面衡量能量的傳輸效率,另一方面也衡量頻率的選擇性。對(duì)于并聯(lián)諧振回路,Q可以定義為:

            Q=2πfRC=R/(2πfL)(f在本系統(tǒng)中為13.56MHz) (2)

            式中:f為諧振頻率;R為負(fù)載電阻;L為回路電感;C為回路電容。Q值越高,天線的輸出能量越高,然而太高的Q值會(huì)干擾讀寫(xiě)器的帶通特性,從而無(wú)法遵從協(xié)議標(biāo)準(zhǔn)。一般來(lái)說(shuō),Q=20時(shí),整個(gè)系統(tǒng)的帶通特性與帶寬都比較好。RFID系統(tǒng)中的品質(zhì)因數(shù)一般在10~30內(nèi)取值,最大不要超過(guò)60。

            MFRC522從TX1和TX2引腳發(fā)射的信號(hào)是已調(diào)制的13.56MHz載波信號(hào),輔以多個(gè)無(wú)源器件實(shí)現(xiàn)匹配和濾波功能,以直接驅(qū)動(dòng)天線。其匹配電路和信號(hào)接收電路如圖2所示。

            

            圖2 天線匹配電路

            紅外發(fā)射接收電路部分的設(shè)計(jì)目的是為了節(jié)省電源開(kāi)支,當(dāng)系統(tǒng)處于休眠模式時(shí)停止發(fā)射無(wú)線電波,可外加一個(gè)紅外對(duì)管來(lái)檢測(cè)是否有卡進(jìn)入天線范圍。當(dāng)紅外接收管接收到外界有卡時(shí)立即進(jìn)入中斷,跳出休眠模式,對(duì)外發(fā)射無(wú)線電波,并進(jìn)行相關(guān)的操作。這種通過(guò)指令間斷打開(kāi)紅外發(fā)射管檢測(cè)是否有卡再進(jìn)入中斷喚醒 CPU和打開(kāi)天線的方法縮短了天線和紅外管的電流消耗,從而節(jié)省了功耗。
          軟件設(shè)計(jì)

            CPU的運(yùn)行時(shí)間對(duì)系統(tǒng)的功耗影響很大,所以應(yīng)盡可能縮短其工作時(shí)間,使系統(tǒng)較長(zhǎng)時(shí)間處于休眠或模式。當(dāng)系統(tǒng)上電完成初始化操作后立即進(jìn)入休眠模式,只有當(dāng)紅外接收管接收到信號(hào)時(shí)產(chǎn)生中斷才打開(kāi)天線進(jìn)入工作模式。其中斷服務(wù)程序如下:

            #pragma vector=PORT2 _VECTOR__interrupt void Port_2(void)

            { LPM3_EXIT; //退出休眠

            PcdAntennaOn(); //開(kāi)啟天線

            PcdReset(); //RC522復(fù)位

            P1OUT = 0xFF; //打開(kāi)SPI接口

            station=1; //轉(zhuǎn)入工作模式

            P2OUT|=BIT6; //LED亮

            P2IFG= ~(BIT7); //清除標(biāo)記}

            圖3是程序運(yùn)行的流程圖。

            
          的設(shè)計(jì)流程圖

            圖3是程序運(yùn)行的流程圖。

            MSP430有五種低功耗模式,本系統(tǒng)采用的是LPM_3,此時(shí)DC發(fā)生器的DC電流被關(guān)閉,只有晶振活動(dòng)。用晶振做系統(tǒng)主時(shí)鐘和定時(shí)器時(shí)鐘源,對(duì)紅外接收管腳中斷使能定義,使紅外發(fā)射管每隔0.24s發(fā)射一個(gè)0.03ms的脈沖,間斷地檢測(cè)在天線范圍內(nèi)是否有卡,有卡時(shí)紅外接收管產(chǎn)生中斷進(jìn)入中斷服務(wù)程序。這樣讓I/O口間歇運(yùn)行既不影響正常讀卡也能節(jié)省電能。

            盡量減少CPU的運(yùn)算量,將一些運(yùn)算的結(jié)果預(yù)先算好,放在Flash里,用查表的方式代替實(shí)時(shí)計(jì)算,需要運(yùn)算時(shí)最好使用分?jǐn)?shù)運(yùn)算,盡量避免浮點(diǎn)數(shù)運(yùn)算。定義變量時(shí),盡量使用字符型變量。減少CPU的運(yùn)算量可以有效降低CPU的功耗。

            總結(jié)

            本文利用MSP430的中斷、定時(shí)、運(yùn)算等功能,借助于軟件優(yōu)勢(shì),及MFRC522的低電壓,小體積等特點(diǎn),使讀卡器讀卡距離為0~60mm,休眠模式的電流10μA,工作模式時(shí)電流約為150mA,延長(zhǎng)了電池的壽命,增加了系統(tǒng)可靠運(yùn)行的時(shí)間。



          評(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); })();