USB之(二)通讯协议

本文详细介绍了USB通讯协议,包括包的组成(同步字段、PID、数据字段、CRC和EOP)、信息包格式(令牌包、SOF包、数据包、握手包)以及事务处理(输入IN、输出OUT、设置SETUP)。还探讨了USB传输类型,如控制传输、中断传输、批量传输和同步传输的特性和工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0、基本概念

    一个【传输】(控制、批量、中断、等时)由多个【事务】组成;一个【事务】(IN、OUT、SETUP)由一个或多个【Packet】组成。

    包是USB总线上数据传输的最小单位,不能被打断或干扰,否则会引发错误。若干个数据包组成一次事务传输,一次事务传输也不能打断,属于一次事务传输的几个包必须连续,不能跨帧完成。一次传输由一次到多次事务传输构成,可以跨帧完成。

    USB数据在【主机软件】与【USB设备特定的端点】间被传输。【主机软件】与【USB设备特定的端点】间的关联叫做【pipes】。一个USB设备可以有多个管道(pipes)。

1、包

    包(Packet)是USB系统中信息传输的基本单元,所有数据都是经过打包后在总线上传输的。包只能在帧内传输。高速USB总线的帧周期为125us,全速以及低速 USB 总线的帧周期为1ms。帧的起始由一个特定的包(SOF 包)表示,帧尾为 EOF。EOF不是一个包,而是一种电平状态,EOF期间不允许有数据传输。 

    注意:虽然高速USB总线和全速/低速USB总线的帧周期不一样,但是SOF包中帧编号的增加速度是一样的,因为在高速USB系统中,SOF包中帧编号实际上取得是计数器的高11位,最低三位作为微帧编号没有使用,因此其帧编号的增加周期也为 1mS。

    USB包由五部分组成,同步字段(SYNC)、包标识符字段(PID)、数据字段、循环冗余校验字段(CRC)和包结尾字段(EOP)。包的基本格式如下所示:

SYNC

PID

DATA

CRC

EOP

1.1 同步字段(SYNC)

    由8位/32位组成,作为每个数据包的前导,用来产生同步作用,使USB设备与总线的包传输率同步,它的数值固定为000000001。Full/low-speed为8位,high-speed为32位。

1.2 标识符字段(PID)

    用来表示数据封包的类型。PID中的校验字段是通过对类型字段的每个位求反码产生的,PID字段如下所示:

PID0

PID1

PID2

PID3

~PID0

~PID1

~PID2

~PID3

    信息包的类型包括令牌、数据、握手和特殊四种类型。

封包类型

PID名称

PID编码

意义

令牌

OUT

0001B

从主机到设备的数据传输

IN

1001B

从设备到主机的数据传输

SOF

0101B

帧的起始标记与帧码

SETUP

1101B

从主机到设备,表示要进行控制传输

数据

DATA0

0011B

偶数数据封包

DATA1

1011B

奇数数据封包

DATA2

0111B

High-speed, high bandwidth isochronous transaction in a microframe数据包

MDATA

1111B

High-speed for split and high bandwidth isochronous transaction 数据包

握手

ACK

0010B

接收器收到无错误的数据封包

NAK

1010B

接收器无法接收数据或发射器无法送出数据

STALL

1110B

端点产生停滞的状况

NYET

0110B

接收器无响应

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值