保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

基于USB总线的高速数据采集系统


在“端口”模式下,所有I/O引脚都可作为8051的通用I/O口。

在“从FIFO”模式下,外部逻辑或外部处理器直接与FX2端点FIFO相连。在这种模式下,GPIF不被激活,因为外部逻辑可直接控制FIFO。这种模式下,外部主控端既可以是异步方式,也可以是同步方式,并可以为FX2接口提供自己的独立时钟。

“GPIF主控”接口模式使用PORTB和PORTD

构成通向四个FX2端点FIFO( EP2? EP4? EP6和EP8)的16位数据接口。GPIF作为内部的主控制器与FIFO直接相连,并产生用户可编程的控制信号与外部接口进行通信。同时,GPIF还可以通过RDY引脚采样外部信号并等待外部事件。由于GPIF的运行速度比FIFO快得多,因此其时序信号具有很好的编程分辨率。另外,GPIF既可以使用内部时钟,也可以使用外部时钟。故此,笔者选择了GPIF模式。

高速数据采集卡的设计存在两大难点:一是模拟信号的A/D高速转换;二是变换后数据的高速存储及提取。对于第一个问题,由于制造ADC的技术不断进步,这个问题已经得到解决。而对于第二个问题,一般的数据采集系统是将A/D转换后的数据先存储在外部数据存储器中,然后再对其进行处理。对于高速数据采集而言,这种方式将严重影响采集速度,且存储值也会受到很大限制。而改进方案是将A/D转换后的数据直接送至计算机内存,这样,采集速度将大大提高,而且可存储大量数据,以便于下一步的处理。

为了解决同步问题,可以由CPLD产生同步时钟信号提供给ADC和FX2。在本数据采集系统的设计中,CPLD同时还可用于产生不同的控制信号,以便对采样进行实时控制。CPLD是复杂可编程逻辑器件,它包括可编程逻辑宏单元、可编程I/O单元和可编程内部连线。由于CPLD的内部资源丰富,因而可广泛应用在数据采集、自动控制、通讯等各个领域。在本系统的设计中,笔者选用的CPLD是Lattice公司的ispLSI1016。图2所示是其整个USB接口卡的硬件电路图。

3 系统软件设计

该系统软件主要包括USB设备驱动程序、设备固件和应用程序。

3.1 设备固件(Firmware)设计

设备固件是设备运行的核心,可采用汇编语言或C语言设计。其主要功能是控制CY7C68013接收并处理USB驱动程序的请求(如请求设备描述符、请求或设置设备状态,请求或设置设备接口等USB2.0标准请求)、控制芯片CY7C68013接收应用程序的控制指令、控制A/D模块的数据采集、通过CY7C68013缓存数据并实时上传至PC等。

即使外部逻辑或内置的普通可编程接口(GPIF)在没有CPU的任何干涉下能够通过四个大的端点FIFO来处理高速宽带数据,固件还是有如下固定的工作:

●配置端点;

●通过控制端点零来响应主机请求;

●控制和监测GPIF的活动;

●利用USART处理所有的特殊请求任务,如计时器、中断、I/O引脚等。

3.2 USB设备驱动程序开发

USB系统驱动程序采用分层结构模型?分别为较高级的USB设备驱动程序和较低级的USB函数层。其中USB函数层由两部分组成:较高级的通用串行总线驱动程序模块(USBD)和较低级的主控制器驱动程序模块(HCD)。

在上述USB分层模块中,USB函数层(USBD及HCD)由Windows提供,负责管理USB设备驱动程序和USB控制器之间的通信;加载及卸载USB驱动程序;与USB设备通用端点(endpoint)建立通信并执行设备配置、数据与USB协议框架和打包格式的双向转换任务。目前?Windows提供有多种USB设备驱动程序,但并不针对实时数据采集设备,因此需采用DDK开发工具来设计专用的USB设备驱动程序。该设备驱动程序应由初始化模块、即插即用管理模块、电源管理模块以及I/O功能等四个模块来实现。

初始化模块可提供一个DriverEntry入口点以执行大量的初始化函数。

即插即用管理模块用来实现USB设备的热插拔及动态配置。当硬件检测到USB设备接入时,Windows查找相应的驱动程序,并调用它的DriverEn-try例程,同时告诉它添加了一个设备;然后,驱动程序为USB设备建立一个FDO(功能设备对象)。在此处理过

《基于USB总线的高速数据采集系统(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/155272.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。