基于TQ2440和Linux的觸摸屏的驅(qū)動(dòng)研究
嵌入式技術(shù)在工業(yè)和日常生活中變得越來(lái)越普及,觸摸屏作為交互終端已經(jīng)逐漸取代鍵盤成為嵌入式系統(tǒng)的輸入設(shè)備。使用TQ2440開(kāi)發(fā)板,通過(guò)對(duì)嵌入式Linux內(nèi)核中觸摸屏驅(qū)動(dòng)的研究,編寫和移植了觸摸屏的驅(qū)動(dòng)程序,校準(zhǔn)之后觸摸屏可以正常使用。
本文引用地址:http://www.ex-cimer.com/article/160952.htm隨著信息查詢技術(shù)的發(fā)展,觸摸屏因具有堅(jiān)固耐用、反應(yīng)速度快、節(jié)省空間、易于交流等優(yōu)點(diǎn),而得到了廣泛應(yīng)用[1]。觸摸屏作為一種新興的電腦輸入設(shè)備,是目前最簡(jiǎn)單、方便的一種人機(jī)交互設(shè)備。
1 硬件簡(jiǎn)介
1.1 TQ2440開(kāi)發(fā)板簡(jiǎn)介
天嵌公司生產(chǎn)的TQ2440開(kāi)發(fā)板,微處理器采用Samsung S3C2440AL,板載64 MB SDRAM、256 MB Nand Flash、2 MB Nor Flash,板載5線異步串行口(UART0)、100 Mb/s DM9000網(wǎng)卡、USB HOST接口、USB Device接口和一個(gè)SD卡接口,集成了4線電阻式觸摸屏接口和JTAG接口等,音頻接口采用芯片UDA1341,立體聲音頻輸出,可錄音。
1.2 S3C2440處理器簡(jiǎn)介
S3C2440是由三星公司推出的16/32 bit RISC微處理器,最高主頻可達(dá)533 MHz,為手持設(shè)備和一般類型應(yīng)用提供了低價(jià)格、低功耗、高性能小型微控制器的解決方案。處理器內(nèi)部集成SDRAM控制器、LCD控制器、4通道DMA、3通道UART、I2C總線、I2S總線、SD接口、PWMtimer、觸摸屏接口、8通道10 bit A/D控制器和camera接口等,很便于一般開(kāi)發(fā)。
1.3 觸摸屏
按照觸摸屏的工作原理和傳輸信息的介質(zhì)一般可分為4種,分別為電阻式、紅外線式、電容感應(yīng)式以及表面聲波式。本次設(shè)計(jì)采用的是東華3.5英寸觸摸屏,為4線電阻式觸摸屏。具體參數(shù)為:型號(hào): WXCAT35-TG3#001F;尺寸:103 mm×83 mm;顯示面積:70.08 mm(H)×52.56 mm(V);顯示顏色:16.7兆色分辨率;對(duì)比度:300:1;亮度:320 cd/m2;電源:5 V電壓供電。
電阻式觸摸屏利用壓力感應(yīng)進(jìn)行控制,由觸摸檢測(cè)部件和觸摸屏控制器組成。觸摸檢測(cè)部件安裝在顯示器屏幕前面,用于檢測(cè)用戶觸摸位置,并將觸摸位置信息送到觸摸屏控制器;觸摸屏控制器的主要作用是從觸摸點(diǎn)檢測(cè)裝置上接收觸摸信息,并將它轉(zhuǎn)換成觸點(diǎn)坐標(biāo),再送給CPU,它同時(shí)能接收來(lái)自CPU的命令并加以執(zhí)行。觸摸屏的屏體部分是一塊與顯示器表面非常配合的多層復(fù)合薄膜,由一層玻璃或有機(jī)玻璃作為基層,表面涂有一層透明的導(dǎo)電層氧化銦(OTI),上面再覆蓋有一層外表面硬化處理、光滑防刮的塑料層,它的內(nèi)表面也涂有一層OTI,在兩層導(dǎo)電層之間有許多細(xì)小(小于1/1 000)的透明隔離點(diǎn)把它們隔開(kāi)絕緣。當(dāng)手指接觸屏幕時(shí),兩層OTI導(dǎo)電層將出現(xiàn)一個(gè)接觸點(diǎn),因其中一面導(dǎo)電層接通Y軸方向的5 V均勻電壓場(chǎng),使得偵測(cè)層的電壓由零變?yōu)榉橇悖刂破鱾蓽y(cè)到這個(gè)接通數(shù)據(jù)后,進(jìn)行 A/D轉(zhuǎn)換,并將得到的電壓值與5 V相比較,即可得出觸摸點(diǎn)的Y軸坐標(biāo)。同理可得出X軸的坐標(biāo)。
S3C2440的觸摸屏接口包括觸摸觸點(diǎn)控制邏輯和有中斷產(chǎn)生邏輯的ADC接口邏輯,可以控制或選擇觸摸屏觸點(diǎn)用于XY坐標(biāo)的轉(zhuǎn)換。觸摸屏接口為了完成相應(yīng)的工作,具有4種工作模式[2]:
(1)正常轉(zhuǎn)換模式:此模式與通用的AD轉(zhuǎn)換模式相似,可以在ADCCON(ADC控制寄存器)中設(shè)置,在ADCDAT0(ADC數(shù)據(jù)寄存器0)中完成數(shù)據(jù)讀寫。
(2)X/Y坐標(biāo)各自轉(zhuǎn)換:觸摸屏控制器支持兩種轉(zhuǎn)換模式,X/Y坐標(biāo)各自轉(zhuǎn)換與X/Y坐標(biāo)自動(dòng)轉(zhuǎn)換。各自轉(zhuǎn)換是在X模式下,將X坐標(biāo)寫入ADCDAT0后產(chǎn)生中斷;在Y模式下,將Y坐標(biāo)寫入ADCDAT1后產(chǎn)生中斷。
(3)X/Y坐標(biāo)自動(dòng)轉(zhuǎn)換:在此模式下,觸摸屏控制器先后轉(zhuǎn)換觸摸點(diǎn)的X坐標(biāo)與Y坐標(biāo)。當(dāng)X坐標(biāo)與Y坐標(biāo)都轉(zhuǎn)換完成時(shí),中斷控制器產(chǎn)生中斷。
(4)等待中斷模式:當(dāng)觸摸筆按下時(shí),觸摸屏產(chǎn)生中斷(INT_TC)。等待中斷模式必須將寄存器rADCTSC設(shè)置為0xd3;在觸摸屏控制器產(chǎn)生中斷以后,必須將此模式清除。
如果GCLK是50 MHz且預(yù)分頻器的分頻值設(shè)置為49 MHz,10 bit的轉(zhuǎn)換時(shí)間按下式計(jì)算:
A/D轉(zhuǎn)換頻率=50 MHz/(49+1)MHz=1 MHz
轉(zhuǎn)換時(shí)間=1/(1 MHz/5個(gè)周期)=1/200 kHz=5 ?滋s,可見(jiàn)轉(zhuǎn)換時(shí)間很短。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論