1、引言
嵌入式系統(tǒng)中觸摸屏越來(lái)越廣泛地應(yīng)用。不同的應(yīng)用領(lǐng)域觸摸屏的設(shè)計(jì)方式也各不相同,一般有以下三種:(1)應(yīng)用觸摸屏模塊。觸摸屏模塊提供標(biāo)準(zhǔn)的硬件接口與應(yīng)用系統(tǒng)(一般為pc或x86架構(gòu)的工控機(jī))相連,安裝驅(qū)動(dòng)程序后即可工作,基本無(wú)需開(kāi)發(fā);(2)擴(kuò)展觸摸屏控制器。這是嵌入式系統(tǒng)中設(shè)計(jì)觸摸屏普遍使用的方法,常用的觸摸屏控制芯片有ads7843、ads7846等,這些芯片內(nèi)部集成了a/d轉(zhuǎn)換器和觸摸屏的驅(qū)動(dòng)電路,同時(shí)要設(shè)計(jì)一定的軟件;(3)與前面方式(2)相仿,有些處理器集成了a/d轉(zhuǎn)換器,通過(guò)io口模擬觸摸屏的驅(qū)動(dòng)信號(hào)也可實(shí)現(xiàn)觸摸屏的控制。
隨著芯片技術(shù)的發(fā)展,處理器內(nèi)部集成的資源越來(lái)越豐富,有些芯片內(nèi)部已經(jīng)集成了觸摸屏控制器。如韓國(guó)現(xiàn)代半導(dǎo)體公司的32位arm處理器arm7202(hms30c7202)芯片,其內(nèi)部集成了電阻式觸摸屏控制器。arm7202集成了arm7tdmicpu核、存儲(chǔ)器管理單元(mmu)、8kb高速緩沖存儲(chǔ)器(cache),主頻達(dá)70mhz。是一高性能嵌入式處理器。除觸摸屏控制器外,其片內(nèi)還包含了其他豐富的資源,如lcd控制器、sdram控制器、中斷控制器、dma控制器等。arm7202與觸摸屏的接口在軟/硬件設(shè)計(jì)上有些與前面三種不同的方面。
2、硬件設(shè)計(jì)
2.1電阻觸摸屏原理
電阻觸摸屏是一多層的復(fù)合膜,由一層玻璃或有機(jī)玻璃作為基層,表面涂有一層透明的導(dǎo)電層,上面再蓋有一層塑料層,它的內(nèi)表面也涂有一層透明的導(dǎo)電層,在兩層導(dǎo)電層之間有許多細(xì)小的透明隔離點(diǎn)把它們隔開(kāi)絕緣,如圖1。當(dāng)手指觸摸屏幕時(shí),平常絕緣的兩層導(dǎo)電層在觸摸點(diǎn)位置就有了一個(gè)接觸,控制器檢測(cè)到這個(gè)接觸后,其中一面導(dǎo)電層接通y軸方向的5v均勻電壓場(chǎng),另一導(dǎo)電層將接觸點(diǎn)的電壓引至控制器進(jìn)行a/d轉(zhuǎn)換,得到電壓值后與5v相比即可得觸摸點(diǎn)的y軸坐標(biāo),如圖2。同理得出x軸的坐標(biāo)。這是所有電阻觸摸屏共同的基本原理。
圖1觸摸屏結(jié)構(gòu)
圖2y方向坐標(biāo)檢測(cè)等效電路
2.2arm7202與觸摸屏的接口
arm7202片上資源包含觸摸屏控制器,用于控制4線電阻式觸摸屏。在5路a/d轉(zhuǎn)換通道中a0和a1是用于觸摸屏坐標(biāo)采集的,同時(shí)芯片提供atsxp、atsxn、atsyp和atsyn四根掃描線分別對(duì)x方向和y方向進(jìn)行掃描。atsxp和atsxn在x方向施加正向電壓時(shí),在y方向檢測(cè)到x坐標(biāo)的對(duì)應(yīng)值;同理atsyp和atsyn在y方向施加正向電壓時(shí),在x方向檢測(cè)到y(tǒng)坐標(biāo)的對(duì)應(yīng)值,分別由a0和a1采集。為了減少系統(tǒng)功耗和觸摸屏所占cpu資源,只在有落筆時(shí)觸摸屏控制器才啟動(dòng)掃描,通過(guò)a/d轉(zhuǎn)換得到坐標(biāo)的對(duì)應(yīng)值,因此需在外部設(shè)計(jì)落筆檢測(cè)電路,如圖3所示。圖中irlml6302和irlml2402分別為pmosfet和nmosfet,作為開(kāi)關(guān)管控制x方向和y方向的掃描輸出。pb7接上拉電阻,檢測(cè)落筆中斷,當(dāng)有落筆時(shí),pb7檢測(cè)到低電平,觸發(fā)中斷。pb6為中斷檢測(cè)電路的使能信號(hào),當(dāng)pb6為高電平時(shí),中斷有效,觸摸屏掃描無(wú)效;反之中斷無(wú)效,觸摸屏掃描有效。
圖3觸摸屏外部電路
3、觸摸屏控制程序機(jī)制
不同的操作系統(tǒng)下對(duì)觸摸屏的應(yīng)用各有不同,但都包括了設(shè)備的初始化、設(shè)備讀寫(xiě)及中斷響應(yīng)等基本模塊。觸摸屏的驅(qū)動(dòng)程序涉及到兩個(gè)中斷:落筆中斷和觸摸屏a/d轉(zhuǎn)換中斷。所包含的程序模塊有:觸摸屏初始化、落筆中斷服務(wù)程序、a/d中斷服務(wù)程序、濾波程序和坐標(biāo)轉(zhuǎn)換程序。這里重點(diǎn)說(shuō)明觸摸屏的兩個(gè)中斷。
觸摸屏初始化程序完成外部電路的中斷設(shè)置和采樣率的設(shè)置,并將觸摸屏的a/d中斷和a/d轉(zhuǎn)換器電源關(guān)閉,使外部電路中斷有效。
有落筆時(shí),外部中斷被觸發(fā),進(jìn)入落筆中斷服務(wù)程序。在落筆中斷服務(wù)程序中清中斷源,關(guān)外部中斷,使外部中斷電路無(wú)效,打開(kāi)觸摸屏中斷和ad轉(zhuǎn)換器電源。此時(shí)觸摸屏電路開(kāi)始掃描觸摸屏。觸摸屏a/d轉(zhuǎn)換結(jié)束后,產(chǎn)生a/d中斷,進(jìn)入a/d中斷服務(wù)程序。在觸摸屏a/d中斷服務(wù)程序中,清a/d中斷,關(guān)觸摸屏a/d中斷,讀a/d轉(zhuǎn)換值。此時(shí)還要判斷落筆是否繼續(xù),若無(wú)落筆,開(kāi)外部電路中斷,使外部中斷電路有效,關(guān)a/d中斷和a/d轉(zhuǎn)換器電源,進(jìn)入節(jié)能模式,如圖4(a);若還有落筆,要繼續(xù)開(kāi)觸摸屏a/d中斷,使外部中斷電路無(wú)效,觸摸屏的a/d轉(zhuǎn)換繼續(xù)進(jìn)行,如圖4(b)所示。
圖4觸摸屏程序流圖
由a/d轉(zhuǎn)換得到的值是觸摸屏上觸摸點(diǎn)的x坐標(biāo)和y坐標(biāo)的值,要通過(guò)一定的方法轉(zhuǎn)換為顯示屏上的坐標(biāo)。在a/d轉(zhuǎn)換時(shí),每次由a/d轉(zhuǎn)換寄存器得到4組轉(zhuǎn)換值,可以設(shè)計(jì)一個(gè)濾波程序以提高檢測(cè)精度。
4、程序設(shè)計(jì)
觸摸屏的應(yīng)用程序模塊有:觸摸屏初始化、落筆中斷服務(wù)程序、a/d中斷服務(wù)程序、濾波程序和坐標(biāo)轉(zhuǎn)換程序。初始化程序、濾波程序和坐標(biāo)轉(zhuǎn)換程序是一般常規(guī)通用程序。觸摸屏驅(qū)動(dòng)程序其核心是落筆中斷和a/d轉(zhuǎn)換這兩個(gè)中斷服務(wù)程序,以下是在uc/os操作系統(tǒng)下觸摸屏驅(qū)動(dòng)程序的兩個(gè)中斷服務(wù)程序,其詳細(xì)說(shuō)明見(jiàn)注釋。
5、結(jié)束語(yǔ)
根據(jù)上述對(duì)觸摸屏工作機(jī)制的分析,筆者在實(shí)時(shí)嵌入式操作系統(tǒng)uc/os下編寫(xiě)的觸摸屏驅(qū)動(dòng)程序應(yīng)用于基于arm7202的智能控制器,實(shí)踐證明系統(tǒng)穩(wěn)定可靠,滿足了在復(fù)雜的實(shí)時(shí)多任務(wù)環(huán)境中觸摸屏快速響應(yīng)的要求。