湘潭大學(xué)信息工程學(xué)院 韓建超 朱耀文 李春曉 陳 果 倪能聰 熊彬彬
基于ADS7843的四線式電阻屏驅(qū)動(dòng)設(shè)計(jì)
湘潭大學(xué)信息工程學(xué)院 韓建超 朱耀文 李春曉 陳 果 倪能聰 熊彬彬
四線式電阻屏在現(xiàn)代電子設(shè)備中廣泛應(yīng)用。傳統(tǒng)的驅(qū)動(dòng)方法為CPU直接驅(qū)動(dòng),占用CPU的I/O資源較多,控制復(fù)雜且不穩(wěn)定。設(shè)計(jì)的基于ADS7843的四線式電阻屏驅(qū)動(dòng), CPU只需通過(guò)串口向驅(qū)動(dòng)芯片發(fā)出控制指令即可實(shí)現(xiàn)控制效果,占用CPU資源較少,通信效果穩(wěn)定。以51單片機(jī)作為控制CPU進(jìn)行實(shí)驗(yàn)驗(yàn)證,結(jié)果證明了驅(qū)動(dòng)電路及程序的可靠性。該驅(qū)動(dòng)電路簡(jiǎn)單有效易于實(shí)現(xiàn),程序可靠便于移植,有一定的實(shí)用價(jià)值。
ADS7843;四線式電阻屏;驅(qū)動(dòng)電路;51單片機(jī);驅(qū)動(dòng)程序
在現(xiàn)代電子產(chǎn)品及工業(yè)產(chǎn)品的設(shè)計(jì)中,電阻式觸摸屏具有輕便小巧、功能可靠、堅(jiān)固耐用等優(yōu)點(diǎn)得到廣泛的應(yīng)用。尤其是其價(jià)格低廉、穩(wěn)定性好、精度高、不受灰塵油污等影響的優(yōu)勢(shì)使其在工業(yè)觸摸設(shè)備中占到很大的市場(chǎng)份額。文章主要介紹四線電阻式觸摸屏的結(jié)構(gòu),及基于ADS7843的驅(qū)動(dòng)電路和程序設(shè)計(jì),并以51單片機(jī)作為控制CPU進(jìn)行實(shí)驗(yàn)驗(yàn)證。
1.1 電阻屏基本結(jié)構(gòu)
四線式電阻屏的基本結(jié)構(gòu)是在一塊以玻璃或丙烯酸為材料的基板上覆蓋兩層平整透明、均勻?qū)щ姷腎TO(導(dǎo)電玻璃)層;這兩層ITO分別作為X(坐標(biāo))電極和Y(坐標(biāo))電極,他們被均勻排列的絕緣透明格點(diǎn)分開。其中下層的ITO附著在基板,上層的ITO附著在PET薄膜上。從X電極和Y電極的兩端引出的 “導(dǎo)電條”分別作為電極的正負(fù)極,且兩根導(dǎo)電條的位置相互垂直。引出端一共有X-,X+,Y-,Y+四條線,這就是四線電阻屏名稱的由來(lái)。當(dāng)在觸摸屏表面用物體觸碰或?qū)ζ涫┘舆m當(dāng)?shù)膲毫r(shí),發(fā)生可恢復(fù)性形變的上層ITO導(dǎo)電層將與下層ITO產(chǎn)生接觸。再由ADC(模數(shù)轉(zhuǎn)換器)將測(cè)得的電壓轉(zhuǎn)化為數(shù)字信號(hào),經(jīng)過(guò)算法處理就能得到觸點(diǎn)的坐標(biāo)也即觸點(diǎn)的實(shí)際位置。電阻式觸摸屏的結(jié)構(gòu)如圖1所示。
1.2 觸點(diǎn)坐標(biāo)計(jì)算
觸摸屏控制的關(guān)鍵即是觸點(diǎn)坐標(biāo)的計(jì)算,觸點(diǎn)感受的壓力信號(hào)轉(zhuǎn)換成模擬量電信號(hào),轉(zhuǎn)化之后以數(shù)字量形式進(jìn)入控制器,進(jìn)行計(jì)算。計(jì)算觸點(diǎn)坐標(biāo)(X,Y)主要有以下兩步:
首先是計(jì)算Y坐標(biāo),給Y+電極施加驅(qū)動(dòng)電壓信號(hào)Vd,同時(shí)將Y-電極接地;將X+電極引出作為測(cè)量點(diǎn),從而得到接觸點(diǎn)實(shí)際電壓值。由于ITO層是均勻?qū)щ姷?觸點(diǎn)電壓與驅(qū)動(dòng)電壓Vd之比和觸點(diǎn)Y坐標(biāo)與屏幕高度之比相等。
圖1 電阻式觸摸屏結(jié)構(gòu)
計(jì)算X坐標(biāo),的步驟與計(jì)算Y坐標(biāo)相同,只需將X對(duì)應(yīng)的點(diǎn)擊進(jìn)行操作即可。坐標(biāo)計(jì)算的等效原理圖如圖2所示。
式中:H為屏幕高度,W為屏幕寬度。
圖2 電阻屏坐標(biāo)計(jì)算等效原理圖
2.1 電阻屏驅(qū)動(dòng)電路
ADS7843是一款具有同步串行接口取樣功能的12位數(shù)模轉(zhuǎn)換芯片,常被用于四線電阻式觸摸屏的驅(qū)動(dòng)電路中。在2.7V電壓下以125KHz的頻率進(jìn)行工作時(shí),其功耗僅為750uW,關(guān)閉模式下功耗更低。因?yàn)楣男⌒⌒矢哌\(yùn)行穩(wěn)定,ADS7843在PAD、手機(jī)等以電池供電的小型手持設(shè)備中得到了廣泛的應(yīng)用。
ADS7843是能夠連續(xù)近似記錄(SAR)的A/D轉(zhuǎn)換器,可通過(guò)連結(jié)觸摸屏X+觸摸信號(hào)輸入到A/D轉(zhuǎn)換器。同時(shí)將Y+和Y-的驅(qū)動(dòng)打開,然后將X+的電壓數(shù)字化,經(jīng)過(guò)計(jì)算便可得到Y(jié)位置的坐標(biāo)測(cè)量結(jié)果。據(jù)此也可將X方向的坐標(biāo)計(jì)算出來(lái)。ADS7843驅(qū)動(dòng)四線式電阻屏的接口電路如圖3所示。
圖3 ADS7843接口電路
2.2 驅(qū)動(dòng)程序設(shè)計(jì)
經(jīng)過(guò)ADS7843芯片轉(zhuǎn)換得到的輸出結(jié)果是二進(jìn)制格式的。ADS7843支持參考電壓固定模式和采取差動(dòng)模式,參考電壓來(lái)自驅(qū)動(dòng)電極。需要說(shuō)明一點(diǎn),進(jìn)行數(shù)制換算的結(jié)果,在兩種不同參考電壓輸入模式中是不一樣的。如果選取8位的轉(zhuǎn)換精度,(為參考電壓),完成一次轉(zhuǎn)換的時(shí)間可以提前4個(gè)時(shí)鐘周期,同時(shí)也可以將串口時(shí)鐘的速率提高一倍。
一次電極電壓切換和A/D轉(zhuǎn)換的實(shí)現(xiàn),需要CPU先通過(guò)串口向ADS7843發(fā)送控制字(表1為ADS7843的控制字);等待轉(zhuǎn)換結(jié)束,再通過(guò)串口將電壓轉(zhuǎn)換值讀出。一次標(biāo)準(zhǔn)的電壓切換和A/D轉(zhuǎn)換需要24個(gè)時(shí)鐘周期。
表1 ADS7843的控制字
ADS7843的典型接口應(yīng)用電路如圖3所示,該電路可以方便的與單片機(jī)等微控制器相連接,實(shí)現(xiàn)觸摸屏的驅(qū)動(dòng)控制。假設(shè)接口與51單片機(jī)的普通I/O口相連,下面以24個(gè)時(shí)鐘周期為完成一次轉(zhuǎn)換的周期為例介紹電壓切換和A/D轉(zhuǎn)換過(guò)程控制程序的設(shè)計(jì)。程序流程框圖如圖4所示。
在Keil軟件中,以C語(yǔ)言格式編寫的控制程序如下:
// ADS7843啟動(dòng)
void ADS7843_start(void)
{DCLK=0;CS=1;DIN=1;CS=0;}
// ADS7843寫數(shù)據(jù)
void ADS7843_wr(uchar dat)
{uchar count;DCLK=0;
for(count=0;count<8;count++)
{dat<<=1;DIN=CY;
DCLK=0;_nop_();_nop_();_nop_();_nop_();
DCLK=1;_nop_();_nop_();_nop_();_nop_(); }}
// ADS7843讀數(shù)據(jù)
uint ADS7843_rd(void)
{uchar count=0;uint date=0;
for(count=0;count<12;count++)
{date<<=1;
DCLK=1;_nop_();_nop_();_nop_();_nop_(); DCLK= 0;_nop_();_nop_();_nop_();_nop_();
if(DOUT==1) date++;}return(date);}
//外中斷0中斷服務(wù)函數(shù)
void intr0_int() interrupt 0 usinG 2
{uint X=0,Y=0,i;uchar a[4],b[4];uchar buf[10];
EA=0; //關(guān)中斷
delay_ms(1); //中斷延時(shí)以消抖
if(!PENIRQ) //判斷終端標(biāo)志位
{ADS7843_start();delay_ms(1);
//送控制字,以差分方式讀X坐標(biāo)
ADS7843_wr(0xD0);
DCLK=0; _nop_();_nop_();_nop_();_nop_();
X=ADS7843_rd(); //讀X軸坐標(biāo)
for(i=0;i++;i<4){
DCLK=1;_nop_();_nop_();_nop_();
DCLK=0;_nop_();_nop_();_nop_();}
}EA=1; //開中斷 }
/*程序至此讀取X坐標(biāo)完成,將程序中*部分替換成相關(guān)程序段,可以讀Y坐標(biāo)。略。*/
圖4 軟件程序流程框圖
連接實(shí)物電路,將相關(guān)的程序燒寫到51單片機(jī)中進(jìn)行實(shí)驗(yàn),結(jié)果證實(shí)了該驅(qū)動(dòng)程序的可靠性。按照同樣的方法,將主要程序段移植到AVR單片機(jī)和ARM處理器中進(jìn)行實(shí)驗(yàn),也得到了很好的效果。本文介紹了一種基于ADS7843的四線式電阻屏驅(qū)動(dòng)電路,并詳細(xì)的介紹了驅(qū)動(dòng)程序的設(shè)計(jì)過(guò)程。該驅(qū)動(dòng)程序適用于AVR單片機(jī)、ARM等嵌入式設(shè)備,具有高度的可移植性,有實(shí)用價(jià)值。
[1]吳爽,趙永濱.基于ADS7846的四線電阻式觸屏接口設(shè)計(jì)[J].兵工自動(dòng)化,2010.
[2]郭天祥.新概念51單片機(jī)C語(yǔ)言教程[M].北京:電子工業(yè)出版社,2009.
[3]陳康才,李春茂.電阻式觸摸屏兩點(diǎn)觸摸原理[J].科學(xué)技術(shù)與工程,2012.
[4]王靜.基于單片機(jī)的數(shù)據(jù)串口通信[D].湖北荊州:長(zhǎng)江大學(xué),2013.