色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 嵌入式Linux系統(tǒng)中觸摸屏驅(qū)動的研究

          嵌入式Linux系統(tǒng)中觸摸屏驅(qū)動的研究

          作者: 時間:2012-05-21 來源:網(wǎng)絡(luò) 收藏

          引言

          隨著計算機相關(guān)技術(shù)的發(fā)展,嵌入式系統(tǒng)的應(yīng)用越來越廣泛,與人們生活緊密結(jié)合。觸摸屏設(shè)備因其友善的人機交互性,操作方便靈活,輸入速度快,被廣泛的應(yīng)用于嵌入式領(lǐng)域中。嵌入式系統(tǒng)具有開發(fā)源代碼、內(nèi)核穩(wěn)定、可裁減性等特點,吸引著眾多商業(yè)公司和自由軟件開發(fā)者的目光,成為嵌入式系統(tǒng)領(lǐng)域不可或缺的操作系統(tǒng)之一。觸摸屏是一種輸入設(shè)備,操作簡單易學(xué),不占額外的空間,可靠性高,是最常用的便攜式系統(tǒng)的輸入設(shè)備。特別是電阻式觸摸屏結(jié)構(gòu)簡單,成本低,透光效果好,工作環(huán)境和外界完全隔離,不怕灰塵和水氣,同時具有高解析度,高速傳輸反應(yīng),一次校正,穩(wěn)定性高,不漂移等特點,因而廣泛用于工業(yè)控制領(lǐng)域及在室內(nèi)使用。

          1 硬件平臺

          S3C2410是Samsung公司基于ARM 920T核心的一款MCU,集成了眾多的外圍設(shè)備,其中包括4線電阻式觸摸屏控制器、8路模擬輸入通道。在8路A/D轉(zhuǎn)換通道中,A[5]和A[7]作為觸摸屏的X、Y坐標(biāo)的采集通道。S3C2410與4線電阻式觸摸屏連接的電路原理圖見圖1。

          在采樣過程中,只需要通過讀寫一系列的特殊寄存器,S3C2410的觸摸屏控制器就會自動控制觸摸屏接口打開或關(guān)閉各MOS管,按順序完成觸摸屏X、Y坐標(biāo)數(shù)據(jù)的采集。

          圖1 S3C2410連接4線電阻式觸摸屏電路原理圖

          2 設(shè)備簡介

          設(shè)備是操作系統(tǒng)內(nèi)核和機器硬件之間的接口,由一組函數(shù)和一些私有數(shù)據(jù)組成,是應(yīng)用程序和硬件設(shè)備之間的橋梁。在應(yīng)用程序看來,硬件設(shè)備只是一個設(shè)備文件,應(yīng)用程序可以像操作普通文件一樣對硬件設(shè)備進行操作。設(shè)備是內(nèi)核的一部分,主要完成以下功能:對設(shè)備的初始化和釋放;把數(shù)據(jù)從內(nèi)核傳送到硬件設(shè)備和從硬件設(shè)備讀取數(shù)據(jù);讀取應(yīng)用程序數(shù)據(jù)傳送給設(shè)備文件和回送應(yīng)用程序請求的數(shù)據(jù);檢測和處理硬件設(shè)備出現(xiàn)的錯誤。

          操作系統(tǒng)的設(shè)備有字符設(shè)備、塊設(shè)備和網(wǎng)絡(luò)設(shè)備等。字符設(shè)備是以單個字節(jié)為單位進行順序讀寫操作,通常不使用緩存技術(shù),例如鼠標(biāo)、鍵盤等。塊設(shè)備的讀寫都使用緩存技術(shù)來支持,并且必須能夠進行隨機存取,主要是針對磁盤等慢速設(shè)備設(shè)計的。網(wǎng)絡(luò)設(shè)備主要基于BSD的Socket機制,為發(fā)送數(shù)據(jù)和接收數(shù)據(jù)提供緩存技術(shù),提供對多協(xié)議的支持,例如以太網(wǎng)卡等。

          3 Linux觸摸屏驅(qū)動程序?qū)崿F(xiàn)

          在Linux系統(tǒng)中,設(shè)備驅(qū)動程序是一組相關(guān)函數(shù)的集合。它包括設(shè)備服務(wù)子程序和中斷處理程序。設(shè)備服務(wù)子程序包含了所有與設(shè)備相關(guān)的代碼,每個設(shè)備服務(wù)子程序只處理一種設(shè)備或者緊密相關(guān)的設(shè)備,從設(shè)備無關(guān)的軟件中接受抽象的命令并執(zhí)行。當(dāng)執(zhí)行一條請求時,具體操作是根據(jù)控制器對驅(qū)動程序提供的接口,并利用中斷機制去調(diào)用中斷服務(wù)子程序配合設(shè)備完成這個請求。設(shè)備驅(qū)動程序利用結(jié)構(gòu)file_operations與文件系統(tǒng)聯(lián)系起來,設(shè)備的各種操作的入口函數(shù)放在結(jié)構(gòu)file_operations中,其中包括open()、release()、read()和write()等接口,簡化了驅(qū)動程序的編寫工作。這樣,應(yīng)用程序根本不必考慮操作的是設(shè)備還是普通文件,可一律看作文件處理,具有非常清晰統(tǒng)一的I/O接口。觸摸屏的 file_operations結(jié)構(gòu)定義如下:

          static struct file_operations s3c2410_ts_fops = {

          owner: THIS_MODULE,

          read: s3c2410_ts_read,

          poll: s3c2410_ts_poll,

          ioctl: s3c2410_ts_ioctl,

          open: s3c2410_ts_open,

          release: s3c2410_ts_release,

          fasync: s3c2410_ts_fasync,};

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁 1 2 3 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉