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,可以完全胜任大数据量的传送。该实例还可应用于实时数据采集、音频及压缩视频数据传输等领域。
系统软件设计包括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,可以完全胜任大数据量的传送。该实例还可应用于实时数据采集、音频及压缩视频数据传输等领域。
DSP 总线 ADI USB FPGA 电路 传感器 Cypress 收发器 Quartus ADC 电流 放大器 CMOS Keil 单片机 C语言 仿真 相关文章:
- 基于FPGA的片上系统的无线保密通信终端(02-16)
- 基于Virtex-5 FPGA设计Gbps无线通信基站(05-12)
- FPGA作为协处理器在实时系统中的应用(04-08)
- 学习FPGA绝佳网站推荐!!!(05-23)
- 我的FPGA学习历程(05-23)
- 基于Spartan-3A DSP的安全视频分析(05-01)