教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 专业资料 >

对USB协议中的迷茫点的解释

来源:网络收集 时间:2026-09-30
导读: 看了许多USB的协议,感觉有些细节没说清楚,这是我总结的关于许多资料里都讲得很模糊的东西,希望对初学者有帮助。看本文件的前提:对USB协议有一点点了解。 对USB协议中的迷茫点的解释 http://doc.guandang.netB的4种传输方式 所有的USB设备通信的数据交互都可

看了许多USB的协议,感觉有些细节没说清楚,这是我总结的关于许多资料里都讲得很模糊的东西,希望对初学者有帮助。看本文件的前提:对USB协议有一点点了解。


对USB协议中的迷茫点的解释
http://doc.guandang.netB的4种传输方式
所有的USB设备通信的数据交互都可归列到以下4种传输方式:
控制传输方式----------端点0的专属传输方式,只用于主机对USB设备的枚举过程。是仅有的一种双向传输方式。
批量传输方式----------保证准确性但不保证实时性的一种传输方式。它的优先级最低,仅在空闲时隙占用带宽,适合大量数据的搬运。
同步传输方式----------保证实时性但不保证准确性的一种传输方式。它具有固定的传输周期------帧,1帧的时隙为1ms,高速模式采用微帧(1微帧=1/8 帧时间)。
中断传输方式----------保证准确性但实时性不好的一种传输方式。它具有固定的查询周期--------主机总是固定时隙的查询中断传输的设备有无要上传的数据。
任何一传输方式的发起,都是由主机发动的。通常把批量传输、中断传输、同步传输统称为普通传输方式。

2.CPU与SIE
任何一个USB系统设备都可分为两大部分:CPU和SIE,其中SIE包含着USB设备、USB协议和EP_RAM。
SIE管理控制着整个USB设备的行为,作为USB系统设备,SIE通过协议栈接收来自USB总线的命令和数据,并对所有的命令包进行解析,并根据解析的结果产生相应的中断告知CPU。从功能的角度上,CPU在SIE的眼中只需做一件事:那就是把数据从SIE的QP_RAM中读出或把数据写入到SIE的EP_RAM中。当然,抛开功能的角度,CPU对SIE还有一功能,那就是设置SIE.
在功能上,SIE只有在两种情况下才对CPU提出中断请求:<1.>SIE接收到USB总线的命令和数据(可选),并对命令解析无误后,才向CPU提出中断请求;<2.>SIE向USB总线发送数据完毕后,才向CPU提出中断请求。
因SIE能独立的把控数据和命令,故事件的应答包都由SIE自己发送和消化,而不需CPU来干预。但控制传输的状态信息过程则要CPU来干预,即一次控制传输的完成的告示需要CPU来干预。

3.三大事件
USB通信中的所有传输都基于三大基本的事件:
IN事件 ------------- 主机将要接收数据的事件。
OUT事件 ------------ 主机将要发送数据的事件。
SETUP事件 ---------- 主机将要发送控制命令的事件。
事件的类型是基于主机而定义的,它不仅指明了主机即将要执行的动作,也指明了主机控制的数据流向。
IN事件、OUT事件在普通传输和控制传输中作用都一样,都是承载数据流的。

4.命令的传输
在USB传输中,命令可分为两类:事件命令、控制命令。
事件命令------------启动某一事件的命令。有3种事件命令:IN、OUT、SETUP,且它们有固定的命令包格式:SYNC+PID+ADDR+ENDP+CRC5,其中PID=IN/OUT/SETUP。

看了许多USB的协议,感觉有些细节没说清楚,这是我总结的关于许多资料里都讲得很模糊的东西,希望对初学者有帮助。看本文件的前提:对USB协议有一点点了解。

PID=IN :启动一次IN事件。
PID=OUT :启动一次OUT事件。
PID=SETUP :启动一次SETUP事件。
控制命令------------控制传输中的命令,用于主机对设备的枚举,它以数据项的形式存在于SETUP事件的数据包里,有着固定的命令包格式:命令类型+命令码+数值参数+索引参数+长度参数。

5.传输方式中的阶段和过程
传输方式中的阶段--------------指传输中某一包裹的流通全程或叫生命周期。
传输方式中的过程--------------指传输中事件执行的完整过程或生命周期,又叫事件过程集合.
可见,在传输方式中,阶段包含在过程之中,即过程是由阶段组成的。
任何过程,都由3个阶段构成:命令阶段、数据阶段、应答阶段。当然特殊的情况下可能没有数据阶段或应答阶段,但命令阶段必须存在。
命令阶段---------命令包的流通全程。
数据阶段---------数据包的流通全程。
应答阶段---------应答包的流通全程。
在普通传输方式中,过程只能由同一种IN或OUT事件过程构成,当然一个过程可能由多个同一类型的事件过程组成。
在控制传输方式中,一次完整的传输一般由三个过程构成:建立过程(SETUP事件过程)、可选的数据过程(由一个或多个IN/OUT事件过程构成)、状态信息过程(由一个IN或OUT事件过程构成)。

6.通信的应答
应答的形式有两种:应答包、状态信息。
应答包------------是对阶段的应答。即对其前一阶段的成败作出应答。
状态信息----------它仅存在于控制传输中,作为一个过程,是对前一过程予以肯定的应答,以告知本次的传输已成功结束。但方向刚好和前一过程的最后一个事件的数据方向相反,若没有数据阶段,则其方向只能为”主机接收“。
这里,需要明确的是:在任何一事件中,应答信号NAK都会阻塞该事件的进程,而使主机对该事件重试执行当前阶段的前一阶段。而STALL会直接的结束当前的传输(当然包括它的全部事件)。所以,状态信息过程的存在,一定是对其前过程的肯定应答。
-------------------------------------------------------------------------------------------------------------------------------------------------------------
普通传输中的应答:因为普通传输中都是IN或OUT事件,故它们中的应答形式都是应答包,即在当前事件中对当前阶段的前一阶段作出认可或否定。应答的
内容为:ACK / NAK / STALL。
控制传输中的应答:因为控制传输分3个不同的过程,不同的过程中应答的行为也不一样。
控制传输中SETUP(建立)过程中的应答---------此阶段应答的对象一定是设备,应答的内容只有肯定的一种ACK,若其前面阶段有错误,则没有应答阶段,即

看了许多USB的协议,感觉有些细节没说清楚,这是我总结的关于许多资料里都讲得很模糊的东西,希望对初学者有帮助。看本文件的前提:对USB协议有一点点了解。

设备不给出任何答复。
控制传输中数据过程中的应答----------------和普通传输方式中的应答完全一样,应答的内容为:ACK / NAK / STALL。
控制传输中状态信息过程中的应答------------仅出于对前一过程的肯定,以数据包的形式应答,只需反馈一0字节的数据包。若其前一过程事件的应答包是NAK,则该事件的进程将会被阻塞,自然不会进入状态信息过程,若其前一过程的事件的应答包是STALL,则整个传输将被Kill掉,状态信息过程当然不会出现。
其实,简化为一句话:只要能进入到状态信息过程,应答必定是肯定的,那就是一句0字节的数据包。或者说只要进入了状态信息过程,本次的控制传输就完美结束,因此状态信息过程不防叫做本次控制传输完美结束的宣布过程。

7.控制传输中的数据过程与状态信息过程的区分
每一次控制传输,其3过程一次存在顺序必定为:SetUp过程----->Data过程(可选)------>应答过程。数据过程和应答过程都是由IN或OUT事件组成的,所以,当存在数据过程时,怎么区分是数据过程还是应答过程?答案在于方向和传输的类容。
在控制传输中SetUp过程中,其命令阶段的命令类型字节的结构如下:
1、bmRequestType:D7D6D5D4D3D2D1D0
D7=0主机到设备
=1设备到主机;
D6D5=00标准请求命令
=01 …… 此处隐藏:1989字,全部文档内容请下载后查看。喜欢就下载吧 ……

对USB协议中的迷茫点的解释.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1759053.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150份
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150份
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)