热度 29
2014-11-15 09:32
1436 次阅读|
0 个评论
在测试过程中 , 示波器、数据采集、数字化仪等各种测试设备常被用来捕获波形 , 并对波形进行数字化处理 ,然后将捕获到的这些 数据, 以数据包的形式下载到 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来与仪器进行通信。 图中没有显示出来的另一个重点是 , 我使用 FORM REAL 命令将数据格式设置为 real 格式。如果您使用的是 ASCII ,那么数据格式设置命令为 FORM ASCII (这也是默认设置)。 您可以看到注释掉的 ReadString 命令 ( 使用 ASCII 数据格式时换入的 ) 。您还可以看到非常专业和有用的 “I am on line” 计数器 , 通过置入这个计数器 , 我可以知道程序在正确循环。 现在对比一下运行时间。在 ASCII 格式下 , 将全部 524288 个测量结果回读用了大约 100 秒。换成二进制格式,同样的操作用了不到 5 秒。如您所见,两者简直是天壤之别,如果您要从支持二进制格式的仪器回读大量数据,利用二进制数据传输的能力,可大幅度缩短数据传输的时间。 我还做了其它一些试验。 将总测量点数降低到 1000 。 读取二进制格式数据需要不到 20ms , 而读取 ASCII 格式的数据大约需要 125ms 。最后,将总测量点数设置为 3 个数据点进行测试。二进制格式的测量时间不到 15 ms , ASCII 格式的测量时间不到 5 ms 。因此您可以看到,随着回读的数据逐渐减少, ASCII 格式需要的时间也逐渐缩短,追上甚至超过二进制格式。 这个试验说明 , 如果回读的测量点数据比较多 , 最好使用二进制格式 , 因为它可以为您节省大量时间。