USB CDC
+ -

CDC 国家选择功能描述符

2025-07-10 0 0

Country Selection Functional Descriptor(国家选择功能描述符)国家选择功能描述符用于声明设备在哪些国家/地区被批准使用,主机可据此进行合规性判断和配置。

该描述符用于标识通信设备被批准在哪些国家/地区使用。不同国家的网络连接参数可能不同,尤其是在欧洲,不同国家的法律法规也会对设备提出不同要求。
此描述符只能出现在接口描述符的类特定部分,且应只提供给联合(Union)中的主通信类接口。
注意: 该描述符中的国家代码并非国际电话拨号用的国家代码,而是ISO 3166标准中的国家代码。


描述符结构(Table 34)

偏移 字段名 大小 值/类型 描述
0 bFunctionLength 1 数值 此功能描述符的字节数
1 bDescriptorType 1 常量 CS_INTERFACE 描述符类型
2 bDescriptorSubtype 1 常量 国家选择功能描述符子类型
3 iCountryCodeRelDate 1 索引 字符串描述符索引,表示ISO 3166国家代码的发布日期,格式为ddmmyyyy(如01012023)
4 wCountryCode0 2 数值 第一个支持国家的ISO 3166国家代码(十六进制)
2N+2 wCountryCodeN-1 2 数值 第N个支持国家的ISO 3166国家代码(十六进制)

示例(C结构体及二进制示例)

C结构体定义

typedef struct _USB_CDC_COUNTRY_SELECTION_DESCRIPTOR {
    uint8_t  bFunctionLength;      // 描述符长度
    uint8_t  bDescriptorType;      // CS_INTERFACE (0x24)
    uint8_t  bDescriptorSubtype;   // Country Selection subtype (0x07)
    uint8_t  iCountryCodeRelDate;  // 国家代码发布日期字符串描述符索引
    uint16_t wCountryCode[1];      // ISO 3166国家代码数组(可变长度)
} USB_CDC_COUNTRY_SELECTION_DESCRIPTOR;

示例数据(假设支持中国(0x156)和美国(0x840),发布日期字符串索引为2)

字节序号 值(十六进制) 含义
0 0x08 bFunctionLength = 8
1 0x24 bDescriptorType = CS_INTERFACE
2 0x07 bDescriptorSubtype = Country Selection
3 0x02 iCountryCodeRelDate = 2
4 0x56 wCountryCode0低字节(中国)
5 0x01 wCountryCode0高字节(中国)
6 0x40 wCountryCode1低字节(美国)
7 0x08 wCountryCode1高字节(美国)

二进制示例:

08 24 07 02 56 01 40 08

说明

  • bFunctionLength:描述符总长度,=4+2×国家数量
  • bDescriptorType:固定为0x24(CS_INTERFACE)
  • bDescriptorSubtype:国家选择功能描述符为0x07
  • iCountryCodeRelDate字符串描述符索引,内容为发布日期(如”01012023”)
  • wCountryCodeN:ISO 3166国家代码(十六进制)

0 篇笔记 写笔记

CDC 国家选择功能描述符
Country Selection Functional Descriptor(国家选择功能描述符国家选择功能描述符用于声明设备在哪些国家/地区被批准使用,主机可据此进行合规性判断和配置。该描述符用于标识通信设备被批准在哪些国家/地区使用。不同国家的网络连接参数可能不同,尤其是在欧洲,不同国家的......
关注公众号
  • HID人机交互
  • Linux&USB
  • UAC音频
  • CDC
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

    打开支付宝扫一扫,即可进行扫码打赏哦

    您的支持,是我们前进的动力!