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

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

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

【導(dǎo)讀】本應(yīng)用筆記討論了Maxim MAX44000接近檢測傳感器在手持式觸摸屏應(yīng)用中的優(yōu)勢,介紹了設(shè)計(jì)中的注意事項(xiàng)。包括如何降低系統(tǒng)中的串?dāng)_、改善噪聲抑制、減輕應(yīng)用處理器的負(fù)荷。附錄給出了有關(guān)門限滯回設(shè)置的C程序代碼。
 
為什么使用接近檢測傳感器?
 
觸摸屏已普遍用于各種手持式電子設(shè)備,不僅僅局限于智能手機(jī)。觸摸屏在大大改善設(shè)備功能性的同時(shí),也帶來了諸多新的挑戰(zhàn),包括知道如何以及何時(shí)響應(yīng)觸摸屏操作。例如,當(dāng)手機(jī)靠近用戶臉頰時(shí),屏幕必須了解如何對其做出反應(yīng);否則,觸摸屏無意接觸到人耳或臉頰時(shí),可能會被錯(cuò)誤地解析成用戶輸入。
 
為了避免這一問題,最常見的方法是在手機(jī)上集成一個(gè)接近檢測傳感器(同時(shí)也增加了設(shè)備功能)。當(dāng)接近檢測傳感器的讀數(shù)達(dá)到一定的門限要求,而且用戶正在通電話時(shí),傳感器可以關(guān)閉觸摸屏。
 
相對于分立式解決方案,提供數(shù)字輸出的紅外接近檢測傳感器芯片(例如MAX44000)大大簡化了這一功能的實(shí)施。
 
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)。此外,器件支持硬件中斷。這兩項(xiàng)功能可確保傳感器無縫集成到大多數(shù)手持設(shè)備,同時(shí)也將傳感器信息處理所占用的處理器資源降至最少。
 
不僅如此,Maxim的接近檢測傳感器還內(nèi)置了更多功能。例如,MAX44000在6引腳單芯片內(nèi)集成了環(huán)境光檢測傳感器和接近檢測傳感器。諸如此類的解決方案避免了在實(shí)現(xiàn)全部光傳感器功能是使用多個(gè)傳感器。
 
設(shè)計(jì)考慮
 
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í)需要謹(jǐn)慎設(shè)計(jì),特別是當(dāng)驅(qū)動電流較大時(shí)。短時(shí)間的大電流驅(qū)動脈沖使得電源上出現(xiàn)尖峰電流,可能在MAX44000周圍產(chǎn)生噪聲。有兩種方式解決這一問題:對發(fā)射二極管進(jìn)行去耦,或?qū)AX44000的電源與發(fā)射二極管電源隔離開。去耦電容的優(yōu)點(diǎn)是價(jià)格便宜,但缺點(diǎn)是必須非??拷麺AX44000和發(fā)射二極管安裝。由于這一方式多數(shù)情況下足以解決上述問題,終端用戶應(yīng)首先嘗試這一方案,然后再考慮采用替代方案。圖2所示電路同時(shí)采用了兩種方案,當(dāng)然,實(shí)際應(yīng)用中并不需要這樣。
 
設(shè)計(jì)者必須仔細(xì)考慮玻璃對接近檢測傳感器的影響。絕大多數(shù)智能手機(jī)屏幕上都帶有一個(gè)玻璃罩,而且有些手機(jī)使用的是黑色玻璃。玻璃對光傳感器的影響主要表現(xiàn)在兩個(gè)方面:首先,應(yīng)該考慮入射到IC環(huán)境光傳感器的光強(qiáng)有所衰減;其次,LED的發(fā)射光經(jīng)過玻璃反射后重新回到傳感器,由此可能引入一定串?dāng)_(圖3)。
 
如何在手持式觸摸屏系統(tǒng)中增添接近檢測傳感器?
圖3. 串?dāng)_示意圖—無擋光板。
 
如何在手持式觸摸屏系統(tǒng)中增添接近檢測傳感器?
圖4. 簡單擋光板的例子。
 
緩解這一問題的方法有許多種,一種方式是在發(fā)射器和接收器之間安裝擋光板(圖4),可大幅降低反射后注入傳感器的光強(qiáng);另一種方式是使發(fā)射器和接收器盡量靠近玻璃,確保電路板沒有反射。
 
開/關(guān)門限的設(shè)置
 
將接近檢測傳感器集成到系統(tǒng)后,一個(gè)經(jīng)常遇到的問題是如何正確選擇接近檢測的門限,以便在用戶通話期間打開或關(guān)閉屏幕。門限設(shè)置須確保出現(xiàn)錯(cuò)誤判斷的幾率非常低,而且能夠支持絕大多數(shù)使用者的情況。例如,對于淺色頭發(fā)的用戶,當(dāng)手機(jī)的接近檢測傳感器面向頭發(fā)的方向靠近時(shí),所反射的信號強(qiáng)度要遠(yuǎn)遠(yuǎn)高于深色頭發(fā)。
 
MAX44000的接近檢測傳感器對于標(biāo)準(zhǔn)的850nm IR發(fā)射器具有出色的靈敏度(2.7nW/cm²/LSB)。這意味著MAX44000不僅可以在黑色玻璃的下方有效檢測信號,對于深色頭發(fā)的用戶同樣可以保持有效的信號檢測。此外,MAX44000的接近檢測傳感器能夠抑制高達(dá)100,000 lux的直射太陽光強(qiáng),確保室外環(huán)境下的工作性能。
 
最后一項(xiàng)需要考慮的因素是對傳感器增加一個(gè)滯回,采取這一措施的原因與在比較器電路增加滯回的原因相同。當(dāng)輸入信號恰好位于門限附近時(shí),任何噪聲都會造成輸出信號的隨機(jī)切換,這是我們不希望發(fā)生的現(xiàn)象。接近檢測傳感器也是如此。
 
一種簡單(但功耗較大)的軟件實(shí)施方案是定期輪詢傳感器,如果超出門限的計(jì)數(shù)值達(dá)到一定限值,而且屏幕是打開的,則關(guān)閉屏幕;否則,如果屏幕已關(guān)閉,則將其打開。初看起來這種方式是可行的,但用戶握持設(shè)備的方式可能造成計(jì)數(shù)值在門限附近波動,導(dǎo)致屏幕錯(cuò)誤地打開或關(guān)閉。
 
解決問題的一種方法是在軟件中設(shè)置滯回。例如,如果計(jì)數(shù)值達(dá)到150次(假設(shè)接近檢測傳感器工作于8位模式)或以上時(shí),控制觸摸屏從“開”至“關(guān)”;那么,只有當(dāng)計(jì)數(shù)值下降到135次或以下時(shí),才控制觸摸屏從“關(guān)”至“開”。此外,在一段時(shí)間保持這種電平的相關(guān)性非常有用,其作用相當(dāng)于一個(gè)低通濾波器,可以降低噪聲引起的誤操作。
 
MAX44000的內(nèi)部寄存器支持這種方法:
 
如何在手持式觸摸屏系統(tǒng)中增添接近檢測傳感器?
 
如果已經(jīng)使能中斷(對于接近檢測和ALS,寄存器0x01,1:0位),這些寄存器可以設(shè)置芯片使其無需通過I²C不斷輪詢傳感器。如上所述,可利用寄存器0x0A的第2位和第3位設(shè)置中斷之前的延遲。延遲可以是通過門限后的1、4、8或16個(gè)連續(xù)采樣。寄存器0x0B和0x0C設(shè)置門限,以及觸發(fā)中斷的計(jì)數(shù)值為高于門限的數(shù)值還是低于門限的數(shù)值。
附錄提供了增加滯回以及中斷的例程。通過I²C總線進(jìn)行讀、寫操作時(shí),應(yīng)注意器件在多次讀/寫操作時(shí)不會自動遞增寄存器地址,而是由軟件手動實(shí)現(xiàn),盡管這種方式比較繁瑣。讀取I²C兼容器件的多個(gè)寄存器數(shù)據(jù)時(shí),需要謹(jǐn)慎操作,以免發(fā)生錯(cuò)誤。詳細(xì)信息請參閱應(yīng)用筆記5033:“嚴(yán)謹(jǐn)至上(通過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()
 
以下代碼用于實(shí)現(xiàn)MAX44000 INT引腳的中斷處理,假設(shè)MAX44000的接近檢測傳感器設(shè)置為14位模式,并已使能中斷。此外,假設(shè)屏幕狀態(tài)初始化為1或0,詳細(xì)信息請參閱數(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è)計(jì)考慮
開關(guān)型調(diào)節(jié)器的電路板布局技術(shù)
硅擴(kuò)頻振蕩器在汽車電子產(chǎn)品中的應(yīng)用
電阻電橋基礎(chǔ)篇:如何實(shí)現(xiàn)具有高輸出的硅應(yīng)變計(jì)?
 
 
 
 
要采購傳感器么,點(diǎn)這里了解一下價(jià)格!
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書下載更多>>
熱門搜索
?

關(guān)閉

?

關(guān)閉