USB通信概念以及如何添加新的USB接口-端点
道具图鉴
2025-09-27 19:17:14
8976
一、USB设备、配置、接口以及端点之间的关系
1、每个USB设备都提供了不同级别的配置信息,可以包含一个或多个配置。
2、配置有多个接口组成。
3、接口由多个端点组成,代表一个基本的功能,是USB设备驱动程序控制的对象。
4、端点是USB通信的最基本形式,每一个USB设备接口在主机看来就是一个端点的集合。
5、主机只能通过端点与设备进行通信,以使用设备的功能。
6、USB系统中每一个端点都有唯一的地址。
二、USB添加接口-端点步骤
1、修改 USB设备信息表中的 EP_NUM 端点个数(包括ENDP0)、INTERFACE_NUM 接口个数。
2、修改设备描述符配置中的VID和PID号(修改的数值与当前不一样就可以)
3、修改控制描述符配置中的 NumInterfaces 接口个数,取决于已添加的接口数量。
4、修改接口描述符配置中的 bInterfaceNumber 当前接口序号 和 bNumEndpoints 当前接口中包含的端点数量。
5、添加HID描述符(每添加一个接口都需要添加HID描述符)
6、修改端点描述符配置中的 bEndpointAddress 端点地址 bit7为输入输出方向【0-OUT】【1-IN】,后面的比特位表示端点号,根据所使用的端点配置。
7、添加汇报描述符数组,经过尝试发现用键盘或鼠标的可以正常打印数据,但是如何设置为其他类型,则无法正常运作。下面是键盘的HID协议汇报数组:
注:特别需要注意的是,如果是添加一个用来打印调试数据的接口,在配置汇报描述符时需要预留足够的数据大小,否则会出现以下错误: