USB 协议数据格式
来源:互联网 发布:想在淘宝买情趣用品 编辑:程序博客网 时间:2024/06/04 20:51
前面已经转了一篇类似的文章, 这篇和那篇其实很相似, 只是按我的习惯编写而成。 内容和图表基本来源于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
- USB 协议数据格式
- USB鼠标、键盘数据格式
- USB的数据格式概述
- USB鼠标、键盘数据格式
- 鼠标 键盘 协议 数据格式
- GPS协议数据格式
- TCP协议数据格式
- USB协议
- usb协议
- usb协议
- USB协议
- USB协议
- USB协议
- USB 协议
- Usb协议
- usb协议
- usb协议
- USB 协议
- 怎样与机器对话?
- 无名结构体的一个妙用
- 冒泡排序(C#)
- ZOJ 1067
- 连接sql 数据库
- USB 协议数据格式
- LINUX下网络配置-network eth0 ifconfig
- JOJ1062: Computer Versus Mankind
- 解决amule脱机下载问题
- BlockUI in IE Bug
- 从注册表删除桌面上不能删除的图标
- tcpdump 用法详解
- 壮志畅——写给2010世界杯依旧奋战的壮士们
- Quartus II 各个版本下载