王力生 畢文峰
摘要:波形編輯軟件作為數(shù)據(jù)域測試的重要儀器,在測試設備中發(fā)揮著重要的作用,正日益引起人們的重視。并且它是隨著用戶自定義的測試波形的需要形成和發(fā)展起來的。目前波形編輯軟件已經(jīng)廣泛運用于FPGA測試、磁盤驅(qū)動測試、串行數(shù)據(jù)通信、汽車防抱死、生物醫(yī)學模擬以及汽車發(fā)動機控制等領域。文章著重闡述了設計波形編輯軟件中的幾個關(guān)鍵技術(shù)——波形編輯軟件的界面與模塊的設計、波形刷新延遲問題的解決。通過實踐表明,該方法對開發(fā)波形編輯軟件和測試軟件具有一定的參考價值[3]。
關(guān)鍵詞:波形編輯軟件;FPGA測試;刷新延遲;框架與模型設計
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2012)20-4895-04
A User Interface and Module Design for Waveform Editing Software
WANG Li-sheng1, BI Wen-feng2
(1.Department of Computer Science and Technology, Tongji University, Shanghai 201804, China; 2.Software Engineering, Tongji Univer? sity, Shanghai 201804, China)
Abstract: Waveform editing software plays important part in the field of the test, which attracts increasing attention among the people. The formation and development of waveform editor accompany with the need of user-defined test waveforms. Waveform editing software has been widely used in the FPGA test, disk drive test, the serial data communications, automotive anti-lock, biomedical simulation and au tomotive engine control and other fields. The article focuses on several key technology in the design of Waveform editing software, includ ing following two aspect: 1) Designing UI and model for waveform editing software. 2) Solving latency issue in the process of waveform re fresh. Through the practice shows that, this method has some reference value for the development of Waveform editing software and test software.
Key words: waveform editing software; FPGA test; refresh latency; design framework and model
1概述
在現(xiàn)代測試平臺的構(gòu)建中,波形編輯器是其中一個必不可少的模塊,它不僅可以讓設計者圖形化地觀測需要被驗證的信號,而且可以使用戶編輯波形例如拖拉觸發(fā)沿、拷貝、粘貼以及畫新的波形信號。由于波形編輯器不僅能產(chǎn)生測試過程中的測試向量,而且能夠以圖形化的方式直觀地顯示測試結(jié)果,所以對它的研究和開發(fā)已開始引起人們的廣泛關(guān)注
2軟件界面和模塊設計
波形編輯軟件主要由界面設計、波形編輯、數(shù)據(jù)處理與波形顯示、數(shù)據(jù)交換接口四部分組成。其中界面設計的質(zhì)量直接決定了整個軟件的外觀和用戶體驗的好壞。數(shù)據(jù)處理是指如何定義波形的數(shù)據(jù)結(jié)構(gòu),它不僅是進行波形編輯和顯示的前提,也直接決定整個軟件系統(tǒng)的性能。在測試系統(tǒng)中,波形編輯是指仿真前測試信號的定義,波形顯示是指測試結(jié)束后對反饋的信號數(shù)據(jù)進行圖形化的波形顯示。數(shù)據(jù)交換接口是用于實現(xiàn)波形編輯軟件和底層測試平臺的通信。其中界面的設計、波形數(shù)據(jù)的處理以及各個模塊的設計是整個波形編輯軟件設計的關(guān)鍵。
2.1軟件界面設計
用戶界面是對用戶與系統(tǒng)間進行交互所采用的方式、途徑、內(nèi)容、布局及結(jié)構(gòu)的總稱。它是用戶與計算機通過軟件進行信息交流的接口。當前的軟件界面都是采用圖形用戶界面的方式,具有簡單,直觀、良好的可讀性和可操作性等特點。
2.1.1用戶界面的總體結(jié)構(gòu)設計
在Windows平臺下,利用.NET圖形界面開發(fā)工具,在設計波形編輯軟件界面時,主要的內(nèi)容包括主界面窗口的設計、波形編輯窗口的設計、初始化窗口的設計、參數(shù)設置對話框的生成。
其中主界面窗口分為菜單欄和工具欄兩大部分,在菜單欄和工具欄中,主要有如表1,表2所示的幾項。
在波形編輯界面中,主要有刻度尺、引腳信息和引腳波形三個區(qū)域。其中刻度尺將波形和時間參數(shù)對應起來。引腳信息包含了該引腳信號的名稱和當前值信息。引腳波形是與該引腳對應的波形信號。波形的所有初始化、編輯、顯示功能都是在這個界面上完成的。所以說它是整個波形編輯器的核心。
波形初始化窗口是用來完成對各類引腳信號初始化參數(shù)的設置。其中包括輸入輸出引腳信號、總線信號、計數(shù)器信號、激勵信號。由于每種信號所需要的參數(shù)是不同的,所以要在初始化參數(shù)對話框中根據(jù)不同的信號類型選擇相應的Tab選項來對其參數(shù)進行設置。
參數(shù)設置對話框完成的是對波形編輯參數(shù)的設置。主要是指編輯的最小周期、仿真時間、放大倍數(shù)的設置。通過該功能可以大大提高了編輯操作的靈活性和易用性。
2.1.2界面的功能實現(xiàn)
實現(xiàn)的功能如下:
當打開程序后,首先進入的就是主界面窗口。當多次單擊主界面工具欄上的新建按鈕,便可以同時打開多個波形編輯窗口。在進行波形初始化的時候,首先需要雙擊波形編輯窗口中的引腳區(qū)域,彈出波形初始化對話框,當用戶輸入完初始化信息后,點擊確認按鈕就完成了對引腳信號的初始化操作。在波形編輯界面上,我們可以實現(xiàn)的編輯功能有:放大、縮小、復制、粘貼、變0、變1、變高阻、總線編輯等功能。除總線的編輯功能外,其它功能都可以通過先“選中”,然后再單擊主面板上的相應按鈕來實現(xiàn)。由于總線編輯比較特殊,需要雙擊波形區(qū)域中的某條總線,然后彈出總線的編輯對話框。它里面包括了總線改變后的值、改變的起始位置和終止位置。先對這些項進行設置后單擊確認按鈕,便實現(xiàn)了對總線的編輯功能。
界面的關(guān)系和工作流程如圖1所示:
2.2功能模塊設計
波形編輯軟件不僅要圖形化地觀測需要被驗證的信號,而且要實現(xiàn)對波形的可視化編輯。一般來說,它必須具備的基本功能包括:1)輸入功能:向計算機輸入各種命令和數(shù)據(jù),產(chǎn)生測試領域中需求的各種波形數(shù)據(jù)信號。2)存儲功能:波形編輯軟件的根本目的是為了產(chǎn)生送高速DA進行轉(zhuǎn)換的波形數(shù)據(jù)信號,因此必須能夠?qū)Ξa(chǎn)生的數(shù)據(jù)信號進行存儲和加載操作。3)交互功能:實現(xiàn)對產(chǎn)生的或已有的波形數(shù)據(jù)進行編輯處理。4)輸出功能:顯示和保存波形編輯結(jié)果以及實現(xiàn)人機交互。綜上分析,波形編輯軟件功能需求如下:
1)提供可視化的編輯界面;
2)支持各種標準的波形編輯功能(如創(chuàng)建、刪除、選中、放大、縮小、導入、導出、變0、變1、變不確定、變高阻);
3)實現(xiàn)編輯軟件和底層硬件平臺的通信。
同一般的矢量圖形系統(tǒng)相比較,波形編輯軟件不需要維護圖層的概念,但是由于行業(yè)應用的不同,波形編輯軟件有其自身的一些特點,尤其是在對波形進行編輯的過程,其波形數(shù)據(jù)一定要和時間參數(shù)對應起來,正是由于這個特性使得傳統(tǒng)的解決方案并不適合波形編輯軟件的開發(fā)[4]。
綜上分析,波形編輯軟件根據(jù)功能劃分,主要由中心控制某塊、波形產(chǎn)生模塊、波形編輯模塊、波形存儲模塊四部分構(gòu)成。其大致關(guān)系如圖2所示:
其中波形產(chǎn)生模塊可以通過兩種方式產(chǎn)生波形。第一種是通過用戶提供的初始化參數(shù)產(chǎn)生波形;第二種是通過導入自定義的波形文件來產(chǎn)生波形。其中波形編輯模塊是整個系統(tǒng)的核心,它提供了波形處理過程中的一些常用功能,例如放大、縮小、移動、變0、變1、變高阻等功能。波形存儲模塊提供了波形數(shù)據(jù)的導入和導出功能,我們可以通過該模塊實現(xiàn)將波形數(shù)據(jù)保存為我們自定義的文件格式,方便用戶對波形數(shù)據(jù)進行存儲。
2.3數(shù)據(jù)模塊設計
數(shù)據(jù)模塊的設計包括兩個方面:1)如何設計波形文件的存儲格式;2)如何設計數(shù)據(jù)處理過程中波形數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)。
2.3.1波形文件格式
波形在導入導出時,可能要存儲大量的波形數(shù)據(jù)。如何定義波形文件的格式,成為了實現(xiàn)波形存儲的關(guān)鍵。因為文件格式設計的好壞,直接決定波形文件的大小以及通用性。而在波形數(shù)據(jù)中可能包含大量的信息,如果我們采取存儲波形中每個結(jié)點信息的方式,那么數(shù)據(jù)量將會大的驚人。所以為了對波形文件進行壓縮存儲,我們僅僅保存波形中數(shù)據(jù)發(fā)生變化的結(jié)點信息。圖3,圖4是一個波形樣例和其對應的波形文件內(nèi)容。
2.3.2波形數(shù)據(jù)結(jié)構(gòu)設計
在數(shù)據(jù)處理過程中,一般需要三個數(shù)據(jù)結(jié)構(gòu),分別是WaveNode、WaveLine、WaveIndex,其中WaveNode是一個結(jié)構(gòu)體,它存儲每條波形的變化結(jié)點信息,WaveLine存放的是每條波的信息,WaveIndex存放整個界面所有的波形,主要用于對整個波形文件進行索引。下面我們分別來介紹一下這三個數(shù)據(jù)結(jié)構(gòu)。
在WaveNode中,包含NodeIndex和NodeValue兩個元素,分別存儲單波變化結(jié)點的列號和該結(jié)點的值.其大致結(jié)構(gòu)如圖5所示:
圖5單波變化結(jié)點的存儲單元
在WaveLine中,包含LineNo、LineName,、WaveList三個元素,分別用于存儲單波的行序號、引腳名、所有的變化結(jié)點(它是一個數(shù)組,存放的是該條波中所有數(shù)據(jù)發(fā)生變化的結(jié)點)其大致結(jié)構(gòu)如圖6所示:
圖6單波存儲單元
WaveIndex里存放了編輯界面中所有的波形,通過它可以索引到其中的任意一條波形。我們可以通過WaveIndex找到相應的WaveLine,然后的WaveLine根據(jù)它的WaveNode顯示波形。它和WaveLine和WaveNode關(guān)系如圖7所示:
3.2挖掘數(shù)據(jù)處理的并發(fā)性
當我們在進行波形編輯的時候,基本上都需要先選波,然后再改變數(shù)據(jù)結(jié)構(gòu),最后對波形進行重繪,如果單單只用一個線程來完成這些工作,就會給波形的刷新帶來延遲問題。而且在數(shù)據(jù)處理過程中,往往都涉及到對數(shù)據(jù)結(jié)構(gòu)的遍歷,并且在很多情況下,都需要用到一次甚至兩次循環(huán),如果在波形信息不大的情況下,這對于波形刷新的影響并不是很明顯,但隨著波形信息量的增加,就會帶來非常嚴重的刷新延遲問題。因此我們需要借助一些編譯工具(例如TBB和OpenMP),來挖掘數(shù)據(jù)處理過程中的一些并行性,從而提高數(shù)據(jù)處理效率和緩解延遲問題。
波形編輯軟件已成為測試設備中不可或缺的一部分,該文從軟件的界面設計和處理模塊設計出發(fā),對軟件的基本設計思路進行了詳細的介紹,并針對軟件設計過程中,可能出現(xiàn)的波形刷新延遲問題,提出了一些可行的解決方案。
[1] Senthil Mani.Using User Interface Design to enhance Service Identification[C].IEEE International Conference on Web Services,2008.
[2]張學鋒,胡長江.功能各異的各種任意波形發(fā)生器[J].國外電子測量技術(shù),2000(4):17-18.
[3]陳昌勇.任意波形編輯器的設計與實現(xiàn)[D].天津:天津大學,2007.
[4]吳蓓.任意波發(fā)生器人機交互界面及其數(shù)據(jù)處理模型設計[D].成都:電子科技大學,2009:12-14.
[5] Jennifer Ferreira.Agile Development Iterations and UI Design[C].IEEE Computer Society,2007.
[6]張晴暉,李俊荻.基于ZigBee的環(huán)境監(jiān)測系統(tǒng)的設計[J].國外電子測量技術(shù),2010,29(1).
[7]白森,蘇延川.基于USB協(xié)議的DSP高速上位機接口設計[J].現(xiàn)代電子技術(shù),2011(15).
[8]李瑞金,彭雙生.基于VB的上位機與DSP之間的通信研究與實現(xiàn)[J].煤礦機械,2011(9).