低功耗非接觸式射頻讀寫器的設(shè)計(jì)與實(shí)現(xiàn)
CPU的運(yùn)行時間對系統(tǒng)的功耗影響很大,所以應(yīng)盡可能縮短其工作時間,使系統(tǒng)較長時間處于休眠或低功耗模式。當(dāng)系統(tǒng)上電完成初始化操作后立即進(jìn)入休眠模式,只有當(dāng)紅外接收管接收到信號時產(chǎn)生中斷才打開天線進(jìn)入工作模式。其中斷服務(wù)程序如下:
#pragma vector=PORT2 _VECTOR__interrupt void Port_2(void)
{ LPM3_EXIT; //退出休眠
PcdAntennaOn(); //開啟天線
PcdReset(); //RC522復(fù)位
P1OUT = 0xFF; //打開SPI接口
station=1; //轉(zhuǎn)入工作模式
P2OUT|=BIT6; //LED亮
P2IFG= ~(BIT7); //清除標(biāo)記}
圖3是程序運(yùn)行的流程圖。
圖3是程序運(yùn)行的流程圖。
MSP430有五種低功耗模式,本系統(tǒng)采用的是LPM_3,此時DC發(fā)生器的DC電流被關(guān)閉,只有晶振活動。用晶振做系統(tǒng)主時鐘和定時器時鐘源,對紅外接收管腳中斷使能定義,使紅外發(fā)射管每隔0.24s發(fā)射一個0.03ms的脈沖,間斷地檢測在天線范圍內(nèi)是否有卡,有卡時紅外接收管產(chǎn)生中斷進(jìn)入中斷服務(wù)程序。這樣讓I/O口間歇運(yùn)行既不影響正常讀卡也能節(jié)省電能。
盡量減少CPU的運(yùn)算量,將一些運(yùn)算的結(jié)果預(yù)先算好,放在Flash里,用查表的方式代替實(shí)時計(jì)算,需要運(yùn)算時最好使用分?jǐn)?shù)運(yùn)算,盡量避免浮點(diǎn)數(shù)運(yùn)算。定義變量時,盡量使用字符型變量。減少CPU的運(yùn)算量可以有效降低CPU的功耗。
總結(jié)
本文利用MSP430單片機(jī)的中斷、定時、運(yùn)算等功能,借助于軟件優(yōu)勢,及MFRC522的低電壓,小體積等特點(diǎn),使讀卡器讀卡距離為0~60mm,休眠模式的電流10μA,工作模式時電流約為150mA,延長了電池的壽命,增加了系統(tǒng)可靠運(yùn)行的時間。
評論