你的位置:首頁 > 傳感技術(shù) > 正文

四線電阻式觸摸屏控制器的應(yīng)用研究

發(fā)布時間:2011-01-10 來源:桂林電子科技大學(xué)

 

 

中心議題:
  • 四線電阻式觸摸屏控制器設(shè)計
解決方案:
  • 硬件組成電路介紹
  • 接口電路介紹
  • 觸摸屏坐標(biāo)讀取的軟件設(shè)計介紹

摘要:介紹以C8051為核心的觸摸屏控制系統(tǒng)的設(shè)計,分析了在系統(tǒng)設(shè)計過程中出現(xiàn)的干擾信號、測量值偏差和信號采集中延時時間的設(shè)定不當(dāng)?shù)葐栴}以及它們對系統(tǒng)控制效果的影響,并給出了解決方法。

 

 

 

 

1  引言

ADS7843是一種四線式觸摸屏控制器,目前較多應(yīng)用于電阻式觸摸屏輸入系統(tǒng)中。盡管有很多相關(guān)的典型應(yīng)用和應(yīng)用注意事項,但是在實際使用過程中仍然會遇到一些問題。應(yīng)用在通用的單片機中所出現(xiàn)的問題及解決方法,已有一些介紹。本文是對基于高速、流水線結(jié)構(gòu)的 C8051的觸摸屏控制系統(tǒng)設(shè)計中所遇到的問題進行分析處理并給出了解決方法。

 

2  液晶觸摸屏的系統(tǒng)設(shè)計

2.1  硬件組成

采用典型的四線電阻式觸摸屏,其主要特點是精確度高,不受環(huán)境干擾,適用于各種場合。控制器為四線電阻式觸摸屏通用的 ADS7843控制芯片具有 12位轉(zhuǎn)換精度,支持 SPI通訊協(xié)議內(nèi)建 512KByt e ROM,提供繁體或簡體中文,支持 2 Page顯示模式支持文本顯示和圖形顯示 (320×240點 )兩種方式,顯示模塊內(nèi)建有 512KByt e的 16× 16中文顯示字型 ROM(FontROM)與 8× 6的 A SCI I半型字型,除內(nèi)建 8× 16和 16× 16的字號外,還提供字型放大的功能。

 

單片機采用 Cygnal的 C8051F020,高速、 流水線結(jié)構(gòu)的 C8051兼容的 CIP - 51內(nèi)核64K字節(jié)的 FLA SH,4K +256字節(jié)的 RAM, 12位的 AD轉(zhuǎn)換精度,硬件實現(xiàn)的 SPI、 S MBus/I2C接口5個通用的 16位定時器。70%的指令執(zhí)行時間為一個或兩個系統(tǒng)周期。

 

2 . 2  接口電路

如圖 1。ADS7843串行接口的一次完整操作需要 3× 8=24個 DCL K時鐘周期,前 8個脈沖接收 8位的命令,并在第 6個脈沖的上升沿開始 A / D轉(zhuǎn)換器進入采樣階段,從第 9個脈沖開始進入轉(zhuǎn)換階段,輸出12位采樣值,轉(zhuǎn)換結(jié)束進入空閑階段直到 24DCL K結(jié)束,CS置高電平一次測量結(jié)束。如圖 2所示。此外ADS7843還支持其他的工作方式,這里不再詳述。


 

 

2 . 3  工作原理

當(dāng)用戶在觸摸屏上的有效區(qū)域內(nèi)點擊時,觸摸屏的 X方向、 Y方向輸出電阻分別隨 X和 Y呈線性變化,ADS7843控制器將其分別轉(zhuǎn)換為 12位數(shù)據(jù),通過中斷告知 C8051F020需要接收數(shù)據(jù),C8051F020接收到數(shù)據(jù)后進行處理;首先進行觸點數(shù)據(jù)是否有效判斷,包括兩方面一是判斷是否誤操作,即是否是由于人的抖動產(chǎn)生的錯誤數(shù)據(jù);二是 ADS7843傳過來得數(shù)據(jù)是否有效由于剛開始的傳過來的第一個坐標(biāo)是用戶開始接觸觸摸屏?xí)r產(chǎn)生的,電阻不準(zhǔn)確,導(dǎo)致數(shù)據(jù)也不準(zhǔn),通常要去掉在接收過程中采用多次平均的方法,假如有一次接收的數(shù)據(jù)和平均值差別很大,則這次測量就作廢,需要重新測量。一旦數(shù)據(jù)有效,C8051F020接著計算觸點坐標(biāo)落在液晶屏的位置,根據(jù)計算的結(jié)果判斷執(zhí)行相應(yīng)的功能函數(shù)。使觸摸屏和液晶屏有機的結(jié)合起來建立一定的邏輯關(guān)系,交互地進行信息存取和輸出。[page]

 

2 . 4  觸摸屏坐標(biāo)讀取的軟件流程

 

 

3  設(shè)計中出現(xiàn)的問題及解決方法

3 . 1  干擾信號

在測試時,手指或觸摸筆觸摸時會產(chǎn)生一定的干擾信號,干擾情況分為兩種 (1)通過中斷管腳會一直向 C8051F020發(fā)出中斷請求。解決方法中斷信號接緩沖器然后將輸出管腳接 1 μF的鉭電容,濾除中斷干擾信號。 (2) ADS7843輸出值不穩(wěn)定。解決方法在 X +、 Y +管腳上連接 15pF鉭電容濾波。經(jīng)過測試驗證,問題解決良好。連接電路見圖 1。

 

3 . 2 ADS7843的測量值偏差

當(dāng)有觸摸動作時,觸摸點電阻膜會抖動或錯誤觸發(fā),解決方法先延時以消除抖動,采樣 16,去掉采樣的最先兩個值和最后兩個值,利用軟件濾波,去除采樣中的抖動造成的偏差和誤觸發(fā)。利用中間連續(xù)采樣的 12次值,從采樣的第 3次值到第 14個值,求出每次相鄰兩次采樣值之差求和后取平均值與預(yù)設(shè)值相比較,如果大于預(yù)設(shè)值,則此觸摸動作無效小于預(yù)設(shè)值則把采集數(shù)據(jù)的最小 6個差值對應(yīng)的數(shù)據(jù)求平均值作為坐標(biāo)值。可以消除抖動和誤觸發(fā)的無效值,得到的坐標(biāo)采樣值精確度較高,相對于其他的濾波算法,該方法最優(yōu)

 

3 . 3  信號采集中的延時時間設(shè)定

因為 C8051F020的速度是普通 51芯片的 12,ADS7843在進行數(shù)據(jù)采集時時鐘信號高低電平持續(xù)的時間必須足夠,方可保證能采集到坐標(biāo)值。測試中發(fā)現(xiàn),在高低電平后延遲 4“_n op_( )  ” 空指令時,觸摸 X坐標(biāo)線可以采集到 X值坐標(biāo),且有起始點,坐標(biāo)值有線性變化;觸摸 Y坐標(biāo)時,采集到的 Y坐標(biāo)值無起始點,在觸摸屏上的 Y坐標(biāo)上的值相差無幾,幾乎沒有變化。將延時指令由原來的 4“_nop_( )  ”改為 16,發(fā)現(xiàn)測試結(jié)果正常能同時讀出 X、 Y值坐標(biāo),且兩坐標(biāo)值均有起始點且線性變化。因此,在信號采集程序中,將時鐘信號的延遲時間改為 16“_n op_( ) ; ” 。例程如下

void Ext _int 0( ) int err upt0

{ // 關(guān)中斷

// 延時以消除抖動

// 去除初次不穩(wěn)定值,軟件濾波

// 以下程序為多次循環(huán)讀取多組 X、 Y坐標(biāo)值

Whit e Char T07843(0X90)   // 送控制字

While(BUSYT) ; // 判忙

DCL K =1; _nop_( )  _nop_( ) ; _nop_( ) ; _nop_( ) 

_nop_( ) ; _nop_( ) ; _nop_( ) ; _nop_( ) ;

_nop_( )  _nop_( ) ; _nop_( ) ; _nop_( ) ;

_nop_( ) ; _nop_( ) ; _nop_( )  _nop_( ) ;

// 時鐘信號足夠時間來讀取坐標(biāo)值

DCL K =0; _nop_( )  _nop_( ) ; _nop_( ) ; _nop_( ) ;

_nop_( ) ; _nop_( ) ; _nop_( ) ; _nop_( ) ;

_nop_( ) ; _nop_( )  _nop_( ) ; _nop_( ) ;

_nop_( ) ; _nop_( )  _nop_( ) ; _nop_( ) 

// 時鐘信號足夠時間來讀取坐標(biāo)值

X_pos[ r] =ReadFr omChar Fr om7843( ) ;  // 讀 X

// 以下為讀取坐標(biāo) Y值;

Whit e Char T07843(0XD0) ;

// 下同讀取 X值程序

// C80 51F0 20讀取 ADS7843的 AD轉(zhuǎn)換值

// 關(guān)中斷,延時

// 開中斷 }

 

4  結(jié)束語

經(jīng)過反復(fù)測試后得出在系統(tǒng)控制中所產(chǎn)生的問題均被解決,觸摸屏上每個設(shè)定的觸摸鍵反應(yīng)都很靈敏,在觸摸鍵的有效區(qū)域內(nèi)都有反應(yīng)。


特別推薦
技術(shù)文章更多>>
技術(shù)白皮書下載更多>>
熱門搜索
?

關(guān)閉

?

關(guān)閉