APP下载

波形编辑软件界面与处理模块设计

2012-04-29王力生毕文峰

电脑知识与技术 2012年20期

王力生 毕文峰

摘要:波形编辑软件作为数据域测试的重要仪器,在测试设备中发挥着重要的作用,正日益引起人们的重视。并且它是随着用户自定义的测试波形的需要形成和发展起来的。目前波形编辑软件已经广泛运用于FPGA测试、磁盘驱动测试、串行数据通信、汽车防抱死、生物医学模拟以及汽车发动机控制等领域。文章着重阐述了设计波形编辑软件中的几个关键技术——波形编辑软件的界面与模块的设计、波形刷新延迟问题的解决。通过实践表明,该方法对开发波形编辑软件和测试软件具有一定的参考价值[3]。

关键词:波形编辑软件;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概述

在现代测试平台的构建中,波形编辑器是其中一个必不可少的模块,它不仅可以让设计者图形化地观测需要被验证的信号,而且可以使用户编辑波形例如拖拉触发沿、拷贝、粘贴以及画新的波形信号。由于波形编辑器不仅能产生测试过程中的测试向量,而且能够以图形化的方式直观地显示测试结果,所以对它的研究和开发已开始引起人们的广泛关注

2软件界面和模块设计

波形编辑软件主要由界面设计、波形编辑、数据处理与波形显示、数据交换接口四部分组成。其中界面设计的质量直接决定了整个软件的外观和用户体验的好坏。数据处理是指如何定义波形的数据结构,它不仅是进行波形编辑和显示的前提,也直接决定整个软件系统的性能。在测试系统中,波形编辑是指仿真前测试信号的定义,波形显示是指测试结束后对反馈的信号数据进行图形化的波形显示。数据交换接口是用于实现波形编辑软件和底层测试平台的通信。其中界面的设计、波形数据的处理以及各个模块的设计是整个波形编辑软件设计的关键。

2.1软件界面设计

用户界面是对用户与系统间进行交互所采用的方式、途径、内容、布局及结构的总称。它是用户与计算机通过软件进行信息交流的接口。当前的软件界面都是采用图形用户界面的方式,具有简单,直观、良好的可读性和可操作性等特点。

2.1.1用户界面的总体结构设计

在Windows平台下,利用.NET图形界面开发工具,在设计波形编辑软件界面时,主要的内容包括主界面窗口的设计、波形编辑窗口的设计、初始化窗口的设计、参数设置对话框的生成。

其中主界面窗口分为菜单栏和工具栏两大部分,在菜单栏和工具栏中,主要有如表1,表2所示的几项。

在波形编辑界面中,主要有刻度尺、引脚信息和引脚波形三个区域。其中刻度尺将波形和时间参数对应起来。引脚信息包含了该引脚信号的名称和当前值信息。引脚波形是与该引脚对应的波形信号。波形的所有初始化、编辑、显示功能都是在这个界面上完成的。所以说它是整个波形编辑器的核心。

波形初始化窗口是用来完成对各类引脚信号初始化参数的设置。其中包括输入输出引脚信号、总线信号、计数器信号、激励信号。由于每种信号所需要的参数是不同的,所以要在初始化参数对话框中根据不同的信号类型选择相应的Tab选项来对其参数进行设置。

参数设置对话框完成的是对波形编辑参数的设置。主要是指编辑的最小周期、仿真时间、放大倍数的设置。通过该功能可以大大提高了编辑操作的灵活性和易用性。

2.1.2界面的功能实现

实现的功能如下:

当打开程序后,首先进入的就是主界面窗口。当多次单击主界面工具栏上的新建按钮,便可以同时打开多个波形编辑窗口。在进行波形初始化的时候,首先需要双击波形编辑窗口中的引脚区域,弹出波形初始化对话框,当用户输入完初始化信息后,点击确认按钮就完成了对引脚信号的初始化操作。在波形编辑界面上,我们可以实现的编辑功能有:放大、缩小、复制、粘贴、变0、变1、变高阻、总线编辑等功能。除总线的编辑功能外,其它功能都可以通过先“选中”,然后再单击主面板上的相应按钮来实现。由于总线编辑比较特殊,需要双击波形区域中的某条总线,然后弹出总线的编辑对话框。它里面包括了总线改变后的值、改变的起始位置和终止位置。先对这些项进行设置后单击确认按钮,便实现了对总线的编辑功能。

界面的关系和工作流程如图1所示:

2.2功能模块设计

波形编辑软件不仅要图形化地观测需要被验证的信号,而且要实现对波形的可视化编辑。一般来说,它必须具备的基本功能包括:1)输入功能:向计算机输入各种命令和数据,产生测试领域中需求的各种波形数据信号。2)存储功能:波形编辑软件的根本目的是为了产生送高速DA进行转换的波形数据信号,因此必须能够对产生的数据信号进行存储和加载操作。3)交互功能:实现对产生的或已有的波形数据进行编辑处理。4)输出功能:显示和保存波形编辑结果以及实现人机交互。综上分析,波形编辑软件功能需求如下:

1)提供可视化的编辑界面;

2)支持各种标准的波形编辑功能(如创建、删除、选中、放大、缩小、导入、导出、变0、变1、变不确定、变高阻);

3)实现编辑软件和底层硬件平台的通信。

同一般的矢量图形系统相比较,波形编辑软件不需要维护图层的概念,但是由于行业应用的不同,波形编辑软件有其自身的一些特点,尤其是在对波形进行编辑的过程,其波形数据一定要和时间参数对应起来,正是由于这个特性使得传统的解决方案并不适合波形编辑软件的开发[4]。

综上分析,波形编辑软件根据功能划分,主要由中心控制某块、波形产生模块、波形编辑模块、波形存储模块四部分构成。其大致关系如图2所示:

其中波形产生模块可以通过两种方式产生波形。第一种是通过用户提供的初始化参数产生波形;第二种是通过导入自定义的波形文件来产生波形。其中波形编辑模块是整个系统的核心,它提供了波形处理过程中的一些常用功能,例如放大、缩小、移动、变0、变1、变高阻等功能。波形存储模块提供了波形数据的导入和导出功能,我们可以通过该模块实现将波形数据保存为我们自定义的文件格式,方便用户对波形数据进行存储。

2.3数据模块设计

数据模块的设计包括两个方面:1)如何设计波形文件的存储格式;2)如何设计数据处理过程中波形数据的数据结构。

2.3.1波形文件格式

波形在导入导出时,可能要存储大量的波形数据。如何定义波形文件的格式,成为了实现波形存储的关键。因为文件格式设计的好坏,直接决定波形文件的大小以及通用性。而在波形数据中可能包含大量的信息,如果我们采取存储波形中每个结点信息的方式,那么数据量将会大的惊人。所以为了对波形文件进行压缩存储,我们仅仅保存波形中数据发生变化的结点信息。图3,图4是一个波形样例和其对应的波形文件内容。

2.3.2波形数据结构设计

在数据处理过程中,一般需要三个数据结构,分别是WaveNode、WaveLine、WaveIndex,其中WaveNode是一个结构体,它存储每条波形的变化结点信息,WaveLine存放的是每条波的信息,WaveIndex存放整个界面所有的波形,主要用于对整个波形文件进行索引。下面我们分别来介绍一下这三个数据结构。

在WaveNode中,包含NodeIndex和NodeValue两个元素,分别存储单波变化结点的列号和该结点的值.其大致结构如图5所示:

图5单波变化结点的存储单元

在WaveLine中,包含LineNo、LineName,、WaveList三个元素,分别用于存储单波的行序号、引脚名、所有的变化结点(它是一个数组,存放的是该条波中所有数据发生变化的结点)其大致结构如图6所示:

图6单波存储单元

WaveIndex里存放了编辑界面中所有的波形,通过它可以索引到其中的任意一条波形。我们可以通过WaveIndex找到相应的WaveLine,然后的WaveLine根据它的WaveNode显示波形。它和WaveLine和WaveNode关系如图7所示:

3.2挖掘数据处理的并发性

当我们在进行波形编辑的时候,基本上都需要先选波,然后再改变数据结构,最后对波形进行重绘,如果单单只用一个线程来完成这些工作,就会给波形的刷新带来延迟问题。而且在数据处理过程中,往往都涉及到对数据结构的遍历,并且在很多情况下,都需要用到一次甚至两次循环,如果在波形信息不大的情况下,这对于波形刷新的影响并不是很明显,但随着波形信息量的增加,就会带来非常严重的刷新延迟问题。因此我们需要借助一些编译工具(例如TBB和OpenMP),来挖掘数据处理过程中的一些并行性,从而提高数据处理效率和缓解延迟问题。

波形编辑软件已成为测试设备中不可或缺的一部分,该文从软件的界面设计和处理模块设计出发,对软件的基本设计思路进行了详细的介绍,并针对软件设计过程中,可能出现的波形刷新延迟问题,提出了一些可行的解决方案。

[1] Senthil Mani.Using User Interface Design to enhance Service Identification[C].IEEE International Conference on Web Services,2008.

[2]张学锋,胡长江.功能各异的各种任意波形发生器[J].国外电子测量技术,2000(4):17-18.

[3]陈昌勇.任意波形编辑器的设计与实现[D].天津:天津大学,2007.

[4]吴蓓.任意波发生器人机交互界面及其数据处理模型设计[D].成都:电子科技大学,2009:12-14.

[5] Jennifer Ferreira.Agile Development Iterations and UI Design[C].IEEE Computer Society,2007.

[6]张晴晖,李俊荻.基于ZigBee的环境监测系统的设计[J].国外电子测量技术,2010,29(1).

[7]白森,苏延川.基于USB协议的DSP高速上位机接口设计[J].现代电子技术,2011(15).

[8]李瑞金,彭双生.基于VB的上位机与DSP之间的通信研究与实现[J].煤矿机械,2011(9).