基于嵌入式微處理器S3C44BOX的觸摸屏接口設(shè)計
摘 要: 介紹了觸摸屏工作的基本原理,設(shè)計了基于S3C44BOX嵌入式微處理器的觸摸屏硬件接口電路,研究了觸摸屏程序的工作機(jī)制,在此基礎(chǔ)上給出了其核心部分程序。
本文引用地址:http://butianyuan.cn/article/168267.htm1 引言
觸摸屏越來越廣泛地應(yīng)用于嵌入式系統(tǒng)中。
不同的應(yīng)用領(lǐng)域觸摸屏的設(shè)計方式也各不相同,一般有以下三種: ①應(yīng)用觸摸屏模塊。觸摸屏模塊提供標(biāo)準(zhǔn)的硬件接口與應(yīng)用系統(tǒng)(一般為PC 或X86架構(gòu)的工控機(jī)) 相連,安裝驅(qū)動程序后即可工作,基本無需開發(fā); ②擴(kuò)展觸摸屏控制器。這是嵌入式系統(tǒng)中設(shè)計觸摸屏普遍使用的方法。常用的觸摸屏控制芯片有ADS7843 ,ADS7846 等。這些芯片內(nèi)部集成了A/ D 轉(zhuǎn)換器和觸摸屏的驅(qū)動電路,同時要設(shè)計一定的軟件; ③與前面方式②相仿,有些處理器集成了A/ D 轉(zhuǎn)換器,通過I/ O 口模擬觸摸屏的驅(qū)動信號也可實現(xiàn)觸摸屏的控制。
隨著芯片技術(shù)的發(fā)展,處理器內(nèi)部的資源越來越豐富。如韓國三星半導(dǎo)體公司的32 位ARM處理器S3C44B0X 芯片,其內(nèi)部集成了外部存儲器控制器、LCD 控制器、4 個DMA 通道、2 通道異步UART 單元、1 個同步串行口(SIO) , 1 個多主I2C總線控制器、1 個I2S 總線控制器, 5 通道PWM 定時器及1 個內(nèi)部定時器、71 個通用I/ O口、8 個外部中斷源、實時時鐘、8 通道10 位ADC等。由于其內(nèi)部集成了10 位的A/ D 轉(zhuǎn)換器,可以通過S3C44BOX 的I/ O 口模擬觸摸屏的驅(qū)動信號實現(xiàn)觸摸屏的控制。
2 觸摸屏工作原理
電阻式觸摸屏是一塊4 層的透明的復(fù)合薄膜屏,如圖1 所示,最下面是玻璃或有機(jī)玻璃構(gòu)成的基層,最上面是一層外表面經(jīng)過硬化處理從而光滑防刮的塑料層,中間是兩層金屬導(dǎo)電層,分別在基層之上和塑料層內(nèi)表面,在兩導(dǎo)電層之間有許多細(xì)小的透明隔離點(diǎn)把它們隔開。當(dāng)手指觸摸屏幕時,平常絕緣的兩層導(dǎo)電層在觸摸點(diǎn)位置就有了一個接觸,觸摸屏的兩個金屬導(dǎo)電層是觸摸屏的兩個工作面,在每個工作面的兩端各涂有一條銀膠,成為該工作面的一對電極,若在一個工作面的電極對上施加電壓,則在該工作面上就會形成均勻連續(xù)的平行電壓分布。如圖2 所示,每個工作面有兩個電極對,當(dāng)在X 方向的電極對上施加一確定的電壓,而Y 方向電極對上不加電壓時,在X 平行電壓場中,觸點(diǎn)處的電壓值可以在Y +(或Y2) 電極上反映出來,通過測量Y + 電極對地的電壓大小,便可得知觸點(diǎn)的X 坐標(biāo)值。同理,當(dāng)在Y電極對上加電壓,而X 電極對上不加電壓時,通過測量X + 電極的電壓,便可得知觸點(diǎn)的Y坐標(biāo)。
圖1 觸摸屏的觸摸示意圖 圖2 測量關(guān)系 在該系統(tǒng)中沒有使用專用的控制器,簡而代之的是用了四個三極管(兩個NPN 和兩個PNP) ,外加一些偏流電阻、上拉電阻和濾波電容組成,如圖3 所示,其中:TS_A ,TS_B ,TS_C和TS_D 分別由S3C44B0X 的GPC0 , GPC1 , GPC2 和GPC3 控制。X+ 和Y+ 分別連接到S3C44B0X的A/ D 轉(zhuǎn)換輸入接口AIN0 和AIN1 上。TS_A 和TS_C在X方向施加正向電壓時,在Y方向檢測到X坐標(biāo)的對應(yīng)值,同理,TS_B 和TS_D 在Y方向施加正向電壓時,在X方向檢測到Y(jié)坐標(biāo)的對應(yīng)值,分別由AIN0 和AIN1 采集。 圖3 觸摸屏的接口電路 為了減少系統(tǒng)功耗和觸摸屏所占CPU 資源,只在有落筆時觸摸屏控制器才啟動掃描,通過A/D 轉(zhuǎn)換得到坐標(biāo)的對應(yīng)值,因此需在外部設(shè)計落筆檢測電路,如圖4 所示。中斷連在EXTINT2上,設(shè)置中斷為上升沿觸發(fā),平時為低, 按下屏?xí)r變高產(chǎn)生中斷。 圖4 落筆檢測電路 4 觸摸屏的狀態(tài) 在編寫軟件前, 要先對觸摸屏的狀態(tài)有所了解,在觸摸屏的整個工作過程中,總共有3 個狀態(tài):空閑態(tài)、X 通道態(tài)和Y通道態(tài)。 在沒有觸摸的時候,觸摸屏處于空閑態(tài),此時,為了便于接收中斷,應(yīng)設(shè)置TS_A = 1 ,TS_B =1 ,TS_C = 0 和TS_D = 1.為了獲得觸點(diǎn)的X軸坐標(biāo),需要把觸摸屏設(shè)置成X通道態(tài),即TS_A= 0 ,TS_B = 1 ,TS_C = 1 和TS_D = 0.此時,通過測量Y + (AIN1) 獲取X 通道上的坐標(biāo)。 同理,為了獲得觸點(diǎn)的Y軸坐標(biāo),需要把觸摸屏設(shè)置成Y通道態(tài),即TS_A = 1 ,TS_B = 0 ,TS_C= 0 和TS_D = 1.此時,通過測量X+ (AIN0) 獲取Y通道上的坐標(biāo)。 5 系統(tǒng)的軟件設(shè)計 整個系統(tǒng)軟件包括觸摸屏初始化、落筆中斷服務(wù)程序,AD 測量子程序、濾波程序和坐標(biāo)轉(zhuǎn)換程序。當(dāng)有觸摸時, EXTINT2 變?yōu)楦唠娖剑a(chǎn)生中斷。由S3C44B0X 響應(yīng)該中斷請求,進(jìn)入落筆中斷服務(wù)程序,在該程序中,啟動AD 測量子程序,讀取AD 轉(zhuǎn)換結(jié)果,從而得到觸點(diǎn)的坐標(biāo)。整個過程,觸摸屏在空閑態(tài),X 通道態(tài)和Y 通道態(tài)之間轉(zhuǎn)換,如圖5 所示。
評論