USB定义了4种传输类型:
控制传输:可靠的、非周期的、由主机软件发起的请求或者回应的传输,通常用于命令事物和状态事物。
同步传输:在主机与设备之间的周期性的、连续的通信,一般用于传输与时间相关的信息。这种类型保留了将时间概念包含于数据中的能力。但这并不意味着传输这样的数据的时间总是很重要,传输并不一定很紧急。
中断传输:小规模数据的、低速的、固定延迟的传输。
批量传输:非周期的、打包的、可靠地传输。一般用于传输那些可以利用任何带宽,以及在没有可用带宽时,可以容忍等待的数据。
控制传输:
控制传输允许访问一个设备的不同部分。控制传输用于支持在客户软件和他的应用之间关于设置信息、命令信息、状态信息的传输。控制传输由以下几个事物组成:
a.建立联系,把请求信息从主机传到他的应用设备;
b.零个或多个数据传输事物,按照a事物中指明的方向传输数据;
c.状态信息回传,将状态信息从应用设备传到主机。
Setup包的数据格式属于一个命令集,这个集合能保证主机和设备之间正常通信。这个格式允许一些销售商对设备命令进行扩展。Setup包后的数据应具有USB定义的格式,除非这个数据是销售商提供的信息,回传的状态信息仍然具有USB定义的格式。
控制传输使用的是消息通道上的双向信息流。所以,一旦一个控制通道被确认之后,这个通道就用了具有某个端点号的两个端点,两个断电,一个输入,一个输出。
批量传输
批量传输的是数据流,主要是利用USB总线的空闲带宽进行数据传输的,可以在不确定的时间内传输大量数据,适合于数据量大,而对时间和传输速率要求不高的场合。批量传输时,有数据错误检查机制,如果数据包传输过程出错,则会重新发出数据包。在一个空闲的总线中,批量传输是速度最快的传输类型。只有全速与高速设备,才支持批量传输。通常打印机、扫描仪、USB硬盘、电子盘等设备都使用批量传输模式。
中断传输
由于USB不支持硬件的中断,所以必须靠PC主机周期性地轮询,以便获知是否有设备需要传送数据给PC。由此可知道,中断传输仅是一种轮询的过程,而非过去我们所认知的中断功能。而轮询的周期非常的重要,因为如果太低的话,数据可能会流失掉,但反之太高的话,则又会占去太多的总线带宽。对于全速装置(12Mbps)而言,端点可以设定Ilns至255ms之间的轮询间隔。因此,换算可得全速装置的最快轮询速度为IKHz。另外对于低速设备而言,仅能设定10ms至255ms的轮询间隔,如果因为错误而发生传送失败的话,可以在下一个轮询期间重新再传送一次。
应用这种传输类型的有键盘,摇杆或鼠标等称之为人机接口装置(HID)。其中,键盘是一个很好的应用例,当按键被按下后,可以经由PC主机的轮询将小量的数据传回给主机,进而了解到哪个按键刚被按下。
同步传输
同步传输提供了确定的带宽和间隔时间(latency)。它被用于时间要求严格并具有较强容错性的数据流传输,或者要求恒定数据传送率的即时应用中。同步数据要求确定的带宽值和确定的最大传送次数。对于同步传送来说,即时的数据传递比完美的精度和数据的完整性更重要一些。应用这类型的传输装置有:USB麦克风、喇叭等装置,如此可以确保播放的频率不会被扭曲。