USB数据流的模式与管线的概念
USB对于与设各之间的通信提供了特殊的协议。虽然USB系统的总线是呈阶梯式星形的结构,但实际USB主机与设备的连接方式却是如图1所示的一对一形式,用户称之为USB设各的逻辑连接;而数据流的模式则是以这些逻辑连接为基本的架构。
图1 USB设备的逻辑连接
对于USB的通信,用户可以将其视为一种虚拟管线的概念,如图2所示。在整个USB的通信中包含了一个大的虚拟管线(12 Mbps)以及高达127个小的虚拟管线,而每一个小的虚拟管线可比拟为USB的设各。这是由于在USB令牌封包中都含有7个用来寻址的位(位于令牌封包的地址数据域ADDR),因此最多可寻址到128个设各。但是由于地址0是预设地址,且用来指定给所有刚连上的设各,这也就是为什么USB总线上最多能连接到127个设备的原因。
图2 虚拟管线的概念
每一个连接到设备的小虚拟管线又可再细分为许多的微虚拟管线。这些微虚拟管线可比拟为端点(endpoint)。由于在令牌封包中,包含了4个位的端点地址(位于端点数据域,ENDP)以及一个位于端点描述符中的输人/输出方向(IN/OUT)位,所以在一个单独的小虚拟管线内最多可再分割成16组微虚拟管线(端点),也就是可对16个输人/输出的端点(共32个端点)寻址,并可将USB的令牌封包中定义为IN(设备至主机)或OUT(主机至设备)两类型令牌封包。如果设备收到了一个IN令牌封包,它将会传送数据给主机;反之如果收到了一个OUT令牌封包,则它将会从主机接收到数据。当然,如图2所示的架构是一种“虚拟”的,用户需要有一点想像的空间 这种端点(或微虚拟管线)的概念非常重要,对于全速或高速的设备而言,更是这样。
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)