【虹科干货】如何有效运用虹科任意波形发生器工作模式?

news2024/11/17 21:25:48

图 1:显示从存储器到输出的数据路径的 AWG 概念框图 

01引言

任意波形发生器 (AWG) 的强大功能之一是它们可以生成几乎无限数量的波形。 AWG 的工作模式控制这些波形输出方式的时序。 在本应用说明中,我们将研究虹科Spectrum M4i.66xx 系列 AWG 工作模式的有效使用,重点关注序列模式,该模式提供近实时控制输出波形选择的能力。

AWG 的运行模式就像一个反向的数字化仪。 它们以数字形式将波形存储在波形存储器中,然后波形控制器将数字数据传送到数模转换器 (DAC),后者将其转换为模拟电压。 如图 1 所示。

02波形存储器工作模式

虹科Spectrum M4i.66xx 系列 AWG 中的波形存储器以两种不同的模式使用。 第一种是标准模式,其中波形数据完全存储在波形存储器中,因此波形持续时间会被限制为波形存储器的长度。 请注意,对于该产品系列,波形存储器达到2 GSamples,以最快 (1.25 GS/s) 时钟速率提供长达 1.6 秒的波形持续时间,波形的任何部分都不会重复。

第二种模式是先进先出 (FIFO),它使用 PCIe x8 串行接口以高达 2.8 GB/s 的速率从主机传输波形数据。内部波形存储器用作流缓冲器。此模式允许延长波形持续时间,但现在受到主机中可用内存的限制。使用基于 RAID 的数据存储的 PC 系统,例如 虹科 Spectrum 的Streaming Systems,甚至可用于实现数小时的不间断波形生成

03AWG工作模式

操作模式决定了波形的输出时间和部分。 该操作模式与可在内部或外部生成的 AWG 触发器一起工作。操作模式总结如下:

  • Single - 波形存储器中的数据将在第一次触发事件后重放一次,随后的触发将被忽略。
  • Single restart - 波形存储器的相同数据将在每次触发事件后重播一次。
  • Repetitive (continuous) - 波形存储器的数据连续播放编程的次数或直到发出停止命令。
  • Gated - 允许波形输出由外部门控信号的状态控制。
  • Multiple - 内存被分成相同长度的段。 每个触发事件输出一个段。
  • Sequence - 内存被分成段。 不同长度的波形被加载到段中。 序列文件确定输出顺序、循环计数和要输出的段。

多重和序列模式都将波形存储器分段,每个分段包含一个波形或部分波形。 然后每个触发器都会增加段号并输出选定的波形。 序列模式增加了将片段内容循环用户可选择的次数以及选择要输出的下一个片段的能力。

图 2:波形内存拆分和序列内存链接

04序列模式

如前所述,序列模式将 AWG 波形分成几个数据段。

每个段中加载的每个波形可以具有不同的大小。 如图 2 底部所示,数据段使用附加序列存储器按用户选择的顺序链接。序列存储器将存储器步骤与特定段链接起来,指定每个段的循环次数,并定义下一个 部分。 重要的是,波形段之间的切换发生在段之间没有死区时间。

在我们的示例中,序列内存中的 4 个步骤已被定义。 其中三个(步骤#1、步骤#3 和步骤#4)执行无限循环,将不断重复。 卡的输出将包含重复 10 次的数据段 #2,重复 100 次的数据段 #3,以及仅重复一次的数据段 #7。 此时 AWG 循环回到第 1 步并重新开始循环。

在序列模式下,可以通过简单的软件命令更改重放的波形,或者在重放其他段的同时重新定义段的波形数据。 这允许对波形输出进行近乎实时的编程。

波形和序列存储器的严格分离使得可以在运行时更改序列存储器。 如果我们再次查看该示例,该序列有一个未使用的步骤,即步骤#2。 在我们的示例中,在 AWG 开始之前定义了 3 个步骤。 起初这些都没有改变。 步骤#2 设置为重复自身。 也就是说,它作为下一步链接回自身,但由于定义的顺序,通常不使用它。 由于序列存储器的性质(先读后写),可以写入任何步进寄存器

在运行期间在序列内存中而不破坏它。 通过寻址某个步骤并更改例如其下一个参数,可以通过软件在两个序列之间切换。

假设在我们上面的示例中,我们将步骤 #4 的下一个参数从 Next=1 更改为 Next=2,无限执行的 3 步序列(自 AWG 启动以来一直重复)将在下次执行时保留 重放完成与步骤#4 关联的模式的最后一个样本(在本例中为段#7),然后它将跳转到步骤#2 并无缝地继续重放关联段#3 的第一个样本。 当步骤#2 链接回自身时,它将在无限循环中生成数据段#3,直到被用户停止。

序列存储器中任何步骤的三个步骤参数“Next”、“Segment”和“Loop”中的任何一个都可以在运行时更改,而不会损坏序列存储器。 但是,一旦输入一个步骤,它将被执行并完成当前设置,例如输出关联的模式并重复编程的次数。

05序列模式的优势

 虹科M4i.66xx系列

虹科Spectrum M4i.66xx 系列 AWG 的序列模式具有相当大的优势。 首先是它可以更有效地利用内部存储器。 循环波形元素可以存储一次并根据需要重复,从而减少所需的存储空间。输出波形选择的排序有很大的灵活性。 可以立即加载测试程序所需的所有波形,然后根据需要进行选择。 这大大提高了测试速度。此外,对波形段进行近乎实时的控制,可以轻松地对测试需求提供自适应响应。 测得的测试结果可以改变序列顺序,并且这可以在不停止测试的情况下发生。 这是最强大的优势,因为它支持自适应测试,可以根据测量的性能更改测试条件。

考虑以下一般情况:

  • 预加载所有测试波形。
  • 将被测设备 (DUT) 连接到 AWG 和数字转换器。
  • 输出测试波形1
  • 使用数字化仪获取并分析测试波形 1 对 DUT 的影响
  • 根据测量结果选择下一个测试
  • 回放测试波形 2
  • 使用数字化仪获取并分析测试波形 2 对 DUT 的影响
  • 根据测量结果选择下一个测试
  • 继续直到测试完成

这种存储所有测试波形并根据需要通过动态编辑序列存储器调用它们的能力是一种独特的能力。 结合 AWG 生成几乎任何波形的能力,它构成了理想的测试发生器。

06使用序列模式的示例

考虑测试接收器的曼彻斯特编码串行数据流,如图 3 所示。

图 3:应由 AWG 生成的曼彻斯特编码串行数据流示例

曼彻斯特编码用于许多常见的串行数据链路,包括 RFID、PSI 5 和以太网。曼彻斯特码总是在每个位周期的中间放置一个转换。它也可能(取决于要传输的信息)在周期开始时有一个过渡。中间位转换的方向指示数据。周期边界的转换不携带信息。它们的存在只是为了将信号置于正确的状态以允许中间位转换。保证转换允许信号自计时。该复合波形由图 4 所示的三个波形分量组成:

图 4:3 个数据段用于生成曼彻斯特码

波形段

“1” - 从高到低的过渡

“0” - 从低到高的过渡

0 伏直流电平的基线。

通过使用这些组件定义三个波形段,可以合成任何数据模式组合。这意味着通过重新排列这三个段的顺序,可以更改数据包的内容。

在下面的示例中,段将设置为 512 个样本的长度,时钟速率为 50 MS/s,因此每个组件的持续时间(图 3 中的 TBit)将为 10.24 µs。数据包由持续超过两个位时钟周期的基线信号分隔。

虹科Spectrum M4i.6631-x8 AWG 使用 MATLAB 脚本进行控制,该脚本为测试目的构建了四种不同的数据模式。虹科Spectrum 提供适用于 Windows 和 Linux 操作系统的驱动程序。这些驱动程序支持最常见的编程语言和第三方系统集成软件,如 LabVIEW、MATLAB 或 LabWindows/CVI。所有驱动程序都附带详细的文档和工作示例。

控制序列存储器内容的 MALAB 代码如下所示:

*注意:条件定义:(0 => 始终结束循环,1 => 触发时结束循环,2 => 结束序列)

仅使用上面描述的三个组件,十四个步骤即可构建波形。

 图 5:使用虹科 M4i.4450-x8 数字化仪采集串行数据包的不同段

MATLAB 脚本包含四个这样的表,每个表加载不同的段组合。 当 AWG 在此 MATLAB 脚本下运行时,它会生成四种不同的数据模式。 数据输出结果如图5所示。

使用虹科 Spectrum M4i.4450-x8 数字化仪以多重采集模式采集四段串行数据包。 顶部显示的是已经讨论过的数据模式。 其他三个是不同的模式,显示 AWG 如何仅通过更改序列存储器内容来切换数据内容。

07结论

AWG 操作模式控制波形的选择和时序。 序列模式是最通用的模式,可以分段存储并选择要输出的波形段,设置该段重复的次数,然后确定下一段。 段的编程由可以在 AWG 运行时更改的序列存储器控制。 这意味着输出的波形可以近乎实时地改变,从而提供进行测试自适应编程的能力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/353392.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JVM的GC机制和常见GC算法

文章目录[toc]1. 堆内存的分代2. GC分类3. 什么是GC3.1 需要GC的内存区域3.2 GC回收的对象3.3 判断对象存活的两种算法3.3.1 引用计数3.3.2 可达性分析3.4 什么时候触发GC4. 常见的GC算法4.1 标记-清除算法4.2 复制算法4.3 标记-压缩算法1. 堆内存的分代 堆中内存分为新生代和老…

String类 [上]

一、编码的基础介绍 编码:是信息从一种形式或格式转换为另一种形式的过程。 ASCLL 编码表:主要表示的是英文的编码表 Unicode:是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码二进制编码…

小白式linux系统怎么安装宝塔面板

有很多小白同学问我linux系统服务器怎么远程连接。那么今天我们重点来教教大家如何用电脑远程服务器配上图文教程,让不懂的新手小白一看就会,分分钟上手教程怎么安装宝塔面板?这个其实很简单接下来跟着我操作。以linux centos7.6 举例Centos安…

[计算机操作系统(慕课版)]第二章 进程的描述与控制(学习笔记)

2.1 前驱图和程序执行 2.1.1 前驱图 前驱图是指一个有向无循环图可记为DAG前驱图用于描述进程之间执行的先后顺序。前驱图的每个节点用来表示一个进程或程序段乃至一条语句节点间的有向边表示两个节点之间存在的偏序或前驱关系。进程或程序之间的前驱关系可用→来表示。如果进…

有了这些接口测试用例+工具,测试效率想不提升都难

写在前面:在日常开发过程中,有人做前端开发,有人负责后端开发。接口的主要作用就是连接前后台。但是,由于前端和后端开发的速度可能不一样,尤其是后端开发好了,但前端还未开发。这种时候我们需要做接口测试…

【原创】java+swing+mysql银行ATM管理系统

本文主要介绍使用javaswingmysql去设计一个银行ATM管理系统,模仿实现存款、取款、转账、余额查询等功能。 功能分析: 隐含ATM管理系统一般分为管理员和用户角色,管理员可以进行用户管理、账单管理,用户可以进行转取存款等功能如…

面试不到10分钟就被赶出来了,问的实在是太变态了...

干了两年外包,本来想出来正儿八经找个互联网公司上班,没想到算法死在另一家厂子。 自从加入这家外包公司,每天都在加班,钱倒是给的不少,所以也就忍了。没想到11月一纸通知,所有人不许加班,薪资…

深度学习网络模型——ConvNeXt网络详解、ConvNeXt网络训练花分类数据集整体项目实现

深度学习网络模型——ConvNeXt网络详解、ConvNeXt网络训练花分类数据集整体项目实现1、介绍2、设计方案3、Macro design4、ResNeXt-ify5、Inverted Bottleneck7、Large Kernel Sizes8、Micro Design9、ConvNeXt variants10、ConvNeXt-T 结构图11、网络代码实现:Conv…

内网渗透(三十五)之横向移动篇-IPC配合系统服务横向移动

系列文章第一章节之基础知识篇 内网渗透(一)之基础知识-内网渗透介绍和概述 内网渗透(二)之基础知识-工作组介绍 内网渗透(三)之基础知识-域环境的介绍和优点 内网渗透(四)之基础知识-搭建域环境 内网渗透(五)之基础知识-Active Directory活动目录介绍和使用 内网渗透(六)之基…

Linux文件权限查看与修改

Linux文件的权限linu文件的权限可以分为四类:可读、可写、可执行、没有权限。分别用字符r、w、x、- 表示。2. 用户与用户组Liunx是一个多用户多任务的操作系统,可以通过用户和用户组来更好的控制文件的权限。每个文件都有一个拥有者(某一个具…

批处理Batch学习

批处理Batch学习 前几天一个月薪35k的兄弟,给我推了一个人工智能学习网站,看了一段时间挺有意思的。包括语音识别、机器翻译等从基础到实战都有,很详细,分享给大家。大家及时保存,说不定啥时候就没了。 基础认识 批…

Linux下Python脚本的编写解析fio(minimal格式)(三)

在服务器测试(storage)过程中,会看到很多人写跑fio的脚本用minimal格式来解析,因为这种格式返回的结果对与脚本(shell,python)解析log非常方便.下面介绍一下这种方式下,用Python来解析log 1 一般客户会要求结果中出现一下参数的值: bandwidth…

推荐几款免费且优秀的短视频配音软件,你值得拥有

科技的迅猛发展带来了新生事物的不断涌现,短视频就是其中之一,有的小伙伴喜欢在茶余饭后记录生活的点点滴滴,也有人将之变成了日常的主要收入来源,但无论是哪种,一款好的AI配音软件都是必不可少的,很多短视…

LeetCode 88. 合并两个有序数组

原题链接 难度:easy\color{Green}{easy}easy 题目描述 给你两个按 非递减顺序 排列的整数数组 nums1nums1nums1 和 nums2nums2nums2,另有两个整数 mmm 和 nnn ,分别表示 nums1nums1nums1 和 nums2nums2nums2 中的元素数目。 请你 合并 num…

Flask像Jenkins一样构建自动化测试任务

flask这个框架很轻量,做一些小工具还是可以很快上手的。 1、自动化 某一天你入职了一家高大上的科技公司,开心的做着软件测试的工作,每天点点点,下班就走,晚上陪女朋友玩王者,生活很惬意。 但是美好时光…

常用类(四)Math类和Arrays类

一、Math类 Math类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数 我们查看math类的常用方法: 我们查看他的源码如下所示: 我们查看他的类图: 他的这些方法基本都是静态的: 我们的代码设置如下所…

重生之我是赏金猎人-SRC漏洞挖掘(十三)-攻防对抗/梦中绝杀X脖代理商

0x00 前言 前两天在国企实验室的朋友遇到了一个棘手的目标,听说之前没人能打点进去,只能靠xxxxx取证 我一听来了兴趣,在梦中臆造了一个靶场进行渗透,并且已获得相关授权 还请各位看官请勿对号入座,如有雷同&#xf…

百舸争流,奋楫者先 | 大势智慧2023年度销售动员大会圆满召开

春回大地,万物新生。满载生机与动力,2月10日,大势智慧2023年度销售动员大会圆满召开。 大势智慧CEO黄先锋、CTO张帆、副总裁周济安、运营中心副总经理段鸿、全国各分公司总经理、总监及全体销售成员线上、线下共聚一堂,以“百舸争…

Android Jetpack组件DataStore之Proto与Preferences存储详解与使用

一、介绍 Jetpack DataStore 是一种数据存储解决方案,允许您使用协议缓冲区存储键值对或类型化对象。DataStore 使用 Kotlin 协程和 Flow 以异步、一致的事务方式存储数据。 如果您当前在使用 SharedPreferences 存储数据,请考虑迁移到 DataStore&#…

vscode构建Vue3.0项目(vite,vue-cli)

构建Vue3.0项目构建Vue3.0项目1.使用Vite构建vue项目的方法以及步骤1. 安装vite2. 运行vite vue 项目3.说明2.使用vue-cli构建vue项目的方法以及步骤1.安装全局vue cli —— 脚手架2、VSCode3.报错4.运行构建Vue3.0项目 1.使用Vite构建vue项目的方法以及步骤 1. 安装vite n…