基于USB通信的FPGA高速数据采集系统

发布者:bin0990最新更新时间:2011-07-01 来源: 现代电子技术关键字:USB  CY7C68013A 手机看文章 扫描二维码
随时随地手机看文章
   

摘要:为了解决高速数据采集以及数据传输问题,设计了基于USB通信的FPGA高速数据采集系统。方案以FPGA为控制核心,实现A/D控制、数据缓存双口RAM和控制CY7C68013A三个功能。系统采用Verilog HDL语言,通过ISE软件编程控制多个AD7356同时进行数据采集,将采集所得数据存入双口RAM,控制CY7C68013A将数据通过USB总线上传到PC机。系统进行实测实验表明,在CY7C68013A设定为16.7Mb/s的传输速率下,系统工作正常。
关键词:USB;FPGA;高速数据采集;CY7C68013A;双口RAM

0 引言
    现代安全防卫系统中及时发现和定位入侵行为具有重要的现实意义。传统的安全防卫系统存在监测距离较短、抗电磁干扰能力弱、维护成本高等缺点。分布式光纤振动传感器能测量整个光纤长度上随时间变化的振动信息,具有检测距离远、抗电磁干扰能力强、安装后易维护等优点,已成为长距离管道监测和安全防卫领域最具有应用前景的技术之一。
    本系统中需要对多路信号进行高速、高精度采集,然后将数据上传到PC机中进行数据处理。所以上位机(PC机)和下位机(FPGA)如何高效、快速、方便地数据传输是本系统中的重要问题。目前常用的传输方法为RS 232串口通信方式,通信协议简单,在交互数据量不大,传输速度要求不高的情况下使用非常方便。但是其通常传输速率在几十Kb/s,在高速实时传输系统中无法达到要求。
    本文研究基于USB接口的上、下位机通信方法,来解决数据的实时交换问题。通用串行总线(UniversalSerial Bus,USB)是计算机上的一种新型接口技术,它使得计算机和外部设备的连接十分方便。USB接口已经和串口、并口一样,成为PC机的标准接口。目前最新的USB 2.0接口的最高传输可以达到480 Mb/s,远高于传统的串、并口连接速度,可以满足绝大多数情况的大数据量实时交换的需求。除此之外,USB接口还支持插拔,极大地方便了系统的开发调试和实际使用。

1 主要器件选择
    本系统为分布式光纤振动传感器的数据采集和传输系统,需要实现的主要功能有光电转换、A/D转换和USB通信。系统的总体结构图如图1所示,可以看出系统以FPGA为处理核心,包含光电转换、A/D转换和USB通信等外围功能模块。

b.jpg


    由于光纤微扰动传感器的传感采用的是光纤,所以首先需要将信号经过光电转换和A/D转换,将信号转换为数字信号。然后,在FPGA中进行数据缓存,并对多路信号进行排序后通过USB总线将存储器中数据上传到PC机中。


1.1 光电转换和A/D转换器件
    光电转换部分采用的是PINFET,PIN管反偏高、输出阻抗与FET的高输入阻抗得到很好匹配,同时减少了外部干扰和杂散电容,大大降低了热噪声,这对低噪声器件是非常有益的。比起目前较通用的PIN器件来说,PINFET不需要复杂的后续电路,而且其模块化设计,使输出噪声较小,输出电压较大,为后续A/D转换器的采样电压提供较好的工作范围。
    A/D转换模块采用的是12位双通道差分输入SAR型AD7356,结构简单实用。AD7356为12位双通道差分输入SAR型AD。该AD为双通道型,所以2路信号的转换是同时进行,减小了因转换带来的时间延迟。而且AD7356的采样频率由输入时钟信号决定,因此可以很方便的改变系统的采样频率,满足系统1~5 MHz的采样速率要求。另外该AD采用单2.5 V供电,可以与FPGA共用电源,使系统的供电系统简洁。


1.2 FPGA
   作为高速数据采集系统数据缓存的FPGA,由于系统需要对16路信号进行高速实时缓存,所以FPGA的内部存储空间需要比较大。另外,系统由于下一步需要对于信号做初步处理以减轻PC的运算量,提高处理的实时性,所以采用的是XC4VSX25。XC4VSX25的内部块RAM高达2 304 KB,分布式RAM高达160 KB,完全满足系统需求。而且XC4VSX25中含有128个XtremeDSP Slice,而每个XtremeDSP Slice包含一个18×18位带补数功能的有符号乘法器、加法器逻辑和一个48位累加器,每个乘法器或累加器都能独立使用。XtremeDSP Slice可以通过IP核的形式方便的调用,在XC4VSX25中可以方便的将乘法器和累加器进行组合,构成所需要的数据处理结构,为下一步信号处理提供了基础。


1.3 USB器件
    USB接口使用方便,连接简单,但是通信协议很复杂。因此,USB外设必须使用控制器芯片,管理数据通信USB控制器采用集成了8051单片机的CY7C68013A控制器芯片,该芯片遵从USB 2.0规范,有较快的传输速度,是目前比较通用的一种USB控制芯片。
     CY7C68013A是Cypress公司EZ-USB FX2LP系列芯片中比较经典的一款USB控制器,其内部结构如图2所示。其中,主要包括USB 2.0收发器、串行引擎(SIE)、增强型8051内核、16 KB的RAM、4 KB的FIFO存储器、I/O接口、数据总线、地址总线和通用可编程接口(GPIF)。

c.jpg


    EZ-USB FX2LP拥有非常独特的结构,其串行接口引擎(SIE)负责完成串行数据的解码、差错控制、位填充等与USB有关的功能。串行接口引擎(SIE)能够实现大部分的功能,从而减轻了嵌入式增强型8051的负担,简化了USB固件程序的开发。
[page]
2 系统软硬件实现
2.1 A/D转换
    系统通过PINFET光电转换为单端模拟信号,而A/D转换器AD7356是差分输入方式,所以需要对输入方式进行转换。AD7356说明书中给出了详细的转换电路,按说明连接即可。由于AD7356供电电源为2.5 V,所以和FPGA之间的连接需要调整AD7356的信号电平,使得输出电平与FPGA的3.3 V电平兼容。在电路设计时,可以通过将AD7356的Vdriver引脚连接到3.3 V,这样使得输出信号电平为3.3 V。
    系统采用的AD7356采样频率由输入时钟信号决定,而采样通过使能引脚CS控制。在设定好采样频率后,A/D转换程序主要依靠对CS信号控制,并对输入得两路信号串并转换即可。
2.2 数据缓存
    数据缓存主要是利用FPGA内自带的块RAM对多路信号进行排序、存储,然后按USB数据包大小打包传输,因此对于硬件(FPGA)不再多做介绍。
    数据缓存的软件实现主要依靠FPGA内的双口RAM IP核。双口RAM由于有2个单独的数据输入和输出口,所以可以调节输入输出端口的速度,使得数据读取与输入速度可以方便的控制。另外,由于本系统有多路光信号,所以FPGA内还需要对各个双口RAM的读取进行控制,对各路信号读取顺序进行,其软件结构图如图3所示。每路A/D都有两个RAM轮流存储采集数据,一方面避免RAM出现数据溢出,保证数据不丢失;另一方面可以通过将RAM大小设定与USB数据包大小一致,使USB传输的控制简单。

d.jpg


2.3 USB通信
    在系统中,USB控制器被配置为SlaVe FIFO模式,CY7C68013A Slave模式接口引脚的连接如图4所示,这样FPGA可以将USB控制器当成FI-FO来控制,而不用考虑USB标准的各种规则。而USB控制器则将USB标准的各种规则通过许多特殊寄存器来设置,将USB控制简化。
    因此,此部分的软件实现包括2个部分。从图4可以看出,FPGA对各RAM轮流读取数据,由于RAM大小与USB数据包大小设定一致,直接把数据送入CY7C68013A即可。而FPGA把CY7C68013A当成FIFO来控制,所以该部分程序比较简单。而CY7C68013A内程序设计主要是通过固件程序对传输速度、传输方式、传输模式等进行设置。

e.jpg


    固件程序是指运行在设备CPU中的程序,只有在该程序运行时,外设才能称之为具有给定功能的外部设备。系统把固件代码固化到1片E2PROM中,外设加电后由FX2通过I2C总线下载到片内RAM中自动执行。固件架构是由Keil C51编译器与其整合开发工具所编写和构建。其主要文件包括:fw.c负责设备连接、重枚举、设备初始化;periph.c负责响应各种中断事件,是主要的用户函数应用代码;gpif.c含有GP IF波形描述符表,可以实现波形的传输;dscr.a51文件定义USB设备握手时需要的各种描述符;fx2.h定义各种二级中断向量和描述符的数据结构;fx2 regs.h定义USB单片机中所有的寄存器。
    USB支持4种传输类型:控制传输、中断传输、等时传输、批量传输。批量传输可以是双向的,也可以是单向的。它特别适合大数据量的传输,而且它对传输的准确性要求较高。因此,通过固件程序设定本系统采用Slave FIFO模式,批量(BULK)传输方式进行数据传输。

3 实验结果
    为了方便实验,使用耦合器将一路光信号分为16路相同的信号,这样所有采集到的信号波形基本相同。实验时,AD7356设定为1 MHz采样速率,USB数据包大小为512 Kb,CY7C68013A采用异步SlaveFIFO模式发送数据,上位机采用Cypress公司自带的EZ-USB Interface软件采集实验数据。采集到的信号如图5所示,系统在16.7 Mb/s的传输速率下工作正常。

a.JPG



4 结语
    本文采用目前使用最为广泛的EZ-USB FX2LP芯片,给出了基于USB数据采集系统的设计。该系统充分表现了USB接口传输数据量大,传输速度快的特点,非常的适合大批量数据实时的传输场合,尤其适合数据采集系统和主机的通信,能够实时的处理采集到的数据。这克服了以往数据采集速度慢,采集数量少,接口复杂等特点,实现了数据采集的高速率、多通道。系统进行实测实验表明,在CY7C68013A设定为16.7 Mb/s的传输速率下,系统工作正常。

关键字:USB  CY7C68013A 引用地址:基于USB通信的FPGA高速数据采集系统

上一篇:直接数字频率合成器的PFGA实现
下一篇:基于FPGA的红外遥控信号接收模块的设计

推荐阅读最新更新时间:2024-05-02 21:28

基于USB接口的测硫仪设计
1 引 言 含硫量高的煤,供燃烧气化或炼焦煤使用时都会带来很大的危害。如高硫煤用作燃料时,燃烧后所产生的二氧化硫气体,不仅严重腐蚀锅炉管道,而且还严重污染大气;在炼焦工业中,硫分的影响更大,一方面煤中硫分高,焦炭的硫分也高,从而直接影响钢铁的质量,另一方面为了脱去钢铁中硫,就必须在高炉中加入较多的石灰石,这样又会减少高炉的有效容量,同时增加出渣量。因此,为了有效而经济地利用煤炭资源,必须了解煤中硫的含量。 采用库仑滴定法进行煤中硫含量的测试。以碘为滴定剂,煤样在1150℃高温下,煤中的硫会转化为SO2和SO3气体;将气体全部导人电解池,SO2与水反应生成亚硫酸,将电解碘氧化而成硫酸。仪器采用双铂电极指示终点。根据电解碘过程中所
[测试测量]
基于<font color='red'>USB</font>接口的测硫仪设计
基于USB设备的Linux网络驱动程序开发
1 引言 做为开放源代码 (Open Source) 运动重要组成部分,Linux操作系统吸引了数以万计的程序员共同开发。由于Linux比较完整的继承了各种UNIX版本的稳定和高效,并且克服和改进了传统UNIX中的很多缺点,更因为其开放的开发模式,Linux成为一个具有强大网络服务功能的操作系统。它支持主流的TCP/IP以及IPX/SPX、 NETBEUI等众多网络协议,无论在嵌入式系统,服务器还是桌面操作系统领域,Linux都取得了广泛的应用。网络驱动程序和网络硬件设备实现网络协议栈中的数据链路层和物理层,对上层协议提供支持,是网络协议栈的重要组成部分,对Linux的网络性能起着决定作用。本文主要讨论基于USB总线的 Linux
[单片机]
基于<font color='red'>USB</font>设备的Linux网络驱动程序开发
基于LabVIEW的USB实时数据采集处理系统的实现
  通用串行总线USB(Universal Serial Bus)作为一种新型的数据通信接口在越来越广阔的领域得到应用。而基于USB接口的 数据采集 卡与传统的PCI卡及ISA卡相比具有即插即用、热插拔、传输速度快、通用性强、易扩展和性价比高等优点。    USB 的应用程序一般用Visual C++编写,较为复杂,LabVIEW语言是一种基于图形程序的编程语言,内含丰富的数据采集、数据信号分析分析以及控制等子程序,用户利用创建和调用子程序的方法编写程序,使创建的程序模块化,易于调试、理解和维护,而且程序编程简单、直观。因此它特别适用于数据采集处理系统。利用它编制USB应用程序,把LabVIEW语言和USB总线紧密结合起来的数
[测试测量]
基于LabVIEW的<font color='red'>USB</font>实时数据采集处理系统的实现
基于CH371的USB接口虚拟示波器设计
一、引言 对于学校教学实验以及某些特定需求来说,目前市场上的模拟及数字示波器也许并不适用,价格高昂、体积较大且很多专业功能并不实用。而现在电脑的普及程度也达到了相当的规模,利用电脑以及附加的数采模块实现一个灵活便捷的虚拟示波器能够满足大多数的工作、学习和开发需要,并且可以通过较低代价的硬件和软件升级实现相当复杂的信号处理功能,能够以较低的成本、较小的体积实现配置灵活的智能仪器组合;完全可以与便携电脑结合,构成便携式检测维修工作站。目前已经有计算机并口通信的数据采集器,但是USB的应用日趋广泛和深入,如果将USB功能融合在里面则可以实现更高的数据传输率、更方便的使用方式,更为优越的体现出虚拟仪器的性能。 二、硬件设计
[测试测量]
基于CH371的<font color='red'>USB</font>接口虚拟示波器设计
USB/HDMI 4x4拼接器如何实现异性拼接
深圳徕雨科技的4x4艺术墙任意拼接器,支持HDMI/USB3.0输入。艺术墙拼接器可以将USB3.0端口上的视频推送到多个显示器上完成整个视频的拼接。 USB3.0端口输入的清晰度最高4K,高清输出到显示器。主要适用于教学、餐厅、车站等场所的视频显示。16路HDMI输出,主要功能是将一个完整的HDMI高清图像信号划分成16块后分配给16个视频显示单元(如背投单元, 液晶电视机等);可以将一组画面用多种拼接效果高清显示出来,完美组成多屏的拼接,无需控制软件即插即用操作简单 产品特点 * 支持HDMI/USB3.0输入; * 支持16路HDMI输出; * 支持多种常规拼接,操作简易,即插即用; * 支持任意拼接; * 有效解决了拼
[嵌入式]
<font color='red'>USB</font>/HDMI 4x4拼接器如何实现异性拼接
基于USB总线和89C51单片机的数据采集系统设计
在工业生产和科学技术研究过程的各行业中,常常要对各种数据进行采集,现在常用的采集方式是在PC机或工控机内安装数据采集卡,如A/D卡及RS-422卡、RS-485卡。采集卡不仅安装麻烦,易受机箱内环境的影响,而且由于受计算机插槽数量和地址、中断资源的限制,不可能挂接很多设备。而通用串行总线(Universal Serial Bus,简称USB)的出现能很好地解决以上这些冲突。我们利用89C51单片机设计了基于USB总线的数据采集设备,并可与MAX485结合起来实现数据的远程采集。 系统硬件设计 USB数据采集系统硬件模块主要由串行A/D转换器、89C51芯片、USB接口芯片和多路模拟开关等组成。硬件总体结构框图如图1所示。
[嵌入式]
USB协议深入分析 设置USB地址
前面已经解释主控器怎么样发送设备描述符下来,然后设备返回相应的设备描述符。下一步主控器的动作是做什么呢?由于在USB总线上的设备有很多,为了区分不同的设备通讯,就需要给每个设备分配一个地址,这跟网络中的IP地址是一样的,或者跟MAC地址也是一样的。因而,接着下来就是主控器分配地址给设备,USB的设备地址是从1开始到127。下面就是接收到主控器发下来的数据包: 00 05 01 00 00 00 00 00 由USB_SETUP_PACKET定义具体地分析这个数据,就可以知道应做什么样的响应了。下面就来解释这个操作。 先取得bmRequestType的类型,也就是第一个字节,它是00。从USB协议里查看,它的方向位是主控器发送给设
[单片机]
基于CPLD的串并转换和高速USB通信设计
    摘要: CPLD可编程技术具有功能集成度高、设计灵活、开发周期短、成本低等特点。介绍基于ATMEL 公司的CPLD芯片ATF1508AS设计的串并转换和高速USB及其在高速高精度数据采集系统中的应用。     关键词: CPLD 串并转换 USB 可编程逻辑器件(PLD)是20世纪70年代在ASIC设计的基础上发展起来的一种划时代的新型逻辑器件。自PLD器件问世以来,制造工艺上采用TTL、CMOS、ECL及静态RAM技术,器件类型有PROM、EPROM、E2PROM、FPLA、PAL、GAL、PML及LCA等。PLD在性能和规模上的发展,主要依赖于制造工艺的不断改进,高密度PLD是VLSI集成工艺高度发
[工业控制]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved