基于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芯片能工作起来,这就是有限状态机的主题任务,当然还有一些其他的功能,将在后序的部分介绍,这里先对有限状态机作个阐述。

相关文章
|
机器学习/深度学习 算法 异构计算
m基于FPGA的多通道FIR滤波器verilog实现,包含testbench测试文件
本文介绍了使用VIVADO 2019.2仿真的多通道FIR滤波器设计。展示了系统RTL结构图,并简述了FIR滤波器的基本理论,包括单通道和多通道的概念、常见结构及设计方法,如窗函数法、频率采样法、优化算法和机器学习方法。此外,还提供了Verilog核心程序代码,用于实现4通道滤波器模块,包含时钟、复位信号及输入输出接口的定义。
924 7
|
存储 传感器 缓存
基于FPGA多通道采样系统设计资料(2)
基于FPGA多通道采样系统设计资料(2)
662 0
|
数据采集 存储 自然语言处理
基于FPGA多通道采样系统设计资料(1)
基于FPGA多通道采样系统设计资料(1)
749 0
|
数据采集 编解码 数据处理
案例分享:Qt高频fpga采集数据压力位移速度加速度分析系统(通道配置、电压转换、采样频率、通道补偿、定时采集、距离采集,导出excel、自动XY轴、隐藏XY轴、隐藏显示通道,文件回放等等)
案例分享:Qt高频fpga采集数据压力位移速度加速度分析系统(通道配置、电压转换、采样频率、通道补偿、定时采集、距离采集,导出excel、自动XY轴、隐藏XY轴、隐藏显示通道,文件回放等等)
案例分享:Qt高频fpga采集数据压力位移速度加速度分析系统(通道配置、电压转换、采样频率、通道补偿、定时采集、距离采集,导出excel、自动XY轴、隐藏XY轴、隐藏显示通道,文件回放等等)
|
算法 数据安全/隐私保护 异构计算
基于FPGA的变步长LMS自适应滤波器verilog实现,包括testbench
### 自适应滤波器仿真与实现简介 本项目基于Vivado2022a实现了变步长LMS自适应滤波器的FPGA设计。通过动态调整步长因子,该滤波器在收敛速度和稳态误差之间取得良好平衡,适用于信道均衡、噪声消除等信号处理应用。Verilog代码展示了关键模块如延迟单元和LMS更新逻辑。仿真结果验证了算法的有效性,具体操作可参考配套视频。
632 74
|
算法 数据安全/隐私保护 异构计算
基于FPGA的16QAM调制+软解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
本项目基于FPGA实现了16QAM基带通信系统,包括调制、信道仿真、解调及误码率统计模块。通过Vivado2019.2仿真,设置不同SNR(如8dB、12dB),验证了软解调相较于传统16QAM系统的优越性,误码率显著降低。系统采用Verilog语言编写,详细介绍了16QAM软解调的原理及实现步骤,适用于高性能数据传输场景。
746 69
|
机器学习/深度学习 算法 数据安全/隐私保护
基于FPGA的SNN脉冲神经网络之LIF神经元verilog实现,包含testbench
本项目展示了 LIF(Leaky Integrate-and-Fire)神经元算法的实现与应用,含无水印运行效果预览。基于 Vivado2019.2 开发,完整代码配有中文注释及操作视频。LIF 模型模拟生物神经元特性,通过积分输入信号并判断膜电位是否达阈值产生脉冲,相较于 Hodgkin-Huxley 模型更简化,适合大规模神经网络模拟。核心程序片段示例,助您快速上手。
|
算法 数据安全/隐私保护 异构计算
基于LSB最低有效位的音频水印嵌入提取算法FPGA实现,包含testbench和MATLAB对比
本项目展示了一种基于FPGA的音频水印算法,采用LSB(最低有效位)技术实现版权保护与数据追踪功能。使用Vivado2019.2和Matlab2022a开发,完整代码含中文注释及操作视频。算法通过修改音频采样点的最低有效位嵌入水印,人耳难以察觉变化。然而,面对滤波或压缩等攻击时,水印提取可能受影响。该项目运行效果无水印干扰,适合实时应用场景,核心逻辑简单高效,时间复杂度低。
|
算法 数据安全/隐私保护 异构计算
基于FPGA的2ASK+帧同步系统verilog开发,包含testbench,高斯信道,误码统计,可设置SNR
本内容展示了基于Vivado2019.2的算法仿真效果,包括设置不同信噪比(SNR=8db和20db)下的结果及整体波形。同时,详细介绍了2ASK调制解调技术的原理与实现,即通过改变载波振幅传输二进制信号,并提供数学公式支持。此外,还涉及帧同步理论,用于确定数据帧起始位置。最后,给出了Verilog核心程序代码,实现了2ASK解调与帧同步功能,结合DDS模块生成载波信号,完成信号处理流程。
298 0
|
编解码 算法 数据安全/隐私保护
基于FPGA的信号DM编解码实现,包含testbench和matlab对比仿真
本项目展示了DM编解码算法的实现与测试结果。FPGA测试结果显示为T1,Matlab仿真结果为T2。使用软件版本为Matlab 2022a和Vivado 2019.2。核心程序包含详细中文注释和操作视频。DM编解码通过比较信号样本差值进行编码,适用于音频等低频信号处理。硬件结构包括编码器(采样器、减法器、比较器)和解码器(解码器、积分器)。

热门文章

最新文章