首页>>科技 >>内容

基于FPGA芯片EP1c3T144和开发平台的虚拟仪器接口设计实现:

发布时间:2023-07-09 20:52:40编辑:温柔的背包来源:

很多朋友对基于FPGA芯片EP1c3T144和开发平台的虚拟仪器接口设计实现:不是很了解,每日小编刚好整理了这方面的知识,今天就来带大家一探究竟。

基于FPGA芯片EP1c3T144和开发平台的虚拟仪器接口设计实现:

简介

LabVIEW是一种基于图形程序的虚拟仪器编程语言。与传统仪器相比,虚拟仪器技术以计算机为基础,在程序界面中有模拟真实仪表板的控件,可以用来设置输入值,观察输出值,显示图表和文字,因此具有友好的人机界面。LabVIEW具有强大的数据采集、分析、处理、显示和存储功能。

它已广泛应用于测试测量、数据采集、仪器控制、数字信号分析、工厂自动化等领域,显示出其强大的生命力。在相同的硬件条件下,LabVIEW平台下开发的虚拟仪器可以通过改变软件实现不同的仪器功能,真正实现了“软件即仪器”的设计理念。

LabVIEW采集和处理数据的传统方式是使用数据采集卡。但是这些数据采集卡安装不方便,价格昂贵,受计算机插槽数量、地址和中断资源的限制,可扩展性差。在LabVIEW平台下使用USB总线传输数据,由于USB接口总线具有即插即用、接口简单、传输速率高等特点,基于Lab-VIEW和USB接口的虚拟仪器灵活、可靠、经济。

鉴于LabVIEW和USB接口仪器的优势,在LabVIEW下实现USB接口的接口程序显得尤为重要。介绍了一种基于LabVIEW和USB的虚拟仪器接口的设计方法。1设计方案由于基于USB总线的各种数据采集与控制虚拟仪器都涉及到LabVIEW与USB接口程序的设计,为了不失通用性,本文以虚拟示波器为例介绍这种接口程序的设计方法。1.1硬件设计方案

该系统是一个虚拟示波器,主要工作是采集待测的模拟信号,并通过USB 2将信号传输到PC104计算机。o界面,在计算机LabVIEW平台下运行应用软件,完成数据处理和记录,并在显示器上绘制曲线。该系统主要由模拟信号采集模块、FPGA控制模块、USB传输模块和计算机组成,其系统结构框图如图1所示。1.1.1 FPGA控制模块

本设计采用Alter公司的Cyclone系列现场可编程门阵列(FPGA)和芯片EP1c3T144实现高速数据控制和传输。EP1C3T144采用TPFQ封装,具有100个I/O端口和2个910逻辑单元。它是一种高密度和高性能的FPGA。FPGA的主要功能是高速数据采集、数据帧控制和与USB微控制器的通信。具体说明如下:

(1)高速数据采集和增益控制。高速数据采集的作用是控制高速A/D进行数据采集的时序。增益控制功能是通过向程控增益放大电路发送控制命令来控制模拟电路的放大。限于篇幅,这两方面的内容就不详细介绍了。

(2)数据帧控制。FPGA每秒向PC发送100帧512 B的数据,如何精确控制和传输如此高速的数据是系统的技术难点之一。在这种方案中,每帧数据由三部分组成:如图2所示。

其中,每一帧数据的起始位和结束位都是固定数据,计算机的测井应用软件判断接收到的每一帧数据的帧头和帧尾是否错误。如果有错误,丢弃帧数据并准备接收下一帧数据。在第二部分数据中,模拟信号由FPGA控制的A/D芯片采集。1.1.2 USB传输模块

赛普拉斯公司。EZ-USB FX2芯片CY7C68013是一款高性能的USB 2.0微控制器。USB 2。o收发器、SIE(串行接口引擎)、增强型8051微控制器和可编程外设接口集成在单片微型计算机上。EZ-USB FX2中的智能SIE可以处理大多数USB 2.0协议,使微控制器能够专注于应用功能,从而减少开发时间并确保USB兼容性。

CY7C68013有三种可用的接口模式:端口、GPIF主机和从机FIFO。在本系统中,根据数据传输速度和实时性的要求,将CY7C68013的接口模式配置为从FIFO模式。在从FIFO模式下,外部逻辑或外部处理器直接连接到FX2端点FIFO。在这种模式下,外部主机FPGA通过异步模式与CY7C68013通信。

FPGA与CY7C68013之间的硬件接口框图如图3所示。Sl _ wr/sl _ rd是从机FIFO的写使能/读使能信号。FPGA向CY7C68013提供从FIFO输出许可信号SL_OE,该信号仅在数据输出时有效。FB[7:0]是一种8位双向数据总线。Addr [1: 0]是FIFO端点选择信号。输入数据时,固定为00,选择端点2;输出数据时,固定为10,选择端点6。1.2软件设计方案

为了充分利用LabVIEW中其他编程语言的优势,LabVIEW提供了强大的外部程序接口功能。这些接口包括DLL、C语言接口(CIN)、ActiveX、NET,DDE,Matlab等等。通过DLL,可以轻松调用用C、VC、VB编写的程序以及大量Windows自带的API函数。动态链接库(DLL)是一个可以被多方共享的程序模块,共享的例程和资源封装在里面。

动态链接库文件的扩展名一般是dll,DLL和可执行文件(exe)非常相似,最大的区别在于DLL虽然包含了可执行代码却不能单独执行,必须由Windows应用程序直接或间接调用。

因此,开发上层应用软件的首要工作是DLL动态链接库的开发,在这里DLL动态链接库采用VC++60进行开发。LabVIEW调用DLL示意图如图4所示,由于DLL能够调用API函数与USB设备进行通信,而采用NI公司的虚拟仪器软件开发平台LabVIEW可以充分发挥虚拟仪器的灵活性。

因此,将两者优势结合起来,该设计的虚拟示波器用户控制面板具有界面友好,操作直观等优点,通过面板上的各种控件便可实现数据的采集、存储、再现及分析等功能。

2 软件设计

软件设计是虚拟仪器开发的必备环节。基于LabVIEW与USB的虚拟仪器的软件设计分为4部分:主机操作系统上的客户驱动程序、主机应用程序、Ez-USB FX2的固件程序以及FPGA软件。

21 驱动程序

主机软件部分包括USB客户驱动程序和主机应用程序。USB客户驱程序是支持即插即用功能的标准WDM驱动程序,它为实现控制传输、中断传输和批传输提供了标准接口函数。一般情况下Cypress公司所提供的客户驱动程序已经能够满足需求,如果有特别的需求,可以在其基础上开发自己的驱动程序。

22 应用程序LabVIEW调用DLL

主机应用程序是系统与用户的接口,需要一个图形用户界面来控制所调用的函数,这里采用LabVIEW来编写应用程序。它通过调用DLL与驱动程序进行通信,以完成对外设的数据传输。在编写用户程序时,首先要建立与外设的连接,然后才能实施数据的传输。

在DLL程序中主要用到2个API函数:一是利用Create-File得到USB句柄;二是利用DeviceIoControl来向设备驱动程序发送请求,完成在EZ-USB FX2中数据批传输的读取与写入。

采用LabVIEw来设计这里的应用程序,关键是通过Call Library Function节点来调用前面所编写DLL文件中的各个函数。该节点位于Functions Palette的Connectivity |Libraries Executables | Call LibraryFunction Node,如图5所示。

通过CLF节点来调用前面所编写的DLL步骤如下:

(1)单击该节点将其放置在程序框图中,此时该节点没有与任何DLL连接;

(2)右击该节点并选择Configure选项或者直接双击该节点可以打开库函数配置对话框;

(3)在该模块的属性设置中选择DLL文件中所包含的某个函数,然后再设置好函数的返回类型和参数类型。这样就可以使LabVIEW调用DLL文件中的一个函数(针对DLL中的每个函数都需要设置一个CallLibrary Function Node)。最后把该模块的另一端连接到显示模块,就可以显示从USB接口读进的数据。

23 EZ-USB FX2的固件程序

固件程序是指运行在设备CPU中的程序。只有在该程序运行时,外设才能称之为具有特定功能的外部设备。固件程序负责初始化各硬件单元,重新配置设备。固件代码的存储位置一般有2种:

第一种是存在主机中,设备加电后由驱动程序把固件下载到片内RAM后执行,即“重新枚举”;

第二种是把固件代码固化到1片E2RPOM中,外设加电后由FX2通过I2C总线下载到片内RAM后自动执行。笔者选用第一种方式,这种方式便于系统的调试和升级。

为了简化和加速用户使用EZ-USB FX2芯片进行USB外设的开发过程,Cypress公司提供了一个完整的固件程序架构,用户只需要提供一个USB描述符表,添加其他端点接收和发送数据的通信代码,以及控制外围电路的程序代码。具体操作可以参考文献1中的内容。

24 FPGA软件

该系统采用VHDL和BlockDiagramSchematic相结合的方法来对各功能模块进行逻辑描述,然后通过EDA开发平台,对FPGA芯片进行编程,实现系统的设计要求。

数据采集系统的数据方向是双向的。从计算机端来看,“读数据”即FPGA通过CY7C68013向计算机发送测井数据;“写数据”即计算机通过CY7C68013向FPGA发送测井命令。

如图6所示,“读数据模式”的工作原理是计算机在数据采集模式下,CY7C68013的PD7被设置为低电平,FPGA判断该位电平为低,则工作在向USB发送数据模式。此时,FPGA判断USB单片机FULL管脚是否有效,若CY7C68013中FIFO6未满,则一直向FIFO6发送数据。计算机接收到被AD数据后,完成计算、绘图、保存等功能。

“写数据模式”的工作原理:计算机在发送命令模式下,CY7C68013的PD7被设置为高电平,FPGA判断该位电平为高,则工作在接收USB发送命令模式。此时,FPGA判断USB单片机EMPTY管脚是否有效,若CY7C68013中FIFO2未空,则一直读取FIFO2中的命令数据,同时根据命令改变AD采集的通道数和程控放大器的增益值。

3 结语

设计的基于LabVIEW与USB的虚拟仪器不但具有体积小,功耗低,成本低,使用灵活方便,硬件电路简单,可在线更新等特点;而且还充分利用了微机资源和LabVIEw的灵活性,因而易开发,且扩展性好。目前,基于LabVIEW与USB的虚拟仪器已经用于我校电子电工实验室建设之中,能达到高速数据传输、记录及显示的要求,具有较高的实用价值。

以上知识分享希望能够帮助到大家!