示波器是电子工程师的眼镜,它同万用表、信号发生器、电源一起号称工程师四大件。随着技术的发展,当前使用的几乎所有的示波器都是数字示波器,其核心就是将被测量的模拟信号通过高速的A/D变换器变换成数字信号,在显示屏幕上以时域波形的方式显示出来。不同价位的示波器主要差别在于取样频率、波形的存储深度以及内置的数字信号处理功能。
为了更深入地掌握示波器的工作原理,我们在本项目中采用串行ADC对模拟信号进行量化,通过FPGA内部的存储器进行采样数据的缓冲,再通过LCD将波形显示出来。
项目要求:
基于小脚丫FPGA学习模块+串行ADC+LCD显示制作简易的数字示波器
显示屏128*64,SPI接口
通过按键控制波形的左右移、放大、缩小
采样频率>1Msps
被测模拟信号幅度0-3.3V
存储深度:1KByte
能够测量频率和幅度并在LCD屏上以文本的方式显示出来
具有直流电平触发功能,触发电平可以在0-3.3V之间进行调节
实现原理:
一个典型的商用示波器(以普通的双通道数字示波器为例),从电路角度主要有如下几个部分:
最核心的部分 - 模/数转换(ADC):这部分的功能负责将待测的模拟信号进行量化,转换成数字信号,在数字域进行处理。ADC主要的指标有三个
模拟信号调理 - 能够测试几mV到几十V、带宽从DC到100MHz的交流或直流的模拟电压信号,因此需要模拟信号调理电路,以保证信号带宽的前提下,能够实现所需要的被测信号的动态范围
数字信号处理 -将高速采集到的数据通过逻辑控制存储到
FIFO或其它机制的存储器中,由微处理器部分根据需要进行调用处理,一般数字示波器的触发机制也可以通过数字逻辑来实现,以简化外围的模拟电路的设计并且可以获得更大的灵活性。这部分功能一般都会使用
FPGA来实现,现在的FPGA内部有丰富的逻辑、存储控制、时钟产生及控制、各种电平接口资源等等
微处理器部分 - 处理键盘/编码器输入、波形显示输出以及网络通信等
电源 - 提供以上电路所需要的各组电源,比如模拟电路所需要的+/-12V供电电压;数字电路接口所需要的+3.3V电压;MCU以及FPGA所需要的内核电压(1.5V、1.2V或更低),电源电路的设计要满足系统的功能、性能、转换效率、散热等各方面的要求
在我们的训练中,我们通过一个简化的系统尽可能地理解示波器的基本原理、基本电路构成以及关键的技术指标的来历,主要做了如下简化:
被测信号简化为0-3.3V,带宽为DC-20KHz(音频信号的频率范围)的直流耦合的信号,因此在学习板上没有模拟信号调理电路部分,直接将待测的模拟信号送给ADC的输入端
只支持一个通道
采用串行ADC:8位精度、1Msps转换速率、SPI串行数据接口
存储深度 - 1KByte,通过FPGA内部的块RAM来实现
LCD显示:128*160分辨率的图形化LCD屏
控制按键:上、下、左、右
触发 - 在FPGA内部实现
图3 用小脚丫FPGA模块和串行ADC、串行LCD屏构成的简单示波器方框图
图4是我们基于小脚丫/扩展板上做成的简易示波器的实物图,可以看到LCD屏上显示的正弦波波形,改变输入端的信号大小、频率,可以看到LCD屏上的信号幅度和间隔会发生相应的变化
主要代码构成:
掌握的技能:
示波器的工作原理,尤其是各项技术指标的意义
串行ADC的使用
SPI接口
FIFO的使用
触发的工作原理 - 数字比较器
LCD显示波形
频率及幅度的计算