<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 光電顯示 > 設(shè)計(jì)應(yīng)用 > 基于I2C總線的高分辨率紅外式觸摸屏設(shè)計(jì)

          基于I2C總線的高分辨率紅外式觸摸屏設(shè)計(jì)

          作者: 時(shí)間:2012-01-04 來源:網(wǎng)絡(luò) 收藏

          引言

          本文引用地址:http://www.ex-cimer.com/article/168672.htm

          隨著平面顯示器的大規(guī)模應(yīng)用和大屏幕平板顯示器的出現(xiàn),的應(yīng)用已十分廣泛。同時(shí),的進(jìn)一步提高成為應(yīng)用于大屏幕的關(guān)鍵,本文提出了一種提高的方法。

          系統(tǒng)結(jié)構(gòu)及工作原理

          系統(tǒng)工作原理

          紅外觸摸屏基本原理是光束阻斷技術(shù),它不需要在原來的顯示器表面覆蓋任何材料,只需在顯示屏幕的四周安放一個(gè)框架??蚣軆蓚€(gè)對邊上,一邊安裝紅外發(fā)光二極管(LED),另一邊安裝紅外線探測器,在顯示屏幕的表面形成一個(gè)由紅外線組成的柵格。當(dāng)有任何物體進(jìn)入這個(gè)柵格的時(shí)候,就會(huì)阻擋一些光線,光電轉(zhuǎn)換電路就會(huì)收到變化的信號,由ADC轉(zhuǎn)換后,MCU將計(jì)算的觸摸位置坐標(biāo)傳遞給操作系統(tǒng)。

          早期紅外觸摸屏直接由紅外管對數(shù)決定,觸摸分辨率就等于屏的物理分辨率。如果采用模擬信號處理方式對接收的信號強(qiáng)度進(jìn)行分級,對于接收的信號,不僅要判斷其是否被阻擋,還要判斷出被阻擋的程度。如圖1所示,觸摸物的不同位置將導(dǎo)致接收信號的強(qiáng)度差異,因此,觸摸物的位置與接收的紅外信號強(qiáng)度有直接的對應(yīng)關(guān)系,即使觸摸物移動(dòng)非常小的距離,也會(huì)導(dǎo)致信號強(qiáng)度發(fā)生改變,即利用模擬信號的處理方式可以得到極高的分辨率。

          采用模擬信號處理方式的觸摸屏分辨率主要由紅外管對數(shù)和模數(shù)轉(zhuǎn)換精度決定,即觸摸屏分辨率=紅外管對數(shù)×單對紅外管能實(shí)現(xiàn)的分辨率。觸摸屏坐標(biāo)由紅外管的物理坐標(biāo)和觸摸點(diǎn)在相應(yīng)管中的坐標(biāo)共同決定。

          系統(tǒng)結(jié)構(gòu)

          該系統(tǒng)主要紅外光信號發(fā)射電路、光電轉(zhuǎn)換電路和信號處理電路組成。結(jié)構(gòu)組成框圖如圖2所示。

          硬件

          紅外發(fā)射信號電路

          紅外信號發(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í),其吸入電流能力相對較弱,但仍能滿足正常邏輯電平輸出的要求。開漏邏輯輸出通常需要上拉電阻連接到適當(dāng)?shù)恼娫?,以提供邏輯高電平參考。弱?qū)動(dòng)能力意味著短路電流較低,即使不慎由配置為邏輯輸出的端口驅(qū)動(dòng)LED,也不會(huì)對LED造成損壞。

          MAX6966應(yīng)用于紅外發(fā)射管驅(qū)動(dòng)電路的另一個(gè)極大優(yōu)勢是它可以采用兩種方式進(jìn)行多片級聯(lián)。一種是多CS連接,并聯(lián)DIN、SCLK,并對每個(gè)MAX6966器件提供單獨(dú)的CS。另一種是將一個(gè)器件的DOUT連到下一個(gè)器件的DIN,并聯(lián)SCI。K和CS,實(shí)現(xiàn)多個(gè)MAX6966的菊花鏈連接。

          紅外接收處理信號電路

          考慮到紅外觸摸屏的使用環(huán)境和紅外接收管的數(shù)量,紅外信號接收電路須滿足體積小、接線簡單、探測靈敏度高、信號穩(wěn)定易于處理等要求。據(jù)此,本文光電轉(zhuǎn)換電路如圖4所示。這里,場效應(yīng)管與偏置電阻組成的恒流源為光電三極管提供幾微安至上百微安的電流,調(diào)節(jié)偏置電阻的阻值可改變。Q點(diǎn)表明了電流源兩端的等效直流電阻和等效交流電阻是兩條不同斜率的直線??梢钥闯?,交流電阻遠(yuǎn)大于直流電阻。利用電流源的直流電阻小、交流電阻大的特點(diǎn),可將BJT放大管的集電極負(fù)載改為電流源電路。為保證靜態(tài)電流方向一致,采用N溝道JFET構(gòu)成電流源。將NJFET電流源的伏安特性與BJT輸出特性繪在一起,可得圖5。

          由圖5可見,過BJT工作點(diǎn)Q的直流負(fù)載線斜率由NJFET電流源的等效直流電阻決定,交流負(fù)載線的斜率由NJFET電流源的等效交流電阻決定。由于電流源的交流電阻遠(yuǎn)大于直流電阻,所以電壓增益大大提高。這種放大電路稱為有源負(fù)載放大器。輸出脈沖電壓信號經(jīng)過隔直電容后,濾除外界紅外光帶來的直流分量,經(jīng)ADS7830轉(zhuǎn)換后送入MCU處理。

          ADS7830是采用接口的8位、8通道采樣ADC,支持三種數(shù)據(jù)傳輸模式。該芯片占用的空間非常小,需要的MCU接口少,易于設(shè)計(jì)。ADS7830接口及外圍連接電路如圖6所示。

          軟件設(shè)計(jì)

          軟件設(shè)計(jì)主要實(shí)現(xiàn)MCU的I2C模擬,以及MCU與ADS7830間I2C數(shù)據(jù)的傳送。

          CPU發(fā)出的控制信號分為地址碼和控制量兩部分。地址碼用來選址,即接通需要控制的電路,確定控制的種類??刂屏繘Q定該調(diào)整的類別,如對比度、亮度,以及需要調(diào)整的量。這樣,各控制電路雖然掛在同一條總線上,卻彼此獨(dú)立,互不相關(guān)。

          系統(tǒng)統(tǒng)主程序流程圖如圖7所示。當(dāng)MCU要讀取ADS7830數(shù)據(jù)時(shí),先發(fā)送讀地址字節(jié),若ADS7830發(fā)出應(yīng)答信號,則應(yīng)答信號之后為MCU接收的8位數(shù)據(jù)為D7~D0。接收結(jié)束后,MCU向被控器ADS7830發(fā)送一位非應(yīng)答信號N(保持SDA位為高電平),然后MCU發(fā)送結(jié)束信號P。

          結(jié)語

          本文介紹了I2C總線的高分辨率紅外觸摸屏的軟硬件設(shè)計(jì)及實(shí)現(xiàn)方法,整個(gè)系統(tǒng)結(jié)構(gòu)簡單,性能穩(wěn)定。試驗(yàn)測試中有微小誤差和遮擋距離L只測到4.5mm,其主要原因是輸出電壓下降到100mV以下時(shí),受外界光干擾及儀器精度的影響,示波器輸出圖像不穩(wěn)定。采用ADS7830后其轉(zhuǎn)換數(shù)據(jù)精度可大大提高,同時(shí)可以考慮對多次轉(zhuǎn)換值計(jì)算平均值,以減小坐標(biāo)的不穩(wěn)定。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();