0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

二进制数据处理方法分享

美国力科TeledyneLeCroy 来源:美国力科TeledyneLeCroy 2025-07-30 15:41 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

二进制数据处理方法分享

随着不断增长的测试需求、更加复杂的系统集成和更多的数据处理,程序控制在示波器的应用中越来越多。在程序控制中很重要的一部分就是如何把数据从示波器中传输到我们的上位机上,并且当数据传输到我们的上位机上时,我们如何去解析数据并且应用它们。本次的技术分享文章,我们就从如何传输数据和解析二进制数据来一步一步剥丝抽茧,搞清楚他的运作原理和二进制数据的数据结构。

首先介绍一下力科示波器波形的保存格式,如图1所示,力科示波器可以把波形保存成多种格式:Binary、ASCII、Excel、Matlab和Mathcad等。 Binary的格式其实就是原始的二进制数据。对ASCII、Excel、Matlab这三种格式其实示波器已经对原始的二进制波形进行了解析,已经转换成了string类型,虽然这几种格式便于观察,已经解析出了幅值和时间,但是他们最大的问题就是保存下来的波形文件非常的巨大而且保存的时间相对较长,因为示波器还要对其运算和解析来得到string类型。使用二进制的格式来保存波形无论是对数据的后期处理和保存速度相对于前几种都是有很大优势的,通常情况下二进制波形的大小只有前几种格式大小的十分之一左右,问题就是我们如何解析和读懂其中的波形内容?

502dcaee-691d-11f0-a6aa-92fbcf53809c.png

图1:示波器保存波形界面

在保存的二进制波形数据中,我们每一个采样点的电压值是用一串二进制数字表示的,力科的HDO系列示波器使用的是12位的ADC,也就是说一个采样点的电压会被量化成一串12bit的数据,使用2个字节去传输,2个字节是16bit,多出的四个字节补零处理即可。

想解析二进制波形那么就必须知道我们保存下来的二进制文件中都有些什么?力科官网有相应的格式模板(如图2),目前的版本是template2_4。其中解释了二进制波形文件中都包含哪些数据块,每个数据块的内容和含义是什么还有每个数据块出现的顺序。

503b90ac-691d-11f0-a6aa-92fbcf53809c.png

图2:力科波形解析模板

通常情况下我们的波形包括几部分(如图3):头字节(一些数字);WAVEDESC1(波形描述符,解析二进制数据的关键);DATA_ARRAY_1(其中存储的就是我们采样点的数据)。在我们使用上位机指令去读取波形时,数据块也就是block是指令中的可选参数,通常情况下解析出波形需要WAVEDESC1和DATA_ARRAY_1就足够了。在这里的DATA_ARRAY_1里面的数据是示波器ADC采到的原始数据,我们称它为raw data,它在这里只有大小没有单位,可以把它理解成一个波形的形状,通过raw data乘上相应的系数再加上相应的偏置才可以得到我们最终的电压值。

504598e0-691d-11f0-a6aa-92fbcf53809c.png

图3:数据block示意图

上面提到了原始数据需要加工才能得到最终的电压值,那么需要乘的系数和加的偏置从哪里获得呢?就是需要从WAVEDESC1这个数据块获得。WAVEDESC1数据块由346字节组成,每几个字节就会代表一些信息,这些信息对我们解析波形有至关重要的作用,我们可以把WAVEDESC1理解成解析二进制数据的字典。

5057475c-691d-11f0-a6aa-92fbcf53809c.png

506575c0-691d-11f0-a6aa-92fbcf53809c.png

图4:WAVEDESC1数据块描述

可以看到WAVEDESC1中包含的内容非常的多。

506fd786-691d-11f0-a6aa-92fbcf53809c.png

图5:WAVEDESC1数据块内部结构(1)

507f6c00-691d-11f0-a6aa-92fbcf53809c.png

图6:WAVEDESC1数据块内部结构(2)

5090f1e6-691d-11f0-a6aa-92fbcf53809c.png

图7:WAVEDESC1数据块内部结构(3)

下面介绍一些在WAVEDESC1中比较重要的参数。0-15字节是他的一个标识符用ASCII编码翻译过来就是WAVEDESC,标志着WAVEDESC1数据块的开始(如图8)。

50a0fea6-691d-11f0-a6aa-92fbcf53809c.png

图8:wavedesc标识符示意图

第34字节开始的COMM_ORDER字段就代表着高位读取还是低位读取。第60字节开始的WAVE_ARRAY1字段读取出的内容就是DATA_ARRAT1的字节长度也就是它的数据量。(如图9)

50b35498-691d-11f0-a6aa-92fbcf53809c.png

图9:字段截图

第156字节开始的VERTICAL_GAIN字段和第160字节开始的VERTICAL_OFFSET字段就是我们需要加工raw data(DATA_ARRAY1)的比例系数和偏置。

在图10中,也可以看到最终数据的计算方式VERTICAL_GAIN*data -VERTICAL_OFFSET。

50c1c532-691d-11f0-a6aa-92fbcf53809c.png

图10:VERTICAL_GAIN和VERTICAL_OFFSET字段

总结

在处理二进制数据的时候,我们需要DATA_ARRAY1和WAVEDESC1两个数据块。在WAVEDESC1中最重要的就是VERTICAL_GAIN和VERTICAL_OFFSET。找到这些信息就可以解析出具体的电压,连点成线恢复出我们采集的波形。

关于我们

特励达力科(Teledyne Lecroy)是高端示波器、协议分析仪和其他测试仪器的专业制造商,可快速全面地验证电子系统的性能和合规性,并进行复杂的调试分析。

1964 年成立以来,公司一直专注于将强大的工具整合到创新产品中,以提高“洞察时间”。更快的洞察时间使用户能够快速查找和修复复杂电子系统中的缺陷,从而显著缩短产品的上市时间。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 示波器
    +关注

    关注

    113

    文章

    6970

    浏览量

    194727
  • adc
    adc
    +关注

    关注

    100

    文章

    7419

    浏览量

    553831
  • 二进制
    +关注

    关注

    2

    文章

    809

    浏览量

    42799
  • 数据处理
    +关注

    关注

    0

    文章

    642

    浏览量

    29809

原文标题:技术文章 | 二进制数据处理方法分享

文章出处:【微信号:美国力科TeledyneLeCroy,微信公众号:美国力科TeledyneLeCroy】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    二进制数据处理

    目前有个关于二进制数据处理的问题:数据是双字节,也就是16bit,最高1位为符号位,实际上数据表示的只有13位,也就是高三位不用来做数据表示
    发表于 04-22 10:02

    二进制相对调相(二进制差分调相2DPSK)的工作原理

    二进制相对调相(二进制差分调相2DPSK)的工作原理
    发表于 10-21 13:01 3409次阅读
    <b class='flag-5'>二进制</b>相对调相(<b class='flag-5'>二进制</b>差分调相2DPSK)的工作原理

    二进制

    二进制   二进制与十进制的区别在于数码的个数和进位规律有很大的区别,顾名思义,二进制的计数规律为逢二进一,是以2为基数的计数体制。10这
    发表于 04-06 23:48 8763次阅读
    <b class='flag-5'>二进制</b>

    二进制编码和二进制数据

    二进制编码和二进制数据   二进制编码是计算机内使用最多的码制,它只使用两个基本符号"0"和"1",并且通过由这两个符号组成的
    发表于 10-13 16:22 5112次阅读

    什么是二进制计数器,二进制计数器原理是什么?

    什么是二进制计数器,二进制计数器原理是什么? 计数器是数字系统中用得较多的基本逻辑器件。它不仅能记录输入时钟脉冲的个数,还可以实现
    发表于 03-08 13:16 3.2w次阅读

    二进制电平,什么是二进制电平

    二进制电平,什么是二进制电平 在二进制数字通信系统中,每个码元或每个符号只能是“1”和“0”两个状态之一。若将每个码元可能取的状态增
    发表于 03-17 16:51 2649次阅读

    二进制加法程序【汇编版】

    二进制加法程序【汇编版】二进制加法程序【汇编版】二进制加法程序【汇编版】二进制加法程序【汇编版】
    发表于 12-29 11:02 0次下载

    二进制加法程序【C语言版】

    二进制加法程序【C语言版】二进制加法程序【C语言版】二进制加法程序【C语言版】二进制加法程序【C语言版】
    发表于 12-29 11:03 0次下载

    二进制数据压缩算法

    二进制数据压缩算法二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢
    的头像 发表于 02-28 09:31 2.1w次阅读

    二进制数据及取值范围的计算方法

    本文介绍二进制数据的相关知识,如定义、取值范围计算、转换为十进制方法以及一些常见位数的二进制数据
    的头像 发表于 11-08 15:48 4588次阅读
    <b class='flag-5'>二进制</b><b class='flag-5'>数据</b>及取值范围的计算<b class='flag-5'>方法</b>

    labview二进制字符串转数值

    LabVIEW是一种图形化编程环境,用于实时数据采集、信号处理以及自动化控制等领域。它采取了数据流编程的思想,用户可以通过将各种功能模块进行连接,轻松搭建起复杂的系统。 在LabVIEW中,
    的头像 发表于 01-05 16:20 4419次阅读

    10进制转换为二进制的算法

    10进制转换为二进制是计算机领域中非常重要的一个问题。在计算机中,所有的数据都是以二进制形式进行存储和处理的。因此,我们常常需要将10
    的头像 发表于 01-11 09:14 4756次阅读

    如何实现二进制和BCD码数据的相互转变?

    如何实现二进制和BCD码数据的相互转变? 二进制码是将十进制数字表示为二进制数和十进制数的一种表
    的头像 发表于 02-18 14:51 6224次阅读

    二进制处理中的一些技巧

    二进制和十进制处理中,有时候一些小技巧是很有用的。 1、把十进制数转换成二进制数 (1)在MATLAB中有一个函数dec2b
    的头像 发表于 07-05 11:51 1414次阅读

    二进制编码器工作原理 如何选择二进制编码器

    二进制编码器是一种数字电路,它将输入的二进制代码转换为对应的输出信号。在数字系统中,编码器用于将数据从一种形式转换为另一种形式,以便于处理和传输。
    的头像 发表于 11-06 09:44 3245次阅读