摘要:μC/OS是源碼公開的實(shí)時(shí)嵌入式操作系統(tǒng),可移植,可固化,可裁減,該文重點(diǎn)介紹了在該系統(tǒng)下,觸摸屏的工作原理及觸摸屏的驅(qū)動及應(yīng)用,并同時(shí)給出了設(shè)計(jì)方法。
關(guān)鍵詞:觸摸屏;嵌入式;接口
中圖分類號:TP316文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2008)34-1779-03
Based on μC/OS Embedded Systems and Touch-screen-driven Application
ZHOU Wen-juan, CUI Dong-meng, FU Shan-shan
(Guizhou University, Guiyang 550025, China)
Abstract: μC/OS is an open-source embedded real-time operating system.It is portable,and can be cured, can be trimmed.μC/OS major component of the following:the core of (OSCore.c) inorder to deal with the core operating system, including the operating system initialization, the operating system to run, interupt and get out of the leading, and beating the clock, task scheduling, deal with events such as In the part of the system.This paper focuses on the system, the touch screen and touch-screen operation principle and application of the drive, and at the same time this essay gives the way of design.
Key words: touch Screen; embedded; interface
1 引言
嵌入式系統(tǒng)是將先進(jìn)的計(jì)算機(jī)技術(shù)、半導(dǎo)體技術(shù)和電子技術(shù)與各個(gè)行業(yè)的具體應(yīng)用相結(jié)合后的產(chǎn)物,目前嵌入式系統(tǒng)已經(jīng)滲透到日常生活的各個(gè)方面,其在工業(yè)、服務(wù)業(yè)、消費(fèi)電子等領(lǐng)域的應(yīng)用范圍都不斷擴(kuò)大,嵌入式計(jì)算機(jī)系統(tǒng)的正式定義為:以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟件硬件可裁減,符合應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗的嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。嵌入式系統(tǒng)的主要特征有:系統(tǒng)內(nèi)核??;專用性強(qiáng);系統(tǒng)精簡;嵌入式軟件要求高實(shí)時(shí)性的操作系統(tǒng)軟件;軟件要求高質(zhì)量和高可靠性;嵌入式系統(tǒng)開發(fā)需要專門的開發(fā)工具和環(huán)境。隨著社會的日益信息化。對于我們每個(gè)人來說,需要的已經(jīng)不再僅僅是那種放在桌上處理文檔、進(jìn)行工作管理和生產(chǎn)控制的計(jì)算機(jī)“機(jī)器”。任何一個(gè)普通人都可能擁有從小到大的各種嵌入式技術(shù)的電子產(chǎn)品,小到MP3、PDA等微型化數(shù)字產(chǎn)品,大到網(wǎng)絡(luò)家電、智能家電、車載電子設(shè)備等。而現(xiàn)在在便攜式的電子類產(chǎn)品中,觸摸屏由于其輕便、占用空間少、方便靈活等優(yōu)點(diǎn),已經(jīng)逐漸取代鍵盤成為嵌入式計(jì)算機(jī)系統(tǒng)的輸入設(shè)備。
2 嵌入式系統(tǒng)概述
嵌入式系統(tǒng)由硬件和軟件兩大部分組成,在本開發(fā)應(yīng)用中,選擇ARM9TDMI內(nèi)核結(jié)構(gòu)的SAMSUNG公司的s3c2410作為微處理器芯片,該芯片具有主頻高、運(yùn)算速度快,超低功耗、價(jià)格低廉、結(jié)構(gòu)簡單等特點(diǎn),在該內(nèi)核基礎(chǔ)上擴(kuò)展了一系列完整的通用外圍器件,主要有:片內(nèi)16KB高速緩存、帶有1個(gè)專用DMA通道的LCD控制器、4路帶有外部請求線的DMA通道、1個(gè)多主機(jī)IIC總線控制器、一個(gè)IIS總線控制器,4個(gè)PWM定時(shí)器及1個(gè)內(nèi)部定時(shí)器、117個(gè)通用I/O口、24個(gè)外部中斷源、8通道10位ADC和觸摸屏接口等資源,主頻為203MHZ,系統(tǒng)支持大小端模式,共1GB的地址空間,支持8/16/32位數(shù)據(jù)總線編程。開發(fā)平臺外配與用戶交互接口有RS-232串口電路、外擴(kuò)flash、sdram,USB控制電路、以太網(wǎng)電路、觸摸屏、鍵盤,JTAG接口電路部分。
實(shí)時(shí)嵌入式操作系統(tǒng)的種類繁多,大體上可以分為兩種:商用型和免費(fèi)型,前者系統(tǒng)功能穩(wěn)定、可靠,并有完善的技術(shù)支持和售后服務(wù),建立應(yīng)用開發(fā)較為容易,但價(jià)格昂貴,代表性的有美國WindRiver公司的VxWorks操作系統(tǒng)、Microsoft公司的WinCE操作系統(tǒng);免費(fèi)型可以節(jié)約成本,且源碼公開,便于開發(fā),代表性的有嵌入式Linux系統(tǒng)、μC/OS系統(tǒng)。由于μC/OS結(jié)構(gòu)簡單,編程工具絕大部分是C語言編程,可以在大多數(shù)界面友好的編譯器中編譯生成目標(biāo)代碼,如Borland C、Keil等工具,且其內(nèi)核最小可以到幾十K,可以在多種體系結(jié)構(gòu)的微處理器上移植,用戶的工作較小,源代碼開放,便于學(xué)習(xí)。μC/OS-II的幾大組成部分有:核心部分(OSCore.c)是操作系統(tǒng)的處理核心,包括操作系統(tǒng)初始化、操作系統(tǒng)運(yùn)行、中斷進(jìn)出的前導(dǎo)、時(shí)鐘節(jié)拍、任務(wù)調(diào)度、事件處理等多部分。
3 觸摸屏
3.1 觸摸屏工作原理
觸摸屏附著在顯示器的表面,與顯示器相配合使用,假如能測量出觸摸點(diǎn)在屏幕上的坐標(biāo)位置,則可根據(jù)顯示屏上對應(yīng)坐標(biāo)點(diǎn)的顯示內(nèi)容或圖符獲知觸摸者的意圖。觸摸屏按其技術(shù)原理可分為五類:矢量壓力傳感式、電阻式、電容式、紅外線式、表面聲波式,其中電阻式觸摸屏在嵌入式系統(tǒng)中用的較多。電阻觸摸屏是一塊4層的透明的復(fù)合薄膜屏,最下面是玻璃或有機(jī)玻璃構(gòu)成的基層,最上面是一層外表面經(jīng)過硬化處理從而光滑防刮的塑料層,中間是兩層金屬導(dǎo)電層,分別在基層之上和塑料層內(nèi)表面,在兩導(dǎo)電層之間有許多細(xì)小的透明隔離點(diǎn)把它們隔開。當(dāng)手指觸摸屏幕時(shí),兩導(dǎo)電層在觸摸點(diǎn)處接觸。
摸屏的兩個(gè)金屬導(dǎo)電層是觸摸屏的兩個(gè)工作面,在每個(gè)工作面的兩端各涂有一條銀膠,稱為該工作面的一對電極,若在一個(gè)工作面的電極對上施加電壓,則在該工作面上就會形成均勻連續(xù)的平行電壓分布。如圖1所示,當(dāng)在X方向的電極對上施加一確定的電壓,而Y方向電極對上不加電壓時(shí),在X平行電壓場中,觸點(diǎn)處的電壓值可以在Y (或Y-)電極上反映出來,通過測量Y 電極對地的電壓大小,便可得知觸點(diǎn)的X坐標(biāo)值。同理,當(dāng)在Y電極對上加電壓,而X電極對上不加電壓時(shí),通過測量X 電極的電壓,便可得知觸點(diǎn)的Y坐標(biāo)。電阻式觸摸屏有四線和五線兩種。四線式觸摸屏的X工作面和Y工作面分別加在兩個(gè)導(dǎo)電層上,共有四根引出線,分別連到觸摸屏的X電極對和Y電極對上。五線式觸摸屏把X工作面和Y工作面都加在玻璃基層的導(dǎo)電涂層上,但工作時(shí),仍是分時(shí)加電壓的,即讓兩個(gè)方向的電壓場分時(shí)工作在同一工作面上,而外導(dǎo)電層則僅僅用來充當(dāng)導(dǎo)體和電壓測量電極。因此,五線式觸摸屏的引出線需為5根。
3.2 ADS7843觸摸屏控制器的工作原理
各種類型的觸摸屏均有其相應(yīng)的控制器,如:ADS7846是四線式觸摸屏的控制器,而ADS7845是五線式觸摸屏的控制器。控制器的主要功能是分時(shí)向X、Y電極對施加電壓,并把測量電極上的電壓信號轉(zhuǎn)換為相應(yīng)觸摸點(diǎn)的X、Y坐標(biāo)。如下圖3所示,本系統(tǒng)觸摸屏的控制采用專用芯片ADS7843,它是四線式電阻觸摸屏轉(zhuǎn)換接口芯片,它是一款具有同步串行接口的12位取樣模數(shù)轉(zhuǎn)換器。在125khz吞吐速率和2.7V電壓下的功耗為750μW。而在關(guān)閉模式下的功耗為0.5μW。因此,ADS7843以其低功耗和高速率等特性,被廣泛應(yīng)用在采用電池供電的小型手持設(shè)備上。ADS7843采用SSOP-16引腳封裝形式,溫度范圍是-40℃-85℃。
為了完成一次電極切換和A/D轉(zhuǎn)換,需要先通過串口向ADS7843發(fā)送控制字,轉(zhuǎn)換完成后再通過串口讀出電壓轉(zhuǎn)換值。標(biāo)準(zhǔn)的一次轉(zhuǎn)換需要24個(gè)時(shí)鐘周期。由于串口支持雙向同時(shí)進(jìn)行傳送,并且在一次讀數(shù)與下一次發(fā)控制字之間可以重疊,所以轉(zhuǎn)換速率可以提高到每次16個(gè)始終周期。如果條件允許,CPU可以產(chǎn)生15個(gè)CLK的話,轉(zhuǎn)換速率可以提高到每次15個(gè)時(shí)鐘周期。
3.3 S3C2410A的觸摸屏接口
S3C2410A支持觸摸屏接口,它由1個(gè)觸摸屏面、4個(gè)外部晶體管、1個(gè)外部電壓源、信號AIN[7]h和信號AIN[5]組成。觸摸屏接口包含1個(gè)外部晶體管控制邏輯和1個(gè)帶有中斷產(chǎn)生邏輯的ADC接口邏輯,它使用控制信號nYPON、YMON、nXPON和XMON控制 并選擇觸摸屏面板,使用模擬信號AIN[7]和AIN[5]分別連接X方向和Y方向的外部晶體管。
3.4 FM7843在開發(fā)板中的連接方法
如圖4所示,F(xiàn)M7843通過同步串口與ARM通信,可通過SendSIODate()函數(shù)(uhal.c)向FM7843發(fā)送數(shù)據(jù);通過ReadSIOData函數(shù)(uhal.c)從FM7843讀出數(shù)據(jù)。將F端口的第6為置0和1,可以打開、關(guān)閉FM7843,F(xiàn)端口的數(shù)據(jù)寄存器為PDATF。通過外部中斷 5可以判斷是否有觸摸動作。
3.5 觸摸屏與顯示器的配合
從觸摸屏控制器獲得的X 與Y 值僅是對當(dāng)前觸摸點(diǎn)的電壓值的A/D 轉(zhuǎn)換值,它不具有實(shí)用價(jià)值。這個(gè)值的大小不但與觸摸屏的分辨率有關(guān),而且也與觸摸屏與LCD 貼合的情況有關(guān)。而且,LCD 分辨率與觸摸屏的分辨率一般來說是不一樣,坐標(biāo)也不一樣,因此,如果想得到體現(xiàn)LCD 坐標(biāo)的觸摸屏位置,還需要在程序中進(jìn)行轉(zhuǎn)換。轉(zhuǎn)換公式如下:
x=(x-TchScr_Xmin)*LCDWIDTH/(TchScr_Xmax-TchScr_Xmin)
y=(y-TchScr_Ymin)*LCDHEIGHT/(TchScr_Ymax-TchScr_Ymin)
其中,TchScr_Xmax、TchScr_Xmin、TchScr_Ymax 和TchScr_Ymin 是觸摸屏返回電壓值x、y 軸的范圍,LCDWIDTH、LCDHEIGHT 是液晶屏的寬度與高度。
4 觸摸屏的驅(qū)動及應(yīng)用
本應(yīng)用主要是將觸摸動作及觸摸點(diǎn)坐標(biāo)在超級終端上顯示出來。在超級終端能顯示出在觸摸屏上的動作是雙擊還是單擊,或移動等,同時(shí)能顯示出觸摸點(diǎn)的坐標(biāo)值,此值是經(jīng)過轉(zhuǎn)換的坐標(biāo),與LCD緊密配合。
4.1 首先在頭文件中定義宏及常量(tchscr.c,tchscr.h)
/*復(fù)用功能管腳定義宏*/
#define nYPON 0x3
#define YMON 0x3
#define nXPON 0x3
#define XMON 0x3
/////////觸摸屏動作////////
#define TCHSCR_ACTION_NULL 0
#define TCHSCR_ACTION_CLICK 1 //觸摸屏單擊
#define TCHSCR_ACTION_DBCLICK 2 //觸摸屏雙擊
#define TCHSCR_ACTION_DOWN 3 //觸摸屏按下
#define TCHSCR_ACTION_UP 4 //觸摸屏抬起
#define TCHSCR_ACTION_MOVE 5 //觸摸屏移動
int TchScr_Xmin=38,TchScr_Xmax=997,
TchScr_Ymin=23,TchScr_Ymax=974; //觸摸屏返回電壓值范圍
4.2 定義驅(qū)動函數(shù)(tchscr.c)
圖5為讀取觸摸點(diǎn)X軸電壓值的程序流程圖。
圖6為判斷觸摸屏動作的程序流程圖。
4.3 編寫測試函數(shù) (tchscr.c)
將觸摸動作及觸摸點(diǎn)坐標(biāo)在超級終端上顯示出來 。
5 結(jié)束語
目前市場上觸摸屏的應(yīng)用越來越廣泛 ,基于μc/os嵌入式操作系統(tǒng)的產(chǎn)品更是越來越多,應(yīng)用領(lǐng)域包括工業(yè)控制、信息家電、網(wǎng)絡(luò)設(shè)備等方面,PDA更是走進(jìn)了我們每個(gè)人的生活,而且基于μc/os的應(yīng)用正潮起云涌,蓬勃發(fā)展。隨著后PC時(shí)代的來臨,嵌入式系統(tǒng)理論與應(yīng)用研究日新月異,μc/os正是我們手中開發(fā)嵌入式系統(tǒng)的利器,較好的掌握這門技術(shù)可以將理論與實(shí)際應(yīng)用相結(jié)合,更好地服務(wù)于我們的日常生活和生產(chǎn)。
參考文獻(xiàn):
[1] 王田苗.嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開發(fā)[M].北京:清華大學(xué)出版社,2008.
[2] 魏洪興.嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開發(fā)實(shí)驗(yàn)教材Ⅰ[M].北京:清華大學(xué)出版社,2005.
[3] 馬忠梅.ARM嵌入式處理器結(jié)構(gòu)與應(yīng)用基礎(chǔ)[M].北京:北京航空航天大學(xué)出版社,2002.
[4] 徐英惠.ARM9嵌入式系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2007.