基于LabVIEW与USB的虚拟仪器接口设计
0 引 言
LabVIEW是一种基于图形程序的虚拟仪器编程语言,与传统仪器相比,虚拟仪器技术以计算机为平台,在程序界面中有用于模拟真实仪器面板的控件可供调用,可用于设置输入数值、观察输出值以及实现图表、文本等显示,因此具有友好的人机界面。LabVIEW具有强大的数据采集、分析、处理、显示和存储功能。在测试与测量、数据采集、仪器控制、数字信号分析、工厂自动化等领域获得了广泛的应用,显示出其强劲的生命力。LabVIEW平台下开发的虚拟仪器在相同硬件条件下,改变软件即可实现不同的仪器功能,真正实现了"软件即仪器"的设计理念。
实现LabVIEW对数据的采集和处理,传统的方法是采用数据采集卡,但是这些数据采集卡设备存在安装不便,价格昂贵,受计算机插槽数量、地址、中断资源的限制,可扩展性差等缺点。在LabVIEW平台下使用USB总线进行数据传输,由于USB接口总线具有即插即用,接口简单,传送速率高等特点,因此基于Lab-VIEW和USB接口的虚拟仪器具有灵活、可靠、经济等特点。
鉴于以上LabVIEW和USB接口仪器的优点,实现LabVIEW下USB接口的接口程序就显得尤为重要。在此,介绍了一种基于LabVIEW与USB的虚拟仪器接口设计的方法。
1 设计方案
由于各类基于USB总线的数据采集、控制的虚拟仪器都涉及到LabVIEW与USB接口程序的设计,为了不失一般性,这里以虚拟示波器为例,介绍该接口程序的设计方法。
1.1 硬件设计方案
该系统是虚拟示波器,主要工作是采集被测模拟信号,并将信号通过USB2.o接口传输到PC104计算机,运行计算机LabVIEW平台下的应用软件完成数据的处理与记录,并在显示器上绘制曲线。
该系统主要由模拟信号采集模块、FPGA控制模块、USB传输模块和计算机组成,其系统结构框图如图1所示。
1.1.1 FPGA控制模块
该设计采用Alter公司的Cyclone系列现场可编程门阵列(Field Programmable Gate Array,FPGA),芯片EP1c3T144来实现高速数据控制及传输。
EP1C3T144采用TPFQ封装,拥有100个I/O口和2 910个逻辑单元,是一种高密度、高性能的FPGA。
FPGA的主要功能是高速数据采集、数据帧控制,以及与USB单片机进行通信。具体说明如下:
(1)高速数据采集及增益控制。高速数据采集功能是控制高速A/D的时序进行数据采集;增益控制功能是通过向程控增益放大电路发送控制命令,进而达到控制模拟电路放大倍数的目的。由于篇幅关系,有关这两个方面的内容不做详细介绍。
(2)数据帧控制。FPGA每秒向PC机发送100帧和每帧512 B的数据,将如此高速的数据进行准确无误的控制和传输是系统的技术难点之一。该方案中,每帧数据由3部分组成:如图2所示。
其中,每一帧数据的开始位和结束位是固定数据,计算机的测井应用软件判断接收到每一帧数据的帧头及帧尾是否错误。若出现错误,将该帧数据丢弃,同时准备接收下一帧数据。数据第二部分,模拟信号由FPGA控制A/D芯片采集得到。
1.1.2 USB传输模块
Cypress公司的。EZ-USB FX2芯片CY7C68013是一款性能较高的USB 2.0微控制器。在单片机上集成USB 2.O收发器、SIE(串行接口引擎)、增强的8051微控制器和可编程的外围接口。EZ-USB FX2中的智能SIE可以处理大部分USB 2.0协议,使得微控制器可以专注于应用功能,从而减少了开发时间,确保了USB的兼容性。
CY7C68013有3种可用的接口模式:端口、GPIF主控和Slave FIFO方式。在该系统中,根据系统对数据传输速度和实时性的要求,配置CY7C68013工作的接口模式为Slave FIFO模式。在Slave FIFO模式下,外部逻辑或外部处理器直接与FX2端点FIFO相连。这种模式下,外部主控器FPGA通过异步方式与CY7C68013进行数据通信。
FPGA与CY7C68013之间的硬件接口框图如图3所示。SL_WR/SL_RD是Slave FIFO的写使能/读允许信号。FPGA向CY7C68013提供Slave FIFO输出允许信号SL_OE,仅在数据输出时有效。FB[7:O]为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函数。动态链接库(Dynamic LinkLibrary,DLL)是一个可以多方共享的程序模块,内部对共享的例程和资源进行了封装。动态链接库文件的扩展名一般是.dll,DLL和可执行文件(exe)非常相似,最大的区别在于DLL虽然包含了可执行代码却不能单独执行,必须由Windows应用程序直接或间接调用。
因此,开发上层应用软件的首要工作是DLL动态链接库的开发,在这里DLL动态链接库采用VC++6.0进行开发。LabVIEW调用DLL示意图如图4所示,由于DLL能够调用API函数与USB设备进行通信,而采用NI公司的虚拟仪器软件开发平台LabVIEW可以充分发挥虚拟仪器的灵活性。因此,将两者优势结合起来,该设计的虚拟示波器用户控制面板具有界面友好,操作直观等优点,通过面板上的各种控件便可实现数据的采集、存储、再现及分析等功能。
- 基于LabVIEW RT的自定义流程测控系统(10-30)
- 基于LabVIEW的语音分析平台的实现(10-30)
- 基于示波器卡和LabVIEW的马达编码器测试系统(11-06)
- 基于虚拟仪器的网络虚拟实验室构建(11-06)
- 运用LabView控制DS3900串口通信模块(02-02)
- 采用模块化仪器,对新兴音频和视频应用进行测试(02-19)