目录
2.1.3 数据包格式(DATA0/DATA1/MDATA)
2.1.4 握手包(ACK/NAK/STALL/NYET)格式
三、PID类型及用途
前言
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包后面的。