原创 一类虚拟示波器及信号发生器的设计和实现

2008-7-4 22:13 2936 6 6 分类: 测试测量
摘 要:论述了一类八通道虚拟存储式示波器以及信号发生器的设计过程及软件内容。作者使用Borland公司的Delphi开发工具,基于相关的数据采集卡,设计出的该系统目前已经在实验室中使用,对教学和实验以及科研都起到了奶好的辅助作用。

    关键词:虚拟示波器,信号发生器,数据采信Delphi,多线程


    1 引言


    我们知道,示波器和信号发生器在电子测量、测试仪器中得到了最广泛的使用。传统示波器功能比较单一、测试准确度差,而目前的数字存储示波器虽然测试准确度高,且具有较强的数字化处理能力,但是这种示波器价格昂贵,仪器功能模块固定,不具备用户对仪器进行定义和用户编程的功能。


    虚拟示波器采用计算机的虚拟技术,模拟数字存储示波器的操作和功能,它使用个人计算机及其信号采集接口电路来捕捉信号波形,并通过图形用户界面来模拟示波器的操作面板,对信号完成测量,并可用于工业过程自动控制中,对实时信号进行采集与分析。


    由于通过计算机串口[1]来实现,A/D和D/A硬件电路自我设计相对可靠性差、实现起来也比较繁琐,所以,选用基于ISA总线的数据采集卡,这样可保证硬件电路的可靠性。在软件设计时有采用Labview的[2][3],不过从软件灵活性、可扩展性角度出发,还是选用通用的编程语言较好。作者使用Borland公司的Delphi开发工具,基于相关的数据采集卡,设计出虚拟示波器和信号发生器,该系统目前已经在实验室中使用,效果良好,并得到有关专家的好评。下面就本软件的开发过程和内容作一些说明。


    2 总体结构说明


    设计时总的思路是将需要观测的物理信号经过相应的电压调节电路送入数据采集卡(A/D),然后再送入软示波器进行波形观测和处理。软信号发生器发出的信号经过数据采集卡(D/A)和相应的电压调节电路可以送入物理设备作为信号源使用。总体结构框图如图1所示。在这里,数据采集卡可以自己设计,也可以使用现有的产品。为了方便以及保证系统的精确度,作者在开发过程中使用的是台湾研华PCL711S(ISA接口)数据采集卡,这款数据采集卡速度快,性能高,价格相对全家特别适用于实验室使用。它提供8个模拟量输入通道,电压最大范围为+5V~-5V,1个模拟量输出通道,电压最大范围在0V~+10V。电压调节电路的作用是对超过数据采集卡测量范围的电压信号进行一定的比例调节,同时也可以对软信号发生器发出的信号进行一次的调节以适应实际物理设备的需要。


    19100_1_0802011852.jpg


    3 软件设计


    Delphi是一个优秀的编程开发工具,用它开发程序方便、快捷、且代码执行效率高。下面就软件设计中的各部分程序作简要的说明。


    3.1 数据采集卡的选择和设置程序


    这部分程序包括采集卡型号的选择(系统兼容研华PCL812PG等相关型号的数据采集卡),数据采集卡的输入输出设定、电压范围的设定。


    3.2 操作面板程序


    这部分程度包括控制面板和显示面板。控制面板中含有信号发生器的面板、示波器的控制面板。显示面板包括实时数据显示窗口、实时波形显示窗口,如图2所示。信号发生器的控制面板中含有波形选择(提供正弦波、方波、阶跃波三种)、幅值勤周期设定窗口。示波器的控制面板中含波形显示的速度调节(提供0.01秒/格~10秒/格)旋钮、显示幅度的设定窗口、实时波形的保存和打印以及开始、暂停、退出等控制按钮。实时波形显示窗口采用分页式显示8个通道的信号波形,每页可同时显示两通道,横轴为时间轴(分10小格)。


    


    19100_1_0802011853.jpg


    3.3 波形实时显示程序


    这部分程序是将数据采集卡采集到的数据以一定的波形显示出来,程序的精度达到每秒显示1000个数据。程序将采集的电压数值放入一数组中,同时把连续采集的电压数值在所选定的通道上按照所设定的波形显示速度在指定区域实时地显示出来,并仿照物理示波器进行滚屏显示。


    3.4 控制程序


    这部分程序对整个系统起到协调和控制作用,采集Windows多任务机制让CPU对各个任务进行循环侦测并响应各消息对列。这样达到对数据的采集、波形的绘制、鼠标和键盘的响应、信号波形的发生,其它一些程序运行等许多任务的协调和管理,使系统在运行当中对每一个动作都能作出及时的响应,以保证程序运行的精度和可靠性。


    3.5 信号波形发生程序


    产生三种常用的波形:方波、正弦波、阶跃波,波形周期0.1秒~20秒。首先判断要产生什么波形以及波形的幅值、周期、然后,按此要求产生波形并不断送给数据采集卡。


    4 部分核心程序代码


    4.1 模拟扫描电路的波形绘制程序核心摘要


    如果现在已采集一个电压值数据,则进行下列过程实现波形的绘制,然后,按照用户所设定的波形显示频率,采集一个电压值数据、调整时间轴x再循环进行接下来的过程。


    


    19100_1_0802011854.jpg


    下面的程序为:如果波形到达模拟屏终点,重新刷新模拟屏,从模拟屏起点继续波形的显示。


    


    19100_1_0802011855.jpg


    4.2 多线程控制程序核心摘要


    由于是八通道显示,这里采用分页显示的方法,每页两个通道,以1、2通道为例。


    波形绘制线程的类定义如下:


    19100_1_0802011855.jpg


    19100_1_0802011856.jpg


    如果CPU在执行多线程过程中发现其他动作,那么如何从波形绘制中跳出来呢?下面的程序就可实现实一功能。


    


    19100_1_0802011857.jpg


    5 系统简单使用说明


    首先要将研华数据采集卡的驱动程序装入计算机,并激活相应的采集卡。然后联上相应的设备,启动本系统程序,进入数据采集卡选择、输入通道、输出通道设置窗口。选择相应的功能选项并进行一定的设定,按开始按钮即可显示出实时的波形及相应的数据。如要存储正在显示的波形,只需按图形存储按钮即可。至于信号发生器,需要选择相应的发生波形,然后设置波形的幅值和周期,按开始按钮,这样,在数据采集卡的输出端就可产生相应的信号。


    6 结束语


    基于数据采集卡,用Delphi设计出虚拟示波器和信号发生器软件,实现了八通道采集和单通道输出,基本实现了数字式存储示波器的功能和常用信号发生器的三种常用信号源的功能。由于通过软件来实现,所以具有很大的扩展空间,可以在以后在使用中不断加强和完善其功能。本系统目前已经在实验室使用一年多,性能良好,对教学和实验以及科研都起到了奶好的辅助作用。


    参考文献


    [1] 谢云等.一种虚拟示波器的设计.微计算机信息,1998(6)


    [2] 汪红.虚拟示波器的软件实现.中南民族学院学报(自然科学版),2000(1)


    [3] 王宏.虚拟仪器技术及虚拟示波器和信号源的构建.壮族铁道学院学报,2000(3)


    [4]Steve Teixeira.Delphi5开发人员指南.北京:机械工业出版社,2000


来自中国IC37网

文章评论0条评论)

登录后参与讨论
我要评论
0
6
关闭 站长推荐上一条 /2 下一条