中心議題:
- 低功耗觸摸按鍵的應(yīng)用設(shè)計方法
- 降低功耗和喚醒方式的討論
解決方案:
- 基于CY8C22x45的低功耗設(shè)計
- 按鍵喚醒系統(tǒng)
觸摸式按鍵隨著iPod等消費類電子的流行而迅速發(fā)展,這一方面因為相關(guān)技術(shù)的不斷進步,可以提供更加穩(wěn)定的性能;另一方面也因為同類電子產(chǎn)品的基本功能趨同,生產(chǎn)商更加關(guān)注如何為用戶提供舒適、便捷、具有創(chuàng)意的人機交互界面。在這一點上,與傳統(tǒng)機械式按鍵相比,觸摸式按鍵有著其無法比擬的巨大優(yōu)勢。
現(xiàn)有市場上的觸摸式按鍵方案,其工作原理都是檢測手指觸摸引起的電路微小變化量,進而將其轉(zhuǎn)化為邏輯上的按鍵開關(guān)操作。在諸多檢測方法中,又以電容式檢測居多,這種檢測方法在掃描時需對電容的充放電,因此不可避免會增加產(chǎn)品功耗。對于一些功耗敏感的應(yīng)用來說,如何實現(xiàn)低功耗的觸摸按鍵是關(guān)鍵技術(shù)環(huán)節(jié)。
Cypress作為電容式觸摸按鍵芯片領(lǐng)域的領(lǐng)導者,一直致力提供高效、可靠、貼近用戶需求的芯片與解決方案。本文即基于Cypress的CY8C22x45系列芯片,介紹了一種低功耗觸摸按鍵應(yīng)用設(shè)計方法。
1.低功耗設(shè)計方法
如圖1所示,對于電容式觸摸按鍵,手指的觸摸會改變感應(yīng)電容Cx,當檢測電路對Cx充放電時,Cx值的變化會引起電路信號變化,通過一定的檢測電路可以測量出該變化,從而判斷手指是否存在。不過,系統(tǒng)整體功耗因為頻繁的掃描Cx的大小而增加。
對于輸入電壓一定的系統(tǒng)來說,其功耗主要取決于平均工作電流,即
Powerave=Vdd*Iave………………………………公式1
其中,Vdd是系統(tǒng)工作電壓,Iave是系統(tǒng)平均工作電流。從公式1中可以看出,系統(tǒng)的功耗由系統(tǒng)的平均工作電流決定。降低平均工作電流的方法通常有兩種:第一種是在不改變系統(tǒng)有效工作時間的前提下降低系統(tǒng)的工作電流;第二種減少系統(tǒng)的有效工作時間,增加系統(tǒng)的休眠時間。往往只采用第一種辦法不能將平均工作電流降低到一個理想的水平,所以需要結(jié)合第二種的方法。在觸摸按鍵系統(tǒng)的實際工作中將,相當一部分時間系統(tǒng)處于無任何按鍵按下的空閑狀態(tài)。在這段時間內(nèi)可以用軟件將系統(tǒng)配置為休眠模式。觸摸按鍵芯片一般都提供休眠模式,該模式具有很低工作電流。因此,如果能夠合理安排系統(tǒng)工作時間,令其空閑時進入休眠模式,就可降低平均工作電流,從而減少系統(tǒng)功耗。
圖2是一個具有休眠功能的典型系統(tǒng)軟件流程圖。系統(tǒng)初始化后進入休眠模式,經(jīng)過一段時間的延時后喚醒掃描按鍵模塊,進行按鍵掃描。如果有按鍵按下,軟件判斷是否有效。如果無效按鍵按下,那么系統(tǒng)繼續(xù)進入休眠模式。如果軟件判斷按鍵有效,那么喚醒系統(tǒng),觸發(fā)任務(wù)處理進程。當處理完所有任務(wù)后,系統(tǒng)又重新進入休眠狀態(tài)。這是個典型的具有休眠功能的系統(tǒng)工作流程圖,它的優(yōu)點就是此軟件流程簡單易懂、容易實現(xiàn),一般可以滿足大多數(shù)場合的應(yīng)用。但是,如果系統(tǒng)任務(wù)處理消耗了較多的CPU處理時間,那么為了達到目標平均工作電流,就需要相應(yīng)增加休眠時間。同時降低了按鍵掃描的頻率,從而加長了系統(tǒng)喚醒的響應(yīng)時間。因此,此方法適合比較簡單的、系統(tǒng)任務(wù)不復雜的應(yīng)用。
[page]
圖3是一個具有休眠功能的復雜系統(tǒng)軟件流程圖。此方法是將以上方法中的任務(wù)處理進行分解,分為觸發(fā)新任務(wù),處理任務(wù)。目的就是減小在每個循環(huán)周期內(nèi)部執(zhí)行任務(wù)的所花費的CPU資源。與上一個方法的不同在于:系統(tǒng)喚醒掃描按鍵程序,當判斷按鍵有效時,觸發(fā)新任務(wù),并不是將所有的任務(wù)處理完畢。在當前的循環(huán)周期內(nèi),觸發(fā)的新任務(wù)可能沒有處理完畢,需要下一個或者更多個系統(tǒng)循環(huán)的時間才可以完成。當判斷按鍵無效時,不是馬上進入休眠模式,而是判斷是否有沒有處理完畢的任務(wù)。如果有則繼續(xù)處理;如果沒有則進入休眠模式。此方法可以處理比較復雜的任務(wù),能滿足更多應(yīng)用領(lǐng)域的需求。
如果沒有有效按鍵觸發(fā),那么系統(tǒng)工作在最大的省電模式。不論哪種方法,系統(tǒng)平均工作電流可由公式2計算得出。
Iave=(Tscan*Iscan+Tsleep*Isleep)/(Tscan+Tsleep) ……………………………公式2
其中,Tscan是一次掃描按鍵所需時間,Iscan是按鍵掃描時的工作電流,Tsleep是休眠時間,Isleep是休眠時的工作電流。Isleep會遠遠小于Iscan。一般來說,為了保證一定的按鍵靈敏度,Iscan可調(diào)整的空間有限,因此較快的掃描速度,較小的休眠電流,較長的睡眠時間是降低系統(tǒng)功耗的關(guān)鍵。
在實際設(shè)計中,考慮的因素更為復雜,除了上述之外,還需考慮按鍵的響應(yīng)時間和按鍵的靈敏度等。最大休眠時間決定了系統(tǒng)的響應(yīng)時間,對于相同的Iave,Iscan和Isleep,較長的Tscan會引起Tsleep的增加,從而無法滿足系統(tǒng)的響應(yīng)時間;如果減少掃描時間,可能會無法有效減少系統(tǒng)噪聲影響,降低信噪比,影響按鍵的靈敏度。因此,低功耗觸摸系統(tǒng)設(shè)計需要靈敏,可靠,快速的觸摸按鍵掃描技術(shù)。
2.基于CY8C22x45的低功耗設(shè)計實例
Cypress的CY8C22x45系列PSoC®芯片可以有效的實現(xiàn)上述目標。該系列芯片內(nèi)部包含一個獨立硬件實現(xiàn)的CapSense觸摸按鍵掃描模塊CSD2X[3],最多可以掃描37個觸摸按鍵。該模塊具有兩個硬件掃描通道,可以同時完成位于兩個通道上一對按鍵的掃描,提高了按鍵掃描速度。該模塊包含內(nèi)置的Cx充電電路,結(jié)合Cypress的按鍵基線算法[4],可以在快速掃描按鍵的同時,有效降低噪聲影響。
此外,該系列PSoC®芯片包含8個數(shù)字模塊和6個模擬模塊,提供最多38個通用I/O,16KbyteFlash,1Kbyte的SRAM以及其它一些片上資源,包括10位SARADC,電壓參考源(VDAC),I2C通信模塊,硬件實時時鐘(RTC)[5]。硬件實現(xiàn)的觸摸按鍵掃描模塊和豐富的數(shù)字、模擬模塊資源,使得可以用一塊CY8C22x45芯片實現(xiàn)觸摸按鍵功能和系統(tǒng)主控操作。
CY8C22x45系列芯片休眠時的工作電流僅有3uA[5],芯片內(nèi)包含一個休眠計數(shù)器,系統(tǒng)進入休眠后計數(shù)器開始遞減,當計數(shù)值為零時產(chǎn)生中斷喚醒系統(tǒng)。喚醒系統(tǒng)后可以不做任何處理再次進入休眠模式。這樣周而復始,達到所需要的整個休眠時間。在實際設(shè)計中,常常使用平均休眠電流替代公式2中的Isleep,即在每次休眠結(jié)束后,僅讓系統(tǒng)正常工作最短時間,該時間內(nèi)完成所有必須操作(僅是一次循環(huán)判斷),此時的電流即為該休眠時間下的平均休眠電流。表1列出了常用休眠時間的平均休眠電流。
[page]
圖4是一個觸摸按鍵應(yīng)用中一次典型的按鍵波形,每個按鍵按下后,系統(tǒng)都需輸出對應(yīng)的電壓值以供其他系統(tǒng)檢測。該應(yīng)用要求響應(yīng)時間小于等于40ms,當按鍵被長按時,需要一直輸出按鍵電壓,即使按鍵釋放后,仍需250ms時間保持原有按鍵電壓,之后停止輸出按鍵電壓,進入空閑狀態(tài)。系統(tǒng)共包含12個觸摸按鍵,當多個按鍵被同時按下時,系統(tǒng)不響應(yīng)。系統(tǒng)低功耗設(shè)計要求為,系統(tǒng)待機時沒有按鍵操作的平均電流應(yīng)至少小于1mA。
使用示波器可以測出系統(tǒng)掃描12個按鍵所需時間大約為1.388ms。同時,可以測量到正常工作狀態(tài)下系統(tǒng)的工作電流大約為6mA。根據(jù)公式2以及表1,若一次休眠1.92ms,需要連續(xù)休眠5次(9.6ms),才可以得到低于1mA的平均待機電流,約為0.875mA;若一次休眠15.6ms,休眠一次即可滿足要求,平均待機電流約為0.52mA。實際工程中采用了第二種休眠方式,實際測量到的平均待機電流值為0.565mA,與計算值相近。
3.降低功耗和喚醒方式的進一步討論
以上實例中系統(tǒng)的平均待機電流是0.565mA,雖然這個功耗滿足了系統(tǒng)的設(shè)計要求,但是在很多使用電池供電的場合是不行的。這是因為在待機時,系統(tǒng)掃描全部12個按鍵,用去了1.388ms的時間。如果能減小掃描按鍵的時間,那么還能夠降低系統(tǒng)的待機功耗。
固定按鍵喚醒系統(tǒng)
采用固定按鍵的方式喚醒系統(tǒng)能有效的降低系統(tǒng)掃描按鍵的時間。系統(tǒng)無需掃描所有的按鍵,只需掃描固定的一個按鍵,這可以大大降低在待機狀態(tài)下掃描按鍵的時間。以上述的應(yīng)用為例,CY8C22x45系列PSoC支持雙通道并行掃描,12個按鍵均勻分布在兩個通道上,因此掃描一個按鍵約為0.231ms。如果休眠15.6ms,可以計算出此時平均待機電流只有0.113mA,相比之前的0.52mA的計算值,僅是其21%。如果休眠時間增加至40ms,從表1可以推算出此時平均休眠電流約為9uA,此時計算出平均待機電流僅為0.043mA。
任意按鍵喚醒系統(tǒng)
如果系統(tǒng)要求任意按鍵喚醒系統(tǒng),那么以上介紹的固定按鍵喚醒系統(tǒng)方法不能滿足。Cypress特有的內(nèi)部模擬總線的方式,可以將全部的按鍵組合成一個“大按鍵”。這樣系統(tǒng)待機時,只需要對這個“大按鍵”掃描一次,就能判斷是否有手指觸摸到任何按鍵上。不論任何一個按鍵被手指觸摸,都可以喚醒系統(tǒng)。系統(tǒng)喚醒后,將“大按鍵”分解,進行正常的按鍵掃描處理,區(qū)分哪個按鍵按下,進行任務(wù)處理。使用這種方法,系統(tǒng)的待機平均電流與使用固定按鍵喚醒系統(tǒng)的方法相同。
手指接近喚醒系統(tǒng)
手指接近喚醒系統(tǒng)是Cypress的一項成熟的技術(shù)。此方法是建立在任意按鍵喚醒系統(tǒng)方法基礎(chǔ)之上的。在系統(tǒng)待機時,也是使用一個“大按鍵”進行掃描。與上個方法不同的地方在于:不是當手指觸摸到鍵盤時喚醒系統(tǒng),而是當手指靠近鍵盤時就喚醒系統(tǒng)。系統(tǒng)喚醒后立即將“大按鍵”分解為正常按鍵,進行按鍵掃描。相對于任意按鍵喚醒系統(tǒng)方法,這種方法能加快系統(tǒng)對按鍵的相應(yīng)速度,還可以使產(chǎn)品增加豐富的功能特性。
4.結(jié)語
應(yīng)用Cypress的CY8C22x45系列芯片以及獨有的CapSense技術(shù),設(shè)計者可以用更快的時間掃描大量按鍵,用更長的時間讓系統(tǒng)休眠,結(jié)合其較低的休眠電流,在保證系統(tǒng)可靠性能的同時,可以實現(xiàn)較低的待機功耗,為觸摸按鍵應(yīng)用的低功耗設(shè)計提供了一種良好的解決方案。