关 闭

新闻中心

EEPW首页 > 安全与国防 > 设计应用 > 基于uSB 2.0接口的高速数据采集系统设计

基于uSB 2.0接口的高速数据采集系统设计

作者: 时间:2010-06-11 来源:网络 收藏

2.1.1 软件设计的主要功能

  与软件设计主要有以下几种功能:初始化工作,包括设置一些特殊功能寄存器的初值以实现所需的设备属性或者功能,例如开中断,使能端点,配置端口等;辅助硬件完成设备的重新枚举过程,包括模拟设备的断开与重新连接,对接收到的设置包进行分析判断,从而对主机的设备请求作出适当的响应,完成主机对设备的配置任务;对中断的处理;数据的接收和发送;外围电路的控制。

  Cypress公司为了简化和加速用户使用EZ-USBFX2芯片进行USB外设的开发过程,提供了一个完整的固件程序的架构,可以在KEILC5l环境下开发,用户只需要提供一个USB描述符表,添加其他端点接收和发送数据的通信代码,以及控制外围电路的程序代码。由于开发框架的引入,大大缩短了用户的研发周期。

  2.1.2 软件设计的框架

  该框架由以下几部分组成:

  (1)Fw.C中包含了程序框架的MAIN函数,管理整个51内核的运行,因为Cypress对这个部分的功能进行了精心划分,一般是不用改动的。

  (2)用户必须将PERIPH.C实例化,他负责系统周边器件的互联。固件的设计主要针对这个文件,用户必须根据自己系统的需要,实例化这个文件,以实现自己的功能。在这个文件中有几个函数是比较关键的,在这里做特别说明:

  TD_Init函数 负责对USB端点进行初始化设置。在FX2再次枚举和开始任务分配前被调用,其目的是初始化各个端口以及各端口的先入先出缓冲区。

  TD_Poll函数 负责系统中循环任务的处理。他主要是对各个端点的状态进行查询,处理各种OUT或IN端点的交互。值得说明的一点是,这种处理只是辅助性质的,大部分工作由硬件自动完成。

  DR-VendorCmnd函数 主要负责用户自定义命令的译码工作,用户请求通过端点O传输给内核。由于CY7C68013上SIE硬件的支持,用户只需查询固定地址单元即可获得当前的命令代码。

  DSCR.A51是描述表文件,负责的描述工作,CY7C68013在上电后自动利用其中的VID和PID取代默认的VID和:PID。两个包含文件EZtJSB.LIB和US-BJMPTB.OBJ,前者是EZUSB函数库的二进制文件,后者是USB的中断向量表。

  固件调试,使用Cypress提供的EZ-LISB controlpanel,具体的操作读者可以参考其自带帮助。对编译好的固件代码,Cypress为LISB总线设备开发者提供了2种方法向。EZ一USB芯片下载8051固件代码:

  一种是主机通过软件下载固件从主机上下载8051固件代码,他为用户提供了很大的灵活性。这种方法充分利用EZ-USB内部的8 k RAM来装载8051代码和数据。由于EZ-USB具有重新枚举的能力,所以在初始化枚举以后,用户不需要断开设备就可以装载新的。设备描述符和8051程序代码都能通过主机中的磁盘文件下载;另外一种是由E2PROM通过I2C口来下载固件。EZ-USB支持外部E2PROM通过总线来下载固件,这种方式使开发者可以从外围硬件下载8051程序代码。

  2.2驱动程序设计

驱动程序是开发USB外设的一个关键,他在整个系统中处于主机端应用程序和设备端Firmware之间。他的主要作用是使操作系统能够识别,并建立起主机端和设备端之间的通讯。

  程序属于先进的wDM(Win32 Driver Mod-e1)驱动程序模式,支持即插即用功能。在wDM驱动程序模式中,每个硬件设备至少有2个驱动程序:一个为功能驱动程序,即硬件设备的驱动程序,他了解USB外设硬件工作的所有细节,负责初始化I/O操作;另一个为总线驱动程序,他负责管理USB外设与主机的连接,如检测接入主机的USB设备,并确定设备的资源使用情况等。总线驱动程序要负责枚举总线,并为每个设备创建一个PDO(物理设备对象)。当总线驱动程序发现有设备接人或拔出总线时,他要向上层驱动程序报告事件的发生。功能驱动程序位于总线驱动程序的上层,他要为设备创建一个FDO(功能设备对象)。程序也称客户驱动程序,他从不直接与硬件对话,仅靠创建USB请求块URB,并使用程序接口USBDI将URB提交到总线驱动程序就可以完成硬件操作。

  在windows操作系统下,开发wDM驱动程序可以有2种选择:一种是选择微软公司的DDK(驱动程序开发包)。DDK提供了创建wDM驱动程序的开发环境,并提供了用于开发Windows 2000和Windows XP驱动程序的头文件、库函数、源代码、各种工具和文档资料;另一种选择是使用一些驱动程序的辅助开发工具,比如Driver Stu-dio,windriver等,这些开发工具可以根据用户的需求,为用户自动生成驱动程序,用户只需要在生成驱动程序前,在向导框中按照提示填入自己的需求,并对生成的驱动程序做一些小的修改即可。

  Cypress FX2开发包提供了一个通用的驱动程序,可被用于基于EZ-系列芯片的设备。该程序可不加修改经DDK编译后直接使用,在应用中可以看到其运行稳定。当然,用户也可以以这个驱动程序为起点,创建自己的驱动程序。 2.3应用程序设计

  应用程序设计以驱动程序为桥梁,对15SB设备进行命令控制,处理设备传回的数据,例如波形显示、频谱分析等。采集系统的主机端工作在Windows操作系统下,所以主机端应用程序的设计需要windows平台下的开发工具如Visual C++,C++Builder。等。主机端软件的关键是实现从uSB设备读取指定数量的数据以及向USB设备发送指定数量的数据,另外,还有向USB设备发送USB标准设备请求和特定的命令,这种命令包括厂商定义的命令和用户自定义的命令。

  CypreSS FX2开发包提供的EZ-USB通用驱动程序为主机端的用户态应用程序提供IJSB标准设备请求和数据传输的接口。所有用户态程序访问EZ USB通用驱动程序都是通过I/OControl调用。用户态程序首先通过调用Win32函数CreatFile()得到设备驱动程序的句柄。然后调用win32函数DeviceloControl(),通过得到的句柄把I/O Control Code(IOCTL)和相关的输入输出缓冲区提交给驱动程序。用户程序框图如图4所示。

  

3 结 语

  随着笔记本电脑的迅速普及,高性能便携式采集系统将会受到工程师们越来越多的青睐,尤其是在RS 232接口已被大多数笔记本电脑摈弃的今天,对基于USB接口的数据采集系统的需求就变得更加迫切。在该高速同步数据采集系统的设计中,CY7C68013芯片灵活的接口和可编程特性简化了外部硬件的设计,提高了系统的可靠性,且利于设备的生产与调试。另外,设备的可热插拔特性使该系统具有便携式的特点,使用方便,无需关机重启或打开机箱进行安装。事实证明,该基于2.0接口的系统完全满足设计和使用要求。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭