对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字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [专业资料]《蜜蜂之家》教学反思
- [专业资料]过去分词作定语和表语1
- [专业资料]苏州工业园区住房公积金贷款申请表
- [专业资料]保安管理制度及处罚条例细则
- [专业资料]2018年中国工程咨询市场发展现状调研及
- [专业资料]2015年电大本科《学前教育科研方法》期
- [专业资料]数字信号处理实验 matlab版 离散傅里叶
- [专业资料]“十三五”重点项目-虎杖白藜芦醇及功
- [专业资料]2015-2020年中国竹木工艺市场需求及投
- [专业资料]国际贸易理论与实务作业五:理论案例分
- [专业资料]财政部修订发布事业单位会计制度
- [专业资料]BCA蛋白浓度测定试剂盒(增强型)
- [专业资料]工程进度总计划横道图模板(通用版)
- [专业资料]七年级地理同步练习(天气与气候)
- [专业资料]X光安检机介绍火灾自动报警系统的组成
- [专业资料]衢州市人民政府办公室关于印发衢州市区
- [专业资料]经济全球化及其影响[1]
- [专业资料]质粒DNA限制性酶切图谱分析
- [专业资料]国家安全人民防线工作“六项”制度
- [专业资料]劳动力投入计划及保证措施
- 电子账册联网监管培训手册
- 人教版语文七年级上第1课《在山的那边
- 对我区担保行业发展现状的思考与建议
- 平面四边形网格自动生成方法研究
- 2016年党课学习心得体会范文
- 如何设置电脑定时关机
- 全球最美人妖排行榜新鲜出炉
- 社会实践调查报告及问卷
- Visual Basic习题集
- 《鱼我所欲也》课件2
- 浙江省会计从业资格考试试卷
- 全遥控数字音量控制的D 类功率放大器资
- 鞍钢宪法与后福特主义
- 电表的改装与校准实验报告(1)
- 2014年高考理科数学真题解析分类汇编:
- Windows 7 AIK 的使用
- 风电场全场停电事故应急处置方案
- 化工原理选填题题库(下)
- 关于产学研合作教育模式的学习与思考
- 西安先锋公馆项目前期定位报告




