亚洲精品影院一区二区-亚洲精品永久一区-亚洲精品中文一区不卡-亚洲精品中文字幕久久久久久-国产亚洲精品aaa大片-国产亚洲精品成人a在线

您好,歡迎光臨電子應用網![登錄] [免費注冊] 返回首頁 | | 網站地圖 | 反饋 | 收藏
在應用中實踐
在實踐中成長
  • 應用
  • 專題
  • 產品
  • 新聞
  • 展會
  • 活動
  • 招聘
當前位置:中國電子應用網 > 技術應用 > 正文

手機中的應用之CapSense觸摸感應技術

2009年03月11日11:40:21 互聯網 我要評論(2)字號:T | T | T
關鍵字:應用 半導體 
CapSense觸摸感應技術是Cypress半導體使用CY8C21x34系列PSoC芯片開發的、用于觸摸式按鍵、觸摸式滾動條(Slider)、觸摸式平板(Touchpad)的觸摸感應技術。它利用PSoC的CY8C21x34系列芯片一些特有的資源,根據電容感應的原理和松弛震蕩器的技術實現觸摸感應。區別于其他觸摸感應技術,CapSense技術具有幾乎不需要外圍元件,每一個按鍵的靈敏度可單獨調整,一個芯片可同時實施觸多個觸摸式按鍵和觸摸式滾動條等優點。可用于各種家電產品代替傳統的輕觸按鍵和薄膜鍵盤。同樣它也非常適合在時尚的手機上使用。本文介紹CapSense技術的基本原理以及它在手機中的應用。

一、 CapSense技術的基本原理

CapSense技術是根據電容感應的原理和松弛震蕩器來實現觸摸感應。我們知道PCB板上相鄰的導線或銅箔之間存在寄生電容Cp。當有手指接近或觸摸銅箔時,相當于附加了兩個電容,這兩個電容等效于并聯在Cp上的一個電容Cf。如果在手指與銅箔之間有不導電的介質,它將影響Cf。介質越厚、介質的介電常數εr越小,對它的影響就越大。為了檢測Cp和Cp的變化Cf我們用圖3所示的電路對其實施操作。圖中左半面是一個松弛震蕩器,它的工作過程是這樣的:使用恒流源以iCHARGE電流對Cp充電,當Cp上的電壓上升并剛好超過比較器的反向輸入端的電壓VBG(1.3V)時,比較器翻轉到高電平,控制復位開關閉合,Cp迅速放電到零。比較器翻轉恢復到低電平,恒流源以iCHARGE電流再對Cp充電… 這個過程周而復始,形成震蕩。而震蕩的周期近似于充電的時間為:

tCHARGE=CpVBG/iCHARGE

圖中右半面是一個間隔計數器。它由一個8位的PWM和一個16位的定時器組成。它實施一段時間間隔(PWM的Duty)里16位的定時器對系統時鐘的計數。PWM的輸入來自比較器的輸出,16位的定時器被設置成捕捉定時器,它的輸入來自系統時鐘SYSCLK。當PWM進入Duty狀態時啟動16位的定時器工作,當PWM的Duty狀態結束時捕捉16位的定時器的計數。這個計數的值為:

n = NPERIODS.tCHARGE.SYSCLK

其中NPERIODS為當PWM為Duty狀態時松弛震蕩器的震蕩次數,它的值被設置成PWM的周期值減2。將tCHARGE=CpVBG/iCHARGE代入上式有:

n = NPERIODS.CpVBG.SYSCLK/iCHARGE

當其他值都被固定以后n和Cp有唯一確定的關系。如果有手指觸摸時,Cp將變化到Cp+Cf,而n將由n1變化到n2:

⊿n = n2 – n1

當⊿n大于預先設定的閥值時,就可以表明有手指觸摸。圖4是無手指觸摸和有手指觸摸對應松弛震蕩器的波形和PWM及定時器計數值變化的示意圖。

二.CapSense技術的實施

CapSense所需要的資源包括松弛震蕩器和間隔定時器全部都被包含在PSoC芯片里,芯片外圍不需要任何元件。為了實施CapSense,PSoC的集成開放環境(IDE)Designer4.2已經為CY8C21x34芯片 建立了CSR模塊,通過對CSR模塊的硬件配置和函數的調用可以來實施CapSense。

1. CSR模塊的配置

在IDE的器件編輯狀態,選擇并放置CSR模塊后,激活CSR模塊導向器(圖4),在CSR模塊導向器中可以設置多少個觸摸按鍵以及每一個按鍵所對應的管腳;也可以同時設置一個或兩個滾動條(Slider)以及滾動條由幾個感應塊組成和它們所對應的管腳。滾動條的分辨率可以大于組成它按鍵的個數,它也在這里被設定。

在模塊的參數設置窗口,可以設置CSR模塊的工作模式(周期或頻率)、手指信號的閥值、噪聲信號的閥值、基本線修正的速率和抗ESD信號的周期。當所有設置完成以后,點擊Generate Device Application按鈕,即可自動生成CSR模塊有關的程序供用戶程序調用。

2. 幾個關鍵函數的調用

下面是CSR模塊的幾個關鍵函數:
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用于設定給Cp充電的恒流源的大小,bValue, bRange參數用于分兩級設定恒流源的值。CSR_SetScanSpeed用于設置PWM的周期值,其參數bDivider的值減2為PWM的Duty值。上面兩個函數的參數的調整可以調節觸摸按鍵和觸摸滾動條的靈敏度和掃描周期。CSR_StartScan用于啟動掃描,bStrtSw, bSwCnt, bMode參數分別用于設置第一個掃描的鍵的鍵號、順序掃描鍵的個數和掃描的方式,掃描的方式有單次掃描和連續掃描兩種方式。?CSR_GetScanStatus函數返回掃描的狀態,CSR_iReadSwitch函數得到掃描的結果即定時器的計數值。

CSR_bUpdateBaseline是一個重要而有多種功能的函數。對于每一個觸摸感應鍵,都有一個Baseline用于跟蹤在沒有手指觸摸時的定時器的計數值,它是通過將每一次掃描得到的定時器的計數值做IIR濾波并符合有關條件后才作修正。作為差值比較的基準線,每一次掃描得到的定時器的計數值都要和它比較得到差值,該差值再和手指信號的閥值比較以判定有無手指觸摸。參數bSwGroup可選0,1和2,表明本次調用是修正觸摸按鍵還是第一或第二滾動條。返回值是0或1,表明無或有手指觸摸。除了實施以上功能外,該函數還要完成峰值檢測和ESD檢測。用于提高測試的性能。

3.手指在滾動條上的定位

滾動條通常被做成鋸齒排列,每一個鋸齒條對應一個感應塊,當手指觸摸滾動條或在其上移動時,某一時刻會有幾個連續的感應塊被感應(如圖6),手指中間對應的感應塊感應量較大,兩邊順序遞減。這就可以用重心法來確定手指在滾動條上的位置,式(2)是

中心法的計算公式。用這種方式定位的同時也可以

相關閱讀:

    沒有相關新聞...
網友評論:已有2條評論 點擊查看
登錄 (請登錄發言,并遵守相關規定)
如果您對新聞頻道有任何意見或建議,請到交流平臺反饋。【反饋意見】
關于我們 | 聯系我們 | 本站動態 | 廣告服務 | 歡迎投稿 | 友情鏈接 | 法律聲明
Copyright (c) 2008-2025 01ea.com.All rights reserved.
電子應用網 京ICP備12009123號-2 京公網安備110105003345號