4.2 Agilent 54622D 100MHz混合信号示波器界面设计和编程 在进行界面设计之前,我通过安捷伦网站下载了其相关的资料: 54620/40-series Oscilloscopes Programmer's Guide通过该资料我了解了该数字示波器的工作原理: 图4-2 上面的结构框图是对于每一个程序的基本构架。示波器初始化是很重要的,没有进行正确的初始化,你的程序也许在这台机子上能正确的运行,但换台机子就可能不行了。程序的初始化包括定义和初始化变量、分配内存或测试系统的配置;控制器的初始化确保连接示波器的接口(GPIB/RS-232)能正确的建立以及准备好数据的收发。示波器的初始化建立通道配置和标签,起始电压,触发配置以及时间轴与采集类型。 一旦初始化正确,就可以进行数据的采集工作了。注意:当示波器响应从控制器发过来的指令的时候,不能执行采集工作。还有,当你改变示波器的配置时,所有采集回来的数据将会被放弃。采集数据是通过执行:Digitize指令来启动的。该指令清空波形缓冲区,启动采集直至采集内存已经存满数据,并停止。采集回来的数据要么通过示波器进行显示或测量,要么就是发送给计算机来进行进一步的分析。而当指令:digitize正在工作的时候,其他的指令将会被放入缓冲区直至该指令执行完毕。 你可以置示波器为运行模式,并在你的程序中使用一个等待循环来确保在你进行测量之前示波器至少完成了一个采集工作。安捷伦并不推荐这种方式,因为循环等待的时间是会变化的,促使你的程序的崩溃。另外,:digitize当完成采集时,会停止采集工作以至于所有测量是针对所显示的数据而不是针对改变了的数据。 数据采集回来之后,你可以通过示波器进行数据的测量或传送数据给编写的程序进行处理。测量包括频率、占空比、周期、正负脉宽。你可以使用指令:waveform来进行数据的读取并返回给计算机,并通过自己编写的程序进行数据的分析处理。 大体了解了示波器的工作过程之后,我开始自己的程序的架构(参看资料上的架构),下面是我的程序的结构(详细): 有了大体的框架之后,开始了界面的设计,因为是示波器,所以一定要有一个显示窗口来对采集回来的数据进行处理显示;除了波形的显示外,还需要对一些参数进行测量操作。固然需要一些执行按钮和一些显示用的控件。而用户有时需要对示波器的参数进行更改,所以需要提供给用户一个设置参数的对话框。而对于测量的结果的显示,我是通过一个弹出式信息对话框的形式来进行的,这样做比较的简明清楚。下面是我的大体界面:
图4-3 这里的界面和函数信号发生器的类似:有复位按钮、信息按钮等。测量时可以对测量源进行选择,测量参数进行选择等。而示波器的参数的设置窗口中对各种参数进行了默认的设置,方便用户的设置。 在示波器的编程过程中,有两个难题:数据的采集和数据的显示问题。波形数据包括引导数据和波形数据:引导数据通过指令:wave:pre来对选择的波形进行引导数据的查询,该引导数据包含了关于当前响应的通道的水平测量和垂直测量的相关信息如下所示:format、type、points、count、xincrement、xoringin、xreference、yincrement、yorigin、yreference 其中,详细信息如下: formant:从示波器传送给计算机的数据的格式化字符;0表示BYTE,1表示WORD格式,2表示ASCII格式,用一个整数表示(由指令:waveform:format进行设置) type:数据采集模式;0表示正常模式,1表示peak模式,2表示平均模式,用一个整数表示(有指令:acquire:type来进行设置) points:数据传送的个数 count:该参数常为1 xincrement:该参数是指当前的通道源的时间增益(在两个连续数据之间) xorigin:在内存中的第一个数据值 xreference:与x-origin相联系的数据点的索引值,该值经常是0 yincrement: 该参数是指当前的通道源的电压增益(在两个连续数据之间) yorigin: 该参数是指当前的通道源的y的原点值 yreference:该参数指的是y-origin起点的数据值 只有正确的读回引导数据才能结合下面的波形数据进行计算出真正的实际波形数据值。 通过指令:waveform:data?来查询采样回来的二进制数据块(使用ieee488.2任意数据块格式)。通过指令:waveform:unsigned,:waveform:byteorder,:waveform:format 中的任意一个指令来对二进制数据进行格式化操作。而该数据点的个数是由指令:waveform:points来进行设定的。该二进制数据块由两个部分组成:
首页 上一页 6 7 8 9 10 11 12 下一页 尾页 9/14/14
WORD格式全文下载链接(充值:元)