張賽男 陳梅金
摘 要:觸摸按鍵在電子產(chǎn)品中無處不在,而且越來越普遍,同時市面上出現(xiàn)觸摸按鍵的問題也越來越多,主要體現(xiàn)在使用過程中被外界干擾后觸摸按鍵自動觸發(fā)。該文提出一種多次循環(huán)偵測觸摸按鍵的算法,用來增強按鍵抗干擾的能力,以改善顯示器觸摸按鍵帶來的種種干擾問題。
關鍵詞:觸摸按鍵;偵測;人機交互
中圖分類號:TP212 文獻標志碼:A
0 引言
我們日常使用的家用電器中,大部分都在使用觸摸按鍵,并通過它對設備進行控制。觸摸按鍵也越來越受到廣大用戶的認可和喜愛。不過觸摸式按鍵在復雜的干擾環(huán)境下經(jīng)常會出現(xiàn)一些問題,象自動觸發(fā)按鍵功能,并且去執(zhí)行相應按鍵的動作,這樣就容易導致用戶不能正常使用設備。該文主要通過顯示器觸摸按鍵的偵測算法來改善按鍵偵測流程,利用偵測算法來改善按鍵的抗干擾能力。
該設計是基于顯示器的硬件系統(tǒng),對軟件控制系統(tǒng)功能進行改善設計。硬件系統(tǒng)包括電源板電路、主板電路和觸摸按鍵回路。軟件上從3個方面著手設計,一方面是Scaler IC通過IIC控制方式與觸摸按鍵IC進行通信控制。另一方面是設計觸摸按鍵的偵測流程。第三是測試比對顯示器觸摸按鍵在不同的偵測條件下的作用效果。
1 硬件系統(tǒng)
1.1 硬件系統(tǒng)組成
該設計系統(tǒng)是基于顯示器系統(tǒng)研究的,主要由電源板、主板、按鍵板和喇叭以及液晶顯示面板組成。電源板輸出電源給主板和外圍電路。外圍電路包括按鍵板、Audio和顯示面板等這些電路回路。主板搭載著系統(tǒng)的核心處理器,即Scaler圖像處理芯片。Scaler及外圍電路給后續(xù)軟件設計提供了堅實的硬件基礎。顯示面板主要負責對圖像處理芯片送來的信號進行顯示處理。這些硬件電路模塊組成了該設計的硬件系統(tǒng),系統(tǒng)框圖如圖1所示。
1.2 IIC電路
IIC總線是由串行數(shù)據(jù)(SDA)總線和串行時鐘(SCL)總線組成的。數(shù)據(jù)總線在器件上傳遞相關指令信息,每個器件都可以識別相對應的地址。器件在執(zhí)行相關數(shù)據(jù)傳輸時,也可以被看成是主機或者是從機。主機主要負責初始化總線的數(shù)據(jù)傳輸和停止發(fā)送數(shù)據(jù),被尋址的任何器件都將被認為是從機。SDA和SCL都是雙向線路,都通過一個電流源或上拉電阻連接到正電壓的電源?,F(xiàn)在很多上拉電阻電路都已經(jīng)不這樣設計了,原因是很多圖像處理器IC內部電路已經(jīng)添加相關的上拉或下拉電阻電路模塊。當總線空閑時,這2條線都設置成高電平,同時連接到總線的器件。連到總線上的任一器件輸出為低電平時,都將使總線的信號變低,即各器件的SDA和SCL都是“線與”關系。IIC總線進行數(shù)據(jù)傳送過程中,時鐘信號為高電平,數(shù)據(jù)線上的數(shù)據(jù)必須保持穩(wěn)定。只有在時鐘線上的信號為低電平時,數(shù)據(jù)線上的高電平或低電平狀態(tài)才允許變化。
1.3 按鍵控制電路
該設計按鍵板使用觸摸按鍵板。觸摸按鍵板有自己的MCU IC進行處理控制。上位機為圖像處理器IC,下位機為Touch Key MCU IC。圖像處理器到觸摸按鍵板之間的控制電路圖如圖2所示,與Scaler連接的部分有3個引腳,分別是SDA_KEY,SCL_KEY,INT_KEY即Reset Key。
2 軟件系統(tǒng)
有了硬件系統(tǒng)作為基礎,我們就可以對軟件控制系統(tǒng)進行設計搭建。軟件上我們分成2個模塊設計,模塊一是觸摸按鍵IIC驅動設計,需要完成對MCU IC通信命令控制和數(shù)據(jù)讀寫設計;模塊二是觸摸按鍵控制流程設計,需要完成加強對觸摸按鍵抗干擾能力的設計。
2.1 IIC軟件設計
IIC軟件設計分為起始條件控制、數(shù)據(jù)傳輸控制和停止控制。起始條件控制需要根據(jù)IIC標準設計,先將IIC的SCL拉高,再Delay一段時間(時間以微秒為單位),然后SDA產(chǎn)生一個從高電平到低電平的下降沿,這樣就符合IIC標準的起始信號條件。
有了起始控制條件后就可以對數(shù)據(jù)進行傳輸控制了。在數(shù)據(jù)傳輸控制時需要對狀態(tài)機進行忙狀態(tài)判斷,如果總線處理繁忙狀態(tài)則需要等待數(shù)據(jù)處理;如果收到正??梢园l(fā)送命令的狀態(tài),即主機收到正常ACK,則可以開始數(shù)據(jù)發(fā)送或接收處理。數(shù)據(jù)讀寫過程中同樣需要判定對應的ACK,再決定是否重新開始傳輸數(shù)據(jù)。
同樣IIC停止控制需要按照IIC標準設計。首先將SCL拉成低電平,確保停止信號是我們軟件操作控制的前提下;再將SDA拉成低電平;接著將SCL設置成高電平,這時形成了控制SCL為高電平的必要條件;等待一段時間后再將SDA設置成高電平,這樣就達到了IIC停止信號的控制。
2.2 觸摸按鍵板控制設計
觸摸按鍵是對Touch Key MCU的控制。從工作經(jīng)驗來看,下位機Touch Key的MCU通常會告知上位機Scaler對應被執(zhí)行的地址位數(shù)據(jù)信息,并且將其對應到相應的觸摸按鍵,這樣Scaler則直接去執(zhí)行它讀取到的地址位數(shù)據(jù)而做出相應的按鍵動作控制。如果我們用這種一般的方式思考則會出現(xiàn)后續(xù)不可估量的隱藏問題,當電路受到干擾時,Touch Key 的MCU很有可能對數(shù)據(jù)識別出現(xiàn)錯誤。由于二進制數(shù)據(jù)可能會從“0”變成“1”,也可能從“1”變成“0”,因此當我們無法確保硬件線路絕對可靠的情況下,還是需要從軟件上對其進行盡可能多的嚴格控制設計。
對Key的定義,我們會以十六進制的數(shù)據(jù)進行定義,如下為該設計方案Key數(shù)據(jù)對應值的數(shù)據(jù)結構定義:
#define TPREG_POWER 0x10 //電源按鍵值定義。
#define TPREG_MENU_EXIT 0x04 //菜單和退出按鍵值定義。
#define TPREG_PLUS 0x01 //按鍵“+”值定義。
#define TPREG_MINUS 0x02 //按鍵“-”值定義。
#define TPREG_RESET 0x80 //重置按鍵值定義。
#define TPREG_SELECT 0x08 //選中按鍵值定義。
#define TPREG_UP 0x40 //向上按鍵值定義。
#define TPREG_DOWN 0x20 //向下按鍵值定義。
Touch Key軟件控制的流程圖如圖3所示。軟體主流程中會先對相關IC初始化,再對Touch Key MCU確認是否準備好或當前數(shù)據(jù)狀態(tài)是否正常,如果有異常,Scaler會要求Touch Key MCU執(zhí)行Reset,接著再對Touch Key MCU發(fā)送相關讀寫控制命令。讀取指令是0x01,寫指令是0x00。在讀取數(shù)據(jù)過程中,需要先向下位機MCU確認其寄存器地址位置,并查找到對應的存放頁面,這些前提條件設置好后,我們就可以開始對下位機MCU進行數(shù)據(jù)命令的讀寫了。
2.3 TOUCH Key偵測
Touch Key偵測一般都會在運行OSD菜單中進行,由于每個按鍵的執(zhí)行結果都會對應到菜單的顯示。原本對Touch Key的設計方法,基本上都是依靠軟體主流程的時間作為延長時間,并且是單次向Touch Key Register讀取數(shù)據(jù),然后Scaler再去執(zhí)行相關數(shù)據(jù)的動作。但問題很可能會出現(xiàn)從寄存器讀到的數(shù)據(jù)是被干擾到的數(shù)據(jù)的情況,也就是很有可能是錯誤的數(shù)據(jù)。該設計的提出就是需要確保這樣讀取到的數(shù)據(jù)是準確的,對每個Touch Key寄存器讀取一次是不足的,因此需要做多次循環(huán)讀取確認。根據(jù)系統(tǒng)的穩(wěn)定性,該設計設置讀取數(shù)據(jù)次數(shù)為3次,在3次讀取數(shù)據(jù)都相同的情況下才判定有對應按鍵被觸發(fā)。這里需要說明一點,原來機械按鍵都會做De-bounce設計來防止抖動問題,基本上大家已經(jīng)都知道了,但是觸摸按鍵往往不需要De-bounce。實際經(jīng)驗和實驗結果表明觸摸按鍵也有必要做De-bounce設計。
在Touch Key偵測過程中,我們是使用中斷計數(shù)方式進行設計控制的,這樣能確保數(shù)據(jù)及時快速地處理,不容易出現(xiàn)卡頓情況。
3 人機交互顯示
當我們設計好按鍵后,就可以將編譯好的軟件燒錄到樣機顯示器上進行實際人機交互操作實驗。我們編譯出2套修改前后的軟體,分別燒錄到同一受干擾的顯示器中。在對沒有添加觸摸按鍵De-bounce流程的軟體進行測試時,可以發(fā)現(xiàn)樣機的觸摸按鍵自動被觸發(fā),從而自動彈出菜單的問題。而在相同條件下,對有添加觸摸按鍵De-bounce程序流程的軟件進行測試,則不會發(fā)生被自動觸發(fā)菜單的問題,而且觸摸按鍵的流暢度體驗效果并不會被影響。
4 結語
該文提出的通過多次循環(huán)偵測觸摸按鍵的方法來增強按鍵抗干擾的能力,適用于相關觸摸按鍵的產(chǎn)品中。由于是用軟體方式實現(xiàn)的抗干擾觸摸按鍵,它經(jīng)濟實用,不增加硬件成本,值得推廣使用。
參考文獻
[1]周志永,胡建人.低成本電容式觸摸按鍵設計[J].機電工程, 2011,28(3):365-368.
[2]凌六一,伍龍.基于軟件模擬的51單片機IIC總線的實現(xiàn)[J].電子技術,2004,31(5):13-16.
[3]洪勝和,林志賢,郭太良.基于OSD交互的液晶顯示器光學測試系統(tǒng)設計[J].電視技術,2017,41(4-5):268-273.
[4]劉穎.人機交互界面的可用性評估及方法[J].人類工效學,2002,8(2):35-38.