摘 要:分析了電阻式觸摸屏的結構,確定了觸摸點坐標校正的方法。針對51系列單片機與觸摸屏控制器ADS7846串行通信時,單片機串口方式1~3與ADS7846時序不相配,而方式0雖然與ADS7846時序相配,但輸入/輸出端數不相配。為此,提出了在單片機串口方式0的基礎上增加雙向傳輸GAL芯片,并據此設計了觸摸屏接口電路及軟件。分析和實驗表明,這種接口系統能夠正確獲得觸摸點坐標,電路簡化且易于實現,實用性強。
關鍵詞:電阻式觸摸屏;觸摸屏控制器;觸摸點坐標;接口電路;串行通信
中圖分類號:TP334.2 文獻標識碼:A
文章編號: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
觸摸屏作為智能儀器、儀表的輸入設備,是具有簡單、方便、自然的人機交互方式。按照工作原理和傳輸信息介質的不同,觸摸屏主要分為電阻式觸摸屏、電容式觸摸屏、紅外線式觸摸屏及表面聲波觸摸屏4類。電阻式觸摸屏對外完全隔離,不怕油污、灰塵、水,經濟性很好,適應于各種領域,其產品在觸摸屏產品中占90%的市場份額。現介紹電阻式觸摸屏的結構及接口設計。
1 電阻式觸摸屏的結構
電阻式觸摸屏的檢測部件是一塊與顯示器表面緊密配合的多層復合薄膜\\,由一層玻璃或有機玻璃作為基層,表面涂有一層阻性導體層(如銦錫氧化物ITO),上面再蓋有一層外表面被硬化處理、光滑防刮的塑料層,塑料層的內表面也涂有一層阻性導體層。在兩導體層之間有一層具有許多細小隔離點的隔離層,把兩導體層隔開絕緣,如圖1所示。當手指觸摸屏幕時,兩導體層在觸摸點位置產生了接觸,控制器檢測到這個接通點后計算出X,Y坐標,這就是電阻式觸摸屏的檢測原理。
圖1 電阻式觸摸屏結構
電阻式觸摸屏根據引出線數的多少,分為4~8線等多種結構。4線電阻觸摸屏最具代表性,其檢測原理如圖2所示。在外ITO層的上、下兩邊各渡一個狹長電極,引出端為Y+,Y-,在內ITO層的左、右兩邊分別渡上狹長電極,引出端為X+,X-。為了獲得觸摸點在X方向的位置信號,在內ITO層的兩電極X+,X-上分別加VREF,0 V電壓,使內ITO層上形成了從0~VREF的電壓梯度,觸摸點至X-端的電壓為該兩端電阻對VREF的分壓,分壓值代表了觸摸點在X方向的位置,然后將外ITO層的一個電極(如Y-)端懸空,可從另一電極(Y+)取出這一分壓,將該分壓進行A/D轉換,并與VREF進行比較,便可得到觸摸點的X坐標。
為了獲得觸摸點在Y方向的位置信號,需要在外ITO層的兩電極Y+,Y-上分別加VREF,0 V電壓,而將內ITO層的一個電極(X-)懸空,從另一電極(X+)上取出觸摸點在Y方向的分壓\\。
圖2 四線電阻觸摸屏檢測原理
2 ADS7846的特性
2.1 基本特性
ADS7846是美國BB公司推出的新一代4線制觸摸屏控制器,他由低導通電阻模擬開關,具有采樣/保持功能的逐次逼近型ADC、異步串行數據接口、溫度傳感器等組成\\。ADC是ADS7846的核心,其轉換速率可達125 kHz,分辨率可編程為8位或12位。該器件不僅具有X,Y坐標測量功能,還具有電池電壓、芯片溫度、觸摸壓力和外模擬量4種測量功能,其工作方式可由控制字決定,片內的6選1模擬多路開關可根據微控制器送來的命令字選擇6個電壓量之一(X+,Y+,Y-,VBAT,TEMP,AUX-IN),并將其送入A/D轉換器轉換,然后再通過SPI接口將轉換值送入微控制器。ADS7846還集成有觸摸識別電路,當檢測到有觸摸時,該電路會在PENIRQ引腳輸出一個低電平信號,向微控制器提出測量觸點坐標的中斷請求。該芯片采用單電源供電,工作電壓為2.2~5.25 V,且內部自帶+2.5 V的參考電壓。
2.2 引腳功能
ADS7846的引腳排列如圖3所示,引腳功能見表1。
圖3 ADS7846引腳圖
表1 ADS7846引腳功能表
引腳號引腳名功能
1,10VCC電源輸入端,2.7~5.25 V
2,3X+,Y+X+,Y+位置輸入端
4,5X-,Y-X-,Y-位置輸入端
6GND電源地
7VBAT電池監視輸入端
8AUX附屬A/D通道輸入
9VREFA/D參考電壓輸入,1~VCC
11PENIRQ筆中斷輸出,需外接電阻(10 kΩ或100 kΩ)
12,14,16DOUT,DIN,DCLK串行接口輸出、輸入、時鐘端,在時鐘下降沿數據移出,上升沿移進
13BUSY忙指示
15CS片選信號
2.3 控制字
ADS7846的控制功能主要是實現觸摸屏電極電壓的切換及觸摸點位置信號的A/D轉換。ADS7846的控制字如下:
D7D6D5D4D3D2D1D0
SA2A1A0MODESER/DFRPD1PD0
S:數據傳輸起始標志位。為1 表示一個新的控制字節到來;為0則忽略DIN引腳上數據。
A2A1A0:通道選擇位。用于控制通道選擇器的輸入,觸摸信號驅動開關及ADC的參考輸入電壓。當A2A1A0=001時,采集Y坐標信號;當A2A1A0=101時,采集X坐標信號。
MODE:用來選擇A/D轉換的精度。為1選擇8位精度;為0選擇12位精度。
SER/DFR:用來選擇參考電壓的輸入模式。1為參考電壓非差動輸入模式;0為參考電壓差動輸入模式。
PD1,PD0:低功率模式選擇位。若為11,器件總處于供電狀態;若為00,器件在兩次變換之間處于低功率模式。
2.4 轉換時序
ADS7846的轉換時序如圖4所示。一次完整的電極電壓切換和A/D轉換,需要ADS7846和微處理器進行3次串行數據傳送,每次傳送需要8個時鐘\\周期。第一次傳送由微處理器向ADS7846發送控制字,接下來的兩次傳送是微處理器從ADS7846讀取轉換結果(最后4位自動補0)。由于串口支持雙向同時進行傳送,并且在一次讀數與下一次發控制字之間可以重疊,所以轉換速率可以提高到每次16個時鐘周期。
圖4 ADS7846的轉換時序
2.5 觸摸坐標計算
由于四線電阻觸摸屏中,Y方向位置電壓從下向上逐漸增加,X方向位置電壓從右向左逐漸增加\\,因此Y,X位置電壓對應的坐標原點在觸摸屏的右下角。為了獲得工程上使用的X,Y坐標值(即將坐標原點移為左下角),應將X位置電壓轉換值求補。另外,X,Y位置電壓轉換值還必須與顯示屏幕的點陣(采用的液晶為240×160點陣)相對應。因此校正后的X,Y坐標計算公式為:
x=(Xmax-X) ×160/(Xmax-Xmin)
(1)
y=(Y-Ymin) ×240/(Ymax-Ymin)
(2)
式中:Xmax,Xmin為X位置電壓轉換結果的最大、最小值;Ymax,Ymin為Y位置電壓轉換結果的最大、最小值;Y,X為觸摸點位置電壓的轉換值;x,y為校正后的觸摸點坐標。
3 觸摸屏與微機的接口
3.1 接口電路
應用ADS7846實現觸摸屏與單片機80C55的接口電路如圖5所示\\,觸摸屏的X+,X-,Y+,Y-分別與ADS7846的相應端連接,當控制字中A2A1A0=001時,通過片內模擬開關的切換,將X+ 接電源VCC,X-接地,將Y+與Y- 端以差動形式接到A/D轉換器的輸入端,A/D轉換器的結果就是Y位置電壓。類似當控制字中A2A1A0=101時,A/D轉換器的結果就是X位置電壓。單片機與 ADS7846間的數據傳送采用串行通信方式時,由于單片機串口方式1~3為異部通信方式,與 ADS7846的時序不相配;串口方式0為移存器方式, 雖然與ADS7846時序可以配合,但串口數據輸入/輸出使用同一端子RXD(TXD為同步脈沖輸出端),ADS7846數據輸入/輸出采用不同端子DIN,DOUT。為了實現正確的數據雙向傳送,設計了雙向數據芯片GAL,該芯片的功能是當E=0時,數據傳送方向為Y到A;當E=1時,傳送方向為B到Y。ADS7846的筆中斷信號PENIRQ接P2.4,當PENIRQ信號有效時,單片機發送控制字。ADS7846的忙信號BUSY接P2.6,在BUSY信號的下降沿,單片機接收A/D轉換結果。
圖5 ADS7846與80C55的接口
3.2 接口程序
當觸摸觸摸屏時,ADS7846中斷信號PENIRQ有效,單片機檢測到這一有效信號后,先送測量X坐標控制字,并檢測BUSY信號是否有下降沿到來,下降沿到來后,讀X位置電壓;再送測量Y坐標控制字,獲取Y位置電壓。將得到的X,Y位置電壓用式(1)、式(2)進行計算便得到觸摸點的X,Y坐標。軟件流程如圖6所示。
圖6 坐標讀取流程圖
4 結 語
設計的觸摸屏接口電路具有下列優點:通過增加雙向傳輸GAL芯片,解決了51系列單片機與觸摸屏控制器ADS7846的串行通信問題;通過對觸摸點位置電壓進行校正,獲得了正確的觸摸坐標;接口電路易于實現,實用性強。
參考文獻
[1]王富東.電阻式觸摸屏與單片機的接口技術[J].蘇州大學學報:工科版,2006,26(6):50-51.
[2]鄧亞平,賈顥.基于C8051F021和ADS7846的觸摸屏系統設計[J].電子元器件應用,2009,11(8):31-33.
[3]王暉,馬鳴錦.基于觸摸屏控制器ADS7846的觸點坐標和壓力的測量與計算[J].電子設計應用,2003(9):80-81.
[4]崔如春,譚海燕.電阻式觸摸屏的坐標定位與筆畫處理技術[J].儀表技術與傳感器,2004(8):49-50.
[5]韋作凱,杜秋,臧曉明,等.基于單片機實現觸摸屏的實時數據采集[J].大連民族學院學報,2008,10(5):32-34.
[6]馮達,吳星明.基于C8051F SPI接口液晶觸摸屏的控制設計[J].微計算機信息,2005,21(7):62-64.
[7]程凱,楊曉.51單片機系統中的觸摸屏坐標算法[J].單片機與嵌入式系統應用,2003(8):74-75.
[8]石楊,閔子建.基于觸摸屏控制器的在線動態數據采集及預處理[J].微計算機信息,2008,24(28):154-156.
[9]周美娟,肖來勝.單片機技術及系統設計[M].北京:清華大學出版社,2007.
[10]黃惟公.單片機原理與應用技術[M].西安:西安電子科技大學出版社,2007.