示波器波形数据文件(trc,dat文件)解析
示波器波形数据文件(trc,dat文件)解析
实验室数据采集最常用的仪器就是示波器,在测试过程中,你想要保存相应的数据时,示波器提供了很多文件格式,如图片格式,dat文件,txt文件,bin文件,trc文件等等。其中dat文件解析方式简单,MATLAB等软件可以直接导入,非常方便,但是该数据示波器是无法recall的,并且dat文件数据量保存较大。而trc文件可以用示波器recall,就是示波器可以打开该文件,并且能够放大运算等,数据存储量小。尤其是在高采样率的情况下,保存成为trc文件优势很明显。因此,本文会对dat文件和trc文件都进行简单的解析。
DAT文件
首先是dat文件,以下面数据为例,可以看到dat文件会将数据保存为ASCII形式,第一列为X轴数据,通常为时间,第二列为Y轴数据,通常为幅值。
因此,对文件的解析也非常简单,只需要对其进行ASCII字符翻译即可。
TRC文件
trc文件是专用的示波器格式,因此要在电脑上打开就需要对它进行专门的数据解析。我们以力科示波器(LeCroy)为例,对trc文件进行解析:
首先大体介绍一下文件内容划分如下图所示,trc文件主要保存以下内容
具体的文件内容解析如下:
上图是力科示波器(LeCroy)波形保存的一个trc文件。
0~10bit:(红色框框)表示文件二进制长度,需要转化为ASCII来看,#901000350中9表示后面的9位是有效数据,010000350表示长度。实际上C#可以读出二进制文件的长度,这一位对于C#处理来说是没有用的。
11~18bit:(黄色框框)是固定字符,ASCII字符为WAVEDESC。
27~36bit:(蓝色框框)是TRC文件格式版本(ASCII字符),目前为LECROY_2_3版本。
43 Bit:(地址为0x2B的数据)表示示波器数据存储的位数(非常关键),0表示是8位数据,1表示是16位数据。注意,trc文件之后的数据保存为Byte或者Int16类型,不是Float,之后通过计算可以转化为Float类型,后面会提到。
45bit:(地址为0x2D的数据)表示位数存储顺序,0表示高位在前,1表示低位在前。
47~50bit:(地址为0x2F~0x32)表示WAVEDESC区域的长度,这个区域保存着示波器相关设置,如X轴以及Y轴的刻度等。这个值通常为0x15A,即346字节,从WAVEDESC关键开始算,即文件地址0x0B开始算。
51~54bit:(地址为0x33~0x36)表示USERTEXT区域的长度,可以为0,表示这一区域没有数据,该文件不包含该区域。
59~62bit:(地址为0x3b~0x3e)表示TRIGTIME区域的长度,同上。
63~66bit:(地址为0x3F~0x42)表示RISTIME区域的长度,同上。
71~74bit:(地址为0x47~0x4A)表示DATA_ARRAY_1的长度,该区域通常是我们常用的数据存储区域。
75~78bit:(地址为0x4B~0x4E)表示DATA_ARRAY_2的长度。
87~102bit:(地址为0x57~0x66)表示仪器的名字,为ASCII码字符。
103~106bit:(地址为0x67~0x6A)表示仪器号。
107~122bit:(地址为0x6B~0x7A)表示通道的Label,ASCII码字符。
127~130bit:(地址为0x7F~0x82)表示在DATA_ARRAY_1中的数据长度
131~134bit:(地址为0x83~0x86)表示在示波器显示的数据个数
135~138bit:(地址为0x87~0x8A)表示第一个有效点的索引index,通常为0
139~142bit:(地址为0x8B~0x8E)表示为最后一个有效点的索引,通常为数据总点数-1.
167~170bit:(地址为:0xA7~0xAA)表示Y轴数据的增益(Float类型)
171~174bit:(地址为:0xAB~0xAE)表示Y轴数据的偏移(Float类型)。Y轴实际数据的计算公式为=(Y轴增益)*(数据区域存储的数据,Byte型或者Uint16)- (Y轴偏移)
187~190bit:(地址为0xBB~0XBE)表示X轴的数据点间隔,Float类型。
207bit:(地址为:0XCF)Y轴数据的单位,通常为V,该位需要翻译为ASCII码。
255bit:(地址为:0XFF)X轴数据的单位,通常为S,该位需要翻译为ASCII码。
335bit:(地址为:0x14F)表示示波器的TIMEBASE,这是一个枚举变量,解释如下:
337bit:(地址为:0x151)表示探头阻抗设置,0–>DC 50ohm, 1–>GND, 2–> DC 1M ohm, 3–>GND, 4–>AC 1M ohm
343bit:(地址为:0x157)表示Y轴的刻度,同样是枚举变量,解释如下:
345bit:(地址为:0x159)表示是否打开带宽限制,0表示未打开,1表示打开
355bit:(地址为:0x163)表示通道号,0–>Channel 1, 1–>Channel 2, 2–>Channel 3, 3–>Channel 4。
356bit:WAVEDESC区域结束,参考47~50bit,WAVEDESC区域长度解释。
下面的数据为详细的数据,通常直接为DATA_ARRAY_1区域,其他区域长度为0。
如上就是示波器TRC文件的基本解析内容。
TRC文件最大优势就是文件小,数据存储方便。dat文件存储一个数据所占的空间,将是trc文件的10倍以上。因此,在数据量比较大的数据采集中,trc文件将会非常有优势。
如上图所示为dat文件和trc文件的大小比较,同样的数据量,dat文件是trc文件的10倍以上。
本文关于TRC文件的解析就讲完了,之后的文章会通过C#来对TRC文件进行具体解析,并且做一个简单的上位机demo,敬请期待!