當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]μC/GUI在嵌入式智能監(jiān)控系統(tǒng)中的移植研究與應(yīng)用

摘要:為了使智能監(jiān)控系統(tǒng)具有人機交互功能,以DE2開發(fā)板為驗證平臺,通過編寫VGA IP核以及在SoPC Builder搭建硬件環(huán)境,移植嵌入式圖形界面軟件μC/GUI到NiosⅡ嵌入式軟件開發(fā)環(huán)境。實驗結(jié)果表明,μC/GUI成功移植到NiosⅡ嵌入式開發(fā)平臺中,可以實現(xiàn)μC/GUI文字顯示、繪圖以及窗口管理等功能,并可以外接任何具有VGA接口的LCD顯示器。
關(guān)鍵詞:人機交互;μC/GUI;移植;NiosⅡ

0 引言
    人機交互是智能化嵌入式產(chǎn)品一項重要功能,在設(shè)計智能監(jiān)控系統(tǒng)時人機交互需要界面設(shè)計軟件,常用的圖形界面軟件有MiniGUI,QT/Embedded,OpenGUI等。Altera公司NiosⅡ已經(jīng)集成了μC/OS-Ⅱ系統(tǒng)。μC/OS-Ⅱ是一個實時多任務(wù)內(nèi)核,不具有現(xiàn)代操作系統(tǒng)的線程,上述GUI不能方便的運行。
    μC/GUI是一個優(yōu)秀的嵌入式圖形用戶界面,具有眾多的優(yōu)點。如,代碼開源,占用系統(tǒng)資源少,所有的代碼均由ANSIC實現(xiàn),功能強大且易于移植,可以應(yīng)用于任何的LCD控制和CPU任何尺寸的物理與虛擬顯示,非常適合用于資源有限的嵌入式系統(tǒng)中。同時,μC/GUI與μC /OS-Ⅱ都是美國Micrium公司產(chǎn)品,μC/GUI能輕易地在μC/OS-Ⅱ上應(yīng)用,實現(xiàn)與μC/OS-Ⅱ的無縫結(jié)合。
    本文在設(shè)計具有人機交互功能的基于NiosⅡ的嵌入式智能監(jiān)控系統(tǒng)時,為實現(xiàn)友好的人機交互和更加方便的顯示,將μC/GUI移植到NiosⅡ嵌入式平臺,系統(tǒng)采用通用液晶顯示器顯示,具有更加廣泛的通用性。

1 硬件系統(tǒng)設(shè)計
   本系統(tǒng)設(shè)計采用的硬件平臺是Altera公司生產(chǎn)的DE2開發(fā)板,使用軟件是QuartusⅡ9.0,F(xiàn)PGA芯片是EP2C35F672C6,通過VGA接口連接液晶顯示器顯示,利用QuartusⅡ軟件的SOPC Builder搭建的系統(tǒng)設(shè)計如圖1所示。其中,PS/2 IP核是采用AItera公司大學(xué)計劃中的IP核,SDR AM為系統(tǒng)運行時的內(nèi)存。在系統(tǒng)中運行交互界面時,通過PIO傳輸系統(tǒng)設(shè)置的參數(shù),控制硬件實現(xiàn)的視頻的采集、顯示與相關(guān)視頻分析算法的實現(xiàn)。


    VGA IP核采用突發(fā)傳輸模式,這樣可以提高從端口的數(shù)據(jù)吞吐量,在主端口一次多個數(shù)據(jù)單元的時候,可以達到極高的效率。在本設(shè)計的VGA IP核設(shè)計一次傳輸10個數(shù)據(jù)單元,額外的burstcount信號為4位。

2 μC/GUI移植
    本系統(tǒng)采用μC/GUI 3.98版本進行移植,在移植μC/GUI之前,有必要熟悉μC/GUI的軟件體系結(jié)構(gòu)與文件結(jié)構(gòu),μC/GUI的軟件體系結(jié)構(gòu)如圖2所示。

[!--empirenews.page--]
    μC/GUI函數(shù)庫為用戶程序提供GUI接口,包含的函數(shù)有文本、數(shù)值、二維圖形、輸入設(shè)備以及各種窗口對象。其中,輸入設(shè)備可以是鼠標(biāo)、鍵盤或觸摸屏;二維圖形包括圖片、直線、多邊形、圓、橢圓、圓弧等;窗口對象包括按鈕、編輯框、進度條、復(fù)選框等。μC/GUI由庫
函數(shù)目錄GUI和配置文件目錄Config兩個目錄組成,表1是μC/GUI目錄結(jié)構(gòu),帶星號的都是可選項。


    其中Config目錄下包括3個文件分別是LCDConf.h、GUIConf.h和GUITouchConf.h,3個文件分別用來配置LCD驅(qū)動、μC/GUI配置、觸摸屏的配置。μC/GUI移植主要就是對Config文件以及LCDDriver的移植,針對不同的平臺做相應(yīng)的修改。
2.1 配置文件的移植
    GUIConf.h是μC/GUI的基本屬性配置文件,有很多開關(guān)可以配置,配置的內(nèi)容包括是否采用內(nèi)存設(shè)備,是否采用窗口管理器,是否支持操作系統(tǒng)、觸摸屏,以及配置動態(tài)內(nèi)存的大小等。具體可以參考μC/GUI的用戶手冊,這里只需配置幾個必要的參數(shù)如下:
[!--empirenews.page--]
2.2 LCD驅(qū)動文件的移植
    由于采用VGA顯示,根據(jù)LCDConf.h對LCD_CONTROLLER的配置,在LCD驅(qū)動文件目錄下選擇LCDDummy.c,刪除其他無關(guān)的驅(qū)動文件,LCD驅(qū)動文件負責(zé)把μC/GUI的各種函數(shù)解釋成LCDconf.h文件中定義的液晶接口函數(shù),這個文件與具體的硬件連接無關(guān),LCD驅(qū)動在SDRAM開辟幀緩沖以及往VGAIP中寫入數(shù)據(jù),在函數(shù)LCD_Controller_Init()完成,開辟顯示緩沖區(qū)由framebuffer=(aIt_u32*)alt_uncached_malloc(LCD _XSIZE*LCD_YSIZE*LCD_BITSPERPIXEL/2)實現(xiàn)。同時編寫void LCD_L0_SetPixelIndex(int x,int y,int PixelIndex)和unsigned int LCD_L0_GetPixelIndex(int x,int y)這2個函數(shù),分別是設(shè)置一個像素和獲取一個像素的顏色,后面很多操作如畫點、線、圓等都需要調(diào)用這2個函數(shù)。
2.3 接口函數(shù)移植
    由于支持μC/OS-Ⅱ操作系統(tǒng),所以要對GUI_X_μCOS.c文件進行修改,GUI_X_μCOs.c定義了GUI與RTOS的接口函數(shù),使之能與μC/OS-Ⅱ操作系統(tǒng)實現(xiàn)無縫銜接,要增加系統(tǒng)延時函數(shù)OSTimeDly(1),void GUI_X_Execldle(void){OS_X_Dday(1);}改為:

    到此,μC/GUI移植需要修改的代碼部分已經(jīng)全部完成。

3 μC/GUI應(yīng)用程序開發(fā)實例
    根據(jù)平臺修改完配置、驅(qū)動文件和接口函數(shù)之后,在NiosⅡ9.0 IDE建立一個新的工程,選擇工程操作系統(tǒng)為μC/OS-Ⅱ,將已經(jīng)修改好的Config和GUI文件夾以及GUI_X_μCOS.c拷貝到建立的工程目錄下,可以根據(jù)實際需求,刪掉一些不需要的功能文件,減少編譯時間以及編程生成的執(zhí)行文件的大小。根據(jù)需求編寫相應(yīng)的應(yīng)用程序,要使PS/2IP核正確使用,在應(yīng)用程序中要用要alt_up_ps2_open_dev(“/  dev/ps2”),開啟PS/2 IP核,同時要正確顯示圖形界面在顯示界面代碼之前要調(diào)用GUI_Init()函數(shù),它的功能是初始化GUI,同時初始化LCD控制器與顯示緩沖區(qū)。Nios II IDE編譯器成功編譯工程還要為移植的文件添加相應(yīng)的路徑,在include路徑要包括Config、GUI/Core,GUI/Widget和GUI/WM,編譯完成之后的工程目錄如圖3所示。成功編譯之后將程序下載到DE2開發(fā)平臺,程序運行嵌入式智能監(jiān)控系統(tǒng)交互界面,運行畫面如圖4所示。


    交互界面顯示了系統(tǒng)標(biāo)志,按鍵、窗口以及鍵盤,每個按鍵代表一個功能,按鍵按下,彈出參數(shù)輸入窗口,可以在鍵盤輸入相關(guān)的參數(shù)通過PIO傳輸?shù)接布K。

4 結(jié)語
    本文詳細介紹了μC/GUI在NiosⅡ嵌入式系統(tǒng)中的移植過程,包括從硬件平臺的搭建到μC/GUI配置文件、驅(qū)動文件和接口函數(shù)的修改,采用自己編寫的VGA顯示IP核,使系統(tǒng)可使用任何通用的液晶顯示器,與其他很多專用的LCD驅(qū)動而言,本系統(tǒng)具有很強的通用性。結(jié)果表明,μC/GUI功能強大,易于移植,占用系統(tǒng)資源少,移植過程有很多可選功能,可以針對不同的需求,非常適用于資源有限的嵌入式系統(tǒng)中。
    同時μC/GUI還提供了仿真器以及位圖轉(zhuǎn)換工具,有助于我們應(yīng)用程序的開發(fā),在開發(fā)的過程中應(yīng)用程序可以在仿真器中完成而不必每次都在硬件平臺運行驗證。μC/GUI對鼠標(biāo)、鍵盤以及觸摸屏等的支持,將使基于NiosⅡ的智能監(jiān)控系統(tǒng)可以完全集成為監(jiān)視器中的一個功能模塊,具有很好應(yīng)用前景與研究意義。

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

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉