USB接口的高速数据采集卡的设计与实现_第1页
USB接口的高速数据采集卡的设计与实现_第2页
USB接口的高速数据采集卡的设计与实现_第3页
USB接口的高速数据采集卡的设计与实现_第4页
USB接口的高速数据采集卡的设计与实现_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

USB接口的高速数据采集卡的设计与实现

摘要:讨论了基于USB接口的高速数据采集卡的实现。该系统采用TI公司的TUSB3210芯片作为USB通信及主控芯片,完全符合协议,是一种新型的数据采集卡。

关键词:USBA/DFIFO固件

现代工业生产和科学研究对数据采集的要求日益提高,在瞬态信号测量、图像处理等一些高速、高精度的测量中,需要进行高速数据采集。现在通用的高速数据采集卡一般多是PCI卡或ISA卡,存在以下缺点:安装麻烦;价格昂贵;受计算机插槽数量、地址、中断资源限制,可扩展性差;在一些电磁干扰性强的测试现场,无法专门对其做电磁屏蔽,导致采集的数据失真。

通用串行总线USB是1995年康柏、微软、IBM、DEC等公司为解决传统总线不足而推广的一种新型的通信标准。该总线接口具有安装方便、高带宽、易于扩展等优点,已逐渐成为现代数据传输的发展趋势。基于USB的高速数据采集卡充分利用USB总线的上述优点,有效解决了传统高速数据采集卡的缺陷。

1USB数据采集卡原理

USB简介

通用串行总线适用于净USB外围设备连接到主机上,通过PCI总线与PC内部的系统总线连接,实现数据传送。同时USB又是一种通信协议,支持主系统与其外设之间的数据传送。USB器件支持热插拔,可以即插即用。支持两种传输速度,既低速和高速12Mbps,在中其速度提高到480Mbps。USB具有四种传输方式,既控制方式、中断传输方式、批量传输方式和等时传输方式。

考虑到USB传输速度较高,如果用只实现USB接口的芯片外加普通控制器,其处理速度就会很慢而达不到USB传输的要求;如果采用高速微处理器,虽然满足了USB传输速率,但成本较高。所以选择了TI公司内置USB接口的微控制器芯片TUSB3210,开发了具有USB接口的高速数据采集卡。

系统原理图

系统原理图如图1所示。

整个系统以TUSB3210为核心,负责启动A/D转换,控制FIFO的读写及采样频率的设定,与主机之间的通信及数据传输。

2USB数据采集卡硬件

TUSB3210芯片

TUSB3210是TI公司推出的内嵌8052内核并带有USB接口的微控制器芯片。TUSB3210有256字节的内部RAM,8K字节的程序RAM,512字节的USB数据缓冲和端点描述块EDB,4个通用的GPIO端口P0、P1、P2、P3,I2C接口电路,看门狗电路等。

TUSB3210的USB接口符合协议,有4个输入端点和4个输出端点,支持全速和低速传输速率,并具有USB协议所规定的4种传输方式。TUSB3210的USB接口采用串行接口引擎编码和解码串行数据,并且进行校验、位填充,执行USB所需要的其他信号。这样采用硬件完成USB协议,简化了固件代码的编制。

TUSB3210采用基于内部RAM的解决方案,允许通过I2C总线从串行EEPROM中读入固件或从主机中下载固件程序。这项功能便于设备的开发与在线升级。

A/D芯片MAX1449

MAX1449是MAXIM公司生产的10位、105MSPS、单电源、低功耗的高速A/D芯片。它采用差分输入,带有高宽带采样/保持的10阶段流水线型结构的ADC,如图2。采样信号每半个时钟周期通过一个流水线段,完成连续转换到数据输出共需个时钟周期。每个流水线首先通过一个位的闪速ADC对输入电压量化,由DAC产生一个对应于量化结果的电压并与输入电压作差,输出电压放大2倍后送到下一级流水线处理。每级流水线提供1位的分辨率,并进行差错校正,得到良好的线性和低失调。

MAX1449提供一个的精确带隙基准源,用来设定ADC满量程范围,也可以用外部基准源改变量程范围。MAX1449的最大差分输入电压范围为2V。

输入信号处理电路

MAX1449芯片的输入信号为差分输入时有最佳的采样效果。在本系统中用TI的HTS4503作为单端输入到差分输出的转换电路。THS4503高性能的全差分运放,带宽可达270MHz,具有非常好的线性,在100MHz下可支持11位的A/D转换要求,适合作为A/D变换的前端接口电路。具体电路见图3所示。

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技术,可以设定内部的分频器数值,实现输出频率从~100MHz可调,从而方便地改变采样时钟,简化电路设计。

MAX1449数据输出时下降沿有效,而FIFO写入时上升沿锁存数据。系统中采用DS90LC028A实现对时钟信号的取反。

PCB板制作

由于是高速A/D采集,在制作PCB板时有一些需要注意的地方。电路板最好使用多层板,元件尽量选用表面封装器件。这样可以减小元器件之间的距离,减小寄生电感、寄生电容,同时减小电路板的尺寸。所有的旁路电容都要尽量靠近芯片的电源管脚。模拟公共地和数字公共地要分开,选一点通过低值表贴电阻、磁珠或直接连接,以免数字地电流干扰模拟地。电源最好用线性稳压电源,A/D和前端处理电路要用同一电源地输出,减小电源波动对采集的影响。

3USB高速数据采集卡的软件

开发一个USB设备,软件设计是必不可少的。USB应用系统软件设计分为三部分:USB外设端的固件、主机操作系统上的客户驱动程序以及主机应用软件。主机应用软件通过客户驱动程序与系统USBI进行通信,由系统产生USB数据的传送动作;固件则响应各种来自系统的USB标准请求,完成各种数据的交换工作和事件处理。

USB接口编程

固件程序主要是实现USB通信。TUSB3210采用SIE来管理USB通信。当主机与芯片进行USB通信时,会产生外部中断0,通过中断矢量寄存器判断。Setup_packed_Int、Input_endpoint0_Int、Output_endpoint0_Int这三个中断主要用于与主机建立连接、进行控制传输或中断传输;Input_endpoint1_Int、Output_endpoint1_Int这两个中断主要在批量传输时使用。在固件中分别执行不同的中断程序来实现USB的数据传输。

VoidEX0_int(void)interrupt0//外部中断0

{

EA=DISABLE;//关中断

switch(bBECINT)(//确定中断ID

caseVECINT_OUTPUT_ENDPOINT0:

bVECFINT=0x00;

Ep0QutputInterruptHandler();

break;

caseVECINT_INPUT_ENDPOINT0:

bBECINT=0x00;

Ep0InputInterruptHandler();

break;

caseVECINT_OUTPUT_ENDPOINT1:

bVECINT=0x00;

Ep1OutputInterruptHandler();

Break;

caseVECINT_INPUT_ENDPOINT1:

bVECINT=0x00;

Ep1InputInterruptHandler();

break;

caseVECINT_SETUP_PACKET_RECEIVED:

SetupPacketInterruptHandler();

bUSBSTA=USBSTA_SETUP;

bVECINT=0x00;

break;

default:break;//不知道中断ID

EA=ENABLE;//开中断

}

主机软件设计

笔者首先开发TUSB3210在主机中的驱动程序。用开发了Win2000下的驱动程序,实现了控制传输、中断传输和批传输的标准接口函数。

在应用程序开发中,可用VC++编制应用程序。可以把USB设备当成文件来操作,利用CreateFile得到USB句柄,用DeviceIoControl来进行控制传输,用ReadFile、WriteFile进行批量传输。程序实例

HANDLEm_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,N

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论