原创 二进制数据传输提升测试吞吐率–程控电源技术和应用(74)

2014-11-15 09:32 1428 29 29 分类: 消费电子

在测试过程中示波器、数据采集、数字化仪等各种测试设备常被用来捕获波形并对波形进行数字化处理,然后将捕获到的这些数据, 以数据包的形式下载到 PC 上,并存储起来。这些数据包可能非常庞大,包含数千乃至数百万个测量结果。对于长期数据记录,数据文件可能达到数G。通过仪器总线传输这些数据文件会占用极长的时间,进而使测试的时间明显增加。

 

在是德科技的一些高性能程控系统电源中,也内置有高速、高分辨率数字化仪 可轻松捕获浪涌电流、瞬变电压和电流的波形测量结果。就效果而言这与前面提到的方法毫无二致。这些高性能你系统电源包括APS系列电源系统、N6700多路模块化电源、6800系列交流源和分析仪、66300系列手机测试电源等等。在构建测试系统的时候,工程师们通常会选择以 ASCII 格式传输数据,但我们推荐您最好以二进制格式传输数据。与 ASCII 数据相比,传输二进制数据实际需要传输的字节更少,因此可将传输时间缩短一半甚至更多。

 

下面的实例, 就是我们完成的一项对比测试,现在我想把测试结果与大家分享。请注意,这些结果都是通过快速测试获得的,不能视为正式的测试数据。所以如果您发现我的方法有错误,欢迎予以指正。

首先介绍一下我的测试方法。我使用了 N6700B 模块化系统电源主机和 N6781A SMU 模块并为此编写了一段程序。 该程序将模块输出设置为 5 V然后执行一系列电压测量。测量点数和采样率分别设为最大测量点数(524288 点)和最快采样率(200kSa/s)。在将数据从 N6700B 读取到 PC 之前,启动程序秒表开始计时;在读取结束后停止计时。将此操作重复执行 20 次并计算平均值。

 

通常我们会推荐使用 Agilent VISA-COM IO 程序库。VISA-COM 程序库中的 ReadIEEEBlock 功能可以非常容易地阅读二进制数据。  

 

下面的截屏显示了相关的循环和计算程序。此程序用 VB 语言编写,我使用LAN来与仪器进行通信。

 

 

20141025173830878001.gif

 

图中没有显示出来的另一个重点是我使用 FORM REAL 命令将数据格式设置为 real 格式。如果您使用的是 ASCII,那么数据格式设置命令为 FORM ASCII(这也是默认设置)。

 

您可以看到注释掉的 ReadString 命令使用 ASCII 数据格式时换入的。您还可以看到非常专业和有用的“I am on line”计数器通过置入这个计数器我可以知道程序在正确循环。

 

现在对比一下运行时间。在 ASCII 格式下将全部 524288 个测量结果回读用了大约 100 秒。换成二进制格式,同样的操作用了不到 5 秒。如您所见,两者简直是天壤之别,如果您要从支持二进制格式的仪器回读大量数据,利用二进制数据传输的能力,可大幅度缩短数据传输的时间。

 

我还做了其它一些试验。 将总测量点数降低到 1000 读取二进制格式数据需要不到 20ms而读取 ASCII 格式的数据大约需要 125ms。最后,将总测量点数设置为 3个数据点进行测试。二进制格式的测量时间不到 15 msASCII 格式的测量时间不到 5 ms。因此您可以看到,随着回读的数据逐渐减少,ASCII 格式需要的时间也逐渐缩短,追上甚至超过二进制格式。

 

这个试验说明如果回读的测量点数据比较多最好使用二进制格式因为它可以为您节省大量时间。

 

 

 

 

文章评论0条评论)

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