基于USB2.0总线的高速数据采集系统设计
发布时间:2008/5/27 0:00:00 访问次数:718
    
    
     来源:21ic中国电子网 作者:航天时代电子公司771研究所加固机工程部 蔡本华 摘要:本文主要介绍支持usb2.0高速传输的ez-usb fx2单片机cy7c68013,并详细说明用此芯片实现高速数据采集系统和相应的windows驱动程序及底层固件程序的开发过程。 关键词:cy7c68013 usb2.0 数据采集 固件 1、引言 现代工业生产和科学研究对数据采集的要求日益提高,在瞬态信号测量、图像处理等一些高速、高精度的测量中,需要进行高速数据采集。现在通用的高速数据采集卡一般多是pci卡或isa卡,存在以下缺点:安装麻烦、价格昂贵;受计算机插槽数量、地址、中断资源限制,可扩展性差;在一些电磁干扰性强的测试现场,无法专门对其做电磁屏蔽,导致采集的数据失真。 通用串行总线usb是1995年康柏、微软、ibm、dec等公司为解决传统总线不足而推广的一种新型的通信标准。该总线接口具有安装方便、高带宽、易于扩展等优点,已逐渐成为现代数据传输的发展趋势。基于usb的高速数据采集卡充分利用usb总线的上述优点,有效解决了传统高速数据采集卡的缺陷。 2、硬件设计 2.1支持usb2.0高速传输的cy7c68013 cypress semiconductor公司的ez-usb fx2是世界上第一款集成usb2.0的微处理器,它集成了usb2.0收发器、sie(串行接口引擎)、增强的8051微控制器和可编程的外围接口。fx2这种独创性结构可使数据传输率达到56mbytes/s,即usb2.0允许的最大带宽。在fx2中,智能sie可以硬件处理许多usb1.1和usb2.0协议,从而减少了开发时间和确保了usb的兼容性。gpif(general programmable interface)和主/从端点fifo(8位或16位数据总线)为ata、utopia、epp、pcmcia和dsp等提供了简单和无缝连接接口。 cy7c68013的gpif引擎具有自动传输数据结构的特性,这种特性使得外围设备和主机通过cy7c68013可以无缝的、高速的传输数据。为了实现高速的数据传输,cy7c68013cpu不会直接参与数据的传输,而是直接利用gpif的自动传输数据模式。图1和图2说明了主机in和out数据传输过程。 2.1.1 端点缓冲区 fx2包含3个64字节端点缓冲区和4k可配置成不同方式的缓冲,其中3个64字节的缓冲区为ep0、ep1in和ep1out。ep0作为控制端点用,它是一个双向端点,既可为in也可为out。当需要控制传输数据时,fx2固件读写ep0缓冲区,但是8个setup字节数据不会出现在这64字节ep0端点缓冲区中。ep1in和ep1out使用独立的64字节缓冲区,fx2固件可配置这些端点为bulk、interrupt或isochronous传输方式,这两个端点和ep0一样只能被固件访问。这一点与大端点缓冲区ep2、ep4、ep6和ep8不同,这四个端点缓冲区主要用来和片上或片外进行高带宽数据传输而无需固件的参与。ep2、ep4、ep6和ep8是高带宽、大缓冲区。它们可被配置成不同的方式来适应带宽的需求。2.1.2 接口信号 在利用gpif进行高速数据传输系统设计时,gpif waveforms的编辑是非常重要的,它控制着整个数据传输过程的读写时序。此时cpu的作用已经非常小了,它只起着下载代码到内部ram以及在固件中如何触发gpif waveforms的作用。fx2专门为gpif提供了外围接口信号,如8位或16位的数据线、控制信号、ready信号以及地址线。 ifclk(双向时钟信号):ifclk是一个参考时钟,可以配置成输入或输出。当配置为输出时,ifclk被fx2驱动为30mhz或48mhz;当配置为输入时,时钟范围为5-48mhz。 gpifadr[8:0](输出):gpif使用gpifadr信号为外部设备提供地址线,在总线上地址值是自增的。 fd[15:0](双向):这是usb主机通过fx2和外部设备进行数据传输的数据线,它可配置成8位或16位。当16位时,fd[7:0]代表端点fifo中的第一个字节,fd[15:8]代表第二个字节。 ctl[5:0](输出):fx2为外部设备提供了几个控制信号,如读写选通、使能等。 rdy[5:0](输入):fx2提供了几个状态检测信号,它可以检测外部设备的状态,如fifo的空、满、半满等。 gstate[2:0](输出):这是调试信号,表示gpif波形执行的状态,通常连接到逻辑分析仪上。2.2 ad9238 ad9238是一个双通道的12位a/d转换器,采用单3v供电,速度可以是20msps、40msps和65msps;低功耗,工作在20msps时,功耗为180mw,40msps时,功耗为330mw,65msps时,功耗为600mw;具有500mhz 3db带宽的差分输入;片上参考源及sha;灵活的模拟输入范围:1vp-p~2vp-p;适用于:超声波设备,射频通讯,电池电源仪器,低价示波器等。本系统采用20msps的ad9238,可充分发挥usb在高速传输模式下的数据传输优势。2.3 数据采集系统 该数据采集系统整个框图如图3所示,该系统由以下几部份组成:usb控制器、fifo、cpld、ad9238以及数据采集前端电路。图3 数据采集系统框图 cpld主要是控制时序,时钟分频等。fifo
    
    
     来源:21ic中国电子网 作者:航天时代电子公司771研究所加固机工程部 蔡本华 摘要:本文主要介绍支持usb2.0高速传输的ez-usb fx2单片机cy7c68013,并详细说明用此芯片实现高速数据采集系统和相应的windows驱动程序及底层固件程序的开发过程。 关键词:cy7c68013 usb2.0 数据采集 固件 1、引言 现代工业生产和科学研究对数据采集的要求日益提高,在瞬态信号测量、图像处理等一些高速、高精度的测量中,需要进行高速数据采集。现在通用的高速数据采集卡一般多是pci卡或isa卡,存在以下缺点:安装麻烦、价格昂贵;受计算机插槽数量、地址、中断资源限制,可扩展性差;在一些电磁干扰性强的测试现场,无法专门对其做电磁屏蔽,导致采集的数据失真。 通用串行总线usb是1995年康柏、微软、ibm、dec等公司为解决传统总线不足而推广的一种新型的通信标准。该总线接口具有安装方便、高带宽、易于扩展等优点,已逐渐成为现代数据传输的发展趋势。基于usb的高速数据采集卡充分利用usb总线的上述优点,有效解决了传统高速数据采集卡的缺陷。 2、硬件设计 2.1支持usb2.0高速传输的cy7c68013 cypress semiconductor公司的ez-usb fx2是世界上第一款集成usb2.0的微处理器,它集成了usb2.0收发器、sie(串行接口引擎)、增强的8051微控制器和可编程的外围接口。fx2这种独创性结构可使数据传输率达到56mbytes/s,即usb2.0允许的最大带宽。在fx2中,智能sie可以硬件处理许多usb1.1和usb2.0协议,从而减少了开发时间和确保了usb的兼容性。gpif(general programmable interface)和主/从端点fifo(8位或16位数据总线)为ata、utopia、epp、pcmcia和dsp等提供了简单和无缝连接接口。 cy7c68013的gpif引擎具有自动传输数据结构的特性,这种特性使得外围设备和主机通过cy7c68013可以无缝的、高速的传输数据。为了实现高速的数据传输,cy7c68013cpu不会直接参与数据的传输,而是直接利用gpif的自动传输数据模式。图1和图2说明了主机in和out数据传输过程。 2.1.1 端点缓冲区 fx2包含3个64字节端点缓冲区和4k可配置成不同方式的缓冲,其中3个64字节的缓冲区为ep0、ep1in和ep1out。ep0作为控制端点用,它是一个双向端点,既可为in也可为out。当需要控制传输数据时,fx2固件读写ep0缓冲区,但是8个setup字节数据不会出现在这64字节ep0端点缓冲区中。ep1in和ep1out使用独立的64字节缓冲区,fx2固件可配置这些端点为bulk、interrupt或isochronous传输方式,这两个端点和ep0一样只能被固件访问。这一点与大端点缓冲区ep2、ep4、ep6和ep8不同,这四个端点缓冲区主要用来和片上或片外进行高带宽数据传输而无需固件的参与。ep2、ep4、ep6和ep8是高带宽、大缓冲区。它们可被配置成不同的方式来适应带宽的需求。2.1.2 接口信号 在利用gpif进行高速数据传输系统设计时,gpif waveforms的编辑是非常重要的,它控制着整个数据传输过程的读写时序。此时cpu的作用已经非常小了,它只起着下载代码到内部ram以及在固件中如何触发gpif waveforms的作用。fx2专门为gpif提供了外围接口信号,如8位或16位的数据线、控制信号、ready信号以及地址线。 ifclk(双向时钟信号):ifclk是一个参考时钟,可以配置成输入或输出。当配置为输出时,ifclk被fx2驱动为30mhz或48mhz;当配置为输入时,时钟范围为5-48mhz。 gpifadr[8:0](输出):gpif使用gpifadr信号为外部设备提供地址线,在总线上地址值是自增的。 fd[15:0](双向):这是usb主机通过fx2和外部设备进行数据传输的数据线,它可配置成8位或16位。当16位时,fd[7:0]代表端点fifo中的第一个字节,fd[15:8]代表第二个字节。 ctl[5:0](输出):fx2为外部设备提供了几个控制信号,如读写选通、使能等。 rdy[5:0](输入):fx2提供了几个状态检测信号,它可以检测外部设备的状态,如fifo的空、满、半满等。 gstate[2:0](输出):这是调试信号,表示gpif波形执行的状态,通常连接到逻辑分析仪上。2.2 ad9238 ad9238是一个双通道的12位a/d转换器,采用单3v供电,速度可以是20msps、40msps和65msps;低功耗,工作在20msps时,功耗为180mw,40msps时,功耗为330mw,65msps时,功耗为600mw;具有500mhz 3db带宽的差分输入;片上参考源及sha;灵活的模拟输入范围:1vp-p~2vp-p;适用于:超声波设备,射频通讯,电池电源仪器,低价示波器等。本系统采用20msps的ad9238,可充分发挥usb在高速传输模式下的数据传输优势。2.3 数据采集系统 该数据采集系统整个框图如图3所示,该系统由以下几部份组成:usb控制器、fifo、cpld、ad9238以及数据采集前端电路。图3 数据采集系统框图 cpld主要是控制时序,时钟分频等。fifo