USB的通讯流模型
对于USB设备来说,一个USB设备可以提供单一的功能,也可以提供多个功能。USB设备提供的供能是以USB设备的接口为承载的。
USB的数据通讯是以USB接口下的端点(管道)为单位进行的,而一个USB设备功能是可能是需要多个USB端点来实现的,这个USB端点集的实现就是USB接口。
USB系统软件使用默认的端点0来对设备进行管理(如USB设备的枚举过程中的通讯和USB的控制传输方式)。
客户端软件的请求在主机端通过缓冲区,在设备端通过端点来通过数据移动完成。主机控制器(或USB设备,取决于传输方向)将数据打包移动至USB总线上进行传输。当使用总线访问通过USB移动数据包时,主机控制器也会进行协调。
客户端软件包括主机端和设备端的客户端软件。
Client software requests that data be moved across the USB between a buffer on the host and an endpoint on the USB device. The Host Controller (or USB device,depending on transfer direction) packetizes the data to move it over the USB. The Host Controller also coordinates when bus access is used to move the packet of data over the USB.
下图展示了如何通过端点和主机端内存缓冲区之间的管道传输通信流。以下部分将更详细地描述端点、管道和通信流。
主机上的软件通过一组通信流与逻辑设备通信。该组通信流由设备软件/硬件设计者选择,以有效地将设备的通信需求与USB提供的传输特性相匹配。