一種低功耗觸摸按鍵應(yīng)用的設(shè)計(jì)方法
圖 2是一個(gè)具有休眠功能的典型系統(tǒng)軟件流程圖。
系統(tǒng)初始化后進(jìn)入休眠模式,經(jīng)過一段時(shí)間的延時(shí)后喚醒掃描按鍵模塊,進(jìn)行按鍵掃描。如果有按鍵按下,軟件判斷是否有效。如果無效按鍵按下,那么系統(tǒng)繼續(xù)進(jìn)入休眠模式。如果軟件判斷按鍵有效,那么喚醒系統(tǒng),觸發(fā)任務(wù)處理進(jìn)程。當(dāng)處理完所有任務(wù)后,系統(tǒng)又重新進(jìn)入休眠狀態(tài)。這是個(gè)典型的具有休眠功能的系統(tǒng)工作流程圖,它的優(yōu)點(diǎn)就是此軟件流程簡單易懂、容易實(shí)現(xiàn),一般可以滿足大多數(shù)場合的應(yīng)用。但是,如果系統(tǒng)任務(wù)處理消耗了較多的CPU處理時(shí)間,那么為了達(dá)到目標(biāo)平均工作電流,就需要相應(yīng)增加休眠時(shí)間。同時(shí)降低了按鍵掃描的頻率,從而加長了系統(tǒng)喚醒的響應(yīng)時(shí)間。因此,此方法適合比較簡單的、系統(tǒng)任務(wù)不復(fù)雜的應(yīng)用。
圖 3是一個(gè)具有休眠功能的復(fù)雜系統(tǒng)軟件流程圖。
此方法是將以上方法中的任務(wù)處理進(jìn)行分解,分為觸發(fā)新任務(wù),處理任務(wù)。目的就是減小在每個(gè)循環(huán)周期內(nèi)部執(zhí)行任務(wù)的所花費(fèi)的CPU資源。與上一個(gè)方法的不同在于:系統(tǒng)喚醒掃描按鍵程序,當(dāng)判斷按鍵有效時(shí),觸發(fā)新任務(wù),并不是將所有的任務(wù)處理完畢。在當(dāng)前的循環(huán)周期內(nèi),觸發(fā)的新任務(wù)可能沒有處理完畢,需要下一個(gè)或者更多個(gè)系統(tǒng)循環(huán)的時(shí)間才可以完成。當(dāng)判斷按鍵無效時(shí),不是馬上進(jìn)入休眠模式,而是判斷是否有沒有處理完畢的任務(wù)。如果有則繼續(xù)處理;如果沒有則進(jìn)入休眠模式。此方法可以處理比較復(fù)雜的任務(wù),能滿足更多應(yīng)用領(lǐng)域的需求。
如果沒有有效按鍵觸發(fā),那么系統(tǒng)工作在最大的省電模式。不論哪種方法,系統(tǒng)平均工作電流可由公式2計(jì)算得出。
Iave =(Tscan * Iscan + Tsleep * Isleep) / (Tscan + Tsleep) 公式2
其中,Tscan是一次掃描按鍵所需時(shí)間,Iscan是按鍵掃描時(shí)的工作電流,Tsleep是休眠時(shí)間,Isleep是休眠時(shí)的工作電流。Isleep會遠(yuǎn)遠(yuǎn)小于Iscan。一般來說,為了保證一定的按鍵靈敏度,Iscan可調(diào)整的空間有限,因此較快的掃描速度,較小的休眠電流,較長的睡眠時(shí)間是降低系統(tǒng)功耗的關(guān)鍵。
在實(shí)際設(shè)計(jì)中,考慮的因素更為復(fù)雜,除了上述之外,還需考慮按鍵的響應(yīng)時(shí)間和按鍵的靈敏度、等。最大休眠時(shí)間決定了系統(tǒng)的響應(yīng)時(shí)間,對于相同的Iave,Iscan和Isleep,較長的Tscan會引起Tsleep的增加,從而無法滿足系統(tǒng)的響應(yīng)時(shí)間;如果減少掃描時(shí)間,可能會無法有效減少系統(tǒng)噪聲影響,降低信噪比,影響按鍵的靈敏度。因此,低功耗觸摸系統(tǒng)設(shè)計(jì)需要靈敏,可靠,快速的觸摸按鍵掃描技術(shù)。
3. 基于CY8C22x45的低功耗設(shè)計(jì)實(shí)例
Cypress的CY8C22x45系列PSoC®芯片可以有效的實(shí)現(xiàn)上述目標(biāo)。該系列芯片內(nèi)部包含一個(gè)獨(dú)立硬件實(shí)現(xiàn)的CapSense觸摸按鍵掃描模塊CSD2X[3],最多可以掃描37個(gè)觸摸按鍵。該模塊具有兩個(gè)硬件掃描通道,可以同時(shí)完成位于兩個(gè)通道上一對按鍵的掃描,提高了按鍵掃描速度。該模塊包含內(nèi)置的Cx充電電路,結(jié)合Cypress的按鍵基線算法[4],可以在快速掃描按鍵的同時(shí),有效降低噪聲影響。
評論