USB数据采集系统中数据传输的实现

发布者:TP9111最新更新时间:2014-09-12 来源: elecfans关键字:USB  数据采集系统  数据传输 手机看文章 扫描二维码
随时随地手机看文章

  引言

  USB通用串行总线(Universal Serial Bus)是被PC机广泛采用的一种总线,目前已经在计算机主板上大量集成,成为一种标准配置接口。它的即插即用、真正的热插拔、可总线供电、高性能和系统造价低等一系列的优点,使得USB接口得到了广泛的应用。特别是随着USB2.0高速传输协议的出现,其数据传输速度达到了480Mb/s,使得USB接口方式的虚拟仪器系统成为今天低成本虚拟仪器系统的主流。本文设计了基于USB2.0高速传输的数据采集系统,整个数据传输过程完全采用DMA方式,达到了较高的数据传输速度。

  1、系统介绍

  系统总体结构如图1所示。采用Philips公司的微控制器LPC2888作为系统核心控制器。前端数据采集模块由一片CPLD实现对数据采集和触发控制的功能。当系统和计算机成功连接进入工作状态后,LPC2888从USB接口接收来自应用程序的控制命令,然后通过控制CPLD对数据采集模块采样通道、采样速率和触发模式进行配置后启动数据采集。CPLD控制模数转换器获取采样数据,同时配合LPC2888通用DMA控制器的接口时序将采样数据以DMA方式传输到LPC2888内部缓存。最后由USB高速设备接口将采样数据从LPC2888内部缓存传输到计算机,在计算机中实现数据记录、数据处理和波形显示等功能。

  

  图1 系统总体结构图

  1.1 LPC2888微控制器

  LPC2888是一款基于ARM7TDMI内核的微控制器,带有8kB高速缓存,最高工作时钟频率60MHz。在结构上增加了多通道通用DMA控制器(GPDMA)。它支持存储器到存储器,存储器到外设,外设到存储器和外设到外设的DMA传输。本系统采用GPDMA控制器实现数据从前端数据采集模块到内部缓存的DMA传输。同时,LPC2888集成有USB高速设备控制器。它完全兼容USB2.0协议,支持USB高速传输,理论最高传输速度480Mb/s,其内部结构如图2所示。USB设备控制器直接挂接在LPC2888系统内部核心总线AHB上,可以方便地与ARM控制器内核及外部存储器交换数据。其内部包含一个DMA引擎,当USB接口运行在DMA模式时,DMA引擎作为AHB总线上的主机,在ARM内部缓存和USB设备控制器缓存之间传递数据,传输过程不需要控制器内核程序的参与,所以能够达到较高的数据传输速度。

  

  图2 USB高速设备控制器内部结构图

  1.2 数据采集模块

  数据采集模块主要由信号调理电路、模数转换电路、触发控制电路和CPLD构成。模数转换器采用美国模拟器件公司(ADI)推出的快速12位双通道模数转换器AD9238。单双通道选择和采样频率控制通过CPLD控制逻辑来实现。

  2、数据传输过程DMA方式的设计与实现

  系统中数据传输过程包含两个环节,一个是从CPLD到LPC2888内部缓存,另一个是从LPC2888内部缓存通过USB接口到计算机。两个环节都采用DMA方式传输数据,两个环节之间的协调通过GPDMA控制器产生的半满、全满中断来实现。整个数据传输过程完全采用DMA的传输方式,从而可以消除因微控制器固件程序执行较慢而造成的对数据传输速度的影响。

  2.1 从CPLD到LPC2888内部缓存的DMA传输

  CPLD从AD9238获得两个12位的转换结果,经过位数变换后送到32位的数据信号线。数据信号线直接连接到LPC2888的P0口(32位)。由于CPLD内部没有数据缓存过程,所以为了保证不丢失采样点,从CPLD到LPC2888内部缓存的DMA传输必须保证连续性和实时性。为此,系统采取了如下解决方案:

  1) 在LPC2888内部RAM中开辟两块相同大小的缓存空间:buffer1和buffer2。将通用DMA控制器的通道3和通道5分别配置为从P0口到buffer1和buffer2的DMA通道。

  2) 配置DMA通道3和通道5为外部信号控制模式,由CPLD作为DMA数据传输过程的主机。

  3) DMA通道3和通道5采用交替工作的方式,由CPLD控制逻辑实现。

  CPLD与LPC2888之间的硬件连接如图3所示。其中DMAEn是DMA通道的外部使能控制信号,其上升沿启动一次DMA操作。DMAReq是DMA数据同步信号,该信号控制数据节拍,每次DMA操作传输4096个数据。IO口P2.0和P2.1分别为启动停止和采样模式选择控制信号线,实现LPC2888对CPLD的控制。系统采用Verilog HDL语言描述CPLD控制逻辑,从CPLD到LPC2888内部缓存的DMA传输时序如图4所示。

  

  图3 CPLD与ARM接口

  

  图4 GPDMA传输时序图

  2.2 USB高速设备接口的DMA传输

  USB高速设备控制器支持16个物理端点,其中4个端点支持DMA方式。本设计中选用三个端点:EP0、EP2和EP3。控制端点EP0工作在控制传输模式,用于接收USB主机的SETUP令牌包、响应主机的标准设备请求、完成USB设备的枚举过程。EP2配置为OUT(输出)模式,用于接收来自应用程序的控制命令。EP3配置为IN(输入)模式,采用批量传输工作方式,负责将采样结果传输到PC机。从LPC2888内部缓存到计算机的DMA传输由USB高速设备控制器内部的DMA引擎和EP3批量传输配合完成。为了达到较高的数据传输速度,EP3批量传输采用自动传输模式。DMA引擎将LPC2888内部缓存数据传输到USB设备控制器内部FIFO缓存中,当FIFO获得的数据达到设定的大小时将自动封包由EP3传输到PC机。同时,当FIFO中数据为空时,控制器将自动启动DMA引擎继续传输数据。该环节的DMA传输过程完全由USB高速设备控制器硬件实现,程序中只需更改DMA源地址寄存器并设置使能控制寄存器即可启动一次DMA传输。[page]

  2.3 两个DMA传输环节的协调

  系统中利用GPDMA控制器产生的半满和全满中断信号协调两个DMA对同一个缓存空间的操作,实现了LPC2888对整个数据传输过程的协调控制。当DMA通道3工作时,采样数据从CPLD传输到buffer1,同时USB高速设备控制器对buffer2中的数据进行DMA操作;当DMA通道5工作时,采样数据传输到buffer2,USB高速设备控制器对buffer1中的数据进行操作。如图5中LPC2888程序流程所示。

  

  图5 LPC2888程序流程

  3、上位机软件设计

  系统上位机软件包括两个部分:设备驱动程序和系统应用程序。开发USB设备的一个关键问题在于设备驱动程序的编写。传统的开发工具是微软公司提供的设备驱动开发工具包:Windows DDK(Device Driver Kits),以及由第三方公司基于DDK开发的驱动程序开发工具包:WinDriver或DriverWorks。DDK基于汇编语言的编程方式和内核模式的调用,对于没有深厚的操作系统原理和编程水平的人员来说,任务相当艰巨。本文使用美国国家仪器NI (National Instruments)公司开发的NI-VISA(Virtual Instrument Software Architecture)控制USB设备,直接配置VISA生成设备驱动程序,避开了以往开发USB设备驱动程序的复杂性,同时直接使用虚拟仪器软件设计平台LabWindows CVI开发系统应用程序,缩短了开发周期。

  3.1 使用NI-VISA开发USB设备驱动程序

  NI-VISA是NI公司开发的一种用来与各种仪器总线进行通信的高级应用编程接口。VISA总线I/O软件是一个综合软件包,它不受平台、总线和环境的限制,可用来对USB、GPIB、串口、PCI、VXI、PXI和以太网系统进行配置、编程和调试。使用VISA可以很容易地实现计算机应用程序和USB设备之间的连接,降低了设备驱动的开发难度。

  VISA提供了两类函数供应用软件调用,USB INSTR设备与USB RAW设备。USB INSTR设备是符合USBTMC(USB测试测量类)协议的USB设备,可以通过使用USB INSTR类函数控制,通信时无需配置NI-VISA;而USB RAW设备是指除了明确符合USBTMC规格的仪器之外的任何USB设备,通信时要配置NI-VISA。经过配置后,VISA自动创建好设备驱动文件:inf文件和PNF文件。当相应的USB设备连接到计算机时,操作系统将自动安装该设备驱动并识别该设备。

  3.2 系统应用程序设计

  使用NI-VISA开发的USB设备可以在LabVIEW和LabWindows CVI中直接调用,其中有相应的VI子节点和库函数对设备进行操作。本系统采用LabWindows CVI开发数据采集系统应用程序。对设备的操作遵循下面的原则:首先打开设备,然后可以对设备进行读写、设置设备属性等操作,最后要关闭设备。目前应用程序设置有两种工作模式:示波器模式和连续采集存储模式。示波器模式每隔一定的时间间隔启动一次采集,采用模拟电平触发,采样长度固定,采样结果波形实时显示。连续采集存储模式启动采集后,系统将采样结果实时地存储到数据文件中。停止采集后,应用程序打开数据文件对采样结果进行波形显示、数据处理等操作。系统应用程序界面如图6所示。

  4、系统测试结果

  本文对该系统主要从以下四个方面进行了测试。

  1)将CPLD内部逻辑设定为传输固定数据,如0xAA55。系统在连续采集存储模式下工作,获得数据文件。采用二进制文件编辑软件UltraEdit查看数据文件,其中所有采样点结果均为0xAA55。验证了数据传输过程的正确性。

  2)将CPLD内部逻辑设定为传输每次增1的数据,获得采样数据文件进行查看。得到采样点结果为递增的数据,每次增量为1。验证了数据传输过程没有丢失采样点,保证了数据传输过程的可靠性。

  3)将CPLD内部逻辑设定为传输AD采样结果。系统工作在示波器模式下,实时查看采样结果波形。调整输入模拟信号幅值、频率和波形,分别得到相应的采样结果波形。验证了AD转换环节的正确性。图6所显示被采样信号为250Hz正弦信号,峰峰值5V,采样速率1MS/s。

  

  图6 系统应用程序界面

  4)USB接口数据传输速度测试。这里采用总线分析测试软件Bus Hound测试系统的数据传输速度。该软件可以观察USB设备的工作情况,读取当前USB设备输入输出数据量的大小、数据传输速度和设备属性等信息,并且在运行过程中不会对设备的工作产生影响。测试时首先运行Bus Hound软件,启动系统工作在连续采集存储模式,然后可以在Bus Hound中得到系统的数据传输速度。经测试,系统最高数据传输速度为16MB/s(128Mb/s)。图7所示为Bus Hound软件界面和数据传输速度测试结果。

  

  图7 软件Bus Hound的界面与速度测试结果

  5、结论

  本文使用嵌入式微控制器LPC2888和CPLD成功地完成了基于USB高速传输的数据采集系统。系统利用CPLD配合GPDMA控制器实现了从数据采集模块到LPC2888内部缓存的DMA数据传输,利用USB设备控制器DMA引擎配合端点批量传输实现了从缓存到计算机的DMA传输,并通过中断对两个环节进行协调实现了整个数据传输过程的DMA传输。经测试,系统有效数据传输速度达128Mb/s。

  在USB设备驱动应用程序的开发上,本文尝试了一种新方法。配置NI-VISA生成驱动程序,在LabWindows CVI中进行应用程序设计,通过VISA控制USB设备。实践证明:使用该方法开发的系统稳定可靠,不需要开发者了解驱动程序内核,开发难度低,是一种简单、快速开发USB接口应用系统的好方法。

关键字:USB  数据采集系统  数据传输 引用地址:USB数据采集系统中数据传输的实现

上一篇:USB充电解决方案:高效AC适配器
下一篇:基于FPGA核心的数字化仪模块设计

推荐阅读最新更新时间:2024-05-02 23:10

USB接口芯片SL811HS在51单片机系统中应用
1 引言 USB(通用串行总线)是INTEL、DEC、MI-CROSOFT、IBM等公司联合提出的、最近几年逐步在PC领域广为应用的新型接口技术。USB接口通用性好、实时性强、传输方式多样、成本低、支持即插即用、易于扩展且便于使用,这些优点使其得到许多硬件厂商的青睐。目前各种类型的USB产品已大量涌入市场,同时也被广泛地用在PC机及嵌入式系统中。 USB的拓扑结构中居核心地位的是Host(也称为主机),任何一次USB数据传输都必须由主机发起和控制,所有的USB外设都只能和主机建立连接,任何两个外设之间或是两个主机之间无法直接通信。而目前,扮演主机角色的大多是个人电脑PC。而我们买到和使用的USB移动设备都是USB外
[单片机]
USB-C正流行?看看手机上曾用过哪些接口
    今年,我们看到了众多手机厂商都把搭载USB-Type C接口作为下一代旗舰机的卖点。随着未来USB-C的推广与普及,手机以及PC等终端的接口正逐渐走向大一统,甚至是苹果也有可能在下代或者未来的产品中使用。我们就一起来回顾一下手机上曾经使用过的那些接口吧。   老的诺基亚用户应该都知道,塞班时代的Nokia手机大多是将充电插口与数据插口分开。充电插口使用的是一种圆形的接口,而且充电器的插头部分与线材也 是合为一体,因此无法供给除诺基亚以外品牌的手机使用。至于数据接口,当时Mini USB标准与Micro USB标准还处在共存状态,两者在市场上均十分常见,所以当时手机充电器与数据线之间的通用性都较差。 MicroUSB的普及
[手机便携]
基于USB接口的电化学沉积仪器数据采集系统的研究
  0 引 言   智能仪器自动化程度的提高为科学研究提供了十分方便的实验手段。电化学沉积仪器是由PC机控制的全自动的恒电位仪、恒电流仪及恒电位脉冲试验仪的集合体。相对于手动的设备而言更为先进,功能更强大,试验精度更高。具体工作时,仪器按照用户设定的实验类型执行具体的试验,同时采集系统实时的电压和电流信号。采集到的信号,由仪器内置的微处理器解析后,转换为数字信号反馈到上位机(PC机)。上位机的仪器数据处理软件,具有强大的解析功能,可以对原始数据进行各种分析,得到研究体系的详细信息。   在PC机控制的系统中,常采用通用串行总线(USB)进行通信。因为基于USB总线的数据采集系统具有安装方便、可靠性高、数据不易丢失、抗干扰能力强
[单片机]
基于<font color='red'>USB</font>接口的电化学沉积仪器<font color='red'>数据采集系统</font>的研究
单工无线呼叫及数据传输系统的设计与实现
简介:本文基于ATMEGA16L单片机实现一个具有单工语音和数据传输功能的无线呼叫系统。通过编码电路、单片调频发射电路和高频功放电路实现主站的语音及数据发送;通过解码电路、调频解调和语音功放电路实现从站的语音及数据接收。编码和解码用MSK调制方式的调制解调芯片MSM6882实现;主从机的显示电路采用LCD液晶显示,输入电路则采用PS2键盘扫描。 一、概述 目前,无线语音和数据通信的应用领域不断扩大,应用形式也趋于多样化。如移动通信系统、智能交通系统、远程控制网络等。本设计完成了一个单工无线呼叫系统,实现主站至多个从站的单工语音及数据传输业务。主站传送一路语音信号或短信,其发射频率为36MHz,发射峰值功率可调,实现小功率远
[单片机]
单工无线呼叫及<font color='red'>数据传输</font>系统的设计与实现
单芯片光源创下数据传输新纪录
来自丹麦、瑞典和日本的科学家在最新一期《自然·光子学》杂志上撰文指出,他们通过将数据分成一系列色彩包,使单个计算机芯片能通过光纤电缆,在7.9公里范围内,每秒传输1.84千万亿比特(PB)数据,创下单芯片作为光源传输数据新纪录,有望催生性能更优异芯片,提升现有互联网的性能。    在最新研究中,丹麦技术大学的阿斯比约恩·阿瓦达·约根森等人将光学元件集成在计算机芯片上,将一个数据流分成数千个独立的信道,并在7.9公里的范围内同时传输这些数据。 为做到这一点,研究团队首先借助激光器,将数据流分成37个部分,每个部分都通过光纤电缆各个单独的内核发送。随后每个信道中的数据被分割成223个数据块,每个数据块对应于电磁频谱唯一部分,这样就
[半导体设计/制造]
英飞凌为USB-C充电器统一化提供高度集成方案
2021 年 10 月25日- 德国慕尼黑讯 - 以负责任的方式使用能源,是能源效率领域创新的基本要素,同时也将助力打造一个更环保的地球。全球功率半导体市场的领导者英飞凌科技股份有限公司 (FSE:IFX/OTCQX:IFNNY)在满足未来需求的半导体技术和解决方案方面持续投资和创新,以打造环境友好的应用,实现高效能以及设计简易性。 EZ-PD™ BCR (筒形连接器替代品) 是高度集成的 USB-C 控制器, 外加一个USB-C 连接器,就可取代电子设备中的筒形连接器、自定义连接器或旧式 USB 连接器。该EZ-PD BCR 解决方案支持 USB Power Delivery (PD) 标准,无需开发固件即兼容所有 USB-
[电源管理]
基于USB2.0接口的语音采集系统设计
引言 语音信号的采集和处理在网络、通信、智能仪表、工业控制、医疗卫生、公共安全等领域得到了越来越广泛的应用,而这些工作都需要一套高速的语音信号采集系统来完成,要对语音进行采集就需要一种高速的,能进行长时间、大吞吐量数据传送的计算机接口。USB2.0接口就是一种符合语音采集要求的计算机接口,同时,它还具有支持热插拔、占用系统资源少、易于扩展、使用方便等优点。DSP是利用专门或通用的数字信号处理芯片,以数字计算的方法对信号进行处理,具有处理速度快、灵活、精确、抗干扰能力强、体积小及可靠性高等优点,可满足对信号快速、精确、实时处理及控制的要求,本采集卡采用TI公司高精度浮点DSP芯片TMS320C6713作为主控制器,采用高精度数字编
[应用]
手把手教学51单片机第七课 | AT24C02的I²C总线数据传输
SCL(clock)时钟信号 SDA(data)数据总线 数据位的有效性规定 I²C总线进行数据传输时,时钟信号为高电平期间。数据总线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或者低电平状态才允许变化。 时序图 起始信号和终止信号 当时钟信号高电平, SDA变低电平,为起始信号,若SDA变高电平,为终止信号 起始信号产生后 ,总线处于占用状态 终止信号产生后,总线处于空闲状态 void start()//起始信号 { sda=1; delay(); scl=1; delay(); sda=0; delay(); } void stop()//
[单片机]
手把手教学51单片机第七课 | AT24C02的I²C总线<font color='red'>数据传输</font>
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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