www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 嵌入式 > 嵌入式硬件
[導讀]摘要:通過對嵌入式GUI軟件Microwindows進行分析并與X window進行對比,闡述Microwindows用于嵌入式設備上的優(yōu)點;簡要論述Microwindows的體系結構和圖形應用程序接口;介紹

摘要:通過對嵌入式GUI軟件Microwindows進行分析并與X window進行對比,闡述Microwindows用于嵌入式設備上的優(yōu)點;簡要論述Microwindows的體系結構和圖形應用程序接口;介紹其設備驅(qū)動特性、API、客戶機/服務器模型、畫圖機制和FLTK。 關鍵詞:嵌入式系統(tǒng) Microwindows Linux 引言 在進入后PC時代以后,嵌入式設備以一種無法抑制的迅猛速度普及和發(fā)展到日常生活及工作當中,眾多知名開發(fā)商為了搶占市場和爭奪利潤,競相推出各種性能優(yōu)異的軟硬件及內(nèi)核芯片。鑒于以視窗為代表的桌面操作模式取得巨大成功,該模式目前已成為國內(nèi)外開發(fā)者們在嵌入式設備中的首選方案。 近幾年,隨著Linux技術的興起,越來越多的企業(yè)和科研機構把目光轉向嵌入式Linux的開發(fā)和研究。Linux不僅具有桌面電腦的全部功能和特性,允許修改和根據(jù)用戶的要求進行定制,而且作為一種免費的開放式源碼,還支持目前在嵌入式設計領域中常用的新型微處理器,如StrongARM、MIPS以及 PowerPC等,具有穩(wěn)定、高效、易定制、易裁減、硬件支持廣泛等特點。Microwindows是一個著名的開放式源碼的嵌入式GUI軟件,目的是把圖形視窗環(huán)境引入到運行Linux的小型設備和平臺上。作為X Window系統(tǒng)的替代品,Microwindows可用更少的RAM和文件存儲空間(100K~600KB)提供相似的功能,允許設計者輕松加入各種顯示設備、鼠標、觸摸屏和鍵盤等;可移植性非常好,可用C語言和少部分匯編語言實現(xiàn),支持Intel 16位、32位CPU,MIPS R4000以及基于ARM內(nèi)核的處理器芯片,有多種平臺支持Microwindows。

1 X Window的不足 由于使用了帶有TCP/IP結構的自由式開放源碼操作系統(tǒng),使嵌入式設備進入了一個創(chuàng)新應用時代,不過這些新的應用需要考慮其資源環(huán)境,這是因為多數(shù)的嵌入式設備缺少硬件驅(qū)動和大的RAM。目前,在Linux系統(tǒng)中普遍使用X Window系統(tǒng),如圖1所示。X Window是在20世界80年代早期由MIT、DEC等提出來的,是一個基于Client/Server結構的視窗系統(tǒng);允許在任一臺UNIX主機(Clients——客戶端)上運行程序,而在基于X的終端(Server——服務器)上顯示出來。在這個過程中,相當一部分代碼用于確認主機和服務器上運行的Client/Server程序是否正常。目前,大多數(shù)X的客戶端和服務器是在同一臺機器上運行,X Window服務器經(jīng)編譯后一般用于自動檢測硬件。服務器中還包含有眾多的畫圖函數(shù),它們的位置根據(jù)執(zhí)行速度被位置在裁減層之上或之下。這些便利X Window過于臃腫和復雜,運行時需要至少8MB的內(nèi)存空間。 2 Microwindows分析比較 對于大多數(shù)嵌入式設計,尤其是在運行專用圖形程序的場合,X Window不是一種恰當?shù)倪x擇。由此而發(fā)展起來的Microwindows是專門設計用于在小型設備上開發(fā)具有高品質(zhì)圖形功能的開放式源碼桌面系統(tǒng),有許多針對現(xiàn)代圖形視窗環(huán)境的功能部件。它的結構設計使其可方便地加入不同的顯示、鼠標、觸屏以及鍵盤等設備。Microwindows基于2.2.0版本的Linux系統(tǒng)如圖2所示。其內(nèi)核所包含的代碼允許用戶程序?qū)D形顯示的內(nèi)存空間作為framebuffer進行存取操作,這樣在用戶程序空間中可作為內(nèi)存映射區(qū)域來直接控制圖形顯示,可使得用戶在編寫圖形程序的時候不再需要去了解底層硬件,這是目前Microwindows在嵌入式系統(tǒng)中被很多人使用的原因。

設計得在設計Microwindows時沿用了已有的兩個圖形應用程序接口(API):一是Microsoft Windows中Win32/WinCE的圖形設備接口(GDI),它適用于所有Windows CE和Win32的應用程序;另外就Nano-X(Xlib-like界面),它與GDK非常相似,用在Linux上,是像X的API,用于占用資源少的應用程序。這使得熟悉Windows或者是Linux X11的用戶可在熟悉的環(huán)境下開發(fā)圖形應用程序。 Microwindows在運行過程中僅需要50~250KB的內(nèi)存空間,遠小于X Windows系統(tǒng)所需空間。這主要是因為Microwindows對于在驅(qū)動層的每一個繪圖函數(shù)采用的是單進程的方式,由驅(qū)動層核驗是否裁減并調(diào)用驅(qū)動程序來繪制未被裁減的像素點或線;而在X Window系統(tǒng)中,則是出于對速度的考慮,包含所有像素點的繪制程序并分別有裁減和未裁減的版本。Microwindows完全支持新的Linux內(nèi)核的幀緩沖區(qū)結構,同時支持1、2、4、8、16、24、32位像素點顯示,支持調(diào)色板、真彩色、灰度等顏色模式,并對渲染提供內(nèi)置支持。在其API函數(shù)的支持下,還可以以RGB的格式描述上述的顏色模式,系統(tǒng)中包含顏色轉換的程序,可將像素點轉換成相近的可顯示顏色或相應單色系統(tǒng)中的灰度級。雖然 Microwindows支持Linux系統(tǒng),但它是基于相對簡單的屏幕驅(qū)動界面結構,因此,可在許多不同的實時操作系統(tǒng)(RTOS)上運行,甚至于那些無硬件的實時操作系統(tǒng)也可運行Microwindows。這樣,可使得客戶的圖形應用程序在不的工程中共享使用,也可在不同的RTOS上運行不同的目標程序而不需要重新編寫圖形應用程序,大大提高了編程效率。 Microwindows支持圖形目標平臺的主機平臺競爭,也就是說應用于Linux的Microwindows應用程序不需要跨平臺編譯,就可在桌面上直接運行和測試,同時仍可在目標平臺上運行。這一點需通過使用Micorwindows的X11屏幕驅(qū)動器實現(xiàn),同時驅(qū)動器可以根據(jù)像素點和顏色值來模擬目標平臺的顯示。因此,即使桌面系統(tǒng)是24位的顏色模式,它也可以以2色模式顯示目標系統(tǒng)中的應用程序。 對于那些熟悉使用Microsoft Windows或Linux X Windows的程序員頁言,經(jīng)編寫應用程序時是有一定區(qū)別的。Microsoft Windows的編程員一般使用MS-Visual C++的類庫(MFC)中的C++應用程序框架或者是更新的ATL框架,在繪制圖形時使用Win32圖形設備接口(GDI)。Windows中還包括有許多Win32 GDI中的應用界面控件,如按鈕、列表等。而X Windows系統(tǒng)提供了一個低級接口——Xlib,僅用于實現(xiàn)最低級簡單的繪圖功能,并將其封裝成程序包在需顯示時在顯示設備上運行。在用戶界面中,大多數(shù)的解決利用插件,在Xlib的上層加入插件集來實現(xiàn)更高級的函數(shù)。目前,對Microwindows的應用正在逐步地加入GTK+/GDK以及 FLTK插件,以實現(xiàn)更多的用戶界面控件。 3 Microwindows的體系結構 由于Microwindows在設計上有著明顯的分層結構,如圖3所示,其設備與平臺相關層、設備與平臺無關層和應用層之間層次清晰、結構明顯,因此勿需改動其整體結構,只需在其相應的部分添加代碼即可實現(xiàn)一些更為復雜的功能。 圖3 Microwindows體系結構 在Microwindows的最底層(設備與平臺相關層),系統(tǒng)針對顯示屏、鼠標、觸屏以及鍵盤等各定義了一個數(shù)據(jù)結構。該數(shù)據(jù)結構和頂層結構一樣,供圖形引擎使用,包含了針對指定設置和硬件驅(qū)動代碼。Microwindows中還包含了諸多設備和操作系統(tǒng)的各種版本的驅(qū)動程序。屏幕驅(qū)動可支持系統(tǒng)1的、 2、4、8、16、24、32位顯示和調(diào)色板、真彩色、灰度等顏色模式。屏幕驅(qū)動中還包括一些入口指針,這些指針分別用讀寫像素、繪制水平或垂直線,在屏幕和內(nèi)存之間相互映射內(nèi)存空間。在實現(xiàn)這些基本指針的過程中需運行包括TrueType或Adobe Type1的字體支持、RGB顏色支持、JPEG以及BMP圖形處理等Microwindows上層函數(shù)。如果屏幕驅(qū)動中還包括有硬件加速的話,僅需更改驅(qū)動程序即可;也可在系統(tǒng)中添加觸屏、鍵盤、按鍵等的輸入。 Microwindows的中間層是圖形引擎層(也稱為設備與平臺無關層),因為所有的繪圖函數(shù)都通過調(diào)用屏幕驅(qū)動來實現(xiàn),該層與硬件無關。圖形引擎層為應用層提供了一系列相應的入口指針調(diào)用繪圖函數(shù),還為所有的顏色指定了RGB的顏色模型;同樣,該層也與顯示設備無關,可以由RGB值為判斷硬件中的像素值。除此之外,Microwindows還在中間層實現(xiàn)裁減功能,它采用多矩形算法,可在任意復雜的區(qū)域中實現(xiàn)繪圖功能。中間層還要控制所有字體的顯示,支持FreeType以及使用T1Lib的Adobe Type 1字體、支持比例字體,同時還支持ASCII、Unicode-16、Unicode-32、UTF-8編碼規(guī)則。 Microwindows的最高層(應用層)實現(xiàn)了窗口交互系統(tǒng),這使得程序員既可在全屏幕顯示,也可在層疊的窗口中顯示。一層還包括事件處理,可將觸摸屏、按鍵等激發(fā)的事件傳送給應用程序。 Nano-X API允許程序可以根據(jù)Client/Server協(xié)議通過網(wǎng)絡或是本地的UNIX主機進行編譯,以同時顯示幾個運行在已連接到Microwindows 服務器的嵌入式設備或遠程主機上的程序。除此之外,Client/Server協(xié)議還可以利用共享的內(nèi)存空間客戶端和服務器之間傳播數(shù)據(jù)。Nano-X可在每個客戶機上步運行,這意味著一旦發(fā)送了客戶機請求包,服務器在另一個客戶機提供服務之前一直等待,直到整個包到達為止。這使得服務器代碼非常簡單,而運行速度仍非??臁? 4 Micorowindows上的FLTK API FLTK是一個簡單靈活的GUI工具箱,特別適用于占用資源很少的環(huán)境。它提供大多數(shù)窗口構件一一按鈕、對話框、文本框以及出色的“賦值器”選擇(用于輸入數(shù)值的窗口構件),還包括滑動器、滾動條、刻度盤等其它構件。針對Microwindows GUI引擎的FLTK的Linux版本被稱為FLNX,它能用來為嵌入式環(huán)境創(chuàng)建一個出色的UI構建器,由兩個構件組成:FI_Widget和 FLUID。FI_Widget由所有基本窗口構件API組成,占用40~48KB的資源。FLUID(Fast Light User Interface Desigher,快速輕巧的用戶界面設計器)是用來產(chǎn)生FLTK源代碼的圖形編輯器,占用大約380KB資源(包括每個窗口構件)。 FLTK是一個C++庫,由于大多數(shù)現(xiàn)代GUI環(huán)境都是面向?qū)ο蟮?,這命名編寫的應用程序移植到類似的API中會更容易。 結語 Microwindows正在嵌入式開發(fā)領域穩(wěn)步發(fā)展,是完全免費的開放式源代碼,為嵌入式設備提供了更多的解決方案;任何對將Linux定制于PDA、掌上機或者可移動設備感興趣的人都可從因特網(wǎng)免費下載,并將其移值或開發(fā)。熟悉圖形應用程序的用戶可以很快就在該系統(tǒng)上編寫自己的圖形應用程序,在未來的嵌入式系統(tǒng)設計中,它的作用是無可限量的。[!--empirenews.page--]

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅(qū)動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅(qū)動性能的關鍵。

關鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質(zhì)量和效率直接關系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅(qū)動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關鍵字: LED 驅(qū)動電源 開關電源

LED驅(qū)動電源是把電源供應轉換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅(qū)動電源
關閉