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