高速数据采集系统中的USB设备驱动开发
usb2 0 高速实时数据采集系统的设计与实现

usb2 0 高速实时数据采集系统的设计与实现usb2 0 高速实时数据采集系统的设计与实现文章编号:1009-8119(2004)04-0000-00 USB2.0高速实时数据采集系统的设计与实现任敬辉吴嗣亮(北京理工大学电子工程系,北京,100081)摘要介绍了一种基于USB2.0的高速实时数据采集系统的硬件及固件程序设计方案,及在不同的DSP、单片机之间移植固件程序的方法和调试过程中可能出现的问题及解决办法。
关键词USB2.0,DSP,ISP1581,数据采集Design and Implementation of the High-Speed Real-time Data Collection System Based on USB2.0 Ren JingHui Wu Siliang (Department of Electronics Engineering, Beijing Institute of Technology, Beijing, 100081, China)Abstract To introduce the hardware design for the high-speed real-time data collection system based on USB2.0. To introduce the design of firmware and how to migrate it to various DSP and microprocessor. Keywords USB2.0, DSP, ISP1581, Data Collection 高速数据采集中,数据采集速率通常会达到几兆甚至几十兆字节每秒。
在这些大批量的数据面前,通常的存储设备是无能为力的。
在众多的解决方案中,将数据实时的传输到PC机上存储成为方案中的首选。
目前应用于PC的接口中,标准的串口速率只能达到230Kbps,虽然标准的并行口是串口速率的8倍,可仍不能满足实际的需求,因此需要有更快、更稳定的接口来解决这个问题。
基于VISA技术的高速USB数据采集系统

基于V I SA 技术的高速USB 数据采集系统苏兰兰, 施伟峰(上海海事大学,上海 200135) 摘 要:高速US B 数据采集系统的设计严格遵循US B2.0协议,实现了主机和测试设备之间简单、快速、可靠的连接和通信。
该文介绍了这种数据采集系统的硬件组成、驱动程序和固件程序的设计以及采用虚拟仪器软件Lab W indows/CV I 在V I S A 技术上开发应用程序的设计方法。
关键词:V I S A;Lab W indo ws/CV I ;US B;高速数据采集 中图分类号:TP274 文献标识码:A 文章编号:100528354(2007)0420036204VI SA 2based hi gh speed USB DAQ syste mS U Lan 2lan,SH IW ei 2feng(ShangHaiMariti m e University,Shanghai 200135,China )Abstract :The design of this high 2speed USB DAQ syste m abides by protocol USB 2.0so strictly that it can a 2chieve a si m ple,fast and reliable connection co mm unication bet w een the host and USB devices .This paper in 2troduces the co m position of hardw ares of this syste m ,the design of its driver and fir mw are program s and the m ethod by w hich the virtual instrum ents soft ware Lab w indo w s /CV I is adopted to develop V ISA 2based application program s .Key words :V irtual Instrum ent Soft w are A rchitecture (V ISA );L ab W indo w s /CV I ;Universal Serial B us(USB );High Speed DAQ收稿日期:2006210208作者简介:苏兰兰(19762),女,硕士,研究方向为:控制理论与控制工程,容错控制,神经网络控制等。
基于USB的多通道高速数据采集系统设计

基于USB的多通道高速数据采集系统设计作者:吴诗豪来源:《管理观察》2009年第10期摘要:介绍了一种基于USB的多通道高速数据采集系统,给出了系统实现的具体方案,并对各部分硬件电路的设计进行了阐述。
对FPGA内部各主要功能模块设计做了简要介绍。
该系统可以在硬件平台不变的情况下,通过改变软件程序实现不同功能和技术指标的系统,具有较高的通用性和实用价值。
关键词:多通道数据采集 USB1.引言随着大规模集成电路与计算机科学技术的发展,数据采集技术将在雷达、通信、水声遥感、语音处理、智能仪器、工业自动化以及生物医学工程等众多领域得到广泛的应用。
USB(Universal Serial Bus,通用串行总线)是一种计算机和外部设备进行通信连接的新型接口,具有速度快、设备安装和配置容易、易于扩展、使用灵活、兼容性好的特点[1]。
本设计采用AD9239实现四通道数据采集,其采样速率可达到200MHz,采集后的数据穿行送入FPGA中,完成数据采集后的存储与预处理,对处理后的数据通过USB接口实现与PC 机之间通信。
为了可以产生200MHz的时钟电路,本设计采用了ADI公司AD9516实现所需要的时钟[2]。
2.系统工作原理及组成该多通道高速数据采集系统主要包括了AD9516系统时钟产生电路、信号调理电路、模拟数字转换电路、FPGA及其外围电路以及USB接口电路。
具体的多通道高速数据采集系统原理框图如图1所示。
2.1 时钟电路设计AD9516是一款集低相位噪声时钟发生和低抖动14通道时钟分配功能于一体的时钟分配器。
其内部集成1个整数N分频的频率合成器、2个参考输入端、1个压控振荡器(VCO)、可调延迟线和14个时钟驱动器,还包括LVPECL、LVDS和CMOS输出。
另外,片内集成的VCO 可提高系统可靠性。
14个输出通道分别为6路(3对)时钟可高达1.6 GHz的LVPECL输出和4路(2对)时钟高达800 MHz的LVDS输出,LVDS时钟输出可选为高达200 MHz的两通道CMOS 输出。
USB接口的高速数据采集卡的设计与实现

USB接口的高速数据采集卡的设计与实现现代工业生产和科学研究对数据采集的要求日益提高,在瞬态信号测量、图像处理等一些高速、高精度的测量中,需要进行高速数据采集。
现在通用的高速数据采集卡一般多是PCI卡或ISA卡,存在以下缺点:安装麻烦;价格昂贵;受计算机*槽数量、地址、中断资源限制,可扩展*差;在一些电磁干扰*强的测试现场,无法专门对其做电磁屏蔽,导致采集的数据失真。
通用串行总线USB是1995年康柏、微软、IBM、DEC等公司为解决传统总线不足而推广的一种新型的通信标准。
该总线接口具有安装方便、高带宽、易于扩展等优点,已逐渐成为现代数据传输的发展趋势。
基于USB的高速数据采集卡充分利用USB总线的上述优点,有效解决了传统高速数据采集卡的缺陷。
1USB数据采集卡原理1.1USB简介通用串行总线适用于净USB*设备连接到主机上,通过PCI总线与PC内部的系统总线连接,实现数据传送。
同时USB又是一种通信协议,支持主系统与其外设之间的数据传送。
USB器件支持热*拔,可以即*即用。
USB1.1支持两种传输速度,既低速1.5Mbps和高速12Mbps,在USB2.0中其速度提高到480Mbps。
USB具有四种传输方式,既控制方式(Controlmode)、中断传输方式(Interruptmode)、批量传输方式(Bulkmode)和等时传输方式(Iochronousmode)。
考虑到USB传输速度较高,如果用只实现USB接口的芯片外加普通控制器(如8051),其处理速度就会很慢而达不到USB传输的要求;如果采用高速微处理器(如DSP),虽然满足了USB传输速率,但成本较高。
所以选择了TI公司内置USB接口的微控制器芯片TUSB3210,开发了具有USB接口的高速数据采集卡。
1.2系统原理图系统原理图如图1所示。
整个系统以TUSB3210为核心,负责启动A/D转换,控制FIFO 的读写及采样频率的设定,与主机之间的通信及数据传输。
基于FPGA和USB的高速数据实时采集系统的设计和实现

0 引言现代工业自动化的发展日新月异,各个领域对数据采集的质量和速度要求都在不断提高。
传统的数据采集设备多采用固定数据接口如USB、串口、网口、SPI 等,本系统中由于项目特殊需求,需要对高速IO 数据进行实时采集传输,所以不能采用传统的仅以DSP 或ARM 作为控制核心的系统设计[1]。
由于FPGA 具有时钟频率高、内部延时小、开发周期短、运算速度快、编程配置灵活、集成度高、功耗低、内部资源丰富等优点,所以本系统中加入了FPGA 芯片控制。
所以,本文设计了一种 FPGA+STM32+USB3300+上位机架构的高速IO 实时数据采集系统,当前硬件配置最高支持IO 的传输速率为30Mb/s,理论上该系统的速度仅受限于SPI实时分析处理。
1 系统原理及组成1.1 系统框架本系统总体架构如图1所示,主要包含FPGA 硬件缓冲及转换协议模块、STM32数据采集及传输模块、USB3300数据上传模块,上位机实时接收及存储模块。
1.2 系统工作原理系统上电后,用户打开上位机采集界面,启动采集,STM32收到命令以后,开始通过SPI 读取FPGA 数据;收到的数据满一包之后,STM32传输数据到USB3300芯片,该芯片通过USB 驱动上传数据给上位机,上位机监测到数据即读取芯片控制电路,STM32F407核心控制电路和USB3300传输通信电路。
FPGA 控制电路比较简单,因为其编程配置灵活,其大部分IO 口可以根据需要配置,在本系统中该芯片主要作用是IO 数据缓UARTetc. Therefore, the system is compatible with multi interface protocol, fast transmission speed, simple structure, real-time and high reliability. After many tests, it is proved that the system can be applied to high-speed data transmission and acquisition, and can meet the requirements of real-time data transmission.Keywords: FPGA ;STM32;USSB3300;USB ;multi interface protocol ;high-speed ;real-time2.2 STM32和USB3300原理图本系统中STM32及USB3300的电路设计都是采用的数据手册推荐设计,如下图3所示。
基于USB接口的高速信号采集系统设计

通讯技术数码世界 P.38基于USB接口的高速信号采集系统设计丁传勇 刘婧 翁铁 张燕 天津博远华信科技有限公司摘要:USB接口具有很广的应用,本文把USB3.0与FPGA协议进行高度结合,设计基于USB接口的高速信号采集系统,可供相关人员进行参考。
关键词:USB接口 FPGA通信协议 信号采集USB3.0采用了双总线拓扑结构,可以实现数据的串行通信,无须等待应答包则可以同时同方向输出多个数据包,还可以实现对其它版本USB的兼容,可以有效对数据传送过程中的干扰进行处理。
该串行通信系统中的两条总线采有通信电缆和连接器实现并连,采用星型的拓扑结构,超速总线利用分层的数据信息通信架构,利用了8b/10b 编码和解码方式,可以实现编码过程中的DC平衡,数据信息传送过程中的0、1数量基本一致,持续的0、1数量不会超过5个。
编码的原理是把持续的8位数据划分成低5位数据、高3位数据,两组数据之间填加1个数据控制位,成为10位的数据组。
在进行解码时,把这10位数据转变成contrl+8bi的数据信息,两个控制位可以使USB3.0可以对以下版本进行兼容。
可以实现同步的数据传输、中断传输、控制传输以及块传输,而块传输方式具有超高速数据通信的功能。
1系统硬件设计高速数据采集系统需要等待开关控制信号接通,之后把信号接入到调理电路中滤波、去噪。
再通过模数转换之后传输到USB3.0端口,从而实现数据采集的全过程。
在具体应用过程中,需要利用USB端口把数据采集系统与PC机进行数据连接,通过系统初始化之后,再经过I2C电路和FX3控制芯片来接收到USB端口传送过来的固件程序,对寄存器进行初始化操作之后,再设置好外围电路运行状态,数据采集系统的上位机便可以数据接收。
高速数据采集系统是由软、硬件两部分构成,硬件主要有电源模块、信号调理模块,数据采集处理模块、高速数据传输模块和其它的辅助模块构成。
控制模块的核心主要为FPGA,而数据采集的实现主要依据A/D转换,高速数据传输的技术核心在于USB。
基于DSP和USB的高速数据采集与处理系统设计
基于DSP和USB的高速数据采集与处理系统设计在图像数据处理系统中,经常需要对高速信号举行采集与处理。
例如,在光传感技术中对光脉冲散射信号的测量,在雷达工程中对电磁脉冲信号的测量等,都需要对高速信号举行采集与运算,而且此类高速信号的测量,往往对数据采集与处理系统提出严格的要求。
本文设计并实现一种基于和的高速数据采集与处理系统。
该系统容易,牢靠性好,具有一定的通用性,并且可以举行多通道扩展。
1 原理概述基于DSP和USB的高速数据采集与处理系统的原理框图1所示。
系统上电后,DSP、分离由各自的FLASH加载程序,采集与处理系统开头运行。
在A/D变换器完成转换后由FPGA向DSP发送中断0申请信号,DSP从A/D FIFO RAM中读取数据,并举行小波变换去噪处理,处理结束后DSP 向USB控制器发送中断申请信号,USB控制器将处理后的数据发送至PC机,由主机应用程序显示数据。
主机应用程序还可以对囫囵采集、处理系统举行控制,主要设定三个功能:接收处理后的数据,接收处理前的数据,设定A/D的采样频率和采样点数。
2 系统硬件设计系统硬件设计主要分为三大部分:DSP部分、FPGA部分、USB部分。
2.1 DSP部分设计本系统用法的DSP芯片为TI()公司的TMS320VC33,它是TI公司推出的性价比极高的32位浮点型数字信号处理芯片,是目前在国内外用法最为广泛的浮点DSP之一。
TMS320VC33具有以下特点:哈佛结构;流水线操作;专用的硬件乘法器;特别的DSP命令;迅速的命令周期。
另外,TMS320VC33还具有强大的浮点运算能力,运算速度可达150MFLOPS(每秒百万次浮点运算),处理能力达到75(每秒百万次命令周期)。
而且,它还采纳3.3V I/O第1页共4页。
【系统】基于USB接口的高速数据采集系统
【关键字】系统基于USB接口的高速数据采集系统摘要通用串行总线USB(Universal Serial Bus)是一种新型的总线传输方式。
随着客户对系统数据采集速度要求的不断提高,USB作为一种新型的接口技术,以其简单易用、速度快而被广大用户所接受。
在科学研究或实验室的很多场合,一般采用微处理器和USB接口芯片相结合的方式来完成控制系统的数据采集。
因此,本论文所阐述的数据采集系统采用PHILIPS公司的USB接口芯片D12与单片机进行通信,并和PC机通信而编制出友善的设备应用程序。
该系统用传统的USB总线取代了RS232串行总线,通过对USB协议和设备构架的充分理解,对以单片机89C52和USB接口芯片D12为主的数据采集系统进行了硬件设计和软件编程,并在此设计的基础上给出相应的原理图和硬件开发板。
硬件设计主要解决的是D12与单片机之间的接口电路问题,软件编程大致分为三部分:一是为满足D12在USB上的最大传输速率而编写的固件程序;二是在PC机中的Windows 2000工作环境下编写USB设备驱动程序;三是充分了解D12的主要功能特点,并编写出供设备测试的应用程序。
通过该数据采集系统,我们可以对USB协议有很深刻的理解,对D12接口芯片有很熟练的应用,能更好领悟USB接口的优势。
关键词:通用串行总线;数据采集;接口芯片;协议;固件编程;设备驱动程序;客户应用程序A high-speed data collection system based on the interface of USBABSTRACTUniversal Serial Bus is a new-style bus transmission model. With the advance of the client’s requirement on data collection of a system, as a late-model interface technology, USB is well accepted by vast clients because of its simplicity and high speed. In the fields of science research and laboratory, data collection of a controlled system has usually been accomplished by microprocessor and USB interface chip. So this article sets forth these tasks as follows: singlechip programs the fireware to the USB interface chip——PDIUSBD12; communication appears between D12 and up-location computer and man-machine mutual interface comes into being; lots of data from the industry spot are printed, analyzed and disposed on time. On the base of wonderful understanding to USB protocol and device truss, I finish the hardware design and software programme of the data collection system. And draw the principle chart and make the hardware exploitation board. The software programme mainly includes: the fireware code in need of Ds maximum transmission rate; USB device driver and client application under the circustance of Win2000 operation system in computer. After this data collection system, we can understand the USB protocol profoundly and apply the interface chip—PDIUSBD12 proficiently. In all, the advantages of this interface technique may helps to your design arrangement.Key Words: universal serial bus; data collection; interface chip; protocol; fireware program; device driver; client application目录7.4.1 Win32应用程序对WDM的通信......................... 错误!未定义书签。
高速USB数据采集系统方案设计
高速USB数据采集系统方案设计在数据采集系统方案设计数据采集系统的框CY7C68013 和AD1674 之间通过CPLD 连接,实现相关控制线和数据线的译码。
在CY7C68013 的控制下,首先对AD1674 进行间隔采样,然后把结果传送到FIFO 中,当采集到一定量的数据后,CY7C68013 将数据打包通过USB 总线传到PC,由高级应用程序进行数据处理。
扩展的RS232($780.5000) 接口可以和外部设备进行通信。
上电时,CY7C68013 从外部的E2PROM 中通过I2C 总线自动装载到内部的RAM 中,便于固件的修改和升级。
数据采集前端的调理电路如驱动程序和固件设计USB 设备驱动程序基于WDM。
WDM 型驱动程序是内核程序,与标准的Win32 用户态程序不同,采用了分层处理的方法。
通过它用户无须直接与硬件打交道,只需通过下层驱动程序提供的接口访问硬件。
因此,USB 设备驱动程序不必具体对硬件编程,所有的USB 命令、读写操作通过总线驱动程序转给USB 设备。
但是,USB 设备驱动程序必须定义与外部设备的通信接口和通信的数据格式,也必须定义与应用程序的接口。
Cypress 公司提供了完整的CY7C68013 驱动程序源码、控制面板程序及固件的框架,这大大加快了用户开发的进度。
用户只需稍加修改或无须任何修改即可使用现有驱动程序,软件开发者大量的时间主要集中在应用程序和固件的开发。
根据用户自己的需求,一般只需修改DeviceIoControl 例程。
本设计主要增加了控制数据传输函数、启动和停止ADC、复位FIFO 等。
Cypress 为CY7C68013 提供了开发框架,其中两个程序如下。
USB设备驱动开发-USBGadgetDriver
USB设备驱动开发-USBGadgetDriver一、Linux USB Gadget Driver功能为了与主机端驱动设备的USB Device Driver概念进行区别,将在外围器件中运行的驱动程序称为USB Gadget Driver。
其中,Host 端驱动设备的驱动程序是master或者client driver,设备端gadget driver是slave或者function driver。
Gadget Driver和USB Host端驱动程序类似,都是使用请求队列来对I/O包进行缓冲,这些请求可以被提交和取消。
它们的结构、消息和常量的定义也和USB技术规范第九章的内容一致。
同时也是通过bind和unbind将driver与device建立关系。
二、Linux USB Gadget Driver核心数据结构1. USB_Gadget对象struct usb_gadget {/* readonly to gadget driver */const struct usb_gadget_ops *ops; //Gadget设备操作函数集struct usb_ep *ep0; //控制端点,只对setup包响应struct list_head ep_list;//将设备的所有端点连成链表,ep0不在其中enum usb_device_speed speed;//高速、全速和低速unsigned is_dualspeed:1; //是否同时支持高速和全速unsigned is_otg:1; //是否支持OTG(On-To-Go)unsigned is_a_peripheral:1;unsigned b_hnp_enable:1;unsigned a_hnp_support:1;unsigned a_alt_hnp_support:1;const char *name; //器件名称struct device dev; //内核设备模型使用};2. Gadget器件操作函数集操作UDC硬件的API,但操作端点的函数由端点操作函数集完成struct usb_gadget_ops {int (*get_frame)(struct usb_gadget *);int (*wakeup)(struct usb_gadget *);int (*set_selfpowered) (struct usb_gadget *, int is_selfpowered);int (*vbus_session) (struct usb_gadget *, int is_active);int (*vbus_draw) (struct usb_gadget *, unsigned mA);int (*pullup) (struct usb_gadget *, int is_on);int (*ioctl)(struct usb_gadget *, unsigned code, unsigned long param);};3. USB Gadget driver对象struct usb_gadget_driver {char *function; //驱动名称enum usb_device_speed speed; //USB设备速度类型int (*bind)(struct usb_gadget *); //将驱动和设备绑定,一般在驱动注册时调用void (*unbind)(struct usb_gadget *);//卸载驱动时调用,rmmod时调用int (*setup)(struct usb_gadget *, const struct usb_ctrlrequest *); //处理ep0的控制请求,在中断中调用,不能睡眠void (*disconnect)(struct usb_gadget *); //可能在中断中调用不能睡眠void (*suspend)(struct usb_gadget *); //电源管理模式相关,设备挂起void (*resume)(struct usb_gadget *);//电源管理模式相关,设备恢复/* FIXME support safe rmmod */struct device_driver driver; //内核设备管理使用};4.描述一个I/O请求struct usb_request {void *buf; //数据缓存区unsigned length; //数据长度dma_addr_t dma; //与buf关联的DMA地址,DMA传输时使用unsigned no_interrupt:1;//当为true时,表示没有完成函数,则通过中断通知传输完成,这个由DMA控制器直接控制unsigned zero:1; //当输出的最后一个数据包不够长度是是否填充0unsigned short_not_ok:1; //当接收的数据不够指定长度时,是否报错void (*complete)(struct usb_ep *ep, struct usb_request *req);//请求完成函数void *context;//被completion回调函数使用struct list_head list; //被Gadget Driver使用,插入队列int status;//返回完成结果,0表示成功unsigned actual;//实际传输的数据长度};5.端点struct usb_ep {void *driver_data; //端点私有数据const char *name; //端点名称const struct usb_ep_ops *ops; //端点操作函数集struct list_head ep_list; //Gadget设备建立所有端点的链表unsigned maxpacket:16;//这个端点使用的最大包长度};6.端点操作函数集struct usb_ep_ops {int (*enable) (struct usb_ep *ep, const struct usb_endpoint_descriptor *desc);int (*disable) (struct usb_ep *ep);struct usb_request *(*alloc_request) (struct usb_ep *ep, gfp_t gfp_flags);void (*free_request) (struct usb_ep *ep, struct usb_request *req);int (*queue) (struct usb_ep *ep, struct usb_request *req, gfp_t gfp_flags);int (*dequeue) (struct usb_ep *ep, struct usb_request *req);int (*set_halt) (struct usb_ep *ep, int value);int (*set_wedge) (struct usb_ep *ep);int (*fifo_status) (struct usb_ep *ep);void (*fifo_flush) (struct usb_ep *ep);};7.字符串结构struct usb_gadget_strings {u16 language; /* 0x0409 for en-us */struct usb_string *strings;};struct usb_string {u8 id; //索引const char *s;};8. UDC驱动程序需要实现的上层调用接口int usb_gadget_register_driver(struct usb_gadget_driver *driver);int usb_gadget_unregister_driver(struct usb_gadget_driver *driver);三、UDC驱动程序1.UDC层主要数据结构,以S3C2410为例,在driver/usb/gadget/s3c2410_udc.c和s3c2410_udc.h 文件中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
下, 代码 被严格约束在对 系统 没有损害的范 围
内, 应用程序通过 发送 I PI eu s  ̄ I R ( R q et 1/ O )] 0 管 理器 , 实现 与硬件 的 交互 。而 内核模式 下, 驱动程 序属于操作系统的一部分 , 可使用任
科技创新导报 Sce c n e h oo Y In v t n H r l in e a d T c n lg - n o a i e ad o
2 5
维普资讯
!塑
盟 Q:
Sci ce en and Te chno ogy nn l l ovaton i He al r d
一
2 外设再一次接收 到 GeD srpo 请 ) t eci tr 求 主机分 析描 述符的 信息 。主机 操作 系统
根据 描述符 信息 寻找相应 的设 备驱动程 序 。 3操作系统会继续发出 G t o f ua n ) eC n i rgo g 请求 , 读取 设 备的 配置 信息 。要 把外 设的 各 个端 点的 配置情 形 回送到 主机 中 。 4在设备能通讯前 , ) 主机给外设一个 S t eC o fg r to n iu ain请求 , 主机根据整个系统的 US B 使用情况确认 设备 的哪一个配置有效 , 告诉 其 怎样 工作, 设备收到后调整有关配置 , 使设备能
维普资讯
!业 Q:
T 技 术
Sci ence an d Tech l ogy nn rol l ovston i He al r d
高速数据采集 系统 中的 U B设备 驱动开发 S
李鑫 ( 南京工业大 学信息 科学与工程学院 南京 2 0 ) 0 9 l 0
何计 算 机 资 源 。 US B驱动程序工作在 内核模 式下 , 调 通过 用客户驱动程 序接 口 US DIUS D i e B ( B rv r I tra e达 到控制硬件 的 目的。所有的 l n efc) /
图 3 数 据读取监测终 端
0都是 由低层的设备类驱 动程序实现 , 户驱 客 动程 序 只需要 关心 传输端 点、 传输管 道及传
1引 言
硬件设备与控制终端之 间的高速数据通信
要 的 实 用价 值 。
地址 , 此时的 US B设备成为被主机承认的合理 外设 , 可以进 行正 常的数据传送 ,
S 总线数据 交互过程 始终是开发高速数据采集与传输系统的一 个难 2UB 个U B S 设备与 P C连接时 , n o s Wid w 必 点 。随着 US 2 0 B . 技术的成熟与发展 , 来越 越 多 的 工程应 用选 用具 有即 插即 用 ,热 拔插 、 须通过枚举 来判断所连接 的 US B设备 类型及 如电源 , 点类型 , 端 端点值及产 品 高带宽 、低功耗 及安装简单等优 点的 U B总 其所需参数 , S 线技术作为高速数 据传输解决方 案 , 见基于 类别 等。该 过程 即所谓 的枚 举过程 。通过 枚 常 主机将给该设备分配一个地址 , 并配置相应 U B S 的高速数据采集系统的一般结构如 图1 所 举 ,
合理使用 。 枚举后的 U B设备 已经连接 在系统 上, S 并 准备 传送 数据 。完 整的 数据 传输过 程 如 图 2 所示 。
U B S 设备
— — — — — — — — — — ~
参数使 该设备能 够通过 US 总线 传输数 据。 B 般 来说 , n o 的枚举过程包含 以下几个 Wi d WS 20 0 3由于其高 可靠性和稳定性 及方便易用 等 特性 , 日 成为数据控制终端 的主流系统乎 步骤 : 正 益 台。因此 , 进行 W d ws S r e 0 3 台 i o ev r 2 0 平 n 1US ) B设备插入后 , 机使用默认状态复 主 下的 U B驱动开发对 于高速数采系统具 有重 位设备 , S 并要 求 设备发送 6 4字 节的 设备描述 符, 收到 8 字节的设 备描 述符后 , 设备获得 唯一
3利用 WD M开发驱动程序
W D 是微软公司发布的 Wi o M nd ws驱动
开发模型 , 用 WD 可大大简化驱动程序开 利 M 发的复杂度 , 提高开发 效率。WDM 采用分 层 模型 , 实现用户在应用程 序和 物理设备之 间的 数据传输 , 其每一 层的 驱动程序都对应 了一个 设备 对 象 。为 实现 系统 的稳 定性 和 可靠 性 , Wid ws S r e 0 3 n o ev r 2 0 驱动程序分 别工作在
摘 要: 本文 阐述 了利用微 软驱动开发模 型( wDM) 开发 的 U B设备驱动程序的基本方 法, S 分析 了主机 与 U B设备之 间的数据 交互过程 S 并 通过 实际应用 U B技术 的高速数据采 集系统 开发过 程说 明进行 U B总线接 口和 W M驱动程序设计的一般流程 。 S S D 关键词 : S 2 0 W rv rtdo Widws驱 动程序 U B . DM D ieSu i n o 中图分类号 : 3 . TP 1 7 6 文献标识码 : A 文章编号 : 6 4 0 8 ( 0 8 0 () 0 5 0 1 7 - 9 x 2 0 ) 1a一0 2 - 2
示 。另一方 面 , 微软 公司 Wi o S r e nd ws e v r
一
一
一
~
…
一
r——]
;
敌
线
一 V
l
l
数瓣 爱鬃 黼 终缆 器
— ] —
l 渔 E
l
图1 基于 US B的高速 数据采集统结 构 婚——每 耪艘 数雏沌
图 2 U B数 据传输过程 S