通过定制简化示波器的操作过程
扫描二维码
随时随地手机看文章
现在的数字示波器都能提供令人印象深刻的采集、测量和分析工具套件给工程师和技术人员开展测试。即使这样,也存在你想要批量设置和自动操作的情况,特别是对那些只需简单或重复性测量的人来说。示波器可以让你定制它们的操作,将仪器功能限制为一些有选择的测试或使这些测试半自动化。下面就是利用定制用户界面或测试自动化功能帮助实现这一目的的一些例子。
●你需要简化示波器操作,以便允许没有经验的用户开展重复性测试。
●你需要自动完成一系列测试,但不用将仪器连接到控制器或自动测试系统。
●你需要利用专门的程序或算法去分析或测量采集到的数据。
●采集到的波形需要得到比将数据发送给外部计算机更快速的处理。
简化的设置和测试流程
不同的示波器制造商可能提供不同的定制途径。我使用的Teledyne LeCroy HDO6054示波器使用了一种叫做CustomDSO的功能,它可以在显示器上显示用户可配置的按钮用于调用想要的操作,或者用定制的图形用户界面(GUI)代替默认用户界面。另外一个示波器制造商则提供编程现有用户界面的能力,通过编程可以删除或限制选中的一些功能,从而简化仪器操作。还有些制造商提供在一系列存储的面板设置基础上进行宏编程的能力。你可以编程组成目标测试要素的一系列设置。在某些情况下,你甚至可以编程动态操作。
所有数字示波器都有存储和调用面板设置的功能。这个功能可以让你设置好仪器后将设置参数保存下来供日后使用,或供经验较少的用户使用。这些存储的设置可以根据需要随时调用。基本模式的CustomDSO(在有些型号中是可选项)扩展了这个功能,它能让你将多个设置文件链接成一个有序测试序列,按一下用户定义的按钮就调用一个测试。所调用的设置本身还可以包含对其它设置的调用,因此允许你创建多层次的测试。图1显示了基本模式CustomDSO应用的一个例子,它实现了SPI低速串行接口测试的设置自动化。
图1:选择了SPI测试的CustomDSO按钮条例子。最多可以定义8个按钮,每个按钮调用一个特定的测试设置。
位于显示器底部的8个按钮每1个都是用CustomDSO创建的,每个按钮都可以设置一个特定的测试。操作员提示信息可以用跟踪标签插入。在图1中,只分配了5个按钮。按下任一按钮都可以调出额外的相似按钮组,用于指导用户完成整个测试。
图2显示了CustomDSO的设置菜单。在基本模式中,多达8个CustomDSO按钮中的每个按钮都与一个示波器设置文件相关联。文件名字的根部分被分配为按钮标签。在这个例子中,按钮3将调用名为“SPI Decode Table.lss”的设置文件,该按钮的标签就是SPI Decode Table。这个示波器中的面板设置文件实际上是定义仪器状态的VB(Visual Basic)脚本。这些设置文件每个都包含额外的CustomDSO按钮定义,因此多个设置文件可以链接起来,并在多种拓扑中被调用。
图2:CustomDSO设置文件显示设置文件“SPI Decode Table”关联到了按钮3。按下这个按钮将执行对应的设置文件,将示波器设置为想要的设置值。它也能调出其它CustomDSO按钮用于额外测试。
此外,面板设置文件可以包含使示波器操作自动化的动态操作。
注意,在图2所示的CustomDSO描述框中CustomDSO有两种操作模式(显示在左边)。第2种模式是“插入(plug-In)”,是一种功能更强大的模式,可以让你在设置文件中增加自己的ActiveX控件。这些控件由VB、Visual C++或其它ActiveX兼容编程语言编写的例程加以定义。有了ActiveX控件后,你就可以创建你自己的定制用户界面。有大量交互式组件可用,包括按钮、复选框、单选按钮、列表框、图片框和普通对话框。图3显示了使用两个按压按钮的插入式GUI例子。第1个按钮是Single Trigger,启动单次采集。第2个按钮将通道1(C1)中的波形发送到波形存储器M1,再依次从M1传送到M2、M2到M3以及M3到M4,高效地将以前存储的波形移过已有的波形存储器。这后一种功能如果是人工完成的话几乎需要按12次按钮。
图3:用于创建用户定义的图形用户界面的CustomDSO PlugIn例子。该界面中包含了按钮、复选框、单选按钮、列表框、图片框和普通对话框。
VB脚本
在这种示波器中,设置文件是ASCII文本文件,其中包含一个完整的VB脚本“程序”,当该程序执行时,会将仪器恢复到以前记录的状态。实际上,每次保存面板时,仪器都会帮你编写一个程序,当该程序执行时会使仪器返回到保存的状态。
除了调用的设置状态外,VB脚本还可以用来创建用标准远程命令控制示波器的程序。你可以从内部运行的设置文件中实现示波器操作的“自动化”。
举例来说,你可以写一个VB脚本,将缩放波形的中心移动到由光标确定的位置。事实上,缩放波形将跟随光标位置。清单1显示了这个脚本。保存的脚本文件后缀与设置文件相同(.lss),并由调用面板设置或将它链接到一个CustomDSO按钮加以运行。通过使用VB脚本再结合CustomDSO就可以编写出极具交互性的测试。图4显示了用于运行VB脚本的CustomDSO。
清单1:缩放波形中心跟踪光标的VB脚本(zoom_trac.lss)。
set app = CreateObject("LeCroy.XStreamDSO")
'在显示器上显示一条消息
app.SystemControl.PersistentMessage = "Script running; turn off cursor to stop."
'将触发模式改为停止
app.Acquisition.TriggerMode = "Stopped"
'将光标类型设为水平绝对值
app.Cursors.Type ="HorizAbs"
'打开光标
app.Cursors.View = True
'将缩放1波形水平扩展系数设为10:1
app.Zoom.Z1.Zoom.HorZoom = 10
'打开缩放1波形
app.Zoom.Z1.View = True
'循环让缩放中心跟踪光标水平位置,当光标关闭时退出
While app.Cursors.View = True
'强制立即触发
'将参数设为0,False,等待可触发的事件
app.Acquisition.Acquire -1,True
'读取光标水平位置
curtime=app.Cursors.XPos1
'将Zoom Z1中心设为光标位置
app.Zoom.Z1.Zoom.HorCenter=curtime
Wend
'清除屏幕上的消息
app.SystemControl.PersistentMessage = ""
'断开自动链接
Set app = Nothing
图4:使用CustomDSO运行VB脚本“zoom_Track.lss”。当脚本运行时,缩放波形的中心将跟踪水平的光标绝对位置。从图中可以看出,光标将永远位于缩放波形Z1的中心。
面板设计文件、CustomDSO和基于VB脚本的设置文件为控制示波器测量流程提供了大量灵活性。通过让没有经验的用户遵循基于CustomDSO按钮的脚本,它还提供了简化示波器操作的简单途径。
定制处理和测量
定制还可以向示波器的工具集增加专用的处理功能,让你在已有的示波器上开展专门的分析和测量。下面我们讨论能够应用于中档台式示波器的这些技术和其它定制技术。
所有主要制造商生产的中高档示波器都有这个可选功能,即在示波器处理路径中插入第三方程序的基础上提供某类数学定制操作。所有示波器都支持MATLAB。本文提到的示波器支持MATLAB、VB、C/C++、Excel或Java。这个功能基于COM架构,可提供高层定制功能。用户定义算法可以被创建并插入示波器的处理路径中,返回结果可以当作处理过的数学函数或测量,并像任何其它示波器波形或测量一样显示出来。这些波形还可以被内部或用户定义算法加以进一步处理。
示波器使用微软自动控制命令用于远程控制,而这些命令也可以嵌入用户定义的算法实现“智能算法”,从而就像我们用VB脚本时已经见到的那样,在计算过程中实现实时判决。
作为一个例子,考虑图5中的示波器测量装置。其中一个100MHz的正弦载波被一个10kHz的方波进行频率调制。波形用一个简单的MATLAB脚本进行解调,解调后的波形显示为数学曲线F1。编辑框允许用户不离开示波器环境就完成脚本的创建、编辑或加载,因此创建或修改脚本非常方便。
图5:这个嵌入式MATLAB脚本用于解调调频载波,并显示调制波形。编辑框允许用户不离开示波器环境就能完成脚本的创建或编辑。
调频信号的模拟解调是用图5中编辑框第一行所示的MATLAB“解调”功能实现的。这个功能将源波形、载波频率、采样频率和解调类型分别作为参数。解调功能的输出必须被滤波,代码的下面两行是用MATLAB实现的二阶巴特沃斯低通滤波器。相同技术还可以用于创建定制测量以及数学函数,过程是相同的。
快速定制处理
这种示波器的定制选项中有个高级功能,就是对示波器的数据提供内存映射式访问,主要用于基于用户的波形或测量运算。这个功能被称为快速多波端口(FMWP),支持将C/C++语言编写的定制处理算法插入示波器处理流。FMWP通过使用共享的内存窗口最大限度地增加了从采集系统到你的处理部分的数据吞吐量。结果可以被送回示波器,或进行独立的处理。这个功能可以支持多达4个波形输入和输出,以及最多8个参数输出。
图6所示例子是使用FMWP从示波器采集两个波形,同时输出两个处理后的波形,并把一个参数送回示波器。输出由一个通过内存映射数据访问输入波形的C++程序进行计算。F1输出是输入C1的简单反相。F2是输入C2的绝对值。参数P1是两个输入的相关系数。FMWP的最大优点是,它允许工程师创建他自己的专属代码,并以最大可能的处理速度将它应用于示波器数据。
图6:P1中的FMWP参数设置以及输出F1(输入C1的反相)和F2(输入C2的绝对值),它们都是用处理来自输入信号的内存映射数据的C++程序创建的。