基于ARM處理器的TSC2046觸摸屏控制器的應(yīng)用
摘要:觸摸屏技術(shù)經(jīng)過十幾年的發(fā)展已經(jīng)成為一種方便、經(jīng)濟(jì)的人機(jī)界面輸入手段。TSC2046是四線電阻式觸摸屏控制器,其核心是一個(gè)具有采樣和保持功能的12位逐次逼近式A/D轉(zhuǎn)換器。以飛利浦公司的ARM芯片為基礎(chǔ),通過TSC2046觸摸屏控制器和四線電阻式觸摸屏構(gòu)成硬件基礎(chǔ),在此基礎(chǔ)上,開發(fā)了觸摸屏面板控制程序。該觸摸屏已應(yīng)用于實(shí)際項(xiàng)目中,觸摸效果良好。
關(guān)鍵詞:TSC2046;觸模屏;LPC2132芯片;控制器
0 引言
隨著信息技術(shù)的不斷發(fā)展,嵌入式系統(tǒng)正在越來越廣泛地應(yīng)用到消費(fèi)類電子、通信設(shè)備等便攜式電子類產(chǎn)品中。觸摸屏由于其輕便、占用空間少、靈活等優(yōu)點(diǎn),已經(jīng)逐漸取代鍵盤,成為嵌入式系統(tǒng)中最簡(jiǎn)單、方便、自然的一種人機(jī)交互方式。觸摸屏分為電阻、電容、表面聲波、紅外線掃描等類型,其中使用最多的是四線或五線電阻觸摸屏。四線電阻觸摸屏是由兩個(gè)透明電阻膜構(gòu)成的,在它的水平和垂直電阻網(wǎng)上施加電壓,就可通過轉(zhuǎn)換面板在觸摸點(diǎn)測(cè)量出電壓而對(duì)應(yīng)出坐標(biāo)值。
TSC2046是典型的逐次逼近寄存器型A/D變換器,其結(jié)構(gòu)以電容再分布為基礎(chǔ),包含了取樣/保持功能,支持低電壓的I/O接口。本文介紹了利用飛利浦公司的LPC2100系列ARM芯片LPC2132、TSC2046和液晶屏實(shí)現(xiàn)人機(jī)互動(dòng)。
1 觸摸屏的工作原理
本文選用的觸摸屏為四線電阻觸摸屏,由一個(gè)4層的復(fù)合薄膜,附著在顯示器表面與顯示器配合使用。每一導(dǎo)電層為觸摸屏的一個(gè)工作面,每個(gè)工作面的兩端各涂一條銀膠,稱為該工作面的一對(duì)電極,分別稱為X電極對(duì)和Y電極對(duì)。觸摸屏工作時(shí),上下導(dǎo)體層相當(dāng)于電阻網(wǎng)絡(luò)。當(dāng)某一層電極加上電壓時(shí),會(huì)在該網(wǎng)絡(luò)上形成電壓梯度。如有外力使得上下兩層在某一點(diǎn)接觸,則在電極未加電壓的另一層可以測(cè)得接觸點(diǎn)處的電壓,從而知道接觸點(diǎn)處的坐標(biāo)。比如,在頂層的電極(X+,X-)上加上電壓,則在頂層導(dǎo)體層上形成電壓梯度,當(dāng)有外力使得上下兩層在某一點(diǎn)接觸,在底層就可以測(cè)得接觸點(diǎn)處的電壓,再根據(jù)該電壓與電極(X+)之間的距離關(guān)系,知道該處的X坐標(biāo)。然后,將電壓切換到底層電極(Y+,Y-)上,并在頂層測(cè)量接觸點(diǎn)處的電壓,便可得知觸摸者的意圖。測(cè)量觸點(diǎn)坐標(biāo)電原理圖如圖1所示。
2 TSC2046的工作方式和控制字
TSC2046的輸入方式分差分輸入和單端輸入兩種,可設(shè)置為8位或12位工作模式。本文以12位差分輸入模式進(jìn)行工作。TSC2046的控制字如表1所示。
表1中S為數(shù)據(jù)傳輸起止標(biāo)志位,該位值恒為“1”。A2~A0用于對(duì)TSC2046輸入通道的選擇,確定觸摸屏體輸出模擬電壓從哪個(gè)引腳輸入。MODE用于確定A/D轉(zhuǎn)換的精度,為0時(shí)選擇12位,為1時(shí)選擇8位。確定輸入模式,為0時(shí)選擇差分模式,為1時(shí)選擇單端模式。差分模式是一種比率度量轉(zhuǎn)換方式,轉(zhuǎn)換的結(jié)果總是觸摸屏上分布的電阻值百分比,差分模式能有效消除內(nèi)部開關(guān)電阻帶來的轉(zhuǎn)換誤差。相應(yīng)的差分輸入模式下的輸入配置如表2所示。
[!--empirenews.page--]
3 典型應(yīng)用
LPC2132是飛利浦公司的一款基于支持實(shí)時(shí)仿真的16/32位ARM7TDMI-S CPU的微控制器芯片,并帶有16KB SRAM和64 kB嵌入的高速FLASH存儲(chǔ)器,內(nèi)置了寬范圍的串行通信接口(范圍從多個(gè)UART,SPI和SSP到兩條I2C總線)、多個(gè)32位和16位定時(shí)器、1個(gè)改良的10位ADC、所有定時(shí)器上輸出匹配的PWM特性、以及具有多達(dá)13個(gè)邊沿或電平觸發(fā)的外部中斷管腳的32條高速GPIO線等硬件資源。
LPC2132的最小系統(tǒng)設(shè)計(jì)如圖2所示。
[!--empirenews.page--]
LPC2132芯片操作電壓為3.0~3.6V,本系統(tǒng)采用3.3V供電,便于供電電壓統(tǒng)一。晶振采用常規(guī)直插晶振11.0592MHz。由于LPC2132芯片的高速度、低功耗、低工作電壓導(dǎo)致其噪聲容限低,對(duì)電源的紋波、瞬態(tài)響應(yīng)性能、時(shí)鐘源的穩(wěn)定性、電源監(jiān)控等諸多方面的要求較高。本系統(tǒng)的復(fù)位電路采用微處理器專用的電源監(jiān)控芯片STM811,如圖2所示。該芯片在初次上電和系統(tǒng)電壓小于3 V時(shí)會(huì)輸出復(fù)位信號(hào),同時(shí)此芯片不需要任何外圍電路,且?guī)в惺謩?dòng)復(fù)位功能。本系統(tǒng)外設(shè)只有一個(gè)就是TSC2046。LPC2132和觸摸屏控制器連接如圖3所示,SCK0引腳為SPI時(shí)鐘,MOSI引腳為SPI主機(jī)輸出從機(jī)輸入,MISO引腳為SPI主機(jī)輸入從機(jī)輸出,這三根線為SPI總線。2046_CS為TSC2046的片選引腳,PENI RQ為筆中斷信號(hào),CZ6為觸摸屏連接口。
4 程序設(shè)計(jì)
本文的驅(qū)動(dòng)程序以上面所設(shè)計(jì)的硬件為基礎(chǔ)。TSC2046的驅(qū)動(dòng)程序通過標(biāo)準(zhǔn)SPI(Serial Peripheral Interface)協(xié)議和LPC2132通信。當(dāng)觸摸屏被按下(即有觸摸事件發(fā)生)時(shí),則TSC2046通過PENIRQ中斷引腳向LPC2132發(fā)中斷請(qǐng)求。LPC2132接到請(qǐng)求后,應(yīng)延時(shí)一下再響應(yīng)其請(qǐng)求,目的是為了消除抖動(dòng)使得采樣更準(zhǔn)確。也可以嘗試3次采樣取最后一次結(jié)果為準(zhǔn),目的也是為了消除抖動(dòng)。LPC2132驅(qū)動(dòng)觸摸屏工作的程序流程如圖4所示。
[!--empirenews.page--]
采用中斷方式處理來自TSC2046的PENIRQ中斷引腳的中斷申請(qǐng),在主程序中要設(shè)置相應(yīng)的中斷源。在實(shí)際應(yīng)用中,采用查詢PENIRQ中斷引腳電平的方式,比較節(jié)省系統(tǒng)資源。
根據(jù)TSC2046的Datasheet,TSC2046的控制字及數(shù)據(jù)傳輸格式見表1。選擇控制字如下:0x94,即從觸摸屏的“X+”引腳得到Y(jié)坐標(biāo)的AD值;0xe4,從觸摸屏的“Y+”引腳得到X坐標(biāo)的AD值。
觸摸屏的相關(guān)驅(qū)動(dòng)程序如下:
5 結(jié)語
本文以ARM處理器的LPC2132芯片和TSC2046觸摸屏控制器為硬件平臺(tái),設(shè)計(jì)了嵌入式系統(tǒng)觸摸屏交互功能模塊,此方法已經(jīng)在實(shí)際項(xiàng)目中應(yīng)用,觸摸響應(yīng)效果良好。