USB设备开发简介

时间:2023年04月24日

/

来源:小灰羊

/

编辑:本站小编

收藏本文

下载本文

以下是小编整理的USB设备开发简介,本文共6篇,欢迎阅读分享。本文原稿由网友“小灰羊”提供。

篇1:USB设备开发简介

USB设备开发简介

USB设备的开发一般包括三个方面:设备端硬件接口设计、固件(即要写到设备内部只读存储器中去的运行程序)编写,及主机端设备驱动程序的开发,这里仅就设备端硬件接口设计作一些介绍。

1.USB设备接口设计方案

USB设备接口设计有两种方案可选:采用普通单片机加专用USB接口芯片;采用带USB接口的单片机,即专用USB控制器芯片。

目前有多种类型的USB接口芯片,例如USBN9602(NationalSemiconductor公司)、PDIUSBDl2(Philips公司)和USS820/825(Lucent公司)等。采用普通单片机加USB接口芯片方案的优点是:开发人员可以利用现有单片机开发系统开发设备的应用程序,而不必再投资购买新的单片机开发系统;缺点是:硬件设计比较复杂,调试麻烦。

第二种方案中所采用的LISB控制器芯片有两类:一类为完全从底层开发的微控制器芯片,如Cypress的CY7C63XXX系列;一类是基于通用单片机开发的USB控制器芯片,如与Intel8051兼容的8x930A/8x931A(Intel/Cypress公司)、EZ-USB(Cypress公司)。第二种方案的优点是设计简单。例如,EZ-USB单片机集成了加强的8051微控制器、智能USB引擎、USB收发模块和RAM等,它提供了24个I/O端口、16位地址线、8位数据线、1个PC机接口和l对USB接口。所集成的智能USB引擎可以完成USB协议所规定的80%~90%的通信工作,减轻了USB外设开发人员的开发负担;所提供的开发工具能自动生成固件框架,开发者只须根据需要填些相关函数体;固件和驱动程序可以分别独立调试,极大地提高开发速度。该方案的缺点是需购买新的单片机开发系统,投资较大。

如果要深入理解USB通信协议、USB设备工作机制以及USB设备驱动开发模型,最好选择第一种方案,即采用USB接口芯片+传统单片机+设备功能电路的模块化设计方法。设计出的USB设备的功能框图如图10.47所示。

2.USB芯片PDIUSBDl2简介

采用第一种方案时需要熟悉USB接口芯片。这里对PDIUSBDl2(简称D12)作一些简单介绍,使读者对该类芯片有一个基本认识。

D12全面支持USB规范1.1,并且与大多数设备类兼容,图像设备类、大容量存储设备、通信设备、打印设备、人机接口设备。D12还具有SoftConnect、GoodLink、可编程时钟输出,以及低频石英振荡器等特征,从而极大降低系统实现成本,并简化高级USB功能的实现,

该芯片采用双列直插封装,有28个信号引脚。其中包括2个USB数据信号(D+、

D-)、8个双向数据信号、1个中断输出信号、1个命令/数据口选择输入、读和写输入信号、GoodLinkLED指示灯信号,以及与DMA请求相关的信号引脚。

D12提供三组端点,每组有一个用于输入的端点和一个用于输出的端点。其中端点0(组)为设备缺省支持的控制端点;端点l(组)为普通端点,可以作为块传输或中断传输端点;端点2(组)称为主端点,除了支持块传输或中断传输外,还支持等时传输,此外,它采用双缓冲区结构,因此具有更高的传输速率,并支持DMA方式(与单片机之间的数据传送)。端点0和端点1的最大包尺寸为16字节,而端点2的最大包尺寸为64/128字节。

D12提供三组命令:初始化命令、数据流命令和一般命令。初始化命令在USB设备被枚举时使用,用来使能端点并为其分配地址、设置端点的传输方式以及进行其他初始化方面的操作。数据流命令用来管理端点与微处理器之间的数据交换。一般命令实际是两条:一条是发送给下游设备的恢复命令,用来激活被挂起的设备;一条是读当前帧的编号。

作为例子,下面看几条数据流命令的功能。

①选择端点命令:选择某端点,并将内部指针指向该端点缓冲区的开始。

②读缓冲区命令:从所选择端点缓冲区读取若干字节,每读取一个字节,缓冲区指针加1。

③写数据缓冲区命令:向端点缓冲区写入数据(最多130个字节)。

④读中断寄存器命令:该命令之后需读入两个字节。字节1用来判断总线事件,即哪个端点发生中断或总线状态变化;字节2的最低位指出DMA操作是否完成(高位保留)。

⑤SETUP确认命令:当控制端点接收到一个SETUP包时,该端点将被冻结,缓冲区中一直保留最后一个SETUP包。发出该命令将解除冻结,继续进行SETUP事务(向主机返回包)。设置该命令是考虑到控制传输的特殊性(对设备进行配置)。

数据流命令还有其他命令,如读取最后一次事务状态命令、清除缓冲区命令、设置端点状态命令等。仅从上面给出功能的几条命令可以看出,这些命令主要被设备的控制器(单片机)用来和D12芯片的数据缓冲区及专用寄存器打交道,而USB传输协议的执行(包括数据打包、握手包的形成与发送等)由D12完成。

篇2:USB设备配置简介

和PCI总线设备一样,USB设备也必须有自己的配置信息,以便实现即插即用,但是USB设备的配置信息比PCI设备复杂许多,这是因为USB设备的描述符种类比较多。要理解USB设备的描述符,首先需要看一下USB设备的逻辑结构(编程结构),如图10.46所示。

一个USB设备可以有几种配置。比如,一个最大需求200mA电流的设备和一个总线供电的LJSB设备相连时,它只能获得100mA电流。在这种情况下,这个设备就不被支持,主机软件也不会激活这个设备。为了避免出现这个情况,设备的设计者可以提供一种可选的配置,把设备对总线电流量的要求减少到100mA(当然,应采取措施保证在100mA时也能工作,比如,关闭某些功能)。

一个USB设备可以有几个接口。比如,USB数字电话有两个接口:音频接口(发送器和接收器)和人机接口(拨号装置)。又如,CD-ROM有三个接口:音频接口、视频接口和大容量存储接口。在USB系统中,一个接口实现一种功能。也可反过来说,设备中具有某种独立功能的部分构成一个接口。

端点的概念在前面已经提到,端点是主机和设备之间通信流的终点。比如,设备的一个输出寄存器就是一个输出端点。一个设备可以有多个端点,而端点总是属于某个接口的,这是因为端点是根据接口的需要设置的,一个接口可以有多个端点,

认识了USB设备的逻辑构成,就可以扫描一下USB设备的描述符。在USB系统中,设备的描述符包括:

①设备描述符:每个设备有一个设备描述符,它包含了设备的一般信息,并且标出了一个设备所支持的可能的配置的数量(一个或几个)。此外,它还包含了缺省通信管道(端点0)的信息。

②配置描述符:一个设备对它所支持的每一种配置都有一个配置描述符。它包括关于配置的一般信息,并且定义了当使用这些配置时的接口数量。

③接口描述符:提供了关于接口的一般信息,也指出了特定的接口所支持设备类。此外,它还指出了该接口进行通信时所使用的端点描述符的数量。

④端点描述符:一个端点描述符定义了一个通信点。端点描述符包含了一些信息,例如,端点支持的传输类型(指块传输、中断传输、等时传输和控制传输)以及支持的最高传输速率。

⑤字符串描述符:可选的描述符,由UNICODE(统一字符编码标准,用16位二进制数表示一个字符)字符串组成。它提供了那些可显示出来供人们读取的信息。可以为制造商、产品、序列号、配置和接口等定义字符串描述符。例如,为某个接口定义一个字符串描述符,并在接口描述符中设置指向该字符串描述符的指针。这样,可显示出与这个接口有关的说明信息。

⑥设备类定义描述符:可用来定义新的设备类,以便在标准设备类的基础上增加一些新的功能。

各种描述符的格式和含义在USB总线规范中都清楚地作了说明。例如,设备描述符。

篇3:USB协议简介

USB协议简介

USB是一种协议总线,即主机与设备之间的通信需要遵循一系列约定,协议内容较多,这里仅作一些简单介绍,深入学习,可参看USB规范(WWW.usb.org)。

为了理解协议中的名称,先看图10.32。该图突出了主机上的客户软件和USB逻辑设备(编程涉及的设备)之间的通信流(CommunicationFlow),该通信流跨越了USB驱动程序USBD、主控制器驱动程序UHCD、主控制器等硬件接口及其连接。端点(Endpoints)是USB设备的惟一可识别的部分,是主机和设备之间通信流的终点。每一个逻辑设备有若干个独立端点,每一个端点在设计时被分配一个惟一的由设备确定的标识符,称之为端点号。

如图10.32所示,将用于通信流流动的通道称为管道(Pipe),这是忽略了许多中间环节的很形象的称呼,对于理解USB系统中的信息传输很有帮助。图中把3个端点看成了一个接口,关于接口的说明安排在后面。

1.包格式

包的概念在前面已经介绍了,包是帧的基本成分。常用的包有令牌包、数据包和握手包。对于高速传输,还定义了事务分割专用令牌包(事务分割开始令牌包和事务分割完成令牌包)。

1)令牌包格式

在USB系统中,所有的通信都是由主机发出相应的令牌所引起的。令牌包格式图

10.33所示。

其中PID为包标识,ADDR为设备地址,ENDP为端点号,CRC5是对ADDR和ENDP域进行校验的5位CRC校验码,校验多项式为:G(X)=X5+X2+1。

2)数据包格式

数据包用于主机与设备之间的数据传输。数据包格式如图10.34所示。

其中PID为包标识,DATA为数据位,最多为8192个位,DATA应是字节的整数倍。CRCl6是对DATA域进行校验的16位CRC校验码,校验多项式为:G(X)=X16+X15+X2+1.

3)握手包格式

握手包用来指示数据被成功接收、命令被接收或被拒绝等事务状态。握手包格式如图10.35所示。

握手包仅由PII)组成。有四种常用握手包(ACK、NAK、STALL和NYET)和一个专用握手包,握手包的类型是通过PID的编码来体现的。

ACK包表示接收器已成功接收数据。

NAK包表示接收设备不能接收数据或发送设备不能发送数据。

STALL包表示端点已终止或不支持控制管道请求。

NYET包表示接收器还没有任何响应。

4)帧开始包SOF(StartOfFrame)在全速或低速时,主机每隔1ms0.0005ms发出一个帧开始包SOF,在高速时,每隔125s0.0625s发出一个SOF,以表示开始一个新帧。SOF包的格式如图10.36所示。

其中FmmeNumber为帧编号,每发一帧后FrameNumber加l,当11位都为1(即3FFH)时再加1又回到0。在SOF包中对FrameNumber域进行CRC校验。

2.PID域格式

上面的几种包的开始都是PID域。PID域的格式如图10.37所示。

低4位用来标识不同的包,高4位分别为低4位的非。这样安排是为了保证对PID可靠的译码,从而也使得包的其他部分能得到正确解释。表lO.20表示了PID编码和对应的PID类型。其中第3列是PID的低4位,即PID编码。

表中有两种数据包PID,都用于数据的传输,以它们开头的两种数据包除了包PID部分有一位(及与它对应的反向位)不同外,其他部分都相同。设置这两种数据包是为了使发送方和接收方保持同步,这涉及到一些细节,将在10.3.6小节中介绍。在图10.38~10.40中不妨将它们看成一种数据包。

3.USB传输的处理过程

前面已经提到USB系统中有四种传输:一个传输通常要分解成若干个事务;而一个事务的处理一般要经历令牌包、数据包和握手包三个阶段,但也有一些事务的处理没有数据包阶段或没有握手包阶段,还有一些事务只有令牌包阶段。下面对这四种传输的处理过程分别作一些介绍。

1)块传输

用于主机与USB设备之间的批量数据传输,通常一次块传输需要分解成若干个块传输事务。显然,一次块传输的方向是单一的,对主机而言,要么是输入,要么是输出。因此,一次块传输是由若干个IN事务或由若干个OUT事务组成的。图10.38所示是块传输事务处理过程示意图。图中的PING包和NYET包仅用于高速传输设备,初学者暂时可以不考虑。

对于要进行输入的块传输,一般要执行若干个IN事务。每执行一个IN事务时,主机都首先发出IN令牌包。设备端点收到后做出响应,一般是回送一个数据包。如果不能回送数据,则回送NAK包或STALL包。NAK表示设备暂时不能回送数据;STALL表示端点一直停着或需要IJSB系统软件进行干预;如果主机收到合法数据包,则回以ACK握手包;如果主机在接收数据时发现有错,则不给设备任何回音。

对于要进行输出的块传输,一般要执行若干个OUT事务。每执行一个OUT事务时,主机都首先发出OUT令牌包,接着发出数据包。设备在收到数据包后,根据情况回以握手包;回以ACK表示数据已接收无误,并通知主机可开始下一个0UT事务,以便传送下一个数据包;回以NAK表示数据已接收无误,但是主机不要再送数据,因为设备暂时不能接收(如缓冲区满);如果端点已终止,则回以STALL,通知主机不要再重发数据,因为设备出现了故障;如果接收时出现CRC校验错,则不发任何握手包。

需要指出,IN事务和OUT事务不仅在块传输事务中用到,在其他几种传输事务中也要用到,当然,处理的过程可能有所不同。

2)中断传输

用于数据传输量小,无周期性,但对响应时间敏感,要求马上响应的数据传输。中断传输的名字暗示一个设备可以引起一个硬件中断,这个硬件中断将使主机进行快速响应。但真实情况是中断传输和所有其他USB传输一样,只在主机访问设备时出现。之所以将其称为中断传输,是因为它可保证主机将在最短的延迟里响应或发送数据。中断传输的特别之处在于主机将按照特定的周期访问可引起中断的端点(称为中断端点),看是否有中断情况发生。图10.39所示为中断传输事务的处理过程。

对于要进行输入的中断传输,主机按照特定的周期执行IN事务,如果没有中断发生,中断端点回以NAK包;如果有中断情况发生,则回送中断数据。主机收到数据后,发一个ACK包。

对于要进行输出的中断传输,主机按照特定的周期执行OUT事务,在发送OUT令牌后,接着发送数据包。如果没有中断发生,中断端点回以NAK包或STALL包;如果有中断情况发生且接收数据无误,则回送ACK包。需要指出,在设备没有中断发生的情况下,主机一直会按照特定的周期执行OUT事务,并且所发送的数据保持不变。当有中断发生时,才修改数据指针,指向下一个数据区。

一个中断传输由一个或多个IN事务或者一个或多个OUT事务组成。一个中断传输用以下两种情况之一结束:当请求的数据量被传送完时,或者当数据包的长度小于规定的最大值(包括0长度包)时。中断传输的结束表示要传送的数据已经到齐,接收方可以加以利用;而主机对中断端点周期性的查询还将继续进行下去,以便在下一个中断情况发生时,开始下一个中断传输。

3)等时传输

用于有周期性、传输速率不变的数据传输。等时传输在每帧中传送的字节数是一定的。一个等时传输由一个或多个连续帧里每帧一个IN或一个OUT事务所组成。图10.40表示了等时传输事务的处理过程。可以看出,等时传输的IN事务和OUT事务只包括令牌包和数据包两个阶段,没有握手包阶段,也不支持重试。

4)控制传输

控制传输提供了一种方法来配置USB设备,并对它的操作的某些方面进行控制。每个设备必须设置一个缺省的控制端点(通常是O号端点)。控制端点用来配置设备、控制设备状态以及设备操作的某些方面。控制端点响应一些通过控制传输发送过来的USB特殊请求。例如,当系统检测到设备时,系统软件必须读取该设备的描述符,以确定其类型和操作特性。

控制传输至少由两个阶段组成,也可以是三个阶段:

①SETUP阶段:控制传输总是从SETUP阶段开始,这个阶段把信息发送给目标设备,定义对设备的请求类型(例如,读设备描述符),

②数据阶段:这个阶段仅仅是为需要数据传输的请求定义的。例如,在数据阶段,读描述符请求把描述符的内容发送给主机。一些请求在SETUP阶段之外不需要数据传输。

③状态阶段:这个阶段总是用来报告被请求的操作的结果。

在SETUP阶段,一个SETUP事务被用来向控制端点传输信息。SETUP事务类似于

一个OUT事务,只是包标识PID是SETUP,而不是OUT。图10.41所示为SETUP事务的执行过程。SETUP事务的数据阶段总是利用DATA0PID。如果接收正确,控制端点则回以ACK包;如果接收不正确或数据丢失,则不回送任何握手包。

控制传输的数据阶段不是必需的。如果需要有这个阶段,则它由一个或多个IN事务或者一个或多个OUT事务组成。数据阶段的所有事务的方向必须是一致的,即都是IN事务或都是OUT事务。数据阶段传送的数据量及方向是在SETUP阶段规定的。如果数据量超过了预先确定的数据包规模,则数据的发送需要多个能携带最大包的事务(IN或OUT),剩下的部分(不足最大包规模)再安排一个事务。

控制传输的状态阶段是该传输的最后一个阶段,它只需要一个事务。状态阶段的数据流方向应该与前面的阶段不同,并且总是利用DATAlPID.例如,如果数据阶段执行的是OUT事务,则状态阶段就是一个IN事务。如果一个控制传输没有数据阶段,则状态阶段由一个IN事务组成。图10.42所示为控制读传输、控制写传输以及没有数据阶段的控制传输的事务排列顺序、触发位的值(在括号内)及数据PID的类型。

上面介绍的传输及传输事务的处理过程反映了USB系统中数据传输的过程。注意到一帧(或微帧)中包括了四种传输事务,所以实际的传输过程要比这里所讲的复杂。

4.数据触发技术

在USB系统中采用了数据触发技术。数据触发是一种机制,用来确保数据传输的发送方和接收方之间保持同步,对于需要大量事务的一次长传输过程尤为重要。数据触发机制可以使握手包出错情况下发送方和接收方之间能重新同步。

数据触发仅仅支持中断传输、块传输和控制传输。支持数据触发机制的发送方和接收方在每一次数据传输时都必须具有触发位。当双方都认为数据传输已经正确完成以后,都会把自己的触发位转换为和原来相反的状态。两种类型的数据包(DATAO和DATAl)被交替传送,并且包的接收方将会把它和触发位作比较,以确定接收的包是否正确。发送方使用的数据包类型和它的触发位当前状态保持一致(例如,如果触发位为0,则数据包用DATA0)。下面仅以OUT事务为例来理解数据触发机制。

例10.1图10.43所示为无错误的OUT事务的处理过程和触发位的变化情况。假定发送方和接收方的触发位开始都是0。传输的过程如下:

事务处理l:

①主机向目标设备发送一个OUT令牌。

②目标设备无错误地收到该令牌包。

③主机向目标设备发送一个DATA0数据包(和它的触发位保持一致)。

④目标设备收到数据包DATA0,它和触发位一致。

⑤目标设备成功收到数据包DATA0,触发位转变为1。

⑥目标设备向主机发送一个ACK握手包,通知主机数据已经被无错误接收。

⑦主机无错误地收到ACK包。

⑧成功地收到ACK包,主机把触发位转变为l。

事务处理2:

①主机向目标设备发送一个新的OUT令牌,开始下一个事务处理过程。

②目标设备无错误地收到该令牌包。

③主机向目标设备发送一个DAl、A1数据包(和它的触发位保持一致)。

④目标设备收到数据包DATAl,它和触发位一致。

⑤目标设备成功收到数据包DATAl,触发位转变为0。

⑥目标设备向主机发送一个ACK握手包,通知主机数据已经被无错误接收。

⑦主机无错误地收到ACK包。

⑧成功地收到ACK包,主机把触发位转变为0。

这个处理过程对每一个事务都是如此,直到整个传输完成。只要收到的数据包和触发位相一致,并且发送方无错误地收到ACK握手包,那么发送方和接收方就保持同步。

上面是数据包和握手包都被正确传输的情况。下面分别看一下数据包传输出错和握手包传输出错时的情况。

例l0.2图10.44所示为一个传输的第m个OUT。事务的处理过程,期间数据包传输出现了错误。主机和目标设备所采取的行动如下:

事务处理m:

①主机向目标设备发送一个OUT令牌。

②目标设备无错误地收到该令牌包。,

③主机向目标设备发送一个DATA0数据包(和它的触发位保持一致)。

④当目标设备收到数据包DATAO时,发现有错。

⑤因为检测到数据包的错误,目标设备将会忽略这个包。数据被丢弃,不向主机发握手包。因为数据包没有正确接收,触发位保持不变。

⑥主机等待握手包的返回,但是没有响应。在总线超时周期(16个位时间)到达后,主机检测到没有响应,于是它认为数据包的传输不成功,主机的触发位保持不变。主机必须在以后重新进行该事务处理。

事务m重新进行:

①主机再向目标设备发送OUT令牌。

②目标设备无错误地收到该令牌包。

③主机向目标设备发送一个DATAO数据包(和它的触发位保持一致),这个数据包在上一次传送时没有成功。

④目标设备成功地收到数据包DATA0,它和触发位保持一致。

⑤因为正确收到数据包DATA0,所以目标设备将触发位转变为1。

⑥目标设备向主机发送一个ACK握手包,通知主机数据已经被无错误接收。

⑦主机无错误地收到ACK包。

⑧成功地收到了ACK包,主机把触发位转变为l。

由上面的处理过程可以看出,尽管传输发生了错误,但是主机和目标设备还是能够保持同步。

例10.3图10.45所示为一个传输的第n个OUT事务的处理过程,期间由于ACK包错误而失败。对错误检测和恢复的每一步列举如下:

事务处理n:

①主机向目标设备发送一个OUT令牌。

②目标设备无错误地收到该令牌包。

③然后主机向目标设备发送一个DATA0数据包(和它的触发位保持一致)。

④目标设备收到数据包DATA0,它和触发位一致。

⑤目标设备成功收到数据包DATA0,触发位转变为1。

⑥目标设备向主机发送一个ACK握手包,通知主机数据已经被无错误接收。

⑦主机收到的ACK包出现了错误。

⑧由于主机检测到了错误,所以它不能确定目标设备是否已经成功地接收到数据。因此,主机的触发位没有改变(还是0)。主机假定目标设备没有收到数据,因而会重新进行该事务处理。

事务n重新进行:

①主机再向目标设备发送OUT令牌。

②目标设备无错误地收到该令牌包。

③主机重新向目标设备发送DATA0数据包(和它的触发位保持一致),这个数据包在上一次传送时不知道目标设备是否已正确接收。

④目标设备无错误地收到数据包DATA0,但是它和触发位不一致。

⑤目标设备认为其本身和主机不同步,因而丢弃数据,并且触发位保持不变(1)。

⑥目标设备向主机发送一个ACK握手包,通知主机数据已经被无错误接收,这是因为

主机明显没有收到上一次的ACK握手包。

⑦主机无错误地收到ACK握手包。

⑧成功地收到了ACK包,主机把触发位转变为1。现在主机和目标设备就为下一次的事务处理做好了准备。

通过该例可以看出,主机和目标设备暂时在数据传输是否完成的问题上没有达成一致。然而,数据触发机制保证了不同步的状态能够被检测到,并且能够重新实现同步。

篇4:USB设备检测过程

USB设备检测也是通过/proc目录下的USB文件系统进行的,为了使一个USB设备能够正常工作,必须要现在系统中插入USB桥接器模块。在检测开始时,一般要先检测是否存在/proc/bus/usb目录,若不存在则尝试插入USB桥接模块。

现在一般的USB桥接器模块有两种类型,UHCI和OHCI。在决定插入那一个桥接器模块时,可以察看/proc/pci文件来决定。打开此文件,您若发现USB节为 I/O at 0xHHHH格式(例如出现 I/O at 0xe000 [0xe01f]),HHHH为16进制数,则桥接器类型为UHCI。若是它为32 bit memory at 0xHH000000形式(例如出现32 bit memory at 0xee000000),HH为16进制数,则桥接器类型为OHCI。但是若您的桥接器类型不满足上述任何一种情况,唯一的解决办法就是您尝试插入这两种模块,直到成功为止。一般而言,UHCI类型的桥接器它的插入模块是uhci或usb-uhci(由内核版本决定);而对于OHCI类型的桥接器它的插入模块是ohci或usb-ohci。

您在正确的插入了桥接器模块之后,这时/proc文件系统下就会出现USB设备目录,不过这时这个目录是空的,没有任何文件。这时您就必须挂接 usbdevfs文件系统,然后通过此文件系统检测连接的设备。在成功挂接usb文件系统之后,就会生成文件 /proc/bus/usb/devices,/proc/bus/usb/drivers和目录/proc/bus/usb/busNo。挂接 usbdevfs文件您可以通过如下操作实现:

mount -t usbdevfs none /proc/bus/usb

或在/etc/fstab上加入

none /proc/bus/usb usbdevfs defaults 0 0

然后通过/proc/bus/usb/devices文件的内容,您就可以获得连接的设备信息,包括设备标识和制造商标是等信息。

usb设备类型描述:

设备规范 设备类码 接口类码

应用程序特定 - 0xFE

声音接口 0x00 0x01

通信设备 0x02 -

CDC控制接口 - 0x02

CDC数据接口 - 0x0A

HID 0x00 0x03

HUB 0x09 0x09

批量存储设备 0x00 0x08

监视器 same as HID same as HID

电源设备 same as HID same as HID

物理设备 - 0x05

打印机 - 0x07

供应商特定 - 0xFF

5.2 usb文件系统简介

T = 总线拓扑结构(Lev, Prnt, Port, Cnt, 等),是指USB设备和主机之间的连接方式

B = 带宽 (仅用于USB主控制器)

D = 设备描述信息

P = 产品标识信息

S = 串描述符

C = 配置描述信息 (* 表示活动配置)

I = 接口描述信息

E = 终端点描述信息

一般格式:

d = 十进制数

x = 十六进制数

s = 字符串

拓扑信息

T: Bus=dd Lev=dd Prnt=dd Port=dd Cnt=dd Dev#=ddd Spd=ddd MxCh=dd

| | | | | | | | |__最大子设备

| | | | | | | |__设备速度(Mbps)

| | | | | | |__设备编号

| | | | | |__这层的设备数

| | | | |__此设备的父连接器/端口

| | | |__父设备号

| | |__此总线在拓扑结构中的层次

| |__总线编号

|__拓扑信息标志

带宽信息

B: Alloc=ddd/ddd us (xx%), #Int=ddd, #Iso=ddd

| | | |__同步请求编号

| | |__中断请求号

| |__分配给此总线的总带宽

|__带宽信息标志

设备描述信息和产品标识信息

D: Ver=x.xx Cls=xx(s) Sub=xx Prot=xx MxPS=dd #Cfgs=dd

P: Vendor=xxxx ProdID=xxxx Rev=xx.xx

D: Ver=x.xx Cls=xx(sssss) Sub=xx Prot=xx MxPS=dd #Cfgs=dd

| | | | | | |__配置编号

| | | | | |______缺省终端点的最大包尺寸

| | | | |

| | | | |__设备协议

| | | |__设备子类型

| | |__设备类型

| |__设备USB版本

|__设备信息标志编号#1

P: Vendor=xxxx ProdID=xxxx Rev=xx.xx

| | | |__产品修订号

| | |__产品标识编码

| |__制造商标识编码

|__设备信息标志编号#2

串描述信息

S: Manufacturer=ssss

| |__设备上读出的制造商信息

|__串描述信息

S: Product=ssss

| |__设备上读出的产品描述信息,对于USB主控制器此字段为USB *HCI Root Hub

|__串描述信息

S: SerialNumber=ssss

| |__设备上读出的序列号,对于USB主控制器它是一个生成的字符串,表示设备标识

|__串描述信息

配置描述信息

C: #Ifs=dd Cfg#=dd Atr=xx MPwr=dddmA

| | | | |__最大电流(mA)

| | | |__属性

| | |__配置编号

| |__接口数

|__配置信息标志

接口描述信息(可为多个)

I: If#=dd Alt=dd #EPs=dd Cls=xx(sssss) Sub=xx Prot=xx Driver=ssss

| | | | | | | |__驱动名

| | | | | | |__接口协议

| | | | | |__接口子类

| | | | |__接口类

| | | |__中断点数

| | |__可变设置编号

| |__接口编号

|__接口信息标志

终端点描述信息

E: Ad=xx(s) Atr=xx(ssss) MxPS=dddd Ivl=dddms

E: Ad=xx(s) Atr=xx(ssss) MxPS=dddd Ivl=dddms

| | | | |__间隔

| | | |__终端点最大包尺寸

| | |__属性(终端点类型)

| |__终端点地址(I=In,O=Out)

|__终端点信息标志 '

篇5:无线USB 技术简介

无线USB是用来连接一些外围设置而推出的技术,比如打印机、外置式硬盘、声卡、媒体播放器甚至可以实现无线视频播放,你可以通过两种方式实现这种应用。如果你的PC或者是相关设备并不支持无线USB技术,那么你就必须安装一个WUSBdongle将标准的USB接口变成WUSB(wirelessUSB)接口。不过如果相关设备是原生支持WUSB的,那么在产品上你将会看到WUSB天线。根据介绍,通过单一的天线可以最多同时边接127个外围设备。

WUSB最高理论传输速度与USB2.0接口相同都为480Mbps(60MB/s),不过这个速度与距离有关。如果设备距离PC在3m之内就可以实现理论传输。面如果距离超过了10m,那么传输速度将只有110Mbps(13.75MB/s)。可以说距离越远,传输速率就越低。

蓝牙技术也可以实现两款设备间的无线数据传输。不过蓝牙技术主要面向的是一些低速设备,其最高传输速率只有1Mbps(128KB/s)或者3Mbps(384MB/s),这主要取决于是蓝牙是一代蓝牙还是二代蓝牙。不过据了解下一代的蓝牙技术的传输速率将会与WUSB持平,不过这项技术目前还没有推出。

WUSB运行于UWB频宽(3.1GHz-10.6GHz),而无线蓝牙的频率为2.4GHz,与IEEE802.11无线网络相同。我们第一次听到有关WirelessUSB(WUSB)的消息是在IDFSpring200大会上,而相关的展示直到IDFFall才看到。

下面我给大家带来一些WUSB的实列。如果你的PC不支持WUSB,那么你就需要购买一人WUSBdongle。在下面的图片上你可以看到WUSBdongle长得什么样。

至于其他USB设备,你也需要将他们“变成”无线USB设备,方法就是使用WUSBhub。下面这张图片上的WUSBhub是由IOGEAR公司生产。这个产品的好处是可以将多个USB接口产品同时变成无线USB产品。在这里我将一台打印机与WUSBhub连接。这样打印机与PC之间连接就不再需要连接了。

通过WUSB可以让PC与显示器的连接不再需要通过连接线来完成。而就在不久之前,华硕公司就率先推出了支持WUSB接口的液晶显示器产品。

华硕液晶显示器及其配备的WUSB接口

通过适配器可以使得PC以无线的方式与显示器进行连接

下面的这个例子是原生支持WUSB的外置声卡。这样你可以实现无线显示器连接,无线声卡甚至是无线音响。

无线USB指的是WirelessUSB,

电脑资料

WUSB是英特尔春季技术峰会提出的一个全新无线传输标准。Intel公司的技术部门经理,WUSB技术白皮书的制订者RafaelKolic曾这样介绍这项技术,以及WUSB产品的优良表现和良好的移动性。

总观:无线的USB(WUSB)

首先,我们来想像一下,如果一个家庭的所有装置,比如:打印机,扫描机,外接硬盘和数码相机等等,都将没有任何的电线直接连接到你电脑上。再来想像一下,如果整个的家庭娱乐中心的所有附件都将不需要一根电线就能够连接。或者,我们再想像一下,如果数码照片不需要电线就可以接到照片打印机上,这该是多么方便、多么美好的事情。然而,这些只是无线USB(WUSB)良好连接性的几个小侧面,因为最新的技术发展将会给各种设备带来更大的便捷和移动性(包括市区和郊区)。

目前,USB技术已经成为PC间普遍流行的技术标准,而且也逐渐被用到消费电子,移动终端中。现在,WUSB这个高速有效的连接接口的诞生是为了消去电缆的负担,以加强USB所不具有的功能。

无线USB促进联盟(WirelessUSBPromoterGroup)

春季Intel技术峰会(美国)上,无线USB促进联盟宣布成立。这个联盟包括7家有相当实力的业界巨擎:AgereSystems,惠普,英特尔,微软,NEC,飞利浦半导体和韩国三星。这个联盟的每个成员都被授权可以制订WUSB的详细规格。在详细规格上,已经达成共识的是每秒480Mb的传输速率,这一规格和有线的USB2.0设备间高速传输规格维持一致。从这方面来看,WUSB技术在很多方面都可以从比较成熟的高速USB上移植过来。

另外,WUSB技术在技术规格的制订上,也会依靠MBOA联盟和WiMedia联盟。这是两个开放的技术联盟,将会使WSUB技术在网络环境中,个人在多媒体设备间的无线交流的连通性和协同性加强。

无线USB是用来连接一些外围设置而推出的技术,比如打印机、外置式硬盘、声卡、媒体播放器甚至可以实现无线视频播放。你可以通过两种方式实现这种应用。如果你的PC或者是相关设备并不支持无线USB技术,那么你就必须安装一个WUSBdongle将标准的USB接口变成WUSB(wirelessUSB)接口。不过如果相关设备是原生支持WUSB的,那么在产品上你将会看到WUSB天线。根据介绍,通过单一的天线可以最多同时边接127个外围设备。

WUSB最高理论传输速度与USB2.0接口相同都为480Mbps(60MB/s),不过这个速度与距离有关。如果设备距离PC在3m之内就可以实现理论传输。面如果距离超过了10m,那么传输速度将只有110Mbps(13.75MB/s)。可以说距离越远,传输速率就越低。

蓝牙技术也可以实现两款设备间的无线数据传输。不过蓝牙技术主要面向的是一些低速设备,其最高传输速率只有1Mbps(128KB/s)或者3Mbps(384MB/s),这主要取决于是蓝牙是一代蓝牙还是二代蓝牙。不过据了解下一代的蓝牙技术的传输速率将会与WUSB持平,不过这项技术目前还没有推出。

篇6:USB设备自动移除问题

问:新买了一款MP3播放器,将MP3播放器插入电脑的USB接口后,可以正常看到一个新的移动磁盘,当我想把歌曲复制进MP3播放器时,系统提示USB设备被移除,反复换了多个USB接口、MP3播放器也更换过两个后问题依旧,但将MP3播放器插入朋友的电脑中却没有此现象,请问这是什么问题,我该怎么解决?

答:解决方法如下:首先,新安装一遍操作系统,正确安装MP3播放器的驱动程序与管理程序,如果问题依旧就不是软件故障所导致,

那么就耍考虑是否为硬件故障,很可能是由于你机器的USB接口供电不足所导致,建议购买一块PCI-USB接口卡,这样就可以直接用PCI接口取电。最后提醒一点,不要使用USB延长线或者前置USB接口,那样也很容易出现数据传输不稳定和供电不足等问题。

教你如何一键退出USB设备

设备管理制度

简要体验:无线USB技术讲述

绿色食品开发工作汇报

项目开发合同

下载USB设备开发简介(锦集6篇)
USB设备开发简介.doc
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档
点击下载本文文档