usb的批传输都有哪些事务包组成
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了usb的批传输都有哪些事务包组成相关的知识,希望对你有一定的参考价值。
参考技术A 批量数据传输分三个阶段:第一部分——令牌阶段。
Host端发出一个Bulk的令牌请求。
如果令牌是IN请求 ,则是从Device到Host的请求;
如果令牌是OUT请求,则是从Host到Device端的请求。
第二部分——传送数据的阶段。
根据先前请求的令牌的类型,数据传输有可能是IN方向,也有可能是OUT方向。传输数据的时候用DATA0和DATA1令牌携带着数据交替传送。
数据传输格式DATA1和DATA0,这两个是重复数据,确保在1数据丢失时0可以补上,不至于数据丢失。
第三部分——握手阶段。
如果数据是IN 方向,握手信号应该是Host端发出;
如果数据是OUT方向,握手信号应该是Device端发出。
握手信号可以为ACK, 表示正常响应,
NAK, 表示没有正确传送。
STALL,表示出现主机不可预知的错误。
深入学习USB(13)USB传输的基本单位--包
文章目录
1.USB传输架构和包的组成
本节我们开始对USB包进行深入讲解,USB所有的传输都会被分成包进行传输,不同类型的包里面包含着不同的域(后面一一学习)。传输架构和包的组成如下图。
一个包包括以下几部分:
每个包都由SOP(包起始域)、SYNC(同步域)、Packet Content(包内容)、EOP(包结束域)四部分组成,其中SOP、SYNC、EOP为所有包共有的域,Packet Content最为核心,不同类型的包由不同的Packet Content组成。关于包每一个域的具体细节我们在下一节介绍。
每个域的每一个bit都会用反向非归零编码(NRZI)进行编码后发送出去。可以参考NRZI编码。
2.包类型
PID表示包id,可以理解成是包类型,描述这是一个什么用途的包,如令牌包,数据包,握手包等。注意:所有事务的令牌包总是主机发起的。包类型总体有4类,令牌类可以理解成控制消息,数据类可以理解成数据消息。
3.包的发送方式
包的发送方式其实和生活中人与人的交流很类似,如下:
第一步:主机会先发送一个令牌包,这个包的作用就是告诉设备我主机要干啥(控制传输Setup、发送数据OUT、接收数据IN、帧起始包),反正就是告诉设备自己想干啥;
第二步:数据包,设备会根据令牌包数据方向,如果主机要发送数据,则设备就会处于接收数据包状态,如果主机要设备的数据,紧接着设备会把对应的数据包发送给主机;
第三步:握手包,数据发送方在第二步发送数据包完毕后需要进入接收握手包状态(我的知道我的数据发出去没有或者出错没出错呀),数据接收方在接收到数据之后需要返回一个握手包给数据发送方。
以上是关于usb的批传输都有哪些事务包组成的主要内容,如果未能解决你的问题,请参考以下文章