Совместимость с ChromeOS — спецификация USB-гарнитуры v1.2

Версия: 1.2.1
Последнее обновление: 14 июня 2024 г.

Легенда

Глагол продукта Действия по развитию
"ДОЛЖЕН" Обязательное требование к товару
"ДОЛЖЕН" Дополнительная рекомендация
"МОЖЕТ" Приятно иметь

Обзор

В этом документе описаны требования, которым соответствует USB-гарнитура, совместимая с ChromeOS. Эта спецификация не предназначена для продуктов WWCB и продуктов, разработанных и сертифицированных вместе с Chromebook.

USB

Безопасность

Беспроводной адаптер 2,4 ГГц

  • Беспроводное устройство с частотой 2,4 ГГц автоматически соединяется только с приемником (адаптером), который входит в комплект поставки.
  • Требуется действие пользователя (либо на устройстве, либо через приложение) для сопряжения гарнитуры с другим ресивером или сопряжения новой гарнитуры с существующим ресивером.
  • Если приложению требуется изменить сопряжение гарнитуры и ресивера, оно должно работать на ChromeOS, например, через расширение. Приложение также может быть веб-приложением, использующим WebUSB/WebHID.
  • Если сопряжение осуществляется через расширение, расширение должно иметь доступ только к USB-портам. Сценарии контента явно запрещены.

Прошивка и разъем

  • Гарнитура должна быть объявлена ​​как аудиоустройство с правильным дескриптором аудиоинтерфейса (0x01).
    • Должен быть один соответствующий дескриптор как для входного, так и для выходного терминала.
      • Рекомендуется сообщить тип разъема USB Audio Class (UAC).
  • Если у него есть какая-либо кнопка, она должна быть объявлена ​​как HID.
  • Гарнитура должна соответствовать требованиям к прошивке и разъему WWCB .

Программное обеспечение

Формат

Пожалуйста, обратитесь к разделу «Аудио формат» .

Для устройства имеется как входной, так и выходной дескриптор аудиоинтерфейса.

  • Пример дескриптора аудиоинтерфейса

    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0
      iInterface              0
    

Если частоты дискретизации входа и выхода различаются, устройство должно иметь возможность одновременно поддерживать воспроизведение и захват с разными частотами дискретизации. В противном случае устройство должно отражать то же значение в дескрипторе интерфейса AudioStreaming -> tSamFreq .

  • Пример частоты дискретизации аудиовыхода USB 48k

    AudioStreaming Interface Descriptor:
      bLength                11
      bDescriptorType        36
      bDescriptorSubtype      2 (FORMAT_TYPE)
      bFormatType             1 (FORMAT_TYPE_I)
      bNrChannels             2
      bSubframeSize           2
      bBitResolution         16
      bSamFreqType            1 Discrete
      tSamFreq[ 0]        48000
    Endpoint Descriptor:
      bLength                 9
      bDescriptorType         5
      bEndpointAddress     0x02  EP 2 OUT(Output)
      bmAttributes            9
        Transfer Type            Isochronous
        Synch Type               Adaptive
        Usage Type               Data
    
  • Пример частоты дискретизации аудиовхода USB 44,1 тыс.

    AudioStreaming Interface Descriptor:
      bLength                11
      bDescriptorType        36
      bDescriptorSubtype      2 (FORMAT_TYPE)
      bFormatType             1 (FORMAT_TYPE_I)
      bNrChannels             2
      bSubframeSize           2
      bBitResolution         16
      bSamFreqType            1 Discrete
      tSamFreq[ 0]        44100
    Endpoint Descriptor:
      bLength                 9
      bDescriptorType         5
      bEndpointAddress     0x81  EP 1 In(Input)
      bmAttributes            9
        Transfer Type            Isochronous
        Synch Type               Adaptive
        Usage Type               Data
    

HID-коды

  • Для каждого события HID он может передавать только одно событие один раз.
  • Правильный код события и соответствующий код события должны быть получены при нажатии кнопки.
    • Например, увеличить громкость. evtest может наблюдать только одно событие увеличения громкости, и код должен быть KEY_VOLUME_UP .
  • Если существует какой-либо интерфейс, предназначенный для обеспечения следующих функций, периферийное устройство USB должно поддерживать отправку или получение соответствующих событий HID в соответствии со спецификацией HID USB.org .
Страница потребителя (0x0c)
Имя ключа Идентификатор использования HID Тип использования
KEY_PLAY 0x0b0 ООС
KEY_PAUSE 0x0b1 ООС
KEY_NEXTSONG 0x0b5 ОСК
KEY_PREVIOUSSONG 0x0b6 ОСК
KEY_STOPCD 0x0b7 ОСК
KEY_PLAYPAUSE 0x0cd ОСК
KEY_PREVIOUSSONG 0x0b6 ОСК
KEY_MUTE 0x0e2 ООС
KEY_VOLUMEUP 0x0e9 РТК
KEY_VOLUMEDOWN 0x0ea РТК
Страница телефонии (0x0b)
Имя ключа Идентификатор использования HID Тип использования
Крючок Переключатель 0x20 ООС
Звонок 0x9e ООС
Страница светодиода (0x08)
Имя ключа Идентификатор использования HID Тип использования
Немой 0x09 ООС
снять трубку 0x17 ООС
Кольцо 0x18 ООС

Джек Детектион

Если USB-устройство не поддерживает USB Audio Class (UAC), на панели задач ChromeOS всегда будет отображаться узел вывода. Однако если USB-устройство поддерживает UAC, система сможет правильно обнаружить аудиоразъем 3,5 мм при вставке устройства.

  • CrOS Должен использовать обнаружение присутствия для разъемов 3,5 мм.
    • Необходимо выполнить обнаружение вставки с помощью одного из:

Аудио формат

Воспроизведение Запись
Частота дискретизации ≥ 16 кГц ≥ 16 кГц
Формат S16_LE S16_LE
  • Номер канала и конфигурация должны быть правильными.
  • Все частоты дискретизации, поддерживаемые гарнитурой, должны работать правильно.
    • Отклонение между измеренной частотой и частотой дискретизации должно составлять ≤ 0,1%.
    • Стандартная ошибка для линейной регрессии измеренной скорости должна быть < 30.
  • Гарнитура должна поддерживать воспроизведение или захват с различными частотами дискретизации, которые она поддерживает.

    Например, воспроизводите звук с частотой ниже 44,1 кГц, но одновременно записывайте голос с частотой ниже 48 кГц.

    • В противном случае ChromeOS требует добавить определенный файл конфигурации, чтобы предотвратить это на стороне системы.

Качество звука

Путь захвата — отключить звук

  • Если существует какой-либо интерфейс, с помощью которого пользователи могут отключить звук аудиоустройства, он должен
    • Поддерживайте режим отключения звука таким образом, чтобы на него не влияли:
      • Открытие и закрытие устройства.
      • Переключение на другое устройство ввода.
  • Если пользователь нажимает кнопку отключения звука на гарнитуре или ChromeOS, состояние отключения звука должно измениться.
  • Если состояние отключения звука изменится, индикатор состояния отключения звука (например, светодиод) на гарнитуре должен измениться.

Задержка звука

Задержка

  • Выходная задержка
    • Воспроизведение звука должно начинаться не позднее чем через 500 мс после действия пользователя, инициирующего воспроизведение.
      • Может запросить отказ, если OEM-производитель устройства сможет доказать, что эхо не возникает, когда оно не соответствует этому требованию.

А/В синхронизация

  • Воспроизведение звука должно быть синхронизировано с воспроизведением видео. Воспроизведение звука может опережать видео на ≤25 мс или отставать от видео на ≤95 мс.

История изменений

Дата Версия Примечания
14.06.2024 1.2.1 Получена спецификация, совместимая с ChromeOS. Первоначальная публикация на партнерском сайте.
01.09.2022 1.2 Соответствующая спецификация WWCB v1.2
06.06.2022 1.1 Соответствующая спецификация WWCB v1.1
21 сентября 2020 г. 1.0 Создана соответствующая спецификация WWCB.