集成电路科普者 2025-06-25 19:55 采纳率: 98.7%
浏览 9
已采纳

问题:在USB ORG购买了Vendor ID后,如何申请TID?

在USB ORG购买了Vendor ID后,如何申请TID? 获得Vendor ID(VID)后,开发者需通过USB-IF官方平台提交产品认证申请,参与相关合规性测试,并缴纳年费及认证费用。完成流程后,USB-IF将分配唯一的Product ID(TID)。此过程涉及设备描述符配置、HID报告描述符设计、DFU升级机制等技术细节,开发者常遇问题包括:VID未正确注册至设备端、固件中PID冲突、认证流程材料准备不全等。此外,部分开发者对USB-IF会员等级要求及TID获取权限存在误解,也易导致申请失败。理解USB规范、确保硬件与固件符合标准,是成功获取TID的关键。
  • 写回答

1条回答 默认 最新

  • ScandalRafflesia 2025-06-25 19:55
    关注

    1. USB VID与TID的基本概念

    在USB开发中,Vendor ID(VID)和Product ID(TID或PID)是识别设备的唯一标识符。VID由USB Implementers Forum(USB-IF)分配给厂商,而TID则用于区分同一厂商下的不同产品。

    开发者首先需在USB ORG官网注册并购买VID,随后才能申请TID。

    2. 申请TID的流程概述

    TID的获取依赖于通过USB-IF的产品认证流程。以下是基本步骤:

    1. 成为USB-IF会员(根据需求选择公司级别)
    2. 购买并注册Vendor ID(VID)
    3. 设计符合USB规范的硬件与固件
    4. 提交产品认证申请
    5. 完成合规性测试(电气、协议、HID等)
    6. 缴纳年费及认证费用
    7. 获得TID并更新设备描述符

    3. 技术实现的关键点

    在固件层面,设备必须正确配置其USB描述符,尤其是设备描述符中的bcdUSBbDeviceClassidVendoridProduct字段。

    
    struct usb_device_descriptor {
        uint8_t  bLength;
        uint8_t  bDescriptorType;
        uint16_t bcdUSB;
        uint8_t  bDeviceClass;
        uint8_t  bDeviceSubClass;
        uint8_t  bDeviceProtocol;
        uint8_t  bMaxPacketSize0;
        uint16_t idVendor;   // 此处填写已注册的VID
        uint16_t idProduct;  // 等待USB-IF分配的TID
        uint16_t bcdDevice;
        uint8_t  iManufacturer;
        uint8_t  iProduct;
        uint8_t  iSerialNumber;
        uint8_t  bNumConfigurations;
    };
        

    4. 常见问题与解决方案

    问题类型具体表现解决方法
    VID未注册至设备端主机无法识别设备,显示未知设备检查固件代码中的idVendor是否与USB-IF注册一致
    PID冲突多个设备使用相同PID导致驱动冲突确保每个产品使用唯一的TID,并避免硬编码PID
    认证材料不全申请被退回,进度延迟准备完整的技术文档、测试报告和用户手册

    5. 认证过程详解

    USB-IF要求所有使用官方VID的产品必须通过合规性测试。主要测试内容包括:

    • 电气特性测试(如电压、电流、信号完整性)
    • 协议一致性测试(枚举过程、标准请求响应)
    • HID类设备功能验证(报告描述符结构正确性)
    • DFU(设备固件升级)机制验证

    测试通常可在授权实验室(如Allion、Intertek)进行。

    6. USB-IF会员等级与权限说明

    USB-IF设有不同级别的会员制度,直接影响TID申请权限:

    graph TD A[非会员] -->|无资格| B(仅限使用公共VID) C[准会员] -->|可申请单个VID| D[正式会员] D -->|可申请多个VID+TID| E[高级会员] E --> F{享受更多技术支持
    参与标准制定}

    7. 开发建议与最佳实践

    为提高申请成功率,推荐以下做法:

    • 遵循最新的USB 3.x / 2.0规范编写固件
    • 使用标准HID报告描述符格式,避免自定义扩展不当
    • 提前准备DFU升级路径,确保兼容性和安全性
    • 建立完整的测试用例库,模拟各种主机环境
    • 定期参加USB-IF组织的Plugfest活动,验证互操作性
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 10月23日
  • 创建了问题 6月25日