基于USB总线的实时数据采集系统设计
发布时间:2008/5/27 0:00:00 访问次数:534
     谷海颖 来源:《电子技术应用》
     摘要:基于通用串行总线(usb)的实时数据采集系统的设计严格遵循usb1.1协议,充分体现usb便捷、易扩展、低成本、低干扰的特点。详细介绍系统的usb设备驱动程序、设备固体、应用程序的具体设计。
    
    
     关键词:通用串行总线
     实时数据采集 设备驱动程序
     现代工业生产和科学研究对数据采集的要求日益提高。目前比较通用的是在pc或工控机内安装数据采集板卡,如a/d卡及422、485卡。这些数据采集设备存在以下缺陷:安装麻烦;价格昂贵;受计算机插槽数量、地址、中断资源限制,可扩展性差;在一些电磁干扰性强的测试现场,无法专门对其做电磁屏蔽,导致采集的数据失真。
     通用串行总线(universal serial bus,简称usb)是1995年康柏、微软、ibm、dec等公司为了解决传统总线的不足推广的一种新型串行通信标准。该总线接口具有安装方便、高带宽、易扩展等优点,已经逐渐成为现代数据传输的发展趋势。基于usb的数据采集系统充分利用usb总线的上述优点,有效解决了传统数据采集系统的缺陷。
     1 系统硬件设计
     1.1 硬件总体结构
     usb实时数据采集系统硬件模块包括a/d转换器、微控制器、usb通信接口和多路模拟开关。硬件总体结构如图1所示。
     1.2 usbn9602芯片
     usb接口芯片采用national semiconductor公司的一种专用芯片usbn9602。该芯片内部集成微处理器接口、fifo存储器、时钟发生器、串行接口引擎(sie)、收发器、3.3v电压转换器,支持dma、微波接口,内部结构如图2所示。
     微控制器通过8位的并行接口传送a/d采集的数据,存储在fifo存储器中;一旦fifo存满,sie立刻对数据进行处理,其中包括:同步模式识别、并/串转换、位填充/解填充、crc产生与校验、地址识别、握手响应与产生、usb特殊事件(reset、suspend、resume)检测;最后由收发器通过数据线(d+、d-)传送数据至pc。上述过程严格遵守usb1.1协议。usbn9602与89c52的具体实现电路如图3所示。
    
     2 系统软件设计
     系统软件包括usb设备驱动程序、设备固件、应用程序。
     2.1 usb设备驱动程序开发
    
    
    
     usb系统驱动程序采用分层结构模型:较高级的usb设备驱动程序和较低级的usb函数层。其中usb函数层由两部分组成:较高级的通用串行总线驱动程序模块(usbd)和较低级的主控制器驱动程序模块(hcd)。它们的层次关系如图4所示。
     在上述usb分层模块中,usb函数层(usbd及hcd)由windows98提供,负责管理usb设备驱动程序和usb控制器之间的通信;加载及卸载usb驱动程序;与usb设备通用端点(endpoint)建议通信来执行设备配置、数据与usb协议框架和打包格式的双向转换任务。目前windows98提供了多种usb设备驱动程序,但并不针对实时数据采集设备,因此需采用ddk开发工具设计专用的usb设备驱动程序。可以由四个模块实现:初始化模块、即插即用管理模块、电源管理模块以及i/o功能实现模块。
     初始化模块提供一个driverentry入口点来执行大量的初始化函数。
     即插即用管理模块实现usb设备的热插拔及动态配置。当硬件检测到usb设备接入时,winodws98查找响应的驱动程序,并调用它的driverentry例程,pnp管理器调用驱动程序的adddevice例程,告诉它添加了一个设备;然后,驱动程序为usb设备建立一个fdo(功能设备对象),在此处理过程中,驱动程序收到一个irp_mn_start_device的irp,包括设备分配的资源信息。至此,设备被正确配置,驱动程序开始
     谷海颖 来源:《电子技术应用》
     摘要:基于通用串行总线(usb)的实时数据采集系统的设计严格遵循usb1.1协议,充分体现usb便捷、易扩展、低成本、低干扰的特点。详细介绍系统的usb设备驱动程序、设备固体、应用程序的具体设计。
    
    
     关键词:通用串行总线
     实时数据采集 设备驱动程序
     现代工业生产和科学研究对数据采集的要求日益提高。目前比较通用的是在pc或工控机内安装数据采集板卡,如a/d卡及422、485卡。这些数据采集设备存在以下缺陷:安装麻烦;价格昂贵;受计算机插槽数量、地址、中断资源限制,可扩展性差;在一些电磁干扰性强的测试现场,无法专门对其做电磁屏蔽,导致采集的数据失真。
     通用串行总线(universal serial bus,简称usb)是1995年康柏、微软、ibm、dec等公司为了解决传统总线的不足推广的一种新型串行通信标准。该总线接口具有安装方便、高带宽、易扩展等优点,已经逐渐成为现代数据传输的发展趋势。基于usb的数据采集系统充分利用usb总线的上述优点,有效解决了传统数据采集系统的缺陷。
     1 系统硬件设计
     1.1 硬件总体结构
     usb实时数据采集系统硬件模块包括a/d转换器、微控制器、usb通信接口和多路模拟开关。硬件总体结构如图1所示。
     1.2 usbn9602芯片
     usb接口芯片采用national semiconductor公司的一种专用芯片usbn9602。该芯片内部集成微处理器接口、fifo存储器、时钟发生器、串行接口引擎(sie)、收发器、3.3v电压转换器,支持dma、微波接口,内部结构如图2所示。
     微控制器通过8位的并行接口传送a/d采集的数据,存储在fifo存储器中;一旦fifo存满,sie立刻对数据进行处理,其中包括:同步模式识别、并/串转换、位填充/解填充、crc产生与校验、地址识别、握手响应与产生、usb特殊事件(reset、suspend、resume)检测;最后由收发器通过数据线(d+、d-)传送数据至pc。上述过程严格遵守usb1.1协议。usbn9602与89c52的具体实现电路如图3所示。
    
     2 系统软件设计
     系统软件包括usb设备驱动程序、设备固件、应用程序。
     2.1 usb设备驱动程序开发
    
    
    
     usb系统驱动程序采用分层结构模型:较高级的usb设备驱动程序和较低级的usb函数层。其中usb函数层由两部分组成:较高级的通用串行总线驱动程序模块(usbd)和较低级的主控制器驱动程序模块(hcd)。它们的层次关系如图4所示。
     在上述usb分层模块中,usb函数层(usbd及hcd)由windows98提供,负责管理usb设备驱动程序和usb控制器之间的通信;加载及卸载usb驱动程序;与usb设备通用端点(endpoint)建议通信来执行设备配置、数据与usb协议框架和打包格式的双向转换任务。目前windows98提供了多种usb设备驱动程序,但并不针对实时数据采集设备,因此需采用ddk开发工具设计专用的usb设备驱动程序。可以由四个模块实现:初始化模块、即插即用管理模块、电源管理模块以及i/o功能实现模块。
     初始化模块提供一个driverentry入口点来执行大量的初始化函数。
     即插即用管理模块实现usb设备的热插拔及动态配置。当硬件检测到usb设备接入时,winodws98查找响应的驱动程序,并调用它的driverentry例程,pnp管理器调用驱动程序的adddevice例程,告诉它添加了一个设备;然后,驱动程序为usb设备建立一个fdo(功能设备对象),在此处理过程中,驱动程序收到一个irp_mn_start_device的irp,包括设备分配的资源信息。至此,设备被正确配置,驱动程序开始
上一篇:USB2.0特性及USB单片机