USB数据最小的单位域有哪些类型

电子说

1.3w人已加入

描述

  USB数据是由二进制数字串构成的,首先数字串构成域(有七种),域再构成包,包再构成事务(IN、OUT、SETUP),事务最后构成传输(中断传输、并行传输、批量传输和控制传输)。下面介绍一下域、包和事务。

  域是USB数据最小的单位,由若干位组成(多少位由具体的域决定),域可分为七个类型:

  1、同步域(SYNC)

  所有的USB包都由SYNC开始,高速包的SYNC宽度为32bit,全速/低速包的SYNC段度为8bit。实际接收到的SYNC长度由于USB HUB的关系,可能会小于该值。八位的值固定为0000 0001,用于本地时钟与输入同步。

  2、标识域(PID)

  由四位标识符 + 四位标识符反码构成,表明包的类型和格式,这是一个很重要的部分,这里可以计算出,USB的标识码有16种。USB2.0使用了十六种标识码,标识码的作用是用来说明包的属性的,标识码是和包联系在一起的,标识码分别有以下十六种:

  令牌包 :

  0x01:输出(OUT)启动一个方向为主机到设备的传输,并包含了设备地址和标号。

  0x09:输入(IN) 启动一个方向为设备到主机的传输,并包含了设备地址和标号。

  0x05:帧起始(SOF)表示一个帧的开始,并且包含了相应的帧号。

  0x0d:设置(SETUP)启动一个控制传输,用于主机对设备的初始化。

  数据包 :

  0x03:偶数据包(DATA0)。

  0x0b:奇数据包(DATA1)。

  握手包:

  0x02:确认接收到无误的数据包(ACK)。

  0x0a:无效,接收(发送)端正在忙而无法接收(发送)信息。

  0x0e:错误,端点被禁止或不支持控制管道请求。

  特殊包0x0C前导,用于启动下行端口的低速设备的数据传输。

  3、地址域(ADDR):七位地址,代表了设备在主机上的地址,地址000 0000被命名为零地址,是任何设备第一次连接到主机时,在被主机配置、枚举前的默认地址,由此可以知道为什么一个USB主机只能接127个设备的原因。

  4、端点域(ENDP),四位,由此可知一个USB设备端点数量最大为16个。

  5、帧号域(FRAM),11位,每一个帧都有一个特定的帧号,帧号域最大容量0x800,对于同步传输有重要意义。

  6、数据域(DATA):长度为0~1023字节,在不同的传输类型中,数据域的长度各不相同,但必须为整数个字节的长度。

  7、校验域(CRC):对令牌包和数据包中非PID域进行校验的一种方法,CRC校验在通讯中应用很泛,是一种很好的校验方法,CRC码的除法是模2运算,不同于10进制中的除法。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分