嵌入式操作系統Nucleus下觸摸屏驅動(dòng)的開(kāi)發(fā)

發(fā)布時(shí)間:2010-8-31 10:24    發(fā)布者:techshare
關(guān)鍵詞: Nucleus , 觸摸屏
Nucleus 是一款優(yōu)秀的嵌入式實(shí)時(shí)操作系統(RTOS),具有搶占式和時(shí)間片輪轉任務(wù)調度方式,主要用在時(shí)間苛刻的嵌入式應用當中。大約95%的Nucleus用ANSI C 寫(xiě)成,作為一個(gè)庫加載到應用代碼當中。目前手機行業(yè)有很多使用Nucleus。

1. 觸摸屏控制電路的硬件結構

觸摸屏控制電路主要有一下四部分組成:進(jìn)行數據處理、控制功能的MCU,一個(gè)四線(xiàn)電阻式觸摸屏和控制芯片ADS7846, 以及顯示觸摸點(diǎn)坐標的顯示部分。
  



在這里主要對觸摸屏的硬件電路和驅動(dòng)設計做一個(gè)較詳細的介紹,ADS7846是美國TI公司推出的一款四線(xiàn)制電阻式觸摸屏控制器,通過(guò)機械式觸摸,可以迅速得到觸摸點(diǎn)位置信號。它是一種典型的帶有連續逼近型寄存器的A/D轉換器,內部自帶2.5V參考電壓,一個(gè)和微處理器相連的SP I接口,同時(shí)具有測量溫度、觸摸壓力和電池電壓的功能,有可編程 的8位或12位的分辨率。在2.7V電壓和125kHz的轉換速率下, 功耗僅為750uW,在 power down 模式下僅為0.5uW。由于這些優(yōu)良的性能,在移動(dòng)設備中有大量的應用。下表為控制器的主要引腳



工作原理:圖2是觸摸屏控制器和MCU的連接電路圖。當ADS7846檢測到觸摸屏被按下時(shí),它就會(huì )產(chǎn)生一個(gè)中斷信號(PENIRQ為低電平)給MCU,MCU選中ADS7846控制器(CS為低),然后通過(guò)串行口DIN向ADS7846發(fā)送8位控制字,此后DOUT在DCLK的下降沿得到12位的輸出。圖3為ADS7846在每次轉換為24個(gè)時(shí)鐘周期下的時(shí)序圖。


圖2   

2.Nucleus下ADS7846的驅動(dòng)設計

驅動(dòng)設計的目的是將觸摸坐標即時(shí)的轉換為顯示坐標,直接在LCD屏上顯示出來(lái),然后經(jīng)過(guò)輸入識別軟件的處理(例如漢王的識別軟件),識別出輸入的字符,漢字等。

當觸摸屏按下時(shí),會(huì )產(chǎn)生一個(gè)中斷,應當為ADS7846配置一個(gè)中斷。在Nucleus下,中斷分兩種,Low level 中斷(Lisr)和High level 中斷(Hisr),一般的中斷服務(wù)程序在Hisr當中處理。一個(gè)較為復雜的,多任務(wù)嵌入式系統當中,中斷服務(wù)程序(優(yōu)先級比普通任務(wù)的優(yōu)先級高)不能占用太多的時(shí)間,否則可能會(huì )導致其他任務(wù)不能及時(shí)得到響應。例如在觸摸屏中斷服務(wù)程序的處理,在較壞的情況下,觸摸屏可能一直被按下去,其Hisr就會(huì )占用很多的資源,導致別的任務(wù)(例如一個(gè)手機應用當中,可能導致接受電話(huà)的任務(wù)不能處理,而這是不能讓人接受的,不能想象當你寫(xiě)短信時(shí)不能接受電話(huà)的情況,)所以當中斷服務(wù)程序需要占用CPU較多的處理時(shí)間時(shí),一般要在另外激活一個(gè)任務(wù),由任務(wù)調度機制來(lái)處理和系統中其他任務(wù)的關(guān)系,它的流程圖如圖四所示,實(shí)踐證明,這種處理方法是較好的處理方法。
  


圖3

這里不打算對怎么創(chuàng )建一個(gè)Lisr,Hisr和激活一個(gè)任務(wù)做太多的介紹,詳細可以看Nucleus的文檔。重點(diǎn)介紹ADS7846的驅動(dòng)程序的處理和如何將所得數據在LCD上正確顯示出來(lái)。

ADS7846處理程序的流程圖如圖所示:
  


圖4   

ADS7846在計算觸摸坐標時(shí)有兩種方式,single ended模式和difference 模式。Single ended模式利用ADS7846內部參考電壓或者外部參考電壓,得出的結果是一個(gè)電壓的AD結果。 Difference 不需要內部或者外部的參考電壓,這種模式得出的結果是觸摸點(diǎn)在觸摸屏位置上的百分比。這種模式可以消除參考電壓波動(dòng)對換算結果的影響。

ADS7846換算結果在LCD屏幕上的映射

假設LCD是個(gè)160 x 128 像素大小的屏幕,如圖六所示,假設A點(diǎn)的坐標為(0,0),那么可知道B,C,D是(128,0),(0,160),(128,160)。通過(guò)ADS7846得出A,B,C,D的轉換結果分別是(Xa,Ya),(Xb,Yb),(Xc,Yc),(Xd,Yd),再得出屏幕中任意點(diǎn)X轉換結果(Xx,Yx),那么X的坐標(x,y)可以通過(guò)下式算出來(lái):

得出觸摸屏的一系列坐標以后,作為手寫(xiě)識別軟件的輸入,就可得出輸入的漢字,字符等。

3. 結論

本文簡(jiǎn)單介紹了Nucleus下觸摸屏驅動(dòng)的開(kāi)發(fā),由于當前觸摸屏的應用越來(lái)越廣泛,嵌入式系統的應用范圍也越來(lái)越廣,將對其他嵌入式系統下驅動(dòng)的開(kāi)發(fā)有一定的借鑒意義。   

參考文獻
1.ADS7846 Touch Panel Controller Data Sheet, Burr-Brown
2.Nucleus Technical Manual
本文地址:http://selenalain.com/thread-24791-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页