USB数据传输类型

时间:2024-02-23 22:01:35

  USB数据传输类型是从USB系统软件的管理角度来描述的。传输(Transfer)是指在客户软件和它的功能模块之间的一个或多个信息传输的总线事务。传输类型决定于客户软件和它的功能模块之间的数据流特性。USB定义了4种传输类型,以满足在总线上进行不同类型的数据的传输需要。

                                              举例:    

                                                                                   (保证数据的完整性)               (保证响应时间)

 控制传输

  控制传输是USB系统软件用来配置设备并对其进行控制的传输方式。设计者也可以根据需要将这种方式作为它用。每个USB设备都有一个默认的控制传输管道(端点0),用于接受主机USB系统软件的控制命令。

  一次控制传输一般由三个阶段组成。首先是设置阶段,主机向设备发出一个设置(SETUP)事务传输命令,规定主机所要求的操作。然后是数据阶段,由若干个数据事务组成。传输的方向和数据内容由SETUP包规定。如果SETUP包没有要求数据事务传输,则无此阶段。最后是状态阶段,它由一个状态事务传输组成,由设备返回传输是否成功的状态信息。

       在控制传输中,数据的传输是双向的,即一个端点0既可以接收又能发送数据。在数据阶段中可以有多个数据事务,但每个数据事务的数据包不能大于数据有效负载(Data  Payload)。对于全速设备,数据有效负载最多为8B、16B、32B或64B。对于低速设备,最大为8B。在数据阶段中,如果某个数据事务的数据包小于数据有效负载,则通信双方默认它是数据阶段的最后一个数据事务,这就确定了数据阶段如何结束。  

                                                                            

                                       控制传输                                                                                           批量传输

 

批量传输

  批量传输主要应用于主机和设备之间有大量的数据需要传输而又不要求同步性的场合。只有全速设备才能进行批量传输。与控制传输不同,它是单向的(即某个端点只能接受或发送数据),格式不那么严格。同样,批量传输方式也有有效数据负载的规定,可以为8B、16B、32B或64B。当某一次数据事务的数据包小于有效数据负载时,通信双方默认传输结束。

  根据所要求传输的字节数的不同,批量传输可由任意个数据事务组成。协议规定,每一次批量传输的第一次数据事务的数据包PID应为DATA0,之后为DATA1/DATA0依次取反。所以,在进行一次新的批量传输之前,主机应通过控制传输把将要与之通信的端点的PID初始化为DATA0。

 中断传输

  中断传输适合于具有周期性,但数据量较小的通信,它也是单向的。一般的应用包括键盘、鼠标及集线器的状态表。主机按周期查询设备的相应端点并进行通信。如果当前周期的传输失败,则在下一周期重新进行传输。由此可见,中断传输在很大程度上能保证一定的带宽。当一个端点被确定为按中断传输方式传输时,系统在配置时就必须确定它的周期和有效数据负载。全速设备周期的大小从1ms到255ms,有效数据负载不超过64B;低速周期从10ms到255ms,有效数据负载不超过8B。

   一个中断传输包含有一个或多个输入/输出事务。每个中断传输与批量传输事务结构相同,所不同的是它按周期进行。主机只有在要求进行中断传输时(即有中断传输IRP时)才会按周期查询相应端点。

中断传输更适合于鼠标等低速设备,这些设备的数据包都不大,而且设备因运动而产生新数据的频率并不高,因此主机可以以比较长的周期查询,这可以减少占用CPU的时间。

 同步传输

  同步传输(或称实时传输)是USB一种重要而又特别的传输方式。当一个端点被声明为同步传输端点时,USB系统就保证它具有确定的传输速率,这使得它十分适用于要求传输速率一定的音频设备。与其他传输方式不同的是:同步传输无失败/重试(Failure/Retry)机制,因而它不能纠正传输中的误码。由于在视频压缩码流中的误码会严重影响图像的重建,所以这种传输方式不能应用于视频压缩存储系统。USB也对同步传输有有效数据负载的规定,一般在设备初始化时进行配置。USB协议规定它的有效数据负载为0~1023B。

                 USB设备的类: