1、管道
-
对
usb host
和usb device
之间通信流的抽象,是一个逻辑上的概念。 -
对应于驱动程序中的一个数据缓冲区,与一个
外设端点
的连接。 -
所有的设备必须支持
端点0
以作为设备的控制管道
。
通过控制管道
,可以获取完全描述USB设备的信息,也可以进行相关设置(即 get 和 set)。 -
管道有两种类型:
数据流管道(其中的数据没有USB定义的结构)
消息管道(其中的数据必须有USB定义的结构) -
1个USB设备可以分为三个层
1、最上层:USB设备所提供的功能
2、中间层:处理总线接口
与不同的端点
之间的数据流
3、最底层:总线接口
,用来发送与接收包
2、端点
-
每个
端点
实际上就是一个一定大小的数据缓冲区
。
这些端点在设备出厂时就已定义好。 -
在主机看来,每1个USB设备是一个端点的集合。
主机只能通过端点与设备进行通讯,以使用设备的功能。 -
USB端点的四种类型
1、控制端点
配置设备,获取设备信息,发送命令给设备,获取设备的状态。
每个USB设备都有一个名为 “端点0” 的控制端点。
USB主控在任何设备插入时都通过“端点0”进行设备初始化配置。
注意所有设备都必须支持上面的端点0,初始化配置
。
端点1,2
等一般用作数据端点
,存放主机与设备间往来的数据。
2、中断端点
主要是USB键盘、鼠标用来传输少量数据。
也用于发送数据到USB设备用来控制设备。
3、批量端点
用来传输大批量的数据。
此类端点体积大,比中断端点大得多。
用于需要确保数据不能丢失的设备,如打印机,存储设备,网络设备等。
4、等时端点
也可以传输大批量的数据。
保证数据的实时性,但是不保证数据的完整性。
常用于音视频设备。 -
上述4种端点也对应4种传输。
枚举过程就是通过控制传输,控制端点来完成的。 -
管道
和usb设备中的端点
一一对应,一个usb设备含有多少个端点,其和主机进行通信时就可以使用多少条管道。
端点的类型
决定了管道中数据的传输类型
。