任意波形发生器(AWG)的一个重要功能点是,它们可以生成几乎无限数量种的波形形状,而AWG的运行模式控制了这些波形输出的方式。在这篇应用笔记中,我们将探讨如何高效利用TS-M4i.66xx系列AWG的不同运行模式。其中,我们会集中介绍其序列模式,该模式能提供接近于实时控制输出波形选择的能力。
AWG的工作方式类似于反向模数转换器。它们先将波形以数值形式存储在波形内存中,然后控制器将数字数据送到数模转换器(DAC)中,该转换器将其转换为模拟电压。如图1所示。
图1:AWG中从内存到输出的数据路径概念框图
一、波形内存运行模式
Spectrum TS-M4i.66xx系列AWG的波形内存有两种不同的运行模式。
第一种是标准模式,在这种模式下,波形数据完全存储在波形内存中,这会限制波形持续时间不超过波形内存的长度。但请注意,对于这个产品系列的AWG,波形内存都非常大,可达到2 GSamples,从而提供在最快的时钟速率(1.25 GS/s)下高达1.6秒的最大波形持续时间,并且该持续时间内没有任何重复部分。
第二种模式是FIFO模式,它通过PCIe x8串行接口从计算机主机流式传输波形数据,速率最高可达2.8 GB/s。内部波形内存用作流式缓冲区。这种模式允许延长波形的持续时间,一般受限于计算机主机的可用运行内存。使用基于RAID数据存储的PC系统时,甚至可以实现连续数小时的无间断波形生成。
二、AWG运行模式
运行模式决定了何时输出波形的哪一部分。运行模式与AWG触发设置一起生效,该触发可以由内部或外部产生。各种不同模式的概述如下:
多段模式和序列模式都把波形内存分割成了多个段,每个段用于包含一个波形或波形的一个部分。然后,每次触发都会增加选定的段号并输出对应的波形。其中序列模式还增加了用户可选自定义循环次数的能力以及选择更改下一个要输出的段的功能。
三、序列模式
整个序列流程如图2所示。正如前面所说,序列模式会将输出的AWG波形分割为几个数据段。
图2:波形内存的分割和序列内存的链接
加载到每个段中的波形可以具有不同的大小。用户自定义的数据段链接顺序可以通过额外的序列存储器进行记录,如下图2所示底部所示。序列存储器将内存步骤与特定段关联,可以指定每个段的循环次数,并定义下一个段。最重要的是,波形段之间的切换没有死区,也就是说允许无缝连接。
在我们的示例中,序列存储器内定义了4个步骤。其中三个(Step#1、#3和#4)构成无尽循环,将连续重复输出,每次循环将包含数据段#2重复10次,数据段#3重复100次,以及数据段#7仅1次,然后,AWG输出又返回到Step #1并重新开始周期。
在序列模式下,可以通过简单的软件命令更改输出的波形,或者在某段数据正在输出的同时重新定义其他段波形数据,通过这个功能,我们可以实现近乎实时的波形编程和输出。
波形和序列存储器的严格分离使得在运行过程中更改序列存储器成为可能。我们再来看上面的示例,序列有一个未使用的步骤,即Step#2。在我们的示例中,启动AWG之前已经定义了3个步骤。一开始,我们不对这些步骤进行更改。然后设置Step#2令其自循环,也即是将它自身作为链接的下一个步骤,但由于已定义的序列顺序,该步骤并不会被调用。我们想强调的是:由于序列存储器的读取优先于写入特性,因此可以在运行时安全地向序列存储器中的任何步骤寄存器写入,而不用担心会破坏它。通过地址找到某个步骤并更改其下一步链接对象参数,可以实现软件控制的序列间切换。
假设在我们上面的例子中,我们将第Step#4的下一步链接参数从Next=#1更改为Next=#2,则原本无限执行的3步骤序列(自AWG开始输出以来一直重复)将在下一次输出完成与Step#4关联的数据段(在示例是段#7)的最后一个采样点时,退出原有循环。然后,它将跳转到Step#2,并无缝继续输出与之关联的段#3的第一个样本。由于Step#2结束后链接回自身,AWG后续将无尽循环输出数据段#3,直到被用户停止。
对于序列内存中的任何一个步骤,其“Next”,“Segment”和“Loop”三个步骤参数都可以在运行时进行更改,而不需担心会破坏序列内存。但应当注意的是,一旦进入某一步骤,就会按该步骤原本的设置执行,这包括输出关联的段落波形,以及编程设置的重复次数,都将会先按旧设置完成输出,再把新设置应用进去。
四、序列模式的优势
Spectrum TS-M4i.66xx系列AWG的序列模式具有许多优势。
首先,它可以更有效地利用内置存储器。比如,重复波形段可以只存储一次,并在需要时重复输出,从而减少所需的内存空间。
其次,输出波形的顺序选择具有非常大的灵活性。所有测试过程中用到的波形都可以立即加载,然后根据需要进行选取,这极大地提高了测试速度。
此外,对波形段近乎实时的控制,使得AWG响应不同测试需求时,能轻松展现其强大的适应性。可以根据其他测试测量结果,随时改变序列顺序,而无需停止测试。这是其最强大的优势,换句话说,它允许根据测量性能来更改测试条件的自适应测试。
以下是一个通用的典型场景:
提前存储所有用到的测试波形,并通过编辑序列内存来实时调用它们的这个功能,是德思特Spectrum AWG的一个强大优势。再结合任意波形发生器本身可生成几乎任何波形的能力,它成为了一种测试波形发生器的理想选择。
五、使用序列模式的一个例子
该例子的目的是测试针对曼彻斯特编码的串行数据流接收器,该数据流如图3所示。
图3:准备由AWG生成的曼彻斯特编码的串行数据流示例
曼彻斯特编码在许多常见的串行数据链路中都有应用,包括RFID、PSI 5和以太网。曼彻斯特码总是在每个位周期的中间存在一个电平跳变。此外,它可能(取决于要传输的信息)在报文周期开始和结束时也有额外的电平跳变。每位中间位置的电平跳变方向表示了该位的数据,而报文周期边界处的跳变则不携带信息,它们的存在只是为了将信号置于正确的状态,以允许位中的转换。保证发生的跳变同时也使得信号能够包含时钟信息。
上述这个复合波形由图4中的三种波形段元素组成:
图4:使用3个数据段生成曼彻斯特代码
我们会发现,通过使用这些元素分别定义三个波形段,就可以合成任何数据包组合。这同时意味着,通过改变这三个段的顺序,就可以改变数据包的内容。
接下来,我们将段设置为512个采样点的长度,时钟速率设为50 MS/s,这样每个波形元素的持续时间(图3中的TBIT)将是10.24 µs。数据包与包之间有一个持续超过两个比特时钟周期的静息基线信号。
在本例中,Spectrum TS-M4i.6631-x8 AWG是使用MATLAB脚本控制的,该脚本构建起了四种用于测试的不同数据包。我们提供了适用于Windows和Linux操作系统的驱动程序,这些驱动程序支持大多数常用编程语言和第三方测试集成软件,例如LabVIEW,MATLAB和LabWindows/CVI,所有这些驱动都带有详细文档和工作示例。
下面展示的是控制序列内存内容的MATLAB代码:
其中条件参数定义如下:0 => 总是结束循环,1 => 在触发时结束循环,2 => 结束整个序列
下面这个波形就是通过十四个步骤建立起来的,其中只用到了前述的三个波形段元素。
图5:使用TS-M4i.4450-x8数字化仪获取到的不同序列数据包波形
MATLAB脚本种包含四个这样的“表格”,每个表格种加载不同的波形段组合。当AWG运行在这种MATLAB脚本时,即可产生四种不同的数据包。波形输出的结果如图5所示。
这里,我们使用了Spectrum TS-M4i.4450-x8数字化仪以多段采集模式获取整个测试序列中的4段。4个局部显示窗口中最上面的一个展示了我们在上述代码中所生成的完整数据包波形。其它三个则是不同的数据包,作为仅通过更改序列内存参数即可更改数据内容的示例。
六、结论
AWG的操作模式决定了波形的选择和输出时机。序列模式是其中最灵活的模式,具有分割内存和选择要输出的波形段的能力,还允许用户设置每段应重复的次数,然后确定下一个输出的段。编程控制每个段的序列内存,可以在AWG输出的同时进行更改,这意味着输出的波形可以实现近乎实时的更改,从而提供编程实现自适应测试的能力。
文章评论(0条评论)
登录后参与讨论