精华内容
下载资源
问答
  • 端点描述符

    千次阅读 2017-03-16 00:00:22
    每一个interface 都有对应的一个或者几个端点(endpoint),端点描述符中描述符了接口对应的端点的位宽,方向(输入输出),传输的类型,00 = Control,Isochronous, Bulk ,Interrupt 等4种基本的传输方式,端点...

    每一个interface 都有对应的一个或者几个端点(endpoint),端点描述符中描述符了接口对应的端点的位宽,方向(输入输出),传输的类型,00 = Control,Isochronous, Bulk ,Interrupt 等4种基本的传输方式,端点的packet包的大小,host主机访问设备的时间间隔,标准的端点描述符的大小是7个字节:





    bLength:端点描述符标准是7个字节

    bDescriptorType:端点描述符的 编号是0x05

    bEndpointAddress:端点的地址,以及输入输出类型,假如是第一个端点,且作为输出类型,那么应该是0x01

    bmAttributes:表明了端点的传输类型,假如是isochronous,又有新的定义,假如我们选择中断传输,那么应该是0x02

    wMaxPacketSize:端点的最大的包的大小,对于high-speed isochronous模式以及中断端点,指定了每个微帧额外的传输事务的数量。

    bInterval:Interval for polling endpoint for data transfers,就是关于轮询endpoint的时间间隔。


    第一个字节是0x07,第二个是0x05,作为,第三个是作为端点地址,IN端点类型,地址是2,(宏定义为0),第四个字节是中断端点的类型,size是1024个字节,注意是低位在前,高位在后,即0x0400,第7个字节是0x08,那么针对于是usb high-speed设备来讲,且是中断端点,0x08意味着 (2 的(8-1)次方)*125us =16000us = 16ms 具体查看usb2.0协议。




    展开全文
  • 关注+星标公众号,不错过精彩内容编排 | 一个早起的程序员一个早起的程序员1USB描述符USB描述符有设备描述符、标准配置描述符、接口描述符、端点描述符、字符串描述符,HID设备有HID描述符、报告描述符和物理描述符...

    关注+星标公众,不错过精彩内容

    14e0cd30529b727cb1f9b6a328a5ee40.png

    编排 | 一个早起的程序员

    一个早起的程序员

    1

    USB描述符USB描述符有设备描述符标准配置描述符接口描述符端点描述符字符串描述符,HID设备有HID描述符报告描述符物理描述符今天主要是学习USB端点描述符的组成一个早起的程序员

    2

    端点描述符组成前面讲了设备描述符配置描述符、接口描述符,本篇我们讲解端点描述符。首先要明确的一点是端点描述符不能单独返回给USB主机,主机会请求获得配置描述符集合,配置描述符集合主要由标准配置描述符、接口描述符、端点描述符、HID描述符,报告描述符物理描述符是单独返回给USB主机。端点描述符包含7个字节,组成如下:

    069cedce3f5b27294741fc64c3ead19d.png

    一个早起的程序员

    3

    STM32配置描述符集合代码(必须按顺序)
    /* USB Configuration Descriptor */const uint8_t CustomHID_ConfigDescriptor[CUSTOMHID_SIZ_CONFIG_DESC] ={//// 标准配置描述符//      0x09, /* bLength: Configuation Descriptor size */    USB_CONFIGURATION_DESCRIPTOR_TYPE,   /* bDescriptorType: Configuration */    CUSTOMHID_SIZ_CONFIG_DESC,      /* wTotalLength low : Bytes returned */    0x00,                /* wTotalLength high: Bytes returned */    0x01,         /* bNumInterfaces: 1 interface */    0x01,         /* bConfigurationValue: Configuration value */    0x00,         /* iConfiguration: Index of string descriptor describing the configuration*/    0xC0,         /* bmAttributes: Bus powered */                  /*Bus powered: 7th bit, Self Powered: 6th bit, Remote wakeup: 5th bit, reserved: 4..0 bits */    0x96,         /* MaxPower 300 mA: this current is used for detecting Vbus */    //// 接口描述符//      /************** Descriptor of Custom HID interface ****************/    /* 09 */    0x09,                     /* bLength: Interface Descriptor size */    USB_INTERFACE_DESCRIPTOR_TYPE,    /* bDescriptorType: Interface descriptor type */    0x00,         /* bInterfaceNumber: Number of Interface */    0x00,         /* bAlternateSetting: Alternate setting */    0x02,         /* bNumEndpoints 此接口有两个端点 */    0x03,         /* bInterfaceClass: HID */    0x00,         /* bInterfaceSubClass : 1=BOOT, 0=no boot */    0x00,         /* nInterfaceProtocol : 0=none, 1=keyboard, 2=mouse */    0,            /* iInterface: Index of string descriptor */    //// HID描述符(后续讲解)//      /******************** Descriptor of Custom HID HID ********************/    /* 18 */    0x09,         /* bLength: HID Descriptor size */    HID_DESCRIPTOR_TYPE, /* bDescriptorType: HID */    0x10,         /* bcdHID: HID Class Spec release number */    0x01,    0x00,         /* bCountryCode: Hardware target country 国家代码 */      0x01,         /* bNumDescriptors: Number of HID class descriptors to follow           类别描述符数目(至少有一个报表描述符)*/    0x22,         /* bDescriptorType 报告描述符 */    CUSTOMHID_SIZ_REPORT_DESC,  /* wItemLength: Total length of Report descriptor 报告描述符大小 */    0x00,            /* 标志类别描述符说明结束 */     //// 端点1描述符//      /******************** Descriptor of Custom HID endpoints ******************/    /* 27 */    0x07,          /* bLength: Endpoint Descriptor size */    USB_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType: */    0x82,          /* bEndpointAddress: Endpoint Address (IN) */                                  // bit 3...0 : the endpoint number                   // bit 6...4 : reserved                    // bit 7     : 0(OUT), 1(IN)    0x03,          /* bmAttributes: Interrupt endpoint */    0x40,          /* wMaxPacketSize: 64 Bytes max */    0x00,    0x02,          /* bInterval: Polling Interval (2 ms) */    /* 34 *///// 端点2描述符//        0x07,  /* bLength: Endpoint Descriptor size */    USB_ENDPOINT_DESCRIPTOR_TYPE,  /* bDescriptorType: */      /*  Endpoint descriptor type */    0x01,  /* bEndpointAddress: */      /*  Endpoint Address (OUT) */    0x03,  /* bmAttributes: Interrupt endpoint */    0x40,  /* wMaxPacketSize: 64 Bytes max  */    0x00,    0x02,  /* bInterval: Polling Interval (2 ms) */    /* 41 */}; /* CustomHID_ConfigDescriptor */
    一个早起的程序员

    4

    端点描述符组成详解

    1.bLength

    端点描述符的长度。

    2.bDescriptorType

    描述符类型,端点描述符为0x05。描述符的结构开头是一样的,都是先说描述符长度,然后说类型,每种描述符的类型是不一样的,如下表格,可速查。

    dfa04f16653eeca010ecf96a059aac6d.png

    3.bEndpointAddress

    Bit 3…0: 端点编号;

    Bit 6…4: 保留,默认为0;

    Bit 7:如果是控制端点可以忽略,因为控制端点有两个方向,否则一般表示数据传输方向,0 = OUT endpoint   1 = IN endpoint。

    4.bmAttributes

    Bits 1..0: Transfer Type,表示传输类型(传输类型在后面讲传输一节会详细讲解)

    00 = Control-控制传输01 = Isochronous-同步传输10 = Bulk-批量传输11 = Interrupt-中断传输

    Bits 7..2: 大家可以查看usb_20.pdf(下面有下载方法)。

    5.wMaxPackeSize(双字节)

    表示当前配置下此端点能够接收或发送的最大数据包的大小。

    对于同步端点,此值用于指示主机在调度中保留的总线时间,这是每(微)帧数据有效负载所需的时间,有效负载时间就是发送一帧数据需要占用的总线时间,在实际数据传输过程中,管道实际使用的带宽可能比保留的带宽少,大家想想,如果实际使用的带宽比保留的还多,那就丢数了;

    于其类型的端点,bit10~bit0指定最大数据包大小(以字节为单位);

    bit12~bit11对于高速传输的同步和中断端点有效:bit12~bit11可指定每个微帧的额外通信次数,这里大家一定要知道是在高速传输中,当一个事务超时时,在一个微帧时间内重传的次数,如果设置为00b(None),则表示在一个微帧内只传输一个事务,不进行额外的超时重传,如果设置为01b,则表示在一个微帧内可以传输两次事务,有一额外的重传机会,从下面可以看出,一个微帧最多可以有两次重传事务的机会,如果微帧结束了还是失败,就需要等到下一个微帧继续发送该事务;

    00 = None (1 transaction per microframe)01 = 1 additional (2 per microframe)10 = 2 additional (3 per microframe)11 = Reserved

    其它位默认为0,详细信息可参考usb_20文档第5章。

    6.bInterval

    查询时间,就是主机多久和设备通讯一次,主机在枚举设备的时候会得到端点描述符,然后根据端点描述符这个值和此端点进行对应的数据交互,也就是主机多久给端点发送一次数据请求。根据设备运行速度以帧或微帧表示,低速和全速称为帧,下面的一个值代表1ms,高速称为微帧,一个值代表125us。

    对于全速/高速同步端点,此值必须在1到16之间。bInterval值用作2的指数,例如bInterval为4,表示周期为8个单位;

    对于全速/低速中断端点,该字段的值可以是1到255,也就是主机多少ms给设备发一次数据请求;

    对于高速中断端点,使用bInterval值作为2的指数,例如bInterval为4表示周期为8。这个值必须在1到16之间;

    对于高速批量/控制输出端点,bInterval必须指定端点的最大NAK速率。值0表示端点永不NAK。其它值表示每个微帧的bInterval*125us时间最多1个NAK。这个值的范围必须在0到255之间;

    对于速/低速批量/控制输出端点,此值无意义,可以任意指定。

    大家根据以上说明对号入座使用,用的时候在详细看usb_20.pdf文档。

    8e0a9598cf249778d4609210f94bb5fd.png注:端点描述符内容还是很多的,我们如果使用USB也没必须要研究的很细,如果想更深入的了解请进入公众号点击下载区,在文档栏下载USB2.0规范文档集合,查看usb_20.pdf文档了解更详细的内容。

    免责声明:本文素材来源网络,版权归原作者所有。如涉及作品版权问题,请与我联系删除。------------ END ------------c898baea80669a7d5ec8fa3a5ce35b4f.gif

    点击“阅读原文”查看更多分享,欢迎点分享、收藏、点赞、在看。

    展开全文
  • 2.端点描述符组成 3.STM32配置描述符集合代码(必须按顺序) 4.接口描述符组成详解 1.USB描述符 USB描述符有设备描述符、标准配置描述符、接口描述符、端点描述符、字符串描述符,HID设备有HID描述符、报告描述...

    目录

    1.USB描述符

    2.端点描述符组成

    3.STM32配置描述符集合代码(必须按顺序)

    4.接口描述符组成详解


    1.USB描述符

    USB描述符有设备描述符标准配置描述符接口描述符端点描述符字符串描述符,HID设备有HID描述符报告描述符物理描述符。今天主要是学习USB端点描述符的组成

    2.端点描述符组成

    前面讲了设备描述符标准配置描述符、接口描述符,本篇我们讲解端点描述符。首先要明确的一点是端点描述符不能单独返回给USB主机,主机会请求获得配置描述符集合,配置描述符集合主要由标准配置描述符、接口描述符、端点描述符、HID描述符,报告描述符物理描述符是单独返回给USB主机。端点描述符包含7个字节,组成如下:

    图片

    3.STM32配置描述符集合代码(必须按顺序)

    
    /* USB Configuration Descriptor */
    const uint8_t CustomHID_ConfigDescriptor[CUSTOMHID_SIZ_CONFIG_DESC] =
    {
    //
    // 标准配置描述符
    //	
        0x09, /* bLength: Configuation Descriptor size */
        USB_CONFIGURATION_DESCRIPTOR_TYPE, 	/* bDescriptorType: Configuration */
        CUSTOMHID_SIZ_CONFIG_DESC,			/* wTotalLength low : Bytes returned */
        0x00,								/* wTotalLength high: Bytes returned */
        0x01,         /* bNumInterfaces: 1 interface */
        0x01,         /* bConfigurationValue: Configuration value */
        0x00,         /* iConfiguration: Index of string descriptor describing the configuration*/
        0xC0,         /* bmAttributes: Bus powered */
                      /*Bus powered: 7th bit, Self Powered: 6th bit, Remote wakeup: 5th bit, reserved: 4..0 bits */
        0x96,         /* MaxPower 300 mA: this current is used for detecting Vbus */
        
    //
    // 接口描述符
    //		
    	/************** Descriptor of Custom HID interface ****************/
        /* 09 */
        0x09,         						/* bLength: Interface Descriptor size */
        USB_INTERFACE_DESCRIPTOR_TYPE,		/* bDescriptorType: Interface descriptor type */
        0x00,         /* bInterfaceNumber: Number of Interface */
        0x00,         /* bAlternateSetting: Alternate setting */
        0x02,         /* bNumEndpoints 此接口有两个端点 */
        0x03,         /* bInterfaceClass: HID */
        0x00,         /* bInterfaceSubClass : 1=BOOT, 0=no boot */
        0x00,         /* nInterfaceProtocol : 0=none, 1=keyboard, 2=mouse */
        0,            /* iInterface: Index of string descriptor */
        
    //
    // HID描述符(后续讲解)
    //		
    	/******************** Descriptor of Custom HID HID ********************/
        /* 18 */
        0x09,         /* bLength: HID Descriptor size */
        HID_DESCRIPTOR_TYPE, /* bDescriptorType: HID */
        0x10,         /* bcdHID: HID Class Spec release number */
        0x01,
        0x00,         /* bCountryCode: Hardware target country 国家代码 */
        
    	0x01,         /* bNumDescriptors: Number of HID class descriptors to follow
    					 类别描述符数目(至少有一个报表描述符)*/
        0x22,         /* bDescriptorType 报告描述符 */
        CUSTOMHID_SIZ_REPORT_DESC,	/* wItemLength: Total length of Report descriptor 报告描述符大小 */
        0x00,						/* 标志类别描述符说明结束 */ 
    	
    	
    //
    // 端点1描述符
    //		
    	/******************** Descriptor of Custom HID endpoints ******************/
        /* 27 */
        0x07,          /* bLength: Endpoint Descriptor size */
        USB_ENDPOINT_DESCRIPTOR_TYPE, /* bDescriptorType: */
    
        0x82,          /* bEndpointAddress: Endpoint Address (IN) */               
                       // bit 3...0 : the endpoint number
                       // bit 6...4 : reserved
                        // bit 7     : 0(OUT), 1(IN)
        0x03,          /* bmAttributes: Interrupt endpoint */
        0x40,          /* wMaxPacketSize: 64 Bytes max */
        0x00,
        0x02,          /* bInterval: Polling Interval (2 ms) */
        /* 34 */
    
    //
    // 端点2描述符
    //		
        0x07,	/* bLength: Endpoint Descriptor size */
        USB_ENDPOINT_DESCRIPTOR_TYPE,	/* bDescriptorType: */
    			/*	Endpoint descriptor type */
        0x01,	/* bEndpointAddress: */
    			/*	Endpoint Address (OUT) */
        0x03,	/* bmAttributes: Interrupt endpoint */
        0x40,	/* wMaxPacketSize: 64 Bytes max  */
        0x00,
        0x02,	/* bInterval: Polling Interval (2 ms) */
        /* 41 */
    }; /* CustomHID_ConfigDescriptor */

    4.端点描述符组成详解

    1.bLength

    端点描述符的长度。

    2.bDescriptorType

    描述符类型,端点描述符为0x05。描述符的结构开头是一样的,都是先说描述符长度,然后说类型,每种描述符的类型是不一样的,如下表格,可速查。

    图片

    3.bEndpointAddress

    Bit 3…0: 端点编号;

    Bit 6…4: 保留,默认为0;

    Bit 7:如果是控制端点可以忽略,因为控制端点有两个方向,否则一般表示数据传输方向,0 = OUT endpoint   1 = IN endpoint。

    4.bmAttributes

    Bits 1..0: Transfer Type,表示传输类型(传输类型在后面讲传输一节会详细讲解)

    00 = Control-控制传输

    01 = Isochronous-同步传输

    10 = Bulk-批量传输

    11 = Interrupt-中断传输

    Bits 7..2: 大家可以查看usb_20.pdf(下面有下载方法)。

    5.wMaxPackeSize(双字节)

    表示当前配置下此端点能够接收或发送的最大数据包的大小。

    对于同步端点,此值用于指示主机在调度中保留的总线时间,这是每(微)帧数据有效负载所需的时间,有效负载时间就是发送一帧数据需要占用的总线时间,在实际数据传输过程中,管道实际使用的带宽可能比保留的带宽少,大家想想,如果实际使用的带宽比保留的还多,那就丢数了;

    对于其类型的端点,bit10~bit0指定最大数据包大小(以字节为单位);

    bit12~bit11对于高速传输的同步和中断端点有效:bit12~bit11可指定每个微帧的额外通信次数,这里大家一定要知道是在高速传输中,当一个事务超时时,在一个微帧时间内重传的次数,如果设置为00b(None),则表示在一个微帧内只传输一个事务,不进行额外的超时重传,如果设置为01b,则表示在一个微帧内可以传输两次事务,有一次额外的重传机会,从下面可以看出,一个微帧最多可以有两次重传事务的机会,如果微帧结束了还是失败,就需要等到下一个微帧继续发送该事务;

    00 = None (1 transaction per microframe)

    01 = 1 additional (2 per microframe)

    10 = 2 additional (3 per microframe)

    11 = Reserved

    其它位默认为0,详细信息可参考usb_20文档第5章。

    6.bInterval

    查询时间,就是主机多久和设备通讯一次,主机在枚举设备的时候会得到端点描述符,然后根据端点描述符这个值和此端点进行对应的数据交互,也就是主机多久给端点发送一次数据请求。根据设备运行速度以帧或微帧表示,低速和全速称为帧,下面的一个值代表1ms,高速称为微帧,一个值代表125us。

    对于全速/高速同步端点,此值必须在1到16之间。bInterval值用作2的指数,例如bInterval为4,表示周期为8个单位;

    对于全速/低速中断端点,该字段的值可以是1到255,也就是主机多少ms给设备发一次数据请求;

    对于高速中断端点,使用bInterval值作为2的指数,例如bInterval为4表示周期为8。这个值必须在1到16之间;

    对于高速批量/控制输出端点,bInterval必须指定端点的最大NAK速率。值0表示端点永不NAK。其它值表示每个微帧的bInterval*125us时间最多1个NAK。这个值的范围必须在0到255之间;

    对于全速/低速批量/控制输出端点,此值无意义,可以任意指定。

    大家根据以上说明对号入座使用,用的时候在详细看usb_20.pdf文档。

    图片注:端点描述符内容还是很多的,我们如果使用USB也没必须要研究的很细,如果想更深入的了解请进入公众号点击下载区,在文档栏下载USB2.0规范文档集合,查看usb_20.pdf文档了解更详细的内容。


    1.版权归本作者(一个早起的程序员)所有;

    2.未经原作者允许不得转载本文内容,否则将视为侵权;

    3.转载或者引用本文内容请注明来源及原作者;

    4.对于不遵守此声明或者其他违法使用本文内容者,本人依法保留追究权等。

    下面是我的个人微信公众号,关注【一个早起的程序员】精彩系列文章每天不断。

    展开全文
  • 该程序用于从接口描述符集合中得到第 N个端点描述符。源码如下 ** * 从接口描述符集合中获取端点描述符 * @param intf_desc 接口描述符 * @param num 要获取的第几个端点描述符 * @param ep...

    该程序用于从接口描述符集合中得到第 N 个端点描述符。源码如下

    **
     * 从接口描述符集合中获取端点描述符
     * @param intf_desc                                     接口描述符
     * @param num                                           要获取的第几个端点描述符
     * @param ep_desc                                       获取到的端点描述符指针
     * 
     * @return                                              错误码,EOK 表示成功
     */
    
    struct usb_descriptor
    {
        uint8_t bLength;
        uint8_t type;
    };
    typedef struct usb_descriptor *udesc_t;
    
    err_t usbh_get_endpoint_descriptor(uintf_desc_t intf_desc, int num,
                                             uep_desc_t *ep_desc)
    {
        int count = 0, depth = 0;
        uint32_t ptr;
        udesc_t desc;
    
        /* check parameter */
        ASSERT(intf_desc != NULL);
        ASSERT(num < intf_desc->bNumEndpoints);
        *ep_desc = NULL;
    
        ptr = (uint32_t)intf_desc + intf_desc->bLength;  /* ptr 指针指向第一个类特殊描述符(如果有)/第一个接口描述符的起始地址  */
        while (count < intf_desc->bNumEndpoints)
        {
            if (depth++ > 0x20)
            {
                *ep_desc = NULL;
                return -EIO;
            }
            desc = (udesc_t)ptr;
            if (desc->type == USB_DESC_TYPE_ENDPOINT)
            {
                if (num == count)
                {
                    *ep_desc = (uep_desc_t)desc;
    
                    DEBUG_LOG(DEBUG_USB,
                                 ("usb_get_endpoint_descriptor: %d\n", num));
                    return EOK;
                }
                else
                {
                    count++;
                }
            }
            ptr = (uint32_t)desc + desc->bLength;
        }
    
        printf("usb_get_endpoint_descriptor %d failed\n", num);
        return -EIO;
    }
    
    /****************** end of file *************/
    

     

    展开全文
  • STM32 USB设备描述符、配置描述符、端点描述符含义 查了一整天的资料,自己把不懂的全部试了一遍 一下是程序以及注释 复制代码 /* USB设备描述符*/ const uint8_t CustomHID_DeviceDescriptor[CUSTOMHID_SIZ_DEVICE_...
  • 端点描述符具有7 B的长度,用来描述端点的属性以及各个端点的位置。对每个设备而言可能不止一种端点类型,其端点的数目由 上面的接口描述符的第5个字段bNumEndpoints设置。每一个端点都定义了一个如数据缓存器沟通点...
  • USB笔记 端点描述符 (Endpoint Descriptor) 端点描述符 (Endpoint Descriptor)描述了USB规范定义的端点信息,包含有端点的带宽等信息。每一个端点都有自己的端点描述符。主机端获取端点描述符 (Endpoint Descriptor)...
  • USB-端点描述符(六)

    千次阅读 2020-01-16 16:58:43
    USB鼠标详解阅读顺序 1、枚举 2、设备描述符 3、设置地址 4、配置描述符 5、接口描述符 ...linux内核中对端点描述符的定义,目录:linux/include/uapi/linux/usb/ch9.h /* USB_DT_ENDPOINT:...
  • 端点描述符,是描述USB通信通道或管道的类型和功能的标准USB描述符。
  • 前面几个章节说了设备描述符、配置描述符和HID特有描述符,接下来继续讲解接口描述符。根据USB协议规定,接口描述符不能单独返回,必须附着在配置描述符后一并返回。 接口描述符 标准的接口描述符的结构如下: ...
  •   接口描述符一般是按设备的运行状态分类,这样设备可以在不同的接口中切换来实现设备运行状态的切换,如在设备在运行状态下使用正常的接口描述符,在停止状态下使用该接口描述符的备用接口描述符。   USB协议...
  • 端点(Endpoint):主机与从机之间通讯数据的接收或发送的逻辑通道。...端点描述符是描述USB通信通道或管道的类型和功能的标准USB描述符。 偏移量 名称 大小 说明 0 bLength 1 描述符的长度(7字
  • zigbee 端点描述符

    2019-09-20 21:45:16
    在应用程序初始化时,使用 afRegister( &SampleApp_epDesc ); 注册一个端点 转载于:https://www.cnblogs.com/-song/archive/2013/02/24/3331823.html
  • 3.3.2、RNDIS接口描述符(9字节)   RNDIS 是 Remote Network Driver Interface Specification(远程网络驱动程序接口规范) 的首字母缩写,实际上的作用为 TCP/IP over USB,也即视 USB 设备(如手机)为网卡,是...
  • 高速未定义 5.3.4、ECM数据输出端点描述符(7字节) 字段 长度(位) 偏移量(位) 十六进制值 说明 bLength 8 648 0x07 描述符大小为7字节 bDescriptorType 8 656 0x05 端点描述符类型 bEndpointAddress 8 664 0x01...
  • 高速未定义 4.1.3、Modem输出端点描述符(7字节) 字段 长度(位) 偏移量(位) 解码 十六进制值 说明 bLength 8 728 0x07 0x07 描述符大小为7字节 bDescriptorType 8 736 0x05 0x05 端点描述符类型 ...
  • 文章目录参考目的综述详细介绍USB Device Framework标准 USB 描述符定义1. 设备描述符 (struct usb_device_descriptor)2. 配置描述符(struct usb_config_descriptor)3. 联合接口描述符(struct usb_interface_...
  • 设备截断 ==设备 配置 接口 端点
  • afRegister( endPointDesc_t *epDesc )这个函数用来注册一个新的端点到task,这样当空中有这个端点的数据到来会直接发送到对应的task。 传入参数: typedef struct {  byte endPoint; //端点号  byte *task_...
  • USB笔记 超高速端点伙伴描述符 (SuperSpeed Endpoint Companion Descriptor) 超高速端点伙伴描述符 (SuperSpeed Endpoint Companion Descriptor)用于支持增强型超高速功能(Enhanced SuperSpeed capabilities)。 只有...
  • USB笔记 超高速加等时端点伙伴描述符(SuperSpeedPlus Isochronous Endpoint Companion Descriptor) 超高速加等时端点伙伴描述符(SuperSpeedPlus Isochronous Endpoint Companion Descriptor)用于支持增强型超高速...
  • 关注+星标公众号,不错过精彩内容编排 | 一个早起的程序员一个早起的程序员1USB描述符USB描述符有设备描述符、标准配置描述符、接口描述符、端点描述符、字符串描述符,HID设备有HID描述符、报告描述符和物理描述符...
  • 目录 1.USB描述符 2.接口描述符组成 ...首先要明确的一点是接口描述符不能单独返回给USB主机,主机会请求获得配置描述符集合,配置描述符集合主要由标准配置描述符、接口描述符、端点描述符、HID描述符.
  • 关注+星标公众号,不错过...USB描述符有设备描述符、标准配置描述符、接口描述符、端点描述符、字符串描述符,HID设备有HID描述符、报告描述符和物理描述符。我们先学会每个描述符的细节,我会写的非常详细且简洁...
  • USB描述符

    2021-03-08 16:26:38
    一.设备描述符 二,配置描述符 三,接口描述符 四,端点描述符 五.字符串描述符
  • 关注+星标公众号,不错过精彩内容编排 | 一个早起的程序员一个早起的程序员1USB描述符USB描述符有设备描述符、标准配置描述符、接口描述符、端点描述符、字符串描述符,HID设备有HID描述符、报告描述符和物理描述符...
  • ZigBee_端点管理_描述符

    千次阅读 2017-03-13 23:19:30
    ZigBee网络中的所有设备都有一些描述符,用来描述设备类型和应用方式。描述符的定义和创建配置项在文件ZDOCConfig.h和ZDOConfig.c中完成。IEEE地址,设备地址,全球唯一 每个节点都具有物理地址(长地址、MAC)和...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 604
精华内容 241
关键字:

端点描述符