逄淑松,程凱,劉光發,鄧建
(中國海洋大學 信息科學與工程學院,青島 266100)
美國德州儀器(TI)公司推出的MSP430系列單片機能實現極低的處理器功耗,特別適合于電池供電的應用。本文以MSP430G2553單片機為例,對其實現超低功耗的設計進行較為細致地探討。
MSP430系列單片機具有超低功耗特性,同時還擁有強大的數據處理和運算能力,高性能的模擬技術及豐富的片上模塊以及方便高效的開發調試環境[1]。MSP430G2553單片機是一種混合信號微控制器,具有16位精簡指令集(RISC)架構和62.5ns指令周期時間,可在不到1μs的時間里從待機模式超快速地喚醒,支持JTAG仿真調試。超低功耗方面:1.8~3.6V的低電源電壓;在1MHz頻率和2.2V電壓條件下,有230μA/運行模式,0.5μA/待機模式,0.1μA/關閉模式(RAM 保持);口線輸入漏電流小于50nA[2]。
MSP430系列開發工具方便先進,本文基于MSP430G2553型號單片機進行超低功耗研究,相關實驗采用MSP430LaunchPad開發板,其單片機采用20引腳PDIP封裝,編譯工具使用Code Composer Studio v5.1.1,軟件編程采用C語言。
MSP430系列單片機是超低功耗單片機的代表,它有靈活的時鐘系統、多種深度的低功耗模式、高度自動化的智能外設,其充分利用MSP430G2553的特性和內部模塊,實現理想的低功耗特性。

圖1 典型低功耗系統CPU工作方式
圖1為典型的低功耗系統CPU工作方式,系統的大部分時間處于空閑狀態,有事件發生或定時才會處理一些工作任務,整個系統的功耗就等于平均值曲線下方的面積。降低系統功耗即空閑時選擇低功耗模式,運行時使工作消耗最小。
很多低功耗系統空閑狀態下消耗的能量占全部的80%以上,所以空閑狀態下盡量選擇深度的休眠模式。MSP430系列單片機提供了多種工作模式[2-3],如表1所列,可以對系統時鐘、輔助時鐘作靈活的開關控制。
一般地,采用最大化LPM3時間的方式來盡量降低功耗。MSP430系列單片機可快速方便地切換工作模式,通過中斷可以在6μs內從低功耗模式中喚醒CPU以控制程序流程[3],由于CPU的運算處理速度快、退出低功耗時間短,可保證CPU大部分時間處于空閑狀態,降低單片機系統的功耗。

表1 工作模式
運行狀態下CMOS數字系統功耗可由公式(1)[4]計算得出:

其中:P動是運行狀態下CMOS數字系統功率,C是CMOS的負載電容,f是系統的時鐘頻率,Vcc是電源電壓。
可見,電源電壓對系統的功耗影響最大,然后是時鐘頻率,再就是負載電容。對使用者來說,負載電容一般是不可控的,那么要設計一個低功耗的單片機系統,主要有兩個原則:盡可能降低電源電壓;盡可能降低時鐘頻率。其他方法基本都是圍繞這兩個原則實現。電源電壓與時鐘頻率如圖2[2]所示。

圖2 電源電壓與時鐘頻率關系
2.2.1 電源電壓
相同主頻下電源電壓越高,功耗越高,需要設計合理的供電系統,以及靈活的調整單片機內核電壓來降低功耗。AM下Vcc與Icc典型值如表2[2]所列。活動模式(AM)下,MSP430G2553單片機電源電流(Icc)隨電源電壓(Vcc)變化而變化。

表2 AM下Vcc與Icc的典型值
2.2.2 時鐘頻率
MSP430G2553的時鐘系統為電池供電而特別設計。MSP430G2553單片機有不同的時鐘源,產生3種可調的時鐘頻率[3]:低頻輔助時鐘(ACLK)、高頻主系統時鐘(MCLK)和高頻子系統時鐘(SMCLK)。根據各個外圍模塊的實際需要、處理器速度的最高要求以及時鐘精度來權衡3個時鐘的頻率。對于一些低頻工作的外設可采用ACLK作為時鐘或信號源,而非統一使用MCLK,從而降低功耗;不論對于CPU還是外部設備,應盡量降低運行頻率,不影響功能時可設計自動關機。
2.2.3 I/O端口
對普通的I/O口,需要配置成輸出模式來避免外部浮動電壓的影響。CMOS輸入端不能有懸空的引腳,應將所有輸入端接適當的電平。
2.2.4 外部設備
對片上外部設備配置合適的工作模式,對系統中外部設備做合適的功耗管理,以減少功率消耗及降低CPU使用率。在具體的應用中,建議禁止所有不用的外設模塊,可使用帶使能引腳的ADC轉換器、帶使能引腳的運放等。
2.2.5 智能外設
充分使用MSP430G2553的智能外設,使其可以獨立于CPU進行工作,使系統更長時間處于低功耗模式。比如ADC10能夠實現多通道的自動輪詢采樣,并能夠實現對ADC轉換結果的自動搬移[3],通過合理配置寄存器,可以將CPU的負荷降到最低,從而達到降低功耗的目的。
2.2.6 其 他
DMA與其他外設的聯動、定時器自動觸發ADC[3]等功能可以實現片上不同模塊之間的智能化操作,并將系統功耗降低。
軟件設計的簡潔程度與CPU完成任務所需時間直接相關。MSP430G2553有統一的尋址空間,完全正交的指令系統和充足的通用寄存器,可以保證C語言編譯的高效率。但同時在系統設計上,需要軟件工程師進行最簡潔的代碼設計,有以下幾點:
① 盡量使用局部變量,局部變量通常會被分配到通用寄存器,有很高的指令效率;
② 盡量使用無符號數;③ 用指針對結構體和聯合體尋址;
④ 在使用for循環時對counter作數據遞減;
⑤ 盡量采用快速查表而不是算法計算,盡量采用計算分支,而不是測試標志位等。
通過選用MSP430G2553單片機并合理配置,可以達到系統的最佳功耗設計。MSP430G2553單片機在便攜式儀器、智能傳感器、測控設備等領域有良好的應用前景,符合“綠色環保可持續發展”的時代主題。
[1] 張福才,張銳,汝洪芳.MSP430單片機自學筆記[M].北京:北京航空航天大學出版社,2011:1-3.
[2] Texas Instruments. MSP430G2X53MSP430G2X13[EB/OL].[2012-11].http://www.ti.com/lit/ds/slas735g/slas735g.pdf.
[3] Texas Instruments. MSP430X2XX Family User's Guide[EB/OL].[2012-11].http://www.ti.com/lit/ug/slau-144i/slau144i.pdf.
[4] 陳春鴻.CMOS集成電路的功耗分析及低功耗設計技術[J].浙江工業大學學報,1998(9).