0 引言
隨著現(xiàn)代電子產(chǎn)品設(shè)計(jì)技術(shù)的不斷發(fā)展,,電子產(chǎn)品的設(shè)計(jì),尤其是人機(jī)交互界面的設(shè)計(jì)越來越趨向于人性化,。觸摸屏憑借其獨(dú)特的操作特性,,應(yīng)用日益廣泛,它配合微控制器使用,,能使嵌入式設(shè)備或手持式設(shè)備具有更加良好的人機(jī)交互界面,,操作更加方便快捷。本文給出了一個(gè)基于C8051F021單片機(jī)和ADS7846 觸摸屏控制器的觸摸屏控制系統(tǒng)的設(shè)計(jì)方法,。
1 觸摸屏工作原理
觸摸屏有電阻式,、電容式、紅外線式,、表面聲波式等多種,。其中電阻式觸摸屏是目前應(yīng)用較為廣泛的一種,可分為四線,、五線,、七線等幾類。其中四線制電阻式觸摸屏采用的是四線電阻模擬量技術(shù),,即兩個(gè)阻性層工作時(shí),,每層均加有5 V恒定電壓,一個(gè)豎直方向,,一個(gè)水平方向,,含四根導(dǎo)線;其特點(diǎn)主要是傳輸反應(yīng)快,解析度高,,穩(wěn)定性好,,一次校正,不易漂移,,比較適合于工業(yè)控制領(lǐng)域,,但使用時(shí)要注意防止外導(dǎo)電層被劃傷。
電阻式觸摸屏實(shí)際上是一種傳感器,,它采用分壓器原理將矩形區(qū)域中的觸摸點(diǎn)(X,,Y)的物理位置轉(zhuǎn)換為代表X坐標(biāo)和Y坐標(biāo)的電壓,圖1所示是其原理圖,。四線制觸摸屏一般包含兩個(gè)阻性層:其中一層在屏幕的左右邊緣各有一條垂直總線,,而另一層在屏幕的底部和頂部各有一條水平總線。為了在X軸方向進(jìn)行測量,,可將左側(cè)總線偏置為0 V,,右側(cè)總線偏置為VREF,并將頂部或底部總線連接到ADC,,這樣,,當(dāng)兩個(gè)阻性層相接觸時(shí)(即有觸摸時(shí))即可作一次測量;為了在Y軸方向進(jìn)行測量,,可將底部總線偏置為0 V,,頂部總線偏置為VREF,并將左側(cè)或右側(cè)總線連接到ADC,,這樣,,當(dāng)兩個(gè)阻性層相接觸時(shí),即可對電壓進(jìn)行測量,;該屏最理想的連接方法是將偏置為 VREF職的總線接在ADC的正參考輸入端,,而將偏置為OV的總線接在ADC的負(fù)參考輸入端。
2 系統(tǒng)的硬件設(shè)計(jì)與實(shí)現(xiàn)
2.1 C8051F021的主要功能特點(diǎn)
本系統(tǒng)選用性能優(yōu)良且成本較低的SOC單片機(jī)C8051F021作為控制核心,。它是完全集成的混合信號系統(tǒng)級MCU芯片,,具有32個(gè)數(shù)字I/O引腳。其主要的內(nèi)部資源有8通道12位ADC,,2通道12位DAC,,4 KB的RAM,64 KB的FLASH,,以及硬件實(shí)現(xiàn)的SPI,、SMBus/I2C和兩個(gè)UART串行接口,同時(shí)帶有時(shí)鐘振蕩器,,看門狗定時(shí)器,,VDD監(jiān)視器,,溫度傳感器等。其所有模擬和數(shù)字外設(shè)均可由IDE軟件使能/禁止和配置,。同時(shí),,它還采用了與8051兼容的CIP-51微控制器內(nèi)核,因采用流水線結(jié)構(gòu),,其指令執(zhí)行速度有了很大的提高,。此外,C8051F021還配置了標(biāo)準(zhǔn)的JTAG接口,,在IDE軟件的支持下,可對安裝在最終產(chǎn)品上的MCU進(jìn)行非侵入式,、全速,、在系統(tǒng)調(diào)試。該器件的封裝為TQFP-64,,可在工業(yè)溫度范圍內(nèi)(-45℃~+85℃)使用2.7~3.6 V的電壓工作,。
2.2 ADS7846的主要功能和特點(diǎn)
ADS7846是BB公司生產(chǎn)的一種四線制觸摸屏控制器??蓮V泛應(yīng)用在電阻式觸摸屏系統(tǒng)中,。ADS7846的核心是一個(gè)具有采樣和保持功能的12位逐次逼近式A/D轉(zhuǎn)換器,其轉(zhuǎn)換速率可達(dá)125kHz.且分辨率可編程為8位或12位,。該器件不僅具有X,、Y坐標(biāo)測量功能,還具有電池電壓,、芯片溫度,、觸摸壓力和外模擬量4種測量功能,其工作方式可由控制字決定,,片內(nèi)的6選1模擬多路開關(guān)可根據(jù)微控制器送來的命令字來選擇6個(gè)電壓量之一(X+,、Y+、Y-,、 VBAT,、TEMP、AUX-IN),,并將其送入A/D轉(zhuǎn)換器轉(zhuǎn)換,,然后再通過SPI接口將轉(zhuǎn)換值送入微控制器。此外,,ADS7846還集成有觸摸識(shí)別電路,,當(dāng)檢測到有觸摸時(shí),該電路會(huì)在PENIRQ(筆中斷)引腳輸出一個(gè)低電平信號,,并以該信號向微控制器提出測量觸點(diǎn)坐標(biāo)的中斷請求,。該芯片采用單電源供電,,工作電壓為2.2~5.25 V,且內(nèi)部自帶+2.5 V的參考電壓,。
2.3 C8051F021和ADS7846的硬件接口
基于C8051F021單片機(jī)和ADS7846觸摸屏控制器的觸摸屏控制系統(tǒng)的硬件接口電路如圖2所示,。
圖2中。TX+,、TX-,、TY+、TY-為位置輸入端,,分別對應(yīng)四線制電阻式觸摸屏的四線制接口:
BUSY為忙信號指示,,可在數(shù)據(jù)轉(zhuǎn)換時(shí)持續(xù)一個(gè)時(shí)鐘周期的高電平狀態(tài),當(dāng)TCS為高時(shí),,BUSY為高阻狀態(tài):
TCS為片選輸入,,只有當(dāng)TCS為低時(shí),串行數(shù)據(jù)才可以從DIN讀入,;
DIN為串行數(shù)據(jù)輸入,,在DCLK的上升沿讀入數(shù)據(jù);
DOUT為串行數(shù)據(jù)輸出,,用于輸出轉(zhuǎn)換后的觸摸點(diǎn)位置數(shù)據(jù),,12位工作方式下,其最大為4095,,可在DCLK的下降沿輸出數(shù)據(jù),,當(dāng)TCS為高時(shí),DOUT為高阻狀態(tài),;
DCLK為外部時(shí)鐘輸人引腳,,其輸入時(shí)鐘信號的頻率決定了電路的轉(zhuǎn)換速度,其推薦占空比為40%~60%,;
PENIRQ為筆中斷引腳,。工作時(shí)應(yīng)通過10~100 kΩ電阻器上拉,當(dāng)有觸摸事件發(fā)生時(shí),,可向微控制器申請中斷服務(wù),;
VREF為A/D參考電壓輸入;
TCS,、DCLK,、 DIN、 BUSY,、DOUT,、PENIRQ分別接C8051F021的P1.0、P1.1,、P1.2,、P1.3,、P1.4、PO.3,。另外,,IN3、IN4為兩個(gè)附屬A/D輸入通道,,本系統(tǒng)沒有用到,,使用時(shí)可將其接地。
3 系統(tǒng)軟件的設(shè)計(jì)與實(shí)現(xiàn)
ADS7846可通過片內(nèi)模擬多路開關(guān)的切換,,將X+/Y+端接VCC,,將X-/Y-端接地,并將X+/Y+和X-/Y-以差分形式接到A/D轉(zhuǎn)換器的輸入端,。這樣,,當(dāng)點(diǎn)擊觸摸屏的不同位置時(shí),輸入到A/D轉(zhuǎn)換器中的電壓就不相同,,然后再經(jīng)A/D轉(zhuǎn)換后,就可得到觸點(diǎn)的輸出值,,該輸出值與觸點(diǎn)的位置成近似線性關(guān)系,。ADS7846通過一般控制字來設(shè)置工作方式,其控制字如表1所列,。
在表1中,,S為數(shù)據(jù)傳輸起始標(biāo)志位,該位必為“1”,;A2~A0用于通道選擇,;MODE用來選擇A/D轉(zhuǎn)換精度: “1”選擇8位, “0”選擇12位,;SER/DFR選擇參考電壓的輸入模式,;PD1、PD0選擇省電模式: “00”為省電模式,,可在兩次A/D轉(zhuǎn)換之間掉電,,且允許中斷,而“01”同“00”相似,,但不允許中斷,; “10”為保留; “11”為禁止省電模式,。
ADS7846與C8051F021之間通過標(biāo)準(zhǔn)的SPI接口相連,。并由C8051F021啟動(dòng)3次SPI傳送來完成轉(zhuǎn)換。第1次SPI傳送由 C8051F021向ADS7846發(fā)送控制字,,含起始位,、通道選擇,、8/12位模式選擇、差分/單端選擇和掉電模式選擇,;后兩次SPI傳送則是 C8051F021讀取A/D轉(zhuǎn)換后的結(jié)果數(shù)據(jù),,至此便完成了ADS7846和C8051F021之間的一次通信。其數(shù)據(jù)傳送時(shí)序如圖3所示,。
本系統(tǒng)中的觸摸屏應(yīng)用流程圖如圖4所示,。
在編程過程中,通常應(yīng)該注意以下問題:
(1) C8051F021的初始化,,一般還會(huì)包括顯示模塊的初始化等,;
(2)DS7846的初始化,一般包括寄存器和筆中斷的初始化等,;
(3)防止抖動(dòng)和連擊,,通常需要加入消抖子程序和延時(shí)子程序;
(4)減小測量誤差,,往往應(yīng)采用多次測量并加入軟件濾波子程序,;
(5)觸摸屏與液晶屏的坐標(biāo)系不一致,還必須加入坐標(biāo)變換子程序,。
4 結(jié)束語
本文給出了一個(gè)基于C8051F021單片機(jī)和ADS7846觸摸屏控制器的觸摸屏控制系統(tǒng)的設(shè)計(jì)方法,。討論了在觸摸屏控制系統(tǒng)開發(fā)過程中的若干軟、硬件問題,。在工程實(shí)際中,,本系統(tǒng)經(jīng)過多次測試,效果良好,。