|
本帖最后由 linccfzu 于 2020-7-23 23:09 编辑
大家晚上好,今天讲讲如何使用FPGA采集超声波回波数据。
之所以要用FPGA,是为了提高采样率,在有一些应用场景下,如果1mhz或2mhz的陶瓷片,采样率要求50mhz 或者 100mhz以上,单单单片机就做不到了,所以需要用FPGA采集,然后将数据传给单片机,由单片机再进行处理。
网上学习FPGA的资源虽然没有stm32多,但是也不少,比如原子、黑金、锆石等。有c语言以及模电数电基础的,要学习FPGA也不难。
用FPGA来DIY开源的项目不多,这里介绍分享一个开源的项目,里面的FPGA部分代码可以参考学习。
袖珍示波器 Pocket Oscilloscope-DS203 以及其他的几个产品
这东西电路、软件、fpga等代码都是开源的,很值得学习,应该主要卖给国外客户的。
它的stm32程序结构也很特别,有DFU(在线升级)、BIOS(底层驱动)、可以同时放四个用户程序,开机通过按键切换,同时用户程序可以调用BIOS里面的函数接口,很有意思。
硬件原理图也同样值得学习,包括示波器前端增益的切换、外部供电与电池供电的自动切换等
然后就是FPGA部分,看一看,可以提高对FPGA的理解。
资源地址分享:http://www.minidso.com/forum.php ... &extra=page%3D1
接下去就是分享我超声波的部分,还是那个破电路
感觉用上FPGA后,那个超声波模块就不够看了,但是网上又找不到现成的高频率的模块,又贵的不行,我做这个分享,花几百块做个硬件又不划算。
所以高频率的还是以后有机会再说吧,先来低频练练手。
然后介绍一下FPGA的程序,
FPGA的主要工作内容就是,
如果收到一个工作信号--》产生一定频率和个数的脉冲激励陶瓷片--》等待一定的延时--》用一定的采样率采集数据--》讲数据发送给单片机或者单片机
FPGA主要通过串口跟单片机或者上位机通讯,简单做了几个控制指令:
可以用串口调试工具验证一下
然后就可以直接FPGA和matlab通讯了,这里没有stm32什么事情,我后面再整合在一起
这里可以对比一下,1mhz、4mhz、10mhz采样率的不同,由于陶瓷片只有40khz,所以有点不够看.
最后分享一下FPGA的代码、以及matlab的代码。代码是“现学现卖”的,没有规范性。
具体的我就不多说了,大家有兴趣参考程序吧
今天就分享这些了。主要是分享一种学习思路。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|