你的位置:首頁 > 傳感技術(shù) > 正文

如何在手持式觸摸屏系統(tǒng)中增添接近檢測傳感器?

發(fā)布時間:2017-02-07 來源:Ilya Veygman 責(zé)任編輯:wenwei

【導(dǎo)讀】本應(yīng)用筆記討論了Maxim MAX44000接近檢測傳感器在手持式觸摸屏應(yīng)用中的優(yōu)勢,介紹了設(shè)計中的注意事項。包括如何降低系統(tǒng)中的串擾、改善噪聲抑制、減輕應(yīng)用處理器的負荷。附錄給出了有關(guān)門限滯回設(shè)置的C程序代碼。
 
為什么使用接近檢測傳感器?
 
觸摸屏已普遍用于各種手持式電子設(shè)備,不僅僅局限于智能手機。觸摸屏在大大改善設(shè)備功能性的同時,也帶來了諸多新的挑戰(zhàn),包括知道如何以及何時響應(yīng)觸摸屏操作。例如,當手機靠近用戶臉頰時,屏幕必須了解如何對其做出反應(yīng);否則,觸摸屏無意接觸到人耳或臉頰時,可能會被錯誤地解析成用戶輸入。
 
為了避免這一問題,最常見的方法是在手機上集成一個接近檢測傳感器(同時也增加了設(shè)備功能)。當接近檢測傳感器的讀數(shù)達到一定的門限要求,而且用戶正在通電話時,傳感器可以關(guān)閉觸摸屏。
 
相對于分立式解決方案,提供數(shù)字輸出的紅外接近檢測傳感器芯片(例如MAX44000)大大簡化了這一功能的實施。
 
Maxim接近檢測傳感器的關(guān)鍵優(yōu)勢
 
Maxim的接近檢測傳感器具有眾多優(yōu)勢。舉例來說,紅外發(fā)射器配置為吸電流,而非源出電流。便于用戶合理選擇LED的供電電壓,優(yōu)化LED性能和功耗(圖1)。
 
如何在手持式觸摸屏系統(tǒng)中增添接近檢測傳感器?
圖1. MAX44000典型電路,包括LED。
 
由于MAX44000系列產(chǎn)品提供I²C接口,可以方便地通過這一靈活的總線將傳感器集成到多數(shù)嵌入式系統(tǒng)。此外,器件支持硬件中斷。這兩項功能可確保傳感器無縫集成到大多數(shù)手持設(shè)備,同時也將傳感器信息處理所占用的處理器資源降至最少。
 
不僅如此,Maxim的接近檢測傳感器還內(nèi)置了更多功能。例如,MAX44000在6引腳單芯片內(nèi)集成了環(huán)境光檢測傳感器和接近檢測傳感器。諸如此類的解決方案避免了在實現(xiàn)全部光傳感器功能是使用多個傳感器。
 
設(shè)計考慮
 
MAX44000采用小尺寸、2mm x 2mm x 0.6mm、UDFN-Opto封裝,有助于用戶節(jié)省尺寸敏感應(yīng)用的空間。此外,傳感器提供LED驅(qū)動電路,但需要用戶提供發(fā)射二極管的供電電源。吸電流配置下,該電路可驅(qū)動0mA至110mA電流流過發(fā)射二極管,無需外部電路既可完成這一任務(wù)。
 
如何在手持式觸摸屏系統(tǒng)中增添接近檢測傳感器?
圖2. MAX44000典型電路,帶有發(fā)射器旁路。
 
使用該功能時需要謹慎設(shè)計,特別是當驅(qū)動電流較大時。短時間的大電流驅(qū)動脈沖使得電源上出現(xiàn)尖峰電流,可能在MAX44000周圍產(chǎn)生噪聲。有兩種方式解決這一問題:對發(fā)射二極管進行去耦,或?qū)AX44000的電源與發(fā)射二極管電源隔離開。去耦電容的優(yōu)點是價格便宜,但缺點是必須非??拷麺AX44000和發(fā)射二極管安裝。由于這一方式多數(shù)情況下足以解決上述問題,終端用戶應(yīng)首先嘗試這一方案,然后再考慮采用替代方案。圖2所示電路同時采用了兩種方案,當然,實際應(yīng)用中并不需要這樣。
 
設(shè)計者必須仔細考慮玻璃對接近檢測傳感器的影響。絕大多數(shù)智能手機屏幕上都帶有一個玻璃罩,而且有些手機使用的是黑色玻璃。玻璃對光傳感器的影響主要表現(xiàn)在兩個方面:首先,應(yīng)該考慮入射到IC環(huán)境光傳感器的光強有所衰減;其次,LED的發(fā)射光經(jīng)過玻璃反射后重新回到傳感器,由此可能引入一定串擾(圖3)。
 
如何在手持式觸摸屏系統(tǒng)中增添接近檢測傳感器?
圖3. 串擾示意圖—無擋光板。
 
如何在手持式觸摸屏系統(tǒng)中增添接近檢測傳感器?
圖4. 簡單擋光板的例子。
 
緩解這一問題的方法有許多種,一種方式是在發(fā)射器和接收器之間安裝擋光板(圖4),可大幅降低反射后注入傳感器的光強;另一種方式是使發(fā)射器和接收器盡量靠近玻璃,確保電路板沒有反射。
 
開/關(guān)門限的設(shè)置
 
將接近檢測傳感器集成到系統(tǒng)后,一個經(jīng)常遇到的問題是如何正確選擇接近檢測的門限,以便在用戶通話期間打開或關(guān)閉屏幕。門限設(shè)置須確保出現(xiàn)錯誤判斷的幾率非常低,而且能夠支持絕大多數(shù)使用者的情況。例如,對于淺色頭發(fā)的用戶,當手機的接近檢測傳感器面向頭發(fā)的方向靠近時,所反射的信號強度要遠遠高于深色頭發(fā)。
 
MAX44000的接近檢測傳感器對于標準的850nm IR發(fā)射器具有出色的靈敏度(2.7nW/cm²/LSB)。這意味著MAX44000不僅可以在黑色玻璃的下方有效檢測信號,對于深色頭發(fā)的用戶同樣可以保持有效的信號檢測。此外,MAX44000的接近檢測傳感器能夠抑制高達100,000 lux的直射太陽光強,確保室外環(huán)境下的工作性能。
 
最后一項需要考慮的因素是對傳感器增加一個滯回,采取這一措施的原因與在比較器電路增加滯回的原因相同。當輸入信號恰好位于門限附近時,任何噪聲都會造成輸出信號的隨機切換,這是我們不希望發(fā)生的現(xiàn)象。接近檢測傳感器也是如此。
 
一種簡單(但功耗較大)的軟件實施方案是定期輪詢傳感器,如果超出門限的計數(shù)值達到一定限值,而且屏幕是打開的,則關(guān)閉屏幕;否則,如果屏幕已關(guān)閉,則將其打開。初看起來這種方式是可行的,但用戶握持設(shè)備的方式可能造成計數(shù)值在門限附近波動,導(dǎo)致屏幕錯誤地打開或關(guān)閉。
 
解決問題的一種方法是在軟件中設(shè)置滯回。例如,如果計數(shù)值達到150次(假設(shè)接近檢測傳感器工作于8位模式)或以上時,控制觸摸屏從“開”至“關(guān)”;那么,只有當計數(shù)值下降到135次或以下時,才控制觸摸屏從“關(guān)”至“開”。此外,在一段時間保持這種電平的相關(guān)性非常有用,其作用相當于一個低通濾波器,可以降低噪聲引起的誤操作。
 
MAX44000的內(nèi)部寄存器支持這種方法:
 
如何在手持式觸摸屏系統(tǒng)中增添接近檢測傳感器?
 
如果已經(jīng)使能中斷(對于接近檢測和ALS,寄存器0x01,1:0位),這些寄存器可以設(shè)置芯片使其無需通過I²C不斷輪詢傳感器。如上所述,可利用寄存器0x0A的第2位和第3位設(shè)置中斷之前的延遲。延遲可以是通過門限后的1、4、8或16個連續(xù)采樣。寄存器0x0B和0x0C設(shè)置門限,以及觸發(fā)中斷的計數(shù)值為高于門限的數(shù)值還是低于門限的數(shù)值。
附錄提供了增加滯回以及中斷的例程。通過I²C總線進行讀、寫操作時,應(yīng)注意器件在多次讀/寫操作時不會自動遞增寄存器地址,而是由軟件手動實現(xiàn),盡管這種方式比較繁瑣。讀取I²C兼容器件的多個寄存器數(shù)據(jù)時,需要謹慎操作,以免發(fā)生錯誤。詳細信息請參閱應(yīng)用筆記5033:“嚴謹至上(通過I²C接口讀取ADC數(shù)據(jù))”。
 
附錄A:門限滯回例程
 
#define MAX44000_ADDR 0x94
#define INT_STATUS_REG 0x00
#define OFF_THRESHOLD 4600
#define OFF_DELAY 1
#define ON_THRESHOLD 4000
#define ON_DELAY 3
 
uint8 screenStatus; // 0 means off, 1 means on
 
/*
  i2cWriteBytes()
  
  Arguments:
uint8 address - device address
uint8 start_reg - register where the first byte is written
uint8 *data - data to write
uint8 nbytes - number of bytes to write
 
  Consecutively writes several bytes to some i2c device starting at some 
  specified address -- implemented elsewhere
*/
void i2cWriteBytes(uint8 address,uint8 start_reg,uint8 *data,uint8 nbytes);
 
/*
  MAX44000InterruptHandler()
 
以下代碼用于實現(xiàn)MAX44000 INT引腳的中斷處理,假設(shè)MAX44000的接近檢測傳感器設(shè)置為14位模式,并已使能中斷。此外,假設(shè)屏幕狀態(tài)初始化為1或0,詳細信息請參閱數(shù)據(jù)資料的寄存器說明部分。
 
*/
void MAX44000InterruptHandler() {
 
uint8 i2cData[3];
i2cRead1Byte(MAX44000_ADDR,INT_STATUS_REG,&i2cData);
if (i2cData&0x01 != 0)
return; // check to make sure interrupt really fired
// this simultaneously clears the interrupt flag
if (screenStatus) {
i2cData[0] = ON_DELAY;
i2cData[1] = ON_THRESHOLD >> 8 & 0xBF; // set ABOVE = 0
i2cData[2] = ON_THRESHOLD & 0xFF;
} else {
i2cData[0] = OFF_DELAY;  
i2cData[1] = OFF_THRESHOLD >> 8 | 0x40; // set ABOVE = 1
i2cData[2] = OFF_THRESHOLD & 0xFF;
} // set the new threshold depending on what the screen status was
// set the delay and threshold after each interrupt
i2cWriteBytes(MAX44000_ADDR,0x0A,i2cData,3);
return;
} // MAX44000InterruptHandler
 
本文來源于Maxim。
 
 
 
 
推薦閱讀:


自動駕駛要這樣突破極限:傳感器融合系統(tǒng)優(yōu)劣分析
超聲成像系統(tǒng)及主要子功能電子元件的設(shè)計考慮
開關(guān)型調(diào)節(jié)器的電路板布局技術(shù)
硅擴頻振蕩器在汽車電子產(chǎn)品中的應(yīng)用
電阻電橋基礎(chǔ)篇:如何實現(xiàn)具有高輸出的硅應(yīng)變計?
 
 
 
 
要采購傳感器么,點這里了解一下價格!
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書下載更多>>
熱門搜索
?

關(guān)閉

?

關(guān)閉