對于從電器到可穿戴式設(shè)備的眾多消費類產(chǎn)品,觸摸控制是基本要求。鑒于觸摸傳感器的功能性設(shè)計和物理布局之間存在關(guān)聯(lián),對于開發(fā)人員而言,觸摸傳感器設(shè)計既是一項工程,更是一門藝術(shù)。因此,在通過多個設(shè)計交互來實現(xiàn)按鈕、滑塊和其他控件的最佳性能時,開發(fā)團(tuán)隊的開發(fā)速度會受到延緩。
為了支持項目開發(fā),Cypress Semiconductor PSoC 4000S CapSense 原型開發(fā)套件提供一整套硬件和軟件,可用于評估電容觸摸感應(yīng)以及加速其在各種產(chǎn)品中的應(yīng)用。
本文將描述各種電容觸摸感應(yīng)方法的工作機制,以及使用這些方法進(jìn)行設(shè)計時設(shè)計人員需要了解的一些注意事項。然后將介紹 PSoC CapSense 套件及其工作機制,以及使用該套件進(jìn)行設(shè)計的方法。此外,還提供了代碼示例。
為何選擇電容觸摸?
電容觸摸傳感器的性質(zhì)使其適用于各類應(yīng)用。由于不再需要傳統(tǒng)機械按鈕和開關(guān)中的活動零件,觸摸傳感器系統(tǒng)實現(xiàn)了高度可靠性,不太可能因磨損而發(fā)生故障。而且,觸摸傳感器系統(tǒng)可完全封裝在保護(hù)材料中,因此能夠在嚴(yán)苛環(huán)境中工作。除了可靠性之外,觸摸傳感器可輕松滿足不同的形狀要求,幫助工程師滿足客戶對家用電器、汽車以及其他主流產(chǎn)品的美觀精巧設(shè)計需求。
手指或手接近專門構(gòu)建的觸摸表面時電容將發(fā)生變化,而電容觸摸傳感器充分利用了這一特征。觸摸傳感器使用自電容和互電容兩種不同的方法來檢測此類變化。
在自電容式觸摸傳感器中,當(dāng)手指放在傳感器板上時,會形成一個接地的導(dǎo)電通路,從而導(dǎo)致電容突然增大,明顯大于傳感器板和接地平面之間各種寄生電容源(圖 1)。通常情況下,自電容是按鈕或滑塊等單點觸摸應(yīng)用的首要選擇。
圖 1: 自電容檢測 I/O 引腳和接地之間的電容變化。使用接地網(wǎng)狀填充層環(huán)繞傳感器,可提高傳感器的抗噪能力。(來源: Cypress Semiconductor)
相比之下,互電容感應(yīng)測量發(fā)射和接收電極之間的電容(圖 2)。在該圖中,當(dāng)控制器向發(fā)射引腳施加電壓時,在接收引腳上測量的電荷量與兩個電極之間的互電容成正比。相較于自電容,這項技術(shù)可提供更高的信噪比 (SNR),從而實現(xiàn)了更強的抗噪能力。較高的 SNR 還能夠?qū)崿F(xiàn)通過更厚的覆蓋層進(jìn)行工作的功能,例如工業(yè)應(yīng)用所需的保護(hù)屏和顯示屏。
此外,按照陣列形式排列的傳感器可讓開發(fā)人員同時跟蹤不同點的互電容變化。因此,這種方法成為了多點觸摸應(yīng)用的絕佳選擇,此類應(yīng)用采用通常應(yīng)用于較小型消費類產(chǎn)品的觸摸板,或者運用于電器和汽車中作顯示用途的觸摸屏。
圖 2: 在互電容感應(yīng)系統(tǒng)中,控制器將電壓切換到發(fā)射 (TX) 電極。在接收 (RX) 電極上測量的電荷量與兩個電極之間的互電容成正比。手指等導(dǎo)電物體的觸摸將導(dǎo)致所測量的互電容發(fā)生變化。(來源: Cypress Semiconductor)
傳感器設(shè)計
如圖 1 和圖 2 所示,電容式傳感器板由多層板上的印制線構(gòu)建而成。對于基本的自電容按鈕,最簡單的設(shè)計是將傳感器板印制線放在板子上方,印制線四周環(huán)繞著網(wǎng)狀接地平面。傳感器板連接到控制器(通常連接在板子下方)的輸入引腳,還可提供接地平面。最后,頂層覆蓋著不導(dǎo)電保護(hù)性化合物,形成了傳感器覆面。對于小鍵盤,工程師通過將各個傳感器板加入可尋址按鈕陣列來擴(kuò)展此項基本設(shè)計。
設(shè)計人員可以通過多個傳感器板(一般以鋸齒狀排列)構(gòu)建線性滑塊。如下所述,相關(guān)觸摸傳感器軟件可使用此排列所提供的信息,來更準(zhǔn)確地計算手指位置。觸摸板和觸摸屏通過使用兩個線性滑塊來確定手指在板或屏幕表面的 X-Y 軸位置,進(jìn)一步擴(kuò)展了這種方法。
在實踐中,工程師致力于降低寄生電容,但這會降低傳感器的靈敏度,因而觸摸電容傳感器的物理設(shè)計會非常復(fù)雜。除了需要精心設(shè)計接地平面,網(wǎng)狀接地平面還要求嚴(yán)格遵守特定的物理設(shè)計規(guī)則。此外,在液體可能導(dǎo)致傳感器讀數(shù)失真的家用電器和其他產(chǎn)品中,工程師構(gòu)建了更為復(fù)雜的結(jié)構(gòu),從而幫助避免感應(yīng)表面的液體導(dǎo)致讀數(shù)錯誤的情況。互電容傳感器陣列包含由多個 PC 板層上的發(fā)射和接收印制線構(gòu)建而成的傳感器陣列,進(jìn)一步提高了設(shè)計的復(fù)雜性。
雖然設(shè)計人員在創(chuàng)建這些傳感器時應(yīng)保持謹(jǐn)慎,但電容觸摸傳感器的開發(fā)大部分都遵從典型設(shè)計流程。 然而,在傳感器板全面投產(chǎn)之前,工程師通常需要調(diào)整硬件參數(shù)和軟件設(shè)置,從而將元器件、傳感器板和板中的具體特征考慮在內(nèi),并滿足傳感器性能的特定要求以及總功耗要求。專用片上系統(tǒng) (SoC) 設(shè)備,例如 Cypress Semiconductor PSoC 4000S,集成了專門用于簡化電容觸摸傳感器實現(xiàn)的特定功能,其中包括微調(diào)要求。
Cypress CapSense
Cypress PSoC 4 設(shè)備系列基于 ARM? Cortex?-M0+ 處理器內(nèi)核,將存儲器與可編程模擬和數(shù)字外設(shè)完美結(jié)合,此類外設(shè)專門用于滿足各種應(yīng)用的需求。值得一提的是,PSoC 4000S 提供了 Cypress 的專有 CapSense 功能,其中包括一個用于處理電容觸摸傳感器的完整信號鏈。由此,工程師僅需少數(shù)額外的元器件即可進(jìn)行觸摸傳感器設(shè)計(圖 3)。
圖 3: Cypress Semiconductor PSoC 4000S 設(shè)備將 ARM Cortex-M0+ 內(nèi)核、存儲器以及外設(shè)與 Cypress 的 CapSense 電容傳感器信號鏈集成在一起。開發(fā)人員僅需少數(shù)額外的元器件即可實現(xiàn)基于自電容或互電容設(shè)計的感應(yīng)解決方案。(來源: Cypress Semiconductor)
對于自電容傳感器設(shè)計,工程師將所有傳感器板連接到 GPIO 引腳,并額外增加了一個外部 CMOD 電容器(圖 3)?;ル娙輦鞲衅髟O(shè)計針對每個傳感器接收和發(fā)射線使用獨立的 GPIO,并采用一對外部電容器、CINTA 和 CINTB。另外,外部 CTANK 電容器可支持屏蔽式電極的應(yīng)用,此類電極用于降低對傳感器覆面表面存在液體的靈敏度。
PSoC 4000S 支持自電容和互電容兩種方式。對于自電容感應(yīng),SoC 的 CapSense 三角積分 (CSD) 函數(shù)使用電流至數(shù)字轉(zhuǎn)換器來測量 GPIO 上的自電容變化。對于互電容感應(yīng),SoC 的 CapSense 交叉點 (CSX) 函數(shù)驅(qū)動 Tx 電極并感測 Rx 電極的電荷。所測量的 Rx 電極電荷與兩個電極之間的互電容成正比。
在兩種方法中,轉(zhuǎn)換器均生成原始計數(shù),該計數(shù)反映 GPIO 上測量的自電容或 Rx 引腳上測量的互電容。通過將原始計數(shù)與可編程噪聲和信號閾值進(jìn)行對比,固件可以確定手指是否接觸按鈕傳感器板或者與滑塊或觸摸板上特定位置相關(guān)的傳感器(圖 4)。
圖 4: 當(dāng)計數(shù)值高于可編程噪聲閾值并達(dá)到可編程觸摸閾值時,Cypress PSoC 4000S CapSense 模塊將生成指示觸摸的計數(shù)。CapSense 還支持高于和低于目標(biāo)觸摸檢測閾值的磁滯電平。(圖片來源:Cypress Semiconductor)
CapSense 可以執(zhí)行此項掃描,而又無需 CPU 干預(yù)。因此,設(shè)計人員可以對 Cortex-M0+ 內(nèi)核進(jìn)行編程,以便在傳感器掃描過程中執(zhí)行其他任務(wù)。然而,實際上,與獨立處理器活動相關(guān)的電流變化可能會將噪聲引入 CapSense 模塊中的敏感模擬電路。如此一來,開發(fā)人員通常會在掃描期間限制處理器的活動,尤其是需要高靈敏度和相應(yīng)低噪聲環(huán)境的應(yīng)用。
事實上,由于制造差異,不同的傳感器可能會表現(xiàn)出不同的噪聲水平和靈敏度,因此需要仔細(xì)調(diào)整硬件和軟件參數(shù)來修正這些差異。然而,除了系統(tǒng)性差異之外,環(huán)境條件中還會發(fā)生其他突發(fā)性變化,這可能會引入對靈敏度、性能和精度造成動態(tài)影響的因素。
為了在不斷變化的條件下維持性能,PSoC 4000S 設(shè)備的 SmartSense 提供了自動微調(diào)功能,可以自動設(shè)置參數(shù)來保持最佳的靈敏度和性能。當(dāng) CapSense 模塊初始化時,SmartSense 會重新計算掃描分辨率等參數(shù),以及內(nèi)部時鐘和其他主要內(nèi)部電路的設(shè)置。然而,在每次掃描開始時,SmartSense 都可以自動更新其他動態(tài)參數(shù),包括噪聲閾值和觸摸閾值。因此,SmartSense 可以動態(tài)補償不同的噪聲環(huán)境,甚至還包括設(shè)計過程中無法預(yù)計的隨機噪聲尖峰。
但在某些情況下,設(shè)計人員可能仍需要使用手動微調(diào)的方法。例如,SmartSense 支持寄生電容高達(dá) 45 pF 的設(shè)計。因此,寄生電容非常高的設(shè)計可能需要手動微調(diào)。此外,SmartSense 僅支持自電容傳感器設(shè)計,因此互電容傳感器設(shè)計需要手動微調(diào)。實際上,在應(yīng)用需要對特定參數(shù)設(shè)置(例如傳感器掃描時間)進(jìn)行嚴(yán)格控制的情況下,Cypress 建議使用手動微調(diào)的方法,即使是自電容設(shè)計亦是如此。
快速開發(fā)
盡管 PSoC 4000S 等相對復(fù)雜的設(shè)備具有集成功能,但可能仍需要費力對所有片載模塊進(jìn)行編程。為了簡化編程和配置,Cypress 推出了免費的 PSoC Creator 軟件環(huán)境。PSoC Creator 是一種集成式設(shè)計環(huán)境 (IDE),有助于讓設(shè)備硬件配置細(xì)節(jié)和相關(guān)軟件層變得簡單明了。
PSoC Creator 與 Cypress PSoC 4 設(shè)計套件配套使用,此類套件包含集成式引導(dǎo)程序或調(diào)試器。因此,采用 PSoC 設(shè)備進(jìn)行開發(fā),只需將開發(fā)板連接到系統(tǒng) USB 端口并選擇適當(dāng)參數(shù)即可。例如,開發(fā)人員僅需在 PSoC Creator 配置屏幕選擇 SmartSense,即可對 SmartSense 進(jìn)行自動微調(diào)(圖 5)。
圖 5: Cypress PSoC Creator IDE 簡化了編程和開發(fā)過程。設(shè)備配置和 SmartSense 自動微調(diào)等功能的設(shè)置得到了簡化,可在專門用于特定設(shè)備功能領(lǐng)域的屏幕上通過一系列選擇操作實現(xiàn)。(圖片來源:Cypress Semiconductor)
PSoC 4000S 硬件和 PSoC Creator IDE 的完美結(jié)合在實現(xiàn)電容感應(yīng)設(shè)計的過程中表現(xiàn)出顯著優(yōu)勢。然而,如前所述,寄生電容、噪聲源以及其他具體設(shè)計注意事項等問題始終是開發(fā)團(tuán)隊研發(fā)電容觸摸傳感器解決方案的障礙。Cypress 憑借其 PSoC 4000S 原型開發(fā)套件滿足了快速開發(fā)的需求,該套件可提供完整的電容觸摸硬件實現(xiàn)和示例軟件。該套件將 Cypress KitProg2 調(diào)試板、按鈕傳感器板、線性滑塊板和主板,與用于低功耗藍(lán)牙 (BLE) 通信的 PSoC 4000S 和 Cypress EZ-BLE PRoC 設(shè)備結(jié)合在一起。
開發(fā)人員僅需將板插入 USB 端口即可快速開始傳感器應(yīng)用測試(圖 6)。通過 PSoC Creator,開發(fā)人員可選擇和編譯示例項目;采用 IDE 的固件編程器來對主板上的 PSoC 4000S 設(shè)備進(jìn)行編程;最后使用集成式調(diào)試器來探索運行時操作。該套件支持按鈕板和滑塊板二者的自電容和互電容感應(yīng),因此開發(fā)人員可以使用 PSoC Creator 來配置套件,從而在任意配置中運行傳感器。
圖 6: Cypress PSoC 4000S 原型開發(fā)套件提供了獨特的快速分離式設(shè)計,其中包括連接 USB 的調(diào)試板、觸摸傳感器板、線性滑塊板,以及主板,這些都可以獨立用于定制電容傳感器設(shè)計的開發(fā)。(圖片: Cypress Semiconductor)
PSoC Creator 和 PSoC 4000S 原型開發(fā)套件軟件套件都可免費下載。PSoC Creator 用于配置和編程套件中的板載 PSoC 4000S 設(shè)備,而軟件包包括一套全面的軟件庫以及用于介紹電容觸摸應(yīng)用主要設(shè)計模式的示例軟件。
例如,按鈕和滑塊示例包中的 main.c 程序演示了設(shè)備初始化,以及連續(xù)的傳感器采樣。在此代碼中,switch 語句按順序進(jìn)行傳感器掃描(在可選自動調(diào)諧器傳遞信息之后);等待掃描完成;最終處理所有已啟用的傳感器(列表 1)。Cypress 庫涵蓋的包可實現(xiàn)序列中每個階段所需的低級軟件調(diào)用。
DEVICE_STATE currentState = SENSOR_SCAN;
...
/* Start CapSense block */
CapSense_Start();
...
for(;;)
{
/* Switch between SENSOR_SCAN->WAIT_FOR_SCAN_COMPLETE->PROCESS_DATA states */
switch(currentState)
{
case SENSOR_SCAN:
/* Initiate new scan only if the CapSense block is idle */
if(CapSense_NOT_BUSY == CapSense_IsBusy())
{
#if ENABLE_TUNER
/* Update CapSense parameters set via CapSense tuner before the
beginning of CapSense scan
*/
CapSense_RunTuner();
#endif
/* Scan widget configured by CSDSetupWidget API */
CapSense_ScanAllWidgets();
/* Set next state to WAIT_FOR_SCAN_COMPLETE */
currentState = WAIT_FOR_SCAN_COMPLETE;
}
break;
case WAIT_FOR_SCAN_COMPLETE:
/* Put the device to CPU Sleep until CapSense scanning is complete*/
if(CapSense_NOT_BUSY != CapSense_IsBusy())
{
CySysPmSleep();
}
/* If CapSense scanning is complete, process the CapSense data */
else
{
currentState = PROCESS_DATA;
}
break;
case PROCESS_DATA:
/* Process data on all the enabled widgets */
CapSense_ProcessAllWidgets();
/* Controls LEDs Status based on the result of Widget processing.*/
LED_Control();
...
}
}
}
列表 1: Cypress 的示例軟件演示了 PSoC 4000S 電容感應(yīng)功能的使用方法。本示例應(yīng)用程序中,首先初始化 PSoC 4000S CapSense 模塊,然后按順序無限循環(huán)傳感器掃描 (CapSense_ScanAllWidgets),等待掃描結(jié)束,最后處理結(jié)果 (CapSense_ProcessAllWidgets)。(代碼來源: Cypress Semiconductor)
開發(fā)人員準(zhǔn)備測試自己的傳感器設(shè)計時,可以關(guān)閉調(diào)試器板和兩塊傳感器板的電源,從而僅通過主板繼續(xù)進(jìn)行開發(fā)。此套件提供用于連接套件傳感器和 PSoC 4000S GPIO 引腳的針座,可輕松擴(kuò)展到定制設(shè)計的傳感器板。
對于希望基于套件設(shè)計構(gòu)建產(chǎn)品的設(shè)計人員,可以通過相關(guān)的參考設(shè)計獲取完整的硬件原理圖和相應(yīng)軟件。例如,硬件參考設(shè)計詳細(xì)說明了一系列線性滑塊傳感器板的使用方法(圖 7)。配套的軟件套件提供了示例軟件,演示了一種可提高手指位置估計精度的技術(shù)。
圖 7: 在 Cypress PSoC 4000S 原型開發(fā)套件參考設(shè)計中,線性滑塊包含大量以鋸齒狀排列的傳感器板,可以提高手指位置的辨識分辨率。這種設(shè)計包含發(fā)射電極,能夠以互電容和自電容兩種模式運行。(圖片來源:Cypress Semiconductor)
線性滑塊的鋸齒狀排列可以確保,手指觸摸到滑塊的某一點時,也將在一定程度上觸摸到相鄰片區(qū)。軟件套件在低級程序 (capsense_CalcCentroid) 中使用了此信息,該程序使用顯示最大計數(shù)的傳感器 (Si) 及其任意一側(cè)傳感器(Si-1、Si+1)來計算計數(shù)值的質(zhì)心(列表 2)。通過這樣的方法內(nèi)插手指位置,軟件可以產(chǎn)生分辨率較高的手指定位解決方案,此方案的分辨率優(yōu)于僅尋找顯示最大計數(shù)值的傳感器的方法。隨后,示例軟件應(yīng)用程序就可以打開 LED、顯示最大計數(shù)值的傳感器和計數(shù)值較小的其他傳感器(S0、S1、…、Si-1、Si)。
...
/* Si+1 - Si-1 */
numerator = (uint32) capsense_centroid[capsense_POS_NEXT] -
(uint32) capsense_centroid[capsense_POS_PREV];
/* Si+1 + Si + Si-1 */
denominator = (int32) capsense_centroid[capsense_POS_PREV] +
(int32) capsense_centroid[capsense_POS] +
(int32) capsense_centroid[capsense_POS_NEXT];
/* (numerator/denominator) + maximum */
denominator = (((int32)(uint32)((uint32)numerator << 8u)/denominator) + (int32)(uint32)((uint32) maximum << 8u));
...
/* Round result and put it to uint8 */
position = ((uint8) HI16((uint32)denominator + capsense_CENTROID_ROUND_VALUE));
return (position);
列表 2: capsense_CalcCentroid 程序針對線性陣列中的上一個、當(dāng)前和下一個傳感器從每個傳感器的計數(shù)值數(shù)組中抽取傳感器計數(shù) (capsense_centroid),以返回此處顯示的質(zhì)心計算結(jié)果。(代碼來源: Cypress Semiconductor)
結(jié)論
觸敏界面基于電容感應(yīng)技術(shù),為用戶控制各種設(shè)備(從可穿戴式設(shè)備到洗碗機)提供了直觀的方法。電容感應(yīng)除了具有最小功率要求之外,還可提供可靠性和更長的使用壽命,這是機械按鈕和開關(guān)難以實現(xiàn)的。然而,在設(shè)計穩(wěn)固型感應(yīng)系統(tǒng)時,開發(fā)人員會通過迭代設(shè)計來解決電容感應(yīng)系統(tǒng)中相互依賴的電路設(shè)計和物理布局特性,但這會導(dǎo)致開發(fā)速度延緩?;?Cypress Semiconductor PSoC 4000S 的完整原型開發(fā)套件和參考設(shè)計,提供了隨即可用的解決方案,有助于開發(fā)人員為各種應(yīng)用快速部署穩(wěn)固的電容觸摸感應(yīng)設(shè)計。
-
PSoC
+關(guān)注
關(guān)注
12文章
170瀏覽量
91759 -
Cypress
+關(guān)注
關(guān)注
11文章
136瀏覽量
81943 -
電容觸摸
+關(guān)注
關(guān)注
0文章
70瀏覽量
16435
發(fā)布評論請先 登錄
相關(guān)推薦
評論