简易数字存储示波器实验报告

  • 格式:pdf
  • 大小:1.81 MB
  • 文档页数:15

目 录

一.数字存储示波器简介及设计思路………………………………………………3

2.实验设计原理……………………………………………………………………5三、系统各模块的简单说明…………………………………………………………5四.最终实现功能说明………………………………………………………………8

五.实验设计实现功能模块具体分析………………………………………………9

六、实验硬件分配及总体仿真波

形…………………………………………………15

一、数字存储示波器简介及设计思路

数字存储示波器是20世纪70年代初发展起来的一种新型示波器。这种类

型的示波器可以方便地实现对模拟信号波形进行长期存储并能利用机内微处理

器系统对存储的信号做进一步的处理,例如对被测波形的频率、幅值、前后沿

时间、平均值等参数的自动测量以及多种复杂的处理。而我们此次要设计的便

是一种简易的数字存储示波器。

数字存储示波器可实现以下功能。通过对来自信号源的信号进行采集(可

分为实时取样和等效时间取样),将获得的值存储在内置RAM内,后期操作有对

波形的显示、波形的测量(如测量频率、幅值、上升下降时延等)和波形处理

(如双踪两波形的相加、相减、X-Y显示等等)。其工作示意图如下所示:

而我们设计的简易数字存储示波器实现的功能有对单一信道信号进行采

样存储显示(分实时显示和存储后期调用显示)、对信号进行频率测量并显示数

值、对波形进行上移、下移、扩展、收缩操作、示例波形演示(包括正弦波、

锯齿波、方波)。我们所用的硬件有实验箱上的高速的模数转换器

TLC5510、FPGA芯片、单片机、LCD显示屏、FPGA内置RAM、外围扩展的RAM和

键盘。以下框图为实验箱硬件使用说明图:

基于FPGA的简易数字存储示波器设计

3因此我们所需要设计的部分便是A/D采样控制接口模块、键盘控制接口模

块、存储器读写控制模块、LCD控制接口模块和LCD显示模块。

系统工作流程图如下所示:

通过RESET按键初始化,按键选择是否进行采样或是进行其他操作(如示

例波形的演示、调用查看以前存储的波形),若进行采样,则将采集的数据存储

到FPGA内置的RAM中,下一步进行是否存储或进行实时数据处理。若进行实时

数据处理则可以在LCD显示屏上观察到相应的波形,并且可以对其进行上移、键盘模块信号源A/D采样FPGA处理模块LCD显示屏外围存储器

单片机

下移、扩展、收缩和测频的处理。

二、实验设计原理

设计总体逻辑思路如下:系统开始工作时,通过按键选择是否开始检测波

形,若是,则首先由频率检测器检测频率,然后根据测得的频率选择适当的采

样频率。信号源产生的信号通过A/D采样,采样结果保存在FPGA内置的存储器

中。待存储完一帧数据时进行输出到LCD上显示。待显示100ms后暂停100ms

以消除视觉暂留效应,然后准备下一帧数据的存储和显示。如若需要存储波形,

则在当前显示的同时,将采样得到的数据送往片外的SDRAM存储,直至存储结

束或者存储容量达到上限。当需要显示存储波形时,则将外部SDRAM的数据读

进来,送往LCD显示,其原理和实时显示大致相同。

在显示暂停期间,要读取按键情况进行整体控制,比如控制波形是否显示

在LCD屏幕上、是否存储、是否显示实时波形还是存储波形、是否上下移动、

是否进行时域扩展等。

在实验的验收中,因为缺少信号源的调试,因此A/D采样存储模块未得到

验证。为了展示对LCD显示控制,我们利用FPGA内部的ROM进行波形数据预存,

通过对ROM读取来模仿外部的AD采样存储。同时为了演示各种不同的波形(正

弦、方波、锯齿波),同样可以通过按键进行选择。最后我们可以在LCD上观察

到稳定的正弦波、锯齿波,方波较差。

三、系统各模块的简单说明

根据上述硬件使用说明图以及实验原理,我们的设计总体有以下几个模块:

1)分频、测频模块和选择A/D采样速率模块

基于FPGA的简易数字存储示波器设计

5说明:FREDEVIDER作为分频器得到所需要的各档采样频率。同时部分频率

分量也在其他模块的计时处使用。FREQ_COUNT是测频模块,用于测量输入信号

的频率。其基本原理是给一个1s宽的高电平脉冲,在此期间对信号时钟的跳变

进行计数,一秒结束后所得的数据就是信号的频率。SAMPLERATE模块是为了针

对不同频率信号的档位选择不同的采样频率。为了在LCD上显示适当数量周期

的波形,我们将频率设置为12个档位。最低档位是1~5Hz,采样频率为

100Hz,然后是5~10Hz,采样频率为200Hz,然后是10~50Hz,采样频率为

1000Hz等等。以此类推,直到最高档500K~1MHz,采样频率为20MHz。

2)按键控制模块

说明:KEYBOARD模块是单片机和FPGA的接口和简单的初步处理,用来控

制键盘操作;各buffer触发器是对按键的记录。为了防止对按键的重复读入,

此处的触发器设置为上升沿触发,这样每次按键只读入一次。模块图如下所示:

3)实时波形处理模块

说明:KEY_DEAL模块主要是处理按键,包括对按键的记录和相应的参数计

算;tlc5510模块是对外部超高速A/D采样芯片tlc5540采样得到的实时数据

进行采样存储控制的,作用是将采样得到的数据存储在内置的RAM内,用于实

时显示,该RAM容量较小,只用来存储一帧的波形数据。 需要说明的是,tlc5510里面包括一个100ms的计数器,作用是在一帧数据显示完计时100ms等待,用于消除视觉暂留效应。计时过后,开始下一帧数据的存储显示。4)存储波形控制模块

基于FPGA的简易数字存储示波器设计

7说明:该模块的主要作用是控制存储波形数据的读写操作和送到LCD显示,

同时也包括在显示存储波形时对相应按键的处理。STORE_CTRL模块对存储波形

的数据进行采样存储的初步处理;SDRAM_CTRL模块对外部DRAM进行读写控制。

KEY_DEAL2是用来对按键进行处理,功能类似于实时部分中的KEY_DEAL,只是

多了左右波形移位的控制。

5)LCD控制显示模块

说明:SWITCH_CTRL是用于选择显示实时波形还是存储波形的数据;

LCD_POSITION是用来计算LCD屏幕中即将扫描到的位置;LCD_DISPLAY是用来

进行显示控制的,包括计算是否需要显示和相应的RGB的输出。

6)PLL锁相环模块

整个系统的工作频率需要大于LCD的扫描频率20M,因为需要在即将

得到的扫描点处进行是否需要显示的计算和处理。我们通过FPGA内部配置一个

锁相环,以得到80M的时钟。

四、最终实现功能说明

本次实验最后实现了波形频率的测量、波形的稳定显示、波形的上下移位、

时域上的伸缩扩展以及内置不同波形的选择,完成了设计最初目中的大部分。

和最初的预期相比有一部分没有实现,即外部的A/D采样和保存部分。同时由

于我们使用的系统箱中,所要用到的FPGA-LCD接口引脚与FPGA-单片机接口引

脚有复用部分,因此放弃用键盘操作控制系统功能,而是选用八位数码管下方

基于FPGA的简易数字存储示波器设计

9的八个开关进行按键输入。同时测得频率显示在数码管上。

示例波形选择查看时,得到的正弦波和锯齿波均能很好地展现,而方波却

不能得到稳定的波形。我们认为大致的问题是因为方波中大部分持续数据都一

样,在同一行中需要持续显示多个数据,而数据的处理可能稍微跟不上(就是

说80M仍然不能完全保证时序),因此波形不稳定。

另外需要说明的是,左移右移只对存储波形的显示有效,因为在实时显示

下,波形总是会一帧一帧的更新,按键没有意义。在切换到另一种波形显示时,

当前波形显示的格式应该回到默认状态,而与之前的设置无关。同理,当前的按键值也只对当前显示的波形格式有效。因此实时显示和存储显示的Reset还

要受waveform的影响,可参见原理图。

五、实验设计实现功能模块具体分析

以下为本次实验验收时的系统框图:

由于框图比较大,为方便观看,将其分开观看。

各模块功能具体说明:

1、KEY_DEAL:主要是处理按键,包括对按键的记录和相应的参数计算。对于八个按键开关:KEY1:RESET键(高电平有效);KEY2:波形上移;KEY3:波形下移;KEY4:波形扩展;KEY5:波形缩小;KEY6:波形左移(仅对存储后读取波形有效);KEY7:波形右移(仅对存储后读取波形有效);KEY8:选择示例波形(通过按键形成一个计数器,1是正弦波,2是方波,3是锯齿波,0没有)。八个数码管中前三个是显示频率测量值的有效数字,第四个是显示频率的

档位。显示出来的频率档位只设置为两个,小于1K的为第一档,1K~1M的是第

基于FPGA的简易数字存储示波器设计

11二档。第一档显示百、十、个三位,二档显示百千、十千、千三位,所以有效

数字有限。对于按键基本是以触发器的形式保存的(在keydeal内部可以看出,

同时对于需要计数的key值是每记住一次就清除一次,防止下次误读入,而对

于waveform则无所谓,因为是持续显示)。

同时,KEY_DEAL模块负责计算对应于上移、下移时,LCD显示屏上的位置。

其计算原理需要结合下面有关计算LCD横纵坐标来看。对于上移和下移,只需

要根据按键值改变基准位置就可以了,比如每上移一次,基准行值减小“1111”,

即15,往下移动则基准行值加上“1111”。当然这里有位移限制值,当移动到

最值时便不可进行操作。

对该模块的功能进行简单仿真。本次仿真假使UP=1,即使波形上移,仿真波形如下:

2、FREQDEVIDER:对系统时钟进行分频,得到本实验设计所需的各种采样频率。

本模块设计无难度,主要就是分频程序的编写。以下为仿真波形:

输入为CLKIN,输出为各个分频信号CLKOUT1-11。(由于截图问题,后面周

期很大的波形没有表示出来。)

3、FREQ_COUNT:对信号进行频率测量。

对于信号频率的测量,主要思想是通过输入一个1s的脉冲(由20k频率的

时钟计数20000得到1s,其中20k的时钟频率由分频器得到),在这1s内对待

测信号进行计数,等同于过零点测频,1s后得到的数据就是待测信号的频率。

4、WAVE_CHOOSE:用于选择需要显示的波形,分别是零、正弦波、方波、锯齿