




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、2017屆結(jié)課論文嵌入式系統(tǒng)原理及應(yīng)用結(jié)課論文 學(xué)生姓名 艾力江 學(xué) 號(hào) 5021212126 所屬學(xué)院 信息工程學(xué)院 專(zhuān) 業(yè) 通信工程專(zhuān)業(yè) 班 級(jí) 通信17-1 塔里木大學(xué)教務(wù)處制目錄摘要 .11 前言 .11.1觸摸屏簡(jiǎn)介 .11.2系統(tǒng)組成原理 .21.3觸摸屏工作原理 .21.4 LCD觸摸屏的應(yīng)用及發(fā)展前景 .41.5 ARM嵌入式處理器 .42 系統(tǒng)整體方案設(shè)計(jì) .72.1 系統(tǒng)硬件及整體功能 .72.2 系統(tǒng)軟件設(shè)計(jì)方案的選擇 .72.3 硬件實(shí)現(xiàn)處理器的選擇 .82.4 外圍芯片的選擇 .92.5 硬件原理圖 .113. LCD觸摸屏軟件設(shè)計(jì) .163.1 界面的定制與顯示.1
2、63.2 觸摸屏信息的處理.163.3 主函數(shù)初始化 .164 分析驅(qū)動(dòng) .164.1 觸摸屏設(shè)備驅(qū)動(dòng)中數(shù)據(jù)結(jié)構(gòu) .164.2 觸摸屏驅(qū)動(dòng)模塊加載和卸載函數(shù) .174.3 觸摸屏設(shè)備驅(qū)動(dòng)的讀函數(shù) .184.4 觸摸屏設(shè)備驅(qū)動(dòng)的輪詢(xún)與異步通知 .185 結(jié)論 .19參考文獻(xiàn) .20基于嵌入式LCD的觸摸屏摘要: 如今LCD 觸摸屏應(yīng)用已成為生活中很常見(jiàn)的現(xiàn)象,通過(guò)利用這種裝置,改變了傳統(tǒng)的較為復(fù)雜呆板的機(jī)械人機(jī)交互方式。使得人際之間信息的交互變得簡(jiǎn)單,快捷,而且更具形象化。本文針對(duì)基于ARM系統(tǒng)LCD 觸摸屏設(shè)計(jì)的介紹,分析LCD觸摸屏的工作原理及硬件結(jié)構(gòu),然后進(jìn)一步開(kāi)發(fā)除了觸摸屏的驅(qū)動(dòng)程序。通
3、過(guò)軟硬件的結(jié)合,可以實(shí)現(xiàn)利用觸摸屏完成人際之間信息的交互,同時(shí)也可以將該設(shè)計(jì)運(yùn)用到同類(lèi)人機(jī)交互系統(tǒng)中縮短產(chǎn)品的開(kāi)發(fā)周期,降低產(chǎn)品的開(kāi)發(fā)成本。關(guān)鍵詞:LCD觸摸屏;ARM;人機(jī)交換系統(tǒng)1.前言隨著嵌進(jìn)式系統(tǒng)技術(shù)的飛速發(fā)展,產(chǎn)業(yè)設(shè)備產(chǎn)品也越來(lái)越現(xiàn)代化,普遍要求可視化,LCD觸摸屏低耗能散熱小,本錢(qián)低,纖薄輕巧,外形尺寸小,安裝輕易。使用LCD觸摸屏作為產(chǎn)業(yè)設(shè)備的輸進(jìn)輸出設(shè)備既能達(dá)到可視化的要求,方便現(xiàn)場(chǎng)操縱,又能降低產(chǎn)品的本錢(qián)。而在產(chǎn)品的整體設(shè)計(jì)過(guò)程中,人機(jī)交互界面的設(shè)計(jì)往往占據(jù)著很大一部分工作,這樣,不但極大地增加了產(chǎn)品的開(kāi)發(fā)本錢(qián)并且延長(zhǎng)了產(chǎn)品的上市周期。本文設(shè)計(jì)的基于S3C44BOX的人機(jī)交互
4、界面是一種可定制、簡(jiǎn)單易用、性能優(yōu)良的通用型人機(jī)交互界面,能很好地解決上述問(wèn)題。1.1 觸摸屏簡(jiǎn)介觸摸屏起源于20世紀(jì)70年代,早期多被裝于工控計(jì)算機(jī)、POS機(jī)終端等工業(yè)或商用設(shè)備之中。2007年P(guān)hone手機(jī)的推出,成為觸控行業(yè)發(fā)展的一個(gè)里程碑。蘋(píng)果公司把一部至少需要20個(gè)按鍵的移動(dòng)電話,設(shè)計(jì)得僅需三四個(gè)鍵就能搞定,剩余操作則全部交由觸控屏幕完成。除賦予了使用者更加直接、便捷的操作體驗(yàn)之外,還使手機(jī)的外形變得更加時(shí)尚輕薄,增加了人機(jī)直接互動(dòng)的親切感,引發(fā)消費(fèi)者的熱烈追捧,同時(shí)也開(kāi)啟了觸摸屏向主流操控界面邁進(jìn)的征程。觸摸屏(touch screen)又稱(chēng)為“觸控屏”“觸控面板”,是一種可接收觸
5、頭等輸入訊號(hào)的感應(yīng)式液晶顯示裝置,當(dāng)接觸了屏幕上的圖形按鈕時(shí),屏幕上的觸覺(jué)反饋系統(tǒng)可根據(jù)預(yù)先編程的程式驅(qū)動(dòng)各種連結(jié)裝置,可用以取代機(jī)械式的按鈕面板,并借由液晶顯示畫(huà)面制造出生動(dòng)的影音效果。觸摸屏作為一種最新的電腦輸入設(shè)備,它是目前最簡(jiǎn)單、方便、自然的一種人機(jī)交互方式。它賦予了多媒體以嶄新的面貌,是極富吸引力的全新多媒體交互設(shè)備。1.2系統(tǒng)組成原理 觸摸屏輸入系統(tǒng)由觸摸屏、觸摸屏控制器和微控制器三部分組成。圖1示出了一個(gè)實(shí)際的觸摸屏輸入系統(tǒng),在該系統(tǒng)中觸摸屏采用信利公司的四線電阻式觸摸屏,觸摸屏控制器采用BB公司的ADS7846,微控制器為Motorola MCORE系列的MMC2107。 圖1
6、 觸摸屏輸入系統(tǒng)的組成圖2觸摸屏的觸摸示意圖 1.3觸摸屏工作原理觸摸屏附著在顯示器的表面,與顯示器相配合使用,如果能測(cè)量出觸摸點(diǎn)在屏幕上的坐標(biāo)位置,則可根據(jù)顯示屏上對(duì)應(yīng)坐標(biāo)點(diǎn)的顯示內(nèi)容或圖符獲知觸摸者的意圖。觸摸屏按其技術(shù)原理可分為五類(lèi):矢量壓力傳感式、電阻式、電容式、紅外線式、表面聲波式,其中電阻式觸摸屏在嵌入式系統(tǒng)中用的較多。電阻觸摸屏是一塊4層的透明的復(fù)合薄膜屏,如圖2所示,最下面是玻璃或有機(jī)玻璃構(gòu)成的基層,最上面是一層外表面經(jīng)過(guò)硬化處理從而光滑防刮的塑料層,中間是兩層金屬導(dǎo)電層,分別在基層之上和塑料層內(nèi)表面,在兩導(dǎo)電層之間有許多細(xì)小的透明隔離點(diǎn)把它們隔開(kāi)。當(dāng)手指觸摸屏幕時(shí),兩導(dǎo)電層在
7、觸摸點(diǎn)處接觸。 觸摸屏的兩個(gè)金屬導(dǎo)電層是觸摸屏的兩個(gè)工作面,在每個(gè)工作面的兩端各涂有一條銀膠,稱(chēng)為該工作面的一對(duì)電極,若在一個(gè)工作面的電極對(duì)上施加電壓,則在該工作面上就會(huì)形成均勻連續(xù)的平行電壓分布。如圖1所示,當(dāng)在X方向的電極對(duì)上施加一確定的電壓,而Y方向電極對(duì)上不加電壓時(shí),在X平行電壓場(chǎng)中,觸點(diǎn)處的電壓值可以在Y+(或Y-)電極上反映出來(lái),通過(guò)測(cè)量Y+電極對(duì)地的電壓大小,便可得知觸點(diǎn)的X坐標(biāo)值。同理,當(dāng)在Y電極對(duì)上加電壓,而X電極對(duì)上不加電壓時(shí),通過(guò)測(cè)量X+電極的電壓,便可得知觸點(diǎn)的Y坐標(biāo)。電阻式觸摸屏有四線和五線兩種。四線式觸摸屏的X工作面和Y工作面分別加在兩個(gè)導(dǎo)電層上,共有四根引出線,分
8、別連到觸摸屏的X電極對(duì)和Y電極對(duì)上。五線式觸摸屏把X工作面和Y工作面都加在玻璃基層的導(dǎo)電涂層上,但工作時(shí),仍是分時(shí)加電壓的,即讓兩個(gè)方向的電壓場(chǎng)分時(shí)工作在同一工作面上,而外導(dǎo)電層則僅僅用來(lái)充當(dāng)導(dǎo)體和電壓測(cè)量電極。因此,五線式觸摸屏的引出線需為5根。觸摸屏接口工作模式: (1)普通轉(zhuǎn)換模式 普通轉(zhuǎn)換模式(AUTO_PST = 0,XY_PST = 0)是用作一般目的下的ADC轉(zhuǎn)換。這個(gè)模式可以通過(guò)設(shè)置ADCCON和ADCTSC來(lái)進(jìn)行對(duì)AD轉(zhuǎn)換的初始化;而后讀取ADCDAT0(ADC數(shù)據(jù)寄存器0)的XPDATA域(普通ADC轉(zhuǎn)換)的值來(lái)完成轉(zhuǎn)換。(2)分離的X/Y軸坐標(biāo)轉(zhuǎn)換模式:X軸坐標(biāo)轉(zhuǎn)換和Y軸
9、坐標(biāo)轉(zhuǎn)換。 X軸坐標(biāo)轉(zhuǎn)換(AUTO_PST=0且XY_PST=1)將X軸坐標(biāo)轉(zhuǎn)換數(shù)值寫(xiě)入到ADCDAT0寄存器的XPDATA域。轉(zhuǎn)換后,觸摸屏接口將產(chǎn)生中斷源(INT_ADC)到中斷控制器。 Y軸坐標(biāo)轉(zhuǎn)換(AUTO_PST=0且XY_PST=2)將X軸坐標(biāo)轉(zhuǎn)換數(shù)值寫(xiě)入到ADCDAT1寄存器的YPDATA域。轉(zhuǎn)換后,觸摸屏接口將產(chǎn)生中斷源(INT_ADC)到中斷控制器。 (3)自動(dòng)(連續(xù))X/Y軸坐標(biāo)轉(zhuǎn)換模式。 自動(dòng)(連續(xù))X/Y軸坐標(biāo)轉(zhuǎn)換模式(AUTO_PST=1且XY_PST= 0)以下面的步驟工作: 觸摸屏控制器將自動(dòng)地切換X軸坐標(biāo)和Y軸坐標(biāo)并讀取兩個(gè)坐標(biāo)軸方向上的坐標(biāo)。觸摸屏控制器自動(dòng)將
10、測(cè)量得到的X軸數(shù)據(jù)寫(xiě)入到ADCDAT0寄存器的XPDATA域,然后將測(cè)量到的Y軸數(shù)據(jù)到ADCDAT1的YPDATA域。自動(dòng)(連續(xù))轉(zhuǎn)換之后,觸摸屏控制器產(chǎn)生中斷源(INT_ADC)到中斷控制器。 (4)等待中斷模式 當(dāng)觸摸屏控制器處于等待中斷模式下時(shí),它實(shí)際上是在等待觸摸筆的點(diǎn)擊。在觸摸筆點(diǎn)擊到觸摸屏上時(shí),控制器產(chǎn)生中斷信號(hào)(INC_TC)。中斷產(chǎn)生后,就可以通過(guò)設(shè)置適當(dāng)?shù)霓D(zhuǎn)換模式(分離的X/Y軸坐標(biāo)轉(zhuǎn)換模式或自動(dòng)X/Y軸坐標(biāo)轉(zhuǎn)換模式)來(lái)讀取X和Y的位置。 (5)靜態(tài)(Standby)模式 當(dāng)ADCCON寄存器的STDBM位被設(shè)為1時(shí),Standby模式被激活。在該模式下,A/D轉(zhuǎn)換操作停止,
11、ADCDAT0寄存器的XPDATA域和ADCDAT1寄存器的YPDATA(正常ADC)域保持著先前轉(zhuǎn)換所得的值。 1.4 LCD觸摸屏的應(yīng)用及發(fā)展前景目前,觸摸屏應(yīng)用范圍正在變得越來(lái)越廣泛,從工業(yè)用途的工廠設(shè)備的控制/操作系統(tǒng)、公共信息查詢(xún)的電子查詢(xún)?cè)O(shè)施、商業(yè)用途的提款機(jī),到消費(fèi)性電子的移動(dòng)電話、PDA、數(shù)碼相機(jī)等都可看到觸控屏幕的身影。當(dāng)然,這其中應(yīng)用最為廣泛的仍是手機(jī)。2008年采用觸控式屏幕的手機(jī)出貨量將超過(guò)1億部,如今,安裝觸控界面的手機(jī)出貨量已超過(guò)5億部。而且有跡象表明,觸摸屏在消費(fèi)電子產(chǎn)品中的應(yīng)用范圍正從手機(jī)屏幕等小尺寸領(lǐng)域向具有更大屏腦拓展。目前,戴爾、惠普、富士通、華碩等一線筆
12、記本電腦品牌廠商都計(jì)劃推出具備觸摸屏的筆記本電腦或UMPC。由此可以看出,觸摸屏市場(chǎng)未來(lái)的發(fā)展前景也十分誘人。根據(jù)市場(chǎng)調(diào)研機(jī)構(gòu)的預(yù)測(cè),到2017年觸摸屏產(chǎn)值將達(dá)到239億美元。1.5 ARM嵌入式處理器RISC嵌入式處理器是目前高中端嵌入式設(shè)計(jì)和應(yīng)用的主流,現(xiàn)今比較流行的RISC處理器有PowerPC、MIPS和ARM。其中ARM嵌入式處理器以其小體積、低功耗、低成本和高性能等特點(diǎn)占據(jù)了業(yè)界領(lǐng)先地位,已經(jīng)成為一種事實(shí)上的標(biāo)準(zhǔn)。目前市場(chǎng)上常用的基于ARM體系結(jié)構(gòu)的通用嵌入式處理器系列有ARM7 和ARM9 系列。ARM7系列處理器包括ARM7TDMI、ARM7TDMI-S、ARM720T、ARM
13、7EJ 等幾種類(lèi)核是低功耗的32位RISC架構(gòu)處理器,三級(jí)流水線,主頻達(dá)到66MHz。ARM9系列處理器包括ARM920TDMI、ARM922T、ARM940T等幾種類(lèi)型的核,采用五級(jí)流水線,主頻達(dá)到533MHz。此外,ARM系列處理器還包括ARM9E、ARM10E和ARM11等幾個(gè)系列。SAMSUNG公司推出的一系列采用ARM處理器和微控制器的產(chǎn)品,性能良好,數(shù)據(jù)手冊(cè)豐富,配套應(yīng)用方案完善,因此迅速在通信產(chǎn)品民用市場(chǎng)上獲得了廣泛的應(yīng)用,在ARM 處理器產(chǎn)品中極具代表性。如ADS7846.(1)ADS7846觸摸屏控制器的工作原理 各種類(lèi)型的觸摸屏均有其相應(yīng)的控制器,如:ADS7846是四線式
14、觸摸屏的控制器,而ADS7845是五線式觸摸屏的控制器??刂破鞯闹饕δ苁欠謺r(shí)向X、Y電極對(duì)施加電壓,并把測(cè)量電極上的電壓信號(hào)轉(zhuǎn)換為相應(yīng)觸摸點(diǎn)的X、Y坐標(biāo)。(2)操作原理 ADS7846內(nèi)部有一個(gè)由多個(gè)模擬開(kāi)關(guān)組成的供電-測(cè)量電路網(wǎng)絡(luò)和12位的A/D轉(zhuǎn)換器(參見(jiàn)圖3)。ADS7846根據(jù)微控制器發(fā)來(lái)的不同測(cè)量命令導(dǎo)通不同的模擬開(kāi)關(guān),以便向工作面電極對(duì)提供電壓,并把相應(yīng)測(cè)量電極上的觸點(diǎn)坐標(biāo)位置所對(duì)應(yīng)的電壓模擬量引入A/D轉(zhuǎn)換器。在觸摸點(diǎn)X、Y坐標(biāo)的測(cè)量過(guò)程中,測(cè)量電壓與測(cè)量點(diǎn)的等效電路如圖4所示,圖中P為測(cè)量點(diǎn)。 圖3 ADS7846的功能框圖 圖4 測(cè)量關(guān)系 (3)數(shù)字接口 ADS7846與M
15、MC2107之間通過(guò)標(biāo)準(zhǔn)的SPI口相連,由MMC2107啟動(dòng)3次SPI傳送來(lái)完成轉(zhuǎn)換,如圖5所示。第一次SPI傳送由MMC2107向ADS846發(fā)控制字,包括起始位、通道選擇、8/12位模式、差分/單端選擇和掉電模式選擇,接下來(lái)的兩次SPI傳送則是MMC2107從ADS7846取A/D轉(zhuǎn)換結(jié)果數(shù)據(jù)(最后四位自動(dòng)補(bǔ)零),完成觸摸屏控制器和微控制器之間的一次通信。 圖5 轉(zhuǎn)換時(shí)序 (4)筆中斷(PENIRQ)輸出 ADS7846通過(guò)筆中斷請(qǐng)求向MMC2107表示有觸摸發(fā)生。如圖6所示,當(dāng)沒(méi)有觸摸時(shí),MOSFET和打開(kāi)、關(guān)閉,則筆中斷輸出引腳通過(guò)外加的上拉電阻輸出為高。當(dāng)有觸摸時(shí),和打開(kāi)、關(guān)閉,則筆
16、中斷輸出引腳通過(guò)內(nèi)部連接到地而輸出為低,從而向MMC2107提中斷請(qǐng)求。 圖6筆中斷請(qǐng)求 2.系統(tǒng)整體方案設(shè)計(jì)本系統(tǒng)采用LCD觸摸屏模塊OCMJ15x20D,配以相應(yīng)的外圍硬件,通過(guò)ARM芯片S3C44B0X對(duì)觸摸屏從外界采集的信息的處理,然后據(jù)此控制受控系統(tǒng),并給與觸摸屏信息確認(rèn)及輸出。2.1 系統(tǒng)硬件及整體功能系統(tǒng)硬件組成及整體功能系統(tǒng)主要包括三個(gè)部分,分別為PC機(jī)、S3C4480X微處理器和LCD觸摸屏模塊。該系統(tǒng)有三部分組成:PC機(jī),用于定制人機(jī)交互界面信息;S3C4480X處理器,用于控制觸摸模塊接收到的外界信息;LCD觸摸屏模塊,是直接參與人機(jī)交互的層面,通過(guò)它可以顯示出虛擬按鍵,
17、人們可以對(duì)其操作,然后配以處理器及外圍硬件的協(xié)同工作,達(dá)到完成對(duì)一起的控制目的。通過(guò)該系統(tǒng)可以給產(chǎn)業(yè)設(shè)備提供一個(gè)可視化的人機(jī)界面。來(lái)自PC機(jī)的定制好的界面信息存儲(chǔ)在ARM的FLASH存儲(chǔ)器內(nèi)。在應(yīng)用當(dāng)中,當(dāng)微處理器接收到觸摸屏按鍵信息時(shí),對(duì)產(chǎn)業(yè)設(shè)備進(jìn)行控制。同時(shí)微處理器也對(duì)LCD進(jìn)行界面的刷新,這樣以完成人機(jī)交互。 2.2 系統(tǒng)軟件設(shè)計(jì)方案的選擇為增強(qiáng)系統(tǒng)的穩(wěn)定性和可靠性,在軟件設(shè)計(jì)中將進(jìn)行操作系統(tǒng)(Operating System,OS)的移植,進(jìn)而對(duì)應(yīng)用程序進(jìn)行設(shè)計(jì)。嵌入式OS負(fù)責(zé)嵌入式系統(tǒng)全部軟、硬件資源的分配、調(diào)度,控制和協(xié)調(diào)各部件的工作,與普通OS相比,嵌入式OS在系統(tǒng)實(shí)時(shí)高效性、硬
18、件依賴(lài)性、軟件固化及應(yīng)用的專(zhuān)用性方面具有較為突出的特點(diǎn)。 嵌入式OS種類(lèi)繁多,大體上分為商用型和免費(fèi)型兩大塊,其中商用型功能穩(wěn)定、可靠,有完善的技術(shù)支持和售后服務(wù),但價(jià)格昂貴,典型的有VxWorks、WinCE等。免費(fèi)型的源代碼公開(kāi),性能也較良好,主要有嵌入式Linux和C/OS。隨著開(kāi)源軟件的迅速發(fā)展,Linux和C/OS已經(jīng)具有非常廣泛的應(yīng)用。基于良好的性?xún)r(jià)比,本文將采用uClinux作為觸摸屏終端的操作系統(tǒng)。uClinux是一種優(yōu)秀的嵌入式Linux版本,它秉承了標(biāo)準(zhǔn)Linux的優(yōu)良特性,是經(jīng)過(guò)各方面的小型化改造,形成的一個(gè)高度優(yōu)化的、代碼緊湊的嵌入式Linux。雖然它的體積很小,但性能
19、穩(wěn)定,有良好的移植性。在操作系統(tǒng)移植完成后,本文將結(jié)合觸摸屏終端所需實(shí)現(xiàn)的功能,給出其整體的軟件設(shè)計(jì)方案。2.3 硬件實(shí)現(xiàn)處理器的選擇本系統(tǒng)選擇三星公司基于ARM7TDMI的16/32位微處理器S3C44B0X。該芯片為手持設(shè)備以及一般嵌入式應(yīng)用提供了一個(gè)成本低廉、功能強(qiáng)大的微控制器解決方案。有豐富的內(nèi)置部件,包括:8KB cache,內(nèi)部SRAM,LCD控制器,帶自動(dòng)握手的2通道UART,4通道DMA,系統(tǒng)管理器(片選輯,F(xiàn)P/EDO/SDRAM 控制器),代用PWM功能的5通道定制器,I/O端口,RTC 8通道10位ADC,IIC-BUS接口,IIS-BUS接口,PLL倍頻器。S3C44B
20、0X內(nèi)部結(jié)構(gòu)圖S3C44B0X 內(nèi)部結(jié)構(gòu)如圖7所示:圖7 S3C44B0X內(nèi)部結(jié)構(gòu)圖 S3C44B0X引腳圖S3C44B0X引腳情況如圖8所示: 圖8 S3C44B0X引腳圖由于S3C44B0X引腳數(shù)量眾多,此處不再對(duì)其詳細(xì)說(shuō)明,有關(guān)各引腳功能可以參閱相關(guān)資料。2.4 外圍芯片的選擇根據(jù)功能要求,該系統(tǒng)還需配置其他外圍芯片,用于輔助完成要求功能。此處選用的外圍芯片為FM7843,不過(guò)它已被集成在觸摸屏模塊OCMJ15x20D中,它主要用來(lái)對(duì)觸摸點(diǎn)進(jìn)行檢測(cè),并把檢測(cè)到的信息送出轉(zhuǎn)換為相應(yīng)的坐標(biāo),以供S3C44BOX處理器讀取。下面對(duì)該芯片結(jié)構(gòu)及原理作簡(jiǎn)要介紹模塊FM7843是四線電阻式觸摸屏輸進(jìn)
21、控制芯片。它是一款具有同步串行接口的12位采樣模數(shù)轉(zhuǎn)換器。在125kHz吞吐速率和2.7V電壓下的功耗為750W而在封閉模式下的功耗僅為0.5W。它具有低功耗和高速等特性,因此被廣泛應(yīng)用。引腳X+、Y+、X-、Y-是轉(zhuǎn)換器模擬輸進(jìn)端,DCLK是外部時(shí)鐘輸進(jìn);CS是片選端:DIN是串行輸進(jìn),其控制數(shù)據(jù)通過(guò)該引腳輸進(jìn);DOUT是串行數(shù)據(jù)輸出用于輸出轉(zhuǎn)換后的觸摸位置數(shù)據(jù)。最大數(shù)為二進(jìn)制的4095;IN3、IN4是輔助輸進(jìn);PENIRQ是PEN中斷引腳。其中,S3C44BOX共使用6條與FM7843接口相連。其結(jié)構(gòu)如圖9所示:圖9 FM7843結(jié)構(gòu)圖FM7843有關(guān)引腳介紹列表如下;表1 FM7843
22、引腳介紹2.5 硬件原理圖圖10圖11 觸屏模塊OCMJ15x20D上圖為觸屏模塊OCMJ15x20D的實(shí)體圖和外形尺寸圖本系統(tǒng)顯示部分采用的正是該模塊系列中文液晶濕示模塊,其中OCMJ表示奧可拉中文集成模塊。這是一個(gè)中英文文字與繪圖模式的點(diǎn)陣液晶屁示模塊,內(nèi)建512KByte的ROM字形碼,可以顯示中文字型、數(shù)字符號(hào)、英日歐文等字母,并且內(nèi)建雙圖層(Two Page)的顯爪內(nèi)存。在文字模式中,可接收標(biāo)準(zhǔn)中文文字內(nèi)碼直接顯示中文,而不需要進(jìn)進(jìn)繪圖模式以繪圖方式描繪中文,提升液晶顯示中文之效率。該模塊整合了多項(xiàng)的實(shí)用界面,包含內(nèi)建的10-Bit ADC提供觸控屏接口。OCMJ15X20D(V3.
23、2)的觸摸屏是用FM7843控制的,該控制器已集成在模塊上,模塊已留出FM7843的控制線供客戶使用(OCMJ15X20D上的J5腳),可直接使用3V供電而不需外接負(fù)電壓。該模塊同時(shí)支持支持文字與繪圖兩種混和顯示模式。支持2 Page 顯示模式(And, Or, Nor, Xor),內(nèi)建兩個(gè)4.8K / 9.6 K(15x20D)Byte 的顯示RAM (Display Data RAM)共9.6K / 19.2 K(15x20D)Byte RAM并且可做成4 階的顯示效果。內(nèi)建512KByte ROM,控制IC 分帶繁體字庫(kù)IC 和帶簡(jiǎn)體字庫(kù)IC,其中標(biāo)準(zhǔn)繁體中文BIG5 碼,包含13,09
24、4個(gè)常用與次常用字型、408 個(gè)特殊字與兩組ASCII CODE,簡(jiǎn)體字庫(kù)儲(chǔ)存7602 個(gè)標(biāo)準(zhǔn)GB 碼的簡(jiǎn)體中文。提供全角(16x16)與半角(8x16)文字顯示模式。支持4/8 位之6800/8080 MCU 接口。內(nèi)建8x8 鍵盤(pán)掃瞄界面(Key Scan)。帶光標(biāo)、反白、閃爍功能,且光標(biāo)高度與寬度可調(diào)。支持屏幕水平卷動(dòng)及垂直卷動(dòng)功能。內(nèi)建512Byte SRAM 可自行造字。提供中/英文文字對(duì)齊功能。顯示字型可放大到32x32、48x48 或64x64,以及混合顯示模式。支持可將字型由ROM 直接讀出使用。內(nèi)建粗體字形與行距設(shè)定。內(nèi)建10-Bit ADC 支持觸控屏幕應(yīng)用(OCMJ4X1
25、5D 和OCMJ5X10D 屏蔽了此功能)。 OCMJ4X15D 和OCMJ5X10D 當(dāng)為黃綠屏而不使用背光時(shí),或者為藍(lán)屏使用背光時(shí),可使用3V 供電而。不需外接負(fù)電壓。OCMJ8X10D 和OCMJ8X15D 也可使用3V 供電但需外接負(fù)電壓,除OCMJ8X10D 的藍(lán)屏背光可使用。3V 供電外,其他背光都要4.1V 以上供電。OCMJ15X20D 可直接使用3V 供電而不需外接負(fù)電壓,但其背光為CCFL 背光,需另外供電,一般要45V。對(duì)于觸摸屏模塊OCMJ15X20D 其直接參與人機(jī)交互的結(jié)構(gòu)為電阻式觸摸面板。電阻式觸摸面板是由兩層極薄的電阻面板組成,如圖12所示,兩層面板之間有一個(gè)很
26、小的間距,當(dāng)有外力在面板上的某一點(diǎn)壓下去時(shí),會(huì)在施力點(diǎn)造成兩層電阻接觸,也就是短路(Short),而兩層電阻面板的端點(diǎn)都各有電極,如圖13所示YU, YD, XL, XR因此配合一些開(kāi)關(guān)就可偵測(cè)出面板上哪一相對(duì)位置被Touch。 圖12 電阻式觸摸面板結(jié)構(gòu) 圖13 觸摸面板與偵測(cè)開(kāi)關(guān)在圖14中,設(shè)定開(kāi)關(guān)SW2SW3 是OFF(Open)SW0 與SW1 是ON(Close),當(dāng)有外力在面板上的某一點(diǎn)壓下去時(shí),由于點(diǎn)取得電壓接到ADC(Analog to Digital Converter),就可以得到被Touch 點(diǎn)的X 坐標(biāo)相對(duì)位置。圖14 讀取X坐標(biāo)在圖14 中,因?yàn)殚_(kāi)關(guān)SW2 與SW3
27、是OFF,因此YD 點(diǎn)是Floating,所以當(dāng)有外力在面板上的某一點(diǎn)壓下去時(shí),YU 上的電壓事實(shí)上就是X 的Panel(也就是電阻)上的分壓結(jié)果,壓在面板上的不同一點(diǎn),就會(huì)得到不同的分壓結(jié)果,如圖15所示。圖15 Resistor-X的分壓同理,在圖16中,設(shè)定開(kāi)關(guān)SW0 與SW1 是OFF(Open),SW2 與SW3 是ON(Close),當(dāng)有外力在面板上的某一點(diǎn)壓下去時(shí),由XL 點(diǎn)取得電壓接到ADC(Analog to Digital Converter),就可以得到被Touch 點(diǎn)的Y 坐標(biāo)相對(duì)位置。一般說(shuō)來(lái)許多觸摸面板都是貼在LCD 面板上面,因此在程序設(shè)計(jì)上如果重復(fù)圖14與16的
28、讀取步驟就可以順利得知被touTouch 的點(diǎn)是在屏幕上的哪一位置。圖16 讀取Y坐標(biāo)圖17 Resistor-Y的分壓在圖16 中,因?yàn)殚_(kāi)關(guān)SW0 與SW1 是OFF,因此XR 點(diǎn)是Floating,所以當(dāng)有外力在面板上的某一點(diǎn)壓下去時(shí),XL 上的電壓事實(shí)上就是Y 的Panel(也就是電阻)上的分壓果,壓在面板上的不同一點(diǎn),就會(huì)得到不同的分壓值,如圖17所示。3.LCD觸摸屏軟件設(shè)計(jì)3.1 界面的定制與顯示界面的定制是通過(guò)建立網(wǎng)絡(luò)鏈表的方式實(shí)現(xiàn)的。構(gòu)建好鏈表網(wǎng)絡(luò)后就進(jìn)進(jìn)應(yīng)用程序階段,即系統(tǒng)進(jìn)進(jìn)正常運(yùn)行狀態(tài)。通過(guò)系統(tǒng)中設(shè)定當(dāng)前屏指針、當(dāng)前項(xiàng)指針及已構(gòu)建的鏈表網(wǎng)絡(luò)等來(lái)實(shí)現(xiàn)人機(jī)交互界面的操縱。同一
29、屏幕的項(xiàng)構(gòu)成雙向循環(huán)鏈表、鏈接屏幕構(gòu)成單向循環(huán)鏈表。實(shí)現(xiàn)方法:先以屏為單位建立每屏的橫向雙向循環(huán)鏈表;再遍歷各屏的雙向鏈表,為各屏的項(xiàng)建立鏈接關(guān)系,進(jìn)而構(gòu)成一個(gè)鏈表網(wǎng)絡(luò)。通過(guò)遍歷當(dāng)前屏幕的橫向雙向循環(huán)鏈表來(lái)逐一顯示屏幕的項(xiàng)。其巾對(duì)各類(lèi)項(xiàng)的處理如下:當(dāng)屏幕項(xiàng)是文本時(shí),直接讀取并顯示。當(dāng)屏幕項(xiàng)為整型、浮點(diǎn)時(shí)通過(guò)向控制系統(tǒng)索取其值并顯示。當(dāng)屏幕項(xiàng)為枚舉時(shí),通過(guò)向控制系統(tǒng)索取其值,再按值讀取對(duì)應(yīng)的字符串并顯示。3.2 觸摸屏信息的處理觸摸屏按鍵分為數(shù)字鍵、換屏鍵、確認(rèn)鍵和選擇鍵。數(shù)字鍵用于鍵進(jìn)所按的數(shù)字。換屏鍵用于切換屏幕內(nèi)容,進(jìn)進(jìn)所選中項(xiàng)的鏈接屏幕,若當(dāng)前屏幕沒(méi)有選中項(xiàng),則進(jìn)進(jìn)首項(xiàng)鏈接的屏幕。選擇鍵
30、主要是使下拉菜單的內(nèi)容顯示到屏幕上來(lái)。確認(rèn)鍵是用于選擇下拉菜單內(nèi)容。3.3 主函數(shù)初始化 該軟件系統(tǒng)主函數(shù)采用的是等待觸摸鍵值的死循環(huán)結(jié)構(gòu)。4 分析驅(qū)動(dòng)觸摸屏驅(qū)動(dòng)在/kernel/drivers/char/s3c2410-ts.c 文件中。4.1 觸摸屏設(shè)備驅(qū)動(dòng)中數(shù)據(jù)結(jié)構(gòu)(1)觸摸屏的file_operationsstatic struct file_operations s3c2410_fops= owner: THIS_MODULE, open: s3c2410_ts_open, read: s3c2410_ts_read, release: s3c2410_ts_release,#ifd
31、ef USE_ASYNC fasync: s3c2410_ts_fasync,/異步通知#endif poll: s3c2410_ts_poll,/輪詢(xún);(2)觸摸屏設(shè)備結(jié)構(gòu)體的成員與按鍵設(shè)備結(jié)構(gòu)體的成員類(lèi)似,也包含一個(gè)緩沖區(qū),同時(shí)包括自旋鎖、等待隊(duì)列和fasync_struct指針。typedef struct unsigned int penStatus; /* PEN_UP, PEN_DOWN, PEN_SAMPLE */ TS_RET bufMAX_TS_BUF; /* protect against overrun(環(huán)形緩沖區(qū)) */ unsigned int head, tail;
32、/* head and tail for queued events (環(huán)形緩沖區(qū)的頭尾)*/ wait_queue_head_t wq; /* 等待隊(duì)列數(shù)據(jù)結(jié)構(gòu) spinlock_t lock; /* 自旋鎖#ifdef USE_ASYNC struct fasync_struct *aq;#endif#ifdef CONFIG_PM struct pm_dev *pm_dev; /友善之臂專(zhuān)有的,我后面的代碼刪除了這段#endif TS_DEV;(3)觸摸屏結(jié)構(gòu)體中包含的TS_RET值的類(lèi)型定義,包含X、Y坐標(biāo)和狀態(tài)(PEN_DOWN、PEN_UP)等信息,這個(gè)信息會(huì)在用戶讀取觸摸信息時(shí)復(fù)
33、制到用戶空間。 typedef struct unsigned short pressure; /* 壓力,這里可定義為筆按下,筆抬起,筆拖曳 unsigned short x; /* 橫坐標(biāo)的采樣值 unsigned short y; /* 縱坐標(biāo)的采樣值 unsigned short pad; /* 填充位 TS_RET;(4)在觸摸屏設(shè)備驅(qū)動(dòng)中,將實(shí)現(xiàn)open()、release()、read()、fasync()和poll()函數(shù),因此,其文件操作結(jié)構(gòu)體定義。觸摸屏驅(qū)動(dòng)文件操作結(jié)構(gòu)體:static struct file_operations s3c2410_fops=4.2 觸摸屏驅(qū)
34、動(dòng)模塊加載和卸載函數(shù)(1)在觸摸屏設(shè)備驅(qū)動(dòng)的模塊加載函數(shù)中,要完成申請(qǐng)?jiān)O(shè)備號(hào)、添加cdev、申請(qǐng)中斷、設(shè)置觸摸屏控制引腳(YPON、YMON、XPON、XMON)等多項(xiàng)工作。觸摸屏設(shè)備驅(qū)動(dòng)的模塊加載函數(shù) static int _init s3c2410_ts_init(void)觸摸屏設(shè)備驅(qū)動(dòng)模塊卸載函數(shù) static void _exit s3c2410_ts_exit(void)(2)可知觸摸屏驅(qū)動(dòng)中會(huì)產(chǎn)生兩類(lèi)中斷,一類(lèi)是觸點(diǎn)中斷(INT-TC),一類(lèi)是X/Y位置轉(zhuǎn)換中斷(INT-ADC)。在前一類(lèi)中斷發(fā)生后,若之前處于PEN_UP狀態(tài),則應(yīng)該啟動(dòng)X/Y位置轉(zhuǎn)換。另外,將抬起中斷也放在IN
35、T-TC處理程序中,它會(huì)調(diào)用tsEvent()完成等待隊(duì)列和信號(hào)的釋放。觸摸屏設(shè)備驅(qū)動(dòng)的觸點(diǎn)/抬起中斷處理程序static void s3c2410_isr_tc(int irq, void *dev_id, struct pt_regs *reg)當(dāng)X/Y位置轉(zhuǎn)換中斷發(fā)生后,應(yīng)讀取X、Y的坐標(biāo)值,填入緩沖區(qū)觸摸屏設(shè)備驅(qū)動(dòng)X/Y位置轉(zhuǎn)換中斷處理程序static void s3c2410_isr_adc(int irq, void *dev_id, struct pt_regs *reg)觸摸屏設(shè)備驅(qū)動(dòng)中獲得X、Y坐標(biāo)static inline void s3c2410_get_XY(void)
36、(3)tsEvent最終為tsEvent_raw(),這個(gè)函數(shù)很關(guān)鍵,當(dāng)處于PEN_DOWN狀態(tài)時(shí)調(diào)用該函數(shù),它會(huì)完成緩沖區(qū)的填充、等待隊(duì)列的喚醒以及異步通知信號(hào)的釋放;否則(處于PEN_UP狀態(tài)),將緩沖區(qū)頭清0,也喚醒等待隊(duì)列并釋放信號(hào)。觸摸屏設(shè)備驅(qū)動(dòng)的tsEvent_raw()函數(shù)static void tsEvent_raw(void)(4)在包含了對(duì)拖動(dòng)軌跡支持的情況下,定時(shí)器會(huì)被啟用,周期為10ms,在每次定時(shí)器處理函數(shù)被引發(fā)時(shí),調(diào)用start_ts_adc()開(kāi)始X/Y位置轉(zhuǎn)換過(guò)程。觸摸屏設(shè)備驅(qū)動(dòng)的定時(shí)器處理函數(shù)static void ts_timer_handler(unsigned long data)(5)在觸摸屏設(shè)備驅(qū)動(dòng)的打開(kāi)函數(shù)中,應(yīng)初始化緩沖區(qū)、penStatus和定期器、等待隊(duì)列及tsEvent時(shí)間處理函數(shù)指針。觸摸屏設(shè)備驅(qū)動(dòng)的打開(kāi)函數(shù)static int s3c2410_ts_open(struct inode *inode, struct file *filp)(6)觸摸屏設(shè)備驅(qū)動(dòng)的釋放函數(shù)非常簡(jiǎn)單,刪除為用于拖動(dòng)軌跡所
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 石材承包協(xié)議書(shū)
- 工廠工人住宿協(xié)議書(shū)
- 種子繁育協(xié)議書(shū)
- 建筑用地承包協(xié)議書(shū)
- 工程違約退款協(xié)議書(shū)
- 汽車(chē)供貨協(xié)議書(shū)
- 小額財(cái)產(chǎn)分割協(xié)議書(shū)
- 工程安保合同協(xié)議書(shū)
- 液氫合作協(xié)議書(shū)
- 省際司法協(xié)議書(shū)
- 《實(shí)驗(yàn)室認(rèn)可培訓(xùn)》課件
- 2024年青島市市南區(qū)教育系統(tǒng)招聘教師考試真題
- 乳腺癌診治指南與規(guī)范(2025年版)解讀
- 2025年江蘇南通蘇北七市高三二模語(yǔ)文作文分析
- 電子商務(wù)平臺(tái)運(yùn)營(yíng)與管理規(guī)范
- 廣東省五年中考(2020-2024)化學(xué)真題試卷含答案
- 2024年行政執(zhí)法證考試必刷題庫(kù)及答案(共432題)
- 大氣污染治理的國(guó)內(nèi)外比較研究
- 2025年CFA特許金融分析師考試金融產(chǎn)品設(shè)計(jì)與模擬試題
- 市政道路工程施工組織設(shè)計(jì)方案
- 醫(yī)療護(hù)理與人文關(guān)懷課件
評(píng)論
0/150
提交評(píng)論