基于FPGA多通道采样系统设计

简介: 基于FPGA多通道采样系统设计

摘 要

本论文介绍了基于FPGA的多通道采样系统的设计。用FPGA设计一个多通道采样控制器,利用VHDL语言设计有限状态机来实现对AD7892的控制。由于FPGA器件的特性是可以实现高速工作,为此模拟信号选用音频信号。由于音频信号的频率是20Hz-20KHz,这样就对AD转换的速率有很高的要求.因为FPGA的功能很强大,所以我们把系统的许多功能都集成到FPGA器件中,例如AD通道选择部分,串并输出控制模块,这样使得整个系统的外围电路简单、系统的稳定性强。FPGA的配置模式选用被动串行模式,这样就增强了系统的可扩展性。输出模式可选择性使得系统的应用相当广泛,串行输出可以用于通信信号的采集,方便调制后发射到远程接受端,远程接收端对采集的数据进行解调;而并行输出模式则可以通过高速存储器将采集的信号放到微机或者其他的处理器上,根据采集的数据进行相应的控制。此系统的缺点是由于FPGA器件配置是基于SRAM查找表单元,编程的信息是保持在SRAM中,但SRAM在掉电后编程信息立即丢失,所以每次系统上电都需要重新配置芯片,这对在野外作业的工作人员很不方便,解决的方法是专用的配置器件来配置FPGA,在每次系统上电的时候会自动把编程信息配置到FPGA芯片中。但设计中没有采用到这种配置方案主要是考虑到专用配置器件的价格问题。

本文开始介绍了多通道系统的组成部分,然后分别介绍了各个组成部分的原理和设计方法,其中重点介绍了FPGA软件设计部分。还对当前十分流行的基于FPGA的设计技术作了简单的阐述,最后对系统的调试和应用作了简短的说明。

关键词:音频放大;滤波器;FPGA;VHDL;AD7892;有限状态机;


2 多通道采样系统的组成

本系统硬件电路包括FPGA设计的多通道采样控制器和相应的通道选择电路,A/D转换电路,由于采样音频信号,所以需要设计音频的放大和滤波电路。系统组成部分如图2.1所示:

20200925185001723.png

3 总体方案设计与论证


3.1 方案设计


3.1.1方案一

用FPGA实现一个3位8进制的计数器,记数脉冲是FPGA锁存AD转换数据的锁存信号,计数器的输出作为数据开关CD4051的地址。利用进程的并行操作来实现AD574来实现AD转换,这个方案的优点是节省了FPGA芯片的资源,但数字电路较为复杂,而且AD574的转换速率最高达到50KHz,不能达到8通道的高速音频采集。


3.1.2方案二

用FPGA实现一个3位8进制的计数器,记数脉冲是FPGA锁存AD转换数据的锁存信号,计数器的输出作为数据开关CD4051的地址。用有限状态机来实现对AD7892的控制,用外部RAM实现采样数据的存储,这样电路实现比较简单,而且AD7892的采样速率可以达到500KHz,可以实现8个通道同时8路音频信号采集。但需要外接RAM芯片,成本比较高,而且外部RAM的读写速度达不到高速数据采集的要求。


3.1.3方案三

用FPGA实现一个3位8进制的计数器,记数脉冲是FPGA锁存AD转换数据的锁存信号,计数器的输出作为数据开关CD4051的地址。用有限状态机来实现对AD7892的控制,这样电路实现比较简单,而且AD7892的采样速率可以达到500KHz,可以实现8个通道同时8路音频信号采集。同时采用FIFO模块,让数字数据先存到队列中,一边往队列中写数据,一边从队列中读数据,这样就对数字数据起了一个高速缓存的作用,更加快了整个系统的运行速度。


3.2 方案比较

为获得更佳的系统功能,使系统资源能得到充分地利用,我们采用第三种方案。主要是因为状态机容易构成性能良好的同步时序逻辑模块,为了消除电路中的毛刺现象,在状态机设计中有很多种设计方案可供选择。FIFO队列的读写操作只需要一个周期就可以完成,起到高速缓存的作用,这样更加快了整个系统的运行速度,解决了采样和存储的“瓶颈问题”,更加有效地利用FPGA芯片的资源。


4 单元电路的设计

由图2.1可以看出,系统可以分为4个大部分,分别是音频放大、滤波部分,FPGA控制部分,AD采样电路,FPGA硬件电路的设计。其中以FPGA控制部分为主体部分,它涉及到AD采样控制,通道选择控制,串并输出模式选择模块,延时模块以及FIFO模块介绍。这些模块的实现是系统实现的关键。下面分别对系统的这些单元电路做详细的阐述。


4.1 音频放大、滤波部分

人的耳朵可以辨别到的声音频率范围是:20Hz-20KHz,所以对音频放大部分的放大器有带宽要求,要求放大器是宽频带的。所以本次设计选用专门用于音频放大的高速低噪声运放NE5532作为放大部分的放大器。滤波部分是一个有源带通滤波器,滤掉电路的20Hz以下的低频和20KHz以上的高频干扰。


4.1.2有源滤波器的设计

在一个实际的电子系统中,输入信号往往因受干扰等原因而含有一些不必要的成份,应设法将干扰衰减到足够小的程度。在其他一些情况,我们需要的信号和干扰信号混在一起,如果这两个信号在频率成分上有较大的差别,就可以用滤波的方法将所需要的信号滤出。为了解决上述问题,可采用滤波电路。滤波器包括电抗性元件L、C构成的无源滤波器、由集成运算放大器组成的有源滤波器、以及晶体滤波器等。本次设计需要的通带频率范围是20Hz-20KHz,如果用有源带通滤波器来实现,考虑到该带通滤波器的上下截止频率之比20000/20=1000,大于一个倍频程,为一个宽带滤波器,所以采用一个低通滤波器和一个高通滤波器级联来实现带通滤波。


(1)设计步骤

有源滤波器的设计,就是根据所给定的指标要求,确定滤波器的阶数n,选择具体的电路形式,算出电路中各元件的具体数值,安装电路和调试,使设计的滤波器满足指标要求,具体步骤如下:

① 根据阻带衰减速率要求,确定滤波器的阶数n。

② 选择具体的电路形式。

③ 根据电路的传递函数和附录中表1归一化滤波器传递函数的分母多项式,建立起系数的方程组。

④ 解方程组求出电路中元件的具体数值。

⑤ 将设计好的电路,在EWB上进行仿真。

⑥ 按照所设计的电路,将元件安装在实验板上。

⑦ 安装电路并进行调试,使电路的性能满足指标要求。

(2)对安装好的电路按以下方法进行调整和测试

① 仔细检查安装好的电路,确定元件与导线连接无误后,接通电源。

② 在电路的输入端输入Ui=10mv的正弦信号,慢慢改变输入信号的频率(注意保持Ui的值不变),用示波器观察波形的变化,在滤波器的截止频率附近,观察电路是否具有滤波特性,若没有滤波特性,应检查电路,找出故障原因并排除之。

③ 若电路具有滤波特性,可进一步进行调试。对于低通和高通滤波器应观测其截止频率是否满足设计要求,若不满足设计要求,应根据有关的公式,确定应调整哪一个元件才能使截止频率既能达到设计要求又不会对其它的指标参数产生影响。然后观测电压放大倍数是否满足设计要求,若达不到要求,应根据相关的公式调整有关的元件,使其达到设计要求。最后设计的有源带通滤波器在EWB上的仿真图如图4.1所示:


20200925185107784.png


有源带通滤波电路分成两个部分,高通部分和低通部分,图4.2是20HZ的高通滤波器,图4.3是20KHZ的低通滤波器。


20200925185128683.png



音频信号经过音频放大电路放大后就进入了上图的电路。经过20HZ-20KHZ的带通滤波电路进行滤波。


4.2 AD采样电路

由于人的耳朵能识别的音频的频率范围是20Hz-20KHz,根据奈魁斯特(NYQUIST)采样定理知道,要使采样后的数字信号能恢复成模拟信号,采样的频率必须是模拟信号的频率的两倍,即本次采样系统的采样频率最低要设计在40KHz,而一般CD格式的音频信号的采样频率是44.1KHz,由于是8路通道的采样,所以AD芯片的最低采样频率应该是44.1KHz 8=352.8KHz,所以选择采样频率为500KHz的AD7892。这样我们每个通道的采样频率就是500KHz/8=62.5KHz。


4.2.1芯片介绍

AD7892是美国ANALOG DEVICE公司生产的具有采样保护功能的逐次逼近式12位高速ADC,根据输入模拟信号范围的不同可分为AD7892-1,AD7892-2,AD7892-3三种类型。其中,AD7892-1输入信号范围为±10V或者±5V(可设置),AD7892-2输入信号范围为0~+2.5V,这两种的采样转换速率均为500kSPS,AD7892-3的输入信号范围为±2.5V,采样转换速率为600kSPS,AD7892-1和AD7892-3的输入信号过压保护电压分别为±17V和±7V。本次设计选用的是AD7892AN-1,因为其采样速率已符合8路的音频采集速率。


AD7892模数转换器具有如下特点:

① 单电源工作(+5V);

② 内含采样保持放大器;

③ 具有高速串、并行接口。

AD7892的内部框图如图4.5所示,它内含模拟信号换算电路、采样保持电路、A/D转换的基准电源(+2.5V)、时钟电路、12位逐次逼近式ADC电路和控制电路,转换的结果可以并行输出,也可以串行输出,非常容易和微处理器或DSP(数字信号处理器)接口。AD7892共有两种封装,一种是24脚双列直插式DIP封装,另一种为贴面式SOIC封装,AD7892的引脚排列如图4.4所示。各个引脚的功能说明如表4.1所列。

20200925185155258.png

4.3 FPGA控制部分


4.3.1通道选择模块

通道选择部分是一个二进制模8的计数器,计数器的时钟是AD数字信号的锁存信号,每次锁存数据后,计数器就会一次进行加一操作,CD4051选择下一个通道的音频信号进行采集。在MAX+PlusⅡ中用VHDL语言设计图形如下图4.8所示:


20200925185229359.png


通过CNT[0]到CNT[2]来选择相应的通道,CD4051的输出就是最后要进行AD采样的音频信号。例如:若CNT[0]CNT[1]CNT[2]=“000”,则选择第一通道音频信号进行AD采样。这个部分实现的重点是对数字锁存信号记数,计数器的输出作为CD4051的通道选择地址。


通道选择部分的主体程序如下:


二进制模8计数器


signal q:std_logic_vector(2 downto 0);

begin

counter:process(clk)

begin

if(clk’event and clk=‘1’) then

if q=“111” then

q<=“000”;

else

q<=q+1;

end if;

end if;

cnt<=q;

end process;

通道选择模块的仿真图如图4.9所示:


20200925185252672.png


4.3.2AD7892控制部分

这个部分的主要工作是对AD7892的控制,使得AD7892可以工作。对AD7892的控制部分主要是通过一个有限状态机来实现的,通过对AD7892的工作时序观察,用有限状态机对AD的控制信号做出描述,从而让AD芯片能工作起来,这就是有限状态机的主题任务,当然还有一些其他的功能,将在后序的部分介绍,这里先对有限状态机作个阐述。

相关文章
|
5月前
|
机器学习/深度学习 算法 异构计算
m基于FPGA的多通道FIR滤波器verilog实现,包含testbench测试文件
本文介绍了使用VIVADO 2019.2仿真的多通道FIR滤波器设计。展示了系统RTL结构图,并简述了FIR滤波器的基本理论,包括单通道和多通道的概念、常见结构及设计方法,如窗函数法、频率采样法、优化算法和机器学习方法。此外,还提供了Verilog核心程序代码,用于实现4通道滤波器模块,包含时钟、复位信号及输入输出接口的定义。
151 7
|
存储 传感器 缓存
基于FPGA多通道采样系统设计资料(2)
基于FPGA多通道采样系统设计资料(2)
236 0
|
数据采集 存储 自然语言处理
基于FPGA多通道采样系统设计资料(1)
基于FPGA多通道采样系统设计资料(1)
257 0
|
数据采集 编解码 数据处理
案例分享:Qt高频fpga采集数据压力位移速度加速度分析系统(通道配置、电压转换、采样频率、通道补偿、定时采集、距离采集,导出excel、自动XY轴、隐藏XY轴、隐藏显示通道,文件回放等等)
案例分享:Qt高频fpga采集数据压力位移速度加速度分析系统(通道配置、电压转换、采样频率、通道补偿、定时采集、距离采集,导出excel、自动XY轴、隐藏XY轴、隐藏显示通道,文件回放等等)
案例分享:Qt高频fpga采集数据压力位移速度加速度分析系统(通道配置、电压转换、采样频率、通道补偿、定时采集、距离采集,导出excel、自动XY轴、隐藏XY轴、隐藏显示通道,文件回放等等)
|
5月前
|
算法 异构计算
m基于FPGA的电子钟verilog实现,可设置闹钟,包含testbench测试文件
该文介绍了基于FPGA的电子钟设计,利用Vivado2019.2平台进行开发并展示测试结果。电子钟设计采用Verilog硬件描述语言,核心包括振荡器、分频器和计数器。时间显示为2个十进制格式,闹钟功能通过存储器和比较器实现,当当前时间等于设定时间时触发。文中给出了Verilog核心程序示例,展示了时钟信号、设置信号及输出的交互。
182 2
|
5月前
|
编解码 算法 异构计算
基于FPGA的NC图像质量评估verilog实现,包含testbench和MATLAB辅助验证程序
在Vivado 2019.2和Matlab 2022a中测试的图像质量评估算法展示了效果。该算法基于NC指标,衡量图像与原始图像的相似度,关注分辨率、色彩深度和失真。提供的Verilog代码段用于读取并比较两个BMP文件,计算NC值。
|
5月前
|
算法 异构计算
m基于FPGA的MPPT最大功率跟踪算法verilog实现,包含testbench
该内容包括三部分:1) 展示了Vivado 2019.2和Matlab中关于某种算法的仿真结果图像,可能与太阳能光伏系统的最大功率点跟踪(MPPT)相关。2) 简述了MPPT中的爬山法原理,通过调整光伏电池工作点以找到最大功率输出。3) 提供了一个Verilog程序模块`MPPT_test_tops`,用于测试MPPT算法,其中包含`UI_test`和`MPPT_module_U`两个子模块,处理光伏电流和电压信号。
63 1
|
3月前
|
算法 数据安全/隐私保护 异构计算
基于FPGA的MSK调制解调系统verilog开发,包含testbench,同步模块,高斯信道模拟模块,误码率统计模块
升级版FPGA MSK调制解调系统集成AWGN信道模型,支持在Vivado 2019.2中设置不同SNR仿真误码率。示例SNR值从0到15,结果展示解调质量随SNR提升。MATLAB仿真验证了MSK性能,图片显示了仿真结果。 ### 理论概要 研究聚焦于软件无线电中的MSK调制解调,利用Verilog实现。MSK是一种相位连续、恒包络的二进制调制技术,优点包括频谱效率高。系统采用无核设计,关键模块包括调制器、解调器和误码检测。复位、输入数据、中频信号等关键信号通过Verilog描述,并通过Chipscope在线观察。
90 6
基于FPGA的MSK调制解调系统verilog开发,包含testbench,同步模块,高斯信道模拟模块,误码率统计模块
|
3月前
|
C语言 芯片 异构计算
FPGA新起点V1开发板(六-语法篇)——verilog简介+基础语法
FPGA新起点V1开发板(六-语法篇)——verilog简介+基础语法
|
5月前
|
算法 异构计算
m基于FPGA的RS+卷积级联编译码实现,RS用IP核实现,卷积用verilog实现,包含testbench测试文件
m基于FPGA的RS+卷积级联编译码实现,RS用IP核实现,卷积用verilog实现,包含testbench测试文件
54 0

热门文章

最新文章