从零开始学USB(十一、USB包的结构)

本文详细介绍了USB数据包的结构,包括同步域、包标识符PID、地址域、帧号域、数据域以及循环冗余检查(CRC)。每个部分都深入剖析了其工作原理和重要性,例如PID的编码组和数据包类型的区分,地址域的设备地址和端点地址,以及数据域的不同类型和CRC在错误检测中的作用。
摘要由CSDN通过智能技术生成

USB是串行总线,所以数据是一位一位地在数据线上传送的。既然是一位一位传送的,就存在着一个数据位的先后问题。

USB采用的是LSB在前的方式,即现出来的是最低位的数据,接下来是次低位....最后是最高位(MSB)。一个包有被分成很多个域(field),而LSB、MSB就是以域来为单位划分的。

这里还有一个数据传输方向的问题,因为在USB系统中,主机处于主导地位,所以把设备到主机的数据叫做输入,从主机到设备的数据叫做输出。

 

一、包的域格式

USB总线上的数据传输是以包为基本单位的。一个包被分成不同的域。根据不同类型的包,所包含的域是不一样的。但是不同的包有一个共同的特点。就是都要以同步域开始,紧跟着一个包标识符PID(Packet Identifiter),最后以包结束符EOP(End Of Pactet)来结束这个包。

 

同步域:所有数据包都以同步(SYNC)字段开始,该字段是生成最大边缘过渡密度的编码序列。 输入电路使用它将输入数据与本地时钟对齐。 全速/低速设备SYNC被定义长度为8位(0000 0001),高速长度定义为32位(0000 0000 0000 0000 0000 0000 0000 0001)。 注意,这个长度是对发送端的要求,收到端的SYNC字段可可以少于这个数。下图是一个全速/低速设备,经过NRZI编码后的波形。SYNC字段中的最后两位是一个标记(电平未翻转,即受到数据1),用于标识SYNC字段的结束,并通过推断来标识PID的开始。

  • 6
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奔跑的小刺猬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值