|
1.引言
随着电力电子和通信技术等行业的高速发展,示波器作为产品设计和调试中不可或缺的一个仪器得到了广泛的应用。由于工程师对示波器的要求也越来越高,数字存储示波器以其强大的分析计算功能逐渐取代了模拟示波器。实时采样率、实时带宽是衡量数字存储示波器的两个重要指标,然而工程师往往忽略了另一个重要指标波形捕获率[1]。
波形捕获率是指示波器的采样时间占总测量时间的比例。波形捕获率小就会漏掉许多待测波形,就很难观察到波形中的偶发事件。波形捕获率取决于整个示波器的采样、处理、存储和显示模块的结构。如图1,这是传统数字存储示波器的整体架构,待测信号经过放大器,由A/D 进行采样,采样的数据由处理器控制存入内存,处理器经过分析、计算参数等再将波形显示到显示器。处理器在进行数据存储和处理的这段时间是不能进行采样的,那么这段时间就是所谓的死区时间,一般示波器的采样时间只占总测量时间的1%,因此大多数的信号信息丢失,这就大大降低了产品调试的效率[2]。
本文提出一种多处理器并行处理的数字存储示波器,有效的提高了整体的测量效率,不仅减少了死区时间,还提高了波形捕获率,对电路中的故障调试的速度也得到提高。
2.系统结构
本文提出一种基于FPGA 的多处理器的数字存储示波器的架构,提高示波器的波形捕获率。传统示波器之所以波形捕获率低下主要是因为单个处理器既要控制采集数据又要完成后期的处理和显示,这种串行结构导致浪费了很多的时间。所以本文针对这种串行结构提出一种高效的并行处理结构的示波器,其基本结构所示。
处理器的数字存储示波器主要分为以下五个部分:信号调理及触发模块、并行波形采集模块、波形协处理模块、核心处理器及显示模块。
3.各模块设计
3.1 乒乓采集模块
本示波器的前端信号处理模块与传统示波器一样,使信号满足A/D 采样的要求。传统示波器使用单个处理器对A/D 采样进行控制,这样当一次采样完成后就不能继续采样了,因为处理器要将采样存储器中的数据转移到内部存储器中进行处理。本设计采用双处理器对采样进行控制,并且每个处理器都有自己的存储器,为了提高存储速度,这里使用FPGA 内部的BRAM 配置成FIFO。在这种结构下,当一次采集结束后,另一个处理器开始工作继续采集,这样交替进行,大大缩短了波形捕获的死区时间,降低了漏失波形的可能性。这种采集模式我简称为乒乓采集模式。
3.2 核心处理器
在采样处理器进行乒乓采集的同时,核心处理器负责将采集完的数据及时的搬移到内部的数据存储器中,这样采样处理器下次就可以接着采集了。在采样的时间里,核心处理器可以进行基本的数字信号处理,得出信号的周期、频率、峰值等基本参数,为后期的显示坐做准备。
核心处理器负责采集数据的搬移及数字信号的处理,接受控制面板的信号并做出相应的控制。这样核心处理器就从繁琐的采集控制,波形映射、显示控制中解放出来,可以大大的提高整个示波器的波形捕获率。
3.3 波形协处理器
波形协处理模块也是一个单独的处理器,其作用是将每次触发采集的波形数据映射到波形显示存储器中。波形显示存储器实际上就是将采集到的波形映射成显示器上即将显示的点阵形式[3]。由于采用乒乓采集,波形捕获率得到了提高,所以显示也要相应的改进。波形协处理器将多次触发采集到的数据全部映射到一个点阵中,采用显示等级,如果同一点有重复的显示,等级加一,总共256 个等级。这样,最后显示的波形不仅能反映多次采样的波形,观察其中的偶发信号,还可以通过显示等级观察到信号发生的概率,这个类似于模拟示波器和数字荧光示波器的余晖效果[4]。完成波形显示存储器的存储后,将波形显示存储器的数据搬移到显存中,等待显存处理器将波形显示在显示器上。
3.4 显示处理器
显示处理器是控制波形显示的模块,接受核心处理器的指令,对波形进行缩放、平移、放大等显示。显示器都有一定的刷新率,一般都是60Hz,在显示器刷新时将显存中的数据按照时序显示在显示器上,完成波形的显示刷新。
3.5 波形映射
波形映射是体现高捕获率的一个关键步骤,首先采集的数据存储在内部的存储器中,这是原始采集的数据,核心处理器根据时基对原始信号进行抽值和插值处理,是数据刚好够显示。波形协处理器读取核心处理器处理后的数据,对其进一步映射。映射的过程实际上相当于逐个将采样点的数值对应到显示器上的波形幅值,那么我们按照显示器从上到下,从左到右的顺序进行映射。
我们的A/D 芯片的分辨率是8 位的,所以整个幅度等级是256 级,相当于垂直方向有256 个点,水平的点数本设计中使用250(25*10)个点。这样假设存储器中的波形数据分别是D0、D1Di,i=0,1249。由于每个显示器上的点都有256 级的等级显示,所以需要的波形显示RAM 的大小为256*250*256=16Mb。这个使用外部的高速SRAM,这有利于RAM 的高速读写。对每一个采样点逐个进行映射,数据Di 的映射地址为256*i+ Di,在这个地址的存储器中数值加1,如此下去,直至把一次采集的所有的点都映射到波形显示存储器中,如图3 所示。然后将下次采样的波形数据以同样的方法映射到波形显示存储器中。这时波形显示存储器中的数据显示在显示器上时就包含时间、幅值以及幅值随时间分布的概率三方面的信息了。
本设计中总共用到了五个处理器,全部在FPGA 内实现,这样使系统得到性能的同时也得到结构上的简化。
核心处理器是最复杂的,它不仅要接收控制面板的信息将其转换成控制信号,控制时基、触发、缩放等,还要进行复杂的数字信号处理,幅值、频率、上升时间、频谱FFT 等运算。这需要一个高性能的处理器,因此使用XILINX 公司的Microblaze 软核,其性能高达166MIPS,足以应付这些复杂的计算。为了进一步减轻核心处理器的负担,将复杂的FFT运算交给专门的DSP 运算模块,该运算模块是由FPGA 内部的DSP 功能模块实现的,提高FPGA 的资源利用率,也使整机性能得到提升。
采集处理器主要是根据时基和触发来控制A/D 采样,实现这样一个处理器可以使用VHDL 实现硬件电路的设计,因为这样设计的处理器专用性强,没有多余的电路,所以工作频率高,适合高速A/D 的采样。
波形协处理器是完成波形的映射,将采集到的波形数据映射到显示的显示器上每一个点。波形协处理由于要想显存中写数据,所以速度必须很快,时序也必须很精确。所以这里还是采用一个硬件的状态机来完成整个映射的工作,状态机也是在FPGA 中实现的。
显存处理器类似一个显卡,里面有显存和控制单元。根据屏幕的刷新率,在刷新的时刻及时的将显存的数据值送到显示器上。显存是16Mb,使用外部的高速SRAM,为了提高系统的性能,还是使用FPGA 中的硬件逻辑实现SRAM 的控制和显示器的控制。
4.实验分析
示波器的许多参数都与区设置的参数有关,特别与设置的时基有关,这里为了说们该示波器检测偶发信号或者毛刺的能力,设置时基为20ns/div,这样才能足够的显示出毛刺信号。最高采样率为1Gs/s, 定义单个波形的点数为10,000 个点,则波形捕获数为100,000wfms/s。
死区时间的计算公式如下[5]:
DT = (1/U -W) / (1/U) =1-UW (1)其中U 为波形捕获率,W 为示波器的显示时间。
按公式计算得出死区时间的比例是98%.这个死区时间看起来很大,其实并非是漏采样了98%的波形数据,只是没有显示在屏幕上,所以如果从采样的角度来说死区时间是非常小的。
在已知偶发信号发生的概率的前提下,可以使用一下公式计算在t 秒内捕获到偶发信号的概率:
下面我们计算一下该示波器捕获偶发信号的能力,假设一个毛刺信号为每1 秒中发生100 次,一般示波器的波形采样率为每秒几百个波形,我们假定为1,000wfms/s, 则在5 秒钟内捕捉到该毛刺信号的概率为9.5%。本文中的示波器在相同设置下,捕捉的概率为99.9955%。而一般示波器要达到这个捕捉概率需要至少需要八分钟的时间,这在调试中不能容忍的,因为我们不确定是哪个节点的问题,通常我们会在每个节点出探测几秒钟,然后探测下一个节点,所以高捕获率对调试是很有帮助的。
5.结论
本设计使用基于FPGA 的多处理器结构的示波器,多处理器并行处理,提高了整机的性能。专门的乒乓采集处理器减小了波形采集的死区时间,记录了更多的波形信息。波形协处理器有效的记录多次采集的波形,并将波形处理的任务从核心处理中分担过来,大大提高了每秒采集到的波形数,波形捕获率最高可达到100,000wfms/s,高捕获率有利于观察偶发的信号,提高捕获异常信号的概率。 |
|