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