初 华 万 强 曹海源 张广远 黎 伟
(武汉军械士官学校光电技术研究所,湖北 武汉 430075)
在仪器与测量领域中,示波器的应用相当广泛[1]。传统的模拟示波器由于功能单一、测量精度不高,在科研领域中的应用受到限制[2]。近年来研发的数字存储示波器,采用微处理器进行数据测量、数据处理及波形分析,其精度和处理速度得到大大提高[3]。与传统模拟示波器相比,数字存储示波器不仅具有可存储波形、体积小、功耗低、使用方便等优点,而且还具有强大的信号实时处理分析功能[4]。目前,市场上的数字示波器已经实现与计算机互联、数据共享、参数检测等强大功能,但其存在价格昂贵、携带不方便、专用性和针对性差等缺点。当在某一种产品上集成示波器功能时,将使该产品的成本、体积、质量等大大增加[5]。
本文提出了一种基于数字信号处理器(digital signal process,DSP)和现场可编程门阵列(field programmable gate array,FPGA)的数字示波器,专门针对激光发生器泵浦电源进行参数检测[6]。
系统采用DSP+FPGA的控制方案,充分发挥了两者的长处。整个系统由前端信号处理单元、FPGA时序逻辑单元、DSP控制单元以及波形数据存储和显示单元组成,输入信号经隔离、放大、斩波、分频等处理后,送入FPGA单元并测量输入信号的频率,然后根据频率的大小确定采样时钟的频率。对于10 Hz~50 kHz的信号,采用适时采样法;对于50 kHz~1 MHz的信号,采用等效采样法,即利用FPGA产生频率为1 MHz的固定采样时钟;对于1~10 MHz的信号,由于输入信号频率很高,低采样频率无法完全采集输入信号各个周期的信号值,所以先对输入信号进行分频,再利用FPGA发出1 MHz微小步进的采样时钟。这就实现了对输入信号的等效采样。
经过A/D采样后得到的数据送入DSP进行数字滤波及算法处理,剔除坏值;再对有效数据进行计算,得出各类测量参数,并将数据存入主RAM中,同时在液晶屏LCD上显示。如果需要观测被测波形,DSP根据键盘的输入来选择存储位置。当键盘选择“暂停”键时,将数据存入从RAM,液晶屏波形暂停;当键盘选择“存储”时,DSP将数据存入永久性存储的Flash,从而实现数据永久存储的功能。系统整体结构设计如图1所示。
图1 系统整体结构图Fig.1 Structure of the overall system
根据输入信号频率的大小,采用实时采样和等效采样两种方式对输入信号进行A/D采样[7]。实时采样的采样频率必须满足采样定理,对于周期性的正弦信号,一个周期内应大于两个采样点。考虑到实际因素的影响,按照恢复原始波形的精度要求选取相应的采样点数。在实时采样中,A/D转换速率必须大于最高采样频率才能正确地工作。因此,A/D的转换速率决定了最高采样频率。受A/D转换速率的限制,实现高频信号的实时采样比较困难,因此对于高频的周期信号,可以采用等效采样的方法。采样示意图如图2所示。
图2 采样示意图Fig.2 Schematic diagram of sampling
图2中,图2(a)表示实时采样,即根据需要,在一个周期内采集有限个点数,如图2(a)用4个点说明。图2(b)表示等效采样,即采用步进延时的方法,对每个周期波形的不同点进行采样,从而获取整个波形的采样数据。
所谓步进延时是指每一次采样比上一次采样点的位置延迟Δt时间(Δt的取值与采样点数有关),假设在一个周期内采样m点可完整重现待测信号波形(图2中用m=4举例说明),则:
式中:f为待测信号的频率。
只要精确控制采样的时间延迟,就能准确地恢复原始信号。对于特高频信号,可以借助分频的方法,在几个甚至几百个信号周期对波形采集一次。采用这种方法,可以恢复原始波形数据。
高频信号经过运放放大及A/D采样后,测量状态信号时往往受到噪声的干扰,微分扩张状态观测器(differential extended state observer,DESO)具有良好的滤波功能[8]。设输入待测信号为x1(t),量测噪声为n(t),则含被测噪声的滤波对象为:
数字示波器的参数分为幅度类参数和时间类参数[9]两类。参数的计算必须剔除奇异点,采用限幅滤波的方法确定奇异点,将剔除奇异点之后的数据作为计算的依据。设采样后的值为m,将与m相邻的值(即n)与m作差,差值为δ。由于采样频率很快,因此有理由相信差值δ小于误差幅度ε。当δ大于ε时,可以认为此时的m值为坏值,予以剔除,并由与m值相邻的值n取代m。
峰峰值、平均值和有效值等幅度类参数的测量过程如下。
①峰峰值:峰峰值的测量采用频数直方图密度分布众数法[9]。峰峰值 Vpp=Vtop- Vbase(其中,Vtop为幅度顶值,Vbase为幅度底值),但幅度顶值不一定是波形最大值,幅度底值也不一定是最小值。例如,有小毛刺的脉冲波形,Vtop≠Vmax、Vbase≠Vmin。频数直方图密度分布众数法是指找出出现次数超过整个显示点数5%的反复出现的点,并在这些点中找出最大值。Vbase为出现次数超过整个显示点数5%的反复出现的点,即在这些点中找出的最小值。假设A/D采样位数为12 B,采样值的范围为0~4095,程序实现时初始化Vtop=0、Vbase=4095。然后将数据依次读入,若读入的数据小于Vbase,则将读入数据赋给Vbase,并依次用Vbase与读入的新数据比较,找出最小值;同理,将读入数据与Vtop比较,较大者即将新值赋给Vtop,直到找出最大值。具体程序如下。
时间类参数主要包括周期、频率、脉宽等,在此重点介绍周期参数的测量。周期主要通过FPGA脉冲计数实现。输入信号经过比较器比较输出后变成脉冲信号,FPGA脉冲捕获口每次检测到脉冲上升沿后开始计数,检测到下一次脉冲上升沿后停止。脉冲周期与计数值成正比,假设计数周期为T,计数值为n,则输入信号周期为nT。
周期测量示意图如图3所示。
图3 周期测量示意图Fig.3 Schematic diagram of periodic measurement
垂直分辨率、扫描速度、垂直灵敏度、存储容量和显示频率这几个指标的计算过程如下。
①垂直分辨率
示波器按垂直方向共分为8格,同时要求每格分512份,则共有512×8=4096份,因而采用12位A/D即可,即垂直分辨率为12位[10]。
②扫描速度
假设扫描速度为t、每格点数为n、采样频率为fS,则fS=t/n。当n=20时,针对不同的扫描速度,可得到不同的采样频率:当 t=0.2 s时,fS=100 Hz;当 t=0.2 ms时,fS=100 kHz;当 t=20 μs 时,fS=100 MHz。在n一定的情况下,可通过改变采样频率的方式改变扫描速度。
③垂直灵敏度
垂直灵敏度和前端放大倍数呈反比例关系。垂直灵敏度的调整可以通过改变前端程控放大器的增益来实现。本文需设计一个增益为1x、10x、100x的程控增益放大器,假设垂直灵敏度最大为1 V/div,示波器垂直方向共8格,则显示信号的幅度范围为-4~+4 V。由于A/D输入电压只能为正电压,电压范围为0~2 V,所以负电压要经过电平转换,转换为负电压绝对值大小的正电压,即经过电平转换以后的A/D采样范围为-2~+2 V,这可以通过电平变换用电压幅度在-2~+2 V之间的信号得到。为了使输入信号幅度也在-4~+4 V之间,x应取为0.5,即程控增益放大器的三档增益分别为 0.5、5、50。
④存储容量
存储容量表明水平方向划分的细微程度,它是水平分辨率的倒数。示波器显示屏水平刻度为10 div,水平分辨率为10点/div。显示满屏幕需要10×10=100个点,即水平分辨率为1/100=1%。
⑤显示频率
显示屏上显示的信号是从存储器中读出的信号,只要确保观察到的波形不闪烁即可。单通道时刷新频率为200 Hz,通过计算,每秒读出的点数为200×100=20000,即RAM读出频率为20 kHz。
波形数据存储在RAM中,由DSP控制读取,并送入液晶屏显示。由于液晶屏的分辨率为800×600,除边框及修饰,X轴实际像素选取为500,以5个像素选取一点,可计算出存储深度为100点。设在t1时刻波形显示参数的纵坐标分别为(Y1,Y2,…,Ym),为实现波形移动,在t2时刻需显示的点纵坐标为(Y2,Y3,…,Ym+1),其中m为存储深度,Ym+1为t2时刻新采集到的参数值,则得到的波形显示示意图如图4所示。
图4 波形显示示意图Fig.4 Schematic of waveform display
由于在每个时刻液晶屏上只能显示一条曲线,所以在向液晶屏发送新的数组之前必须清屏,否则屏上将被所有的线画满。由于液晶屏的坐标系与普通笛卡尔坐标系不同,采用的是图像坐标系,即以可视区域的左上角为坐标原点,向右为X轴正向,向下为Y轴正向。因此,Ym+1与实际参数值成反比,并且需要对最大值进行限幅。
式中:C为某一参数的实际值;kc为常数。
为了测量激光发生器电源模块的参数,本文设计了数字示波器。由于电源脉冲频率很高,故采用等效采样的方式进行采样;因采样前经过波形的程控放大,噪声很强,故对采样信号进行DESO滤波处理;采样和滤波后的数据,经剔除坏值后,运用频数直方图密度分布众数法,计算幅度类参数和时间类参数;计算后的参数和波形数据送液晶屏显示。经过测试,数字示波器[11-18]运行稳定、集成度高,具有广阔的应用前景。
[1]刘伟,丁雷,许婷,等.基于单片机微控制器的简易数字示波器设计[J].信息系统工程,2010(10):82 -85.
[2]梁海泉,张逸成,杨挺,等.基于虚拟仪器平台的多通道示波器设计[J].自动化仪表,2007,28(2):61 -64.
[3]张一娇,田书林,张沁川.示波器多国语言的设计与实现[J].自动化仪表,2009,30(6):57 -59.
[4]薛红,薛军,姜万波.TDS-ACS实验系统中虚拟示波器的设计[J].自动化仪表,2002,23(12):22 -24.
[5]张宇翔,王明利,呂运朋,等.高速数字存储示波器前端电路设计[J].自动化仪表,2010,31(4):65 -67.
[6]腾志超,谢湘南,邱渡裕,等.数字存储示波器的双时基系统设计[J].自动化仪表,2009,30(6):60 -62.
[7]韩峰.单片机等效采样示波器的设计[J].鸡西大学学报:自然科学版,2006(6):63-64.
[8]袁东,马晓军,初华,等.DESO滤波器在DSP上的实现及其应用[J].装甲兵工程学院学报,2010(6):57-60.
[9]程言奎,李英,白瑞林,等.基于ARM9的嵌入式数字示波器参数测量模块的设计[J].计算机测量与控制,2008,16(12):1822 -1824.
[10]郭伟民,邓晓莉,李莉,等.数字示波器检定方法研究[J].信息与电子工程,2004(3):65-69.
[11]刘尧猛,马永军,丁忠林.基于ARM9和FPGA的嵌入式数字示波器[J].计算机应用与软件,2010(3):84-86.
[12]詹振球.基于DSP和CPLD的虚拟数字示波器的设计[J].山西电子技术,2007(3):37-39.
[13]赵汝和,袁太文,李迅波.数字示波器自动检定系统[J].测控技术与仪器仪表,2007(2):78-80.
[14]王怡,陈燕东.新型虚拟多功能数字示波器的设计与实现[J].湖南工程学院学报:自然科学版,2007(6):43-46.
[15]郑礴,韩根亮,席彩红.虚拟数字示波器的设计[J].甘肃科学学报:自然科学版,2008(3):96 -98.
[16]刘宪力,特日格乐,张清.基于等效和实时采样的数字示波器设计[J].电子设计工程,2009(6):69-71.
[17]谢水珍.基于Labview的虚拟函数信号发生器的设计[J].微计算机信息,2005(8):21-23.
[18]杨乐平,李海涛,杨磊.Labview程序设计与应用[M].2版.北京:电子工业出版社,2006.