整理 使用usb术语详解
2010-07-05 13:43
176 查看
如果您刚开始接触
USB
,那么了解一些
USB
术语
将很有帮助。本文介绍了基本的
USB
术语。
主机
USB
是一种
“
主
-
从
”
式总线,
包括一个主机和多个从机。从机称作外设,在
USB
术语中也称作功能部件。主机称作主设备。所有
USB
传输都由主机启动;外设总是响应传输,不会启动传输。最常用的主机是
PC
机,主机通过
USB-A
连
接器连接到下行设备。嵌入式主机不包括
PC
机,而是用一个微控制器作为专用主机,或许只能与一类
USB
设备通信。
功能部件
功能部件是
USB
设备,也称作
USB
外
设。
USB
外设是主机的
“
下行
”
设备,使
用
USB B
型连接器连接。
速率
USB 2.0
标准规定了以下三种传输速率:
低速模式传输速率为
1.5Mbps
,多用于键盘和鼠标。
全速模式传输速率为
12Mbps
。
高速模式传输速率为
480Mbps
。
市场上关于
“USB 2.0
兼容
”
的概念有一些混乱。这种混乱源于
USB
标准版本的升级,首先推出的是
USB
1.0
,紧接着有了比
1.0
更理想的
USB1.1
。
USB1.x
支持低速和全速两种
USB
总线速度。
2.0
版本
增加了高速模式,完全替代了
1.1
。所以,如果使用的是工作在
12Mbps
速率下的全速器件,则可认为它与
USB 2.0
兼容,即使许多人仅将
USB 2.0
用于高速
(480Mbps)
操作。
入
-
出方向
USB
系统以主机为中心。因此,解释
USB
术语时假设面向的是主机。所以,从主机侧看,
“
入
”
表示传输方向从外设到主机;同样,
“
出
”
表示传输方向从主机到外设。
端点
端点位于
USB
外设内部,所有通信数据的来源或目的都基于这些端点,是一个可寻址的
FIFO
。每个
USB
外设
有一个唯一的地址,可能包含最多十六个端点。主机通过发出器件地址和每次数据传输的端点号,向一个具体端点
(FIFO)
发送数据。
每个端点的地址为
0
到
15
,一个
端点地址对应一个方向。所以,端点
2-IN
与端点
2-OUT
完全不同。
每个器件有一个默认的双向控制端点
0
,因此不存在端点
0-IN
和
端点
0-OUT
。
外设中端点的编号是任意的。枚举期间外设向主机报告其端点号和特
征。
集线器
集线器扩展了
USB
主机所能连接设备的数量。
PC
机的
USB
控制器内置一个集线器,负责完成一些底层
USB
功能,如检测设备的插入或拔出。集线器以全速或高速连接到上行端口
(
到
PC)
,以低速、全速或高速连接到下行端口
(
到外设
)
。
PC
的根集线器可为每个
A
型连接器提供
5V
、
500mA
电
源。一个总线供电的外部集线器可为每端口提供
100mA
电流。由于
USB
为外部集线器电路分配
100mA
电
流,因此,一个总线供电的集线器可以有四个下行端口。如果集线器有自己的电源
(
自供电
)
,每个下行端口可提供高达
500mA
电
流。
枚举
插入
USB
设备时,主机获取连接通知,继而识别刚刚插入的是什么。主机需要得到一系列描述符
(
数据表
)
,该描述
符来自插入的设备,所有
USB
设备在插入
USB
端口时,主机都通过默认的
CONTROL
端点
0
与设备进行通讯。如果主机确认它从设备接收的数据正确,则配置该设
备使之开始工作。如果主机认为设备的数据不正确
(
例如,某个描述符数据有冲突或超出了规范
)
,则忽略该设备。这时会弹出一个对话窗,说明该
USB
设备出了一些问题。
第九章
(
关于枚举的更多信息
)
USB
标准的第
9
章定义了
枚举期间主机送到外设的所有请求,以及外设响应的数据格式。如果访问
USB
官方
网站,将找到一个名为
USBCV (USB
命令验证器
)
的软件工具,其中有一部分名为
“
第
9
章测试
”
。这些测试可以证明您的枚举代码是否正确。在进行
USB
实验室测试时也要用到
USBCV
。
因此,如果已在自己的实验室里通过了这一
USB
验证,则实验室测试也不成问题。
SIE
SIE
指串行接口引擎,是所有
USB
控制
器内部的
“
核心
”
。
SIE
负责
处理底层协议,如填充位,
CRC
生成和校验,并可发出错误报告。
SIE
的主要任务是将低级信号转换成字节,以供控制器使用,某些
SIE
会更加先进灵活。它处理的底层信号细节越多,控制固件越简单。例如,某些
SIE
只报告端点数据触发的结果
(
参见下文
)
,并将它留给固件以确定如何处理。
数据触发
USB
包从
PID
或
ID
开始。数据传输用到两种
PID
:
DATA0
和
DATA1
。主机和外设均包含数据触发位,每个端点一个。触发位确定这些数据
PID
中的哪一个用于数据传输。当外设脱离复位状态,主机和外设均将其内部数据触发位复位到零。因此,第一个传
送的是
DATA0 PID
数据包。当数据包传输无误时
(
发送方接收到
ACK PID
信号,表明数据传输无误
)
,发送方和接收方补偿其数据触发值。然后用
DATA1 PID
向端点发送第二个数据包。成功传输后,
DATA0 PID
和
DATA1 PID
数据包交替发送
(
或再次触
发
)
。
USB
将该机***为其误差校正的一部分。
控制传输、批量传输、中断传输、同步传输
USB
有上述四种传输类型。枚举期间外设告诉主机每个端点支持哪种传输类型。
只有主机能够发出控制传输,该传输由两个或三段组成。先通过设置数
据包
(8
字节长
)
发送具体的主机请求。然后用一个可选数据包移动描述符表等数据。最后,用握手
(
状态
)
包终止控
制传输。作为
“
关键
”
传输,控制传输有高总线优先权和最全面的误差校验。每个
USB
外设都需要一个默认的控制端点
0
。
批量传输使用流控制和误差校验移动数据。批量传输为异步方式,这意
味着预定传输时间不固定或不能保证。主机安排批量传输的优先级为低。这并不说明批量传输很慢;如果总线被轻微加载,批量传输即可在所有可用带宽上进行。
实际上,中断传输和批量传输很难区分。他们之间的唯一区别是中断点
包含轮询间隔值,用来告诉主机多长时间
“ping”
一次端点。所以批量和中断传输之间的唯一区别是主机多长时间安排
一次传输。
同步
(ISO)
传输用于数据流,例如音频或视频,此时数据必须及时到达以避免音频或视频数据中断。当器件枚举时告诉主
机其
ISO
端点对带宽的要求。如果带宽适当,主机保证每隔
1ms
发送一个
USB
帧,
包含一个发往或来自设备的
ISO
数据包。
ISO
不使用握手
(ACK/NAK)
或总线重试。同步传输仅适用于全速和高速设备。
总线复位
主机通过发出总线复位信号复位
USB
外设。全速和低速
USB
的
D+
和
D-
线上通
常使用差分信号。但也有例外,总线复位和包结束信号使用的是单端零信号,此时
D+
和
D-
均为低。
USB
驱动器
Windows
中内置了支持各种
USB
设备的驱动程序。如果固件支持这些标准设备之一,则
USB
产品不需要安装定制驱动程序
(
没人真
的想要写
Windows
驱动
)
。
Windows
包含标准设备驱动程序,如
HID (
人机接口设备
)
和大容量存储器
(
磁盘驱动
器、
CD-ROM
、存储器条
)
。
USB
,那么了解一些
USB
术语
将很有帮助。本文介绍了基本的
USB
术语。
主机
USB
是一种
“
主
-
从
”
式总线,
包括一个主机和多个从机。从机称作外设,在
USB
术语中也称作功能部件。主机称作主设备。所有
USB
传输都由主机启动;外设总是响应传输,不会启动传输。最常用的主机是
PC
机,主机通过
USB-A
连
接器连接到下行设备。嵌入式主机不包括
PC
机,而是用一个微控制器作为专用主机,或许只能与一类
USB
设备通信。
功能部件
功能部件是
USB
设备,也称作
USB
外
设。
USB
外设是主机的
“
下行
”
设备,使
用
USB B
型连接器连接。
速率
USB 2.0
标准规定了以下三种传输速率:
低速模式传输速率为
1.5Mbps
,多用于键盘和鼠标。
全速模式传输速率为
12Mbps
。
高速模式传输速率为
480Mbps
。
市场上关于
“USB 2.0
兼容
”
的概念有一些混乱。这种混乱源于
USB
标准版本的升级,首先推出的是
USB
1.0
,紧接着有了比
1.0
更理想的
USB1.1
。
USB1.x
支持低速和全速两种
USB
总线速度。
2.0
版本
增加了高速模式,完全替代了
1.1
。所以,如果使用的是工作在
12Mbps
速率下的全速器件,则可认为它与
USB 2.0
兼容,即使许多人仅将
USB 2.0
用于高速
(480Mbps)
操作。
入
-
出方向
USB
系统以主机为中心。因此,解释
USB
术语时假设面向的是主机。所以,从主机侧看,
“
入
”
表示传输方向从外设到主机;同样,
“
出
”
表示传输方向从主机到外设。
端点
端点位于
USB
外设内部,所有通信数据的来源或目的都基于这些端点,是一个可寻址的
FIFO
。每个
USB
外设
有一个唯一的地址,可能包含最多十六个端点。主机通过发出器件地址和每次数据传输的端点号,向一个具体端点
(FIFO)
发送数据。
每个端点的地址为
0
到
15
,一个
端点地址对应一个方向。所以,端点
2-IN
与端点
2-OUT
完全不同。
每个器件有一个默认的双向控制端点
0
,因此不存在端点
0-IN
和
端点
0-OUT
。
外设中端点的编号是任意的。枚举期间外设向主机报告其端点号和特
征。
集线器
集线器扩展了
USB
主机所能连接设备的数量。
PC
机的
USB
控制器内置一个集线器,负责完成一些底层
USB
功能,如检测设备的插入或拔出。集线器以全速或高速连接到上行端口
(
到
PC)
,以低速、全速或高速连接到下行端口
(
到外设
)
。
PC
的根集线器可为每个
A
型连接器提供
5V
、
500mA
电
源。一个总线供电的外部集线器可为每端口提供
100mA
电流。由于
USB
为外部集线器电路分配
100mA
电
流,因此,一个总线供电的集线器可以有四个下行端口。如果集线器有自己的电源
(
自供电
)
,每个下行端口可提供高达
500mA
电
流。
枚举
插入
USB
设备时,主机获取连接通知,继而识别刚刚插入的是什么。主机需要得到一系列描述符
(
数据表
)
,该描述
符来自插入的设备,所有
USB
设备在插入
USB
端口时,主机都通过默认的
CONTROL
端点
0
与设备进行通讯。如果主机确认它从设备接收的数据正确,则配置该设
备使之开始工作。如果主机认为设备的数据不正确
(
例如,某个描述符数据有冲突或超出了规范
)
,则忽略该设备。这时会弹出一个对话窗,说明该
USB
设备出了一些问题。
第九章
(
关于枚举的更多信息
)
USB
标准的第
9
章定义了
枚举期间主机送到外设的所有请求,以及外设响应的数据格式。如果访问
USB
官方
网站,将找到一个名为
USBCV (USB
命令验证器
)
的软件工具,其中有一部分名为
“
第
9
章测试
”
。这些测试可以证明您的枚举代码是否正确。在进行
USB
实验室测试时也要用到
USBCV
。
因此,如果已在自己的实验室里通过了这一
USB
验证,则实验室测试也不成问题。
SIE
SIE
指串行接口引擎,是所有
USB
控制
器内部的
“
核心
”
。
SIE
负责
处理底层协议,如填充位,
CRC
生成和校验,并可发出错误报告。
SIE
的主要任务是将低级信号转换成字节,以供控制器使用,某些
SIE
会更加先进灵活。它处理的底层信号细节越多,控制固件越简单。例如,某些
SIE
只报告端点数据触发的结果
(
参见下文
)
,并将它留给固件以确定如何处理。
数据触发
USB
包从
PID
或
ID
开始。数据传输用到两种
PID
:
DATA0
和
DATA1
。主机和外设均包含数据触发位,每个端点一个。触发位确定这些数据
PID
中的哪一个用于数据传输。当外设脱离复位状态,主机和外设均将其内部数据触发位复位到零。因此,第一个传
送的是
DATA0 PID
数据包。当数据包传输无误时
(
发送方接收到
ACK PID
信号,表明数据传输无误
)
,发送方和接收方补偿其数据触发值。然后用
DATA1 PID
向端点发送第二个数据包。成功传输后,
DATA0 PID
和
DATA1 PID
数据包交替发送
(
或再次触
发
)
。
USB
将该机***为其误差校正的一部分。
控制传输、批量传输、中断传输、同步传输
USB
有上述四种传输类型。枚举期间外设告诉主机每个端点支持哪种传输类型。
只有主机能够发出控制传输,该传输由两个或三段组成。先通过设置数
据包
(8
字节长
)
发送具体的主机请求。然后用一个可选数据包移动描述符表等数据。最后,用握手
(
状态
)
包终止控
制传输。作为
“
关键
”
传输,控制传输有高总线优先权和最全面的误差校验。每个
USB
外设都需要一个默认的控制端点
0
。
批量传输使用流控制和误差校验移动数据。批量传输为异步方式,这意
味着预定传输时间不固定或不能保证。主机安排批量传输的优先级为低。这并不说明批量传输很慢;如果总线被轻微加载,批量传输即可在所有可用带宽上进行。
实际上,中断传输和批量传输很难区分。他们之间的唯一区别是中断点
包含轮询间隔值,用来告诉主机多长时间
“ping”
一次端点。所以批量和中断传输之间的唯一区别是主机多长时间安排
一次传输。
同步
(ISO)
传输用于数据流,例如音频或视频,此时数据必须及时到达以避免音频或视频数据中断。当器件枚举时告诉主
机其
ISO
端点对带宽的要求。如果带宽适当,主机保证每隔
1ms
发送一个
USB
帧,
包含一个发往或来自设备的
ISO
数据包。
ISO
不使用握手
(ACK/NAK)
或总线重试。同步传输仅适用于全速和高速设备。
总线复位
主机通过发出总线复位信号复位
USB
外设。全速和低速
USB
的
D+
和
D-
线上通
常使用差分信号。但也有例外,总线复位和包结束信号使用的是单端零信号,此时
D+
和
D-
均为低。
USB
驱动器
Windows
中内置了支持各种
USB
设备的驱动程序。如果固件支持这些标准设备之一,则
USB
产品不需要安装定制驱动程序
(
没人真
的想要写
Windows
驱动
)
。
Windows
包含标准设备驱动程序,如
HID (
人机接口设备
)
和大容量存储器
(
磁盘驱动
器、
CD-ROM
、存储器条
)
。
相关文章推荐
- 整理 使用usb术语详解
- 使用usb术语详解
- 使用usb术语详解
- Java 中的HashMap详解和使用示例_动力节点Java学院整理
- oracle表空间表分区详解及oracle表分区查询使用方法(转+整理)
- Android USB Host使用详解
- sprintf函数使用详解【整理】
- Java中的HashSet详解和使用示例_动力节点Java学院整理
- USB抓包工具--Bus Hound的使用方法详解
- USB抓包工具--Bus Hound的使用方法详解
- Log4j使用详解(log4j.XML格式)——整理
- keytool工具使用详解二(整理)
- usb_modeswitch使用详解
- Java中LinkedList详解和使用示例_动力节点Java学院整理
- java枚举使用详解,整理的很好,只能收下。。。
- 实用USB术语详解
- tcpdump使用详解与学习(综合整理)
- cacti 使用script query 详解 - 例子 监控mysql中数据库占用磁盘量【整理后】
- 万字长文精心整理21个常用Linux命令详解及使用案例
- 图文详解使用Universal USB Installer制作usb闪盘(U盘)linux系统安装盘