摘要:典型
觸摸屏的工作部分一般由三部分組成,如圖1所示:兩層透明的阻性導(dǎo)體層、兩層導(dǎo)體之間的隔離層、電極。阻性導(dǎo)體層選用阻性材料,如銦錫氧化物(ITO)涂在襯底上構(gòu)成,上層襯底用塑料,下層襯底用玻璃。隔離層為粘性絕緣液體材料,如聚脂薄膜。電極選用導(dǎo)電性能*的材料(如銀粉墨)構(gòu)成,其導(dǎo)電性能大約為ITO的1000倍。本文介紹了觸摸屏的工作原理與應(yīng)用,供大家了解。
1、觸摸屏的基本原理
典型觸摸屏的工作部分一般由三部分組成,如圖1所示:兩層透明的阻性導(dǎo)體層、兩層導(dǎo)體之間的隔離層、電極。阻性導(dǎo)體層選用阻性材料,如銦錫氧化物(ITO)涂在襯底上構(gòu)成,上層襯底用塑料,下層襯底用玻璃。隔離層為粘性絕緣液體材料,如聚脂薄膜。電極選用導(dǎo)電性能*的材料(如銀粉墨)構(gòu)成,其導(dǎo)電性能大約為ITO的1000倍。
觸摸屏工作時(shí),上下導(dǎo)體層相當(dāng)于電阻網(wǎng)絡(luò),如圖2所示。當(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)處的電壓,從而知道Y坐標(biāo)。
2、觸摸屏的控制實(shí)現(xiàn)
現(xiàn)在很多PDA應(yīng)用中,將觸摸屏作為一個(gè)輸入設(shè)備,對(duì)觸摸屏的控制也有專門的芯片。很顯然,觸摸屏的控制芯片要完成兩件事情:其一,是完成電極電壓的切換;其二,是采集接觸點(diǎn)處的電壓值(即A/D)。本文以BB(Burr-Brown)公司生產(chǎn)的芯片ADS7843為例,介紹觸摸屏控制的實(shí)現(xiàn)。
2.1ADS7843的基本特性與典型應(yīng)用
ADS7843是一個(gè)內(nèi)置12位模數(shù)轉(zhuǎn)換、低導(dǎo)通電阻模擬開關(guān)的串行接口芯片。供電電壓2.7~5V,參考電壓VREF為1V~+VCC,轉(zhuǎn)換電壓的輸入范圍為0~VREF,zui高轉(zhuǎn)換速率為125kHz。ADS7843的引腳配置如圖3所示。表1為引腳功能說(shuō)明,圖4為典型應(yīng)用。
2.2ADS7843的內(nèi)部結(jié)構(gòu)及參考電壓模式選擇
ADS7843之所以能實(shí)現(xiàn)對(duì)觸摸屏的控制,是因?yàn)槠鋬?nèi)部結(jié)構(gòu)很容易實(shí)現(xiàn)電極電壓的切換,并能進(jìn)行快速A/D轉(zhuǎn)換。圖5所示為其內(nèi)部結(jié)構(gòu),A2~A0和SER/為控制寄存器中的控制位,用來(lái)進(jìn)行開關(guān)切換和參考電壓的選擇。
ADS7843支持兩種參考電壓輸入模式:一種是參考電壓固定為VREF,另一種采取差動(dòng)模式,參考電壓來(lái)自驅(qū)動(dòng)電極。這兩種模式分別如圖6(a)、(b)所示。采用圖6(b)的差動(dòng)模式可以消除開關(guān)導(dǎo)通壓降帶來(lái)的影響。表2和表3為兩種參考電壓輸入模式所對(duì)應(yīng)的內(nèi)部開關(guān)狀況。
2.3ADS7843的控制字及數(shù)據(jù)傳輸格式
ADS7843的控制字如表4所列,其中S為數(shù)據(jù)傳輸起始標(biāo)志位,該位必為"1"。A2~A0進(jìn)行通道選擇(見(jiàn)表2和3)。
MODE用來(lái)選擇A/D轉(zhuǎn)換的精度,"1"選擇8位,"0"選擇12位。
SER/選擇參考電壓的輸入模式(見(jiàn)表2和3)。PD1、PD0選擇省電模式:
"00"省電模式允許,在兩次A/D轉(zhuǎn)換之間掉電,且中斷允許;
"01"同"00",只是不允許中斷;
"10"保留;
"11"禁止省電模式。
為了完成一次電極電壓切換和A/D轉(zhuǎn)換,需要先通過(guò)串口往ADS7843發(fā)送控制字,轉(zhuǎn)換完成后再通過(guò)串口讀出電壓轉(zhuǎn)換值。標(biāo)準(zhǔn)的一次轉(zhuǎn)換需要24個(gè)時(shí)鐘周期,如圖7所示。由于串口支持雙向同時(shí)進(jìn)行傳送,并且在一次讀數(shù)與下一次發(fā)控制字之間可以重疊,所以轉(zhuǎn)換速率可以提高到每次16個(gè)時(shí)鐘周期,如圖8所示。如果條件允許,CPU可以產(chǎn)生15個(gè)CLK的話(比如FPGAs和ASICs),轉(zhuǎn)換速率還可以提高到每次15個(gè)時(shí)鐘周期,如圖9所示。
2.4A/D轉(zhuǎn)換時(shí)序的程序設(shè)計(jì)
ADS7843的典型應(yīng)用如圖4所示。假設(shè)μP接口與51單片機(jī)的P1.3~P1.7相連,現(xiàn)以一次轉(zhuǎn)換需24個(gè)時(shí)鐘周期為例,介紹A/D轉(zhuǎn)換時(shí)序的程序設(shè)計(jì)。
;A/D接口控制線
DCLKBITP1.3
CSBITP1.4
DINBITP1.5
BUSYBITP1.6
DOUTBITP1.7
;A/D通道選擇命令字和工作寄存器
CHXEQU094H;通道X+的選擇控制字
CHYEQU0D4H;通道Y+的選擇控制字
CH3EQU0A4H
CH4EQU0E4H
AD_CHEQU35H;通道選擇寄存器
AD_RESULTHEQU36H;存放12bitA/D值
AD_RESULTLEQU37H
;存放通道CHX+的A/D值
CHXAdResultHEQU38H
CHXAdResultLEQU39H
;存放通道CHY+的A/D值
CHYAdResultHEQU3AH
CHYAdResultLEQU3BH
;采集通道CHX+的程序段(CHXAD)
CHXAD:MOVAD_CH,#CHX
LCALLAD_RUN
MOVCHXAdResultH,AD_RESULTH
MOVCHXAdResultL,AD_RESULTL
RET
;采集通道CHY+的程序段(CHYAD)
CHYAD:MOVAD_CH,#CHY
LCALLAD_RUN
MOVCHYAdResultH,AD_RESULTH
MOVCHYAdResultL,AD_RESULTL
RET
;A/D轉(zhuǎn)換子程序(AD_RUN)
;輸入:AD_CH-模式和通道選擇命令字
;輸出:AD_RESULTH,L;12bit的A/D轉(zhuǎn)換值
;使用:R2;輔助工作寄存器
AD_RUN:
CLRCS;芯片允許
CLRDCLK
MOVR2,#8;先寫8bit命令字
MOVA,AD_CH
AD_LOOP:
MOVC,ACC.7
MOVDIN,C;時(shí)鐘上升沿鎖存DIN
SETBDCLK;開始發(fā)送命令字
CLRDCLK;時(shí)鐘脈沖,一共24個(gè)
RLA
DJNZR2,AD_LOOP
NOP
NOP
NOP
NOP
ADW0:JNBBUSY,AD_WAIT;等待轉(zhuǎn)換完成
SJMPADW1
AD_WAIT:
LCALLWATCHDOG
NOP
SJMPADW0
CLRDIN
ADW1:MOVR2,#12;開始讀取12bit結(jié)果
SETBDCLK
CLRDCLK
AD_READ:
SETBDCLK
CLRDCLK;用時(shí)鐘的下降沿讀取
MOVA,AD_RESULTL
MOVC,DOUT
RLCA
MOVAD_RESULTL,A
MOVA,AD_RESULTH
RLCA
MOVAD_RESULTH,A
DJNZR2,AD_READ
MOVR2,#4;zui后是沒(méi)用的4個(gè)時(shí)鐘
IGNORE:
SETBDCLK
CLRDCLK
DJNZR2,IGNORE
SETBCS;禁止芯片
ANLAD_RESULTH,#0FH;屏蔽高4bit
RET
2./D轉(zhuǎn)換結(jié)果的數(shù)據(jù)格式
ADS7843轉(zhuǎn)換結(jié)果為二進(jìn)制格式。需要說(shuō)明的是,在進(jìn)行公式計(jì)算時(shí),參考電壓在兩種輸入模式中是不一樣的。而且,如果選取8位的轉(zhuǎn)換精度,1LSB=VREF/256,一次轉(zhuǎn)換完成時(shí)間可以提前4個(gè)時(shí)鐘周期,此時(shí)串口時(shí)鐘速率也可以提高一倍。
3、結(jié)束語(yǔ)
在許多嵌入式系統(tǒng)中,CPU提供專門的模塊來(lái)支持液晶顯示和觸摸屏的輸入,使得接口非常簡(jiǎn)單。比如,MOTOROLA的MC68VZ328(稱為DragonBall)就提供專門的引腳來(lái)支持8位和4位的液晶顯示,對(duì)觸摸屏的支持通過(guò)SPI2借助ADS7843也很容易完成。