基于USB2.0总线的高速数据采集系统设计

发布者:阳关三迭最新更新时间:2012-04-18 来源: dzsc关键字:CY7C68013  USB2.0  数据采集  固件 手机看文章 扫描二维码
随时随地手机看文章

USB(Universal Serial Bus)总线是INTEL、NEC、MICROSOFT、IBM等公司联合提出的一种新的串行总线接口规范。为了适应高速传输的需要,2000年4月,这些公司在原1.1协议的基础上制订了USB2.0传输协议,已超过了目前IEEE1394接口400Mbps的传输速度,达到了480Mbps。USB总线使用简单,支持即插即用PnP(Plug And Play),一台主机可串连127个USB设备。设备与主机之间通过轻便、柔性好的USB线缆连接,最长可达5m,使设备具有移动性,可自由挂接在具有USB接口的运行在Windows98/NT平台的PC机上。USB总线已被越来越多的标准外设和用户自定义外设所使用,如鼠标、键盘、扫描仪、音箱等。

笔者结合设备检测中数据采集的实际需要,设计了该高速同步数据采集系统。该系统最多可四路同步采样,单通道采样速度可达620ksps,四通道同时采样速度可达180ksps。USB接口控制芯片采用Cypress公司FX2系列中的CY7C68013,通过对其可编程接口控制逻辑的合理设计和芯片内部FIFO的有效运用,实现了数据的高速连续采样和传输。


1 基本原理

该采集系统总体框架分三部分:主机(能支持USB2.0协议的PC机)、内部包含CPU及高速缓存的USB接口控制芯片(CY7C68013)和高速同步采样芯片(MAX115),如图1所示。其数据传输分两部分:控制信号传输和采集数据传输。控制信号方向为由主机到外设,由外设CPU控制,数据量较小;采集到的数据由外设到主机,数据量较大。为了保证较高的传输速度,不经过CPU。系统基本操作过程为:主机给外设一个采样控制信号,FX2根据该信号向A/D转换器送出相应控制信号,即采样模式控制字;之后由A/D转换器自主控制转换,并将各通道采样数据存入其片内缓存。一旦转换完成,由A/D的完成位向FX2的可编程控制接口发读采样结果信号;然后由可编程接口的控制逻辑依次将各通道采样结果从A/D的缓存读入FX2的内部FIFO。当FIFO容量达到指定程度后,自动将数据打包传送给USB总线。期间所有操作不需要CPU的干预。采样过程中接口控制逻辑依次取走批量数据,在打包传送时A/D仍持续转换,内部FIFO也持续写入转换结果。只要内部FIFO写指针和读指针位置相差达到指定的值就立即取走数据。从而保证了同步连续高速采集的可靠性。

2 硬件部分

2.1 芯片介绍

CY7C68013属于Cypress公司的FX2系列产品,它提供了对USB2.0的完整解决方案。该芯片包括带8KB片内RAM的高速CPU、16位并行地址总线+8位数据总线、I2C总线、4KB FIFO存储器以及通用可编程接口(GPIF)、串行接口引擎(SIE)和USB2.0收发器。在代码的编写上,与8051系列单片机兼容,且速度是标准8051的3~5倍。

CY7C68013与外设有两种接口方式:可编程接口GPIF和Slave FIFOs。

可编程接口GPIF是主机方式,可以由软件设置读写控制波形,灵活性很大,几乎可以对任何8/16 bit接口的控制器、存储器和总线进行数据的主动读写,使用非常灵活。Slave FIFOs方式是从机方式,外部控制器可象对普通FIFO一样对FX2的多层缓冲FIFO进行读写。FX2的Slave FIFOs工作方式可设为同步或异步;工作时钟为内部产生或外部输入可选;其它控制信号也可灵活地设置为高有效或低有效。笔者在设计中采用主机方式。

MAX115是美信公司的高速多通道同步采样芯片。含有两组4路同步通道,共8个输入端。采样精度为12位,采样模式由采样控制字决定,可灵活地在两组中的1~4个通道间选择。采样时,各通道转换结果先存入其内部相对应的4个12bit存储单元,各通道都转换完后再一起取走。

2.2 电路原理及设计

考虑CY7C68013与MAX115接口时,采样模式不同,控制波形有所差别,笔者选择主机方式即可编程控制接口(GPIF)。

GPIF是FX2端点FIFO的内部控制器。在这种方式下,接口内核可产生6个控制输出端(CTL0~CTL5)和9根线的地址(GADR[8:0])输出,同时可以接收6个外部输入(RDY0~RDY5)和2个内部输入。FX2有4个波形描述符控制各个状态。这些波形描述符可以动态地配置给任何一个端点FIFO。例如,一个波形描述符可以配置为写FIFO,而另一个配置为读FIFO。FX2的固件程序可以把这些描述符配置给四个FIFO中的任意一个,配置后,GPIF将依据波形描述符产生相应的控制逻辑和握手信号给外界接口,满足向FIFO读写数据的需要。GPIF的数据总线既可以是单字节宽(8位FD[7:0])也可以是双字节宽(16位FD[15:0])。每个波形描述符包含了S0~S6 七个有效状态和一个空闲状态。在每个有效状态对应的时间段里,经过预先设置,GPIF可以做以下几件事情:(1)驱动(使为高或低)或悬浮6个输出控制端;(2)采样或驱动FIFO的数据总线;(3)增加GPIF地址总线的值;(4)增加指向当前FIFO指针的值;(5)启动GPFIWF(波形描述符)中断。除此之外,在每个状态,GPIF可以对以下几个信号中任意两个进行采样,它们是:(1)RDYX输入端;(2)FIFO状态标志位;(3)内部RDY标志位;(4)传输计数中止标志位。把其中两个信号相与、相或或者相异或,根据结果跳转到其它任意一个状态或延迟1~256个IFCLK时钟周期。当然也可以根据输入端的信号进行跳转或延迟。GPIF波形描述符通常用Cepress公司的GPIF工具(GPIFTOOL)进行配置。它是一个可运行于Windows平台的应用程序,与FX2的开发包一起发布。

[page]


    在这种方式下,所有的读写及控制逻辑通过CY7C68013 的GPIF以软件编程的方式实现,且控制逻辑的变换方便灵活(只需要改变接口的一个配置寄存器的值)。电路连接如图2所示。

本数据采集系统只用到了两个输出控制CTL0、CTL1和一个外部输入RDY0,它们分别接MAX115的CONVST#、WR#和INT#。数据总线用双字节,其中FD0~FD11接MAX115的数据输入端D0~D11,FD12和FD13接控制字输入端的A2和A3,FD0和FD1复用做控制字输入端的A0和A1。MAX115的采样基准时钟由FX2的输出时钟经三分频得到,为16MHz。对应四种数据传输方式(八种不同的采样模式),GPIF的控制及握手信号波形有所不同。四通道同步采样的时序图如图3所示。

在第一个判决点,若采样数据已准备就绪,MAX115传给GPIF一个负脉冲信号RDY0;根据此信号,波形按顺序转入2、3、4、5状态,使指向内部FIFO的指针在每个时钟上升沿加1,依次读取四个数据,取完数据后利用CTL0的上升沿启动下一次采样。若在状态1时没有出现负脉冲,则直接跳转到状态6,之后重复执行此波形描述符。

三通道同步采样时,读取数据的状态只需要持续三次。其它采样模式控制波形的设计依此类推。

2.3 固件程序设计

固件程序是指运行在设备CPU中的程序。只有在该程序运行时,外设才能称之为具有给定功能的外部设备。固件程序负责初始化各硬件单元,重新配置设备及A/D采样控制。固件代码的存储位置有三种:第一种是存在主机中,设备加电后由驱动程序把固件下载到片内RAM后执行,即“重新枚举”;第二种方法是把固件代码固化到一片EEPROM中,外设加电后由FX2通过I2C总线下载到片内RAM后自动执行;最后一种方法是把程序固化到一片ROM中,使之充当外部程序存储器,连在FX2三总线上。笔者选用第一种方式,这种方式便于系统的调试和升级。固件程序框图如图4所示。

3 用户程序和驱动程序

3.1 驱动程序的编写

该系统需要两个驱动程序,即通用驱动和下载固件的驱动。通用驱动完成与外设和用户程序的通信及控制;而下载固件的驱动则只负责在外设连接USB总线后把特定的固件程序下载到FX2的RAM中,使FX2的CPU重启,模拟断开与USB总线的连接,完成对外设的重新设置。主机根据新的设置安装通用驱动程序,重新枚举外设为一个新的USB设备。

通用驱动程序一般不需要重新编写,用Cypress公司已经编好的驱动ezusb.sys;而下载固件的驱动则必须定做,其详细操作过程见参考文献[2]。

3.2 用户程序的编写

用户程序是系统与用户的接口,它通过通用驱动程序完成对外设的控制和通信。在编写用户程序时,首先要建立与外设的连接,然后才能实施数据的传输。启动采样后,为了保证不丢失数据,用户程序应该建立一个新的工作线程专门获取外设传来的数据。程序中主要用到两个API函数:CreateFile()和DeviceIoControl ()。CreateFile()取得设备句柄后,DeviceIoControl ()根据该句柄完成数据传输。程序代码简要如下:

hDevice = CreateFile(″\\\\.\\EZUSB-0″)

GENERIC_READ | GENERIC_WRITE,

FILE_SHARE_WRITE,

NULL,

OPEN_EXISTING,

FILE_ATTRIBUTE_NORMAL,

NULL);

If (hDevice == INVALID_HANDLE_VALUE)

{

Application->MessageBoxA(“无法创建设备,请确认设备是否连上!”,NULL,IDOK);

}

else

{

DeviceIoControl (

hDevice,

IOCTL_EZUSB_BULK_WRITE,

&blkctl,

sizeof(BULK_TRANSFER_CONTROL),

&inBuffer, //定义的数据缓冲区

sizeof(inBuffer),

&nBytes,

NULL);

……

}

程序框图如图5所示。

在该高速同步数据采集系统的设计中,CY7C68013芯片灵活的接口和可编程特性简化了外部硬件的设计,提高了系统的可靠性,也利于PCB板的制作与调试。另外,USB设备的可热插拔特性使得该系统具有便携式的特点,使用方便,无需关机重启或打开机箱进行安装。该数据采集系统已成功地应用于某型雷达的便携式故障检测与维修系统,取得了良好的效果。

关键字:CY7C68013  USB2.0  数据采集  固件 引用地址:基于USB2.0总线的高速数据采集系统设计

上一篇:RS-232收发器接口芯片的原理及应用
下一篇:低轼耗数据采集系统的USB接口设计

推荐阅读最新更新时间:2024-05-02 22:01

基于LabVIEW和CCD的光谱数据采集与分析设计
本文引入了新兴的虚拟仪器技术,设计了一个基于LabVIEW的光谱分析及数据采集系统,通过软件编写再次对采集到的信号进行了滤波处理,增加了增益调整功能;采用最小二乘法实现了对系统的波长标定,并实现了光谱曲线的峰值寻找功能,且与传统的线性定标法进行对比,进一步改善了测量精度。最后通过实验结果表明,可以用所做的光谱分析系统分辨出汞灯光谱的特性谱线,达到光谱分析的目的。 1.引言 随着科学技术的发展和光谱分析系统的广泛研究,人们对光谱分析系统的主要指标,如光谱测量范围、分辨率、精度等方面,都提出了越来越高的要求,光谱仪现在的发展方向是微型化、自动化和高精度化。因此,本文引入了新兴的虚拟仪器技术,设计了一个基于LabVIEW的光谱分析及
[测试测量]
基于LabVIEW和CCD的光谱<font color='red'>数据采集</font>与分析设计
基于AD7714的高精度隔离数据采集系统
  在高精度及多路采样设备中,A/D芯片选用的恰当与否对系统整体性能的表现好坏非常关键。目前,由于数字信号处理技术的快速发展,对信号采集前向通道的器件要求也不断提高,特别是对器件的采样分辨率、采样速度以及采样通道数等参数的要求越来越严格。   本系统测量采用极化继电器的力臂控制盒仪器设计,需要测量的数据变化范围大,精度要求高,测量的通道数多。同时,由于本系统测量电路相对复杂,各信号间容易产生干扰,而高速运转的电机信号产生的干扰将会使系统瘫痪。针对上述情况,笔者采用多路输入、高精度的A/D转换器AD7714,与MCU之间的通信采用光电隔离技术。   1 AD7714的基本情况   AD7714是一个完整的用于低频测量应用
[嵌入式]
基于W77E58的多路数据采集系统的设计与实现
    在现代工业生产、控制和科学研究领域中,对各种现场数据如温度、压力及振动等参数进行采集、传输和处理是必不可少的组成部分。将温度、压力、流量、位移等模拟信息采集转换成数字信息后,再由计算机进行存储、处理、显示或打印的过程就是数据采集,相应的系统称为数据采集系统。高性能微控制器W77E58具有功耗低、体积小、功能强大等优点,非常适用于对现场数据进行实时采集和现场控制。 1 采集系统的结构设计     数据采集系统主要由传感器、调理电路、A/D转换电路、微控制器、通信模块、计算机(PC机)等几大模块组成。如图1所示。外部世界、现场等的各种参量是模拟量,传感器的作用是把这些模拟量转化为电信号模拟量(可以是电压,也可以是电流、电脉冲)
[测试测量]
基于W77E58的多路<font color='red'>数据采集</font>系统的设计与实现
ADuC845单片机和PTR2000的无线数据采集系统设计
引言 在工业控制领域,常常需要采集大量的现场数据,如电压、电流、温度、湿度、气压等,并将这些数据采集模块采集的数据传输到主机进行处理。由主机根据处理的结果,将控制信号传输给现场执行模块进行各种操作。而目前数据传输通常使用的是RS485或者是CAN等网络。这些网络均基于有线传输,有线传输方式存在布线困难、维护成本高等问题,而无线通信技术解决了这些问题,因此被广泛应用在很多场合。随着信息技术的高速发展,人们需要能够准确、快速和便携地获得大量数据,并将采集到的数据通过无线传输方式传给远端主控制室。无线传输具有一定的优势,成本相对低,并且传输中的干扰也较少,这也在一定程度上提高了传输的可靠性。本文将单片机技术与数据采集技术、无线传输技术
[单片机]
ADuC845单片机和PTR2000的无线<font color='red'>数据采集</font>系统设计
基于LabVIEW的信号输出与数据采集系统
1 引言 近年来,在国防、汽车、仪表等领域,嵌入式计算机系统的应用越来越广泛。由于目前硬件技术的迅猛发展以及容错技术的广泛应用,因硬件故障而导致的软件失效越来越少,系统故障的主要原因已经从硬件逐步转向软件。因此如何测试嵌入式计算机系统中的软件性能就成为人们关注的焦点,而这其中非常关键的就是如何在仿真环境下由仿真测试平台输出激励信号驱动嵌入式计算机系统运行并同时采集它的输出信号。本文正是基于此设计了一套基于LabVIEW的信号输出与数据采集系统。 2 LabVIEW简介 LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是目前最为成功、应用最为广泛的虚
[测试测量]
基于LabVIEW的信号输出与<font color='red'>数据采集</font>系统
基于单片机USB接口的数据采集存储电路的设计
在一些特殊的工业场合,有时需要将传感器的信号不断的实时 采集 和存储起来,并且到一定时间再把 数据 回放到PC机中进行分析和处理。在工作环境恶劣的情况下采用高性能的单片机和工业级大容量的FLASH存储器的方案恐怕就是最适当的选择了。CYGNAL公司的C8051F320 SOC是一种具有8051内核的高性能单片机,运行速度为普通8051的12倍。该芯片内部528字节随机RAM和2048字节XRAM为数据缓冲和 程序 运行提供了充足的空间。更受欢迎的是它的串行扩展功能为当前的各种串行芯片和外部 设备 接口的扩展提供了极大的方便。高速的SPI硬件接口与串行FLASH RAM的无缝连接大大简化了电路板布线,而片内自带的USB接口功能使数据
[缓冲存储]
基于LPC2210和μC/OS—II的触摸屏触摸点数据采集系统
  本文提出了基于ARM7系列LPC2210微控制器和嵌入式操作系统μC/OS—II来实现触摸屏触摸点数据采集系统的设计,并完成了微控制器与上位机之间的物理层 电路 转换,实现了基于LIN总线的数据通信,能够在上位机得到触摸点的精确坐标以及控制菜单信息,并且准确可靠、传输速率高。   嵌入式系统实际上是“嵌入式计算机系统”的简称,是相对于通用计算机系统而言的,根据应用的要求,将操作系统和功能软件集成于计算机硬件系统中,以应用为中心,计算机技术为基础,实现软件与硬件的一体化。其适用于对功能、可靠性、成本、体积和功耗等有严格要求的专用计算机系统。   触摸屏又称为“触控屏”、“触控面板”,是一种附加在显示器表面的透明介质。触摸屏作
[单片机]
基于LPC2210和μC/OS—II的触摸屏触摸点<font color='red'>数据采集</font>系统
J-Link OB F103 固件提取及维修
事情起因 某日在调试stm32的时候,错将5v接入3.3v电源输入,开发板烧掉。而且因为jlink没拔掉,也一同阵亡了。光烧了个芯片把整个板换掉太亏,遂打算动手修复。 坏掉的J-Link 学习修复J-Link 厚着脸皮向jlink卖家要原理图,卖家表示他也没有 网上找资料,只找到部分f072和f103的相似原理图,pcb不一样。 看原理图可知布线其实很简单,没有pcb也不要紧,只要找到供下载固件的SWD口(或TX RX),并引出,下载固件即可。 万用表加手电筒抄板,SWCLK SWDIO对应PA14 PA13,LED连接到PB12,作为jlink的输出SWCLK SWDIO对应PA3 PA4。 找固件,在此特别
[单片机]
J-Link OB F103 <font color='red'>固件</font>提取及维修
小广播
热门活动
换一批
更多
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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