基于I2C總線的高分辨率紅外式觸摸屏設(shè)計(jì)
引言
隨著平面顯示器的大規(guī)模應(yīng)用和大屏幕平板顯示器的出現(xiàn),紅外觸摸屏的應(yīng)用已十分廣泛。同時(shí),分辨率的進(jìn)一步提高成為紅外觸摸屏應(yīng)用于大屏幕的關(guān)鍵,本文提出了一種提高紅外式觸摸屏分辨率的方法。
系統(tǒng)結(jié)構(gòu)及工作原理
系統(tǒng)工作原理
紅外觸摸屏基本原理是光束阻斷技術(shù),它不需要在原來的顯示器表面覆蓋任何材料,只需在顯示屏幕的四周安放一個(gè)框架。框架兩個(gè)對(duì)邊上,一邊安裝紅外發(fā)光二極管(LED),另一邊安裝紅外線探測(cè)器,在顯示屏幕的表面形成一個(gè)由紅外線組成的柵格。當(dāng)有任何物體進(jìn)入這個(gè)柵格的時(shí)候,就會(huì)阻擋一些光線,光電轉(zhuǎn)換電路就會(huì)收到變化的信號(hào),由ADC轉(zhuǎn)換后,MCU將計(jì)算的觸摸位置坐標(biāo)傳遞給操作系統(tǒng)。
早期紅外觸摸屏分辨率直接由紅外管對(duì)數(shù)決定,觸摸分辨率就等于屏的物理分辨率。如果采用模擬信號(hào)處理方式對(duì)接收的信號(hào)強(qiáng)度進(jìn)行分級(jí),對(duì)于接收的信號(hào),不僅要判斷其是否被阻擋,還要判斷出被阻擋的程度。如圖1所示,觸摸物的不同位置將導(dǎo)致接收信號(hào)的強(qiáng)度差異,因此,觸摸物的位置與接收的紅外信號(hào)強(qiáng)度有直接的對(duì)應(yīng)關(guān)系,即使觸摸物移動(dòng)非常小的距離,也會(huì)導(dǎo)致信號(hào)強(qiáng)度發(fā)生改變,即利用模擬信號(hào)的處理方式可以得到極高的分辨率。
采用模擬信號(hào)處理方式的觸摸屏分辨率主要由紅外管對(duì)數(shù)和模數(shù)轉(zhuǎn)換精度決定,即觸摸屏分辨率=紅外管對(duì)數(shù)×單對(duì)紅外管能實(shí)現(xiàn)的分辨率。觸摸屏坐標(biāo)由紅外管的物理坐標(biāo)和觸摸點(diǎn)在相應(yīng)管中的坐標(biāo)共同決定。
系統(tǒng)結(jié)構(gòu)
該系統(tǒng)主要紅外光信號(hào)發(fā)射電路、光電轉(zhuǎn)換電路和信號(hào)處理電路組成。結(jié)構(gòu)組成框圖如圖2所示。
硬件設(shè)計(jì)
紅外發(fā)射信號(hào)電路設(shè)計(jì)
紅外信號(hào)發(fā)射電路主要由MAX6966構(gòu)成,MAX6966是10端口、恒流LED驅(qū)動(dòng)器,能驅(qū)動(dòng)多支紅外發(fā)光管,且管子發(fā)光強(qiáng)度一致性很好。MAX6966串口外設(shè)可為微處理器提供10個(gè)額定電壓為7V的I/O端口。
如圖3所示,MAX6966/MAX6967為通用輸入/輸出(GPIO)外設(shè),可提供P0~P9共10個(gè)I/O端口,通過高速SPI兼容串口控制。這10個(gè)I/O端口可配置為邏輯輸入、開漏邏輯輸出和恒流吸人的任意組合,無論作為邏輯輸入、開漏邏輯輸出,還是恒流吸入,端口都可承受獨(dú)立于MAX6966或MAX6967電源的7V電壓。配置為恒流吸入的輸出端口,可設(shè)為吸入10mA或20mA的恒流。靜態(tài)端口電流可為靜態(tài),也可以是占空比為3/256~254/256的PWM波形,以減小平均電流。
端口配置為開漏邏輯輸出時(shí),其吸入電流能力相對(duì)較弱,但仍能滿足正常邏輯電平輸出的要求。開漏邏輯輸出通常需要上拉電阻連接到適當(dāng)?shù)恼娫?,以提供邏輯高電平參考。弱?qū)動(dòng)能力意味著短路電流較低,即使不慎由配置為邏輯輸出的端口驅(qū)動(dòng)LED,也不會(huì)對(duì)LED造成損壞。
MAX6966應(yīng)用于紅外發(fā)射管驅(qū)動(dòng)電路的另一個(gè)極大優(yōu)勢(shì)是它可以采用兩種方式進(jìn)行多片級(jí)聯(lián)。一種是多CS連接,并聯(lián)DIN、SCLK,并對(duì)每個(gè)MAX6966器件提供單獨(dú)的CS。另一種是將一個(gè)器件的DOUT連到下一個(gè)器件的DIN,并聯(lián)SCI。K和CS,實(shí)現(xiàn)多個(gè)MAX6966的菊花鏈連接。
紅外接收處理信號(hào)電路
考慮到紅外觸摸屏的使用環(huán)境和紅外接收管的數(shù)量,紅外信號(hào)接收電路須滿足體積小、接線簡(jiǎn)單、探測(cè)靈敏度高、信號(hào)穩(wěn)定易于處理等要求。據(jù)此,本文光電轉(zhuǎn)換電路設(shè)計(jì)如圖4所示。這里,場(chǎng)效應(yīng)管與偏置電阻組成的恒流源為光電三極管提供幾微安至上百微安的電流,調(diào)節(jié)偏置電阻的阻值可改變。Q點(diǎn)表明了電流源兩端的等效直流電阻和等效交流電阻是兩條不同斜率的直線。可以看出,交流電阻遠(yuǎn)大于直流電阻。利用電流源的直流電阻小、交流電阻大的特點(diǎn),可將BJT放大管的集電極負(fù)載改為電流源電路。為保證靜態(tài)電流方向一致,采用N溝道JFET構(gòu)成電流源。將NJFET電流源的伏安特性與BJT輸出特性繪在一起,可得圖5。[!--empirenews.page--]
由圖5可見,過BJT工作點(diǎn)Q的直流負(fù)載線斜率由NJFET電流源的等效直流電阻決定,交流負(fù)載線的斜率由NJFET電流源的等效交流電阻決定。由于電流源的交流電阻遠(yuǎn)大于直流電阻,所以電壓增益大大提高。這種放大電路稱為有源負(fù)載放大器。輸出脈沖電壓信號(hào)經(jīng)過隔直電容后,濾除外界紅外光帶來的直流分量,經(jīng)ADS7830轉(zhuǎn)換后送入MCU處理。
ADS7830是采用I2C接口的8位、8通道采樣ADC,支持三種I2C數(shù)據(jù)傳輸模式。該芯片I2C總線占用的空間非常小,需要的MCU接口少,易于設(shè)計(jì)。ADS7830接口及外圍連接電路如圖6所示。
軟件設(shè)計(jì)
軟件設(shè)計(jì)主要實(shí)現(xiàn)MCU的I2C總線模擬,以及MCU與ADS7830間I2C總線數(shù)據(jù)的傳送。
CPU發(fā)出的控制信號(hào)分為地址碼和控制量?jī)刹糠?。地址碼用來選址,即接通需要控制的電路,確定控制的種類。控制量決定該調(diào)整的類別,如對(duì)比度、亮度,以及需要調(diào)整的量。這樣,各控制電路雖然掛在同一條總線上,卻彼此獨(dú)立,互不相關(guān)。
系統(tǒng)統(tǒng)主程序流程圖如圖7所示。當(dāng)MCU要讀取ADS7830數(shù)據(jù)時(shí),先發(fā)送讀地址字節(jié),若ADS7830發(fā)出應(yīng)答信號(hào),則應(yīng)答信號(hào)之后為MCU接收的8位數(shù)據(jù)為D7~D0。接收結(jié)束后,MCU向被控器ADS7830發(fā)送一位非應(yīng)答信號(hào)N(保持SDA位為高電平),然后MCU發(fā)送結(jié)束信號(hào)P。
結(jié)語
本文介紹了基于I2C總線的高分辨率紅外觸摸屏的軟硬件設(shè)計(jì)及實(shí)現(xiàn)方法,整個(gè)系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,性能穩(wěn)定。試驗(yàn)測(cè)試中有微小誤差和遮擋距離L只測(cè)到4.5mm,其主要原因是輸出電壓下降到100mV以下時(shí),受外界光干擾及儀器精度的影響,示波器輸出圖像不穩(wěn)定。采用ADS7830后其轉(zhuǎn)換數(shù)據(jù)精度可大大提高,同時(shí)可以考慮對(duì)多次轉(zhuǎn)換值計(jì)算平均值,以減小坐標(biāo)的不穩(wěn)定。