USB基础知识概论

版本:v0.9.2

Crifan Li

摘要

本文主要介绍了USB协议的基础知识,包括USB协议的来龙去脉,OHCI/UHCI/EHCI/xHCI之间的区别和联系,USB的firmware,以及USB 2.0协议的概览,USB的枚举的详细过程,OHCI的一些特点

[提示] 本文提供多种格式供:
在线阅读 HTML HTMLs PDF CHM TXT RTF WEBHELP
下载(7zip压缩包) HTML HTMLs PDF CHM TXT RTF WEBHELP

HTML版本的在线地址为:

http://www.crifan.com/files/doc/docbook/usb_basic/release/html/usb_basic.html

有任何意见,建议,提交bug等,都欢迎去讨论组发帖讨论:

http://www.crifan.com/bbs/categories/usb_basic/

2015-05-26

修订历史
修订 0.5 2011-10-06 crl
  1. USB基础知识概论
修订 0.9.2 2015-05-26 crl
  1. 通过Docbook发布
  2. 添加了USB协议细节部分的内容
  3. 添加了USB OHCI学习笔记
  4. 更新了所有的xml:id

目录

缩略词
正文之前
1. 此文目的
2. 关于一些USB方面的文档
2.1. 大而全的USB英文资料
2.2. 简明扼要的USB英文资料
2.3. 全系列的介绍Linux下的USB中文资料
3. 声明
1. USB的来龙去脉
1.1. USB是什么
1.2. 为何要有USB
2. USB相关的基础知识
2.1. USB相关的硬件
2.1.1. USB控制器类型:OHCI,UHCI,EHCI,xHCI
2.1.1.1. OHCI和UHCI
2.1.1.1.1. 为何Intel设计的UHCI把更多的任务都留给软件实现?
2.1.1.1.2. 为何嵌入式系统中的USB主控多用OHCI,而非UHCI?
2.1.1.1.3. OHCI和UHCI技术细节上的区别
2.1.1.2. EHCI
2.1.1.3. xHCI
2.1.1.4. OHCI,UHCI,EHCI,xHCI的区别和联系
2.1.2. USB接口的引脚定义
2.1.3. USB的接口(connector)类型
2.2. USB相关的软件
2.2.1. USB设备端的固件(Firmware)
2.2.2. USB主机(Host)端的USB驱动和软件
2.2.3. 其他一些USB测试和协议分析等软件
3. USB协议概览
3.1. USB 2.0协议内容概览
3.2. USB协议的版本和支持的速度
3.2.1. 为何USB的速度,最开始没有设计的更快些?
3.3. USB系统的核心是Host
3.4. USB中用NRZI来编码数据
3.4.1. USB中用Bit-Stuffing来同步时钟信号
4. USB协议细节
4.1. USB Class
4.1.1. 为何要搞这么多USB的Class
4.2. USB的框架
4.3. USB Transfer and Transaction
4.4. USB枚举(Emulation)
4.4.1. 什么是USB枚举
4.4.2. USB枚举的过程
4.4.3. 举例详解USB的枚举过程
4.4.3.1. USB枚举示例数据
4.4.3.2. 详细分析USB枚举数据的每个字段的具体含义
4.5. USB OHCI学习笔记
参考书目

插图清单

1.1. USB与其他总线的异同
1.2. PC机箱后面的众多接口
1.3. 有了USB接口之后的PC机箱背后的接口
2.1. USB协议分析工具:Ellisys的USB Explorer 260
3.1. I2C数据编码格式
3.2. 归零编码
3.3. 非归零编码
3.4. NRZ和NRZI
4.1. USB Implementation Areas
4.2. USB Physical Bus Topology
4.3. USB Logical Bus Topology
4.4. USB Communication Flow
4.5. USB Layers in Linux
4.6. USB Transfer and Transaction
4.7. Configuration Descriptor: 0902420002010480E1
4.8. Interface Descriptor: 0904000002FF000000
4.9. Endpoint (Interrupt Out) Descriptor: 07050103400001
4.10. Endpoint (Interrupt In) Descriptor: 07058103400001
4.11. Interface Descriptor: 090401000103000000
4.12. Endpoint (Interrupt In 2) Descriptor: 0705820340000A
4.13. USB主机中软件和硬件之间的关系
4.14. USB Communication Channel
4.15. USB Typical List Structure

表格清单

2.1. 不同USB控制器类型OHCI,UHCI,EHCI,xHCI的区别和联系
2.2. USB 1.x/2.0的引脚定义
2.3. USB 3.0的引脚定义
2.4. USB接口分类
3.1. USB 2.0协议的内容组成
3.2. USB协议的版本的演化
4.1. USB Class表
4.2. USB Descriptor Type
4.3. USB Configuration Descriptors
4.4. USB Interface Descriptors
4.5. USB Endpoint Descriptors
4.6. USB HID Descriptors
4.7. USB HID Descriptor: 090401000103000000