BB-World

基于Zynq等精度测量的100M频率计连载篇(一)--序言

0
阅读(1495)

    前前后后终于忙完了毕业设计论文的事情,难得有时间出来好好整理一下自己的毕业设计,虽然这个作品不是什么大神级的,但也是自己辛辛苦苦摸索出来的道路,从当初老师在实验室丢给我一块Zedboard开发板,到现在自己快毕业了才能拿这块强大的板子做一点小项目,实在是不容易啊,完全是自己一个人四处摸索学习道路,刚好碰上电子竞赛的国赛期间训练题目,做15年国赛题的F题频率计,就正式踏上学习摸索之路。

    打算写这个连载篇的初衷是自己的学习之路都是靠着网络上各种资源学习起来的,各路电子爱好者的博客论坛都给予了很多的帮助,深知学习来之不易,也心存感激,所以自己也要发扬这种乐于分享的电子人精神,就打算通过几篇,具体的还不知道哈哈,能够把这个项目的完整过程都写下来,如果你们手头上有一个Zedboard开发板就完美了,这样学习就方便多了,好了废话不多说了,下面就开始简述一下这个项目的过程了。

    这个项目是我的一个省级大创项目,是15年国赛的F题,同时也是我的毕业设计,做这个项目的来源是训练国赛题目,刚好那会在学习FPGA,知道这个频率计应该就是用那玩意做的,但是也是云里雾里的,不知道如何下手,于是就开始网上疯狂找资料。看的最多的也是电子竞赛设计报告里面的,刚开始我是先用quartus II编写verilog程序,然后通过modelsim仿真来查看结果,经过一段时间的摸索,大概的能把测量频率周期,占空比,时间间隔的三个子模块的程序写出来,仿真上测试的也没问题。接下来的工作就是如何实际的测量输入信号,然后显示出来了,我看网上很多设计的办法都是FPGA+单片机,用FPGA采集信号,将计数器的数值通过串口或者SPI传输到单片机进行处理,单片机的好处就是CPU,可以浮点数处理,精确到小数点好几位,液晶驱动显示也比FPGA要方便很多,这是个比较经典的做法,看了这么多的设计报告,大伙都是这么做的,于是乎,自己也打算这么开始干了。

    在做频率计的同时我也在学习Zedboard这块板子,还好网上也能找到一些相关资料例程,不过学习起来还是相当困难,大家都知道学习FPGA门槛高,这块东西还是集成了FPGA+ARM的,功能相当强大。一次偶然,我看到有篇文章写道用Zedboard板子实现了一个等精度测量的简单频率计,输入信号时内部时钟给的,通过串口读出数据,心里实在的激动,这个设计能救命啊哈哈。我也跟着自己操作了一遍,就决定了,就用这个板子做,相信自己能做出来,这一做,前后就做了很久,一直在完善,主要能力也没有很高,从一开始的串口读取数据到后面用板载的OLED显示,显示只有两行,又得用按键切换,前级电路那里有放大器和比较器要画板子比较好,就想做的好一点就做了挺长时间,大二寒假开始做,到毕业设计了也一直在完善,中间还参加了国赛等一些比赛,主要是中间考研花费了一年时间,实在是痛苦啊。最后都总算把这个项目给落实下了,就想着把这个写出来,分享给一些想学习Zynq 的小伙伴们,研究生阶段也想继续搞这个方面了,有一定的基础。接下来的连载篇主要是想把核心的内容写出来,如果有软件还不会装的自己就赶紧先学一学,希望写道最后,有板子的都能跟着做出来,做出来就会发现,其实这东西代码一点也不难,实际上也没啥技术含量,但是自己就是做了这么长时间,重要的是中间摸索学习的过程,实在是辛苦但是又非常深刻。

    好了今天就唠叨这么多了,下一篇开始就介绍verilog编写的核心程序了,主要是频率周期,占空比,时间间隔三个子模块,希望大家多多支持