《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于DSP的數(shù)字示波器GUI的開發(fā)
基于DSP的數(shù)字示波器GUI的開發(fā)
摘要: 本文這款數(shù)字示波器是普源精電(RIGOL)公司推出的DS1000系列,其設(shè)計完全自主完成,,貼近國人使用習(xí)慣,。其用戶圖形界面(GUI)是在VisualDSP++ 4.0 Kernel的基礎(chǔ)上開發(fā)的,界面風(fēng)格緊緊與儀器的功能相聯(lián)系,。
關(guān)鍵詞: DSP GUI 數(shù)字示波器 DS1000
Abstract:
Key words :

  隨著嵌入式系統(tǒng)應(yīng)用領(lǐng)域的不斷擴(kuò)大,,系統(tǒng)復(fù)雜性也在不斷提高。所以在嵌入式系統(tǒng)中實現(xiàn)用戶圖形化(GUI),,已經(jīng)成為大勢所趨。在測量儀器中,,圖形化界面也是廣泛采用,,一種是嵌入操作系統(tǒng),大多數(shù)的用戶圖形化界面(GUI)都是在操作系統(tǒng)(如OS,、WinCE,、Linix)的支持下, 調(diào)用系統(tǒng)的各種API函數(shù)實現(xiàn)的,。這些操作系統(tǒng)為實現(xiàn)GUI提供了大量的庫函數(shù),,也為編程人員提供了界面設(shè)計的良好平臺,。但是這種嵌入技術(shù),對硬件要求高,,相當(dāng)于嵌入一臺計算機(jī),,如利用WinCE就可以十分方便的設(shè)計出具有Windows風(fēng)格的圖形界面。另一種是,,直接利用DSP技術(shù),,開發(fā)小型系統(tǒng)。這種系統(tǒng)精簡,,對硬件要求低,,但功能相對單一。

  本文這款數(shù)字示波器是普源精電(RIGOL)公司推出的DS1000系列,,其設(shè)計完全自主完成,,貼近國人使用習(xí)慣。其用戶圖形界面(GUI)是在VisualDSP++ 4.0 Kernel的基礎(chǔ)上開發(fā)的,,界面風(fēng)格緊緊與儀器的功能相聯(lián)系,。在完成了儀器的波形和菜單等顯示的基礎(chǔ)上,RIGOL團(tuán)隊也做了一些通用性的用戶圖形界面,,如文件管理器等,。當(dāng)然,所設(shè)計的用戶圖形界面,,在功能強(qiáng)大方面是遠(yuǎn)不能與WinCE等所比擬的,,但是對于儀器的使用者來說,已經(jīng)是足夠的方便——因為這畢竟是儀器的用戶圖形界面,,而不是掌上電腦PDA的用戶圖形界面,。

  用戶界面實現(xiàn)原理

  用戶圖形界面的實現(xiàn),需要硬件,、軟件上的支持,。如圖1所示,通過操作平臺(operation platform)的調(diào)配,,調(diào)用顯示程序,,顯示程序刷新顯示緩存,再由顯示驅(qū)動程序,,將顯示緩存中的內(nèi)容顯示到液晶屏上,。

                             RIGOL DS1000數(shù)字示波器用戶圖形界面實現(xiàn)的原理圖
                   圖1 RIGOL DS1000數(shù)字示波器用戶圖形界面實現(xiàn)的原理圖

下面簡要的介紹圖1中主要的幾個組成部分。

  GUI圖形標(biāo)準(zhǔn)庫

  要在用戶圖形界面上顯示各種的圖形,、圖案,,除了硬件電路的支持外,還需要強(qiáng)大的軟件支持。而其中(GUI)的圖形標(biāo)準(zhǔn)庫為最基礎(chǔ),,而不可或缺的,。用戶圖形界面(GUI)的圖形標(biāo)準(zhǔn)庫包括最基本的畫點、畫線,、畫矩形,、填充矩形、畫圓形,、放置bmp格式的圖案,、顯示中、英文等函數(shù),,該圖形庫功能越強(qiáng)大,,就越可以支持復(fù)雜的用戶圖形界面(GUI)。

  GUI的操作平臺的支持

  僅僅有了繪制圖形的圖形標(biāo)準(zhǔn)庫,,要實現(xiàn)用戶圖形界面,,還是遠(yuǎn)遠(yuǎn)不夠。圖形庫是單一畫面不可缺少的,,但是要形成有機(jī)的,、可操作的用戶圖形界面,還需要后臺有一個穩(wěn)定,、功能強(qiáng)大的操作系統(tǒng)平臺,。

  操作平臺根據(jù)用戶的外界輸入(一般是鍵盤),以及系統(tǒng)當(dāng)前的狀態(tài)來決定下一步系統(tǒng)的狀態(tài),,從而調(diào)用相應(yīng)的GUI界面,。如此,便實現(xiàn)了用戶圖形界面,。

  實現(xiàn)圖形化的硬件原理

  RIGOL DS1000系列數(shù)字示波器采用的是320×234分辨率的TFT液晶顯示器,,通過液晶的驅(qū)動電路,可以使液晶正常顯示,,通過幀信號同步,、行信號同步、數(shù)據(jù)信號的時鐘(clock)同步,,顯示點陣的數(shù)據(jù)將被從SDRAM中寫入到液晶顯示器的顯示緩沖器中,,從而顯示出彩色圖像。

  從圖1可以看出,,如果要更新液晶顯示器顯示的內(nèi)容,,我們只需更新LCDbuffer中的顯示數(shù)據(jù)就可以了。

用戶圖形界面(GUI)軟件的設(shè)計思路

  界面種類的劃分

  對于用戶圖形界面(GUI)的設(shè)計不能簡單,、統(tǒng)一的完成,要考慮到用戶在各種情況下的操作界面。根據(jù)這些界面所具備的共同點,,我們將這些界面分成如下的種類,,同一種類的界面中將具備相同或者相似的功能區(qū)域。每一種界面都會有相應(yīng)的處理程序,,也有專門的數(shù)據(jù)結(jié)構(gòu),。

  根據(jù)實現(xiàn)的不同功能劃分出如下的界面種類:

  A. 背景網(wǎng)格顯示界面;B.波形顯示界面,;C. 幫助文檔瀏覽界面,;D.菜單顯示界面;E. 文件管理瀏覽器界面,;F. 文件名稱輸入界面,;J.前景內(nèi)容顯示界面(包括各種參數(shù)顯示信息,測量信息以及提示信息等),。
各界面種類如圖2,、3所示。

                     RIGOL DS1000數(shù)字示波器圖形界面說明1
                       圖2 RIGOL DS1000數(shù)字示波器圖形界面說明1

 

                        RIGOL DS1000數(shù)字示波器圖形界面說明2
                    

 

    圖3 RIGOL DS1000數(shù)字示波器圖形界面說明2

 

  界面區(qū)域與外界輸入的相互配合響應(yīng)

  由以上可知,,顯示的圖形雖然形形色色,,但是它們都可以抽象成具有共同屬性的某種數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)就好比是圖形界面的靈魂,,掌握了數(shù)據(jù)結(jié)構(gòu),,就可以讓圖形界面隨之而變。

  那么如何設(shè)計,、控制,、改變這些數(shù)據(jù)結(jié)構(gòu)就成為實現(xiàn)用戶圖形界面(GUI)的關(guān)鍵了。要響應(yīng)外界用戶的輸入,,我們需要制定一套機(jī)制運(yùn)行法則,,而這套機(jī)制運(yùn)行法則就是狀態(tài)機(jī)(system status machine),也是用戶用以操作儀器的操作平臺(operation platform),。依據(jù)這套運(yùn)行法則,,我們的系統(tǒng)根據(jù)外界的輸入來更改各種界面下使用的數(shù)據(jù)結(jié)構(gòu),從而實現(xiàn)用戶對圖形界面的操作,。

  當(dāng)然,,在實際的設(shè)計中,操作平臺不僅僅是改變GUI的數(shù)據(jù)結(jié)構(gòu),,還要考慮任務(wù)調(diào)度以及其他任務(wù)模塊中的數(shù)據(jù)結(jié)構(gòu)的改變,。

  數(shù)字示波器的用戶圖形界面(GUI)的軟件設(shè)計流程

  設(shè)計出一個好的用戶圖形界面,是一個龐大而巨細(xì)的工程,。涉及到方方面面的相互關(guān)系,,也涉及到實現(xiàn)過程中的許多細(xì)節(jié)的問題。

  如何理清這些繁多的變化關(guān)系是設(shè)計的關(guān)鍵。RIGOL團(tuán)隊曾經(jīng)使用一些全局變量作為各種狀態(tài),、各種模式下的標(biāo)志,,用以改變用戶的圖形界面。但是因為變量的眾多,,導(dǎo)致變量之間的搭配的可能性成倍的增加,,狀態(tài)的轉(zhuǎn)移關(guān)系也就會成倍的增加。這對于編程者來說,,與其說是在編程,,還不如說是在做一道極其龐雜的邏輯組合題。

  所以,,這樣的思路在理論上是可行的,,但在實際中是不可取的。我們應(yīng)該盡量的去其枝葉,,找到能夠貫穿整個系統(tǒng),、標(biāo)志不同狀態(tài)以及模式的變量或者結(jié)構(gòu)。最終,,我們以鍵盤的輸入鍵值為主線,,輔以各種的全局變量,來控制系統(tǒng)狀態(tài)的變化,。鍵值雖然有許多,,但是因為只有這么一個變量作為狀態(tài)量,系統(tǒng)狀態(tài)的變化就可以在掌控之中了,。所以,,在這個系統(tǒng)中,鍵值變量KEY_ID成為了主角,,用戶界面將圍繞其進(jìn)行改變,。

  鍵值變量KEY_ID要根據(jù)用戶的輸入進(jìn)行改變。這里就不描繪狀態(tài)變量是如何轉(zhuǎn)移的,。我們介紹對于既定的鍵值變量KEY_ID是如何完成用戶圖形界面輸出的,。圖4為實現(xiàn)用戶圖形界面的軟件流程圖。

      RIGOL DS1000系列示波器數(shù)字實現(xiàn)用戶圖形界面的軟件流程圖
               圖4 RIGOL DS1000系列示波器數(shù)字實現(xiàn)用戶圖形界面的軟件流程圖

  結(jié)語

  目前,,國內(nèi)的數(shù)字示波器,,除了測量信號的性能指標(biāo)較低外,在系統(tǒng)的整體性,、用戶的可操作性等功能上都不及國外產(chǎn)品考慮得周詳,。

  為了彌補(bǔ)國內(nèi)產(chǎn)品在這方面的缺陷,RIGOL開發(fā)團(tuán)隊開發(fā)出的這款DS1000系列數(shù)字示波器除了實現(xiàn)高存儲深度,、高測量精度等功能之外,,更是注重了圖形用戶界面的設(shè)計,。繼續(xù)保持其在技術(shù)上的創(chuàng)新和人性化、本土化的優(yōu)勢,,新的用戶圖形界面使得用戶能夠比以往更加容易測量與分析波形,。

  隨著儀器的功能增多,會對用戶圖形界面(GUI)提出更高的要求,,那么就要求GUI更加系統(tǒng)化、模塊化,、功能化,。所以,在這方面還有許多工作要做,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。