USB 协议数据格式
2010-07-04 12:17
183 查看
前面已经转了一篇类似的文章, 这篇和那篇其实很相似, 只是按我的习惯编写而成。 内容和图表基本来源于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/OUT和SOF)包格式
SETUP/IN/OUT: PID (8) + ADDR (7)+ENDP(4)+CRC5(5) = 24bit = 3bytes
SOF: PID(8)+FrameNumber(11)+CRC5(5)=24bit = 3bytes
Data(包括DATA0和DATA1包)包格式
(byte为单位):
PID(1)+DATA(0-1024)+CRC16(2)
Handshake包格式 (byte为单位):
PID (1)
图1
3.
事务 (Transaction)
有三种事务: SETUP, IN, OUT
每个事务,
又由多个包(token, data, handshake, special)组成
,如图2
图2
4.
传输 (Transfer)
四种传输方式:Control, Bulk, Interrupt, Isochronous
每种传输由一个或多个事务(SETUP, IN, OUT)组成
Control:
用于Device刚Attach到
Host时。
使用缺省的Control Pipe, Endpoint = 0.
有SETUP (Must)/IN/OUT (Optional) transaction.
Bulk:
用于传输大量顺序数据时,
并且对时序没有严格要求。如打印机。由IN/OUT transaction组成
Interrupt:
传输数据时间不定, 数据量小,
如键盘,鼠标。由IN/OUT transaction组成
Isochronous:用于数据量大,对时序有严格要求。由IN/OUT transaction组成
可以看出只有Control
Transfer有SETUP transaction
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/OUT和SOF)包格式
SETUP/IN/OUT: PID (8) + ADDR (7)+ENDP(4)+CRC5(5) = 24bit = 3bytes
SOF: PID(8)+FrameNumber(11)+CRC5(5)=24bit = 3bytes
Data(包括DATA0和DATA1包)包格式
(byte为单位):
PID(1)+DATA(0-1024)+CRC16(2)
Handshake包格式 (byte为单位):
PID (1)
图1
3.
事务 (Transaction)
有三种事务: SETUP, IN, OUT
每个事务,
又由多个包(token, data, handshake, special)组成
,如图2
图2
4.
传输 (Transfer)
四种传输方式:Control, Bulk, Interrupt, Isochronous
每种传输由一个或多个事务(SETUP, IN, OUT)组成
Control:
用于Device刚Attach到
Host时。
使用缺省的Control Pipe, Endpoint = 0.
有SETUP (Must)/IN/OUT (Optional) transaction.
Bulk:
用于传输大量顺序数据时,
并且对时序没有严格要求。如打印机。由IN/OUT transaction组成
Interrupt:
传输数据时间不定, 数据量小,
如键盘,鼠标。由IN/OUT transaction组成
Isochronous:用于数据量大,对时序有严格要求。由IN/OUT transaction组成
可以看出只有Control
Transfer有SETUP transaction
相关文章推荐
- 【HTTP】另类的POST头数据 RFC1867协议格式简析
- 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。参数 1 (""): 数据类型 0x38 未知。
- python解析WCF协议中application/msbin1格式数据
- 从调试数据分析USB通信协议——基础介绍(一)
- pb数据格式,pb协议->pb解析库
- 网络协议、报文、格式与数据结构
- STUN协议数据格式及抓包分析
- Android开发中HTTP协议HttpPost向服务器发送JSon数据格式的数据
- 安卓位运算处理usb,蓝牙等协议接收的数据
- 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。参数 1 (""): 数据类型 0x38 未知
- 鼠标 键盘 协议 数据格式
- USB鼠标、键盘数据格式
- TCP/IP学习笔记二:地址解析协议ARP 数据格式
- USB协议介绍[3]-数据传输类型
- ADO.NET Entity framework 中 实体的对应数据库中text类型的问题 (更新) :asp.net entity 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。参数 3 ("@0"): 数据类型 0
- HTTP 协议中你必须知道的三种数据格式
- GPS协议数据格式
- TCP/IP各协议数据格式
- http协议之response案例三:【content-type】--服务器发送给浏览器的数据类型和数据编码格式
- 基于HTTPS协议的12306抢票软件设计与实现--相关接口以及数据格式