USB2[1].0协议深入解读.ppt

  1. 1、本文档共288页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中国普天信息技术研究院 2.批量处理 批处理事务类型的特点是以错误检测和重试的方式保证主机和功能部件之间的数据的无错传输的能力.批处理共有3个阶段的处理:令牌,数据和握手包.如图8.30所示.在某些流控制和停止情况下,数据阶段会被握手阶段代替,结果处理只有另个阶段,没有数据被传送.PING和NYET包只能在高速操作的设备中使用. 当主机准备接收批量数据时,它发送一个IN令牌.功能设备的端点通过返回一个数据包或者NAK或STALL握手(如果不能返回数据)响应.NAK表示功能设备暂时不能返回数据,STALL表示端点永久停止,要求USB系统软件进行干涉.如果主机接收到一个有效的数据包,它会用ACK握手响应.如果主机在接收数据时检测到错误,它就不能向功能设备返回握手. 当主机准备发送批量数据时,它首先发送一个跟有数据包的OUT令拍包(或者PING特殊令牌包).如果数据被功能设备无错地接收,它会返回3个(或者4个,对于高速操作的设备包括NYET)握手中的一个: ACK表示数据包被无错接收,并通知主机它可以发送序列中的下一个包 NAK表示数据被无错接收,但由于功能设备处于暂时的阻碍接收数据情况(例如缓冲器满),主机应重发数据. 如果端点停止,它将返回STALL,表示由于功能设备上存在错误的情况,主机不应重试传输. 如果接收的数据包有CRC或位填充错误,端点不会返回握手. 图8.31和图8.32所示分别是批量,控制和中断OUT全速/低速处理的主机和设备状态机;图8.33和图8.34所示分别是批量,控制和中断IN处理的主机和设备状态机. 图8.35所示为批量读和写的位序列和数据PID用法.数据包同步通过使用数据序列触发位和DATA0/DATA1 PID实现,当端点经历了任何配置事件后,批量端点的触发序列被初始化为DATA0.端点的数据触发不会被初始化为短包传输或者撤销IRP的直接结果. 主机通常将总线传输的首个处理初始为配置事件的DATA0 PID.第二个处理使用DATA1 PID,接下来的数据传输交替地使用剩下的批量传输,接收到ACK后,数据包发送触发器;接收了一个有效的数据包,接收器触发. 3.控制传输 控制传送最少有2个事务阶段:建立和状态。控制传送可以有选择性地包括建立和状态阶段之间的数据阶段。在建立阶段里,SETUP事务用于向功能部件的控制端口传输信息。SETUP事务在格式上类似于输出,但是使用的是SETUP而不是OUT的PID。图8-36说明了SETUP事务的格式。SETUP总是在SETUP事务的数据时相上使用DATA0 PID。收到SETUP的功能部件必须接受SETUP数据并用ACK应答,如果数据被损坏,则丢弃数据且不返回握手。 控制传送的数据阶段(如果存在),由一个以上的IN或OUT构成,遵守和批处理传送相同的协议规则。所有的数据阶段里的事务都必须有相同的方向(即全部IN或者全部OUT)。在数据时相中要发送的数据的数量和其方向在建立阶段里被指定。如果数据的数量超过了先前确定的数据包大小,数据在支持最大的包大小的多个事务中被发送(IN或者OUT)。任何剩下的数据都作为剩余在最后的事务中被发送。 控制传输的状态阶段是序列的最后一个处理.状态阶段处理尊从与批量处理相同得不偿失协议序列.以高速操作的设备状态阶段通常包括PING协议.状态阶段用从上一个阶段的数据流方向改变来描绘.通常总使用DATA1 PID.例如,如果数据阶段包含OUT,那么状态阶段就是一个单独的IN处理;如果控制序列没有数据阶段,那么它就由一个建立阶段和紧接的一个包的IN处理的状态阶段组成. 图8.37所示为处理顺序,数据位序列的值以及读写序列的数据PID类型,位序列在圆括号使用. 当处于控制传输的数据或状态阶段的控制端点发送STALL握手时,对该端点的所有后续访问也必须返回STALL握手,直到接收到SETUP PID.端点在接收到后续的SETUP PID后不要求返回STALL握手.对于默认的端点来说,如果对SETUP处理返回ACK握手,主机要求端点已经导致产生STALL的情况自动恢复,而且端点必须正常工作. 报告状态结果 状态阶段向主机做汇报传送中的先前的建立和数据阶段的结果。可能返回三种结果: 命令序列成功地完成了; ? 命令序列没能完成; ? 功能部件还在忙于完成指令。 ? 汇报状态总是从功

文档评论(0)

开心就好 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档