前言
80C51單片機由于功能全面、開發工具較為完善、衍生產品豐富、大量的設計資源可以繼承和共享,得到廣泛的應用。我們設計的一款手持線PDA產品,也選擇80C51單片機作為主、輔CPU,還具備點陣液晶顯示屏、導電橡膠鍵盤、雙IC卡接口、EEPROM存儲器、實時時鐘和串行通信口。由于使用80C51單片機開發,高級語言編程,大大降低了設計的技術風險,產品在較短的時間內就推向了市場。
但是,同一些低速的微控制器(如4位單片機)和高速的RISC處理器相比,80C51單片機在功耗上沒有優勢。為了在PDA類產品中發揮80C51單片機的上述特長,我們通過采取軟、硬件配合的一系列措施,加強低電壓、低功耗設計,取得了良好的效果。該機使用一顆3V鈕扣式鋰電池,開機時工作電池小于4mA,瞬間最大工作電流小于20mA,瞬間最大工作電流小于20mA,關機電流小于2μA。一顆電池可以使用較長的時間,達到滿意的設計指標。
一、低電壓低功耗設計理論
在一個器件中,功耗通常用電流消耗來表示。下式表明消耗的電池與器件特性之間的關系:
Icc=C∫Vda≈ΔV·C·f (1)
式中:Icc是器件消耗的電流;Δ是電壓變化的幅值;C是器件電容和輸出容性負載的大小;f是器件運行頻率。
從公式(1)可以得到降低系統功耗的理論依據。將器件供電電壓從5V降低3V,可以至少降低40%的功耗。降低器件的工作頻率,也能成比例地降低功耗。
80C51的器件電流包括兩部分:核心電流和I/O電流,即:
Icc=ICORE+II/O (2)
核心電流是內部晶體管開關和內部電容充放電所消耗的電流,占有器件電流的較大比例。
ICORE=Vcc·CEQ·f (3)
式中:Vcc是器件工作電壓;CEQ是內部結點和走線的電容,它是器件的固有屬性,可由式(3)在一定的電流、電壓和頻率測試值下計算出來;f是核心工作頻率。
I/O電流主要是地址/數據總線、RD、WR和ALE信號消耗的電流,在器件電流中占的比例較小,其數值有以下經驗公式:
II/O=IREAD·(0.8)+IWRITE·(0.2)+ICONTROL (4)
IREAD、IWRITE分別是讀寫狀態的I/O電流;ICONTROL是控制信號RD、WR、ALE的電流。以寫狀態I/O電流為例:
IWRITE=(V·C·f)·(1/n)·(X+Y) (5)
式中:V=Vcc;C是每個引腳的負載電容和電路板的線路電容,大約2pF/in(in為英寸);f是CPU工作頻率;n=24,每個總線周期所花費的機器周期數;X是尋址階段變化的引腳數;Y是傳輸數據階段變化引腳數。
二、PDA類產品中CPU的選擇
近年來80C51衍生產品涌現出許多低電壓、低功耗品種,各具特色。如:ATMEL公司AT89LV5X系列,程序存儲器4KB~20KB;PHILIPS公司LPC系列,高速低耗,片內集成的多種低功耗功能,極有階段,但程序存儲器空間只有2KB或4KB;臺灣華邦公司W78LE和W77LE系列,有8~64KB程序空間和普通/高速多種型號可以選擇。選擇合適的CPU還有與后介紹的各項低功耗設計技術的使用有關,與軟件規劃和正確編程有關。
在開發過程中,我們經過試用和比較,發現適合PDA類產品應用、性能價格比最高的選擇是華邦公司的W78LE516。W78LE516是華邦公司2000年發由的新產品,它有以下特點適合PDA類產品:
·工作電壓2.4~5.5V,適合便攜式產品的供電方式;
·全靜態設計,工作頻率從0到最大40MHz,適合低功耗產品的特殊要求;
·64KB可多次編程的片內應用程序存儲器,非常適合于較大的程序和高級語言編程;
·4KB片內引導程序存儲器,用于實現應用程序的在線編程;
·比80C52多一倍的512字節片內RAM,其有256字節AUX RAM;
·PLCC和QFP封裝比通常的80C51多4個I/O口,P4口具有多種功能;
·完善的低功耗模式,特別是中斷能夠喚醒掉電模式;
·可靠的加密編程,保護開發者的知識產權和勞動成果。
三、晶振頻率是決定功耗的基本環節
在5V電壓下運行于12MHz的80C51,工作電流達到十幾mA,無論如何難以在電流供電環境中使用。從公式(3)和圖1可以看出,工作電流與晶振頻率成嚴格的線性關系,空閑、掉電模式的電流也有類似的線性關系。因此,盡可能地降低晶振頻率能夠有效地降低整機電流;但是,降低晶振頻率往往會受到系統運行速度的制約,需要綜合考慮各部分的工作速度和整機信息算是的速度,選擇一個合適的最小晶振頻率。例如,128X64點陣液晶采用并行總線訪問時,整屏漢字顯示刷新需要80C51單片機2MHz的時鐘頻率才不會感覺響應遲鈍;如果采用串行方式,顯示還會更慢;串行EEPROM是串行訪問數據的,還有起始停止位、地址選擇、應答位等開銷,讀寫時間較長;復雜算法對系統運行速度也有較高要求。考慮到串行通信波特率精確計算,我們最終確定晶振頻率為3.686MHz,最大通信波特率可達到19200bps。在這一時鐘頻率下,78LE516的運行電流大約為3mA。
四.電壓與CPU功耗成正比
從式(3)還可以看到,降低80C51的供電電壓能夠成比例地降低功耗。由圖1可知,選擇3V供電電壓要比5V供電電壓的功耗下降一半。隨著低電壓CPU的選擇,其它部分也要選擇低電壓的型號。我們選擇的器件全部可以工作到2.7V,最終確定工作電壓為3V,由穩壓電路提供穩定的輸出。此外,值得一提的是,3.3V也是一個較好的選擇,因為3.3V是W78LE516在線編程(ISP)的電壓下降,ISP是一個很有價值的功能,并且3.3V電壓一睥器件也較容易得到。
五、讓空閑模式和掉電模式占用更多的時間
80C51有三種工作模式:運行模式、空閑模式和掉電模式。正確編程以便使80C51在較多的時間內工作在后面兩種模式下,是PDA類產品降低功耗的有效途徑。對于W78LE516,2.4V供電電壓和12MHz時鐘頻率下,三種模式的電流消耗如表1所列。
表1
模式 | 運行 | 空閑 | 掉電 |
電流(max) | 3mA | 1.5mA | 20μA |
低功耗的軟件原則是讓運行模式遠比空閑、掉電模式少占用時間,尤如一個占空比很小的脈沖,消耗的能量較少。在開機狀態下,靠中斷喚醒CPU,在短暫的時間內工作在運行模式,處理相應的事件,然后進入空閑(或掉電)模式;在關機狀態下,完全進入掉電模式。
PDA類產品的主要機時占用是顯示和按鍵的交互操作。僅在較短的時間內有大量的計算,需全速運行,顯示也是瞬間完成,大部分時間花在等待按鍵上。如果采用查詢方式,CPU鈄以運行模式等待按鍵,耗電較大;如果采用中斷方式,則可以由中斷喚醒CPU,讓較長的等待按鍵時間,都處在空閑模式(或掉電模式)。
中斷有兩種實現方式:一種是鍵盤接到外部中斷引腳,外部中斷喚醒CPU;一種是采用定時器中斷,定時喚醒CPU,完成鍵盤處理和其它工作后CPU又進入休眠狀態。
令人耳目一新的是,通常的80C51從掉電模式喚醒到運行模式,只能靠硬件復位;而78LE516可以通過第二途徑——中斷INT0和INT1來喚醒,這對于PDA類產品權為有利。因為掉電模式的功耗,會比空閑模式小2~3個數量級,整機功耗將會進一步降低。類似的功能在PHILIPS公司的PLC系列低功耗單片機中也提供。
六、外圍器件的合理使用
由于外圍器件的使用不是很頻繁,所以要選擇帶片選功能的外圍器件, 不使用它們時進入低功耗模式。
減少外圍器件的使用是PDA類產品降低功耗、減小體積的積極辦法,但這要視系統可行性而定,并需要軟件的配合。例如,使用78LE516內部64KB程序空間,對中等規模的系統已經足夠,可以不使用外部程序存儲器;使用好78LE516內部RAM,尤其是比80C52多出的內部256字節AUX RAM,可以節省外部RAM和尋址電路,這需要對軟件很好地規劃;78LE516的P4口可以義為指定外部地址的設備片選信號,可以節省外部地址譯碼電路。
不可小視CMOS器件未使用的輸入口。一個懸空的輸入端不但可能因為其高輸入阻抗而感應電荷,損壞器件,而且可能造成不斷喚醒CPU,不能進入掉電模式。假如輸入口感應到較高頻率的信號。增加的電流甚至高達20mA。這一結論從公式(1)的理論和開實踐都可以驗證。正確的處理辦法是將未使用的輸入接到Vcc或地。
七、關機后關斷整機電源
對于鈕扣電池供電的設備,關機態的電流消耗也是不可忽略的。10μm的關機電流累積一個月,就會消耗大于6%的電池容量。
關斷整機電流的簡單方法是用CMOS觸發器控制一個晶體管做的電子開關,通常開關三極管的截止電流小于500mA。
圖2是我們設計的智能電源控制電路,靠一個耗電極少的單片機PIC12LC508A控制晶體管電子開關和DC-DC變換器,可以實現單鍵開關機、自動關機、禁止關機、定時開機等功能。
現在,越來越多的電池變換芯片具有SHUT DOWN引腳和電流與負載斷開的功能。采用這一特性實現的電路,使用與圖2類似的原理,關機電流也可以達到1μA以下。