前言
在需要用戶界面的應用方案中,,傳統(tǒng)的機電開關正在被電容式觸摸感應控制所替代,。
Sino wealth已經開發(fā)了一套觸摸感應軟件,,使得任意一款8位的中穎微控制器都可以作為一個電容式觸摸按鍵控制器使用,。通過對由一個電阻和觸摸電極電容組成的RC充放電時間的控制,,該觸摸感應軟件可以檢測到人手的觸摸。由于電極電容的改變,,導致的RC充放電時間的改變,,能夠被檢測出來,然后經過濾波等,,最終通過專用的I/O端口,,或者I2C/SPI接口發(fā)送給主機系統(tǒng)。該軟件庫所需的元器件BOM表,,成本低廉,,因為每個通道只需要兩個電阻就可以實現(xiàn)觸摸檢測功能。
RC感應原理
RC采樣原理就是通過測量觸摸電極電容的微小變化,,來感知人體對電容式觸摸感應器(按鍵,、滾輪或者滑條)的觸摸。
電極電容(C)通過一個固定的電阻(R)周期性地充放電,。 電容值取決于以下幾個參數:電極面積(A),,絕緣體相對介電常數( ),空氣相對濕度( ),,以及兩個電極之間的距離(d),。電容值可由下列公式得出:
圖1 RC電壓檢測
固定電壓施加在 , 的電壓隨著電容值的變化而相應增加或者降低,, 如圖2所示,。
圖2 測量充電時間
通過計算 的電壓達到閥值 所需要的充電時間( ),來得到電容值(C),。 在觸摸感應應用中,,電容值(C)由兩部分組成:固定電容(電極電容, )和當人手接觸或者靠近電極時,,由人手帶來的電容(感應電容,, )。電極電容應該盡可能的小,,以保證檢測到人手觸摸,。因為通常人手觸摸與否,帶來的電容變化一般就是幾個pF(通常5pF),。 利用該原理,,就可以檢測到手指是否觸摸了電極。
圖3 觸摸感應
這就是用于檢測人手觸摸的觸摸感應軟件中感應層所采用的基本原理,。
硬件實現(xiàn)
圖4顯示了一個實現(xiàn)的實例,。由R1,R2以及電容電極( )和手指電容( )并聯(lián)的電容(大約5pF) 形成一個RC網絡,,通過對該RC網絡充放電時間的測量,,可以檢測到人手的觸摸。 所有電極共享一個“負載I/O”引腳,。電阻R1和R2盡量靠近MCU放置,。電容R1(阻值在幾百歐到 幾兆歐之間)是主要電容,用于調節(jié)觸摸檢測的靈敏度,。電容R2(10K?)是可選的,,用于減少對噪聲影響。
圖4 電容觸摸感應實現(xiàn)實例
3 軟件實現(xiàn)
本章描述了觸摸感應RC原理的實現(xiàn)。
3.1 充電時間測量原理
為了保證健壯的電容觸摸感應的應用,,充電時間的測量需要足夠的精確,。
采用一個簡單的定時器(無需IC功能)和一系列簡單的軟件操作,即定時地檢查感應I/O端口上的電壓是否達到閥值,。這樣的話,,時間測量的精確度就取決于執(zhí)行一次完整軟件查詢需要的CPU周期數。這種測量方法會由于多次測量帶來一些抖動,,但是由于沒有硬件限制,,這種方法適用于需要很多電極的場合。
基本測量
使用普通定時器進行充電時間的測量,。對電容充電開始之前,,定時器的計數器數值被記錄下來。當采樣I/O端口上的電壓達到某個閥值( )時,,再次記錄定時器計數器的值,。二者之差就是 充電或者放電的時間。
圖5 定時器計數器值
過采樣
過采樣的目的是以CPU時鐘的精度,,對輸入電壓達到高電平和低電平( 和 )的時間測量,。 為了跨越所有的取值范圍,每次測量都比上一次測量延遲一個CPU時鐘周期的時間,。 為了跨越所有的取值范圍,,測量的次數是和MCU核相關的。圖6說明了這個概念的應用情況,。
圖6 輸入電壓測量
輸入電壓測量的原理
為了提高在電壓和溫度變動情況下的穩(wěn)定性,,對電極會進行連續(xù)兩次的測量:第一次測量對電容的充電時間,直到輸入電壓升至 ,。第二次測量電容的放電時間,,直到輸入電壓降至 。下圖以及以下的表格詳細說明了對感應電極(感應I/O)和負載I/O引腳上的操作流程,。
圖7 電容充放電時間測量
表2 電容充放電測量步驟
步驟 描述
1 1. 負載I/O引腳設置成輸出模式,,輸出VDD
2. 感應I/O引腳設置成輸出模式,輸出VDD
3. 保存定時器計數器的初始值(vih_start)
2 感應I/O設置成輸入高阻模式
于是電極電容 開始充電
3 當感應I/O引腳上的電壓達到 :
1. 保存定時器計數器的值(vih_stop),,并由此計算達到高電平 的時間(vih_stop – vih_start),,并保存
2. 感應I/O引腳設置成輸出模式,輸出VDD
3. 負載I/O引腳設置成輸出模式,,輸出到地
4. 保存定時器計數器的初值(vil_start)
4 感應I/O引腳設置成輸入高阻模式 于是電極電容 開始放電
5 當感應I/O引腳上的電壓降至 :
1. 保存定時器計數器的值(vil_stop),,并由此計算降到低電平 的時間(vil_stop – vil_start),并保存
2. 將兩次測量值“vih_meas”和“vil_meas”相加并保存
3. 重復步驟1的操作
觸摸的效果
電極的電容值( )取決于以下幾個主要因素:電極的形狀,、大小,,觸摸感應控制器到電極之間的 布線(尤其是地耦合),,以及介電面板的材料和厚度。因此,,RC充放電時間直接和 有關,。圖8說明了這種“觸摸的效果”。 時間
圖8 觸摸效果實例
多次測量以及高頻噪聲的去除
為了提高測量的精確度,,并去除高頻噪聲,,有必要對 和 進行多次的測量,然后再決定是否有按鍵被有效“觸摸”,。
圖9 測量的種類
注意: 下圖說明了去除噪聲的實例,。如果測量次數(N)設置為4,那么對一個電極的完整測量將包括4次正確的“連續(xù)組測量”(BGs),。
這些實例展示了不同噪聲影響下的測量,。綠色線條表示正確的 / 測量;而紅色線條表示不正確的 / 測量,。
圖10 顯示了沒有噪聲的影響,,所有測量都有效的情況。 這個例子中,,每個連續(xù)組測量中的測量都有效,,使得一個完整的測量很快就可以完成。
圖10 實例1
圖11 顯示了有一些噪聲使得某些測量無效的情況(即r1和r2),。 在這個例子中,,連續(xù)組測量BG3重復了好幾次,直到其中的所有測量都有效,,該次組測量才算通過,。這樣就需要較多的時間來完成一次完整的測量。
圖11 實例2
圖12 顯示了有很多噪聲,,使得無效的組測量次數達到了最大限制 (比如20),。這樣的話,整個電極測量都無效,。 這個例子中,,達到了無效的組測量次數的最大限制,因此停止對該電極的測量,。
圖12 實例3