微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > FPGA和CPLD > NiosⅡ和USB接口的高速数据采集卡设计

NiosⅡ和USB接口的高速数据采集卡设计

时间:11-08 来源:互联网 点击:
3 软件设计及实现

系统软件设计包括3部分:固件程序、USB设备驱动程序和应用程序。整个软件实现的功能包括系统初始化、采样控制、数据传输和波形显示。

3.1 固件程序设计

固件程序辅助硬件实现设备双向交换数据,以完成USB通信,其主要功能是:接收并处理USB驱动程序的请求及应用程序的控制指令,控制A/D转换器的采样。当首次插入USB时,FX2通过USB电缆会自动枚举且下载固件和USB描述符表;接下来,FX2再次枚举,这次主要通过下载的信息来定义设备。这两个步骤叫作重枚举。固件程序流程如图7所示。初始化包含各个初值的设置和关键点的电平检测。



在Cypress公司的网站上,可下载CY7(368013芯片的开发工具包。该开发包提供了一些开发固件程序所需的资源:Keil u Vision2集成开发环境(限制版)、Cypress C51固件框架程序以及一些例子程序。KeilCSl是一种专为8051单片机设计的高效率C语言编译器,符合ANSI标准,生成的程序代码运行速度极高,所需要的存储空间极小,完全可与汇编语言相媲美。同时,C51具有丰富的库函数,多达1O0多种功能函数。因此,采用C语言作为开发语言,以Keil uVision2作为工程开发平台,完成源代码的编写、仿真、调试,将在相当程度上降低固件开发难度,提高开发效率。      

3.2 USB设备驱动设计

USB设备驱动程序的设计是基于WDM(WindowsDriver Model,驱动程序模型)的。WDM采用分层驱动程序模型,分为较高级的USB设备驱动程序和较低级的USB函数层。其中USB函数层由两部分组成:较高级的通用串行总线模块(us—BD)和较低级的主控制器驱动程序模块(HCD)。

本设计用WinDK3.O开发了Win2000下的驱动程序,实现了控制传输、中断传输和批传输的标准接口函数。在应用程序开发中,可用VC++编制应用程序。把USB设备当成文件来操作,用Create—File得到USB句柄,用DevieeloControl来进行控制传输,用ReadFile、WriteFile进行批量传输。

3.3 应用程序设计

应用程序流程如图8所示。用户应用程序是数据采集系统的核心,其主要功能为:开启或关闭USB设备、检测USB设备、设置USB数据传输管道、设置A/D状态和数据采集端口、实时从USB接口采集数据、显示并分析数据。



4 结 论

用FPGA作为采集处理部分,可以提高系统处理的速度,大大增强系统的灵活性和适应性。FPGA技术和USB的组合,使得数据处理能力得到了极大的提高,且有利于系统升级。USB芯片采用了Cpyress公司的高性能USB2.0芯片CY7C68013,可以完全胜任大数据量的传送。该实例还可应用于实时数据采集、音频及压缩视频数据传输等领域。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top