APP下载

基于FPGA的多通道低频频谱分析仪的设计与实现*

2022-09-26李幸旺李海广

科学与信息化 2022年18期
关键词:高电平显示屏按键

李幸旺 李海广

内蒙古科技大学能源与环境学院 内蒙古 包头 014000

引言

频谱分析仪在设备状态检测和故障排除中起着重要的作用,被广泛应用于生产调试、施工勘测等领域[1]。然而市场上的大多数频谱分析仪结构都比较复杂,而且价格相对较高。可测量的频率范围超过100KHz,而低于10KHz的频谱分析仪很少。此外,频谱分析仪分析信号的时候大都在现场进行测试,还应具有便携性的特点。

FPGA是由PAL等可编程器件发展而来的[2],能够按照用户需求定制所需的功能,并且 FPGA 还具有强大的并行运算的能力,适用于大量的数字逻辑运算和对实时性要求比较高的信号处理中[3]。由于很多的信号在时域上来分析信号的特征是非常不便的,然而假设将时域的信号转换到频域后,再进行信号特征的分析就很容易了,这也就是信号分析经常使用FFT的重要因素。FFT作为一种将时域数据转换为频谱数据的方法,在信号处理等领域有着广泛的应用[4]。随着集成电路的发展,FPGA的功耗和成本逐渐下降[5],因此通过使用FPGA编程实现一个低功耗低频的频谱仪具有很高的意义。

1 频谱分析仪的参数

假如使用F作为采样的频率,一次进行采样N个数据点,将采样频率F除以采样点数N得到的就是基波频率。第n个点对应信号频率为F*(n-1)/N。本次设计采用的为1kpbs采样率,采样点为128,因此采样分辨率为1k/128 =7.8125Hz,由于经过傅里叶变换后的数值具有共轭对称性,因此选取一半的点就可以显示所有的信息。第64点为500Hz,由此设计的频谱范围为7.8~500Hz。

2 设计实现

2.1 硬件的选择

FPGA芯片选用EP4CE40F23C8芯片,其逻辑与存储器资源相当丰富,可以满足本次设计的需求,开发工具为芯片公司所开发的软件Quartus II 13.1版本。所选用的模数转换芯片采用的是ADI厂家所生产的AD7606芯片,这个芯片具有8个16位的同步采样通道,而且8个通道都可以支持最高200kSPS的采样率。本次设计使用8个里面的前4个通道,将采样的数据输入到FPGA进行FFT分析,最终的频谱结果使用分辨率为800*480五寸显示屏显示。

设计的处理流程框图如图1,外部待测量的模拟信号通过AD7606进行模数转换,以1kSPS的采样率进行采样,该项目采用4路信号进行输入,分别同时进行快速傅里叶变换。将频域的波形显示在TFT显示屏上,并且按下选择按键(key_sel)的时候可以切换显示频谱图的通道。数码管的作用是来显示异常信号的频域范围以及幅值大小,比如选择按键显示的是1通道,此时按下调整按键就可以对当前通道的的异常最小频率、最大频率、幅值的区间进行调整,在判断模块中进行和设置条件进行比对,当所测量信号中出现了所设置条件的频率信号,此时蜂鸣器(beep)发出报警声音,并且跟随者LED灯也点亮闪烁来告知人们。直到按下停止按键(key_stop)警报才会消除。

图1 处理流程图

2.2 FFT变换模块

图2 FFT变换顶层

FFT模块里面包含fft_ctrl、ad_fifo、fft_ip、data_modulus 4个模块。

2.2.1 ad_fifo。使用fifo IP将ad采集到的数据进行缓存,设置FIFO的宽度为16位,深度为128。

图3 FlFO存储

2.2.2 fft_ctrl。FFT控制模块按照FFT IP核的数据控制信号时序原理,输出相应的控制时序,在接收到FFT IP发出的数据准备信号(sink_ready)为高电平的时候,先进行判断空信号(fifo_rd_empty)来确定数据缓存模块(ad_fifo)内是否有数据,如果缓存内无数据则继续保持等待。当空信号(fifo_rd_empty)为低电平的时候,表示缓存模块中有数据,此时会将读请求信号(fifo_rdreq)置为高电平来读取缓存模块中的数据。并且同时拉高数据有效信号(fft_valid)、包括一组FFT数据的开始信号(fft_sop)和数据的结束信号(fft_eop)。

图4 FFT控制

2.2.3 fft_ip。Intel公司的FFT IP核具备稳定性高和设计参数化优势,可以进行高性能的FFT变换和FFT逆变换[6-7]。使用的时候调用FFT IP核,按照各端口的时序将AD模块采集到的数据输入到IP核后,该模块就可以输出FFT后的数据。

图5 FFT lP核

图6 FFT lP核时序

设计中首先让IP核等待32个时钟周期之后再进行置位操作。在模块正常工作后,当sink_ready数据准备信号为高电平时,表示可以进行数据的输入了,将该信号输出给上游的FFT控制模块,FFT控制模块就会从fifo中读取数据。根据FFT控制模块读出的数据并根据输出的开始信号(sink_sop)和数据有效信号(sink_valid),将读出来的数据写入FFT IP核中(sink_imag)实部输入端口中。由于设计中的数据是一个实数没有涉及虚部,此时FFT IP核中虚部接口输入接地为全零信号。当结束信号(sink_eop)为高电平时,这个数据就是这一组数据的最后一个数据了。这时就把一组完整的数据接收完成了,然后在FFT模块内部就开始进行FFT变换,此时只需要关注输出的有效信号(source_valid)就可以知道数据是否转换完成了。当该信号为高电平的时候表示输出的数据有效,此时输出开始信号(source_sop)拉为一个时钟周期的高电平,直到最后一个转换完成的数据输出的时候输出结束信号(source_eop)持续一个时钟周期的高电平,表示一组数据转换完成。

2.2.4 data_modulus。该模块为数据取模模块,将经过FFT产生的复数频谱数据的进行求模运算。首先将复数的实部和虚部分别进行平方操作,然后再将虚部和实部平方后的数进行求和然后进行二次开方处理。这里的开方操作利用开平方根IP核,我们将前面计算得到的平方和输送给sqrt IP核,就会得到频谱的模值数据。

图7 数据取模

2.3 频谱图的控制

图8 显示控制顶层

tft_top模块内部例化了tft显示控制模块(tft_coordinates)、ram写控制模块(tftramw_ctrl)、tft数据地址读取控制模块(tftdata_ctrl)、tft数据缓存模块(tftdata_ram)、tft显示屏复位模块(tft_rst)5个模块

FFT模块(fft_top)传输过来的频谱数据经过ram写控制模块处理,送到tft数据缓存模块和tft显示屏复位模块。tft数据缓存模块根据ram写控制模块产生输出给tft数据地址读取控制模块产生的写地址信号进而将数据存储到RAM中;tft显示屏复位模块将直接根据ram写控制模块产生的写请求信号存储到显示屏复位模块中,该模块将产生的复位信号输出到TFT显示屏模块。

tft显示控制模块由TFT显示屏模块输入的行、场同步信号输出读请求数据信号,将读请求信号输入给tft数据地址读取控制模块中产生读地址信号给tft数据缓存模块。将读出的数据进行两路输出,一路是直接输出到模块外部用于报警条件控制模块;另一路是输入到tft显示控制模块,控制TFT显示屏模块在合适的时间显示相应的幅值信息数据。

2.4 按键调整控制

该模块设计使用4个按键,然而需要控制4个通道下的频率和幅度信号。为了保证调整的信号就是预想通道下的信号,为此该模块利用状态机进行了实现。

我们将调整设定为16个状态,分别为通道1的初始状态(频率最小值)、通道1频率最大值调整、通道1的幅度最大值、通道1的幅度最小值调整;依次下去最后显示通道4的初始状态(频率最小值)、通道4频率最大值调整、通道4的幅度最大值、通道4的幅度最小值调整。默认显示通道1的数据,当按下切换通道按键时,会切换到通道2的参数,依次下去显示通道4的参数,当在通道4参数下按下切换按键时会重新回到通道1的参数。在显示通道1的参数时,此时按下加、减按键调整为当前通道下最小频率,按下调整按键,此时会调整当前通道的最大频率,调整完成后可以控制当前最大最小频率范围内的频率。再次按下调整按键时会切换到调整幅值,首先进行幅值最大值的调整,再次按下调整按键,调整的为幅值的最小值,再次按下回到通道1的初始状态。其他通道调整方式均一致。

3 下板验证

使用信号发生器产生一个120Hz的正弦波信号,将信号发生器的输出端连接设计的AD转换芯片的输入端口,如图9,对设备进行如上参数设定,其中a图中0表示第一个通道,FA表示限定最小频率,080表示限定最小频率为80Hz;b图中0表示第一个通道,Fb表示限定最大频率,160表示限定最大频率为160Hz,此时代表限定频率区间范围为80~160Hz;c图中0表示第一个通道,PA表示限定最小幅值,200表示限定最小幅值为200db;c图中0表示第一个通道,Pb表示限定最大幅值,400表示限定最大频率为400db,此时代表限定幅值区间范围为200~400db。经过上述条件的限定,此时如果输入的信号在80~160Hz的频率幅值在200~400db区间,则不会发出警示。当频率或者幅值超出上述区间,则设备会发出警告的声音,并且伴随LED灯闪烁,也可从TFT显示屏中读取当前信号的频率值。

图9 下板验证

4 结束语

文中运用intel公司的 FFT IP核,设计FFT的外围架构,最后配合AD和显示屏以波形的形式进行展现,方便了使用者的观测。并通过软件仿真与实际下板板级实验验证了本次设计方案的可行性,为便捷式低频频谱分析仪设计提供了一种设计思路,方便更好地在施工现场对数字信号进行分析。

猜你喜欢

高电平显示屏按键
一块布就是一个显示屏?
一种基于FPGA的PWM防错输出控制电路
基于有限状态机的按键检测程序设计
多按键情况下,单片机端口不足的解决方法
TS-03C全固态PDM中波发射机开关机控制电路原理及故障分析
2018年智能手表显示屏出货量同比增长42%
苍蝇迷恋显示屏
按键消抖在单片机和FPGA实验教学中的应用
LG申请欧盟商标 或布局MicroLED显示屏
数字电子技术的应用