PSoC的電容式非接觸感應(yīng)按鍵設(shè)計(jì)
摘 要:非接觸式操作界面正逐漸取代普通按鍵,成為常用的人機(jī)交互工具。使用PSOC片上系統(tǒng)芯片CY8C2714,結(jié)合電容式感應(yīng)原理,可設(shè)計(jì)一種基于PSoC微處理器芯片的電式感應(yīng)按鍵,實(shí)現(xiàn)按鍵的非接觸式可靠設(shè)計(jì)。PSoC片上系統(tǒng)芯片是具有高速內(nèi)核、快閃內(nèi)存和SRAM數(shù)據(jù)內(nèi)存的高性能芯片,具有獨(dú)立的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器總線,設(shè)計(jì)者可自配置模擬模塊和數(shù)字模塊。
關(guān)鍵詞:電容式 PSoC非接觸式 感應(yīng)按鍵
電容式感應(yīng)技術(shù)正在迅速成為面板操作和多媒體交互的全新應(yīng)用技術(shù),其耐用性和降低BOM成本方面的優(yōu)勢(shì),使這種技術(shù)在非接觸式操作界面上得到廣泛的應(yīng)用。本文采用PSOC片上系統(tǒng)芯片,實(shí)現(xiàn)了非接觸式、穩(wěn)定可靠的電容式感應(yīng)按鍵的設(shè)計(jì)。
1 PSoC片上系統(tǒng)
PSoC微處理器由處理器內(nèi)核、系統(tǒng)資源、數(shù)字系統(tǒng)和模擬系統(tǒng)組成。PSoC片上系統(tǒng)包含8個(gè)數(shù)字模塊和12個(gè)模擬模塊。這些模塊都可進(jìn)行配置,用戶通過對(duì)這些模塊進(jìn)行配置,定義出用戶所需要的功能。數(shù)字模塊可配置成定時(shí)器、計(jì)數(shù)器、串行通信口(UARTS)、CRC發(fā)生器、PWM脈寬調(diào)制等功能模塊。模擬模塊可配置成模數(shù)轉(zhuǎn)換器、數(shù)模轉(zhuǎn)換器、可編程增益放大器、可編程濾波器、差分比較器等功能模塊。數(shù)字模塊和模擬模塊也可構(gòu)成調(diào)制解調(diào)器、復(fù)雜的馬達(dá)控制器、傳感器信號(hào)的處理電路等。
2 電容式感應(yīng)原理
電容開關(guān)是一對(duì)相鄰電極,在電極之間有很小的電容。當(dāng)一個(gè)導(dǎo)體接近兩個(gè)電極時(shí),在電極與導(dǎo)體之間會(huì)產(chǎn)生一個(gè)耦合電容。在這里,手指就是這個(gè)導(dǎo)體。通常電容開關(guān)的形式是一邊接地的電容,導(dǎo)體的存在增加了開關(guān)到地之間的電容。檢測(cè)是否有手指靠近,也就是檢測(cè)是否有按鍵按下,可依據(jù)電容的變化來判斷。檢測(cè)電容變化的方法有很多:電流與電壓相位差檢測(cè)、電容構(gòu)成振蕩器進(jìn)行頻率檢測(cè)、電容橋電荷轉(zhuǎn)換檢測(cè)。因?yàn)殡娙輼螂姾赊D(zhuǎn)換檢測(cè)的方法較適用于大量按鍵掃描和PSoC的性能,所以在此采用該方法進(jìn)行檢測(cè)。電荷轉(zhuǎn)換電路從概念上來說與R—C充放電路相似,如圖1
在檢測(cè)周期開始,通過一個(gè)復(fù)位開關(guān)把Csum上的電荷全部放掉。然后通過單刀雙向開關(guān)使CD工作在非重迭的周期上。在第一半周,Cp連接到VDD充電。當(dāng)Cp上的電荷以由Cp值決定的速度充到VDD時(shí),開關(guān)斷開,然后把開關(guān)連接到Csum,Cp上的電荷轉(zhuǎn)移到Csum中。
在圖1中,因?yàn)?/SPAN>Csum的電容值比CP大得多,所以Csum上的電壓值在充電的每一周期內(nèi)只有微小的增加。這個(gè)Cp到Csum上的電荷轉(zhuǎn)換周期重復(fù)許多次,以使Csum上積累到一個(gè)大的信號(hào)值。當(dāng)連接到VDD時(shí),電容Cp上的電荷為:
Q=CV (1)
不是Cp上的所有電荷都轉(zhuǎn)移到Csum中。當(dāng)Cp上的電壓跌落到Csum上的預(yù)存電壓時(shí),轉(zhuǎn)換便不再進(jìn)行。為檢測(cè)感應(yīng)的電容值是否有改變,可通過Cp-Csum的充放電方式,把Csum充到固定的閾值VTH,再計(jì)算到達(dá)這個(gè)閾值時(shí)的周期數(shù)。在任意采樣點(diǎn)n,Csum上的電壓值為:
圖2示出了充放電115 ms后的電荷轉(zhuǎn)換波形。
其充放頻率為6 MHz,所以其轉(zhuǎn)換次數(shù)為700次。
式(2)很明顯是一個(gè)指數(shù)函數(shù),即電壓值Vsum為:
檢測(cè)Cp的變化率,可通過比較Vsum和VTH得到。即計(jì)算Vsum充到VTH時(shí)的充放電次數(shù)n:
當(dāng)手指靠近時(shí),Cp變成電極感應(yīng)電容和手指接近產(chǎn)生的耦合電容之和CF+P,所以Csum充電到閾值VTH的速度更快,充放電周期數(shù)n也就更?。?/SPAN>
這樣,檢測(cè)是否有鍵按下就簡(jiǎn)化成了檢測(cè)周期數(shù)的變化率△n=n一nF+P°當(dāng)△n>nTH時(shí),表明有手指靠近。
3 電容式非接觸按鍵的設(shè)計(jì)與實(shí)現(xiàn)
3.1 電容式非接觸按鍵的硬件電路設(shè)計(jì)
電容式非接觸按鍵的硬件電路如圖3所示。該設(shè)計(jì)中,通過PSoC芯片CY8C2714循環(huán)檢測(cè)感應(yīng)電極的狀態(tài)來判斷是否有按鍵按下。該系統(tǒng)的硬件設(shè)計(jì)非常簡(jiǎn)單,感應(yīng)電極不需要附加任何元器件。I/O口PO.2~P0.6共連接4個(gè)按鍵感應(yīng)電極,芯片通過內(nèi)部硬件配置和軟件算法,對(duì)感應(yīng)電極上是否有手指按下進(jìn)行檢測(cè)。另外,PSoC芯片可外接ISSP接口實(shí)現(xiàn)在線編程。
3.2 電容式非接觸按鍵的軟件實(shí)現(xiàn)
非接觸按鍵的檢測(cè),須通過比較器、充電電流源和復(fù)位開關(guān)組成一個(gè)張弛振蕩器,來對(duì)按鍵電極電容充放電。PSoC內(nèi)部用戶模塊配置如圖4所示。比較器占用一個(gè)模擬模塊,它的同相輸入端由多路模擬開關(guān)連接到I/O口上,反相輸入端接內(nèi)部參考電壓VBG作為電容充電閾值VTH,與同相輸入端進(jìn)行比較。輸出端連接比較邏輯輸出總線0??偩€與通用輸出口連通,再把通用輸出口4和通用輸入口4連接在一起,作為PWM的時(shí)鐘輸入線。PWM脈寬調(diào)制模塊占用1個(gè)數(shù)字模塊,其時(shí)鐘輸入連到比較器的輸出,PWM的輸出連接到定時(shí)器的捕獲腳。1個(gè)16位定時(shí)器占用2個(gè)數(shù)字模塊,對(duì)PWM輸出的脈沖進(jìn)行定時(shí)。
非接觸式感應(yīng)按鍵的實(shí)現(xiàn)過程為:首先設(shè)置I/O口的輸出驅(qū)動(dòng)模式,開始掃描按鍵,把按鍵連接到模擬多通道輸入口,使能振蕩器。當(dāng)Cp上的電壓線性增加到閾值時(shí),比較器輸出高電平。刷新定時(shí)器和PWM的周期數(shù),重設(shè)計(jì)數(shù)值,置完成標(biāo)志位。當(dāng)掃描完成,停止PWM,定時(shí)器中斷服務(wù)完成。最后根據(jù)電容感應(yīng)原理,計(jì)算出定時(shí)器的周期數(shù)來判斷是否有按鍵按下。在本設(shè)計(jì)中,如式(5)所示,選取Csum值,使充放電周期數(shù)n=1000次時(shí),Vsum到達(dá)VTH。當(dāng)檢測(cè)到nf+p<800,即Δn>nTH=200時(shí),認(rèn)為有鍵按下。
結(jié) 語(yǔ)
本設(shè)計(jì)中,基于 PSoC片上系統(tǒng)新片的非接觸式感應(yīng)按鍵界面,有著非接觸、可靠和設(shè)計(jì)簡(jiǎn)單的特點(diǎn)。這種方便、靈活的操作界面已在家電和控制系統(tǒng)中得到餓應(yīng)用和推廣,所以關(guān)于電容式感應(yīng)按鍵技術(shù)的應(yīng)用將會(huì)是嵌入式系統(tǒng)中的一個(gè)研究熱點(diǎn)。