- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
功能简介
示波器基于basys3实验开发板,最大可实现32MSPS的数据显示,2048位傅里叶变换,得到的数据和采集到的波形显示在显示器,通过basys3上面的开关,按钮控制显示分度值,和坐标上下移动。
通过外置无线模块进行数据传输导另一块开发板上,可以传输频率,幅值等数据,实现远程操控,远程控制,远程测量,并且还有一个蓝牙模块,可以将数据传输至手机APP,可以查看相应的数据,是一个具有实际应用功能的应用,若是后期搭配其他零部件可以实现远程实验室,在线医疗,联网检测等设备的应用。
系统框图
图 1
系统框图如图1所示,首先我们采用AD模块将模拟信号数字化,当外部信号发生器无法正常工作室,我们可以切换导内部DDS进行信号的产生,然后将采样到或者发生的8位宽的数据分别送到波形存储RAM和傅里叶变换的FIFO里面,傅里叶变换模块计算后的数据存储到FFT数据存储区域,通过显示控制模块来进行显示。同时中央控制模块通过蓝牙将一些波形数据发送老手机上,可以实时检测。
模块介绍
AD采样模块
我们使用的是黑金科技的告诉ADDA数据采集板,高速 AD 芯片是由 AD 公司推出的 8 位,最大采样率 32MSPS 的AD9280 芯片。内部结构图如图3所示。接口的输入范围是-5V~+5V(10Vpp)。衰减以后,输入范围满足 AD 芯片的输入范围(0~2V)。可以通过图2所示的公式来计算测量出来的值,以便将电压数据还原回去。就可以得到测量的电压值
图 2
图 3
Xilinx FFT核及相关数据处理模块
图 4
快速傅里叶变换计算流程图如图4所示
根据数字信号处理与实现的学习,我们知道有限长离散信号X(n)的DFT可以定义为:
图 5
FFT数据输出后我们可以获得数据的实部和虚部,然后用两个乘法IP和一个开方IP完成求模的工作。
FIFO模块
FIFO模块通过调用FIFO Generator,如图4所示,实现数据缓冲作用,由于FFT进行计算是需要时间的,但是外部的数据数据是一直进来,所以我们需要建立一个FIFO达到数据缓冲的作用,防止处理的时间过长,造成出具的丢失,从而对输出的波形产生影响。FIFO使用Block RAM进行建立,这样占用板子资源比较小,为别的模块处理数据提供了方便。
FIFO模块一共有9个IO口,没有地址引脚,并提供了FIFI满,FIFI空信号的输出,可以为FFT控制FIFO的读写提供了便利,这样就可以精确的控制数据的流量,从而得出正确的数值。
图 6
XFFT模块
快速傅里叶变换(Fast Fourier transform)IPCore采用xilinx公司9.0版本的IPCore,最大可实现65536深度的傅里叶运算,我们这次采用的是2048位的傅里叶变换,效果好,占用资源也比较少,模块如图7所示。
图 7
求模运算
众所周知,乘法是一个很消耗系统时钟的一种运算,我们不能简单的写一个乘号去完成我们这里的乘法运算,为了提高我们程序的运行速度,我们在这里调用xilinx的逻辑运算IP核。
图 8
如图所示,图9是一个23位宽的乘法器,最终输出46位的数据,然后送到图9所示的开方模块,进行运算,得出23位宽的数据,最终将数据传输至FFT数据存储RAM中,完成对连续时间的采样数据进行快速傅里叶变换,可以到到输入波形的频谱图,通过VGA显示模块进行显示出来,与原来的输入波形作对比。
VGA显示模块
预期显示效果如图10所示,屏幕显示背景为红色(可修改)波形显示区域为黑底白字,上面有白色的格子,用于辨识刻度;快速傅里叶变换后的波形显示在下面,黑底绿字,同时也是有白色格子,用于辨识刻度,窗口构建合乎比例,符合人的审美习惯。
图 8
VGA模块采用800*600分辨率进行显示,可以通过查找数据表得到他的时序表,如图4所示,就可以写出接口时序,使用判断语句进行颜色的绘制,采用4096色显示,色彩还原率高,波形显示清晰,无明显色差。
图 9
通过时序表我们可以计算得出VGA时序所需要的时钟频率,800*600分辨率60HZ频率计算下来时钟大约为50MHZ,因此我们在PLL里面设置我们的统一时钟皆为50MHZ,不采用不同频率时钟,防止跨时钟域带来的一些意想不到的奇怪问题,可以减少我们的调试量,将更多地经理放在算法上面。
我们采用图层的理念,因为使用判断语句就会有优先级的差别,因此在显示的时候也是会有一点差别,在进行波形显示的时候我,我们采用了一个小小的算法,就是将行扫描送到RAM中,讲读出来的数据与列扫描的数据判断进行显示。
DDS模块
图12
外部AD无法满足测控的时候可以选择备用DDS模块,可以产
文档评论(0)