<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 嵌入式Linux系統中觸摸屏驅動(dòng)的研究

嵌入式Linux系統中觸摸屏驅動(dòng)的研究

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

引言

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

1 硬件平臺

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

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

圖1 S3C2410連接4線(xiàn)電阻式觸摸屏電路原理圖

2 設備簡(jiǎn)介

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

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

3 Linux觸摸屏驅動(dòng)程序實(shí)現

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

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操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>