摘 要:分析了電阻式觸摸屏的結(jié)構(gòu),確定了觸摸點(diǎn)坐標(biāo)校正的方法。針對(duì)51系列單片機(jī)與觸摸屏控制器ADS7846串行通信時(shí),單片機(jī)串口方式1~3與ADS7846時(shí)序不相配,而方式0雖然與ADS7846時(shí)序相配,但輸入/輸出端數(shù)不相配。為此,提出了在單片機(jī)串口方式0的基礎(chǔ)上增加雙向傳輸GAL芯片,并據(jù)此設(shè)計(jì)了觸摸屏接口電路及軟件。分析和實(shí)驗(yàn)表明,這種接口系統(tǒng)能夠正確獲得觸摸點(diǎn)坐標(biāo),電路簡(jiǎn)化且易于實(shí)現(xiàn),實(shí)用性強(qiáng)。
關(guān)鍵詞:電阻式觸摸屏;觸摸屏控制器;觸摸點(diǎn)坐標(biāo);接口電路;串行通信
中圖分類(lèi)號(hào):TP334.2 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1004-373X(2010)11-0088-03
Interface Design of Resistive Touch Screen Based on ADS7846
WANG Xuan-min, LI Ming-li, ZHANG Li-chuan, ZHANG Xiao-bo
(School of Information Engineering, Chang’an University, Xi’an 710064, China)
Abstract: The structure of resistive touch screen is analyzed, and the revision method of touch point coordinate is determined. For serial communication of the 51 SCM and touch screen controller ADS7846, the time order of SCM serial way 1~3 and ADS7846 was unsuitable. Way 0 time order was suitable, but input/output number was different. Adding two-way chip GAL on SCM serial way 0 was proposed. On the ground, the touch screen interface circuit and software were designed. The analysis and experiment indicate that interface circuit possessed below advantages. Touch point coordinate can be obtained accurately, the circuit is realized easily, and its practicality is good.
Keywords: resistive touch screen; touch screen controller; touch point coordinate; interface circuit; serial communication
觸摸屏作為智能儀器、儀表的輸入設(shè)備,是具有簡(jiǎn)單、方便、自然的人機(jī)交互方式。按照工作原理和傳輸信息介質(zhì)的不同,觸摸屏主要分為電阻式觸摸屏、電容式觸摸屏、紅外線(xiàn)式觸摸屏及表面聲波觸摸屏4類(lèi)。電阻式觸摸屏對(duì)外完全隔離,不怕油污、灰塵、水,經(jīng)濟(jì)性很好,適應(yīng)于各種領(lǐng)域,其產(chǎn)品在觸摸屏產(chǎn)品中占90%的市場(chǎng)份額。現(xiàn)介紹電阻式觸摸屏的結(jié)構(gòu)及接口設(shè)計(jì)。
1 電阻式觸摸屏的結(jié)構(gòu)
電阻式觸摸屏的檢測(cè)部件是一塊與顯示器表面緊密配合的多層復(fù)合薄膜\\,由一層玻璃或有機(jī)玻璃作為基層,表面涂有一層阻性導(dǎo)體層(如銦錫氧化物ITO),上面再蓋有一層外表面被硬化處理、光滑防刮的塑料層,塑料層的內(nèi)表面也涂有一層阻性導(dǎo)體層。在兩導(dǎo)體層之間有一層具有許多細(xì)小隔離點(diǎn)的隔離層,把兩導(dǎo)體層隔開(kāi)絕緣,如圖1所示。當(dāng)手指觸摸屏幕時(shí),兩導(dǎo)體層在觸摸點(diǎn)位置產(chǎn)生了接觸,控制器檢測(cè)到這個(gè)接通點(diǎn)后計(jì)算出X,Y坐標(biāo),這就是電阻式觸摸屏的檢測(cè)原理。
圖1 電阻式觸摸屏結(jié)構(gòu)
電阻式觸摸屏根據(jù)引出線(xiàn)數(shù)的多少,分為4~8線(xiàn)等多種結(jié)構(gòu)。4線(xiàn)電阻觸摸屏最具代表性,其檢測(cè)原理如圖2所示。在外ITO層的上、下兩邊各渡一個(gè)狹長(zhǎng)電極,引出端為Y+,Y-,在內(nèi)ITO層的左、右兩邊分別渡上狹長(zhǎng)電極,引出端為X+,X-。為了獲得觸摸點(diǎn)在X方向的位置信號(hào),在內(nèi)ITO層的兩電極X+,X-上分別加VREF,0 V電壓,使內(nèi)ITO層上形成了從0~VREF的電壓梯度,觸摸點(diǎn)至X-端的電壓為該兩端電阻對(duì)VREF的分壓,分壓值代表了觸摸點(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,0 V電壓,而將內(nèi)ITO層的一個(gè)電極(X-)懸空,從另一電極(X+)上取出觸摸點(diǎn)在Y方向的分壓\\。
圖2 四線(xiàn)電阻觸摸屏檢測(cè)原理
2 ADS7846的特性
2.1 基本特性
ADS7846是美國(guó)BB公司推出的新一代4線(xiàn)制觸摸屏控制器,他由低導(dǎo)通電阻模擬開(kāi)關(guān),具有采樣/保持功能的逐次逼近型ADC、異步串行數(shù)據(jù)接口、溫度傳感器等組成\\。ADC是ADS7846的核心,其轉(zhuǎn)換速率可達(dá)125 kHz,分辨率可編程為8位或12位。該器件不僅具有X,Y坐標(biāo)測(cè)量功能,還具有電池電壓、芯片溫度、觸摸壓力和外模擬量4種測(cè)量功能,其工作方式可由控制字決定,片內(nèi)的6選1模擬多路開(kāi)關(guān)可根據(jù)微控制器送來(lái)的命令字選擇6個(gè)電壓量之一(X+,Y+,Y-,VBAT,TEMP,AUX-IN),并將其送入A/D轉(zhuǎn)換器轉(zhuǎn)換,然后再通過(guò)SPI接口將轉(zhuǎn)換值送入微控制器。ADS7846還集成有觸摸識(shí)別電路,當(dāng)檢測(cè)到有觸摸時(shí),該電路會(huì)在PENIRQ引腳輸出一個(gè)低電平信號(hào),向微控制器提出測(cè)量觸點(diǎn)坐標(biāo)的中斷請(qǐng)求。該芯片采用單電源供電,工作電壓為2.2~5.25 V,且內(nèi)部自帶+2.5 V的參考電壓。
2.2 引腳功能
ADS7846的引腳排列如圖3所示,引腳功能見(jiàn)表1。
圖3 ADS7846引腳圖
表1 ADS7846引腳功能表
引腳號(hào)引腳名功能
1,10VCC電源輸入端,2.7~5.25 V
2,3X+,Y+X+,Y+位置輸入端
4,5X-,Y-X-,Y-位置輸入端
6GND電源地
7VBAT電池監(jiān)視輸入端
8AUX附屬A/D通道輸入
9VREFA/D參考電壓輸入,1~VCC
11PENIRQ筆中斷輸出,需外接電阻(10 kΩ或100 kΩ)
12,14,16DOUT,DIN,DCLK串行接口輸出、輸入、時(shí)鐘端,在時(shí)鐘下降沿?cái)?shù)據(jù)移出,上升沿移進(jìn)
13BUSY忙指示
15CS片選信號(hào)
2.3 控制字
ADS7846的控制功能主要是實(shí)現(xiàn)觸摸屏電極電壓的切換及觸摸點(diǎn)位置信號(hào)的A/D轉(zhuǎn)換。ADS7846的控制字如下:
D7D6D5D4D3D2D1D0
SA2A1A0MODESER/DFRPD1PD0
S:數(shù)據(jù)傳輸起始標(biāo)志位。為1 表示一個(gè)新的控制字節(jié)到來(lái);為0則忽略DIN引腳上數(shù)據(jù)。
A2A1A0:通道選擇位。用于控制通道選擇器的輸入,觸摸信號(hào)驅(qū)動(dòng)開(kāi)關(guān)及ADC的參考輸入電壓。當(dāng)A2A1A0=001時(shí),采集Y坐標(biāo)信號(hào);當(dāng)A2A1A0=101時(shí),采集X坐標(biāo)信號(hào)。
MODE:用來(lái)選擇A/D轉(zhuǎn)換的精度。為1選擇8位精度;為0選擇12位精度。
SER/DFR:用來(lái)選擇參考電壓的輸入模式。1為參考電壓非差動(dòng)輸入模式;0為參考電壓差動(dòng)輸入模式。
PD1,PD0:低功率模式選擇位。若為11,器件總處于供電狀態(tài);若為00,器件在兩次變換之間處于低功率模式。
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ā)送控制字,接下來(lái)的兩次傳送是微處理器從ADS7846讀取轉(zhuǎn)換結(jié)果(最后4位自動(dòng)補(bǔ)0)。由于串口支持雙向同時(shí)進(jìn)行傳送,并且在一次讀數(shù)與下一次發(fā)控制字之間可以重疊,所以轉(zhuǎn)換速率可以提高到每次16個(gè)時(shí)鐘周期。
圖4 ADS7846的轉(zhuǎn)換時(shí)序
2.5 觸摸坐標(biāo)計(jì)算
由于四線(xiàn)電阻觸摸屏中,Y方向位置電壓從下向上逐漸增加,X方向位置電壓從右向左逐漸增加\\,因此Y,X位置電壓對(duì)應(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)陣)相對(duì)應(yīng)。因此校正后的X,Y坐標(biāo)計(jì)算公式為:
x=(Xmax-X) ×160/(Xmax-Xmin)
(1)
y=(Y-Ymin) ×240/(Ymax-Ymin)
(2)
式中: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)控制字中A2A1A0=001時(shí),通過(guò)片內(nèi)模擬開(kāi)關(guān)的切換,將X+ 接電源VCC,X-接地,將Y+與Y- 端以差動(dòng)形式接到A/D轉(zhuǎn)換器的輸入端,A/D轉(zhuǎn)換器的結(jié)果就是Y位置電壓。類(lèi)似當(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=0時(shí),數(shù)據(jù)傳送方向?yàn)閅到A;當(dāng)E=1時(shí),傳送方向?yàn)锽到Y(jié)。ADS7846的筆中斷信號(hào)PENIRQ接P2.4,當(dāng)PENIRQ信號(hào)有效時(shí),單片機(jī)發(fā)送控制字。ADS7846的忙信號(hào)BUSY接P2.6,在BUSY信號(hào)的下降沿,單片機(jī)接收A/D轉(zhuǎn)換結(jié)果。
圖5 ADS7846與80C55的接口
3.2 接口程序
當(dāng)觸摸觸摸屏?xí)r,ADS7846中斷信號(hào)PENIRQ有效,單片機(jī)檢測(cè)到這一有效信號(hào)后,先送測(cè)量X坐標(biāo)控制字,并檢測(cè)BUSY信號(hào)是否有下降沿到來(lái),下降沿到來(lái)后,讀X位置電壓;再送測(cè)量Y坐標(biāo)控制字,獲取Y位置電壓。將得到的X,Y位置電壓用式(1)、式(2)進(jìn)行計(jì)算便得到觸摸點(diǎn)的X,Y坐標(biāo)。軟件流程如圖6所示。
圖6 坐標(biāo)讀取流程圖
4 結(jié) 語(yǔ)
設(shè)計(jì)的觸摸屏接口電路具有下列優(yōu)點(diǎn):通過(guò)增加雙向傳輸GAL芯片,解決了51系列單片機(jī)與觸摸屏控制器ADS7846的串行通信問(wèn)題;通過(guò)對(duì)觸摸點(diǎn)位置電壓進(jìn)行校正,獲得了正確的觸摸坐標(biāo);接口電路易于實(shí)現(xiàn),實(shí)用性強(qiáng)。
參考文獻(xiàn)
[1]王富東.電阻式觸摸屏與單片機(jī)的接口技術(shù)[J].蘇州大學(xué)學(xué)報(bào):工科版,2006,26(6):50-51.
[2]鄧亞平,賈顥.基于C8051F021和ADS7846的觸摸屏系統(tǒng)設(shè)計(jì)[J].電子元器件應(yīng)用,2009,11(8):31-33.
[3]王暉,馬鳴錦.基于觸摸屏控制器ADS7846的觸點(diǎn)坐標(biāo)和壓力的測(cè)量與計(jì)算[J].電子設(shè)計(jì)應(yīng)用,2003(9):80-81.
[4]崔如春,譚海燕.電阻式觸摸屏的坐標(biāo)定位與筆畫(huà)處理技術(shù)[J].儀表技術(shù)與傳感器,2004(8):49-50.
[5]韋作凱,杜秋,臧曉明,等.基于單片機(jī)實(shí)現(xiàn)觸摸屏的實(shí)時(shí)數(shù)據(jù)采集[J].大連民族學(xué)院學(xué)報(bào),2008,10(5):32-34.
[6]馮達(dá),吳星明.基于C8051F SPI接口液晶觸摸屏的控制設(shè)計(jì)[J].微計(jì)算機(jī)信息,2005,21(7):62-64.
[7]程凱,楊曉.51單片機(jī)系統(tǒng)中的觸摸屏坐標(biāo)算法[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2003(8):74-75.
[8]石楊,閔子建.基于觸摸屏控制器的在線(xiàn)動(dòng)態(tài)數(shù)據(jù)采集及預(yù)處理[J].微計(jì)算機(jī)信息,2008,24(28):154-156.
[9]周美娟,肖來(lái)勝.單片機(jī)技術(shù)及系統(tǒng)設(shè)計(jì)[M].北京:清華大學(xué)出版社,2007.
[10]黃惟公.單片機(jī)原理與應(yīng)用技術(shù)[M].西安:西安電子科技大學(xué)出版社,2007.