数据采集卡连接

  数据采集卡………………………………………………………………14.1USB数据采集卡简介………………………………………………24.2USB及其在数据采集设备中的应用………………………………34.3USB采集卡的软件构成……………………………………………4三种在LabVIEW中使用国产数据采集插卡的方法……………………65.1、直接用LabVIEWOutPort图标编程……………65.2、用LabVIEW的CIN图标生成A/D插卡驱动程序的子VI…………75.3、用LabVIEW的CallLibraryFunctions图标…………………8一、引言近年来,面向仪器的软件开发平台,如美国NI公司LabVIEW的成熟和商业化,使用者在配有专用或通用插卡式硬件和软件开发平台的个人计算机上,可按自己的需求,设计和组建各种测试分析仪器和测控系统。由于LabVIEW提供的是一种适应工程技术人员思维习惯的图形化编程语言,图形界面丰富,内含大量分析处理子程序,使用十分方便,个人仪器发展到了使用者也能设计,开发的新阶段。鉴于是工程技术人员自己编制,调用软件来开发仪器功能,软件成了仪器的关键。故人们也称这类个人仪器为虚拟仪器,称这种主要由使用者自己设计,制造仪器的技术为虚拟仪器技术(VirtualInstrumentationTechnology)。使用虚拟仪器技术,开发周期短、仪器成本低、界面友好、使用起来更便捷、可靠性高,可赋于检测仪初步智能,能共享PC机丰富的软硬件资源,是当前仪器业发展的一个重要方面。虚拟仪器的典型形式是在台式微机系统主板扩展槽中插入各类数据采集插卡,与微机外被测信号或仪器相连,组成测试与控制管理系统。但NI公司出售的,直接支持LabVIEW的插卡价格十分昂贵,严重限制着人们用LabVIEW来开发各种虚拟仪器系统。在LabVIEW中如何驱动其它低价位的数据采集插卡,成为了国内许多使用者面临的核心问题。设计课题:如何使数据采集卡与Labview的连接使用使用研华的16位usb数据总线的数据采集卡采集外界通话信号与用labview编辑的机内通话检测系统连接使用设计目的和要求本次课设的目的是完成usb数据采集卡与基于labview的机内通话系统的连接。要求使用研华的16位usb数据总线的数据采集卡。数据采集卡4.1USB数据采集卡简介数据采集模块选用的数据采集卡为研华USB-4716数据采集卡。研华USB-4716是一种基于USB总线的数据采集卡,可直接与计算机USB接口连接,操作便捷、快捷。USB-4716提供了带有16位分辩率的16SE/8Diff输入,高达200kS/s吞吐量,16路数字I/O个用户计数器,以及一个16位的模拟输出。它在工业应用中足够可靠和稳定,却并不昂贵。USB-4716是增加任何带有USB端口的计算机测量和控制能力的最佳的途径。USB-4716是完全的即插即用设计,便于使用。它通过USB端口获得所有所需的电源,无需外部的电源连接。图4.1研华USB-4716主要特征:支持USB2.016路模拟输入通道16位分辨率模拟输入路32位计数器(USB-4716L带AO)适合DIN导轨安装10)锁紧式USB电缆用于紧固式连接通用串行总线USB(UniversalSerialBus)作为一种新型的数据通信接口在越来越广阔的领域得到应用。而基于USB接口的数据采集卡与传统的PCIISA卡相比具有即插即用、热插拔、传输速度快、通用性强、易扩展和性价比高等优点。USB的应用程序一般用VisualC++编写,较为复杂,花费的时间比较久。由美国国家仪器(VI)公司开发的LabVIEW语言是一种基于图形程序的编程语言,内含丰富的数据采集、数据信号分析分析和控制等子程序,用户利用创建和调用子程序的方法编写程序,使创建的程序模块化,易于调试、理解和维护,而且程序编程简单、直观。因此它非常适合于数据采集处理系统。利用它编制USB应用程序,把LabVIEW语言和USB总线紧密结合起来的数据采集系统将集成两者的优点。USB总线能轻松实现对外部数据实时高速的采集,把采集的数据传送到主机后再通过LabVIEW的功能模块顺利实现多个方面数据显示、分析和存储。4.2USB及其在数据采集设备中的应用USB自1995年在Comdex上亮相以来,已广泛地为各PC厂家所支持。现在生产的PC几乎都配置了USB接口,Microsoft的Windows98、NT以及MacOS、Linux等流行操作系统都增加对USB的支持。USB具有速度快、设施安装和配置容易、易于扩展、能够采用总线供电、使用灵活等主要优点,应用愈来愈普遍。一个实用的USB数据采集系统硬件一般来说包括微控制器、USB通信接口以及根据系统要添加的A/D转换器和EPROM、SRAM等。为了扩展其用途,还能加上多路模拟开关和数字I/O端口。系统的A/D、数字I/O的设计可沿用传统的设计方法,根据采集的精度、速率、通道数等诸元素选择正真适合的芯片,设计时应充分注意抗干扰性,尤其对A/D采集更是如此。在微控制器和USB接口的选择上有两种方式:一种是采用普通单片机加上专用的USB通信芯片;另一种是采用具备USB通信功能的单片机。USB的另一大优点是可以总线供电,在数据采集设备中耗电量通道不大,因此能设计成总线供电。一个USB设备的软件一般来说包括主机的驱动程序、应用程序和写进ROM里面的Firmware。Windows98提供了多种USB设备的驱动程序,但还没有一种专门针对数据采集系统,所以必须针对特定的设备编制驱动程序。尽管系统已经提供了很多标准接口函数,但编制驱动程序仍然是USB开发中最困难的一件事。一般会用WindowsDDK实现,但现在有许多第三方软件厂商提供了各种各样的生成工具,如Compuware的DriverWorks、BlueWaters的DriverWizard等软件能够轻易地生成高质量的USB驱动程序。单片机程序的编制也同样困难,而且没有一点一家厂商提供了自动生成的工具。编制一个稳定、完善的单片机程序必然的联系到设备性能,必须给予充分的重视。以上两个程序是开发者所关心的,而用户却不太关心。用户关心的是如何高效地通过鼠标操作设备,怎么样处理和分析采集进来的大量数据。因此还必须有高质量的用户软件。用户软件必须有友好的界面、强大的数据分析和解决能力以及提供给用户进行再开发的接口。4.3USB采集卡的软件构成在USB的Firmware中,采取同步传输(IsochronousTransactions)和块传输(BulkTransactions)两种传输方式。同步方式用来实时传送采集的数据,块传输主要用来传输主机命令信号和USB的状态信息。块传输中利用端点(Endpoint)2。两种传输方式的核心中断程序如下: void ISR_Sutok(void)interrupt 8051TMOD=0x05; TCON=0x10; TH0=0; TL0=0; Thb=0, TH0=0; TL0=0; thb=0; EZUSB_IRQ_CLEAR(); USBIRQ=bmSUTOK; //Clear SUTOK IRQ voidISR_Sof(void)interrupt if(TCON&0x21){//Deal counteroverflow TH0=0; Tl0=0; THB++;TCON} IN8DATA=TH0; Bytescounter result IN8DATA=TL0; IN8DATA=THB; EZUSB_IRQ_CLEAR(); USBIRQ=bmSOF; //Clear SOF IRQ 在LabVIEW应用程序中设计了一Usb.dll 文件作为LabVIEW 与USB 的驱动程 序。由于EZ-USB 开发系统中已经提供了底层驱动程序(GPD)接口函数,用户只 需调用这些函数即可与USB 设备连接。因此在DLL 的编制中只需调用它提供的函 数,大大节约了开发时间,提高了开发速度。创建的Usb.dll 文件中包含了如下 五个输出函数,功能说明如表1 所示。 Usb.dll包含函数的功能说明 Control 主机对USB 设备的控制 ReadResult 获取USB 发送到主机的数据 StartIsoStream 启动设备的同步传输流 StartThread 得到标准设备的设备描述符 StopThread 关闭设备的同步传输流 其定义如下: LPSTR_declspec(dllexport)_stdcall Control(int input); int_declspec(dllexport)_stdcall ReadResult(void); int_declspec(dllexport)_stdcall StartIsoStream(void); int_declspec(dllexport)_stdcall StartThread(void); int_declspec(dllexport)_stdcall StopThread(void); 开启设备和获取采集数据的过程。它的基本功能有:开启或关闭USB设备、 检测USB 设备、设置USB 数据传输管道(pipe)和端点(endpoint)、实时从 USB 接口采集数据、显示并分析数据。 程序在VC++6.0 环境下编制成功后自动生成DLL 文件。调用时,在框图程序 窗口打开FunctionPalette(功能模板),在Advanced 模块包含有对库函数的 调模块,即CallLibraryFunction。把编写好的DLLs 放在当前目录或特定目录 下。在功能模板放置函数调用模块,然后选Configure,出现对话框。根据LabVIEW 与DLLs 的参数对应关系填写好DLL 文件的路径(DLL 文件不在当前目录下)、 被调用函数名、参数的类型及返回类型。必须要格外注意的是,当调用多个函数时要分 别填写参数的个数和对应的类型,而且在调用过程中应保持数据位的一致。填好 选择OK 按钮后,LabVIEW 将自动生成各参数的入口及出口状态,这样就实现了 LabVIEW 与DLLs 的调用。 通过上述方法成功实现了LabVIEW与USB 驱动程序的数据交换,以此来实现了以 LabVIEW为应用程序的USB 实时采集处理系统。将USB 采集卡增加A/D 并对电路作相应的改动后,就可以实现传统采集卡的所有功能。很明显,这种集成了USB 接口优点和

其他人还喜欢