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

发布者:muhaoying2017最新更新时间:2016-11-24 来源: eefocus关键字:USB  数据采集系统  DMA  数据传输 手机看文章 扫描二维码
随时随地手机看文章

引言

    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传输。

    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  数据采集系统  DMA  数据传输 引用地址:USB数据采集系统中DMA数据传输的实现

上一篇:机械制造业控制系统的安全自动化技术研究
下一篇:基于SQL server数据库的工业点焊机控制系统设计

推荐阅读最新更新时间:2024-05-03 00:51

USB 3.1 Type-C颠覆的,不仅仅是数据接口
SB 3.1的妥协和开创   USB(Universal Serial Bus,中文名为通用串行总线)标准的提出是为了规范计算机和外部设备的连接和通讯;它从最初1996年的1.0版本起步、2000年的2.0版本普及,到2008年的3.0版本更新,最终在2013年3.1版本中成为现在的最新状态。每一代USB标准的更新除了数据传输速度的加快、扩展性的加强、电流传输的加快等内部的技术更新之外,还有一个消费者可以直观感知的一点:那就是接口标准的改变。   在最新的USB 3.1标准中,有三种接口样式,一个是Type-A(即Standard-A,传统计算机上最常见的USB接口样式),一个是Type-B(既Micro-B,三星Gal
[嵌入式]
RS232接口转USB接口的通讯方法
一、引言 USB作为一种的PC机互连协议,使外设到计算机的连接更加高效、便利。这种接口适合于多种设备,不仅具有快速、即插即用、支持热插拔的特点,还能同时连接多达127个设备,解决了如资源冲突、中断请求(IRQs)和直接数据通道(DMAs)等问题。而RS-232是单个设备接入计算机时,常采用的一种接入方式,其硬件实现简单,因此在传统的设备中有很多采用了这种通信方式。一般的IC卡门禁考勤系统也使用RS-232接口与PC机通信。如果将USB技术应用于IC卡门禁考勤系统与PC机之间的数据通信,这样,不仅能使IC卡门禁考勤设备具备USB通信的诸多优点,而且对PC机而言还可以节余1个RS-232串口为其它通信所用。 二、USB系统
[嵌入式]
波特率自动检测的识别方法及无线数据传输模块的设计及应用
1、 模块总体结构 基于nRF401无线数据传输器件的数传模块总体硬件结构如图1所示,主要由微控制器和蓝牙芯片及其相应的外围电路组成,能自动完成波特率识别,并进行数据的编码处理,给用户提供了一个透明的数据接口。微控制器选用Atmel公司推出的可在线编程的单片机AT89S51,便于以后软件的升级。通过对发送数据是否需要曼彻斯特编码、所需外围元件的数量、功耗及发射功率等方面的因素综合比较,选用nRF40l作为无线数传器件。 nRF401是单片无线收发器件,采用蓝牙核心技术设计,内部集成高频发射、高频接收、PLL合成、FSK调制、FSK解调、多频道切换等诸多功能和外围部件协议,是目前集成度最高的无线数传产品,也是唯一可以直接连接微控
[单片机]
波特率自动检测的识别方法及无线<font color='red'>数据传输</font>模块的设计及应用
定时器DMA Burst传输无法实现
有人使用STM32F4系列开发产品,程序运行过程中需要不时地对外输出一串驱动脉冲,并要求这几串脉冲的频率可变、占空比固定。他想到使用基于STM32定时器的DMA BURST传输。具体点说,他期望不时地通过TIM3的CH1输出一串频率可变、占空比固定的脉冲然后停下来。这个思路在原理上是没问题的,可是他在测试过程中发现怎么也折腾不出预期的效果。 他目前使用的芯片是STM32F401,虽有点老旧,但我查看了手册,确认该芯片的TIM3是支持基于TIMER事件实现TIME寄存器与内存间的DMABURST传输的。即每个TIMER事件可以申请多个DMA请求从而实现定时器寄存器与内存间的批量数据传输。要知某个STM32 TIMER是否支持上述
[单片机]
定时器<font color='red'>DMA</font> Burst传输无法实现
LED照明技术实现无线数据传输
近年来,以 LED 为代表的新光源正凭借其高效、节能、环保的特点,不断发挥着功能化、智能化的 照明 优势。在今天开幕的2015中国(上海)国际半导体照明应用技术论坛上,一项可以实现无线上网功能的 LED照明 技术引来各方关注。   上海半导体照明工程该技术研究中心主任助理李抒智向笔者介绍,只要在LED灯泡中增加一个类似于无线路由器的模块,就能实现WiFi中继,从而进行数据传输。由于光和无线电波传播网络信号的原理基本一致,给普通的LED灯泡装上具有路由器同等功能的芯片,控制它每秒数百万次闪烁,亮了表示1,灭了代表0,二进制的数据被快速编码成灯光信号并进行有效的传输。人眼虽觉察不到,但传感器却可以接收到这些变化。有了这
[电源管理]
USB-CAN-RS232总线转换电路设计及实现
1 引言     随着电子设备的大量出现及针对各种控制系统的实际需求,各种通信网络相继产生。由于它们的总线结构,通信协议及传输特点各不相同,给不同设备之间的连接带来很多麻烦,因而急需各种总线之间的转换装置。目前较流行的现场通信网络有RS-232,RS422/485、HART、Profield、Dupline、CAN和LonWorks等,本文阐述了一种USB-CAN-RS232三总线转换装置,电路设计简单新颖,并并且携带方便,实用性很强。 2 各种总线的特点 2.1 CAN(Controller Area Netwrok)     CAN是控制器局域网络,属于工业现场总线的范畴。与一般的通信总线相比,CAN总线的数据通信
[嵌入式]
基于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集成工艺高度发
[工业控制]
嵌入式系统与PC机的USBUART通信设计
   1 概 述   RS232(UART)接口是一种简单、方便和实用的通信接口,用途非常广泛。在许多嵌入式应用,如智能仪器仪表、电子设备中,均使用RS232与PC机等外部系统进行通信,实现上位机对下位机的控制及数据交换等。在系统调试过程中,通常也是通过RS232,将调试数据发送到PC上显示出来。   但在PC机领域,RS232(COM)串行接口已经从最新一生产的计算机,尤其是笔记本电脑中消失了,而串行接口USB成为了标准的配置。这种变化给硬件工程师带来了不少麻烦。   目前通常的解决办法是购置一根“USB to RS232”转换电缆,其基本作用是在USB总线上仿真出一个RS232端口。这种方法的主要优点在于:PC应用
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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