ImageVerifierCode 换一换
格式:DOCX , 页数:34 ,大小:86.65KB ,
资源ID:8403383      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8403383.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(USB设备架构.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

USB设备架构.docx

1、USB设备架构第八章 USB设备架构 USB设备可被划分三层: 底层是传送和接收数据包的总线接口 中间层处理总线接口与不同端点之间的数据路由,端节点是数据的终结提供处或使用处,它可被看作数据源或数据接收端(Sink) 最上层的功能由串行总线设备提供,比如鼠标,或ISDN接口。 本章描述的是USB设备中间层的通用属性与操作。这些属性与操作由设备的特定功能的部分用于通过总线接口最终与主机(host)的通信。9.1 USB设备状态 USB设备有若干可能的状态,其中一些对于USB与主机(host)来说是外置的,而另外一些对USB设备来说是内置的,这一节描述的就是这些外置状态。9.1.1 外置的设备状态

2、 本小节描述的是外部可见的USB设备状态(见图8-1)。表8-1汇集这些外置设备状态之间的转化关系。注意:USB设备会响应上行端口(upstream Port)传来一个复位(reset)信号进行复位操作。当reset信号完成的时候,USB设备业已复位。连 接加 电缺 省编 址配 置挂 起说 明不_ _ _ _ _ _设备尚未连接至接口.其他特性无关是不_ _ _ _ _设备已连接至接口,但未加电. 其他特性无关.是是不_ _ _ _设备已连接至接口,并且已加电.但尚未被复位.是是是不_ _ _设备已连接至接口,已加电. 并被复位.但尚未分配地址.设备在缺省地址处可寻址.是是是是不_ _设备已连

3、接至接口,已加电. 并被复位.且分配了唯一地址.尚未被配置.是是是是是不设备已连接至接口,已加电. 并被复位.且分配了唯一地址,并被配置.设备功能可被使用.是是_ _ _ _是设备在至少3毫秒以内探测不到总线活动,自动进如挂起.设备功能不可用. 表8-1. 外置(可见)的设备状态9.1.1.1 连接状态 USB设备可被连接到USB接口上或从接口断开,USB设备处在断开时的设备状态不包括在本篇说明之中。本说明中仅讨论那些处在连接状态的设备特性与操作。9.1.1.2 加电状态(Powered) USB设备的电源可来自外部电源,也可从USB接口的集线器而来。电源来自外部电源的USB设备被称作自给电源

4、式的(self-powered)。尽管自给电源式的USB设备可能在连接上USB接口以前可能已经带电,但它们直到连线上USB接口后才能被看作是加电状态(Powered state)。而这时候VBUS已经对设备产生作用了。 一个设备可能有既支持自给电源的,同时也支持总线电源式的配置。有一些支持其中的一种,而另一些设备配置可能只有在自给电源下才能被使用。设备对电源支持的能力是通过配置描述表(configuration descriptor)来反映的。当前的电源供给形式被作为设备状态的一部分被反映出来。设备可在任何时候改变它们的供电来源,比如说:从自给式向总线式改变,如果一个配置同时支持两种模式,那此

5、状态的最大电源需求就是指设备在两种模式下从VBUS上获取电能的最大值。设备必须以此最大电源作为参照,而究竟处于何状态是不考虑的。如果有一配置仅支持一种电源模式,那么电源模式的改变会使得设备失去当前配置与地址,返回加电状态。如果一个设备是自给电源式,并且当前配置需要大于100mA电流,那么如果此设备转到了总线电源式,它必须返回地址状态(Address state)。自给电源式集线器使用VBUS来为集线控制器(Hub controller)提供电源,因而可以仍然保持配置状态(Configured state),尽管自给电源停止提供电源。具体细节可参照11.14小节。9.1.1.3 缺省状态 设备加

6、电以后,在它从总线接收到复位信号之前不应对总线传输发生响应。在接收到复位信号之后,设备才在缺省地址处变得可寻址。9.1.1.4 地址状态 所有的USB设备在加电复位以后都使用缺省地址。每一设备在连接或复位后由主机分配一个唯一的地址。当USB设备处于挂起状态时,它保持这个地址不变。 USB设备只对缺省通道(Pipe)请求发生响应,而不管设备是否已经被分配地址或在使用缺省地址。9.1.1.5 Configured (配置状态) 在USB设备正常工作以前,设备必须被正确配置。从设备的角度来看,配置包括一个将非零值写入设备配置寄存器的操作。配置一个设备或改变一个可变的设备设置会使得与这个相关接口的终端

7、结点的所有的状态与配置值被设成缺省值。这包括将正在使用(date toggle)的结点(end point)的 (Date toggle)被设置成DATAO。9.1.1.6 中止状态 为节省电源,USB设备在探测不到总线传输时自动进入中止状态(参见第七章)。当中止时,USB设备保持本身的内部状态,包括它的地址及配置。 所有的设备在一段特定的时间内探测不到总线活动时必须进入中止态,这一特定的时间在第7章中进行了说明。不管设备是被分配了非缺省的地址或者是被配置了,已经连接的设备必须在任何加电的时刻随时准备中止。总线活动的中止可能是因为主机本身进入了中止状态。另外,USB设备必须在所连接的集线器端口

8、失效时进入中止态。这就是所指的选择性中止(Selective suspend)。 USB设备在总线活动来到时结束中止态。USB设备也可以远程唤醒的电流信号来请求主机退出中止态或选择性中止态。具体设备具有的远程唤醒的能力是可选的,也就是说,如果一个设备有远程唤醒的能力,此设备必须能让主机控制此能力的有效与否。当设备复位时,远程唤醒能力必须被禁止。9.1.2 Bus Enumeration总线标号 当USB设备接上或从USB设备移开的时候,主机启动一个被称作总线标识(bus enumeration)的进程,来标识并管理设备状态的改变,当USB设备接上一个加电端口时,系统当采取以下操作: 1.USB

9、设备所连的集线器通过其通向主机的状态改变通道向主机,汇报本USB设备已连接上。(参照11.13.3节)。此时,USB设备处于加电状态,它所连接的端口是无效的。 2.主机通过寻问集线器决定此次状态改变的确切含义。 3.主机一旦得知新设备已连上以后,它至少等待100ms以使得插入操作的完成以及设备电源稳定工作。然后主机发出端口使能及复位命令给那个端口。具体这些事件发生的顺序及时间判定请参看7.1.7.1节及图7-19。 4.集线器将发向端口的复位信号持续10ms(见11.5.15节)。当复位信号撤消后,端口已经有效了。这时USB设备处于缺省状态,并且可从VBUS汲取小于100mA的电能,所有设备寄

10、存器及状态已经被复位,设备可对缺省地址产生响应。 5.主机给设备分配一个唯一的地址,设备转向编址状态。(Address state)。 6.在USB设备接受设备地址之前,它的缺省控制通道(Default Control Pipe)在缺省地址处自然是可寻址的,主机通过读取设备描述表,判决设备缺省通道的实际净数据负载。 7.主机从设备读取配置信息要从配置0读到配置n-1,其中n为配置个数,此操作须花费几个毫秒。 8.基于从设备取来的配置信息及设备如何被使用的信息,主机给设备一个配置值,此刻,设备就处于配置状态(Configured state)并此配置有关的所有端节点,都按照配置各就各位,USB设

11、备现在可以从VBUS得到描述中所要求的电量了。从设备的角度来讲,它已经准备就绪了。 当UBS设备被取走时,集线器同样会通知主机,断开一个设备连接会使得设备所连接的端口无效,一收到断开通知后,主机就会更新的拓扑信息。9.2 通用USB设备操作(Generic USB Device Operations) 所有的USB设备支持通用的操作集,这一节主要描述的这些操作。9.2.1 动态插接与拔开 USB设备必须在任意时刻允许被插接与拔开。提供连接点或端口的集线器应当负责汇报端口的状态改变情况。 当主机探测到连接操作后,会使得所连的集线器端口生效,设备也会因此而复位,一个被复位了的USB设备有如下特性:

12、 对缺省USB地址发生响应 没有被配置 初始状态不是挂起 当设备从一个集线器端口移去时,集线器会使得原来连接的端口失效,并且通知主机设备已移去。9.2.2 地址分配 当USB设备连接以后,由主机负责给此设备分配一个唯一的地址,这个操作是在设备复位及端口使能操作以后。9.2.3 配置 USB设备在正常被使用以前,必须被配置,由主机负责配置设备。主机一般会从USB设备获取配置信息后再准定此设备有哪些功能。 作为配置操作的一部分,主机会设置设备的配置值,并且,如果必要的话会选择合适的接口的备选设置。 只须一个简单配置,一个设备可能支持多重接口。一个接口是一组端结点集合,它们代表了设备向主机提供的单一

13、的功能或特性,用来与这组相关端结点通信的协议以及接口内各端结点的目的可以作为一个设备类的一部分或者由厂商制定具体定义。 另外,一个配置中的结口可能有备选设置。这些备选设置会重定义相关端结点的数目或特性。如果是这样的话,设备必须支持GetInterface(接口请求)与Set Interface(接口设置)请求,来汇报及选择指定的接口的设备选设置。 在每个设备配置下,每个接口描述表可能包括用来标识接口的及备选设置的域,接口被从0N-1编号。n为配置所支持的能同时使用的接口数目,类似的设置的编号也从0开始。当设备初始化配置后,缺省设置是备选设置0。 为了支持通用的设备驱动程序管理一组相关的BUS设

14、备,设备与接口描述表中包含了类(Class),子类(Sub class),及协议(Protocol)域。这些域用来标识一个设备的功能及用于通信的协议。 一个类值被分配给一组按照特性划分成USB类说明一部分的设备。一个类的设备可进一步划分成子类,并且在一个类或子类中,一个协议代值可定义主机软件是怎样与设备通信的。 注意:类、子类、与协议值必须一致,但在本说明范围之外。9.2.4 数据传送 数据可能以四种方式在USB设备端结点与主机之间传送。四种传送方式参见第五章。在不同设置下,一个终端结点可能被用于不同的传输方式,但一旦设置选定,传送方式就选定了。9.2.5 电源管理 USB设备的电源管理包括以

15、下说明部分的几条。9.2.5.1 电源 USB总线电源是一个有限的资源,在设备标识(device enumeration)阶段,主机估测电源的需求。如果电源的需求量超过USB总线所能提供的电量,主机软件则不能选择那个配置。 USB设备应将电源需求量限制在一个单元以下,直到被配置。中止(挂起)的设备,不管是否已经配置过了,应将总线耗电降到第7章定义的标准以下。视接到设备的端口电源负载能力而定,USB设备在配置了以后可从VBUS汲取达5个单元的电量。9.2.5.2 远程唤醒 远程唤醒能力参许一个被挂起的USB设备发达信号给处于挂起状态的主机。这个信号会使得主机醒来,处理触发事件。USB设备通过配置

16、描述来向主机汇报其远程唤醒的能力。USB设备的远程唤醒能力应能被禁止的。远程唤醒能力通过7.1.7.5节中电信号的方式来达到的。9.2.6 请求处理 除SetAddress( )请求以外(见9.4.6节),在安装完成返回ACK信号以后,设备就开始处理请求。在某一状态成功结束以前,设备应当“完成”对请求的处理。许多请求费时较多,像这样的请求,该设备类应定义一个方法而不是等待交换状态信息阶段(StatusStage)的结束来表示该操作已经完成。像这样的操作有:集线器端口的复位至少需10ms来完成。当端口复位产生时,SetPortFeature (PORT-RESET)(见11章)请求就结束了。当端

17、口状态改变并表明此端口已经生效时,一个信号就会产生表明复位信号已经结束。这种技术可以防止当主机知道某一个请求费时较长的情况一直探测此请求是否已完成。9.2.6.1 请求处理的定时处理 所有的设备应当及时处理请求,USB给定一个5秒的命令处理的时间上界。这个限制并不是对所有情况都适用的。这些限制在接下来的部分给予描述,应当说明的是,下面的限制包括实现的很大的范围。如果所有设备都采用最大的请求处理允许时间的话,用户是无法忍受的。应此,具体实现应当尽可能快地完成请求的处理。9.2.6.2 复位/继续 恢复时间 当一个端口被复位或从中止态继续的时候,USB系统软件应当等待一个10ms的恢复时间才能确保

18、端口对数据传输产生响应。 一旦恢复时间段结束(从reset信号结束,或resume信号结尾的EOP结束开始计时)设备必须在任意时刻都能对数据传输作出响应。9.2.6.3 设置地址的处理 在reset/resume恢复时间段以后,如果设备收到SetAddress( )请求,设备必须能在50ms内完成请求的处理,并完成状态的转换,在SetAddress ( )的请求下,当设备发出O长度的状态数据包或设备收到状态数据包的响应信号ACK就表明状态转换结束了。 在状态转换结束后,设备有2ms的SetAddress ( )恢复时间。在这段时间结束以后,设备必须能在新地址处接受Setup数据包,并且,必须确

19、保此时设备不对旧地址的信号产生响应。(当然,除非新旧地址是一样的)。9.2.6.4 标准设备请求 对于不须传送数据标准的设备请求,一个设备必须在收到请求的50ms以内结束对请求的处理及状态的转换。 对于需要数据传输的标准设备请求,设备必须在收到请求的500ms以内返回第一个数据包。接下来的数据包必须在前一个数据包发送起的500ms以内开始发送。设备必须在最后一个数据包返回以后的50ms以内结束状态的转换。 对于需要数据传输的标准设备请求,5秒的限制就起作用了。这意味着设备必须能在主机以设备最大能接受的速率发送数据包的情况下接收所有的数据包并且完成状态切换,数据包之间时延是主机让设备完成请求处理

20、而加入的。9.2.6.5 与类有关的请求除非在类文档中特别说明,所有的类有关的请求必须按照标准请求的时间限制。 类说明文档可能要求设备反应比这部分讲的要快。标准设备请求与与类有关的设备请求可被要求反应更快。9.2.7 请求错误 如果一设备收到一个请求,它或是在设备中无定义,或是不适用于当前设置,或是数值不对,这时就会产生一个请求错误。设备在下一个数据传输阶段或状态交换阶段(Status stage)返回一个表明错误的STALL PID信号,一般在下一个数据传输返回更好,这样可减少不必要的总线活动。9.3 USB设备请求 所有的USB设备在设备的缺省控制通道(Default Control Pi

21、pe)处对主机的请求发出响应。这些请求是通过使用控制传输来达到的,请求及请求的参数通过Setup包发向设备,由主机负责设置Setup包内的每个域的值。每个Setup包有8个字节。见表8-2。 偏移量 域 大小 值 描述0bmRequestType1位图请求特征:D7: 传输方向0=主机至设备1=设备至主机D6.5: 种类0=标准1=类2=厂商3=保留D4.0: 接受者0=设备1=接口2=端点3=其他4.31=保留1bRequest1值具体请求(参见表8-3)2wValue2值字长域,根据不同的请求含义改变.4wIndex2索引或偏移字长域,根据不同的请求含义改变.典型用于传送索引或偏移.6wL

22、ength2如有数据传送阶段,此为数据字节数. 表8-2 . Setup 数据包的格式9.3.1 bmRequestType域 这个域表明此请求的特性。特别地,这个域表明了第二阶段控制传输方向。如果wLength域被设作0的话,表明没有数据传送阶段,那Direction位就会被忽略。 USB说明定义了一系列所有设备必须支持的标准请求。这些请求被例举在表8-3中。另外,一个设备类可定义更多的请求。设备厂商也可定义设备支持的请求。 请求可被导引到设备,设备接口,或某一个设备端结点(endpoint)上。这个请求域也指定了接收者。当指定的是接口或端结点(endpoint)时,wIndex域指出那个接

23、口或端节点。9.3.2 bRequest域 这个域标识特别的请求。bmRequestType域的Type啦可修改此域的含义。本说明仅定义Type 字位为0即标准设备请求时bRequest域值的含义。9.3.3 wValue域 此域用来传送当前请求的参数,随请求不同而变。9.3.4 wIndex域wIndex域用来表明是哪一个接口或端结点,图8-2表明wIndex的格式(当标识端结点时)。Direction位在设为0时表示出结点,设为1时表示是入结点,Endpoint Number是结点号。图8-3表明wIndex用于标识接口时的格式。 D7 D6 D5 D4 D3 D2 D1 D0 方向 保留

24、(为0) 端点号 D16 D15 D13 D12 D11 D10 D9 D8 保留(为0) 图8-2. 所指为端点时wIndex 格式 D7 D6 D5 D4 D3 D2 D1 D0 接口号 D16 D15 D13 D12 D11 D10 D9 D8 保留(为0) 图8-3. 所指为接口时WIndex 格式9.3.5 wLength域 这个域表明第二阶段的数据传输长度。传输方向由bmRequstType域的Direction位指出。wLength域为0则表明无数据传输。在输入请求下,设备返回的数据长度不应多于wLength,但可以少于。在输出请求下,wLength指出主机发出的确切数据量。如果

25、主机发送多于wLength的数据,设备做出的响应是无定义的。9.4 标准设惫请求 这部分描述的所有USB设备都定义的标准设备请求,表8-3将它们列出,而表8-4、8-5分别结出了对应的标准请求码及描述表类型。 不管设备是否被分配了非缺省地址或设备当前是被配置了的,它们都应当对标准请求产生响应。 特性选择符被用来设置特性或使特性生效。比如说某个设备、接口、或结点的远程唤醒功能,特性选择符的值在表8-6中得到了说明。对于非法请求的处理从前所述。但是非法请求并不会使得控制通道设置Halt特性。如果因为某种原因,设备因为一个错误状态不能通过缺省控制通道来与主机通信,设备必须被reset来清除错误状态并

26、重启缺省通道。bmRequestTypebRequestwValueWindexwLengthData00000000B00000001B00000010BCLEAR_FEATURE特性选择符零接口号端点号零无10000000BGET_CONFIGURATION零零一配置值10000000BGET_DESCRIPTOR描述表种类和索引零或语言标志描述表长描述表10000001BGET_INTERFACE零接口号一可选设置10000000B10000001B10000010BGET_STATUS零零接口号端点号二设备,接口 ,或 端点状态00000000BSET_ADDRESS设备地址零零无00

27、000000BSET_CONFIGURATION配置值零零无00000000BSET_DESCRIPTOR描述表种类和索引零或语言标志描述表长描述表00000000B00000001B00000010BSET_FEATURE特性选择符零接口号端点号零无00000001BSET_INTERFACE可选设置接口号零无100000010BSYNCH_FRAME零端点号二幀号 表8-3 标准设备请求 BrequestValueGET_STATUS0CLEAR_FEATURE1为将来保留2SET_FEATURE3为将来保留4SET_ADDRESS5GET_DESCRIPTOR6SET_DESCRIPTO

28、R7GET_CONFIGURATION8SET_CONFIGURATION9GET_INTERFACE10SET_INTERFACE11SYNCH_FRAME12表8-4 标准请求码 描述表种类值DEVICE1CONFIGURATION2STRING3INTERFACE4ENDPOINT5 表8-5 描述表种类 特性选择符 接受者 值DEVICE_REMOTE_WAKEUP 设备 1ENDPOINT_HALT 端点 0表8-6 标准特性选择符9.4.1 清除特性(ClearFeature()这个请求是被用来清除一个指定的特性。wValue中的特性选择符的值必须根据接收者来设定适当的值。接收者是

29、设备要用设备特性选择符,是接口就必须用接口特性选择符,是端结点就要用端节点特性描述符。 参照表8-6来看选择符与接收者的对应关系。 一个ClearFeature( )请求所指的特性如果不能被清除,不存在或指的是不存在的接口或结点号,会产生RequestError错误。 如果wLength不为0,设备响应无定义。 缺省状态:当设备处于缺省状态时,对此请求的反应无定义。 地址状态:在设备处于地址状态时这个请求是合法的,但如果该请求指的是接口或是非零号端结点,会引起请求错误。 配置状态:在此状态下,该请求合法。9.4.2 取得配置(GetConfiguration() 此请求返回当前设备配置值。 如果返回0值表明设备未配置。 如果wValue, wIndex, wLength的值与上面表中不同,设备响应无定义。 缺省状态:该请求响应无定义 地址状态:返回0值 配置状态:非0的 bConfigurationValue值被返回9.4.3 取得描述符 这个请求返回存 在的描述符。 wValue域的高一字节标识描述表类型,低一字节表示描述表的索引(参见表8-5)。wIndex域标识字串描述表的语言(Language ID)如果是其它语言的话就设为0,wLength表示要返回多少字节。如果描述表长度大于wLength域值,那么只有描述表的初始部分被返回。如果描述

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1