<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è) > 測試測量 > 設計應用 > 嵌入式系統中數字示波器用戶(hù)圖形界面的實(shí)現

嵌入式系統中數字示波器用戶(hù)圖形界面的實(shí)現

——
作者: 時(shí)間:2006-06-17 來(lái)源:中國電源門(mén)戶(hù)網(wǎng) 收藏
摘  要: 在系統中實(shí)現用戶(hù)圖形化(GUI),已經(jīng)成為大勢所趨。本文簡(jiǎn)要介紹了應用在RIGOL DS1000系列數字示波器上的用戶(hù)圖形界面的實(shí)現。重點(diǎn)分析了用戶(hù)圖形界面(GUI)的設計思路。并簡(jiǎn)單介紹了軟件設計結構和流程。
關(guān)鍵詞:用戶(hù)圖形界面(GUI);VisualDSP++ 4.0 Kernel;數據結構

    1 引言
隨著(zhù)系統應用領(lǐng)域的不斷擴大,系統復雜性也在不斷提高。所以在系統中實(shí)現用戶(hù)圖形化(GUI),已經(jīng)成為大勢所趨。目前,嵌入式系統中大多數的用戶(hù)圖形化界面(GUI)都是在操作系統(如OS、WinCE、Linix)的支持下, 調用系統的各種API函數實(shí)現的。這些操作系統為實(shí)現GUI提供了大量的庫函數,也為編程人員提供了界面設計的良好平臺。如利用WinCE就可以十分方便的設計出具有Windows風(fēng)格的圖形界面。
本文這款數字示波器是普源精電(RIGOL)公司推出的DS1000系列,其設計完全自主完成,貼近國人使用習慣。其用戶(hù)圖形界面(GUI)是在VisualDSP++ 4.0 Kernel的基礎上開(kāi)發(fā)的,界面風(fēng)格緊緊與儀器的功能相聯(lián)系。在完成了儀器的波形和菜單等顯示的基礎上,RIGOL團隊也做了一些通用性的用戶(hù)圖形界面,如文件管理器等。當然,所設計的用戶(hù)圖形界面,在功能強大方面是遠不能與WinCE等所比擬的,但是對于儀器的使用者來(lái)說(shuō),已經(jīng)是足夠的方便因為這畢竟是儀器的用戶(hù)圖形界面,而不是掌上電腦PDA的用戶(hù)圖形界面。

2  數字示波器上的用戶(hù)界面實(shí)現原理
用戶(hù)圖形界面的實(shí)現,需要硬件、軟件上的支持。如圖1所示,通過(guò)操作平臺(operation platform)的調配,調用顯示程序,顯示程序刷新顯示緩存,再由顯示驅動(dòng)程序,將顯示緩存中的內容顯示到液晶屏上。
下面簡(jiǎn)要的介紹一下上圖中主要的幾個(gè)組成部分:
    2.1 實(shí)現圖形化的硬件原理
RIGOL DS1000系列數字示波器采用的是320X234分辨率的TFT液晶顯示器,通過(guò)液晶的驅動(dòng)電路,可以使液晶正常顯示,通過(guò)幀信號同步、行信號同步、數據信號的時(shí)鐘(clock)同步,顯示點(diǎn)陣的數據將被從SDRAM中寫(xiě)入到液晶顯示器的顯示buffer中,從而顯示出彩色圖像。
從圖1可以看出,如果要更新液晶顯示器顯示的內容,我們只需更新LCDbuffer中的顯示數據就可以了。  
    2.2  實(shí)現用戶(hù)圖形界面(GUI)的圖形標準庫
要在用戶(hù)圖形界面上顯示各種的圖形、圖案,除了硬件電路的支持外,還需要強大的軟件支持。而其中(GUI)的圖形標準庫為最基礎,而不可或缺的。
用戶(hù)圖形界面(GUI)的圖形標準庫,包括最基本的畫(huà)點(diǎn)、畫(huà)線(xiàn)、畫(huà)矩形、填充矩形、畫(huà)圓形、放置bmp的圖案、顯示中、英文等等的函數,該圖形庫如果功能越強大,就越可以支持復雜的用戶(hù)圖形界面(GUI)。
      2.3  實(shí)現用戶(hù)圖形界面(GUI)的操作平臺的支持
僅僅有了繪制圖形的圖形標準庫,要實(shí)現用戶(hù)圖形界面,還是遠遠不夠。圖形庫是單一畫(huà)面不可缺少的,但是要形成有機的、可操作的用戶(hù)圖形界面,還需要后臺有一個(gè)穩定、功能強大的操作系統平臺。
操作平臺根據用戶(hù)的外界輸入(一般是鍵盤(pán)),以及系統當前的狀態(tài)來(lái)決定下一步系統的狀態(tài),從而調用相應的GUI界面。如此,便實(shí)現了用戶(hù)圖形界面。 



3  數字示波器的用戶(hù)圖形界面(GUI)軟件的設計思路
    3.1  界面種類(lèi)的劃分
對于用戶(hù)圖形界面(GUI)的設計不能簡(jiǎn)單、統一的完成,要考慮到用戶(hù)在各種情況下的操作界面。根據這些界面所具備的共同點(diǎn),我們將這些界面分成如下的種類(lèi),同一種類(lèi)的界面中將具備相同或者相似的功能區域。每一種界面都會(huì )有相應的處理程序,也有專(zhuān)門(mén)的數據結構。
根據實(shí)現的不同的功能我們劃分出如下的界面種類(lèi):
A. 背景網(wǎng)格顯示界面;B.波形顯示界面;B. 幫助文檔瀏覽界面;C.菜單顯示界面;D. 文件管理瀏覽器界面;E. 文件名稱(chēng)輸入界面;F.前景內容顯示界面(包括各種參數顯示信息,信息以及提示信息等)。
各界面種類(lèi)如下圖所示:
3.2  界面區域與外界輸入的相互配合響應
由以上可知,顯示的圖形雖然形形色色,但是他們都可以抽象成具有共同屬性的某種數據結構。數據結構就好比是圖形界面的靈魂,掌握了數據結構,就可以讓圖形界面隨之而變。
那么如何設計、控制、改變這些數據結構就成為實(shí)現用戶(hù)圖形界面(GUI)的關(guān)鍵了。
要響應外界用戶(hù)的輸入,我們需要制定一套機制運行法則,而這套機制運行法則就是狀態(tài)機(system status machine),也是用戶(hù)用以操作儀器的操作平臺(operation platform)。依據這套運行法則,我們的系統根據外界的輸入來(lái)更改各種界面下使用的數據結構,從而實(shí)現用戶(hù)對圖形界面的操作。
當然,在實(shí)際的設計中,操作平臺(operation platform)不僅僅是改變GUI的數據結構,還要考慮任務(wù)調度以及其他任務(wù)模塊中的數據結構的改變。

4  數字示波器的用戶(hù)圖形界面(GUI)的軟件設計流程
設計出一個(gè)好的用戶(hù)圖形界面,是一個(gè)龐大而巨細的工程。涉及到方方面面的相互之間的關(guān)系,也涉及到實(shí)現過(guò)程中的許多細節的問(wèn)題。
如何理清這些繁多的變化的關(guān)系,是設計的關(guān)鍵。RIGOL團隊曾經(jīng)使用一些全局變量,來(lái)做為各種狀態(tài)、各種模式下的標示,用以改變用戶(hù)的圖形界面。但是因為變量的眾多,導致變量之間的搭配的可能性成倍的增加,狀態(tài)的轉移關(guān)系也就會(huì )成倍的增加。這對于編程者來(lái)說(shuō),與其說(shuō)是在編程,還不如說(shuō)是在做一道及其龐雜的邏輯組合題。
所以,這樣的思路在理論上是可行的,但在實(shí)際中是不可取的。我們應該盡量的去其枝葉,找到能夠貫穿整個(gè)系統,標示不同的狀態(tài)以及模式的變量或者結構。最終,我們以鍵盤(pán)的輸入鍵值為主線(xiàn),輔以各種的全局變量,來(lái)控制系統狀態(tài)的變化。鍵值雖然有許多許多,但是因為只有這么一個(gè)變量做為狀態(tài)量,系統狀態(tài)的變化,就可以在掌控之中了。所以,在這個(gè)系統中,鍵值變量KEY_ID成為了主角,用戶(hù)界面將圍繞其進(jìn)行改變。 
鍵值變量KEY_ID要根據用戶(hù)的輸入進(jìn)行改變。在這里我們就不描繪狀態(tài)變量是如何轉移的。我們介紹對于既定的鍵值變量KEY_ID是如何完成用戶(hù)圖形界面的輸出的。
下圖為實(shí)現用戶(hù)圖形界面的軟件流程圖。

        5  結語(yǔ)
目前,國內的數字示波器,除了信號的性能指標較低外,在系統的整體性、用戶(hù)的可操作性等功能上不及國外產(chǎn)品考慮得周詳。
為了彌補國內產(chǎn)品在這方面的缺陷,RIGOL開(kāi)發(fā)團隊開(kāi)發(fā)出的這款DS1000系列數字示波器除了實(shí)現高存儲深度,高精度等功能之外,更是注重了圖形用戶(hù)界面的設計。繼續保持其在技術(shù)上的創(chuàng )新和人性化、本土化的優(yōu)勢,新的用戶(hù)圖形界面使得用戶(hù)能夠比以往更加容易測量與分析波形。
隨著(zhù)儀器的功能增多,會(huì )對用戶(hù)圖形界面(GUI)提出更高的要求,那么就要求GUI更加系統化、模塊化、功能化。所以,在這方面我們還有許多工作要做。

[1]VisualDSP++4.0 Kernal (VDK)User's Guide , Analog Devices, Inc. 2005
[2]Blackfin系列DSP原理與系統設計 ,陳峰, 電子工業(yè)出版社, 2004
[3]數據采集與處理技術(shù),馬明建,周長(cháng)城,西安交通大學(xué)出版社,2001
[4]數字電路設計與應用實(shí)踐教程,王振紅,機械工業(yè)出版社,2003
[5]軍用電子測量?jì)x器應用指南,梅勁松,電子工業(yè)出版社,2001
[6]RIGOL《DS5000系列數字示波器技術(shù)文件》,內部資料,2004


關(guān)鍵詞: 測量 測試 嵌入式 數字濾波器

評論


相關(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>