一 : 如何选择USB数据采集卡
四川拓普测控科技有限公司提供高速、超高速数据采集卡。总线种类多样,以下介绍USB总线测量模块。
USB总线测量板卡[数据采集卡]如何选择USB数据采集卡 一
NDAQ-10024是8/4通道同步并行数据采集模块,3U高度,采用24Bit高精度A/D,每通道最高采样率可同时达到100KSps;配有最高128M/256M字节的板载缓存及32K字节FIFO,支持DMA实时数据传输,支持USB3.0标准,动态范围超过100dB。可配上VIB系列机盒变成便携式小仪器使用,或者独立直接使用,便于用户配套或者二次开发使用。适用于、较低速、微弱动态信号的同步实时采集记录。
支持二次开发,满足用户开发专用测控系统的需求。
[数据采集卡]如何选择USB数据采集卡 二
NDAQ-1616是4通道同步并行数据采集模块,3U高度,采用16Bit高精度A/D,每通道最高采样率可同时达到1MSps;配有最高256M字节DDR板载缓存及32K字节FIFO,支持DMA实时数据传输,支持USB3.0标准。可配上VIB系列机盒变成便携式小仪器使用,或者独立直接使用,便于用户配套或者二次开发使用。适用于多通道较高速动态信号的同步实时采集记录。
支持二次开发,满足用户开发专用测控系统的需求。
[数据采集卡]如何选择USB数据采集卡 三
NDAQ-20614/50614是4通道同步并行数据采集模块,3U高度,采用14Bit高精度A/D,每通道最高采样率可同时达到20M/50MSps;配有最高4G字节的DDR板载缓存。支持USB3.0标准,可配上VIB系列机盒变成便携式小仪器使用,或者独立直接使用,便于用户配套或者二次开发使用。适用于多通道高速动态信号的同步实时采集记录。
支持二次开发,满足用户开发专用测控系统的需求。
[数据采集卡]如何选择USB数据采集卡 四
UCARD-20016是4通道同步并行测量板卡,采用16Bit高精度A/D,每通道最高采样率可同时达到200KSps,同时具有分段存储、多次触发、自动记录功能,可在现场应用中自动连续记录多次事件信号,无需人工干预,适用于较低速动态信号的实时记录采集;通信接口全兼容USB2.0标准,往下兼容USB1.1。随卡提供接口说明、二次开发包及相应联接件,方便嵌入到用户开发的系统中。
[数据采集卡]如何选择USB数据采集卡 五
NDAQ-10616是4通道同步并行数据采集模块,3U高度,采用16Bit高精度A/D,每通道最高采样率可同时达到10MSps;配有最高4G字节的DDR板载缓存及32K字节FIFO,支持DMA实时数据传输。支持USB3.0标准,可配上VIB系列机盒变成便携式小仪器使用,或者独立直接使用,便于用户配套或者二次开发使用。适用于多通道高速动态信号的同步实时采集记录。
支持二次开发,满足用户开发专用测控系统的需求。
[数据采集卡]如何选择USB数据采集卡 六
UCARD-20016SE是16通道循检式测量板卡,采用循环扫描的采集方式,最高扫描速率为200KSps,配置16Bit高精度A/D,可实现对16通道的静态或动态模拟信号采集、记录,适用于对被测对象时间同步性要求不高的测试场合;数据掉电保护功能增加了数据安全性,即使在使用过程中突然掉电,已经存于仪器中的单片机程序、门阵列码、采集数据、设置参数等都不会丢失。通信接口全兼容USB2.0标准,往下兼容USB1.1。随卡提供接口说明、二次开发包及相应联接件,方便嵌入到用户开发的系统中。
[数据采集卡]如何选择USB数据采集卡 七
NDAQ-25016是8/4通道同步并行数据采集模块,3U高度,采用16Bit高精度A/D,每通道最高采样率可同时达到250KSps;配有最高256M字节的板载缓存及32K字节FIFO,支持DMA实时数据传输,支持USB3.0标准。可配上VIB系列机盒变成便携式小仪器使用,或者独立直接使用,便于用户配套或者二次开发使用。适用于多通道较低速动态信号的同步实时采集记录。
支持二次开发,满足用户开发专用测控系统的需求。
[数据采集卡]如何选择USB数据采集卡 八
NDAQ-120614/250614是2/1通道同步并行数据采集模块,3U高度,采用14Bit高精度A/D,每通道最高采样率可同时达到125MSps,单通道模式采集时可达250MSps;配有最高4G字节的DDR板载缓存。支持USB3.0标准,可配上VIB系列机盒变成便携式小仪器使用,或者独立直接使用,便于用户配套或者二次开发使用。适用于多通道超高速动态信号的同步实时采集记录。
支持二次开发,满足用户开发专用测控系统的需求。
END二 : 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计
毕 业 论 文
学生姓名: X X 学 号: XXXXXX 学 院: XXXXXXXXXXXXX学院 专业年级: XXXXXXXXXX 题 目: 基于USB数据采集卡软硬件设计 指导教师: XXXXX 工程师 评阅教师: XXXX 讲师
2010 年 5月
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
摘 要
随着数据采集在现代军事及科学研究中的重要地位日益突出,人们对数据采集设备要求也不断提高。在信号测量、图像处理、音频信号处理等一些高速、高精度的测量中,都需要进行高性能数据采集。现在通用的高速数据采集卡一般多是PCI卡或ISA卡,这些采集卡存在不少缺点,如安装烦琐,价格昂贵,尤其是受计算机插槽数量、地址、中断资源的限制,可扩展性差。
通用串行总线(Universal Serial Bus简称USB)克服了上述问题。它是1994年底由Compaq、IBM、Microsoft等多家公司联合提出的计算机与外围设备之间的一种新式标准接口总线。USB总线具有快速、可靠、可扩展、即插即用等特点。USB协议中,数据的传输速率很高,这就使通过 USB实现快速传递大容量数据的外设成为现实。
本文基于USB设计了一数据采集系统,并在Labview软件中实现数据仿真,模拟实现利用USB技术进行数据采集的功能。
【关键词】 USB 固件 设备驱动 数据采集 实时时钟
第 1 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? Title
Abstract
Data acquisition plays a more and more important role in modem industry and scientific research, According to it, the requirements of data acquisition device get highly improved.High-performancedata acquisition is needed in some high speed and high precision measurements when signal measurements,image manipulation and audio frequency signalprocess are taken.Incurrent,high—speed acquisition modules are mostly based on PCI bus Or ISA bus. But they have obvious such as not to and are restricted to disadvantages easy fix,high cost and especially they are restricted to the slot number, address and interrupt resources.
Universal Serial Bus (USB) Universal disproved Bus referred to overcome these problems. It was the end of 1994 by IBM, Compaq, Microsoft etc. Many companies and joint computer peripheral equipment, a new type of standard interface buses. USB is fast, reliable, extensible, plug and play, etc. USB protocol, data transmission rate high, it will make the USB realize rapid transfer capacity data peripherals to become a reality.
This paper designs a data acquisition card which is based on the USB, and the card can realize the data acquisition, real-time of the liquid crystal display, data storage and USB serial communication.
Keywords :USB; Firmware; Device driver; Data Acquisition; Real Time Clock
第 2 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
目录
1 绪论 ?????????????????????????????? 1
1.1 引言 ????????????????????????????? 1
1.2 选题背景和研究意义 ?????????????????????? 1
1.3 USB的应用概述????????????????????????? 2
1.4 本文所做的工作 ???????????????????????? 2 2 USB及所用软件介绍 ??????????????????????? 3
2.1 USB介绍 ??????????????????????????? 3
2.2 labview软件 ????????????????????????? 6
2.3 Protel DXP软件介绍?????????????????????? 9 3 USB数据采集卡硬件设计 ?????????????????????11
3.1 USB数据采集卡功能???????????????????????11
3.2 数据采集原理及系统结构 ????????????????????12
3.3 采集系统硬件模块 ???????????????????????20
3.4 技术指标及电路原理图设计 ???????????????????23 4 USB数据采集卡软件设计 ?????????????????????27
4.1 固件程序 ???????????????????????????28
4.2 设备请求处理 ?????????????????????????30
4.3 A/D转换控制子函数 ??????????????????????31
4.4 USB描述符???????????????????????????31
4.5 上位机程序设计???????????????????????? 32 5 仿真 ??????????????????????????????33 结论 ???????????????????????????????35 致谢 ???????????????????????????????36 参考文献????????????????????????????? 37 附录????????????????????????????????????38 附图????????????????????????????????????48
第 3 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? 1 绪论
1.1 引言
长期以来,在工业生产和科学技术研究过程的各行业中,常常要对各种数据进行数据采集,通常使用的有ISA、PCI 等数据采集卡,这种方式存在安装麻烦,价格贵等缺点。而目前采用的USB总线接口具有许多总线所无法实现的优势,如支持即插即用,具有热插拔,可以通过主机为设备提供电源,接口简单,单元体积小,只需要一根USB电缆即可。因此本文设计了一种基于USB 通信数据采集卡的系统。
1.2 选题背景和研究意义
随着信息技术的飞速发展,各种数据的实时采集和处理在现代工业控制中已成为必不可少的。这就给现代USB技术提出了两个方面的要求:一方面,要求接口简单灵活且有较高的数据传输率;另一方面,由于数据量通常都较大,要求主机能够对实时数据做出快速响应,并及时进行分析和处理。随着信息化带动工业化进程的逐步深入,电子计算机信息技术的不断发展和完善,采用USB实现的数据采集系统的应用越来越多。
传统的外设与主机的通信接口难以满足上述各个方面的要求。USB技术正是顺应这一要求提出的,它具有较高的传输速度,实现了真正意义上的“即插即用”(Plug&Play),同时USB上最多可以连接127个外设。因此,将USB技术应用于数据采集是非常适合的。
数据采集及存储系统是数字信号处理系统的重要环节,高速数据传输对提高整个系统的性能有着巨大意义,利用USB总线进行高速传输,解决了数据传输中的速度瓶颈问题。数据采集系统的应用已经深入到数字信号处理的各个领域中。USB总线由于其速度快、可靠性好、成本低、兼容性强等特点,在各种计算机总线标准中占主导地位,基于USB总线标准的接口设计已成为相关项目开发中的优先选择。
第 4 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
1.3 USB的应用概述
USB是英文Universal Serial BUS的缩写,中文含义是“通用串行总线”。它不是一种新的总线标准,而是应用在PC领域的接口技术。USB是在1994年底由英特尔、康柏、IBM、Microsoft等多家公司联合提出的。不过直到近期,它才得到广泛地应用。从1994年11月11日发表了USB V0.7版本以后,USB版本经历了多年的发展,到现在已经发展为2.0版本,成为目前电脑中的标准扩展接口。目前主板中主要是采用USB1.1和USB2.0,各USB版本间能很好的兼容。USB用一个4针插头作为标准插头,采用菊花链形式可以把所有的外设连接起来,最多可以连接127个外部设备,并且不会损失带宽。USB需要主机硬件、操作系统和外设三个方面的支持才能工作。目前的主板一般都采用支持USB功能的控制芯片组,主板上也安装有USB接口插座,而且除了背板的插座之外,主板上还预留有USB插针,可以通过连线接到机箱前面作为前置USB接口以方便使用(注意,在接线时要仔细阅读主板说明书并按图连接,千万不可接错而使设备损坏)。而且USB接口还可以通过专门的USB连机线实现双机互连,并可以通过Hub扩展出更多的接口。USB具有传输速度快,使用方便,支持热插拔,连接灵活,独立供电等优点,可以连接鼠标、键盘、打印机、扫描仪、摄像头、闪存盘、MP3机、手机、数码相机、移动硬盘、外置光软驱、USB网卡、ADSL Modem、Cable Modem等,几乎所有的外部设备。
1.4 本文所做的工作
本文首先概述了USB数据采集卡在设计过程中引入的相关新技术,然后针对该数据采集模块的特点与要求,详细论述了其组成与工作原理,以及仿真结果实现。最后给出了该数据采集模块进行数据采集时的部分波形和软件界面。
(1)设计了基于USB的数据采集系统的硬件系统;
(2)仿真了USB接口芯片和其它芯片之间的通信接口;
(3)基于USB 协议,编写了固件程序;
(4)编写了简单的主机应用程序;
(5)编写了数据采集卡的USB设备驱动程序。
第 5 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? 2 USB及所用软件介绍
2.1 USB介绍
USB总线规范是为实现计算机和通信集成而提出的一种用于扩充PC体系结构的工业标准。基于USB接口的高性能数据采集模块,充分利用了USB总线和虚拟仪器技术的优点,必将被越来越多的用户所接受。
图2.1 USB系统的分层
2.1.1 USB概述
通用串行总线USB(Universal Serial Bus)是计算机与外围设备之间的一种新式标准接口总线。USB具有以下几方面的优点:
1)易用性。USB支持热插拔和即插即用。这就让用户在使用外接设备时,不需要重复“关机将并口或串口电缆接上再开机”这样的动作,而是直接在电脑工作时,就可以将USB电缆插上使用。
2)可扩展性。USB在个人电脑上往往具有多个接口,可以同时连接几个设备,如果接上一个有四个端口的USB HUB时,就可以再连上;四个USB设备,以此类
第 6 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? 推,尽可以连下去,将你家的设备都同时连在一台个人电脑上而不会有任何问题。
3)快速性。USB规定了两种传输速率:低速传输和全速传输。低速传输的速率是1.5Mbps,全速是12Mbps。这不但远远高于传统的串口传输速率,也比并口传输快了好多倍。
4)可靠性。USB的可靠性来自硬件设计和USB数据传输协议两方面的保证。USB驱动器、接收器和电缆的硬件规范消除了大多数可能引起数据错误的噪声; USB协议使用了差错校验和数据重传机制,可以最大程度保证数据传输的准确性。
5) 内置电源。USB总线内置电源线,可以给外设提供5v和最多500mA的电源供应,满足大部分低功耗外设的电源要求。
6)携带方便。USB设备大多以“小、轻、薄”见长,对用户来说,同样20G的硬盘,USB硬盘比IDE硬盘要轻一半的重量,在想要随身携带大量数据时,当然USB硬盘会是首要之选了。
7)标准统一。大家常见的是IDE接口的硬盘,串口的鼠标键盘,并口的打印机扫描仪,可是有了USB之后,这些应用外设统统可以用同样的标准与个人电脑连接,这时就有了USB硬盘、USB鼠标、USB打印机等等。
2.1.2 USB总线技术简介
USB接口只有4根线如图2.2所示。其中D+和D-是一对差模的信号线而VBus 和GND则提供了5V的电源。
USB设备分成Hub设备和功能设备两种。Hub殴备即集线器,是USB即插即 用
第 7 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? 技术中的核心部分,完成USB设备的添加、插拔检测和电源管理等功能。功能设备能在总线上发送和接收数据和控制信息。
USB硬件部分包括USB主机、USB设备(Hub和功能设备)和连接电缆。USB主机是一个带有USB主控制器的PC机。USB主控制器/根Hub分别完成对传输的初始化和设备的接入。USB Hubs除了根Hub外,为了接入更多的设备,需要其他USB Hubs。连接电缆有两种,用于全速通信的包有防护物的双绞线和用于低速通信的不带防护物的非双绞线。
图2.3 USB总线控制框图
实际的数据传输过程如下:
设备驱动程序通过对USB接口(USB driver interface)的调用发出输入输 出请求(IRP,I/0Reques L Packet);USB驱动程序接到请求后调用HCD接口(host controller driver interface),将IRP转化为USB的传输(transfer),一个IRP可以包含一个或多个USB传输;然后HCD将USB传输分解为总线操作(transaction),由主控制器以包(packet)的形式发出。需要注意的是,所有的数据传输都是由主机开始的,任何外设都无权丌始一个传输。
USB提供了四种传输方式:控制传输、同步传输、中断传输、批传输。它们在数据格式、传输方向、数据包容量限制、总线访问限制等方面有着各自不同的特征。控制传输是双向的,主要用于没备配置,也可作设备的其他特殊用途。批
第 8 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
(Bulk)传输可以是单向或双向。用于传送大批数据。其典型应用是扫描仪的静态图片输入。中断传输是单向的,且仪输入到主机,它用于不固定的少量的数据传送。USB的中断是查询类型的。等时(Isochronous)(同步)传输可以是单向或双向,用于传送连续性、实时的数据。
USB的所有总线操作都可以归结为三种包的传输。任何操作都是从主机开始的,主机以预先排好的时序,发出一个描述操作类型、方向、外设地址以及端点号的包,我们称之为令牌包(Token Packet)。然后在令牌中指定的数据发送者发出一个数据包或者指出它没有数据可以传输。而数据的目的地一般要以一个确认包(Handshake Packet)做出响应以表明传输是否成功。包是组成USB 交换的基本单位,USB总线上的每一次交换至少需要3个包才能完成。
2.2 labview技术
2.2.1 虚拟仪器概述
虚拟仪器(virtual instrumention)是基于计算机的仪器。计算机和仪器的密切结合是目前仪器发展的一个重要方向。粗略地说这种结合有两种方式,一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。另一种方式是将仪器装入计算机。以通用的计算机硬件及操作系统为依托,实现各种仪器功能。虚拟仪器主要是指这种方式。下面的框图反映了常见的虚拟仪器方案。
图 2.4 虚拟仪器的设计方案框图
第 9 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
虚拟仪器的主要特点有:
1、尽可能采用了通用的硬件,各种仪器的差异主要是软件。
2、可充分发挥计算机的能力,有强大的数据处理功能,可以创造出功能更强的仪器。
3、用户可以根据自己的需要定义和制造各种仪器。
虚拟仪器实际上是一个按照仪器需求组织的数据采集系统。虚拟仪器的研究中涉及的基础理论主要有计算机数据采集和数字信号处理。目前在这一领域内,使用较为广泛的计算机语言是美国NI公司的LabVIEW。
虚拟仪器的起源可以追朔到20世纪70年代,那时计算机测控系统在国防、航天等领域已经有了相当的发展。PC机出现以后,仪器级的计算机化成为可能,甚至在Microsoft公司的Windows诞生之前,NI公司已经在Macintosh计算机上推出了LabVIEW2.0以前的版本。对虚拟仪器和LabVIEW长期、系统、有效的研究开发使得该公司成为业界公认的权威。
普通的PC有一些不可避免的弱点。用它构建的虚拟仪器或计算机测试系统性能不可能太高。目前作为计算机化仪器的一个重要发展方向是制定了VXI标准,这是一种插卡式的仪器。每一种仪器是一个插卡,为了保证仪器的性能,又采用了较多的硬件,但这些卡式仪器本身都没有面板,其面板仍然用虚拟的方式在计算机屏幕上出现。这些卡插入标准的VXI机箱,再与计算机相连,就组成了一个测试系统。VXI仪器价格昂贵,目前又推出了一种较为便宜的PXI标准仪器。
虚拟仪器研究的另一个问题是各种标准仪器的互连及与计算机的连接。目前使用较多的是IEEE 488或GPIB协议。未来的仪器也应当是网络化的。
2.2.2 LabVIEW介绍
LabVIEW(Laboratory Virtual instrument Engineering)是一种图形化的编程语言,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。LabVIEW集成了与满足GPIB、VXI、RS-232和RS-485协议的硬件及数据采集卡通讯的全部功能。它还内置了便于应用TCP/IP、ActiveX等软件标准的库函数。这是一个功能强大且灵活的软件。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。
第10 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
图形化的程序语言,又称为“G”语言。使用这种语言编程时,基本上不写程序代码,取而代之的是流程图或流程图。它尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概念,因此,LabVIEW是一个面向最终用户的工具。它可以增强你构建自己的科学和工程系统的能力,提供了实现仪器编程和数据采集系统的便捷途径。使用它进行原理研究、设计、测试并实现仪器系统时,可以大大提高工作效率。
利用LabVIEW,可产生独立运行的可执行文件,它是一个真正的32位编译器。像许多重要的软件一样,LabVIEW提供了Windows、UNIX、Linux、Macintosh的多种版本。
2.2.3 LabVIEW的运行机制
(1)LabVIEW应用程序的构成
所有的LabVIEW应用程序,即虚拟仪器(VI),它包括面板(panel)、流程图(block diagram)以及图标/连结器(icon/connector)三部分。
(2)面板
面板是图形用户界面,也就是VI的虚拟仪器面板,这一界面上有用户输入和显示输出两类对象,具体表现有开关、旋钮、图形以及其他控制(control)和显示对象(indicator)。
图2.5 随机信号发生器前面板
VI
与标准仪器相比较,那么前面板上的东西就是仪器面板上的东西,而流
第11 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? 程图上的东西相当于仪器箱内的东西。在许多情况下,使用VI可以仿真标准仪器,不仅在屏幕上出现一个惟妙惟肖的标准仪器面板,而且其功能也与标准仪器相差无几。VI具有层次化和结构化的特征。
图2.6 随机信号发生器的后面板
2.3 Protel DXP软件介绍
Altium公司作为EDA领域里的一个领先公司,在原来Protel DXP的基础上,应用最先进的软件设计方法,率先推出了一款基于Windows2000和Windows XP操作系统的EDA设计软件Protel DXP。Protel DXP在前版本的基础上增加了许多新的功能。新的可定制设计环境功能包括双显示器支持,可固定、浮动以及弹出面板,强大的过滤和对象定位功能及增强的用户界面等。Protel DXP是第一个将所有设计工具集于一身的板级设计系统,电子设计者从最初的项目模块规划到最终形成生产数据都可以按照自己的设计方式实现。Protel DXP运行在优化的设计浏览器平台上,并且具备当今所有先进的设计特点,能够处理各种复杂的PCB设计过程。通过设计输入仿真、PCB绘制编辑、拓扑自动布线、信号完整性分析和设计输出等技术融合,Protel DXP提供了全面的设计解决方案。
Protel DXP 不仅是单纯的PCB(印制电路板)设计工具,而且是由多个模块组成的系统工具,分别是SCH(原理图)设计、SCH(原理图)仿真、PCB(印
第12 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? 制电路板)设计、Auto Router(自动布线器)和FPGA设计等,覆盖了以PCB为核心的整个物理设计。该软件将项目管理方式、原理图和PCB图的双向同步技术、多通道设计、拓朴自动布线以及电路仿真等技术结合在一起,为电路设计提供了强大的支持。下图为它的操作界面。
PCB的制图的步骤:先把设计好的图纸上的图形在Protel软件上支撑电路原理图,然后根据原理图生成PCB板图,再次对板图的器件进行布局、布线,尽量把板的面积弄到最小、最经济。
图2.7 Protel DXP的操作界面
第13 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? 3 USB数据采集卡硬件设计
3.1 USB数据采集卡功能
一个典型的数据采集卡的功能有模拟输入、模拟输出、数字I/O、计数器/计时器等,这些功能分别由相应的电路来实现。
模拟输入是采集最基本的功能。它一般由多路开关(MUX)、放大器、采样保持电路以及A/D来实现,通过这些部分,一个模拟信号就可以转化为数字信号。A/D的性能和参数直接影响着模拟输入的质量,要根据实际需要的精度来选择合适的A/D。
模拟输出通常是为采集系统提供激励。输出信号受数模转换器(D/A)的建立时间、转换率、分辨率等因素影响。建立时间和转换率决定了输出信号幅值改变的快慢。建立时间短、转换率高的D/A可以提供一个较高频率的信号。如果用D/A的输出信号去驱动一个加热器,就不需要使用速度很快的D/A,因为加热器本身就不能很快地跟踪电压变化。应该根据实际需要选择D/A的参数指标。
数字I/O通常用来控制过程、产生测试信号、与外设通信等。它的重要参数包括:数字口路数(line)、接收 (发送 )率、驱动能力等。如果输出去驱动电机、灯、开关型加热器等用电器,就不必用较高的数据转换率。路数要能同控制对象配合,而且需要的电流要小于采集卡所能提供的驱动电流。但加上合适的数字信号调理设备,仍可以用采集卡输出的低电流的TTL电平信号去监控高电压、大电流的工业设备。数字I/O常见的应用是在计算机和外设如打印机、数据记录仪等之间传送数据。另外一些数字口为了同步通信的需要还有“握手”线。路数、数据转换速率、“握手”能力都是应理解的重要参数,应依据具体的应用场合而选择有合适参数的数字I/O。
计数器包括三个重要信号:门限信号、计数信号、输出。门限信号实际上是触发信号——使计数器工作或不工作;计数信号也即信号源,它提供了计数器操作的时间基准;输出是在输出线上产生脉冲或方波。计数器最重要的参数是分辨率和时钟频率,高分辨率意味着计数器可以计更多的数,时钟频率决定了计数的快慢,频率越高,计数速度就越快。
第14 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
3.2 数据采集原理及系统结构
3.2.1 数据采集基本原理
在计算机广泛应用的今天,数据采集的重要性是十分显著的。它是计算机与外部物理世界连接的桥梁。在进行数据采集时前,要了解相应的基本原理,比如采样频率、抗混叠滤波器和样本数。
假设现在对一个模拟信号x(t) 每隔Δt时间采样一次。时间间隔Δt被称为采样间隔或者采样周期。它的倒数1/Δt 被称为采样频率,单位是采样数/每秒。t=0, Δt ,2Δt ,3Δt ??等等,x(t)的数值就被称为采样值。所有x(0),x(Δt),x(2Δt )都是采样值。这样信号x(t)可以用一组分散的采样值来表示:
{x(0),x(△t),x(2Δt),x(3Δt),?,x(kΔt),?}.
下图显示了一个模拟信号和它采样后的采样值。采样间隔是Δt,注意,采样点在时域上是分散的。
3.2.2 数据采集系统的构成
在数据采集之前,程序将对采集板卡初始化,板卡上和内存中的Buffer是数据采集存储的中间环节。需要注意的两个问题是使用Buffer和使用外触发启动、停止或同步一个操作。下图为数据采集系统的结构。
第15 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
图3.2 数据采集系统结构
(一)数据采集系统包括:缓冲和触发。
这里的缓冲指的是PC内存的一个区域(不是数据采集卡上的FIFO缓冲),它用来临时存放数据。不使用Buffer意味着对所采集的每一个数据你都必须及时处理(图形化、分析等),因为这里没有一个场合可以保持你着手处理的数据之前的若干数据点。
触发涉及初始化、终止或同步采集事件的任何方法。触发器通常是一个数字或模拟信号,其状态可确定动作的发生。当某一模入通道发生一个指定的电压电平时,让卡输出一个数字脉冲,这是内部触发。采集卡等待一个外部仪器发出的数字脉冲到来后初始化采集卡,这是外部触发。许多仪器提供数字输出(常称为“trigger out”)用于触发特定的装置或仪器,在这里,就是数据采集卡。
(二)模入信号类型
根据信号运载信息方式的不同,可以将信号分为模拟或数字信号。数字(二进制)信号分为开关信号和脉冲信号。模拟信号可分为直流、时域、频域信号。
(1)数字信号。第一类数字信号是开—关信号。一个开—关信号运载的信息与信号的瞬间状态有关。TTL信号就是一个开-关信号,一个TTL信号如果在2.0到5.0V之间,就定义它为逻辑高电平,如果在0到0.8V之间,就定义为逻辑低电平。第二类数字信号是脉冲信号。这种信号包括一系列的状态转换,信息就包含在状态转化发生的数目、转换速率、一个转换间隔或多个转换间隔的时间
第16 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? 里。安装在马达轴上的光学编码器的输出就是脉冲信号。有些装置需要数字输入,比如一个步进式马达就需要一系列的数字脉冲作为输入来控制位置和速度。
(2)模拟信号。模拟直流信号,模拟直流信号是静止的或变化非常缓慢的模拟信号。采集系统在采集模拟直流信号时,需要有足够的精度以正确测量信号电平,由于直流信号变化缓慢,用软件计时就够了,不需要使用硬件计时。
模拟时域信号,模拟时域信号与其他信号不同在于,它在运载信息时不仅有信号的电平,还有电平随时间的变化。为了测量一个时域信号,必须有一个精确的时间序列,序列的时间间隔也应该合适,以保证信号的有用部分被采集到。要以一定的速率进行测量,这个测量速率要能跟上波形的变化。
模拟频域信号,模拟频域信号与时域信号类似,然而,从频域信号中提取的信息是基于信号的频域内容,而不是波形的形状,也不是随时间变化的特性。用于测量一个频域信号的系统必须有一个A/D、一个简单时钟和一个用于精确捕捉波形的触发器。系统必须有必要的分析功能,用于从信号中提取频域信息。
(三)采样方式
多数通用采集卡都有多个模入通道,但是并非每个通道配置一个A/D,而是大家共用一套A/D,在A/D之前的有一个多路开关(MUX),以及放大器(AMP)、采样保持器(S/H)等。通过这个开关的扫描切换,实现多通道的采样。多通道的采样方式有三种:循环采样、同步采样和间隔采样。
循环采样是指采集卡使用多路开关以某一时钟频率将多个通道分别接入A/D循环进行采样。此时,所有的通道共用一个A/D和S/H等设备。循环采样的缺点在于不能对多通道同步采样,通道的扫描速率是由多路开关切换的速率平均分配给每个通道的。因为多路开关要在通道间进行切换,对两个连续通道的采样,采样信号波形会随着时间变化,产生通道间的时间延迟。
同步采样是指数据采集卡每个通道使用独立的放大器和S/H电路,经过一个多路开关分别将不同的通道接入A/D进行转换。
间隔采样是指用通道时钟控制通道间的时间间隔,而用另一个扫描时钟控制两次扫描过程之间的间隔。通道间的间隔由实际上由采集卡的最高采样速率决定,可能是微秒、甚至纳秒级的,效果接近于同步扫描。间隔扫描适合缓慢变化的信号,比如温度和压力。
第17 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
图3.3 间隔采样与循环采样比较
(四)模入信号的连接方式
一个电压信号可以分为接地和浮动两种类型。测量系统可以分为差分(Differential)、参考地单端(RSE)、无参考地单端(NRSE)三种类型。
(1)接地信号和浮动信号
接地信号,就是将信号的一端与系统地连接起来,如大地或建筑物的地。因为信号用的是系统地,所以与数据采集卡是共地的。接地最常见的例子是通过墙上的接地引出线,如信号发生器和电源。
浮动信号,是一个不与任何地(如大地或建筑物的地)连接的电压信号称为浮动信号,浮动信号的每个端口都与系统地独立。一些常见的浮动信号的例子有电池、热电偶、变压器和隔离放大器。
(2)测量系统分类
差分测量系统,差分系统中信号输入端分别与一个模入通道相连接。具有放大器的数据采集卡可配置成差分测量系统。一个理想的差分测量系统仅能测出(+)和(-)输入端口之间的电位差,完全不会测量到共模电压。然而,实际应用的板卡却限制了差分测量系统抵抗共模电压的能力,数据采集卡的共模电压的范围限制了相对与测量系统地的输入电压的波动范围。共模电压的范围关系到一个数据采集卡的性能,可以用不同的方式来消除共模电压的影响。如果系统共模电压超过允许范围,需要限制信号地与数据采集卡的地之间的浮地电压,以避免测量数据错误。
第18 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
参考地单端测量系统(RSE),一个RSE测量系统,也叫做接地测量系统,被测信号一端接模拟输入通道,另一端接系统地AIGND。无参考地单端测量系统(NRSE),在NRSE测量系统中,信号的一端接模拟输入通道,另一端接一个公用参考端,但这个参考端电压相对于测量系统的地来说是不断变化的。
(五)选择合适的测量系统
(1)测量接地信号,测量接地信号最好采用差分或NRSE测量系统。如果采用RSE测量系统时,将会给测量结果带来较大的误差。一个接地回路通常会在测量数据中引入频率为电源频率的交流和偏置直流干扰。一种避免接地回路形成的办法就是在测量信号前使用隔离方法,测量隔离之后的信号。
(2)测量浮动信号,可以用差分、RSE、NRSE方式测量浮动信号。在差分测量系统中,应该保证相对于测量地的信号的共模电压在测量系统设备允许的范围之内。如果采用差分或NRSE测量系统,放大器输入偏置电流会导致浮动信号电压偏离数据采集卡的有效范围。
(六)信号调理
从传感器得到的信号大多要经过调理才能进入数据采集设备,信号调理功能包括放大、隔离、滤波、激励、线性化等。由于不同传感器有不同的特性,因此,除了这些通用功能,还要根据具体传感器的特性和要求来设计特殊的信号调理功能。下面仅介绍信号调理的通用功能。
放大:微弱信号都要进行放大以提高分辨率和降低噪声,使调理后信号的电压范围和A/D的电压范围相匹配。信号调理模块应尽可能靠近信号源或传感器,使得信号在受到传输信号的环境噪声影响之前已被放大,使信噪比得到改善。
隔离:隔离是指使用变压器、光或电容耦合等方法在被测系统和测试系统之间传递信号,避免直接的电连接。使用隔离的原因由两个:一是从安全的角度考虑;另一个原因是隔离可使从数据采集卡读出来的数据不受地电位和输入模式的影响。如果数据采集卡的地与信号地之间有电位差,而又不进行隔离,那么就有可能形成接地回路,引起误差。
滤波:滤波的目的是从所测量的信号中除去不需要的成分。大多数信号调理模块有低通滤波器,用来滤除噪声。通常还需要抗混叠滤波器,滤除信号中感兴趣的最高频率以上的所有频率的信号。某些高性能的数据采集卡自身带有抗混叠
第19 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? 滤波器。
激励:信号调理也能够为某些传感器提供所需的激励信号,比如应变传感器、热敏电阻等需要外界电源或电流激励信号。很多信号调理模块都提供电流源和电压源以便给传感器提供激励。
线性化:许多传感器对被测量的响应是非线性的,因而需要对其输出信号进行线性化,以补偿传感器带来的误差。但目前的趋势是,数据采集系统可以利用软件来解决这一问题。
数字信号调理:即使传感器直接输出数字信号,有时也有进行调理的必要。其作用是将传感器输出的数字信号进行必要的整形或电平调整。大多数数字信号调理模块还提供其他一些电路模块,使得用户可以通过数据采集卡的数字I/O直接控制电磁阀、电灯、电动机等外部设备。
(七)LabVIEW 数据采集模块的分类
LabVIEW 中对于数据采集模块按照难易程度做了分类,下图是以模入为例表明了工具栏中各种类型的模入模块。
图3.4 模入的各种模块 简易模入VIs (Ease Analog VIs)该行的四个模块执行简单的模入操作。它们可以作为单独的VI,也可以作为subVI来使用。这些模块可以自动发出错误警告信息,在对话框中你可以选择中断运行或忽略。但是比较复杂的应用需要使用下面的类型。
中级模入VIs (Intermediate Analog Input VIs)中级模入在两个地方可以找到,一个如图6-15的位置,另一个是包含在下面讨论的通用模入VIs
中。与
第20 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? 简易模入不同的是在那里的一个操作AI Input ,这里细分为AI Config, AI Start, AI Read, AI Single Scan以及AI Clear。它可以描述更加细致、复杂的操作。
通用模入VIs ( Analog Input Utility VIs)这里提供了三个常用的Vis,AI Read One Scan,AI Waveform Scan,及AI Continuous Scan。使用一个VI就可以解决一个普通的模入问题,方便但缺乏灵活性。这三个Vis是由中级模入构成的。
高级模入VIs ( Advanced Analog Input VIs)这些Vis是NI-DAQ数据采集软件的界面,是上面三种类型Vis的基础。一般情况下,用户不需要直接使用这个功能。
分辨率(Resolution)分辨率就是用来进行模数转换的位数,A/D的位数越多,分辨率就越高,可区分的最小电压就越小。分辨率要足够高,数字化信号才能有足够的电压分辨能力,才能比较好的恢复原始信号。目前分辨率为8的采集卡属于较低的,12位属中档,16位的卡就比较高了。他们可以分别将模入电压量化为256、4096、65536份。
电压范围(Range)电压范围由A/D能数字化的模拟信号的最高和最低的电压决定。一般情况下,采集卡的电压范围是可调的,所以可选择和信号电压变化范围相匹配的电压范围以充分利用分辨率范围,得到更高的精度。比如,对于一个3位的A/D,在选择0-10V范围时,它将10V八等分;如果选择范围为-10V到+10V,同一个A/D就得将20V分为8等分,能分辨的最小电压就从1.25V上升到2.50V,这样信号复原的效果就更差了。
增益(Gain)增益主要用于在信号数字化之前对衰减的信号进行放大。使用增益,可以等效地降低A/D的输入范围,使它能尽量将信号分为更多的等份,基本达到满量程,这样可以更好地复原信号。因为对同样的电压输入范围,大信号的量化误差小,而小信号时量化误差大。当输入信号不接近满量程时,量化误差会相对加大。如:输入只为满量程的1/10时,量化误差相应扩大10倍。一般使用时,要通过选择合适的增益,使得输入信号动态范围与A/D的电压范围相适应。当信号的最大电压加上增益后超过了板卡的最大电压,超出部分将被截断而读出错误的数据。
对于NI公司的采集卡选择增益是在LabVIEW中通过设置信号输入限制来实
第21 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? 现的,LabVIEW会根据选择的输入限制和输入电压范围的大小来自动选择增益的大小。选择合适的增益和输入范围要与实际被测信号匹配。如果输入信号的改变量比采集卡的精度低,就可以将信号放大,提高增益。选择一个大的输入范围或降低增益可以测量大范围的信号,但这是以精度的降低为代价的。选择一个小的输入范围或提高增益可以提高精度,但这可能会使信号超出A/D允许的电压范围。
采集VI的几点说明:
device——设备号。在NI 采集设置工具中设定。该参数告诉LabVIEW你使用什么卡,它可以使采集 VI自身独立于卡的类型,也就是说,如果你稍后使用了另一种卡,并且赋予它同样的设备号,你的VI程序可正常工作而无须修改。
channels——指定数据样本的物理源。例如,一个卡有16个模拟输入通道,你就可以同时采集16组数据点。在LabVIEW VI中,一个通道或一组通道都用一个字符串来指定。
scan rate(1000 scans/sec)——是在多通道采样时,分配给一个通道得到的样本速率,缺省值是1000/秒。
number of samples/ch——每通道要采集的样本数,缺省值是1000。
high limit——被测信号的最高电平,其缺省值是0。设为缺省值时系统将按照采集卡设置程序MAX中的设定处理。
low limit——被测信号的最低电平,其缺省值是0。设为缺省值时系统将按照采集卡设置程序MAX中的设定处理。
waveforms——A/D转换后的输出,是一个二维的waveform数组,其每一列对应于一个输入通道,同时包含有反映时间信息的t0和Δt。
第22 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
3.3 采集系统硬件模块
硬件的设计首先要了解采集系统硬件的模型,所以下图就是采集系统硬件设计的模型。
3.3.1 模块介绍
(1)数据采集模块。数据采集模块是将外部数据传送到计算机中,按照被采集的形式可以分为数字量采集和模拟量采集。由于微处理器可以直接对数字信号进行读写,因此数字量采集比较简单,而模拟量采集则需要首先将模拟信号转换成数字信号,然后再进行采集。一个完整的模拟量数据采集系统大致应该包括:信号调理电路、采样/保持放大器、模拟/数字(A/D)转换器和采集电路等。模拟输入是采集最基本的功能。它一般由多路开关(MUX)、放大器、采样保持电路以及A/D来实现,通过这些部分,一个模拟信号就可以转化为数字信号。A/D的性能和参数直接影响着模拟输入的质量,要根据实际需要的精度来选择合适的
A/DD/A)的建
信等。它的重要参数包括:数字口路数(line)、接收 (发送 )率、驱动能力等。如果输出去驱动电机、灯、开关型加热器等用电器,就不必用较高的数据转换率。路数要能同控制对象配合,而且需要的电流要小于采集卡所能提供的驱动电流。但加上合适的数字信号调理设备,仍可以用采集卡输出的低电流的TTL电平信号去监控高电压、大电流的工业设备。
第23 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
(2)USB接口模块。设备驱动程序通过对USB接口(USB driver interface)的调用发出输入输 出请求(IRP,I/0Reques L Packet);USB驱动程序接到请求后调用HCD接口(host controller driver interface),将IRP转化为USB的传输(transfer),一个IRP可以包含一个或多个USB传输;然后HCD将USB传输分解为总线操作(transaction),由主控制器以包(packet)的形式发出。需要注意的是,所有的数据传输都是由主机开始的,任何外设都无权丌始一个传输。
USB提供了四种传输方式:控制传输、同步传输、中断传输、批传输。它们在数据格式、传输方向、数据包容量限制、总线访问限制等方面有着各自不同的特征。控制传输是双向的,主要用于没备配置,也可作设备的其他特殊用途。批(Bulk)传输可以是单向或双向。用于传送大批数据。其典型应用是扫描仪的静态图片输入。中断传输是单向的,且仪输入到主机,它用于不固定的少量的数据传送。USB的中断是查询类型的。等时(Isochronous)(同步)传输可以是单向或双向,用于传送连续性、实时的数据。
(3)LabVIEW软件模块。虚拟仪器集成环境(Laboratory Virtual Instrument Engineering Workbench)的简称,是美国国家仪器公司(NATIONAL INSTRUMENTS,简称NI)的创新软件产品,也是目前应用最广、发展最快、功能最强的图形化软件集成开发环境。利用这个软件的仿真模块对系统进行模拟仿真,通过虚拟数据在系统里得到相应的结果,从而达到数据采集的目的。
3.3.2 系统固件程序
一个完整的集USB通信的数据采集系统的软件部分包含固件程序,USB驱动程序及应用层程序。此系统软件部分的固件程序实际上就是单片机方面的软件设计 。固件调试可以在LabVIEW环境下开发, 用户只需要提供一个USB描述符表,USB设备的描述符是对USB设备属性的说明。USB描述符通过Get Descriptor来读取。本设计采用模块化程序设计方式,把整个设计分成几个模块来编写,再由主程序进行连接,从而使整个程序的运行有序地进行。
3.3.3 USB通信系统设计
一个完整的USB 通信系统包括数据采集单元、微处理器、接口芯片和相应
第24 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? 的驱动、应用程序等。图3.6为USB 通信系统的总框图。
USB通信硬件设计在终端用户看来,USB系统就是外设通过一根USB 电缆和PC机连接起来,USB在外设和PC机之间提供通信服务,所以需要这样一个USB接口芯片作为通信的桥梁依照标准的协议进行处理,达到通信成功的目的。它主要有以下几个特点:
(1) 低速和全速USB主机接口,兼容USB外围元器件,只需要晶体和电容。
(2) 低速和全速USB设备接口,完全兼容芯片支持动态切换主机与设备方式。
(3) 主机端点输入和输出缓冲区各64字节,支持12Mbps全速USB设备和
1.5Mbps低速设备。
(4) 支持USB设备的控制传输、批量传输、中断传输。
(5) 自动检测USB设备的连接和断开,提供设备连接和断开的事件通知。
3.3.4 USB数据传输简介
当外部的USB设备连接到USB主机之后,USB设备便可以和主机进行数据通信。在通信过程中,自上而下需要涉及4个部分,分别为:主机软件、USB总线驱动程序、USB主控制器驱动序和USB功能设备。
在USB协议中,USB的数据传输由信息包组成。这些信息包组合起来可以构成完整的事务处理。USB事务处理是USB主机和USB功能设备之间数据传输的基本单位。USB的信息包和事务处理具有特定的格式。
第25 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
图3.7 USB 数据传输
3.4 技术指标及电路原理图设计
3.4.1 技术要求及电路原理图
1)采样标准
●A/D转换器垂直分辨率为12位
●系统采样频率在5~IMHz范围并分段可调
●触发方式分为:软件触发,信号触发,外触发
●放大倍数1、2、4、lO、20、40、100、200、400、1000
●系统精度0.3%
●存储长度为:1M采样点/通道。
●驱动程序:USB Plug@Play for Windows 9X/NT/2000。
●标准控制软件
2)接口
●8路信号输入:BNC单端
●电源开关、切换(交直流供电切换)
●仪器正常指示灯
●交流电接口
●直流电接口
●外触发输入:BNC单端
●USB接口
●数字量I/0接口
3)供电方式
●交流220V,50Hz
●直流24V
第26
页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
图3.8 系统电路原理图
第27 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
3.4.2 PCB板设计
(一)PCB基本布线流程
(1)得到正确的原理图和网络表
(2)画出自己定义的非标准器件封装库
(3)画上禁止布线层,含中间镂空等
(4)打开所有要用到的PCB库文件后调入网络表
(5)原件手工布局
(6)根据情况作适当调整,然后将全部器件锁定
(7)制定详细的布线规则
(8)手工布线
(9)切换到单层显示模式下将每个布线层的线拉整齐和美观
(10)通过DRC检验,将丝印层字符放到合适位置
(11)最后在做一次DRC,全部正确后存盘
(12)导出原理图
(13)导出PCB图
(14)整理和打印各种文档
(二)PCB布线中的难点
元件手工布局这是整个画线路板过程中最耗时和最难的地方,应当从机械结构、散热、电磁干扰、将来布线的方便性等方面综合考虑。先布置与机械尺寸有关的器件并锁定这些器件,然后是大的占位置的器件和电路的核心元件(按功能分块),再是外围的小元件。
机械结构方面的要求:外部接插件、显示器件等的安放位簧应整齐,特别是板上各种不同的接插件需从机箱后部直接伸出时,更应从三维角度考虑器件的安放位罱。板内部接插件放置上应考虑总装时机箱内线束的美观。需浸焊板子的较重元器件应尽量分散放置以防止浸焊时板子变形。
散热方面的要求:板上有发热较多的器件时应考虑加散热器甚至轴流风机(风机向内吹时散热效果好但板子很会脏,所以一般还是向外排风较为多见),并与周围电解电容、晶振、锗管等怕热元件隔开一定的距离,竖放的板子应把发热
第28 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? 元件放置在板的最上面,双面放器件时底层不得放发热元件。
电磁干扰方面的要求:随着电路设计的频率越来越高,EMl对线路板的影响越来越显得突出。在画原理图时就可以先加上功能电路块电源滤波用磁环、旁路电容等器件,每个集成电路的电源脚就近都应有一个旁路电容连到地,100个脚以上的IC甚至用好几个,电路的工作频率在10MHz以下时一般使用1040.1F的电容,lOMltz以上一般用103的电容。器件应尽量按功能分块放置, 一块放好后可用Too]s—Convert~Create Union From Se]ected Components建立联合。在不太可能对多个功能块之间保证足够的电磁隔离度情况下,必须考虑用金属屏蔽罩将能量屏蔽在一定的区域内。
其它方面的要求:对于同一个器件用多种封装形式的,可以把这个器件的封装改为第二种封装形式并放好后对这个器件用撤消元件组功能,然后再调入一次网络表并放好新调入的这个器件,有更多种封装形式时依此类推。
第29 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? 4 USB数据采集卡软件设计
采集模块软件设计包括三部分,一是单片机程序(又称固件),二是设备驱动程序,三是应用程序。单片机程序是下载到控制器中的固件代码,它响应各种来自系统的USB标准请求,完成连接设备和主机的任务。设备驱动程序是用以完成系统与它了解使硬件工作的所有细节,负责初始化I/O操作并处理i/o 操作完成时所带来的中断事件,为用户提供一种设备适合的控制方式。主机应用软件通过客户驱动程序与系统USBI(USB Device Interface)进行通信,其主要任务是将采集进来的数据流,根据所需处理功能的要求来完成各种基于 Windows程序的处理。具体程序见附录。
图4.1 软件设计框图
第30 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
4.1 固件程序
4.1.1 固件程序介绍
固件程序是指运行在设备CPU中的固化程序,它采用模块化程序设计,主要模块包括:数据采集模块、数据处理、监控模块和数据通信模块。模块化设计的优点是可靠性高、可读性好、升级简单。固件程序负责初始化各硬件单元,重新配置设备及A/D采样控制等。固件代码的存储方式是固件代码固化到一片 EEPROM中,外设加电后由FX2通过12c总线下载到片内RAM后自动执行。
流程图
流程图提供VI的图形化源程序。在流程图中对VI编程,以控制和操纵定义在前面板上的输入和输出功能。流程图中包括前面板上的控件的连线端子,还有一些前面板上没有,但编程必须有的东西,例如函数、结构和连线等。
图4.2 基于LABVIEW软件的USB设计流程图
第31 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
0 1 1 0 1 0 1 0 0 0 1 0 0 1 1 0
图4.3 数据编码图
4.1.2 固件程序代码框图
图4.4 固件程序代码框图
第32 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
4.2 设备请求处理
设备请求处理子函数用来处理各种USB标准请求和自定义请求。标准请求处理了USB通用设备的请求,每个USB设备必须支持。自定义请求则完成了用户自定义的任务。下面是程序框图。
图4.5 设备请求处理框图
第33 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
4.3 A/D转换控制子函数
A/D转换控制子函数主要用于完成单次A/D转换,并将转换后的数据通过USB接口返回给主机。程序中,首先给MAX197写入命令字节,然后查询MAX197的中断输出,判断是否完成转换。如果完成A/D转换,则读取转换后的结果,并通过EP0BUF来传递给主机。
4.4 USB描述符
USB固件程序除了完成上述的功能外,还需要制定该USB的描述符。要完成系统所使用的各种USB描述符,有设备描述符、端点描述符、字符串描述符、配置描述符。下面是程序框图。
图4.6 USB描述符框图
第34 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
4.5 上位机程序设计
上位机的程序我是采用Visual C++进行USB主程序的设计,并用Labview软件仿真的。下面是程序框图。
图4.7 上位机程序设计框图
第35 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? 5 仿真
虚拟一组数据进行仿真,系统基本实现了数据采集的功能。下面给出部分采集波形和仿真结果。信号源为标准函数信号发生器,输出波形为标准正弦波。数字I/O通常用来控制过程、产生测试信号、与外设通信等。它的重要参数包括:数字口路数(line)、接收 (发送 )率、驱动能力等。路数要能同控制对象配合,而且需要的电流要小于采集卡所能提供的驱动电流。但加上合适的数字信号调理设备,仍可以用采集卡输出的低电流的TTL电平信号去监控高电压、大电流的工业设备。数字I/O常见的应用是在计算机和外设如打印机、数据记录仪等之间传送数据。另外一些数字口为了同步通信的需要还有“握手”线。路数、数据转换速率、“握手”能力都是应理解的重要参数,应依据具体的应用场合而选择有合适参数的数字I/O。USB通过Labview软件进行数据仿真测量和的如图5.1所示。
图5.1 后面板的仿真模型
通过设计的仿真模块,输入数据1.23以及字符串abc最后都能得到相应的结果。如图5.2所示。
第36 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
图5.2 数据采集测量
第37 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
结 论
根据既定的数据采集系统设计的基本要求,我按照步骤一步一步设计了数据采集模块卡。该数据采集模块是运用USB技术,我在了解USB以及USB总线的基础知识之后,查阅相关资料,运用自己所学的知识,在老师的指导下,对USB数据采集卡进行了设计。本文涉及到PCB板的设计、Labview等仿真软件的操作,使我对Protel DXP和Labview软件有了一定的了解,熟悉了它们的基本功能和操作。这样有利用以后的学习。
综上所述,本文设计的基于USB的数据采集卡在对虚拟数据通过Labview仿真软件下进行仿真,仿真结果对数据的采集基本达到预期的要求。
第38 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
致 谢
本文是在指导老师XXX博士的悉心指导下完成的。老师严谨求实的治学态度、诲人不倦的敬业精神、正直坦荡的为人风范使我受益非浅。谨此向老师致以崇高的敬意和衷心的感谢!
在此,我要感谢XXX老师,XX老师,XXX老师,XXX老师,XXX老师,XXX老师以及所有关心、支持和帮助我的院领导、老师和同学!感谢你们给我的学习和生活上带来的帮助和宝贵的经验!
在课题选题和研究过程中,还得到了学院各位领导的重视和支持、同学以及学校各位教授的热情指导和帮助。几位老师渊博的学识和广阔的胸怀令我终身难忘,特此表示诚挚的感谢和深深的敬意!
第39 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
参 考 文 献
(1)张迎新等著。单片微型计算机原理应用及接口技术。国防工业出版社。2004年(第二版)。
(2)王换招等著。PC系列微机总线。西按交通大学出版社。1995年(第一版)
(3)李贵山、戚德虎著。PCI局部总线开发指南.西安电子科技大学出版社。1997年(第一版)
(4)DonAderson著。FireWire系统体系(第二版)。姜汉龙等译。中国电力出版社
(5)张迎新等著。单片机初级教程。北京航空航天大学出版社,2000年。
(6)张念淮等著。USB总线接口开发指南。国防工业出版社,2001年(第1版)
(7)DonAderson著。USB系统体系。姜汉龙等译。中国电力出版社。2001年
(8)萧世文等著。USB1.1 硬件设计。北京:清华大学出版社,2002年
(9)李朝青等著。PC机及单片机原理数据通信技术。北京般空般天大学出版社
(10)李勋等著。单片机实用教程。北京航空航天大学出版社,2000年
(11)何立民著。单片机高级教程。北京航空航天大学出版社,2000年
(12)徐济仁等著。USB通用串行总线的原理及其应用。电视工程。2003年2月
(13)徐利军、黄云志等。定点DSP的原理开发与应用。清华大学出版社2002年
(14)张雄伟、曹铁勇等著。DSP芯片的原理与开发应用(第2版)。北京电子工业出版社,2000年
(15)周涛、张辉 采用PDIUSBD12的USB系统固件程序设计 电子技术应用 02.11
(16)桑波、赵宏 基于USB的LDT实时数据采集系统的设计 工业仪表与自动化 2003.3
(17)郭继燕、王遵立 USB现状及其未来计算机技术与应用 2003.1
第40 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
附 录
固件程序代码
(1)USB固件主函数代码
void main(void)
{
DWORD i;
WORD offset;
DWORD DevDescrLen;
DWORD j=0;
WORD IntDescrAddr;
WORD ExtDescrAddr;
// 初始化
Sleep = FALSE; //
Rwuen = FALSE; //
Selfpwr = FALSE; //
GotSUD = FALSE;
// 初始化用户设备
TD_Init();
//定向USB描述符
USB_Descriptor();
USB_Interrupt();
USB_ReConnect();
//任务县城线程
while(TRUE) //禁止休眠模式 禁止远程唤醒 禁止自供电 //中断 主循环
第41 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
{
//列举用户设备
TD_Poll();
if(GotSUD)
{
SetupCommand();
GotSUD = FALSE; // 清SETUP标记
}
//检查并处理
if (Sleep)
{
if(TD_Suspend())
{
Sleep = FALSE; //清Sleep标记
do
{
EZUSB_Susp(); //空闲状态处理
}
while(!Rwuen && EZUSB_EXTWAKEUP());
EZUSB_Resume();
TD_Resume();
}
}
}
}
(2)初始化
void TD_Init(void) // 初始化程序段
{
第42 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
CKCON = (CKCON&(~bmSTRETCH)) | FW_STRETCH_VALUE;
//清Sleep标记
Sleep = FALSE;
}
设备请求处理
void SetupCommand(void)
{
void *dscr_ptr;
switch(SETUPDAT[1])
{
case SC_GET_DESCRIPTOR: //获得描述符
if(DR_GetDescriptor())
switch(SETUPDAT[3])
{
case GD_DEVICE: //设备
SUDPTRH = MSB(pDeviceDscr);
SUDPTRL = LSB(pDeviceDscr);
break;
case GD_DEVICE_QUALIFIER: //设备限定
if (HighSpeedCapable()) { SUDPTRH = MSB(pDeviceQualDscr); SUDPTRL = LSB(pDeviceQualDscr); } else { EZUSB_STALL_EP0();
第43 页 }
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
break;
case GD_CONFIGURATION: // 配置
SUDPTRH = MSB(pConfigDscr);
SUDPTRL = LSB(pConfigDscr);
break;
case GD_OTHER_SPEED_CONFIGURATION: // 其它速率配置 SUDPTRH = MSB(pOtherConfigDscr);
SUDPTRL = LSB(pOtherConfigDscr);
break;
case GD_STRING: // 字符串
if(dscr_ptr=(void*)EZUSB_GetStringDscr(SETUPDAT[2]))
{
SUDPTRH = MSB(dscr_ptr);
SUDPTRL = LSB(dscr_ptr);
}
else
EZUSB_STALL_EP0(); // 中止端点0
break;
default: // 无效请求
EZUSB_STALL_EP0(); // 中止端点0
}
break;
case SC_GET_INTERFACE: // 获得接口
DR_GetInterface();
break;
case SC_SET_INTERFACE: // 设置接口
DR_SetInterface();
break;
case SC_SET_CONFIGURATION: //设置配置
第44 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
DR_SetConfiguration();
{
*(BYTE xdata *) epcs(SETUPDAT[4]) &= ~bmEPSTALL; EZUSB_RESET_DATA_TOGGLE( SETUPDAT[4] );
}
else
EZUSB_STALL_EP0();
break;
}
break;
case SC_SET_FEATURE: // 设置特性
if(DR_SetFeature())
switch(SETUPDAT[0])
{
case FT_DEVICE:
if(SETUPDAT[2] == 1)
A/D转换控制子函数
BOOL DR_SingleAD(void) //单次A/D转换
{
OEB=0xFF; WR=0; IOB=0x40; WR=1; OEB=0x00; //PB 定义为输入端口 //查询MAX197的中断输出,判断是否完成转换 //写入命令字节 //PB 定义为输出端口 while (ADINT!=0) { } CHDataL = IOB; HBEN = 0; //首先置HBEN=0,即先读低位 //读取A/D转换结果的低位
第45 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
HBEN = 1; //设置HBEN=1,再读高位 //读取A/D转换结果的高位 CHDataH = IOB;
HBEN = 0; //重置HBEN=0
EP0BUF[0]=0xA1;
EP0BUF[1]=CHDataL;
EP0BUF[2]=CHDataH;
EP0BCH=0;
EP0BCL=3;
EP0CS |= bmHSNAK;
return(TRUE);
}
USB描述符
DSCR_DEVICE equ 1 ;描述符类型:设备描述符
DSCR_CONFIG equ 2 ;描述符类型:配置描述符
DSCR_STRING equ 3 ;描述符类型:字符串
DSCR_INTRFC equ 4 ;描述符类型:接口
DSCR_ENDPNT equ 5 ;描述符类型:端点
DSCR_DEVQUAL equ 6 ;描述符类型:设备限定
DSCR_DEVICE_LEN equ 18
DSCR_CONFIG_LEN equ 9
DSCR_INTRFC_LEN equ 9
DSCR_ENDPNT_LEN equ 7
DSCR_DEVQUAL_LEN equ 10
ET_CONTROL equ 0 ;端点类型:控制
ET_ISO equ 1 ;端点类型:同步
ET_BULK equ 2 ;端点类型:块
0018 00 53 db 00H ;
0019 40 54 db 64 ;
001A 01 55 db 1 ;
001B 00 56 db 0 ;
第46 页 设备协议子类 最大示莅? 配置 保留
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? 001C 58 HighSpeedConfigDscr:
001C 09 59 db DSCR_CONFIG_LEN ;描述符长度 001D 02 60 db DSCR_CONFIG ;描述符类型 001E 2E 61 db (HighSpeedConfigDscrEnd-HighSpeedConfigDscr) mod 256 ;长度(LSB)
001F 00 62 db (HighSpeedConfigDscrEnd-HighSpeedConfigDscr) / 256 ;长度(MSB)
0020 01 63 db 1 ;接口
0021 01 64 db 1 ;配置
0022 00 65 db 0 ;配置字符串
0023 80 66 db 10000000b ;特性
0024 64 67 db 100 ;功率需求
68
69 ;接口描述符
0025 09 70 db DSCR_INTRFC_LEN ;描述符
004D 00 123 db (FullSpeedConfigDscrEnd-FullSpeedConfigDscr) / 256 ;长度(MSB)
004E 01 124 db 1 ;接口?
004F 01 125 db 1 ;配置?
0050 00 126 db 0 ;配置字符串
0051 80 127 db 10000000b ;特性(b7 - buspwr, 0082 7000 193 db 'p',00
0084 7200 194 db 'r',00
0086 6500 195 db 'e',00
0088 7300 196 db 's',00
008A 7300 197 db 's',00
008C 198 StringDscr1End:
199
008C 200 StringDscr2:
008C 0E 201 db StringDscr2End-StringDscr2 ;字符串描述符长度
第47 页
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? 008D 03 202 db DSCR_STRING
008E 4500 203 db 'E',00
0090 5A00 204 db 'Z',00
0092 2D00 205 db '-',00
0094 5500 206 db 'U',00
0096 5300 207 db 'S',00
0098 4200 208 db 'B',00
009A 209 StringDscr2End:
210
009A 211 UserDscr:
009A 0000 212 dw 0000H
213 end
上位机程序设计
BOOL CUSBADDlg::OnInitDialog()
{
}
// If you add a minimize button to your dialog, you will need the code below
// to draw the icon. For MFC applications using the document/view model,
// this is automatically done for you by the framework.
void CUSBADDlg::OnPaint()
第48 页 CDialog::OnInitDialog(); // Add "About..." menu item to system menu. // IDM_ABOUTBOX must be in the system command range. } else { } CDialog::OnSysCommand(nID, lParam);
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? {
}
// The system calls this to obtain the cursor to display while the user drags
// the minimized window.
HCURSOR CUSBADDlg::OnQueryDragIcon()
{
}
void CUSBADDlg::OnUSBTest()
{
// TODO: Add your control notification handler code here
第49 页 if (IsIconic()) { } else { } CDialog::OnPaint(); CPaintDC dc(this); // device context for painting SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); // Center icon in client rectangle int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; // Draw the icon dc.DrawIcon(x, y, m_hIcon); return (HCURSOR) m_hIcon;
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
} if(USBDevice->IsOpen()) SetDlgItemText(IDC_STATIC,"USB设备已经连接!"); else SetDlgItemText(IDC_STATIC,"未连接USB设备!"); int vID,pID; SetDlgItemText(IDC_EDIT4,str);
void CUSBADDlg::OnLoopAD()
{
}
void CUSBADDlg::OnOK()
{
}
第50 页 // TODO: Add your control notification handler code here if(LoopThread) { } else { } Looping=true; LoopThread=AfxBeginThread(LoopFunction,this); Looping=false; LoopThread=NULL; // TODO: Add extra validation here USBDevice->Close(); CDialog::OnOK();
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
附 图
第51 页
三 : 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计
毕 业 论 文
学生姓名: X X 学 号: XXXXXX 学 院: XXXXXXXXXXXXX学院 专业年级: XXXXXXXXXX 题 目: 基于USB数据采集卡软硬件设计 指导教师: XXXXX 工程师 评阅教师: XXXX 讲师
2010 年 5月
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
摘 要
随着数据采集在现代军事及科学研究中的重要地位日益突出,人们对数据采集设备要求也不断提高。[www.61k.com]在信号测量、图像处理、音频信号处理等一些高速、高精度的测量中,都需要进行高性能数据采集。现在通用的高速数据采集卡一般多是PCI卡或ISA卡,这些采集卡存在不少缺点,如安装烦琐,价格昂贵,尤其是受计算机插槽数量、地址、中断资源的限制,可扩展性差。
通用串行总线(Universal Serial Bus简称USB)克服了上述问题。它是1994年底由Compaq、IBM、Microsoft等多家公司联合提出的计算机与外围设备之间的一种新式标准接口总线。USB总线具有快速、可靠、可扩展、即插即用等特点。USB协议中,数据的传输速率很高,这就使通过 USB实现快速传递大容量数据的外设成为现实。
本文基于USB设计了一数据采集系统,并在Labview软件中实现数据仿真,模拟实现利用USB技术进行数据采集的功能。
【关键词】 USB 固件 设备驱动 数据采集 实时时钟
第 1 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? Title
Abstract
Data acquisition plays a more and more important role in modem industry and scientific research, According to it, the requirements of data acquisition device get highly improved.High-performancedata acquisition is needed in some high speed and high precision measurements when signal measurements,image manipulation and audio frequency signalprocess are taken.Incurrent,high—speed acquisition modules are mostly based on PCI bus Or ISA bus. But they have obvious such as not to and are restricted to disadvantages easy fix,high cost and especially they are restricted to the slot number, address and interrupt resources.
Universal Serial Bus (USB) Universal disproved Bus referred to overcome these problems. It was the end of 1994 by IBM, Compaq, Microsoft etc. Many companies and joint computer peripheral equipment, a new type of standard interface buses. USB is fast, reliable, extensible, plug and play, etc. USB protocol, data transmission rate high, it will make the USB realize rapid transfer capacity data peripherals to become a reality.
This paper designs a data acquisition card which is based on the USB, and the card can realize the data acquisition, real-time of the liquid crystal display, data storage and USB serial communication.
Keywords :USB; Firmware; Device driver; Data Acquisition; Real Time Clock
第 2 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
目录
1 绪论 ?????????????????????????????? 1
1.1 引言 ????????????????????????????? 1
1.2 选题背景和研究意义 ?????????????????????? 1
1.3 USB的应用概述????????????????????????? 2
1.4 本文所做的工作 ???????????????????????? 2 2 USB及所用软件介绍 ??????????????????????? 3
2.1 USB介绍 ??????????????????????????? 3
2.2 labview软件 ????????????????????????? 6
2.3 Protel DXP软件介绍?????????????????????? 9 3 USB数据采集卡硬件设计 ?????????????????????11
3.1 USB数据采集卡功能???????????????????????11
3.2 数据采集原理及系统结构 ????????????????????12
3.3 采集系统硬件模块 ???????????????????????20
3.4 技术指标及电路原理图设计 ???????????????????23 4 USB数据采集卡软件设计 ?????????????????????27
4.1 固件程序 ???????????????????????????28
4.2 设备请求处理 ?????????????????????????30
4.3 A/D转换控制子函数 ??????????????????????31
4.4 USB描述符???????????????????????????31
4.5 上位机程序设计???????????????????????? 32 5 仿真 ??????????????????????????????33 结论 ???????????????????????????????35 致谢 ???????????????????????????????36 参考文献????????????????????????????? 37 附录????????????????????????????????????38 附图????????????????????????????????????48
第 3 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? 1 绪论
1.1 引言
长期以来,在工业生产和科学技术研究过程的各行业中,常常要对各种数据进行数据采集,通常使用的有ISA、PCI 等数据采集卡,这种方式存在安装麻烦,价格贵等缺点。(www.61k.com)而目前采用的USB总线接口具有许多总线所无法实现的优势,如支持即插即用,具有热插拔,可以通过主机为设备提供电源,接口简单,单元体积小,只需要一根USB电缆即可。因此本文设计了一种基于USB 通信数据采集卡的系统。
1.2 选题背景和研究意义
随着信息技术的飞速发展,各种数据的实时采集和处理在现代工业控制中已成为必不可少的。这就给现代USB技术提出了两个方面的要求:一方面,要求接口简单灵活且有较高的数据传输率;另一方面,由于数据量通常都较大,要求主机能够对实时数据做出快速响应,并及时进行分析和处理。随着信息化带动工业化进程的逐步深入,电子计算机信息技术的不断发展和完善,采用USB实现的数据采集系统的应用越来越多。
61阅读请您转载分享:
传统的外设与主机的通信接口难以满足上述各个方面的要求。USB技术正是顺应这一要求提出的,它具有较高的传输速度,实现了真正意义上的“即插即用”(Plug&Play),同时USB上最多可以连接127个外设。因此,将USB技术应用于数据采集是非常适合的。
数据采集及存储系统是数字信号处理系统的重要环节,高速数据传输对提高整个系统的性能有着巨大意义,利用USB总线进行高速传输,解决了数据传输中的速度瓶颈问题。数据采集系统的应用已经深入到数字信号处理的各个领域中。USB总线由于其速度快、可靠性好、成本低、兼容性强等特点,在各种计算机总线标准中占主导地位,基于USB总线标准的接口设计已成为相关项目开发中的优先选择。
第 4 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
1.3 USB的应用概述
USB是英文Universal Serial BUS的缩写,中文含义是“通用串行总线”。(www.61k.com]它不是一种新的总线标准,而是应用在PC领域的接口技术。USB是在1994年底由英特尔、康柏、IBM、Microsoft等多家公司联合提出的。不过直到近期,它才得到广泛地应用。从1994年11月11日发表了USB V0.7版本以后,USB版本经历了多年的发展,到现在已经发展为2.0版本,成为目前电脑中的标准扩展接口。目前主板中主要是采用USB1.1和USB2.0,各USB版本间能很好的兼容。USB用一个4针插头作为标准插头,采用菊花链形式可以把所有的外设连接起来,最多可以连接127个外部设备,并且不会损失带宽。USB需要主机硬件、操作系统和外设三个方面的支持才能工作。目前的主板一般都采用支持USB功能的控制芯片组,主板上也安装有USB接口插座,而且除了背板的插座之外,主板上还预留有USB插针,可以通过连线接到机箱前面作为前置USB接口以方便使用(注意,在接线时要仔细阅读主板说明书并按图连接,千万不可接错而使设备损坏)。而且USB接口还可以通过专门的USB连机线实现双机互连,并可以通过Hub扩展出更多的接口。USB具有传输速度快,使用方便,支持热插拔,连接灵活,独立供电等优点,可以连接鼠标、键盘、打印机、扫描仪、摄像头、闪存盘、MP3机、手机、数码相机、移动硬盘、外置光软驱、USB网卡、ADSL Modem、Cable Modem等,几乎所有的外部设备。
1.4 本文所做的工作
本文首先概述了USB数据采集卡在设计过程中引入的相关新技术,然后针对该数据采集模块的特点与要求,详细论述了其组成与工作原理,以及仿真结果实现。最后给出了该数据采集模块进行数据采集时的部分波形和软件界面。
(1)设计了基于USB的数据采集系统的硬件系统;
(2)仿真了USB接口芯片和其它芯片之间的通信接口;
(3)基于USB 协议,编写了固件程序;
(4)编写了简单的主机应用程序;
(5)编写了数据采集卡的USB设备驱动程序。
第 5 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? 2 USB及所用软件介绍
2.1 USB介绍
USB总线规范是为实现计算机和通信集成而提出的一种用于扩充PC体系结构的工业标准。[www.61k.com)基于USB接口的高性能数据采集模块,充分利用了USB总线和虚拟仪器技术的优点,必将被越来越多的用户所接受。
图2.1 USB系统的分层
2.1.1 USB概述
通用串行总线USB(Universal Serial Bus)是计算机与外围设备之间的一种新式标准接口总线。USB具有以下几方面的优点:
1)易用性。USB支持热插拔和即插即用。这就让用户在使用外接设备时,不需要重复“关机将并口或串口电缆接上再开机”这样的动作,而是直接在电脑工作时,就可以将USB电缆插上使用。
2)可扩展性。USB在个人电脑上往往具有多个接口,可以同时连接几个设备,如果接上一个有四个端口的USB HUB时,就可以再连上;四个USB设备,以此类
第 6 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? 推,尽可以连下去,将你家的设备都同时连在一台个人电脑上而不会有任何问题。(www.61k.com]
3)快速性。USB规定了两种传输速率:低速传输和全速传输。低速传输的速率是1.5Mbps,全速是12Mbps。这不但远远高于传统的串口传输速率,也比并口传输快了好多倍。
4)可靠性。USB的可靠性来自硬件设计和USB数据传输协议两方面的保证。USB驱动器、接收器和电缆的硬件规范消除了大多数可能引起数据错误的噪声; USB协议使用了差错校验和数据重传机制,可以最大程度保证数据传输的准确性。
5) 内置电源。USB总线内置电源线,可以给外设提供5v和最多500mA的电源供应,满足大部分低功耗外设的电源要求。
6)携带方便。USB设备大多以“小、轻、薄”见长,对用户来说,同样20G的硬盘,USB硬盘比IDE硬盘要轻一半的重量,在想要随身携带大量数据时,当然USB硬盘会是首要之选了。
7)标准统一。大家常见的是IDE接口的硬盘,串口的鼠标键盘,并口的打印机扫描仪,可是有了USB之后,这些应用外设统统可以用同样的标准与个人电脑连接,这时就有了USB硬盘、USB鼠标、USB打印机等等。
2.1.2 USB总线技术简介
USB接口只有4根线如图2.2所示。其中D+和D-是一对差模的信号线而VBus 和GND则提供了5V的电源。
61阅读请您转载分享:
USB设备分成Hub设备和功能设备两种。Hub殴备即集线器,是USB即插即 用
第 7 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? 技术中的核心部分,完成USB设备的添加、插拔检测和电源管理等功能。[www.61k.com)功能设备能在总线上发送和接收数据和控制信息。
USB硬件部分包括USB主机、USB设备(Hub和功能设备)和连接电缆。USB主机是一个带有USB主控制器的PC机。USB主控制器/根Hub分别完成对传输的初始化和设备的接入。USB Hubs除了根Hub外,为了接入更多的设备,需要其他USB Hubs。连接电缆有两种,用于全速通信的包有防护物的双绞线和用于低速通信的不带防护物的非双绞线。
图2.3 USB总线控制框图
实际的数据传输过程如下:
设备驱动程序通过对USB接口(USB driver interface)的调用发出输入输 出请求(IRP,I/0Reques L Packet);USB驱动程序接到请求后调用HCD接口(host controller driver interface),将IRP转化为USB的传输(transfer),一个IRP可以包含一个或多个USB传输;然后HCD将USB传输分解为总线操作(transaction),由主控制器以包(packet)的形式发出。需要注意的是,所有的数据传输都是由主机开始的,任何外设都无权丌始一个传输。
USB提供了四种传输方式:控制传输、同步传输、中断传输、批传输。它们在数据格式、传输方向、数据包容量限制、总线访问限制等方面有着各自不同的特征。控制传输是双向的,主要用于没备配置,也可作设备的其他特殊用途。批
第 8 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
(Bulk)传输可以是单向或双向。(www.61k.com)用于传送大批数据。其典型应用是扫描仪的静态图片输入。中断传输是单向的,且仪输入到主机,它用于不固定的少量的数据传送。USB的中断是查询类型的。等时(Isochronous)(同步)传输可以是单向或双向,用于传送连续性、实时的数据。
USB的所有总线操作都可以归结为三种包的传输。任何操作都是从主机开始的,主机以预先排好的时序,发出一个描述操作类型、方向、外设地址以及端点号的包,我们称之为令牌包(Token Packet)。然后在令牌中指定的数据发送者发出一个数据包或者指出它没有数据可以传输。而数据的目的地一般要以一个确认包(Handshake Packet)做出响应以表明传输是否成功。包是组成USB 交换的基本单位,USB总线上的每一次交换至少需要3个包才能完成。
2.2 labview技术
2.2.1 虚拟仪器概述
虚拟仪器(virtual instrumention)是基于计算机的仪器。计算机和仪器的密切结合是目前仪器发展的一个重要方向。粗略地说这种结合有两种方式,一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。另一种方式是将仪器装入计算机。以通用的计算机硬件及操作系统为依托,实现各种仪器功能。虚拟仪器主要是指这种方式。下面的框图反映了常见的虚拟仪器方案。
图 2.4 虚拟仪器的设计方案框图
第 9 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
虚拟仪器的主要特点有:
1、尽可能采用了通用的硬件,各种仪器的差异主要是软件。[www.61k.com]
2、可充分发挥计算机的能力,有强大的数据处理功能,可以创造出功能更强的仪器。
3、用户可以根据自己的需要定义和制造各种仪器。
虚拟仪器实际上是一个按照仪器需求组织的数据采集系统。虚拟仪器的研究中涉及的基础理论主要有计算机数据采集和数字信号处理。目前在这一领域内,使用较为广泛的计算机语言是美国NI公司的LabVIEW。
虚拟仪器的起源可以追朔到20世纪70年代,那时计算机测控系统在国防、航天等领域已经有了相当的发展。PC机出现以后,仪器级的计算机化成为可能,甚至在Microsoft公司的Windows诞生之前,NI公司已经在Macintosh计算机上推出了LabVIEW2.0以前的版本。对虚拟仪器和LabVIEW长期、系统、有效的研究开发使得该公司成为业界公认的权威。
普通的PC有一些不可避免的弱点。用它构建的虚拟仪器或计算机测试系统性能不可能太高。目前作为计算机化仪器的一个重要发展方向是制定了VXI标准,这是一种插卡式的仪器。每一种仪器是一个插卡,为了保证仪器的性能,又采用了较多的硬件,但这些卡式仪器本身都没有面板,其面板仍然用虚拟的方式在计算机屏幕上出现。这些卡插入标准的VXI机箱,再与计算机相连,就组成了一个测试系统。VXI仪器价格昂贵,目前又推出了一种较为便宜的PXI标准仪器。
虚拟仪器研究的另一个问题是各种标准仪器的互连及与计算机的连接。目前使用较多的是IEEE 488或GPIB协议。未来的仪器也应当是网络化的。
2.2.2 LabVIEW介绍
LabVIEW(Laboratory Virtual instrument Engineering)是一种图形化的编程语言,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。LabVIEW集成了与满足GPIB、VXI、RS-232和RS-485协议的硬件及数据采集卡通讯的全部功能。它还内置了便于应用TCP/IP、ActiveX等软件标准的库函数。这是一个功能强大且灵活的软件。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。
第10 页
usb数据采集卡 基于USB数据采集卡软件设计
61阅读请您转载分享:
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
图形化的程序语言,又称为“G”语言。(www.61k.com)使用这种语言编程时,基本上不写程序代码,取而代之的是流程图或流程图。它尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概念,因此,LabVIEW是一个面向最终用户的工具。它可以增强你构建自己的科学和工程系统的能力,提供了实现仪器编程和数据采集系统的便捷途径。使用它进行原理研究、设计、测试并实现仪器系统时,可以大大提高工作效率。
利用LabVIEW,可产生独立运行的可执行文件,它是一个真正的32位编译器。像许多重要的软件一样,LabVIEW提供了Windows、UNIX、Linux、Macintosh的多种版本。
2.2.3 LabVIEW的运行机制
(1)LabVIEW应用程序的构成
所有的LabVIEW应用程序,即虚拟仪器(VI),它包括面板(panel)、流程图(block diagram)以及图标/连结器(icon/connector)三部分。
(2)面板
面板是图形用户界面,也就是VI的虚拟仪器面板,这一界面上有用户输入和显示输出两类对象,具体表现有开关、旋钮、图形以及其他控制(control)和显示对象(indicator)。
图2.5 随机信号发生器前面板
VI
与标准仪器相比较,那么前面板上的东西就是仪器面板上的东西,而流
第11 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? 程图上的东西相当于仪器箱内的东西。[www.61k.com)在许多情况下,使用VI可以仿真标准仪器,不仅在屏幕上出现一个惟妙惟肖的标准仪器面板,而且其功能也与标准仪器相差无几。VI具有层次化和结构化的特征。
图2.6 随机信号发生器的后面板
2.3 Protel DXP软件介绍
Altium公司作为EDA领域里的一个领先公司,在原来Protel DXP的基础上,应用最先进的软件设计方法,率先推出了一款基于Windows2000和Windows XP操作系统的EDA设计软件Protel DXP。Protel DXP在前版本的基础上增加了许多新的功能。新的可定制设计环境功能包括双显示器支持,可固定、浮动以及弹出面板,强大的过滤和对象定位功能及增强的用户界面等。Protel DXP是第一个将所有设计工具集于一身的板级设计系统,电子设计者从最初的项目模块规划到最终形成生产数据都可以按照自己的设计方式实现。Protel DXP运行在优化的设计浏览器平台上,并且具备当今所有先进的设计特点,能够处理各种复杂的PCB设计过程。通过设计输入仿真、PCB绘制编辑、拓扑自动布线、信号完整性分析和设计输出等技术融合,Protel DXP提供了全面的设计解决方案。
Protel DXP 不仅是单纯的PCB(印制电路板)设计工具,而且是由多个模块组成的系统工具,分别是SCH(原理图)设计、SCH(原理图)仿真、PCB(印
第12 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? 制电路板)设计、Auto Router(自动布线器)和FPGA设计等,覆盖了以PCB为核心的整个物理设计。(www.61k.com)该软件将项目管理方式、原理图和PCB图的双向同步技术、多通道设计、拓朴自动布线以及电路仿真等技术结合在一起,为电路设计提供了强大的支持。下图为它的操作界面。
PCB的制图的步骤:先把设计好的图纸上的图形在Protel软件上支撑电路原理图,然后根据原理图生成PCB板图,再次对板图的器件进行布局、布线,尽量把板的面积弄到最小、最经济。
图2.7 Protel DXP的操作界面
第13 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? 3 USB数据采集卡硬件设计
3.1 USB数据采集卡功能
一个典型的数据采集卡的功能有模拟输入、模拟输出、数字I/O、计数器/计时器等,这些功能分别由相应的电路来实现。[www.61k.com]
模拟输入是采集最基本的功能。它一般由多路开关(MUX)、放大器、采样保持电路以及A/D来实现,通过这些部分,一个模拟信号就可以转化为数字信号。A/D的性能和参数直接影响着模拟输入的质量,要根据实际需要的精度来选择合适的A/D。
模拟输出通常是为采集系统提供激励。输出信号受数模转换器(D/A)的建立时间、转换率、分辨率等因素影响。建立时间和转换率决定了输出信号幅值改变的快慢。建立时间短、转换率高的D/A可以提供一个较高频率的信号。如果用D/A的输出信号去驱动一个加热器,就不需要使用速度很快的D/A,因为加热器本身就不能很快地跟踪电压变化。应该根据实际需要选择D/A的参数指标。
数字I/O通常用来控制过程、产生测试信号、与外设通信等。它的重要参数包括:数字口路数(line)、接收 (发送 )率、驱动能力等。如果输出去驱动电机、灯、开关型加热器等用电器,就不必用较高的数据转换率。路数要能同控制对象配合,而且需要的电流要小于采集卡所能提供的驱动电流。但加上合适的数字信号调理设备,仍可以用采集卡输出的低电流的TTL电平信号去监控高电压、大电流的工业设备。数字I/O常见的应用是在计算机和外设如打印机、数据记录仪等之间传送数据。另外一些数字口为了同步通信的需要还有“握手”线。路数、数据转换速率、“握手”能力都是应理解的重要参数,应依据具体的应用场合而选择有合适参数的数字I/O。
61阅读请您转载分享:
计数器包括三个重要信号:门限信号、计数信号、输出。门限信号实际上是触发信号——使计数器工作或不工作;计数信号也即信号源,它提供了计数器操作的时间基准;输出是在输出线上产生脉冲或方波。计数器最重要的参数是分辨率和时钟频率,高分辨率意味着计数器可以计更多的数,时钟频率决定了计数的快慢,频率越高,计数速度就越快。
第14 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
3.2 数据采集原理及系统结构
3.2.1 数据采集基本原理
在计算机广泛应用的今天,数据采集的重要性是十分显著的。[www.61k.com]它是计算机与外部物理世界连接的桥梁。在进行数据采集时前,要了解相应的基本原理,比如采样频率、抗混叠滤波器和样本数。
假设现在对一个模拟信号x(t) 每隔Δt时间采样一次。时间间隔Δt被称为采样间隔或者采样周期。它的倒数1/Δt 被称为采样频率,单位是采样数/每秒。t=0, Δt ,2Δt ,3Δt ??等等,x(t)的数值就被称为采样值。所有x(0),x(Δt),x(2Δt )都是采样值。这样信号x(t)可以用一组分散的采样值来表示:
{x(0),x(△t),x(2Δt),x(3Δt),?,x(kΔt),?}.
下图显示了一个模拟信号和它采样后的采样值。采样间隔是Δt,注意,采样点在时域上是分散的。
3.2.2 数据采集系统的构成
在数据采集之前,程序将对采集板卡初始化,板卡上和内存中的Buffer是数据采集存储的中间环节。需要注意的两个问题是使用Buffer和使用外触发启动、停止或同步一个操作。下图为数据采集系统的结构。
第15 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
图3.2 数据采集系统结构
(一)数据采集系统包括:缓冲和触发。[www.61k.com)
这里的缓冲指的是PC内存的一个区域(不是数据采集卡上的FIFO缓冲),它用来临时存放数据。不使用Buffer意味着对所采集的每一个数据你都必须及时处理(图形化、分析等),因为这里没有一个场合可以保持你着手处理的数据之前的若干数据点。
触发涉及初始化、终止或同步采集事件的任何方法。触发器通常是一个数字或模拟信号,其状态可确定动作的发生。当某一模入通道发生一个指定的电压电平时,让卡输出一个数字脉冲,这是内部触发。采集卡等待一个外部仪器发出的数字脉冲到来后初始化采集卡,这是外部触发。许多仪器提供数字输出(常称为“trigger out”)用于触发特定的装置或仪器,在这里,就是数据采集卡。
(二)模入信号类型
根据信号运载信息方式的不同,可以将信号分为模拟或数字信号。数字(二进制)信号分为开关信号和脉冲信号。模拟信号可分为直流、时域、频域信号。
(1)数字信号。第一类数字信号是开—关信号。一个开—关信号运载的信息与信号的瞬间状态有关。TTL信号就是一个开-关信号,一个TTL信号如果在2.0到5.0V之间,就定义它为逻辑高电平,如果在0到0.8V之间,就定义为逻辑低电平。第二类数字信号是脉冲信号。这种信号包括一系列的状态转换,信息就包含在状态转化发生的数目、转换速率、一个转换间隔或多个转换间隔的时间
第16 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? 里。(www.61k.com]安装在马达轴上的光学编码器的输出就是脉冲信号。有些装置需要数字输入,比如一个步进式马达就需要一系列的数字脉冲作为输入来控制位置和速度。
(2)模拟信号。模拟直流信号,模拟直流信号是静止的或变化非常缓慢的模拟信号。采集系统在采集模拟直流信号时,需要有足够的精度以正确测量信号电平,由于直流信号变化缓慢,用软件计时就够了,不需要使用硬件计时。
模拟时域信号,模拟时域信号与其他信号不同在于,它在运载信息时不仅有信号的电平,还有电平随时间的变化。为了测量一个时域信号,必须有一个精确的时间序列,序列的时间间隔也应该合适,以保证信号的有用部分被采集到。要以一定的速率进行测量,这个测量速率要能跟上波形的变化。
模拟频域信号,模拟频域信号与时域信号类似,然而,从频域信号中提取的信息是基于信号的频域内容,而不是波形的形状,也不是随时间变化的特性。用于测量一个频域信号的系统必须有一个A/D、一个简单时钟和一个用于精确捕捉波形的触发器。系统必须有必要的分析功能,用于从信号中提取频域信息。
(三)采样方式
多数通用采集卡都有多个模入通道,但是并非每个通道配置一个A/D,而是大家共用一套A/D,在A/D之前的有一个多路开关(MUX),以及放大器(AMP)、采样保持器(S/H)等。通过这个开关的扫描切换,实现多通道的采样。多通道的采样方式有三种:循环采样、同步采样和间隔采样。
61阅读请您转载分享:
循环采样是指采集卡使用多路开关以某一时钟频率将多个通道分别接入A/D循环进行采样。此时,所有的通道共用一个A/D和S/H等设备。循环采样的缺点在于不能对多通道同步采样,通道的扫描速率是由多路开关切换的速率平均分配给每个通道的。因为多路开关要在通道间进行切换,对两个连续通道的采样,采样信号波形会随着时间变化,产生通道间的时间延迟。
同步采样是指数据采集卡每个通道使用独立的放大器和S/H电路,经过一个多路开关分别将不同的通道接入A/D进行转换。
间隔采样是指用通道时钟控制通道间的时间间隔,而用另一个扫描时钟控制两次扫描过程之间的间隔。通道间的间隔由实际上由采集卡的最高采样速率决定,可能是微秒、甚至纳秒级的,效果接近于同步扫描。间隔扫描适合缓慢变化的信号,比如温度和压力。
第17 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
图3.3 间隔采样与循环采样比较
(四)模入信号的连接方式
一个电压信号可以分为接地和浮动两种类型。[www.61k.com]测量系统可以分为差分(Differential)、参考地单端(RSE)、无参考地单端(NRSE)三种类型。
(1)接地信号和浮动信号
接地信号,就是将信号的一端与系统地连接起来,如大地或建筑物的地。因为信号用的是系统地,所以与数据采集卡是共地的。接地最常见的例子是通过墙上的接地引出线,如信号发生器和电源。
浮动信号,是一个不与任何地(如大地或建筑物的地)连接的电压信号称为浮动信号,浮动信号的每个端口都与系统地独立。一些常见的浮动信号的例子有电池、热电偶、变压器和隔离放大器。
(2)测量系统分类
差分测量系统,差分系统中信号输入端分别与一个模入通道相连接。具有放大器的数据采集卡可配置成差分测量系统。一个理想的差分测量系统仅能测出(+)和(-)输入端口之间的电位差,完全不会测量到共模电压。然而,实际应用的板卡却限制了差分测量系统抵抗共模电压的能力,数据采集卡的共模电压的范围限制了相对与测量系统地的输入电压的波动范围。共模电压的范围关系到一个数据采集卡的性能,可以用不同的方式来消除共模电压的影响。如果系统共模电压超过允许范围,需要限制信号地与数据采集卡的地之间的浮地电压,以避免测量数据错误。
第18 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
参考地单端测量系统(RSE),一个RSE测量系统,也叫做接地测量系统,被测信号一端接模拟输入通道,另一端接系统地AIGND。[www.61k.com)无参考地单端测量系统(NRSE),在NRSE测量系统中,信号的一端接模拟输入通道,另一端接一个公用参考端,但这个参考端电压相对于测量系统的地来说是不断变化的。
(五)选择合适的测量系统
(1)测量接地信号,测量接地信号最好采用差分或NRSE测量系统。如果采用RSE测量系统时,将会给测量结果带来较大的误差。一个接地回路通常会在测量数据中引入频率为电源频率的交流和偏置直流干扰。一种避免接地回路形成的办法就是在测量信号前使用隔离方法,测量隔离之后的信号。
(2)测量浮动信号,可以用差分、RSE、NRSE方式测量浮动信号。在差分测量系统中,应该保证相对于测量地的信号的共模电压在测量系统设备允许的范围之内。如果采用差分或NRSE测量系统,放大器输入偏置电流会导致浮动信号电压偏离数据采集卡的有效范围。
(六)信号调理
从传感器得到的信号大多要经过调理才能进入数据采集设备,信号调理功能包括放大、隔离、滤波、激励、线性化等。由于不同传感器有不同的特性,因此,除了这些通用功能,还要根据具体传感器的特性和要求来设计特殊的信号调理功能。下面仅介绍信号调理的通用功能。
放大:微弱信号都要进行放大以提高分辨率和降低噪声,使调理后信号的电压范围和A/D的电压范围相匹配。信号调理模块应尽可能靠近信号源或传感器,使得信号在受到传输信号的环境噪声影响之前已被放大,使信噪比得到改善。
隔离:隔离是指使用变压器、光或电容耦合等方法在被测系统和测试系统之间传递信号,避免直接的电连接。使用隔离的原因由两个:一是从安全的角度考虑;另一个原因是隔离可使从数据采集卡读出来的数据不受地电位和输入模式的影响。如果数据采集卡的地与信号地之间有电位差,而又不进行隔离,那么就有可能形成接地回路,引起误差。
滤波:滤波的目的是从所测量的信号中除去不需要的成分。大多数信号调理模块有低通滤波器,用来滤除噪声。通常还需要抗混叠滤波器,滤除信号中感兴趣的最高频率以上的所有频率的信号。某些高性能的数据采集卡自身带有抗混叠
第19 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? 滤波器。[www.61k.com]
激励:信号调理也能够为某些传感器提供所需的激励信号,比如应变传感器、热敏电阻等需要外界电源或电流激励信号。很多信号调理模块都提供电流源和电压源以便给传感器提供激励。
线性化:许多传感器对被测量的响应是非线性的,因而需要对其输出信号进行线性化,以补偿传感器带来的误差。但目前的趋势是,数据采集系统可以利用软件来解决这一问题。
数字信号调理:即使传感器直接输出数字信号,有时也有进行调理的必要。其作用是将传感器输出的数字信号进行必要的整形或电平调整。大多数数字信号调理模块还提供其他一些电路模块,使得用户可以通过数据采集卡的数字I/O直接控制电磁阀、电灯、电动机等外部设备。
(七)LabVIEW 数据采集模块的分类
LabVIEW 中对于数据采集模块按照难易程度做了分类,下图是以模入为例表明了工具栏中各种类型的模入模块。
图3.4 模入的各种模块 简易模入VIs (Ease Analog VIs)该行的四个模块执行简单的模入操作。它们可以作为单独的VI,也可以作为subVI来使用。这些模块可以自动发出错误警告信息,在对话框中你可以选择中断运行或忽略。但是比较复杂的应用需要使用下面的类型。
61阅读请您转载分享:
中级模入VIs (Intermediate Analog Input VIs)中级模入在两个地方可以找到,一个如图6-15的位置,另一个是包含在下面讨论的通用模入VIs
中。与
第20 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? 简易模入不同的是在那里的一个操作AI Input ,这里细分为AI Config, AI Start, AI Read, AI Single Scan以及AI Clear。(www.61k.com)它可以描述更加细致、复杂的操作。
通用模入VIs ( Analog Input Utility VIs)这里提供了三个常用的Vis,AI Read One Scan,AI Waveform Scan,及AI Continuous Scan。使用一个VI就可以解决一个普通的模入问题,方便但缺乏灵活性。这三个Vis是由中级模入构成的。
高级模入VIs ( Advanced Analog Input VIs)这些Vis是NI-DAQ数据采集软件的界面,是上面三种类型Vis的基础。一般情况下,用户不需要直接使用这个功能。
分辨率(Resolution)分辨率就是用来进行模数转换的位数,A/D的位数越多,分辨率就越高,可区分的最小电压就越小。分辨率要足够高,数字化信号才能有足够的电压分辨能力,才能比较好的恢复原始信号。目前分辨率为8的采集卡属于较低的,12位属中档,16位的卡就比较高了。他们可以分别将模入电压量化为256、4096、65536份。
电压范围(Range)电压范围由A/D能数字化的模拟信号的最高和最低的电压决定。一般情况下,采集卡的电压范围是可调的,所以可选择和信号电压变化范围相匹配的电压范围以充分利用分辨率范围,得到更高的精度。比如,对于一个3位的A/D,在选择0-10V范围时,它将10V八等分;如果选择范围为-10V到+10V,同一个A/D就得将20V分为8等分,能分辨的最小电压就从1.25V上升到2.50V,这样信号复原的效果就更差了。
增益(Gain)增益主要用于在信号数字化之前对衰减的信号进行放大。使用增益,可以等效地降低A/D的输入范围,使它能尽量将信号分为更多的等份,基本达到满量程,这样可以更好地复原信号。因为对同样的电压输入范围,大信号的量化误差小,而小信号时量化误差大。当输入信号不接近满量程时,量化误差会相对加大。如:输入只为满量程的1/10时,量化误差相应扩大10倍。一般使用时,要通过选择合适的增益,使得输入信号动态范围与A/D的电压范围相适应。当信号的最大电压加上增益后超过了板卡的最大电压,超出部分将被截断而读出错误的数据。
对于NI公司的采集卡选择增益是在LabVIEW中通过设置信号输入限制来实
第21 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? 现的,LabVIEW会根据选择的输入限制和输入电压范围的大小来自动选择增益的大小。[www.61k.com]选择合适的增益和输入范围要与实际被测信号匹配。如果输入信号的改变量比采集卡的精度低,就可以将信号放大,提高增益。选择一个大的输入范围或降低增益可以测量大范围的信号,但这是以精度的降低为代价的。选择一个小的输入范围或提高增益可以提高精度,但这可能会使信号超出A/D允许的电压范围。
采集VI的几点说明:
device——设备号。在NI 采集设置工具中设定。该参数告诉LabVIEW你使用什么卡,它可以使采集 VI自身独立于卡的类型,也就是说,如果你稍后使用了另一种卡,并且赋予它同样的设备号,你的VI程序可正常工作而无须修改。
channels——指定数据样本的物理源。例如,一个卡有16个模拟输入通道,你就可以同时采集16组数据点。在LabVIEW VI中,一个通道或一组通道都用一个字符串来指定。
scan rate(1000 scans/sec)——是在多通道采样时,分配给一个通道得到的样本速率,缺省值是1000/秒。
number of samples/ch——每通道要采集的样本数,缺省值是1000。
high limit——被测信号的最高电平,其缺省值是0。设为缺省值时系统将按照采集卡设置程序MAX中的设定处理。
low limit——被测信号的最低电平,其缺省值是0。设为缺省值时系统将按照采集卡设置程序MAX中的设定处理。
waveforms——A/D转换后的输出,是一个二维的waveform数组,其每一列对应于一个输入通道,同时包含有反映时间信息的t0和Δt。
第22 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
3.3 采集系统硬件模块
硬件的设计首先要了解采集系统硬件的模型,所以下图就是采集系统硬件设计的模型。[www.61k.com)
3.3.1 模块介绍
(1)数据采集模块。数据采集模块是将外部数据传送到计算机中,按照被采集的形式可以分为数字量采集和模拟量采集。由于微处理器可以直接对数字信号进行读写,因此数字量采集比较简单,而模拟量采集则需要首先将模拟信号转换成数字信号,然后再进行采集。一个完整的模拟量数据采集系统大致应该包括:信号调理电路、采样/保持放大器、模拟/数字(A/D)转换器和采集电路等。模拟输入是采集最基本的功能。它一般由多路开关(MUX)、放大器、采样保持电路以及A/D来实现,通过这些部分,一个模拟信号就可以转化为数字信号。A/D的性能和参数直接影响着模拟输入的质量,要根据实际需要的精度来选择合适的
A/DD/A)的建
信等。它的重要参数包括:数字口路数(line)、接收 (发送 )率、驱动能力等。如果输出去驱动电机、灯、开关型加热器等用电器,就不必用较高的数据转换率。路数要能同控制对象配合,而且需要的电流要小于采集卡所能提供的驱动电流。但加上合适的数字信号调理设备,仍可以用采集卡输出的低电流的TTL电平信号去监控高电压、大电流的工业设备。
61阅读请您转载分享:
第23 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
(2)USB接口模块。[www.61k.com)设备驱动程序通过对USB接口(USB driver interface)的调用发出输入输 出请求(IRP,I/0Reques L Packet);USB驱动程序接到请求后调用HCD接口(host controller driver interface),将IRP转化为USB的传输(transfer),一个IRP可以包含一个或多个USB传输;然后HCD将USB传输分解为总线操作(transaction),由主控制器以包(packet)的形式发出。需要注意的是,所有的数据传输都是由主机开始的,任何外设都无权丌始一个传输。
USB提供了四种传输方式:控制传输、同步传输、中断传输、批传输。它们在数据格式、传输方向、数据包容量限制、总线访问限制等方面有着各自不同的特征。控制传输是双向的,主要用于没备配置,也可作设备的其他特殊用途。批(Bulk)传输可以是单向或双向。用于传送大批数据。其典型应用是扫描仪的静态图片输入。中断传输是单向的,且仪输入到主机,它用于不固定的少量的数据传送。USB的中断是查询类型的。等时(Isochronous)(同步)传输可以是单向或双向,用于传送连续性、实时的数据。
(3)LabVIEW软件模块。虚拟仪器集成环境(Laboratory Virtual Instrument Engineering Workbench)的简称,是美国国家仪器公司(NATIONAL INSTRUMENTS,简称NI)的创新软件产品,也是目前应用最广、发展最快、功能最强的图形化软件集成开发环境。利用这个软件的仿真模块对系统进行模拟仿真,通过虚拟数据在系统里得到相应的结果,从而达到数据采集的目的。
3.3.2 系统固件程序
一个完整的集USB通信的数据采集系统的软件部分包含固件程序,USB驱动程序及应用层程序。此系统软件部分的固件程序实际上就是单片机方面的软件设计 。固件调试可以在LabVIEW环境下开发, 用户只需要提供一个USB描述符表,USB设备的描述符是对USB设备属性的说明。USB描述符通过Get Descriptor来读取。本设计采用模块化程序设计方式,把整个设计分成几个模块来编写,再由主程序进行连接,从而使整个程序的运行有序地进行。
3.3.3 USB通信系统设计
一个完整的USB 通信系统包括数据采集单元、微处理器、接口芯片和相应
第24 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? 的驱动、应用程序等。[www.61k.com)图3.6为USB 通信系统的总框图。
USB通信硬件设计在终端用户看来,USB系统就是外设通过一根USB 电缆和PC机连接起来,USB在外设和PC机之间提供通信服务,所以需要这样一个USB接口芯片作为通信的桥梁依照标准的协议进行处理,达到通信成功的目的。它主要有以下几个特点:
(1) 低速和全速USB主机接口,兼容USB外围元器件,只需要晶体和电容。
(2) 低速和全速USB设备接口,完全兼容芯片支持动态切换主机与设备方式。
(3) 主机端点输入和输出缓冲区各64字节,支持12Mbps全速USB设备和
1.5Mbps低速设备。
(4) 支持USB设备的控制传输、批量传输、中断传输。
(5) 自动检测USB设备的连接和断开,提供设备连接和断开的事件通知。
3.3.4 USB数据传输简介
当外部的USB设备连接到USB主机之后,USB设备便可以和主机进行数据通信。在通信过程中,自上而下需要涉及4个部分,分别为:主机软件、USB总线驱动程序、USB主控制器驱动序和USB功能设备。
在USB协议中,USB的数据传输由信息包组成。这些信息包组合起来可以构成完整的事务处理。USB事务处理是USB主机和USB功能设备之间数据传输的基本单位。USB的信息包和事务处理具有特定的格式。
第25 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
图3.7 USB 数据传输
3.4 技术指标及电路原理图设计
3.4.1 技术要求及电路原理图
1)采样标准
●A/D转换器垂直分辨率为12位
●系统采样频率在5~IMHz范围并分段可调
●触发方式分为:软件触发,信号触发,外触发
●放大倍数1、2、4、lO、20、40、100、200、400、1000
●系统精度0.3%
●存储长度为:1M采样点/通道。[www.61k.com]
●驱动程序:USB Plug@Play for Windows 9X/NT/2000。
●标准控制软件
2)接口
●8路信号输入:BNC单端
●电源开关、切换(交直流供电切换)
●仪器正常指示灯
●交流电接口
●直流电接口
●外触发输入:BNC单端
●USB接口
●数字量I/0接口
3)供电方式
●交流220V,50Hz
●直流24V
第26
页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
图3.8 系统电路原理图
第27 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
3.4.2 PCB板设计
(一)PCB基本布线流程
(1)得到正确的原理图和网络表
(2)画出自己定义的非标准器件封装库
(3)画上禁止布线层,含中间镂空等
(4)打开所有要用到的PCB库文件后调入网络表
(5)原件手工布局
(6)根据情况作适当调整,然后将全部器件锁定
61阅读请您转载分享:
(7)制定详细的布线规则
(8)手工布线
(9)切换到单层显示模式下将每个布线层的线拉整齐和美观
(10)通过DRC检验,将丝印层字符放到合适位置
(11)最后在做一次DRC,全部正确后存盘
(12)导出原理图
(13)导出PCB图
(14)整理和打印各种文档
(二)PCB布线中的难点
元件手工布局这是整个画线路板过程中最耗时和最难的地方,应当从机械结构、散热、电磁干扰、将来布线的方便性等方面综合考虑。(www.61k.com)先布置与机械尺寸有关的器件并锁定这些器件,然后是大的占位置的器件和电路的核心元件(按功能分块),再是外围的小元件。
机械结构方面的要求:外部接插件、显示器件等的安放位簧应整齐,特别是板上各种不同的接插件需从机箱后部直接伸出时,更应从三维角度考虑器件的安放位罱。板内部接插件放置上应考虑总装时机箱内线束的美观。需浸焊板子的较重元器件应尽量分散放置以防止浸焊时板子变形。
散热方面的要求:板上有发热较多的器件时应考虑加散热器甚至轴流风机(风机向内吹时散热效果好但板子很会脏,所以一般还是向外排风较为多见),并与周围电解电容、晶振、锗管等怕热元件隔开一定的距离,竖放的板子应把发热
第28 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? 元件放置在板的最上面,双面放器件时底层不得放发热元件。(www.61k.com)
电磁干扰方面的要求:随着电路设计的频率越来越高,EMl对线路板的影响越来越显得突出。在画原理图时就可以先加上功能电路块电源滤波用磁环、旁路电容等器件,每个集成电路的电源脚就近都应有一个旁路电容连到地,100个脚以上的IC甚至用好几个,电路的工作频率在10MHz以下时一般使用1040.1F的电容,lOMltz以上一般用103的电容。器件应尽量按功能分块放置, 一块放好后可用Too]s—Convert~Create Union From Se]ected Components建立联合。在不太可能对多个功能块之间保证足够的电磁隔离度情况下,必须考虑用金属屏蔽罩将能量屏蔽在一定的区域内。
其它方面的要求:对于同一个器件用多种封装形式的,可以把这个器件的封装改为第二种封装形式并放好后对这个器件用撤消元件组功能,然后再调入一次网络表并放好新调入的这个器件,有更多种封装形式时依此类推。
第29 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? 4 USB数据采集卡软件设计
采集模块软件设计包括三部分,一是单片机程序(又称固件),二是设备驱动程序,三是应用程序。(www.61k.com]单片机程序是下载到控制器中的固件代码,它响应各种来自系统的USB标准请求,完成连接设备和主机的任务。设备驱动程序是用以完成系统与它了解使硬件工作的所有细节,负责初始化I/O操作并处理i/o 操作完成时所带来的中断事件,为用户提供一种设备适合的控制方式。主机应用软件通过客户驱动程序与系统USBI(USB Device Interface)进行通信,其主要任务是将采集进来的数据流,根据所需处理功能的要求来完成各种基于 Windows程序的处理。具体程序见附录。
图4.1 软件设计框图
第30 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
4.1 固件程序
4.1.1 固件程序介绍
固件程序是指运行在设备CPU中的固化程序,它采用模块化程序设计,主要模块包括:数据采集模块、数据处理、监控模块和数据通信模块。(www.61k.com)模块化设计的优点是可靠性高、可读性好、升级简单。固件程序负责初始化各硬件单元,重新配置设备及A/D采样控制等。固件代码的存储方式是固件代码固化到一片 EEPROM中,外设加电后由FX2通过12c总线下载到片内RAM后自动执行。
流程图
流程图提供VI的图形化源程序。在流程图中对VI编程,以控制和操纵定义在前面板上的输入和输出功能。流程图中包括前面板上的控件的连线端子,还有一些前面板上没有,但编程必须有的东西,例如函数、结构和连线等。
图4.2 基于LABVIEW软件的USB设计流程图
第31 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
0 1 1 0 1 0 1 0 0 0 1 0 0 1 1 0
图4.3 数据编码图
4.1.2 固件程序代码框图
图4.4 固件程序代码框图
第32 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
4.2 设备请求处理
设备请求处理子函数用来处理各种USB标准请求和自定义请求。(www.61k.com]标准请求处理了USB通用设备的请求,每个USB设备必须支持。自定义请求则完成了用户自定义的任务。下面是程序框图。
图4.5 设备请求处理框图
第33 页
usb数据采集卡 基于USB数据采集卡软件设计 61阅读请您转载分享:
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
4.3 A/D转换控制子函数
A/D转换控制子函数主要用于完成单次A/D转换,并将转换后的数据通过USB接口返回给主机。[www.61k.com]程序中,首先给MAX197写入命令字节,然后查询MAX197的中断输出,判断是否完成转换。如果完成A/D转换,则读取转换后的结果,并通过EP0BUF来传递给主机。
4.4 USB描述符
USB固件程序除了完成上述的功能外,还需要制定该USB的描述符。要完成系统所使用的各种USB描述符,有设备描述符、端点描述符、字符串描述符、配置描述符。下面是程序框图。
图4.6 USB描述符框图
第34 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
4.5 上位机程序设计
上位机的程序我是采用Visual C++进行USB主程序的设计,并用Labview软件仿真的。[www.61k.com)下面是程序框图。
图4.7 上位机程序设计框图
第35 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? 5 仿真
虚拟一组数据进行仿真,系统基本实现了数据采集的功能。(www.61k.com]下面给出部分采集波形和仿真结果。信号源为标准函数信号发生器,输出波形为标准正弦波。数字I/O通常用来控制过程、产生测试信号、与外设通信等。它的重要参数包括:数字口路数(line)、接收 (发送 )率、驱动能力等。路数要能同控制对象配合,而且需要的电流要小于采集卡所能提供的驱动电流。但加上合适的数字信号调理设备,仍可以用采集卡输出的低电流的TTL电平信号去监控高电压、大电流的工业设备。数字I/O常见的应用是在计算机和外设如打印机、数据记录仪等之间传送数据。另外一些数字口为了同步通信的需要还有“握手”线。路数、数据转换速率、“握手”能力都是应理解的重要参数,应依据具体的应用场合而选择有合适参数的数字I/O。USB通过Labview软件进行数据仿真测量和的如图5.1所示。
图5.1 后面板的仿真模型
通过设计的仿真模块,输入数据1.23以及字符串abc最后都能得到相应的结果。如图5.2所示。
第36 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
图5.2 数据采集测量
第37 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
结 论
根据既定的数据采集系统设计的基本要求,我按照步骤一步一步设计了数据采集模块卡。[www.61k.com)该数据采集模块是运用USB技术,我在了解USB以及USB总线的基础知识之后,查阅相关资料,运用自己所学的知识,在老师的指导下,对USB数据采集卡进行了设计。本文涉及到PCB板的设计、Labview等仿真软件的操作,使我对Protel DXP和Labview软件有了一定的了解,熟悉了它们的基本功能和操作。这样有利用以后的学习。
综上所述,本文设计的基于USB的数据采集卡在对虚拟数据通过Labview仿真软件下进行仿真,仿真结果对数据的采集基本达到预期的要求。
第38 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
致 谢
本文是在指导老师XXX博士的悉心指导下完成的。[www.61k.com]老师严谨求实的治学态度、诲人不倦的敬业精神、正直坦荡的为人风范使我受益非浅。谨此向老师致以崇高的敬意和衷心的感谢!
在此,我要感谢XXX老师,XX老师,XXX老师,XXX老师,XXX老师,XXX老师以及所有关心、支持和帮助我的院领导、老师和同学!感谢你们给我的学习和生活上带来的帮助和宝贵的经验!
在课题选题和研究过程中,还得到了学院各位领导的重视和支持、同学以及学校各位教授的热情指导和帮助。几位老师渊博的学识和广阔的胸怀令我终身难忘,特此表示诚挚的感谢和深深的敬意!
第39 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
参 考 文 献
(1)张迎新等著。(www.61k.com)单片微型计算机原理应用及接口技术。国防工业出版社。2004年(第二版)。
(2)王换招等著。PC系列微机总线。西按交通大学出版社。1995年(第一版)
(3)李贵山、戚德虎著。PCI局部总线开发指南.西安电子科技大学出版社。1997年(第一版)
(4)DonAderson著。FireWire系统体系(第二版)。姜汉龙等译。中国电力出版社
(5)张迎新等著。单片机初级教程。北京航空航天大学出版社,2000年。
(6)张念淮等著。USB总线接口开发指南。国防工业出版社,2001年(第1版)
(7)DonAderson著。USB系统体系。姜汉龙等译。中国电力出版社。2001年
(8)萧世文等著。USB1.1 硬件设计。北京:清华大学出版社,2002年
(9)李朝青等著。PC机及单片机原理数据通信技术。北京般空般天大学出版社
(10)李勋等著。单片机实用教程。北京航空航天大学出版社,2000年
(11)何立民著。单片机高级教程。北京航空航天大学出版社,2000年
61阅读请您转载分享:
(12)徐济仁等著。USB通用串行总线的原理及其应用。电视工程。2003年2月
(13)徐利军、黄云志等。定点DSP的原理开发与应用。清华大学出版社2002年
(14)张雄伟、曹铁勇等著。DSP芯片的原理与开发应用(第2版)。北京电子工业出版社,2000年
(15)周涛、张辉 采用PDIUSBD12的USB系统固件程序设计 电子技术应用 02.11
(16)桑波、赵宏 基于USB的LDT实时数据采集系统的设计 工业仪表与自动化 2003.3
(17)郭继燕、王遵立 USB现状及其未来计算机技术与应用 2003.1
第40 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
附 录
固件程序代码
(1)USB固件主函数代码
void main(void)
{
DWORD i;
WORD offset;
DWORD DevDescrLen;
DWORD j=0;
WORD IntDescrAddr;
WORD ExtDescrAddr;
// 初始化
Sleep = FALSE; //
Rwuen = FALSE; //
Selfpwr = FALSE; //
GotSUD = FALSE;
// 初始化用户设备
TD_Init();
//定向USB描述符
USB_Descriptor();
USB_Interrupt();
USB_ReConnect();
//任务县城线程
while(TRUE) //禁止休眠模式 禁止远程唤醒 禁止自供电 //中断 主循环
第41 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
{
//列举用户设备
TD_Poll();
if(GotSUD)
{
SetupCommand();
GotSUD = FALSE; // 清SETUP标记
}
//检查并处理
if (Sleep)
{
if(TD_Suspend())
{
Sleep = FALSE; //清Sleep标记
do
{
EZUSB_Susp(); //空闲状态处理
}
while(!Rwuen && EZUSB_EXTWAKEUP());
EZUSB_Resume();
TD_Resume();
}
}
}
}
(2)初始化
void TD_Init(void) // 初始化程序段
{
第42 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
CKCON = (CKCON&(~bmSTRETCH)) | FW_STRETCH_VALUE;
//清Sleep标记
Sleep = FALSE;
}
设备请求处理
void SetupCommand(void)
{
void *dscr_ptr;
switch(SETUPDAT[1])
{
case SC_GET_DESCRIPTOR: //获得描述符
if(DR_GetDescriptor())
switch(SETUPDAT[3])
{
case GD_DEVICE: //设备
SUDPTRH = MSB(pDeviceDscr);
SUDPTRL = LSB(pDeviceDscr);
break;
case GD_DEVICE_QUALIFIER: //设备限定
if (HighSpeedCapable()) { SUDPTRH = MSB(pDeviceQualDscr); SUDPTRL = LSB(pDeviceQualDscr); } else { EZUSB_STALL_EP0();
第43 页 }
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
break;
case GD_CONFIGURATION: // 配置
SUDPTRH = MSB(pConfigDscr);
SUDPTRL = LSB(pConfigDscr);
break;
case GD_OTHER_SPEED_CONFIGURATION: // 其它速率配置 SUDPTRH = MSB(pOtherConfigDscr);
SUDPTRL = LSB(pOtherConfigDscr);
break;
case GD_STRING: // 字符串
if(dscr_ptr=(void*)EZUSB_GetStringDscr(SETUPDAT[2]))
{
SUDPTRH = MSB(dscr_ptr);
SUDPTRL = LSB(dscr_ptr);
}
else
EZUSB_STALL_EP0(); // 中止端点0
break;
default: // 无效请求
EZUSB_STALL_EP0(); // 中止端点0
}
break;
case SC_GET_INTERFACE: // 获得接口
DR_GetInterface();
break;
case SC_SET_INTERFACE: // 设置接口
DR_SetInterface();
break;
case SC_SET_CONFIGURATION: //设置配置
第44 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
DR_SetConfiguration();
{
*(BYTE xdata *) epcs(SETUPDAT[4]) &= ~bmEPSTALL; EZUSB_RESET_DATA_TOGGLE( SETUPDAT[4] );
}
else
EZUSB_STALL_EP0();
break;
}
break;
case SC_SET_FEATURE: // 设置特性
if(DR_SetFeature())
switch(SETUPDAT[0])
{
case FT_DEVICE:
if(SETUPDAT[2] == 1)
A/D转换控制子函数
BOOL DR_SingleAD(void) //单次A/D转换
{
OEB=0xFF; WR=0; IOB=0x40; WR=1; OEB=0x00; //PB 定义为输入端口 //查询MAX197的中断输出,判断是否完成转换 //写入命令字节 //PB 定义为输出端口 while (ADINT!=0) { } CHDataL = IOB; HBEN = 0; //首先置HBEN=0,即先读低位 //读取A/D转换结果的低位
第45 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
HBEN = 1; //设置HBEN=1,再读高位 //读取A/D转换结果的高位 CHDataH = IOB;
61阅读请您转载分享:
HBEN = 0; //重置HBEN=0
EP0BUF[0]=0xA1;
EP0BUF[1]=CHDataL;
EP0BUF[2]=CHDataH;
EP0BCH=0;
EP0BCL=3;
EP0CS |= bmHSNAK;
return(TRUE);
}
USB描述符
DSCR_DEVICE equ 1 ;描述符类型:设备描述符
DSCR_CONFIG equ 2 ;描述符类型:配置描述符
DSCR_STRING equ 3 ;描述符类型:字符串
DSCR_INTRFC equ 4 ;描述符类型:接口
DSCR_ENDPNT equ 5 ;描述符类型:端点
DSCR_DEVQUAL equ 6 ;描述符类型:设备限定
DSCR_DEVICE_LEN equ 18
DSCR_CONFIG_LEN equ 9
DSCR_INTRFC_LEN equ 9
DSCR_ENDPNT_LEN equ 7
DSCR_DEVQUAL_LEN equ 10
ET_CONTROL equ 0 ;端点类型:控制
ET_ISO equ 1 ;端点类型:同步
ET_BULK equ 2 ;端点类型:块
0018 00 53 db 00H ;
0019 40 54 db 64 ;
001A 01 55 db 1 ;
001B 00 56 db 0 ;
第46 页 设备协议子类 最大示莅? 配置 保留
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? 001C 58 HighSpeedConfigDscr:
001C 09 59 db DSCR_CONFIG_LEN ;描述符长度 001D 02 60 db DSCR_CONFIG ;描述符类型 001E 2E 61 db (HighSpeedConfigDscrEnd-HighSpeedConfigDscr) mod 256 ;长度(LSB)
001F 00 62 db (HighSpeedConfigDscrEnd-HighSpeedConfigDscr) / 256 ;长度(MSB)
0020 01 63 db 1 ;接口
0021 01 64 db 1 ;配置
0022 00 65 db 0 ;配置字符串
0023 80 66 db 10000000b ;特性
0024 64 67 db 100 ;功率需求
68
69 ;接口描述符
0025 09 70 db DSCR_INTRFC_LEN ;描述符
004D 00 123 db (FullSpeedConfigDscrEnd-FullSpeedConfigDscr) / 256 ;长度(MSB)
004E 01 124 db 1 ;接口?
004F 01 125 db 1 ;配置?
0050 00 126 db 0 ;配置字符串
0051 80 127 db 10000000b ;特性(b7 - buspwr, 0082 7000 193 db 'p',00
0084 7200 194 db 'r',00
0086 6500 195 db 'e',00
0088 7300 196 db 's',00
008A 7300 197 db 's',00
008C 198 StringDscr1End:
199
008C 200 StringDscr2:
008C 0E 201 db StringDscr2End-StringDscr2 ;字符串描述符长度
第47 页
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? 008D 03 202 db DSCR_STRING
008E 4500 203 db 'E',00
0090 5A00 204 db 'Z',00
0092 2D00 205 db '-',00
0094 5500 206 db 'U',00
0096 5300 207 db 'S',00
0098 4200 208 db 'B',00
009A 209 StringDscr2End:
210
009A 211 UserDscr:
009A 0000 212 dw 0000H
213 end
上位机程序设计
BOOL CUSBADDlg::OnInitDialog()
{
}
// If you add a minimize button to your dialog, you will need the code below
// to draw the icon. For MFC applications using the document/view model,
// this is automatically done for you by the framework.
void CUSBADDlg::OnPaint()
第48 页 CDialog::OnInitDialog(); // Add "About..." menu item to system menu. // IDM_ABOUTBOX must be in the system command range. } else { } CDialog::OnSysCommand(nID, lParam);
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计? {
}
// The system calls this to obtain the cursor to display while the user drags
// the minimized window.
HCURSOR CUSBADDlg::OnQueryDragIcon()
{
}
void CUSBADDlg::OnUSBTest()
{
// TODO: Add your control notification handler code here
第49 页 if (IsIconic()) { } else { } CDialog::OnPaint(); CPaintDC dc(this); // device context for painting SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); // Center icon in client rectangle int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; // Draw the icon dc.DrawIcon(x, y, m_hIcon); return (HCURSOR) m_hIcon;
61阅读请您转载分享:
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
} if(USBDevice->IsOpen()) SetDlgItemText(IDC_STATIC,"USB设备已经连接!"); else SetDlgItemText(IDC_STATIC,"未连接USB设备!"); int vID,pID; SetDlgItemText(IDC_EDIT4,str);
void CUSBADDlg::OnLoopAD()
{
}
void CUSBADDlg::OnOK()
{
}
第50 页 // TODO: Add your control notification handler code here if(LoopThread) { } else { } Looping=true; LoopThread=AfxBeginThread(LoopFunction,this); Looping=false; LoopThread=NULL; // TODO: Add extra validation here USBDevice->Close(); CDialog::OnOK();
usb数据采集卡 基于USB数据采集卡软件设计
XXXXXXXXXXX本科毕业论文 基于USB数据采集卡的软硬件设计?
附 图
第51 页
61阅读请您转载分享:
四 : usb数据采集卡价格参考 USB数据采集卡优点
Usb数据采集卡,是实现数据采集功能的计算机扩展卡通过USB接口或者USB总线,然后将传感器和其它待测设备等模拟和数字被测单元中自动采非电量或者电量信号,传输到上位机中进行分析和处理的数据采集卡,属于监控系统的重要硬件。简单的来说,USB数据采集卡就是用来帮我们采集数据的,所以它在我们的生活中是很有用途的。下面我们就一起来了解一下。
“www.61k.com)一、USB数据采集卡优点
1、可以热插拔。这就让用户在使用外接设备时,不需要重复“关机à将并口或串口电缆接上à再开机”这样的动作,而是直接在PC开机时,就可以将USB电缆插上使用。
2、携带方便。USB设备大多以“小、轻、薄”见长,对用户来说,同样20G的硬盘,USB硬盘比IDE硬盘要轻一半的重量,在想要随身携带大量数据时,当然USB硬盘会是首要之选了。
3、标准统一。大家常见的是IDE接口的硬盘,串口的鼠标键盘,并口的打印机扫描仪,可是有了USB之后,这些应用外设统统可以用同样的标准与PC连接,这时就有了USB硬盘、USB鼠标、USB打印机,等等。
4、可以连接多个设备。USB在PC上往往具有多个接口,可以同时连接几个设备,如果接上一个有4个端口的USB HUB时,就可以再连上4个USB设备,以此类推,尽可以连下去,将你家的设备都同时连在一台PC上而不会有任何问题(注:最高可连接至127个设备)。
USB数据采集设备是各种应用的理想之选,从简单的数据记录到嵌入式OEM系统,非常广泛。 因此,USB DAQ设备从低价位、单功能到高速、16位多功能,应有尽有。因为USB接口的广泛普及,您可在台式机或笔记本计算机上自由开发应用程序而不论您最终使用何种平台。
二、USB数据采集卡价格参考
USB数据收集卡价格:200-1000元/个。
数据采集卡是监控系统中重要的组成部件,它是用来专门采集视频和声音之后数据处理的。采集卡的种类有很多,USB接口的数据采集卡就是USB数据采集卡。数据采集卡还有很多的功能,最有用的功能是它可以采集和处理信号。所以它在日常生活中是我们不可缺少的一部分。USB数据采集卡有很多的优势,例如它携带很方便,这也是我们广泛使用USB数据采集卡的原因之一。
本文标题:usb数据采集卡-如何选择USB数据采集卡61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1