查看: 2973|回复: 6

[求助] 我调KL46的USB,有一段例程,关于描述符,多了一段?

[复制链接]
  • TA的每日心情
    开心
    2024-7-31 10:09
  • 签到天数: 392 天

    连续签到: 1 天

    [LV.9]以坛为家II

    45

    主题

    1338

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    3163
    最后登录
    2024-12-27
    发表于 2014-12-22 16:34:20 | 显示全部楼层 |阅读模式
    /********************************************************************
    *       Interface Descriptor   9位 接口描述符
    ********************************************************************/



            0x09,                //blength该描述符的个数
            0x04,                    //bDescriptorType - Interface descriptor 04接口描述符
            0x00,                    //bInterfaceNumber - Zero based value identifying the index of the config.接口号0
            0x00,                    //bAlternateSetting;可替换的接口描述符编号。实际就是接口的描述符的编号。
            0x01,                    //bNumEndpoints - 2 endpoints该接口使用的端点数为1,不包括端点0
            0x02,                    //bInterfaceClass - mass storage 接口所属的USB设备类,02表示为通信类CDC
            0x02,                    //bInterfaceSubClass - SCSI Transparent command Set接口所属的USB设备子类,0无引导,1支持引导
            0x01,                    //bInterfaceProtocol - Bulk-Only transport接口采用的USB设备类协议,1:键盘接口,2鼠标接口。???
            0x01,                    //iInterface - Index to String descriptor 接口字符串描述符的索引


        0x05,           //这一段是对什么的描述???
        0x24,
        0x00,
        0x10,
        0x01,
        0x05,
        0x24,0x01,
        0x00,0x01,
        0x04,0x24,
        0x02,0x00,
        0x05,0x24,
        0x06,0x00,
        0x01,     //19位
       
    /********************************************************************
    *       Endpoint  Descriptor   7位  端点描述符
    ********************************************************************/
            0x07,           //blength长度
            0x05,           //bDescriptorType - EndPoint 05号为端点描述符
            0x81,           //bEndpointAddress  端点地址以及方向1000 0001端点号1,in  
            0x03,           //bmAttributes      描述了该端点的传输特性,03->0000 0011 中断传输,数据端点非同步
            0x20,0x00,      //wMaxPacketSize    最大包长度        
            0x02,           //bInterval         定义了该端点被主机访问的周期1ms单位
    我知道答案 目前已有6人回答
    今天天气不错!签到!
    回复

    使用道具 举报

    该用户从未签到

    1

    主题

    802

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1763
    最后登录
    1970-1-1
    发表于 2014-12-26 16:14:49 | 显示全部楼层
    这个接口程序你看过和光盘里一模一样吗
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-12-10 16:14
  • 签到天数: 1442 天

    连续签到: 1 天

    [LV.10]以坛为家III

    17

    主题

    3862

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    8291
    最后登录
    2021-12-10
    发表于 2014-12-27 07:56:54 | 显示全部楼层
    0x05,
    0x24,
    0x00,
    0x10,
    0x01,

    0x05,
    0x24,
    0x01,
    0x00,
    0x01,

    0x04,
    0x24,
    0x02,
    0x00,

    0x05,
    0x24,
    0x06,
    0x00,
    0x01,

    这个描述符种类 0x24 是不是自定义的?

    U01.JPG


    回复 支持 反对

    使用道具 举报

    该用户从未签到

    24

    主题

    252

    帖子

    0

    高级会员

    Rank: 4

    积分
    504
    最后登录
    1970-1-1
    发表于 2014-12-27 13:13:04 | 显示全部楼层
    会不会是其他模式下使用的?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10

    主题

    273

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1485
    最后登录
    2020-2-18
    发表于 2014-12-30 15:13:58 | 显示全部楼层
    可能是HID描述符
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10

    主题

    273

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1485
    最后登录
    2020-2-18
    发表于 2014-12-30 15:14:42 | 显示全部楼层
    标准的描述符有5种,USB为这些描述符定义了编号:

    1——设备描述符

    2——配置描述符

    3——字符描述符

    4——接口描述符

    5——端点描述符

    上面的描述符之间有一定的关系,一个设备只有一个设备描述符,而一个设备描述符可以包含多个配置描述符,而一个配置描述符可以包含多个接口描述符,一个接口使用了几个端点,就有几个端点描述符。这间描述符是用一定的字段构成的,分别如下说明:

    1、设备描述符

    struct _DEVICE_DEs criptOR_STRUCT

    {

    BYTE bLength; //设备描述符的字节数大小,为0x12

    BYTE bDes criptorType; //描述符类型编号,为0x01

    WORD bcdUSB; //USB版本号

    BYTE bDeviceClass; //USB分配的设备类代码,0x01~0xfe为标准设备类,0xff为厂商自定义类型

    //0x00不是在设备描述符中定义的,如HID

    BYTE bDeviceSubClass; //usb分配的子类代码,同上,值由USB规定和分配的

    BYTE bDeviceProtocl; //USB分配的设备协议代码,同上

    BYTE bMaxPacketSize0; //端点0的最大包的大小

    WORD idVendor; //厂商编号

    WORD idProduct; //产品编号

    WORD bcdDevice; //设备出厂编号

    BYTE iManufacturer; //描述厂商字符串的索引

    BYTE iProduct; //描述产品字符串的索引

    BYTE iSerialNumber; //描述设备序列号字符串的索引

    BYTE bNumConfiguration; //可能的配置数量



    }





    2、配置描述符

    struct _CONFIGURATION_DEs criptOR_STRUCT

    {

    BYTE bLength; //设备描述符的字节数大小,为0x12

    BYTE bDes criptorType; //描述符类型编号,为0x01

    WORD wTotalLength; //配置所返回的所有数量的大小

    BYTE bNumInterface; //此配置所支持的接口数量

    BYTE bConfigurationVale; //Set_Configuration命令需要的参数值

    BYTE iConfiguration; //描述该配置的字符串的索引值

    BYTE bmAttribute; //供电模式的选择

    BYTE MaxPower; //设备从总线提取的最大电流

    }



    3、字符描述符

    struct _STRING_DEs criptOR_STRUCT

    {

    BYTE bLength; //设备描述符的字节数大小,为0x12

    BYTE bDes criptorType; //描述符类型编号,为0x01

    BYTE SomeDes criptor[36]; //UNICODE编码的字符串

    }



    4、接口描述符

    struct _INTERFACE_DEs criptOR_STRUCT

    {

    BYTE bLength; //设备描述符的字节数大小,为0x12

    BYTE bDes criptorType; //描述符类型编号,为0x01

    BYTE bInterfaceNunber; //接口的编号

    BYTE bAlternateSetting;//备用的接口描述符编号

    BYTE bNumEndpoints; //该接口使用端点数,不包括端点0

    BYTE bInterfaceClass; //接口类型

    BYTE bInterfaceSubClass;//接口子类型

    BYTE bInterfaceProtocol;//接口所遵循的协议

    BYTE iInterface; //描述该接口的字符串索引值

    }

    5、端点描述符

    struct _ENDPOIN_DEs criptOR_STRUCT

    {

    BYTE bLength; //设备描述符的字节数大小,为0x12

    BYTE bDes criptorType; //描述符类型编号,为0x01

    BYTE bEndpointAddress; //端点地址及输入输出属性

    BYTE bmAttribute; //端点的传输类型属性

    WORD wMaxPacketSize; //端点收、发的最大包的大小

    BYTE bInterval; //主机查询端点的时间间隔

    }
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    88

    帖子

    0

    注册会员

    Rank: 2

    积分
    157
    最后登录
    2019-8-26
    发表于 2015-1-8 13:28:06 | 显示全部楼层
    看描述符我就醉了,从接口描述上面来说,这是个CDC设备,但是为什么Protocl是1?而紧接着的数据描述的是HID设备的描述。所以,我感觉这是一个HID的描述符改CDC的,但是没有改完全。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-20 13:36 , Processed in 0.105121 second(s), 28 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表