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