深入学习USB(13)USB传输的基本单位--包
Posted 奇妙之二进制
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入学习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(13)USB传输的基本单位--包的主要内容,如果未能解决你的问题,请参考以下文章