接口描述符&端点描述符 概述

二、接口描述符&端点描述符-概述

  接口描述符一般是按设备的运行状态分类,这样设备可以在不同的接口中切换来实现设备运行状态的切换,如在设备在运行状态下使用正常的接口描述符,在停止状态下使用该接口描述符的备用接口描述符。

  一个配置中可以有—个或多个接口,一个接口中有零个或多个端点。USB协议规定,接口描述符和端点描述符不能直接通过 GetDescriptor请求返回,必须连同配置描述符一起返回。

  每个配置下可以有多个接口,当前配置下的所有接口(和其下的端点)都是活动的。一个配置中的所有接口可以同时有效,并可被不同的驱动程序连接。每个接口可以有备用接口,以提供不同质量的服务参数。

  端点是USB通信的最基本形式,每一个USB设备接口在主机看来就是一个端点的集合。主机只能通过端点与设备进行通信,以使用设备的功能。在USB系统中每一个端点都有惟一的地址,这是由设备地址和端点号给出的。

  每个端点都有一定的属性,其中包括传输方式、总线访问频率、带宽、端点号和数据包的最大容量等。

  一个USB端点只能在一个方向承载数据,或者从主机到设备(称为输出端点),或者从设备到主机(称为输入端点),因此端点可看作一个单向的管道。端点0通常为控制端点,用于设备初始化参数等。只要设备连接到USB上并且上电端点0就可以被访问。端点1、2等一般用作数据端点,存放主机与设备间往来的数据。

在这里插入图片描述   8910平台拥有三种不同的接口,分别是RNDIS网卡、虚拟串口和ECM网卡,但是三者不能同时存在。RNDIS网卡和ECM网卡不能同时存在。CSDK开发还可以使用HID类设备,模拟键盘的操作。键盘的接口描述符近期并不会在本系列文章中更新,后面有时间的话也许会拎出来讲一下。

  由于接口描述符的信息量比较大,将会在接下来的三篇文章中分别进行解析。