“ZoeyZZZ”通过精心收集,向本站投稿了8篇基于TC534的数据采集卡设计,以下是小编帮大家整理后的基于TC534的数据采集卡设计,仅供参考,大家一起来看看吧。
- 目录
篇1:基于TC534的数据采集卡设计
引言
数据采集常用的器件一般有:多路模拟开关,采样和保持电路,A/D转换器,D/A转换器,分频器,计数器/定时器,串行口等,这些器件都具有相对的独立性,它们可以根据不同的使用要求组成不同的采集电路。作为普适性的器件,在结构较简单系统中是实用的,也是比较经济的。但随着更高要求的数据采集系统,尤其是智能化装置中的数据采集系统的发展,如果继续采用一般的器件,就可能会造成整个系统无论是硬件电路,还是控制软件,都较庞大,复杂,而且也可能引起系统可靠性,稳定性,经济性等方面的问题。
TC534是美国加恒公司研制的专配微处理器的可编程精密数据采集系统,可广泛用于智能化测量系统及工业过程控制等领域。
* TC534的性能特点
1.TC534是集成了多路转换器,精密A/D转换器,状态逻辑控制器,振荡分频器,串行口等部分的大规模集成电路形式的单片数据采集系统,具有很高的性价比。TC534为4通道输入芯片,能采集4路差动输入的模拟信号,信号幅度最大为±4.2V。
2.集成的精密双积分式A/D转换器(其超量程位可达17位),其自动调零误差,非线性误差和翻转误差分别为0.005%FS,0.015%FS,0.03%FS(FS代表满量程值),可完成高准确度的A/D转换。
3.具有数据输入,数据输出,数据时钟等3线的串行口和读写控制端,很容易实现与微机的连接。串行口中还包括输入/输出移位寄存器,CPU可通过相应的串行口进行编程,并可设定自动调零,正向积分的时间及转换速率,以适应不同使用场合所需。
4.具有自动转换极性(POL),超量程检测(OVR)功能。利用片内高效DC/DC电源转换器能获得-5V电源,除了提供内部多路转换器使用外,还可输出10mA电流,供外部电路(如运算放大器,模拟开关等)使用。
5.低功耗。采用+5V单电源供电,最大工作电流仅5mA,功耗不超过25mW。
* TC534工作原理
1.管脚功能
TC534采用的.是DIP―40封装方式,其管脚排列如下图。
图
V+,COM管脚分别是A/D转换器和DC/DC负电源变换器的正电源端和模拟地。V-,AGND,OSC管脚依次为DC/DC负电源变换器的-5V输出端,模拟地,外接振荡电容端。AGND可与COM连通。CAP+,CAP-接充电泵电容的正负两极。Vcc和DGND管脚分别为串行口的正电源端和接地端。通常Vcc接V+,DGND接μP的地端。CINT,CAZ,BUF分别接积分电容CINT,自动调零电容CAZ,积分电阻RINT。CREF+,CREF-接基准电容的正负两端。CH1+和CH1-―CH4+和CH4-是通道1―通道4的差动模拟信号正负输入端。A1,A0为多路转换器的通道地址线,其中A0为低位地址线。OSC1,OSC0是外接2MHz石英晶体端。DIN是串行输入端,由μP设定的自动调零及正向积分时间由该端输入,并且设定值首先进入输入移位寄存器的最低有效位。上电后经过初始化,即可随时重新输入或修改设定值。DOUT为串行数据输出端,仅当R/ =1时输出有效。DCLK为串行时钟端,串行时钟最高频率为3MHz。当R/ =1(高电平)时,在每个时钟的下降沿时刻,A/D转换数据就从DOUT端输出,并将下一位数据移至此端;当R/=0时,对应于每个时钟的上升沿,设定值经端写入TC534中。读写控制端R/=1时进行读操作,反之为写操作。为A/D转换结束标志,每次A/D转换结束之后,该端输出一个负脉冲,可向μP申请中断,实现读操作。R为复位端,上电时应使R=1,A/D转换器进入自动调零阶段;R=0时允许A/D转换。利用上电复位电路(或μP)发出复位信号。在改变多路转换器地址线时,μP也应产生复位信号,使A/D转换暂停。此外,在发出加信号时必须令R=1,以免出现错误信息。
2.工作原理
TC534的原理框图如图。
TC534原理图
从图中可以看到,TC534主要包括5部分:
1)多路转换器。由多路模拟开关构成。改变地址码A1,A0,就可选择不同的通道。使用中常采用差动输入的形式,如需改成单端输入时,应将CH1-―CH4-端接到COM端。
2)双积分A/D转换器。TC534采用的是双积分A/D转换器,内含缓冲器,积分器和比较器。每个转换周期分4个阶段进行,即自动调零(AZ),正向积分(INT),反向积分(DE),积分器调零(IZ)。
3)状态逻辑控制器及振荡分频器。此部分能够根据比较器输出的电压大小及其极性,适时地发出控制信号A,B,以保证A/D转换按规矩顺序与编程要
求来进行。控制器里还有定时器(可预置时基计数器),用来接收串行口送来的设定值。振荡器外接来自2MHz石英晶体的时钟频率,再通过4分频作为内部的时基,对A/D转换进行定时。
4)串行口。串行口中包括串行输入和串行输出移位寄存器。
5)DC/DC负电源变换器。为将正压直流输入变为负压直流输出的部分,利用振荡器,模拟开关和泵电容来实现电压极性转换。
* TC534精密数据采集系统
TC534芯片与微处理器连接构成基本的数据采集与控制系统的原理如图所示。
TC534的典型应用
如图所示,作为中断信号接到微处理器的端,再将串行口的R/,DOUT,DIN和DCLK端分别接到微处理器的I/O1―I/O4端。刚上电时,由于C1两端的压降不可能发生突变,使得R端产生一个正向脉冲,将TC534复位(若C1=0.01μF,能产生脉冲宽度为100ms的复位信号)。2MHz石英晶体JT接在OSC1,OSC0之间。C2,C3是-5V电源发生器的充电泵电容。基准电压是由TC04提供的1.25V的基准电压源,经多圈电位器RP分压后得到。R为限流电阻。
积分器最大输出电流为20μA,所以积分电阻RINT的值为:
RINT=VM/IINT=VM/(20×10-6) ........................(1)
为了保证积分器工作的稳定性,应选RINT≥50kΩ。当满量程电压为2V时,RINT=100 kΩ。积分器的最大输出电压摆幅为V+≈0.9V,积分电容可由下式确定:
CINT=(20×10-6TINT)/(V+-0.9) ...........................(2)
以TINT=60ms,V+=5V代入(2)中,可得:CINT=0.29μF
实际使用时可采用0.33μF的聚丙烯电容。
CREF和CAZ的容量相等,并与A/D转换的速率是相关的,CREF值越小,则转换速率就越高,它们之间的关系可参考如下:
A/D转换速率(MR/(次/s)): >7 2~7 <2
CREF和CAZ的容量(μF): 0.1 0.22 0.47
篇2:基于TLC5540的高速数据采集卡设计
基于TLC5540的高速数据采集卡设计
摘要:介绍TLC5540芯片的引脚排列及特点,提出一种利用TLC5540设计高速数据采集卡的方法。采样时序和存储时序的巧妙控制是本文的重点。采集卡的采样速率和存储速率可以达到40MHz。关键词:TLC5540高速数据采集时序控制
在高速数据采集卡中,核心部分是高速模数转换器。随着制造ADC的技术不断技术,美国的TI公司和ADI公司都开发出采样速度在100Msps,但价位低廉的器件。本设计采用TI公司的TLC5540,其特点是:
*8位分辨率;
*最高转换速率达40Msps;
*内部采样和保持功能;
*模拟输入带宽≥75MHz(典型值);
*内部基准电压产生器。
它的引脚排列和功能如图1所示。
其中OE端是输出允许端。当OE为低电平时,允许数据输出;反之,D1~D8为高阻状态。ANALOGIN为模拟输入端,CLK为时钟输入端,其它一些引脚为一些地线、电源线、基准电压的输入调节端等。整个芯片的控制非常方便。
在数据采集中卡中,它的采样频率不仅仅取决于ADC的转换速率。在计算机数据采集系统中,采样频率可表示如下:
fs=1/(tCONV+tACQ+tAID)
式中,tCONV是A/D转换的时间,tACQ是采样保持时间,tAID是数据传输与处理等辅助操作时间。可见,所谓高速,除了要求提高A/D转换的'速度外,更重要的是设法减少tAID的时间。
设计中,在扩展板上增加1个或多个微控制器,作为前端从机,主要负责采样过程控制和数据存储时序的控制。微控制器与主机之间必须有专用的联络通道,以便主机能对从机实行控制及主从机之间的状态信息交换。这样,在高速采样的过程中,CPU不需要参与,采样数据存储完全由外部电路自动进行。在采样期间,CPU可以做自己的数据处理和其它工作。采样结束后,再由CPU读出数据进行存储和处理。完成后,又继续采样。数据采样与处理是交替进行的,即所谓的“间隙式采样方式”。当然,这是针对高速数据采样时采用的方法。在慢速采样时,可以完全由主机自行采样,实现边采样、边读数、边处理的真正同步方式。
整个硬件电路的设计原理如图2所示。
在本设计中采用AT89C51作为高速数据采集卡的控制核心。它的主要功能是:
①使用P1口与主机通信,接收PC机的命令及数据并纠错、解释、存储、执行;
②送出MCU当前状态信息,以便主机查询;
③根据机的命令设置控制端口的I/O状态,昭选择采样速率、是否允许读写RAM等。
前面已经提到,在整个采样过程中,MCU负责全面的控制工作,主机与采样电路之间不需要任何的线路。主机只要把所要完成的任务编成规格化的指令,在每一次采样开始前全部发给从机。但它的数据只能送出,而不可以直接发送数据给主机的端口。从机的地位是被动的,送出的数据是否被接受由主机决定。
在本电路中,时序控制是非常重要的,尤其是ADC的采样时序和存储器的读取时序的配合很重要。TLC5540的时序控制比较方便,输出使能端OE一直置低,通过控制时钟输入端CLK来控制采样速率和存储速率。从图2可以看出,在扩展了1个存储器的同时扩展了1个地址发生器。地址发生器是由计数器组成的。也就是说,计数器计1个数,它的地址就改变一下。在本电路中,把外部输入的时钟作为TLC5540的CLK端和计数器的时钟端。
具体示意图如图3所示。
通过这样的电路,ADC的采样时序和存储器的存储时序就可以很好的配合,保证采样1个数据存储1个数据,不会发生丢失的情况。
以上所述,是采集卡需要采集高速数据时采用的控制方法。在设
计中,为了提高卡的适用面,还特别设计了对于采集慢速数据的方法。
篇3:基于TLC5540的高速数据采集卡设计
基于TLC5540的高速数据采集卡设计
摘要:介绍TLC5540芯片的引脚排列及特点,提出一种利用TLC5540设计高速数据采集卡的方法。采样时序和存储时序的巧妙控制是本文的重点。采集卡的采样速率和存储速率可以达到40MHz。关键词:TLC5540 高速数据采集 时序 控制
在高速数据采集卡中,核心部分是高速模数转换器。随着制造ADC的技术不断技术,美国的TI公司和ADI公司都开发出采样速度在100Msps,但价位低廉的器件。本设计采用TI公司的TLC5540,其特点是:
*8位分辨率;
*最高转换速率达40Msps;
*内部采样和保持功能;
*模拟输入带宽≥75MHz(典型值);
*内部基准电压产生器。
它的引脚排列和功能如图1所示。
其中OE端是输出允许端。当OE为低电平时,允许数据输出;反之,D1~D8为高阻状态。ANALOG IN为模拟输入端,CLK为时钟输入端,其它一些引脚为一些地线、电源线、基准电压的输入调节端等。整个芯片的控制非常方便。
在数据采集中卡中,它的采样频率不仅仅取决于ADC的转换速率。在计算机数据采集系统中,采样频率可表示如下:
fs=1/(tCONV+tACQ+tAID)
式中,tCONV是A/D转换的时间,tACQ是采样保持时间,tAID是数据传输与处理等辅助操作时间。可见,所谓高速,除了要求提高A/D转换的速度外,更重要的是设法减少tAID的时间。
设计中,在扩展板上增加1个或多个微控制器,作为前端从机,主要负责采样过程控制和数据存储时序的控制。微控制器与主机之间必须有专用的联络通道,以便主机能对从机实行控制及主从机之间的状态信息交换。这样,在高速采样的过程中,CPU不需要参与,采样数据存储完全由外部电路自动进行。在采样期间,CPU可以做自己的数据处理和其它工作。采样结束后,再由CPU读出数据进行存储和处理。完成后,又继续采样。数据采样与处理是交替进行的,即所谓的“间隙式采样方式”。当然,这是针对高速数据采样时采用的方法。在慢速采样时,可以完全由主机自行采样,实现边采样、边读数、边处理的真正同步方式。
整个硬件电路的设计原理如图2所示。
在本设计中采用AT89C51作为高速数据采集卡的控制核心。它的主要功能是:
①使用P1口与主机通信,接收PC机的命令及数据并纠错、解释、存储、执行;
②送出MCU当前状态信息,以便主机查询;
[1] [2]
篇4:具有USB2.0接口的高速数据采集卡设计
具有USB2.0接口的高速数据采集卡设计
摘要:讨论基于USB接口的高速数据采集卡的设计与实现。详细讲述数据采集卡的硬件部分设计,并简要介绍固件程序、驱动程序和应用软件的设计。关键词:USB2.0FPFOFPGA固件程序主从系统
引言
数据采集在现代工业生产及科学研究中的重要地位日益突出,并且实时高速数据采集的要求也不断提高。在信号测量、图像处理、音频信号处理等一些高速、高精度的测量中,都需要进行高速数据采集。现在通用的高速数据采集卡一般多是PCI卡或ISA卡,这些采集卡存在很多缺点,比如安装麻烦,价格昂贵,尤其是受计算机插槽数量、地址、中断资源的限制,可扩展性差。
通用串行总线USB是用来连接外围设备与计算机之间的新式标准接口总线。它是一种快速、双向、同步传输、廉价的并可以实现热拔插的串行接口。USB技术是为实现计算机和通信集成而提出的一种用于扩充PC体系结构的工业标准。基于USB接口的高速数据采集卡,充分利用了USB总线的优点,它也必将被越来越多的用户所接受。
1USB数据采集卡原理
1.1USB简介
USB是英文UniversalSerialBus的缩写,中文含义是“通用串行总线”。它支持在主机与各式各样即插即用的外设之间进行数据传输。它由主机预定传输数据的标准协议,在总线上的各种设备分享USB总线带宽。当总线上的外设和主机在运行时,允许自由添加、设置、使用以及拆除一个或多个外设。USB总线技术的提出就是想利用单一的总线技术,来满足多种应用领域的需要。USB1.1协议支持两种传输速度,即低速1.5Mbps和高速12Mbps。为了在高速接口之争中占有一席之地,发布了USB2.0协议,它向下兼容USB1.1协议,数据的最高传输速率提高到480Mbps,这就使USB对打印机和其它需要快速传递大容量数据的外设更具吸引力。
为了满足实际数据采集USB传输速度较高的需要,选择了Cypress公司的内置USB接口微控制器芯片EZUSBFX2系列,开发了具有USB接口的高速数据采集卡。
1.2系统框图
USB系统是一个主从系统,而非对等(peer-to-peer)系统。在主从系统中,命令是由主设备发出,而从设备只能接收命令,只有在主设备读取数据时,从设备才能提交数据。如图1所示,在USB控制器与外围电路之间需要一个FIFO,来充当数据的缓存区。那么,在USB从设备向主设备发送数据时存在一个问题:FIFO多大才能满足要求。为了满足数据采集中高速实时流数据垢应用,避免FIFO溢出,在我们的系统中,通过FPGA及SDRAM构造一个容量的FIFO(图1虚线框内所示),可以提供一个低成本并能满足高速实时流数据传输的解决方案。
图2
2USB数据采集卡硬件
2.1EZ-USBFX2(CY7C68013)芯片
Cypress公司的EZ-USBFX2系列芯片是最早符合USB2.0协议的微控制器之一,它集成了符合USB2.0协议的收发器(transceiver),串行接口引擎(SIE),增强型的8051内核以及可编程的外围接口。FX2系列芯片独特的结构使得数据传输速度最高可达56Mbps,最大限度地满足了USB2.0的带宽。
EZ-USBFX2的微处理器是一个增强型的8051内核,性能可达标准8051的5~10倍,并与标准8051的指令完全兼容。增强型的8051内核使用RAM世馘作程序指令和数据存储器,从而使得EZ-USBFX2具有“软”特性,也就是说,可以通过自行编写程序指令来实现所需的功能。EZ-USBFZ2使用增强型SIE/USB接口(称为USB核),通过执行USB部本身的协议来简化8051代码编写的工作。这样采用硬件完成USB塄,简化了固件代码的编制。对于固件代码的使用,主机通过软件下载的方法实现。这种方法充分利用FZ2内部的8KBRAM来装载8051代码和数据。由于EZ-USBFZ2具有重新枚举的能力,所以在初始化枚举时,用户并不需要断天设备就可以装载新的描述符。设备描述符和8051程序代码都能通过主机中的磁盘文件下载,只有制造商号、产品号和设备号从启动时从一个16字节的EEPROM下载到硬件中的。通过这种方式,可以比较容易地从主机升级软件和修改USB总线设备的固件代码。
EZ-USBFX2的通用可编程接口GPIF以及Master/Slave端点FIFO所对应的8/16位数据总线,可以很容易地实现FX2与当前一些主流通过接口(如ATA、UTOPIA、EPP、PCMCIA和大部分DSP处理器)的互连。它共有7个端点,端点0,端点1和IN和OUT,还有端点2、4、6和8。其中,前3个端点的大小是固定的64字节,后4个端点默认大小是2级512字节的FIFO,端点2和端点4默认是OUT端点,端点6和端点8默认是IN端点,而端点2和6分别可以定义为2级、3级或4级的存储器,每级的大小也可以是512字节或1024字节。从EZ-USBFX2方向来看,一个端点相当于通过总线收发数据的缓冲区,EZ-USBFX2从OUT缓冲区中读取端点数据,将通过USB传的端点数据写入IN缓冲区。它求全责备速(12Mbps)和
高速(480Mbps)传输速率,并具有USB协议所规定的4种传输方式,即控制方式(controlmode)、中断传输方式(interruptmode)、批量传输方式(bulkmode)和等时传输方式(isochronousmode)。
EZ-USBFX2系列是基于RAM的“软”结构,在开发过程中允许无限制设置和升级;它支持全速USB总线吞吐量的传输,使用EZ-USBFX2进行设计,可以不受端点数、缓冲区大小和传输速度的限制;此外,其内核中做了大量的辅助指令,简化了编码,同时也加快了对USB特性的了解。基于以上EZ-USBFX2系列芯片的特性,在开发的过程中,采用了EZ-USBFX2系列中的CY7C68013芯片(128引脚),其简化结构如图2所示。
FX2可配置成三种不同的接口模式Ports、GPIFMaster和SlaveFIFO,本项目采用SlaveFIFO模式。在该模式下,外部逻辑或外部处理器直接连接到FX2的端点FIFO,GPIF没有被激活,因为外部逻辑可以直接控制FIFO,所以FIFO的基本控制信号(标志、片选、使能)由FX2的引脚引出。外部控制可以是同步或异步,可以使用内部时钟,也可以向FX2的接口提供外部时钟。
2.2FPGA芯片EP1C6-Q240
在本设计中,所用的FPGA采用Altera公司最新的CYCLONE芯片EP1C6-Q240。它是一款高速价比的FPCA芯片,工作电压为1.5V,采用0.13μm工艺技术,全铜SRAM工艺,其存储器密度可达5980个逻辑单元,包含20个128×36位的RAM块,总的RAM空间达到92160位,内嵌了2个锁相环电路和一个用于连接SDRAM的特定双数据率(deficateddatarate)接口。此外,该芯片还支持多种不同的I/O标准(包括PCI接口,可连接ASSP和ASIC设备的接口以及串行设备接口等)。
这里FPGA的作用除了与SDRAM构成一个大容量的FIFO以外,还需要完成一些控制功能。对于本文的应用,需要完成HDB3码到NRZ码的转换及数据的串并转换等。具体问题要具体分析,用户可根据自己的需求对FPGA进行编程。
2.3A/D转换芯片MAX1180
MAX1180是Maxim公司的双通道105Msps、3.3V工作电压、低功耗的高速A/D芯片,采样数据10位电平量化。它是采用差分输入,带有宽带跟踪/保持(track-and-hold)的双通道9级流水线型结构的ADCs,如图3所示。实际的芯片包括两个图示的电路,作为输入的两路通道,互不干扰。各路采样信号每半个时钟周期通过一个STAGE,完成连续转换到数据输出共需5个时钟周期。每个流水线首先通过一个1.5位的快闪ADC对输入电码量化,然后再由DAC产生一个对应于量化结果的电压并与输入电压作差,输出电压放大2倍后送到下一级流水线处理。A/D-D/A两次变化以及差分处理的目的在于进行差错校正,以保证在流水线上的各个阶段,ADC的偏移量得到补偿并且无代码丢失。
2.4硬件连接
根据系统对数据传输的速度和实时性的要求,配置CY7C68013工作的接口模式为SlaveFIFO模式。当进行数据采集时,硬件连接方式如图4所示。
A/D转换器的采样时钟同时作为CY7C68013的SlaveFIFO模式的读写控制时钟,即CY7C68013的接口时钟连接到IFCLK引脚。SCWR/SLRD是CY7C68013SlaveFIFO的写使能/读允许信号。FPGA向C7C68013SlaveFIFO提供SlaveFIFO输出允许信号SLOE,仅在数据输出时有效。FD[15:0]为16位双向数据总线。FIFOADR1:0》为端点FIFO选择信号。在数据输入时固定为00,选择的是端点2;在数据输出时固定为10,选择的`是端点6。
3USB数据采集卡软件
软件设计是一个USB设备开发的必备环节。USB应用系统软件设计分为三部分:初始化软件、主机操作系统上的客户驱动程序以及主机应用程序。初始化软件是下载到控制器中的固件代码,它响应各种来自系统的USB标准请求(包括USB设备的枚举、驱动程序的选择加载等),完成连接设备和主机的任务。主机应用软件通过客户驱动程序与系统USBI(USBDeviceInterface)进行通信,其主要任务是将采集进来的数据流,根据所需处理功能的要求来完成各种基于Windows程序的处理。
3.1EZ-USBFX2的初始化
通过固件程序的调度,主机才能得到设备的描述符以及完成端点数据的传输。对于固件程序的编程,其基本结构如下:
①初始化,包括处理器和外围电路的初始化;
②主函数,包括完成符合设备特定要求的代码;
③中断处理,包括处理各种中断的程序代码。
总
的来说,固件程序的编写有两种方式。其一,对于熟悉8051汇编语言的用户来说,可以直接利用汇编语言编写结构紧凑、高效率的固件代码;其二,EZ-USB以利用现成的固件程序框架函数,根据设备的需求添加相庆的用户,来完成特定的目的。
为了加快USB接口的开发过程,利用EZ-USBFX2提供的一些框架函数来简化用户代码,使用相应端口(端口2输入,端口6输出)利用EZ-USBFX2的SlaveFIFO结构采用此处理传输,基本的固件程序框架函数如下:
voidTD_Init(void)//该函数用来完成EZ-USBFX2的初始化
{CPUCS=0x10;//工作频率48MHz
IFCONFIG=0xC3;//决定FX2的工作模式(slaveFIFO)及相关设置
IN07VAL=bmEP2;
OUT07VAL=bmEP6;//使能端点2输入和端点6输出
…
EP2FIFOCFG=0x6D;//AUTOOUT=0,AUTOIN=1,WORDWIDE=1
SYNCODELAY;
EP6FIFOCFG=0x75;//AUTOOUT=1,AUTOIN=0,WORDWIDE=1
SYNCDELAY;//对端点2和端点6的配置,WORDWIDE=1配置的是使用16位数据线。
EP2CFG=0xEA;//端点2:输入、批量传输、最大包字节为1024,双缓冲
SYNCDELAY;
EP6CFG=0xAA;//端点6:输出、批量传输、最大包字节为1024、双缓冲
SYNCDELAY;
}
voidTD_Poll(void)//此函数在设备运行时反复被调用,它包括完成用户任务的函数
{
}
BOOLTD_Suspend(void)//该函数在设备进行挂起状态前调用
{
return(TRUE);
}
BOOLTD_Resume(void)//设备重启后调用
{
return(TRUE);
}
在整个固件程序中,EZ-USBFX2设备上电或复位后,首先对所有的内部状态变量初始化,随后调用TD_Init函数,并开中断,此时固件程序不断检测控制端口0是否收到SETUP包。一旦收到,固件程序就开始调用用户函数TD_Poll(),其中用户需要完成的功能代码就在TD_Poll()函数一。调用完成后,重复检测端口0是否收到SETUP包,若有,继续执行设备请求,调用TD_Poll函数;否则,检测USB核是否有USB挂起事件,若有,调用TD_Suspend()函数,其返为真时,检测USB核是否有重新开始事件,没有时,设备进入挂起状态,反之,调用TD_Resume(),进行下一次循环;当TD_Suspend()函数返回为假时,直接转入下次循环。
此外,固件程序框架中还定义了许多中断处理函数,当用到时可以在相应的九加入自己编写的代码,这样既清晰又便于理解,用户就可以在不用改变整个程序的前提下,仅仅通过改变相应的模块,来实现自己的功能。
3.2主机软件部分
主机软件部分包括USB客户驱动程序主和机应用程序。USB客户驱程序是支持即插即用功能的标准WDM驱动程序,它为实现控制传输、中断传输和批传输提供了标准接口函数。而主机应用程序的作用在于与操作系统相互作用,当操作系统认为有新设备接入时,就会自动调用相应的设备驱支以。加之该软件需要一个图形用户界面来控制所用的函数,这里采用VC++来编制应用程序,利用CreateFile得到USB句柄,用DeviceIoControl来向设备驱动程序发送请求,完成在EZ-USBFX2中的数据批传输的读取与写入。程序实例如下:
HANDLEDeviceHandle;
DeviceHandle=CreateFile(.ezusb0,GENERIC_WRITE,
FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL);
//得到设备ezusb0的句柄
DeviceIoControl(DeviceHandle,
IOCT
L_EZUSB_BULK_WRITE,
LPVOIDlpInBuffer,//;输入数据存储地址指针
Sizeof(BULK_TRANSFER_CONTROL),
LPVOIDlpOutBuffer,//输出数据存储地址指针
DWORDnOutBufferSize,//输出缓存大小
LPDWORDlpBytesReturned,//接收输出数据字节计数器变量的指针
NULL);
//写数据到EZ-USBFX2设备
DeviceIoControl(DeviceHandle,IOCTL_EZUSB_BULK_READ,
LPVOIDlpInBuffer,//输入数据存储地址地
Sizeof(BULK_TRANSFER_CONTROL),
LPVOIDlpOutBuffer,//输出数据存储地址批晚霞
DWORDnOutBufferSize,//输出缓存大小
LPDWORDlpBytesReturned,//接收输出数据字节计数器变量的指针
NULL);
//从EZ-USBFX2设备中读数据
ColseHandle(DeviceHandle);//关闭USB句柄
结语
本项目的目的是将信号处理电路中输出的信号(I、Q两路),通过模数转换,在满足10Mbps传输速率的基础上,通过USB接口完成数据写入硬盘的工作。事实证明,基于USB2.0接口的高速数据采集卡完全满足设计要求。可以预见,基于USB2.0接口的高速数据采集卡一定会有广阔的应用空间。
篇5:具有USB2.0接口的高速数据采集卡设计
具有USB2.0接口的高速数据采集卡设计
摘要:讨论基于USB接口的高速数据采集卡的设计与实现。详细讲述数据采集卡的硬件部分设计,并简要介绍固件程序、驱动程序和应用软件的设计。关键词:USB2.0 FPFO FPGA 固件程序 主从系统
引言
数据采集在现代工业生产及科学研究中的重要地位日益突出,并且实时高速数据采集的要求也不断提高。在信号测量、图像处理、音频信号处理等一些高速、高精度的测量中,都需要进行高速数据采集。现在通用的高速数据采集卡一般多是PCI卡或ISA卡,这些采集卡存在很多缺点,比如安装麻烦,价格昂贵,尤其是受计算机插槽数量、地址、中断资源的限制,可扩展性差。
通用串行总线USB是用来连接外围设备与计算机之间的新式标准接口总线。它是一种快速、双向、同步传输、廉价的并可以实现热拔插的串行接口。USB技术是为实现计算机和通信集成而提出的一种用于扩充PC体系结构的工业标准。基于USB接口的高速数据采集卡,充分利用了USB总线的优点,它也必将被越来越多的`用户所接受。
1 USB数据采集卡原理
1.1 USB简介
USB是英文Universal Serial Bus的缩写,中文含义是“通用串行总线”。它支持在主机与各式各样即插即用的外设之间进行数据传输。它由主机预定传输数据的标准协议,在总线上的各种设备分享USB总线带宽。当总线上的外设和主机在运行时,允许自由添加、设置、使用以及拆除一个或多个外设。USB总线技术的提出就是想利用单一的总线技术,来满足多种应用领域的需要。USB1.1协议支持两种传输速度,即低速1.5Mbps和高速12Mbps。为了在高速接口之争中占有一席之地,20发布了USB2.0协议,它向下兼容USB1.1协议,数据的最高传输速率提高到480Mbps,这就使USB对打印机和其它需要快速传递大容量数据的外设更具吸引力。
为了满足实际数据采集USB传输速度较高的需要,选择了Cypress公司的内置USB接口微控制器芯片EZUSB FX2系列,开发了具有USB接口的高速数据采集卡。
1.2 系统框图
USB系统是一个主从系统,而非对等(peer-to-peer)系统。在主从系统中,命令是由主设备发出,而从设备只能接收命令,只有在主设备读取数据时,从设备才能提交数据。如图1所示,在USB控制器与外围电路之间需要一个FIFO,来充当数据的缓存区。那么,在USB从设备向主设备发送数据时存在一个问题:FIFO多大才能满足要求。为了满足数据采集中高速实时流数据垢应用,避免FIFO溢出,在我们的系统中,通过FPGA及SDRAM构造一个容量的FIFO(图1虚线框内所示),可以提供一个低成本并能满足高速实时流数据传输的解决方案。
图2
2 USB数据采集卡硬件
2.1 EZ-USB FX2(CY7C680
[1] [2] [3] [4] [5] [6]
篇6:应用于机车模拟器的PCI数据采集卡的设计
应用于机车模拟器的PCI数据采集卡的设计
介绍了一种应用于列车模拟器的基于PCI总线的数字量输入输出卡的`设计方法,提出了硬件设计和WDM驱动程序设计的解决方案,传输速度快、性能高,使用方使,有非常广泛的应用环境,对相关的其他开发具有一定的借鉴价值.
作 者:梁峰 何鸿云 宋红霞 作者单位:西南交通大学仿真工程中心,四川成都,610031 刊 名:科技创新导报 英文刊名:SCIENCE AND TECHNOLOGY INNOVATION HERALD 年,卷(期): “”(14) 分类号:U268 关键词:PCI总线 PLX9052 数字量输入输出 WDM驱动程序篇7:USB接口的高速数据采集卡的设计与实现
摘要:讨论了基于USB接口的高速数据采集卡的实现。该系统采用TI公司的TUSB3210芯片作为USB通信及主控芯片,完全符合USB1.1协议,是一种新型的数据采集卡。
关键词:USB A/D FIFO 固件
现代工业生产和科学研究对数据采集的要求日益提高,在瞬态信号测量、图像处理等一些高速、高精度的测量中,需要进行高速数据采集。现在通用的高速数据采集卡一般多是PCI卡或ISA卡,存在以下缺点:安装麻烦;价格昂贵;受计算机插槽数量、地址、中断资源限制,可扩展性差;在一些电磁干扰性强的测试现场,无法专门对其做电磁屏蔽,导致采集的数据失真。
通用串行总线USB是1995年康柏、微软、IBM、DEC等公司为解决传统总线不足而推广的一种新型的通信标准。该总线接口具有安装方便、高带宽、易于扩展等优点,已逐渐成为现代数据传输的发展趋势。基于USB的高速数据采集卡充分利用USB总线的上述优点,有效解决了传统高速数据采集卡的缺陷。
1 USB数据采集卡原理
1.1 USB简介
通用串行总线适用于净USB外围设备连接到主机上,通过PCI总线与PC内部的系统总线连接,实现数据传送。同时USB又是一种通信协议,支持主系统与其外设之间的数据传送。USB器件支持热插拔,可以即插即用。USB1.1支持两种传输速度,既低速1.5Mbps和高速12Mbps,在USB2.0中其速度提高到480Mbps。USB具有四种传输方式,既控制方式(Control mode)、中断传输方式(Interrupt mode)、批量传输方式(Bulk mode)和等时传输方式(Iochronous mode)。
考虑到USB传输速度较高,如果用只实现USB接口的芯片外加普通控制器(如8051),其处理速度就会很慢而达不到USB传输的要求;如果采用高速微处理器(如DSP),虽然满足了USB传输速率,但成本较高。所以选择了TI公司内置USB接口的微控制器芯片TUSB3210,开发了具有USB接口的高速数据采集卡。
1.2 系统原理图
系统原理图如图1所示。
(本网网收集整理)
整个系统以TUSB3210为核心,负责启动A/D转换,控制FIFO的读写及采样频率的设定,与主机之间的通信及数据传输。
2 USB数据采集卡硬件
2.1 TUSB3210芯片
TUSB3210是TI公司推出的内嵌8052内核并带有USB接口的微控制器芯片。TUSB3210有256字节的内部RAM,8K字节的程序RAM,512字节的USB数据缓冲和端点描述块EDB(Endpoint Descriptor Blocks),4个通用的GPIO端口P0、P1、P2、P3,I2C接口电路,看门狗电路等。
TUSB3210的USB接口符合USB1.1协议,有4个输入端点(Input Endpoint)和4个输出端点(Output End-Point),支持全速和低速传输速率,并具有USB协议所规定的4种传输方式。TUSB3210的USB接口采用串行接口引擎(SIE)编码和解码串行数据,并且进行校验、位填充,执行USB所需要的其他信号。这样采用硬件完成USB协议,简化了固件代码的编制。
TUSB3210采用基于内部RAM的解决方案,允许通过I2C总线从串行EEPROM中读入固件或从主机中下载固件程序。这项功能便于设备的开发与在线升级。
2.2 A/D芯片MAX1449
MAX1449是MAXIM公司生产的10位、105MSPS、单3.3V电源、低功耗的高速A/D芯片。它采用差分输入,带有高宽带采样/保持(T/H)的10阶段流水线(pipeline)型结构的ADC,如图2。采样信号每半个时钟周期通过一个流水线段,完成连续转换到数据输出共需5.5个时钟周期。每个流水线首先通过一个1.5位的闪速ADC对输入电压量化,由DAC产生一个对应于量化结果的电压并与输入电压作差,输出电压放大2倍后送到下一级流水线处理。每级流水线提供1位的分辨率,并进行差错校正,得到良好的线性和低失调。
MAX1449提供一个2.048V的精确带隙基准源,用来设定ADC满量程范围,也可以用外部基准源改变量程范围。MAX1449的最大差分输入电压范围为2V。
2.3 输入信号处理电路
MAX1449芯片的输入信号为差分输入时有最佳的采样效果。在本系统中用TI的HTS4503作为单端输入到差分输出的转换电路。THS4503高性能的全差分运放,带宽可达270MHz,具有非常好的线性,在100MHz下可支持11位的A/D转换要求,适合作为A/D变换的前端接口电路。具体电路见图3所示。
2.4 FIFO和时钟发生电路
高速A/D变换的数据不能直接通过USB送入主机,系统中通过FIFO来缓冲数据。本系统采用TI公司SN74V293芯片。它的容量为65536×18或131072×9,最快读写周期为6ns,可以满足100MHz采样数据的存储。用户可以选择输入、输出宽度,当选择输入、输出宽度为18时,可存储64K×10位的数据。如果选择输入、输出为9位,则可使存储容量扩大到128×9位,这样对精度要求不高的用户可以获得更多数据。
SN74V293有独立的读写时钟控制电路,允许读写操作同时进行。SN74V293内部有满、空、半满输出信号以及可编程设定的几乎满和几乎空输出信号,通过这些信号控制器可以灵活控制FIFO的读写操作。
对于高速数据采集系统,时钟信号很重要。在本系统中选用DALLAS公司的DS1073时钟芯片。DS1073是无需外部元件的频率振荡器。通过DALLAS独有的1-wire技术,可以设定内部的分频器数值,实现输出频率从27.3kHz~100MHz可调,从而方便地改变采样时钟,简化电路设计。MAX1449数据输出时下降沿有效,而FIFO写入时上升沿锁存数据。系统中采用DS90LC028A实现对时钟信号的取反。
2.5 PCB板制作
由于是高速A/D采集,在制作PCB板时有一些需要注意的地方。电路板最好使用多层板,元件尽量选用表面封装器件。这样可以减小元器件之间的距离,减小寄生电感、寄生电容,同时减小电路板的'尺寸。所有的旁路电容都要尽量靠近芯片的电源管脚。模拟公共地和数字公共地要分开,选一点通过低值表贴电阻(1~5Ω)、磁珠或直接连接,以免数字地电流干扰模拟地。电源最好用线性稳压电源,A/D和前端处理电路要用同一电源地输出,减小电源波动对采集的影响。
篇8:USB接口的高速数据采集卡的设计与实现
开发一个USB设备,软件设计是必不可少的。USB应用系统软件设计分为三部分:USB外设端的固件(Firmware)、主机操作系统上的客户驱动程序以及主机应用软件。主机应用软件通过客户驱动程序与系统USBI(USB Device Interface)进行通信,由系统产生USB数据的传送动作;固件则响应各种来自系统的USB标准请求,完成各种数据的交换工作和事件处理。
3.1 USB接口编程
固件程序主要是实现USB通信。TUSB3210采用SIE来管理USB通信。当主机与芯片进行USB通信时,会产生外部中断0,通过中断矢量寄存器判断。Setup_packed_Int、Input_endpoint0_Int、Output_endpoint0_Int这三个中断主要用于与主机建立连接、进行控制传输或中断传输;Input_endpoint1_Int、Output_endpoint1_Int这两个中断主要在批量传输时使用。在固件中分别执行不同的中断程序来实现USB的数据传输。
Void EX0_int(void) interrupt 0 //外部中断0
{
EA=DISABLE; //关中断
switch (bBECINT)(//确定中断ID
case VECINT_OUTPUT_ENDPOINT0:
bVECFINT=0x00;
Ep0QutputInterruptHandler();
break;
case VECINT_INPUT_ENDPOINT0:
bBECINT=0x00;
Ep0InputInterruptHandler();
break;
case VECINT_OUTPUT_ENDPOINT1:
bVECINT=0x00;
Ep 1 OutputInterruptHandler();
Break;
case VECINT_INPUT_ENDPOINT1:
bVECINT=0x00;
Ep1Inpu
tInterruptHandler();
break;
case VECINT_SETUP_PACKET_RECEIVED:
SetupPacketInterruptHandler();
bUSBSTA=USBSTA_SETUP;
bVECINT=0x00;
break;
default:break; //不知道中断ID
EA=ENABLE; //开中断
}
3.2 主机软件设计
笔者首先开发TUSB3210在主机中的驱动程序。用WinDK3.0开发了Win2000下的驱动程序,实现了控制传输、中断传输和批传输的标准接口函数。
在应用程序开发中,可用VC++编制应用程序。可以把USB设备当成文件来操作,利用CreateFile得到USB句柄,用DeviceIoControl来进行控制传输,用ReadFile、WriteFile进行批量传输。程序实例如下:
HANDLE m_hUsbSample; //USB句柄
m_hUsbSample=CreateFile(.USBSampl0,GENERIC_READ|
GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,NULI,OPEN_EXISTING,0,NULL); //打开USB句柄
DeviceIoControl(m_hUsbSample,IOCTL_USBSAMPL_REBOOT, NULL,0,NULL,0,&length,NULL); //控制传输
WriteFile(m_hUsbSample,pBuffer,writelength,&writelength,NULL); //批量输出传输
ReadFile(m_hUsbSample,pBuffer,64,&lgngth,NULL); //批量输入传输
CloseHandle(m_hUsbSample); //关闭USB句柄
使用上述函数编制USB高速数据采集卡的主机软件。
通过以上设计实现了基于USB数据采集卡的基本功能。但还有一些如信号的触发、事件的捕获功能还需完善;需开发基于USB2.0的系统,进一步提高数据传输的速率。
★ 数据管理制度
★ 数据报告
★ 数据相关的口号
基于TC534的数据采集卡设计(精选8篇)




