从零开始学USB(九、USB的传输类型(1))

一、传输类型

USB通过与主机上的客户端软件相对应的内存储器区和USB设备上的端点之间的管道传输数据。 消息管道传输的数据以USB定义的结构传输,但USB允许特定设备的结构化数据在USB定义的消息数据有效负载内传输。 USB还定义了对于任何管道(流或消息),数据经过总线时都要进行分组,但最终在总线事务的数据有效载荷中传输的数据的格式化和解释是客户端软件和功能的责任。 但是,USB提都要供了不同的传输类型,这些传输类型经过优化,可以更加精确地匹配客户端软件的服务要求和使用管道的功能。一个 IRP(I/O Request Packets
)使用一个或多个总线事务在软件客户端及其功能之间移动信息。

每种传输类型确定通信流的各种特征,包括以下内容:

  • USB规定的数据类型
  • 通信流方向
  • 分组大小限制
  • 总线访问限制
  • 延迟限制
  • 所要求的数据顺序
  • 错误处理

USB设备的设计者选择设备端点的功能。 当为端点建立管道时,确定管道的大部分传输特性并在管道的整个寿命期间保持固定。 针对每种传输类型描述了可以修改的传输特性。
USB定义了四种传输类型:(四种端点类型

  • 控制传输:突发,非周期性,主机软件启动的请求/响应通信,通常用于命令/状态操作。
  • 等时传输:主机和设备之间的定期,连续通信,通常用于与时间相关的信息。 此传输类型还保留了封装在数据中的时间概念。 然而,这并不意味着此类数据的交付需求始终是实时的。
  • 中断传输:低频,有界延迟通信,数据量小,非周期,主要用于向主机通知设备的服务请求,它是由设备发起的通信。
  • 批量传输:非周期性,大数据包突发通信,通常用于可以使用的数据任何可用带宽,也可以延迟到带宽可用。

二、控制传输

控制传输允许访问设备的不同部分。控制转移旨在支持配置/命令/状态类型通信在客户端软件及其功能之间流动。一个控制传输由主机到功能的设置总线事务移动请求信息组成,零或更多数据事务按安装事务指示的方向发送数据,以及状态事务从功能返回主机的状态信息。当端点成功完成处理请求的操作时,状态事务将返回成功。

每个USB设备都需要将默认控制管道实现为消息管道。该管道由USB系统软件使用。默认控制管道提供对USB设备的配置,状态和控制信息的访问。一个功能模块可以(但不是必须)为其自身的实现需求提供额外控制管道的端点。

USB设备框架定义了可用于操纵设备状态的标准,设备类或特定于供应商的请求。还定义了描述符,可用于在设备上包含不同的信息。控制传输提供访问设备描述符的传输机制,并使设备的请求操纵其行为。控制传输仅通过消息管道传输。因此,使用控制传输的数据流必须遵循USB数据结构定义。

USB系统将“尽最大努力”支持主机和设备之间的控制传输。功能及其客户端软件无法请求特定的总线访问频率或带宽用于控制传输。 USB系统软件可以限制设备可能期望用于控制传输的总线访问和带宽。

2.1 控制传输数据格式

设置数据包具有USB定义的结构,可容纳所需的最少命令集启用主机和设备之间的通信。 结构定义允许特定于供应商设备特定命令的扩展。 安装后的数据事务具有USB定义除了携带供应商特定信息时的结构。 状态事务还具有USB定义结构体。

2.2控制传输方向

通过消息管道上的双向通信流支持控制传输。 因此,在配置控制管道时,它使用具有指定端点号的输入和输出端点。

2.3特点

等时传输的信包容量可以是8、16、32或64字节,取决于具体的设备(低速设备只支持8字节)。在USB的整个带宽中,有10%的带宽是为这种信息保留的。也就是说,只要有足够多的控制信息等着传输,就必须有10%的带宽用于这些信息,其它信息再多也不能把这部分带宽给挤掉。但是如果没足够多的控制信息,则可以把这部分带宽用于其它类型的信息。控制型信包的传递是带有检错、必须由接收方加以确认的“可靠”传递,如果发现传输出错就要重发。

低速设备的控制传输限制

全速设备的控制传输限制

告诉设备的控制传输限制

三、同步传输

在非USB环境中,等时传输具有恒定速率,错误传输的一般含义。 在USB环境中,请求等时传输类型为请求者提供以下内容:

  • 通过有限的延迟保证对USB带宽的访问
  • 只要向管道提供数据,就可以保证通过管道的恒定数据速率
  • 如果由于错误导致传递失败,则不会重试传递数据的尝试

虽然USB等时传输类型被设计为支持等时源和目的地,但是使用这种传输类型的软件实际上不需要同步以便使用传输类型

3.1 等时传输数据格式

USB对等时管道的通信流没有任何数据内容结构。

3.2等时传输方向

等时管道是流管道,因此总是单向的。 端点描述标识给定的同步管道的通信流是进出主机的。 如果设备需要双向等时通信流,则必须使用两个同步管,每个方向一个。

3.3特点

也叫等时传输。主要用于实时的音频和视频信号。这种信息是周期性的,有时实时的,对信息的传递是否及时有很高的要求,但是对误码却比较能容忍。所以,保证用于等时型信息的带宽是很重要的。USB为等时型信息和中断型信息保留90%的带宽。另一方面,等时型信息的传递不带检错,也不需要确认,因而就不存在重发的问题。等时型传输的信息包通常比较大,在全速设备中最大一次可以传输可以1023个字节,告诉设备一次最大可以发生3027个字节。

全速设备等时传输限制

告诉设备等时传输限制

四、中断传输

中断传输类型旨在支持那些不经常发送或接收数据但具有有限服务周期的设备。 请求具有中断传输类型的管道为请求者提供以下内容:

  • 保证该管道的最长服务时间
  • 在由于总线错误导致的偶然传输失败的情况下,在下一个周期重试传输尝试

4.1中断传输数据格式

USB在中断管道的通信流上没有强加数据内容结构。

4.2中断传输方向

中断管道是流管道,因此始终是单向的。 端点描述标识给定中断管道的通信流是进出主机。USB不支持输出中断管道。

4.3特点

名曰“中断”型,实际上却是用于对USB设备的周期性查询。USB设备不存在主动向主句发送“中断请求”的能力,只能被动的接收主机通过USB总线查询。中断型信息的传递既有时间要求,又必须是可靠传输,但是信包较小。信包大小与控制器信包相同。中断型信息和等时型信息二者合起来不能超过USB总线带宽的90%。

低速设备中断传输限制

全速设备中断传输限制

高度设备中断传输限制

五、批量传输

批量传输类型旨在支持需​​要在高度可变的时间传输相对大量数据的设备,其中传输可以使用任何可用带宽。请求具有批量传输类型的管道为请求者提供以下内容:

  • 在可用带宽的基础上访问USB
  • 如果由于总线错误导致偶尔交付失败,则重试转移
  • 保证数据传输,但不保证带宽或延迟

批量传输仅在带宽可用的基础上发生。对于具有大量可用带宽的USB,批量传输可能会相对较快地发生;对于可用带宽较小的USB,批量传输可能会在相对较长的时间内流出。

5.1批量传输数据格式

USB不会对批量管道的通信流施加数据内容结构。

5.2批量转移方向

批量管道是流管道,因此,对于给定的管道,始终具有流入或流出主机的通信。如果设备需要双向批量通信流,则必须使用两个批量管道,每个方向一个。

5.3特点

用于信息量较大,没有很强的事件要求,但是要求可靠传输(带有检错,接收方需确认)的信息。对批量型信息的传递在时间上是没有保障的,USB总线不为批量信息保留带宽,只是在执行了前三种传输以后还有时间剩余才执行批量型传输。批量型信包的容量取决于具体的设备,但最大不超过512字节,

全速设备批量传输限制

高速设备批量传输限制

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_16777851/article/details/85139734

发布了47 篇原创文章 · 获赞 9 · 访问量 1万+

一、传输类型

猜你喜欢

转载自blog.csdn.net/u013836909/article/details/104901912