采用ADS7846控制器的電阻式觸摸屏接口電路設(shè)計(jì)
1 電阻式觸摸屏的結(jié)構(gòu)
電阻式觸摸屏的檢測部件是一塊與顯示器表面緊密配合的多層復(fù)合薄膜,由一層玻璃或有機(jī)玻璃作為基層,表面涂有一層阻性導(dǎo)體層(如銦錫氧化物ITO),上面再蓋有一層外表面被硬化處理、光滑防刮的塑料層,塑料層的內(nèi)表面也涂有一層阻性導(dǎo)體層。在兩導(dǎo)體層之間有一層具有許多細(xì)小隔離點(diǎn)的隔離層,把兩導(dǎo)體層隔開絕緣,如圖1所示。當(dāng)手指觸摸屏幕時(shí),兩導(dǎo)體層在觸摸點(diǎn)位置產(chǎn)生了接觸,控制器檢測到這個(gè)接通點(diǎn)后計(jì)算出X,Y坐標(biāo),這就是電阻式觸摸屏的檢測原理。
電阻式觸摸屏根據(jù)引出線數(shù)的多少,分為4~8線等多種結(jié)構(gòu)。4線電阻觸摸屏最具代表性,其檢測原理如圖2所示。在外ITO層的上、下兩邊各渡一個(gè)狹長電極,引出端為Y+,Y-,在內(nèi)IT0層的左、右兩邊分別渡上狹長電極,引出端為X+,X-。為了獲得觸摸點(diǎn)在X方向的位置信號(hào),在內(nèi)ITO層的兩電極 X+,X-上分別加VREF,0 V電壓,使內(nèi)IT0層上形成了從O~VREF的電壓梯度,觸摸點(diǎn)至X-端的電壓為該兩端電阻對VR-EF的分壓,分壓值代表了觸摸點(diǎn)在X方向的位置,然后將外ITO層的一個(gè)電極(如Y-)端懸空,可從另一電極(Y+)取出這一分壓,將該分壓進(jìn)行A/D轉(zhuǎn)換,并與VREF進(jìn)行比較,便可得到觸摸點(diǎn)的X坐標(biāo)。
為了獲得觸摸點(diǎn)在Y方向的位置信號(hào),需要在外ITO層的兩電極Y+,Y-上分別加VREF,O V電壓,而將內(nèi)ITO層的一個(gè)電極(X-)懸空,從另一電極(X+)上取出觸摸點(diǎn)在Y方向的分壓。
2 ADS7846的特性
2.1 基本特性
ADS7846是美國BB公司推出的新一代4線制觸摸屏控制器,他由低導(dǎo)通電阻模擬開關(guān),具有采樣/保持功能的逐次逼近型ADC、異步串行數(shù)據(jù)接口、溫度傳感器等組成。ADC是ADS7846的核心,其轉(zhuǎn)換速率可達(dá)125 kHz,分辨率可編程為8位或12位。該器件不僅具有X,Y坐標(biāo)測量功能,還具有電池電壓、芯片溫度、觸摸壓力和外模擬量4種測量功能,其工作方式可由控制字決定,片內(nèi)的6選1模擬多路開關(guān)可根據(jù)微控制器送來的命令字選擇6個(gè)電壓量之一(X+,Y+,Y-,VBAT,TEMP,AUX-IN),并將其送入 A/D轉(zhuǎn)換器轉(zhuǎn)換,然后再通過SPI接口將轉(zhuǎn)換值送入微控制器。ADS7846還集成有觸摸識(shí)別電路,當(dāng)檢測到有觸摸時(shí),該電路會(huì)在引腳輸出一個(gè)低電平信號(hào),向微控制器提出測量觸點(diǎn)坐標(biāo)的中斷請求。該芯片采用單電源供電,工作電壓為2.2~5.25 V,且內(nèi)部自帶+2.5 V的參考電壓。
2.2 引腳功能
ADS7846的引腳排列如圖3所示,引腳功能見表1。
2.3 控制字
ADS7846的控制功能主要是實(shí)現(xiàn)觸摸屏電極電壓的切換及觸摸點(diǎn)位置信號(hào)的A/D轉(zhuǎn)換。ADS7846的控制字如下:
S:數(shù)據(jù)傳輸起始標(biāo)志位。為1表示一個(gè)新的控制字節(jié)到來;為0則忽略DIN引腳上數(shù)據(jù)。
A2A1A0:通道選擇位。用于控制通道選擇器的輸入,觸摸信號(hào)驅(qū)動(dòng)開關(guān)及ADC的參考輸入電壓。當(dāng)A2A1A0=001時(shí),采集Y坐標(biāo)信號(hào);當(dāng)A2A1A0=101時(shí),采集X坐標(biāo)信號(hào)。
MODE:用來選擇A/D轉(zhuǎn)換的精度。為1選擇8位精度;為0選擇12位精度。
用來選擇參考電壓的輸入模式。1為參考電壓非差動(dòng)輸入模式;O為參考電壓差動(dòng)輸入模式。
PDl,PD0:低功率模式選擇位。若為11,器件總處于供電狀態(tài);若為OO,器件在兩次變換之間處于低功率模式。
2.4 轉(zhuǎn)換時(shí)序
ADS7846的轉(zhuǎn)換時(shí)序如圖4所示。一次完整的電極電壓切換和A/D轉(zhuǎn)換,需要ADS7846和微處理器進(jìn)行3次串行數(shù)據(jù)傳送,每次傳送需要8個(gè)時(shí)鐘周期。
第一次傳送由微處理器向ADS7846發(fā)送控制字,接下來的兩次傳送是微處理器從ADS7846讀取轉(zhuǎn)換結(jié)果(最后4位自動(dòng)補(bǔ)O)。由于串口支持雙向同時(shí)進(jìn)行傳送,并且在一次讀數(shù)與下一次發(fā)控制字之間可以重疊,所以轉(zhuǎn)換速率可以提高到每次16個(gè)時(shí)鐘周期。
2.5 觸摸坐標(biāo)計(jì)算
由于四線電阻觸摸屏中,Y方向位置電壓從下向上逐漸增加,X方向位置電壓從右向左逐漸增加,因此Y,X位置電壓對應(yīng)的坐標(biāo)原點(diǎn)在觸摸屏的右下角。為了獲得工程上使用的X,Y坐標(biāo)值(即將坐標(biāo)原點(diǎn)移為左下角),應(yīng)將X位置電壓轉(zhuǎn)換值求補(bǔ)。另外,X,Y位置電壓轉(zhuǎn)換值還必須與顯示屏幕的點(diǎn)陣(采用的液晶為 240×160點(diǎn)陣)相對應(yīng)。因此校正后的X,Y坐標(biāo)計(jì)算公式為:
式中:Xmax,Xmin為X位置電壓轉(zhuǎn)換結(jié)果的最大、最小值;Ymax,Ymin為Y位置電壓轉(zhuǎn)換結(jié)果的最大、最小值;Y,X為觸摸點(diǎn)位置電壓的轉(zhuǎn)換值;x,y為校正后的觸摸點(diǎn)坐標(biāo)。
3 觸摸屏與微機(jī)的接口
3.1接口電路
應(yīng)用ADS7846實(shí)現(xiàn)觸摸屏與單片機(jī)80C55的接口電路如圖5所示,觸摸屏的X+,X-,Y+,Y-分別與ADS7846的相應(yīng)端連接,當(dāng)控制字中 A2A1-A0=001時(shí),通過片內(nèi)模擬開關(guān)的切換,將X+接電源VCC,X-接地,將Y+與Y-端以差動(dòng)形式接到A/D轉(zhuǎn)換器的輸入端,A/D轉(zhuǎn)換器的結(jié)果就是Y位置電壓。類似當(dāng)控制字中A2A1A0=101時(shí),A/D轉(zhuǎn)換器的結(jié)果就是X位置電壓。單片機(jī)與ADS7846間的數(shù)據(jù)傳送采用串行通信方式時(shí),由于單片機(jī)串口方式1~3為異部通信方式,與ADS7846的時(shí)序不相配;串口方式0為移存器方式,雖然與ADS7846時(shí)序可以配合,但串口數(shù)據(jù)輸入/輸出使用同一端子RXD(TXD)為同步脈沖輸出端),ADS7846數(shù)據(jù)輸入/輸出采用不同端子DIN,DOUT。為了實(shí)現(xiàn)正確的數(shù)據(jù)雙向傳送,設(shè)計(jì)了雙向數(shù)據(jù)芯片GAL,該芯片的功能是當(dāng)E=O時(shí),數(shù)據(jù)傳送方向?yàn)閅到A;當(dāng)E=1時(shí),傳送方向?yàn)锽到Y(jié)。ADS7846的筆中斷信號(hào)接P2.4,當(dāng)信號(hào)有效時(shí),單片機(jī)發(fā)送控制字。ADS7846的忙信號(hào)BUSY接P2.6,在BUSY信號(hào)的下降沿,單片機(jī)接收A/D轉(zhuǎn)換結(jié)果。
3.2 接口程序
當(dāng)觸摸觸摸屏?xí)r,ADS7846中斷信號(hào)有效,單片機(jī)檢測到這一有效信號(hào)后,先送測量X坐標(biāo)控制字,并檢測BUSY信號(hào)是否有下降沿到來,下降沿到來后,讀X位置電壓;再送測量Y坐標(biāo)控制字,獲取Y位置電壓。將得到的X,Y位置電壓用式(1)、式(2)進(jìn)行計(jì)算便得到觸摸點(diǎn)的X,Y坐標(biāo)。軟件流程如圖6所示。
4 結(jié)語
設(shè)計(jì)的觸摸屏接口電路具有下列優(yōu)點(diǎn):通過增加雙向傳輸GAL芯片,解決了51系列單片機(jī)與觸摸屏控制器ADS7846的串行通信問題;通過對觸摸點(diǎn)位置電壓進(jìn)行校正,獲得了正確的觸摸坐標(biāo);接口電路易于實(shí)現(xiàn),實(shí)用性強(qiáng)。
評論