CapSense觸摸感應(yīng)技術(shù)是Cypress半導(dǎo)體使用CY8C21x34系列PSoC芯片開發(fā)的、用于觸摸式按鍵、觸摸式滾動條(Slider)、觸摸式平板(Touchpad)的觸摸感應(yīng)技術(shù)。它利用PSoC的CY8C21x34系列芯片一些特有的資源,根據(jù)電容感應(yīng)的原理和松弛震蕩器的技術(shù)實現(xiàn)觸摸感應(yīng)。區(qū)別于其他觸摸感應(yīng)技術(shù),CapSense技術(shù)具有幾乎不需要外圍元件,每一個按鍵的靈敏度可單獨調(diào)整,一個芯片可同時實施觸多個觸摸式按鍵和觸摸式滾動條等優(yōu)點。可用于各種家電產(chǎn)品代替?zhèn)鹘y(tǒng)的輕觸按鍵和薄膜鍵盤。同樣它也非常適合在時尚的手機(jī)上使用。本文介紹CapSense技術(shù)的基本原理以及它在手機(jī)中的應(yīng)用。
一、 CapSense技術(shù)的基本原理
CapSense技術(shù)是根據(jù)電容感應(yīng)的原理和松弛震蕩器來實現(xiàn)觸摸感應(yīng)。我們知道PCB板上相鄰的導(dǎo)線或銅箔之間存在寄生電容Cp。當(dāng)有手指接近或觸摸銅箔時,相當(dāng)于附加了兩個電容,這兩個電容等效于并聯(lián)在Cp上的一個電容Cf。如果在手指與銅箔之間有不導(dǎo)電的介質(zhì),它將影響Cf。介質(zhì)越厚、介質(zhì)的介電常數(shù)εr越小,對它的影響就越大。為了檢測Cp和Cp的變化Cf我們用圖3所示的電路對其實施操作。圖中左半面是一個松弛震蕩器,它的工作過程是這樣的:使用恒流源以iCHARGE電流對Cp充電,當(dāng)Cp上的電壓上升并剛好超過比較器的反向輸入端的電壓VBG(1.3V)時,比較器翻轉(zhuǎn)到高電平,控制復(fù)位開關(guān)閉合,Cp迅速放電到零。比較器翻轉(zhuǎn)恢復(fù)到低電平,恒流源以iCHARGE電流再對Cp充電… 這個過程周而復(fù)始,形成震蕩。而震蕩的周期近似于充電的時間為:
tCHARGE=CpVBG/iCHARGE
圖中右半面是一個間隔計數(shù)器。它由一個8位的PWM和一個16位的定時器組成。它實施一段時間間隔(PWM的Duty)里16位的定時器對系統(tǒng)時鐘的計數(shù)。PWM的輸入來自比較器的輸出,16位的定時器被設(shè)置成捕捉定時器,它的輸入來自系統(tǒng)時鐘SYSCLK。當(dāng)PWM進(jìn)入Duty狀態(tài)時啟動16位的定時器工作,當(dāng)PWM的Duty狀態(tài)結(jié)束時捕捉16位的定時器的計數(shù)。這個計數(shù)的值為:
n = NPERIODS.tCHARGE.SYSCLK
其中NPERIODS為當(dāng)PWM為Duty狀態(tài)時松弛震蕩器的震蕩次數(shù),它的值被設(shè)置成PWM的周期值減2。將tCHARGE=CpVBG/iCHARGE代入上式有:
n = NPERIODS.CpVBG.SYSCLK/iCHARGE
當(dāng)其他值都被固定以后n和Cp有唯一確定的關(guān)系。如果有手指觸摸時,Cp將變化到Cp+Cf,而n將由n1變化到n2:
⊿n = n2 – n1
當(dāng)⊿n大于預(yù)先設(shè)定的閥值時,就可以表明有手指觸摸。圖4是無手指觸摸和有手指觸摸對應(yīng)松弛震蕩器的波形和PWM及定時器計數(shù)值變化的示意圖。
二.CapSense技術(shù)的實施
CapSense所需要的資源包括松弛震蕩器和間隔定時器全部都被包含在PSoC芯片里,芯片外圍不需要任何元件。為了實施CapSense,PSoC的集成開放環(huán)境(IDE)Designer4.2已經(jīng)為CY8C21x34芯片 建立了CSR模塊,通過對CSR模塊的硬件配置和函數(shù)的調(diào)用可以來實施CapSense。
1. CSR模塊的配置
在IDE的器件編輯狀態(tài),選擇并放置CSR模塊后,激活CSR模塊導(dǎo)向器(圖4),在CSR模塊導(dǎo)向器中可以設(shè)置多少個觸摸按鍵以及每一個按鍵所對應(yīng)的管腳;也可以同時設(shè)置一個或兩個滾動條(Slider)以及滾動條由幾個感應(yīng)塊組成和它們所對應(yīng)的管腳。滾動條的分辨率可以大于組成它按鍵的個數(shù),它也在這里被設(shè)定。
在模塊的參數(shù)設(shè)置窗口,可以設(shè)置CSR模塊的工作模式(周期或頻率)、手指信號的閥值、噪聲信號的閥值、基本線修正的速率和抗ESD信號的周期。當(dāng)所有設(shè)置完成以后,點擊Generate Device Application按鈕,即可自動生成CSR模塊有關(guān)的程序供用戶程序調(diào)用。
2. 幾個關(guān)鍵函數(shù)的調(diào)用
下面是CSR模塊的幾個關(guān)鍵函數(shù):
void CSR_Start();
void CSR_Stop();
CSR_SetDacCurrent(BYTE bValue, BYTE bRange);
CSR_SetScanSpeed(BYTE bDivider);
void CSR_StartScan(bStrtSw, bSwCnt, bMode);
BYTE CSR_GetScanStatus();
BYTE CSR_iReadSwitch(Byte bSwitch);
CSR_bUpdateBaseline(bSwGroup);
BYTE CSR_bGetCentroidPos(bSwGroup);
CSR_Start和CSR_Stop分別是啟動和停止CSR模塊。CSR_SetDacCurrent用于設(shè)定給Cp充電的恒流源的大小,bValue, bRange參數(shù)用于分兩級設(shè)定恒流源的值。CSR_SetScanSpeed用于設(shè)置PWM的周期值,其參數(shù)bDivider的值減2為PWM的Duty值。上面兩個函數(shù)的參數(shù)的調(diào)整可以調(diào)節(jié)觸摸按鍵和觸摸滾動條的靈敏度和掃描周期。CSR_StartScan用于啟動掃描,bStrtSw, bSwCnt, bMode參數(shù)分別用于設(shè)置第一個掃描的鍵的鍵號、順序掃描鍵的個數(shù)和掃描的方式,掃描的方式有單次掃描和連續(xù)掃描兩種方式。?CSR_GetScanStatus函數(shù)返回掃描的狀態(tài),CSR_iReadSwitch函數(shù)得到掃描的結(jié)果即定時器的計數(shù)值。
CSR_bUpdateBaseline是一個重要而有多種功能的函數(shù)。對于每一個觸摸感應(yīng)鍵,都有一個Baseline用于跟蹤在沒有手指觸摸時的定時器的計數(shù)值,它是通過將每一次掃描得到的定時器的計數(shù)值做IIR濾波并符合有關(guān)條件后才作修正。作為差值比較的基準(zhǔn)線,每一次掃描得到的定時器的計數(shù)值都要和它比較得到差值,該差值再和手指信號的閥值比較以判定有無手指觸摸。參數(shù)bSwGroup可選0,1和2,表明本次調(diào)用是修正觸摸按鍵還是第一或第二滾動條。返回值是0或1,表明無或有手指觸摸。除了實施以上功能外,該函數(shù)還要完成峰值檢測和ESD檢測。用于提高測試的性能。
3.手指在滾動條上的定位
滾動條通常被做成鋸齒排列,每一個鋸齒條對應(yīng)一個感應(yīng)塊,當(dāng)手指觸摸滾動條或在其上移動時,某一時刻會有幾個連續(xù)的感應(yīng)塊被感應(yīng)(如圖6),手指中間對應(yīng)的感應(yīng)塊感應(yīng)量最大,兩邊順序遞減。這就可以用重心法來確定手指在滾動條上的位置,式(2)是
中心法的計算公式。用這種方式定位的同時也可以提高定位的精度,CSR模塊允許滾動條的最大分辨率是(滾動條上感應(yīng)塊數(shù)-1)*15.94。分辨率的提高使它可以應(yīng)用在需要高分辨率的場合。函數(shù)CSR_bGetCentroidPos(bSwGroup)用于計算手指在滾動條上的定位并返回定位值。bSwGroup選擇1(第一個滾動條)和2(第二個滾動條)。
三.手機(jī)中使用CapSense技術(shù)
CapSense技術(shù)由于它的許多優(yōu)勢已經(jīng)被使用在手機(jī)上。在手機(jī)上觸摸按鍵可以代替?zhèn)鹘y(tǒng)的輕觸按鍵,滾動條可以用于調(diào)節(jié)音量或在菜單上移動光標(biāo)。由于沒有機(jī)械的動作和位移,觸摸式按鍵和滾動條的壽命要更長久,同時這種方式也給手機(jī)的外形和工業(yè)設(shè)計帶來更多的想象空間和發(fā)揮余地,使手機(jī)變得更時尚。但區(qū)別于其他應(yīng)用,CapSense技術(shù)在手機(jī)中使用有其特點需要特別關(guān)注。
手機(jī)的按鍵通常比較小,所以有一些用于感應(yīng)手指的銅箔面積會很小,這將影響手指感應(yīng)的靈敏度。所以一般要求,感應(yīng)面上的覆蓋層應(yīng)盡量薄,覆蓋層的厚度可以控制在0.2~1.5mm以內(nèi)。而覆蓋層的材料應(yīng)盡量選擇介電常數(shù)比較高的塑料、聚酯或有機(jī)玻璃等等。在印制板上,感應(yīng)手指的銅箔面積應(yīng)盡量做大,而用于投射背光的孔應(yīng)盡量小。印制板上的鋪地應(yīng)放在底層并用30~60%網(wǎng)格作為鋪地。以確保每一個感應(yīng)塊有合適的Cp和足夠的靈敏度。
手機(jī)采用電池供電,待機(jī)時間是手機(jī)重要的技術(shù)指標(biāo)之一。待機(jī)時,PSoC芯片可以通過SLEEP方式降低功耗。SLEEP降低功耗有兩種方式:IDLE方式和深度SLEEP方式。前者利用PSoC的SLEEP定時器在設(shè)定的一段時間內(nèi)(如125mS)自動喚醒PSoC后掃描所有感應(yīng)塊一次,如果沒有任何觸摸,則再次進(jìn)入SLEEP。否則,激活PSoC。這種方式是采用間歇掃描方式來降低待機(jī)時的平均功耗,適用按鍵比較少的情況。后者是SLEEP定時器自動喚醒PSoC后檢查由主控端通過I/O口設(shè)定的電平信號,以決定是繼續(xù)SLEEP還是激活PSoC。這種方式可使待機(jī)時的PSoC功耗下降到4uA。可適用對功耗要求很高的手機(jī)。
手機(jī)在撥打電話時會產(chǎn)生很強(qiáng)的射頻信號。這種射頻信號對CapSense會產(chǎn)生嚴(yán)重的干擾和影響。它必須通過硬件和軟件兩方面采取措施加以解決。硬件采取的措施包括芯片和地線合理的布局、芯片上未使用的管腳必須接地、在感應(yīng)PCB的背面使用錫箔加以屏蔽,必要的時候可以在一些輸入管腳上和I2C輸入端串接300~500歐姆的電阻。軟件上采取的措施主要是對明顯異常的數(shù)據(jù)進(jìn)行判斷并加以篩選和濾波。
ESD測試是手機(jī)必須測試的項目,通常在手機(jī)上它要求能承受10KV以上的靜電沖擊。CapSense 技術(shù)采用電容感應(yīng)原理,還是有可能受到靜電的干擾。靜電對CapSense的干擾通常有其明顯的特征,在CSR模塊中,函數(shù) CSR_bUpdateBaseline(bSwGroup)已經(jīng)對受典型的靜電干擾數(shù)據(jù)實施了過濾和處理。并有過濾的參數(shù)可供用戶選擇。硬件上也可以采取一些措施可以有效地防止靜電干擾。如按鍵周圍可以設(shè)置接地環(huán)路;提高面板和外殼的密封程度。連接器地線的可靠連接;保證靜電有有效的釋放路徑。
四、結(jié)束語
CapSense觸摸感應(yīng)技術(shù)是一種有效而易于使用的觸摸感應(yīng)技術(shù)。它所提供的CSR模塊包括硬件構(gòu)造和軟件API函數(shù),使用戶很容易上手。它不僅可以用于按鍵的觸摸感應(yīng),同時也可以用于滾動條的觸摸感應(yīng)應(yīng)用,相關(guān)API函數(shù)可以直接給出手指在觸摸區(qū)的鍵值和在觸摸滾動條上的位置值。由于CSR模塊是可構(gòu)造硬件和軟件的結(jié)合,使得它在鍵的數(shù)量、靈敏度的調(diào)節(jié)、滾動條的選擇與否等方面給用戶很大的靈活性和空間。它的外圍元件極少,充分體現(xiàn)了PSoC芯片的優(yōu)勢,降低了用戶的系統(tǒng)成本。
評論