数据连续传输的LabVIEW实现 - LabVIEW FPGA模块实现FIFO深度设定

来源:现代电子技术 作者:崔佩佩,何 强,韩2011年09月26日 13:45
[导读] 4 数据连续传输的LabVIEW实现 在本文中系统软件包括两部分:Host vi和FPGAvi,二者是独立而又有联系的两个部分。Host vi运行于主控计算机上,FPGA vi运行于FP
关键词:FIFOLabVIEWFPGA
4 数据连续传输的LabVIEW实现

  在本文中系统软件包括两部分:Host vi和FPGAvi,二者是独立而又有联系的两个部分。Host vi运行于主控计算机上,FPGA vi运行于FPGA上,二者通过FIFO来传输数据。

  4.1 FPGA程序设计

  使用图形化的编程环境LabVIEW FPGA模块来定义FPGA逻辑,除了具有上述的优点以外,LabVIEW作为一种并行结构的编程语言,非常适用于FPGA的并行结构,能够十分方便地实现多线程并行任务。

  

 

  当FPGA vi开始运行时,从Host vi读取数据的FIFO需要一定的初始化时间,时间长度与FIFO的深度成正比。在初始化期间FIFO输出一系列的无效默认值。为了不让无效值进入到下一级的运算中,在DMA方式的FIFO之前加了一个FIFO函数——Get Number of Element to Read,该函数用于获得FIFO内有效数据的数量。当有效数据的数量大于0时,再开始进行下一级运算。考虑到FPGA有限的硬件资源和FPGA FIFO最小值的限制,将数据的地址宽度设为M=11,根据上文分析DMA FIFO的深度设为2M+5=2 053 KB。

  4.2 主控计算机程序设计

  Host vi是系统程序的另一部分部分,它具有建立硬件对象(FPGA)、与硬件通信和图形显示等功能。主控计算机程序图如图6所示,首先要建立与之进行通信的硬件对象,即FPGA;其次配置系统时钟、输出模式;再次创建FIFO,设置其在主控计算机部分的FIFO深度;然后从电子表格读取数据,并循环查询FIFO剩余空间的大小,当剩余空间大于数组长度时,数据写入FIFO当没有足够的空间时,数据保留到下一个循环,满足条件后再写入FIFO;最后关闭FIFO应用,处理错误。

  

 

  当输入数组长度分别为300和1 000,形状如图7所示的波形时,输出数据的波形如图8所示。由于AD9857上变频的原因,使得输出波形在输入的矩形包络中带有载波,载波频率为60 MHz。根据表1中的数据可以得出结论:此处的编程和上述实验的结果是一致的,即FPGA输出频率为10 MHz,数组长度大于500时,系统数据的输出是连续。同时此结果也表明本文中的LabVIEW程序实现了数据的连续传输。

  5 结语

  通过设定合适的FIFO深度,实现了数据的连续传输,为后续的工程设计奠定了基础。该设定FIFO深度的方法也对其他使用LabVIEW FPGA模块的工程设计具有一定的参考价值。

上一页123

本文导航

相关阅读

发表评论
技术交流、积极发言! 发表评请遵守相关规定。

0 条评论

推荐阅读

每月人物

依托AI平台,涂鸦智能开启全屋智能2.0时代!

依托AI平台,涂鸦智能开启全屋智能2.0时代!
随着物联网技术的突飞猛进,生活中越来越多的家庭设备将会联上网络,变得“智慧”起来,智慧家庭的概念成了这几年媒体、企业、用户关注的焦点,而...

发力IoT边缘智能服务,研华以平台服务与边缘智能计算打开物联网应用之门

发力IoT边缘智能服务,研华以平台服务与边缘智能计算打开物联网
研华IoT嵌入式平台事业群总经理许杰弘表示,工业物联网 2009年就开始提出,至今缺乏临门一脚,现在是打开大门的时候了。研华WISE-PaaS物智联软件平台和...

每周排行

  • 型 号
  • 产品描述