usb数据采集系统中dma数据传输实现.docx
文本预览下载声明
引言
USB通用串行总线(Universal Serial Bus>是被PC机广泛采用的一种总线,目前已经在计算机
主板上大量集成,成为一种标准配置接口。它的即插即用、真正的热插拔、可总线供电、
高性能和系统造价低等一系列的优点,使得 USB接口得到了广泛的应用。特别是随着
USB2.0高速传输协议的出现,其数据传输速度达到了 480Mb/s,使得USB接口顤橆D挤?
为今天低成本虚拟仪器系统的主流。本文设计了基于 USB2.0高速传输的数据采集系统,整
个数据传输过程完全采用 DMA方式,达到了较高的数据传输速度。
1、系统介绍
系统总体结构如图1所示。采用Philips公司的微控制器 LPC2888作为系统核心控制器。前 端数据采集模块由一片 CPLD实现对数据采集和触发控制的功能。当系统和计算机成功连
接进入工作状态后,LPC2888从USB接口接收到来自应用程序的控制命令,然后通过控制 CPLD对数据采集模块采样通道、采样速率和触发模式进行配置后启动数据采集。 CPLD控
制模数转换器获取采样数据,同时配合 LPC2888通用DMA控制器的接口时序将采样数据
以DMA方式传输到LPC2888内部缓存。最后由 USB高速设备接口将采样数据从 LPC2888
内部缓存传输到计算机,在计算机中实现数据记录、数据处理和波形显示等功能。
b5E2RGbCAP
图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控制器内核及外部存搭枠頓挤 ? 杞鱸MA引擎,当USB接口运行在 DMA模式时, DMA引擎作为AHB总线上的主机,在 ARM内部缓存和USB设备控制器缓存之间传递数据, 传输过程不需要控制器内核程序的参与,所以能够达到较高的数据传输速度。 p1EanqFDPw
z\AHU ■誘片烈仏I」
zAHU ■
誘片烈仏I」
AT1R放机
FIFO XKD)
图2 USB高速设备控制器内部结构图
1.2数据采集模块 数据采集模块主要由信号调理电路、模数转换电路、触发控制电路和 CPLD构成。模数转
换器采用美国模拟器件公司 (ADI>推出的快速12位双通道模数转换器 AD923单双通道选 择和采样频率控制通过 CPLD控制逻辑来实现。DXDiTa9E3d
2、数据传输过程DMA方式的设计与实现
系统中数据传输过程包含两个环节,一个是从 CPLD到 LPC2888内部缓存,另一个是从
LPC2888内部缓存通过USB接口到计算机。两个环节都采用 DMA方式传输数据,两个环节
之间的协调通过 GPDMA控制器产生的半满、全满中断来实现。整个数据传输过程完全采 用DMA的传输方式,从而可以消除因微控制器固件程序执行较慢而造成的对数据传输速 度的影响。RTCrpUDGiT
2.1从CPLD至U LPC2888内部缓存的 DMA传输
CPLD从AD9238获得两个12位的转换结果,经过位数变换后送到 32位的数据信号线。数
据信号线直接连接到 LPC2888的P0 口 (32位〉。由于CPLD内部没有数据缓存过程,所以为 了保证不丢失采样点,从 CPLD到LPC2888内部缓存的DMA传输必须保证连续性和实时性。
为此,系统采取了如下解决方案: 5PCzVD7HxA
1>在LPC2888内部RAM中开辟两块相同大小的缓存空间: buffer1和buffer2。将通用
DMA控制器的通道3和通道5分别配置为搭枠頓挤 ? er2的DMA通道。jLBHrnAILg
2>配置DMA通道3和通道5为外部信号控制模式,由 CPLD作为DMA数据传输过程的主
机。
3> DMA通道3和通道5采用交替工作的方式,由 CPLD控制逻辑实现。
CPLD与LPC2888之间的硬件连接如图 3所示。其中DMAEn是DMA通道的外部使能控制信 号,其上升沿启动一次 DMA操作。DMAReq是DMA数据同步信号,该信号控制数据节拍,
每次DMA操作传输4096个数据。10 口 P2.0和P2.1分别为启动停止和采样模式选择控制 信号线,实现LPC2888对CPLD的控制。系统采用 Verilog HDL语言
显示全部