USB2.0 基础知识点整理一

本文详细解释了USB2.0包的组成,包括SOF包、IN/OUT/SETUP/PING包、数据包和握手包的格式,以及PID类型和用途。还介绍了USB主机与设备之间的通信流程,包括上电、握手、数据传输和状态机操作。

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

目录

前言

一、USB传输方向

二、USB2.0包组成

2.1 PACKET

2.1.1 SOF包格式

2.1.2 IN/OUT/SETUP/PING包格式

 2.1.3 数据包格式(DATA0/DATA1/MDATA)

 2.1.4 握手包(ACK/NAK/STALL/NYET)格式

三、PID类型及用途

四、通信flow

总结





前言

USB作为通用串行总线,目前支持低速、高速和超高速三种传输速率,其中LS为12M,HS为480M,SS可达5G,本篇文章主要针对USB物理层以及协议层相关USB知识点进行整理,所涉及内容包括具体的controller和phy设计以及EDA验证内容。

一、USB传输方向

按照协议USB传输方向为LSB格式,即先传输低bit,后传输高bit。

二、USB2.0包组成

USB包由SOP,SYNC,Packet内容和EOP组成,即包头、同步序列、包内容以及包尾构成,如下:

 其中:

SOP:start of packet,IDLE状态为J态,起始包为从J态到K态的翻转

SYNC:FS的同步序列为8'h00000001,HS为32'h00000000_00000000_00000000_00000001

PACKET:具体信息都体现在包内容里,见2.1小节

EOP:end of packet,两个bit的SE0状态跟着J态,表示包结束

2.1 PACKET

 其中:

PID:共计16种,用于区分各种类型的包

地址:包括7bit设备地址+4bit端点地址,发送顺序为先发7bit设备地址,然后发4bit端点号

帧号:共计11bit,每发1帧就会自动加1,计数到头后return到0,用于表示第几帧

数据:对于不同的包,数据长度从0-1024byte不等,因此有的包没有数据domain

CRC:控制包的CRC为5bit,数据包的CRC为16bit

2.1.1 SOF包格式

 SOF包没有地址domain和数据domain,其中PID=0101,由host发出,用于激活bus,使bus处于active状态,sof包的packet domain只有PID+帧号+CRC,仿真会发现每个SOF的帧号都会依次递增。

2.1.2 IN/OUT/SETUP/PING包格式

 bulk in、bulk out,setup,ping这几种包格式的packet domain只有PID+地址+CRC,没有帧号和数据。仿真的时候可以看到一般这类包都是跟在SOF包后面的。

 2.1.3 数

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

love混世_魔王

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

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

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

打赏作者

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

抵扣说明:

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

余额充值