USB 协议数据格式

前面已经转了一篇类似的文章, 这篇和那篇其实很相似, 只是按我的习惯编写而成。 内容和图表基本来源于www.usb.org

 

LSb(bit) first

1.       (Fields)

SYNC: 所有 包开始都必须有的, 1字节在Low/Full Speed, 4字节在High Speed

PID (Packet ID): 8bit, 4位为低四位取反,以低4位为准 (见图1

Address: 两种地址,一种指function address (7bit), 一种指Endpoint地址(4bit)

Frame Number:  只出现在SOF token 包中,11 bit

Data: 0-1024字节

CRC:  token packet 5bit, Data packet: 2bytes

 

2.       (Packet)

四种, 见图1

Token (包括SETUP/IN/OUTSOF)包格式

SETUP/IN/OUT: PID (8) + ADDR (7)+ENDP(4)+CRC5(5) = 24bit = 3bytes

SOF: PID(8)+FrameNumber(11)+CRC5(5)=24bit = 3bytes

 

Data(包括DATA0DATA1)包格式 (byte为单位)

PID(1)+DATA(0-1024)+CRC16(2)

 

Handshake包格式 (byte为单位)

PID (1)

 图1

                                                         图1

 

3.       事务 (Transaction)

有三种事务: SETUP, IN, OUT

每个事务, 又由多个包(token, data, handshake, special)组成 ,如图2

 

图2

                                                                                                                图2

 

 

4. 传输 (Transfer)

四种传输方式:Control, Bulk, Interrupt, Isochronous

每种传输由一个或多个事务(SETUP, IN, OUT)组成

Control:  用于DeviceAttach Host时。 使用缺省的Control Pipe, Endpoint = 0.  SETUP (Must)/IN/OUT (Optional) transaction.

Bulk:  用于传输大量顺序数据时, 并且对时序没有严格要求。如打印机。由IN/OUT transaction组成

Interrupt: 传输数据时间不定, 数据量小, 如键盘,鼠标。由IN/OUT transaction组成

Isochronous:用于数据量大,对时序有严格要求。由IN/OUT transaction组成

可以看出只有Control  TransferSETUP transaction

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值