Поддержка Android в USB для качества звука

USB Digital Audio или поддержка Android в USB для качества звука

В этой статье рассматривается поддержка Android цифрового звука USB и связанных с ним протоколов USB для качества звука.

Целевая аудитория этой статьи — производители устройств Android, производители SoC, поставщики аудиоустройств USB, продвинутые разработчики аудиоприложений и другие, которые хотят получить детальное представление о цифровых аудиоустройствах USB на Android.

Левчук Александр Николаевич©
Левчук Александр Николаевич©

Конечные пользователи устройств должны ознакомиться со статьей « Запись и воспроизведение звука с использованием режима USB-хоста» в Справочном центре. Хотя эта статья не ориентирована на конечных пользователей, некоторые потребители аудиофилы могут найти интересующую их информацию.

Dolby-Atmos-смартфоны

USB

Universal Serial Bus (USB) неофициально описано в статье Википедии о USB , и формально определяется по стандартам , опубликованных USB Forum, Inc. Для удобства мы суммируем основные понятия USB здесь, но стандарты являются авторитетным справочником.

Основные понятия и терминология

USB — это шина с одним инициатором операций передачи данных, называемая хостом. Хост связывается с периферией через шину.

Примечание. Термины « устройство» и « аксессуар» являются общими синонимами для периферийных устройств . Здесь мы избегаем этих терминов, поскольку их можно спутать с устройством Android или с концепцией Android, называемой вспомогательным режимом.

Furutech GT2 USB + ЦАП R2R11
Furutech GT2 USB + ЦАП R2R11

Важной ролью хоста является перечисление: процесс определения того, какие периферийные устройства подключены к шине, и запрос их свойств, выраженных через дескрипторы.

Периферийным устройством может быть один физический объект, но на самом деле реализуется несколько логических функций. Например, периферийное устройство веб-камеры может иметь как функцию камеры, так и функцию микрофона.

Каждая периферийная функция имеет интерфейс, который определяет протокол для связи с этой функцией.

виброколонка + смартфон
виброколонка + смартфон

Хост взаимодействует с периферийным по телефону к конечной точке, источник данных обеспечивается одной из периферических функций.

Существует два вида каналов: сообщение и поток. Канал сообщений используется для двунаправленного контроля и статуса. Поток потока используется для однонаправленной передачи данных.

Хост инициирует все передачи данных, поэтому термины ввода и вывода выражены относительно хоста. Операция ввода передает данные с периферии на хост, а операция вывода передает данные с хоста на периферию.

Существует три основных режима передачи данных: прерывание , объемный и изохронный . Изохронный режим будет обсуждаться далее в контексте аудио.

сетевые-блоки-ЗМ
сетевые-блоки-ЗМ

Периферийное устройство может иметь терминалы, которые подключаются к внешнему миру, за пределами самого периферийного устройства. Таким образом, периферийное устройство служит для трансляции между протоколом USB и сигналами «реального мира». Терминалы являются логическими объектами функции.

Android USB режимы

Режим разработки

Режим разработки присутствует с момента первого выпуска Android. Устройство Android отображается в качестве периферийного устройства USB на главном ПК, работающем под управлением настольной операционной системы, такой как Linux, Mac OS X или Windows. Единственной видимой периферийной функцией является либо Android fastboot, либо Android Debug Bridge (adb) . Протоколы fastboot и adb размещаются в режиме массовой передачи данных через USB.

Режим хоста

Режим хоста представлен в Android 3.1 (уровень API 12).

Поскольку устройство Android должно выступать в качестве хоста, а большинство устройств Android имеет разъем micro-USB, который не разрешает прямую работу хоста, обычно требуется адаптер OTG, такой как это:

OTG кабель

Рисунок 1. Адаптер (OTG)

usb-dac-otg-cable
usb-dac-otg-cable

Устройство Android может не обеспечивать достаточную мощность для работы определенного периферийного устройства, в зависимости от того, сколько энергии требуется периферийному устройству и сколько устройство Android может обеспечить. Даже при наличии достаточного питания заряд батареи устройства Android может быть значительно сокращен.

Для этих ситуаций используйте концентратор с питанием.

DAC_OTG_cable
DAC_OTG_cable

Чем меньше длина провода OTG — USB — тем лучше!

Кстати, из за более длинных usb проводов в 50% цап на смартфоне не был доступен, т.е. терялась связь с ним. Подключение внешнего ЦАП к смартфону (андройд) происходит безболезненно и весьма быстро (если у вас конечно не совсем старый смартфон).

Подсоединяете данный комплект проводов в USB разъем на ЦАП, а второй конец кабеля в разъём OTG в смартфон. И всё!

Важно! При первом подсоединении ЦАП + смартфон, необходимоподождать 1-2 мин, для того чтобы ЦАП свои драйвера установил автоматически. А затем уже включать программный аудио-плеер.

Режим аксессуаров

Режим аксессуаров был представлен в Android 3.1 (уровень API 12) и перенесен на Android 2.3.4. В этом режиме устройство Android работает как периферийное устройство USB под управлением другого устройства, например док-станции, которая служит хостом. Разница между режимом разработки и дополнительным режимом заключается в том, что хосту видны дополнительные функции USB, помимо adb. Устройство Android начинает работу в режиме разработки, а затем переходит в режим аксессуаров через процесс повторного согласования.

 

Режим аксессуаров был расширен за счет дополнительных функций в Android 4.1, в частности, аудио, описанного ниже.

usb-dac-otg
usb-dac-otg
  • USB аудио
  • USB классы

Каждая периферийная функция имеет связанный документ класса устройства, который определяет стандартный протокол для этой функции. Это позволяет хостам и периферийным функциям, совместимым с классом, взаимодействовать без подробного знания работы друг друга. Соответствие классу имеет решающее значение, если хост и периферийные устройства предоставляются разными объектами.

Термин « без драйвера» является общим синонимом класса «совместимый» , указывая на то, что можно использовать стандартные функции такого периферийного устройства, не требуя установки драйвера для конкретной операционной системы. Можно предположить, что периферийное устройство, объявленное как «драйвер не нужен» для основных настольных операционных систем, будет совместимым с классом, хотя могут быть исключения.

USB аудио класс

Здесь мы касаемся только периферийных устройств, которые реализуют аудиофункции и, следовательно, придерживаются класса аудиоустройств. Существует две редакции спецификации звукового класса USB: класс 1 (UAC1) и 2 (UAC2).

подключение виброколонки к смартфону
подключение виброколонки к смартфону

Сравнение с другими классами

USB включает в себя множество других классов устройств, некоторые из которых могут быть перепутаны с классом аудио. Класс запоминающего устройства (MSC) используется для секторально-ориентированного доступа к мультимедиа, а протокол передачи мультимедиа (MTP) — для полного доступа к файлам мультимедиа. И MSC, и MTP могут использоваться для передачи аудиофайлов, но только потоковый класс USB подходит для потоковой передачи в реальном времени.

Аудио терминалы

Терминалы аудиоустройства обычно являются аналоговыми. Аналоговый сигнал, представленный на входном терминале периферийного устройства, преобразуется в цифровой с помощью аналого-цифрового преобразователя (АЦП) и передается по протоколу USB для использования хостом. АЦП является источником данных для хоста. Аналогично, хост отправляет цифровой аудиосигнал по протоколу USB на периферийное устройство, где цифроаналоговый преобразователь (ЦАП) преобразует и подает на аналоговый выходной терминал. ЦАП является приемником для хоста.

cable dac

Каналы

Периферийное устройство с аудио функцией может включать в себя терминал источника, терминал приемника или оба. Каждое направление может иметь один канал ( моно ), два канала ( стерео ) или более. Периферийные устройства с более чем двумя каналами называются многоканальными. Обычно стереопоток интерпретируется как состоящий из левого и правого каналов, а посредством расширения — многоканальный поток как имеющий пространственные местоположения, соответствующие каждому каналу. DAC_PCM2706 + TDA1305Тем не менее, это также вполне уместно (особенно для USB-аудио больше, чем HDMI) не назначать какой-либо конкретный стандартный пространственный смысл каждому каналу. В этом случае, это зависит от приложения и пользователя, чтобы определить, как используется каждый канал. Например, четырехканальный входной поток USB может иметь первые три канала, подключенные к различным микрофонам в комнате, и последний канал, принимающий вход от AM-радио.

Режим изохронной передачи

Аудио USB использует режим изохронной передачи для своих характеристик в реальном времени, за счет восстановления после ошибок. В изохронном режиме пропускная способность гарантируется, и ошибки передачи данных обнаруживаются с помощью циклического контроля избыточности (CRC). Но в случае ошибки нет подтверждения или повторной передачи пакета.

ламповый усилитель 6н23п
ламповый усилитель 6н23п

Изохронные передачи происходят каждый период начала (SOF). Период SOF составляет одну миллисекунду для полной скорости и 125 микросекунд для высокой скорости. Каждый высокоскоростной кадр несет до 1023 байтов полезной нагрузки, а высокоскоростной кадр — до 1024 байтов. Собирая их вместе, мы вычисляем максимальную скорость передачи как 1 023 000 или 8 192 000 байт в секунду. Это устанавливает теоретический верхний предел для комбинированной частоты дискретизации звука, количества каналов и глубины в битах. Практический предел ниже.

В изохронном режиме есть три подрежима:

  • адаптивный
  • Асинхронный
  • синхронный

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

виброакустика портативная +смартфон
виброакустика портативная +смартфон

В подрежиме асинхронного (также называемого неявной обратной связью) приемник или источник определяет частоту выборки, а хост приспосабливается. Основным теоретическим преимуществом асинхронного подрежима является то, что тактовая частота источника или приемника USB физически и электрически ближе к тактовой частоте, которая управляет ЦАП или АЦП, и может даже быть такой же или полученной из нее. Эта близость означает, что асинхронный подрежим должен быть менее восприимчивым к дрожанию тактового сигнала. Кроме того, часы, используемые ЦАП или АЦП, могут быть рассчитаны на более высокую точность и меньший дрейф, чем тактовые импульсы хоста.

ЦАП ESS-902 ЗМ и ЦАП ЗМ РСМ 500 фото
ЦАП ESS-902 ЗМ и ЦАП ЗМ РСМ 500

В синхронном подрежиме фиксированное количество байтов передается каждый период SOF. Частота дискретизации звука эффективно выводится из часов USB. Синхронный подрежим обычно не используется со звуком, потому что как хост, так и периферийные устройства зависят от часов USB.

В таблице ниже приведены изохронные подрежимы:

  •  Суб-режим Количество байтов
  • на пакет Частота дискретизации
  • определяется Используется для аудио
  • адаптивный переменная хозяин да
  • асинхронный переменная периферический да
  • синхронный фиксированный USB

На практике подрежим, конечно, имеет значение, но следует учитывать и другие факторы.

  • Поддержка Android для аудио класса USB
  • Режим разработки
  • Аудио через USB не поддерживается в режиме разработки.
  •  Режим хоста

Android 5.0 (уровень API 21) и выше поддерживает ряд функций USB audio class 1 (UAC1): 

  • Android-устройство должно выступать в качестве хоста
  • Аудиоформат должен быть PCM (интерфейс типа I)
  • Глубина в битах должна составлять 16, 24 или 32 бита, где 24 бита полезных аудиоданных выровнены по левому краю в старших значащих битах 32-битного слова.
  • Частота дискретизации должна быть 48, 44,1, 32, 24, 22,05, 16, 12, 11,025 или 8 кГц.
  • Количество каналов должно быть 1 (моно) или 2 (стерео)
цап для смартфона китайский
цап для смартфона китайский

Изучение исходного кода платформы Android может показывать дополнительный код сверх минимума, необходимого для поддержки этих функций. Но этот код не был проверен, поэтому более продвинутые функции еще не заявлены.

Режим аксессуаров

В Android 4.1 (уровень API 16) добавлена ограниченная поддержка воспроизведения звука на хосте. Находясь в дополнительном режиме, Android автоматически направляет свой аудиовыход на USB. То есть устройство Android служит источником данных для хоста, например док-станции.

усилитель для наушников

Аудио в режиме аксессуаров имеет следующие особенности:

Устройство Android должно управляться хорошо осведомленным хостом, который может сначала перевести устройство Android из режима разработки в режим аксессуаров, а затем хост должен передать аудиоданные с соответствующей конечной точки. Таким образом, устройство Android не выглядит «без водителя» для хоста.

  • Направление должно быть введено относительно хоста
  • Аудиоформат должен быть 16-битным PCM
  • Частота дискретизации должна составлять 44,1 кГц
  • Количество каналов должно быть 2 (стерео)

Аудио в режиме аксессуаров не получил широкого распространения и в настоящее время не рекомендуется для новых разработок.

Применение цифрового звука в USB

Как видно из названия, цифровой аудиосигнал USB представлен потоком цифровых данных, а не аналоговым сигналом, используемым общим разъемом мини- гарнитуры TRS . В конце концов, любой цифровой сигнал должен быть преобразован в аналоговый, прежде чем его можно будет услышать. Есть компромиссы в выборе места для размещения этой конверсии.

Сказка о двух ЦАП

На приведенном ниже примере диаграммы мы сравниваем два проекта. Сначала у нас есть мобильное устройство с процессором приложений (AP), встроенным ЦАП, усилителем и аналоговым разъемом TRS, подключенным к наушникам. Мы также рассматриваем мобильное устройство с USB, подключенным к внешнему USB ЦАП и усилителю, также с наушниками.

ЦАПы сравнениеdac

Рисунок. Сравнение двух ЦАП

Какой ЦАП лучше? Ответ зависит от ваших потребностей. У каждого есть свои преимущества и недостатки.

Примечание. Это искусственное сравнение, поскольку для реального устройства Android, вероятно, будут доступны обе опции.

мFurutech GT2 USB подключение
Furutech GT2 USB подключение

Первая конструкция A является более простой, менее дорогой, потребляет меньше энергии и будет более надежной конструкцией, предполагающей в равной степени надежные компоненты. Однако обычно есть компромиссы между качеством звука и другими требованиями. Например, если это устройство массового рынка, оно может быть разработано с учетом потребностей обычного потребителя, а не аудиофилов.

Во втором исполнении внешнее аудиоустройство C может быть спроектировано для более высокого качества звука и большей выходной мощности, не влияя на стоимость базового устройства Android массового рынка B. Да, это более дорогой вариант, но стоимость поглощается только те, кто этого хочет.

ЦАП АК 2х 4497
ЦАП на АК 2х4497 спрашивайте у меня в ВК

Мобильные устройства печально известны наличием печатных плат высокой плотности, что может привести к большим возможностям перекрестных помех, которые ухудшают соседние аналоговые сигналы. Цифровая связь менее восприимчива к шуму , поэтому перемещение ЦАП с устройства Android A на внешнюю печатную плату C позволяет физически и электрически изолировать последние аналоговые каскады от плотной и шумной печатной платы, что приводит к повышению качества звука.

С другой стороны, второй более сложен, и с добавленной сложностью появляется больше возможностей для неудач. Существует также дополнительная задержка от контроллеров USB.

Применения в режиме хост

Типичные аудиоприложения в режиме хоста USB:

  • прослушивание музыки
  • телефония
  • обмен мгновенными сообщениями и голосовой чат
  • запись

Для всех этих приложений Android обнаруживает совместимое цифровое аудиоустройство USB и автоматически маршрутизирует воспроизведение и захват аудио в соответствии с правилами звуковой политики. Стерео контент воспроизводится на первых двух каналах периферийного устройства.

Supra LoRad MD06-EU Сетевой блок питания обзор

Нет никаких API, специфичных для цифрового аудио USB. Для расширенного использования автоматическая маршрутизация может создавать помехи приложениям, поддерживающим USB. Для таких приложений отключите автоматическую маршрутизацию с помощью соответствующего элемента управления в разделе «Медиа» в разделе « Настройки» / «Параметры разработчика» .

Отладка в режиме хоста

В режиме хоста USB отладка adb через USB недоступна. Смотрите раздел Беспроводное использование в Android Debug Bridge как альтернативу.

Реализация USB звука

Рекомендации для производителей аудио периферийных устройств

Чтобы взаимодействовать с устройствами Android, поставщики аудиоустройств должны:

быть для соответствия аудио класса; в настоящее время Android ориентирован на класс 1, но разумно планировать на класс 2

  • избежать лагов,
  • тест на совместимость с эталонными и популярными устройствами Android.
  • четко документировать поддерживаемые функции, соответствие класса аудио, требования к питанию и т. д., чтобы потребители могли принимать обоснованные решения

Dolby-Atmos-smartphone

Рекомендации для производителей устройств Android и поставщиков SoC

Чтобы поддерживать цифровое аудио через USB, производители устройств и производители SoC должны:

  • разработка аппаратного обеспечения для поддержки режима USB-хоста
  • включить общую поддержку USB-хоста на уровне структуры через android.hardware.usb.host.xml
  • включить все необходимые функции ядра: режим USB-хоста, USB-аудио, режим изохронной передачи;
  • быть в курсе последних выпусков и исправлений ядра; несмотря на благородную цель соответствия класса, существуют устаревшие аудиоустройства с причудами , и последние ядра имеют обходные пути для таких причуд
  • включить политику аудио USB, как описано ниже
  • добавить audio.usb.default в PRODUCT_PACKAGES в device.mk
  • тест на совместимость с обычными аудиоустройствами USB

Как включить аудио USB на смартфоне

Чтобы включить аудио через USB в телефоне, добавьте запись в файл конфигурации аудио политики. Обычно это находится здесь:

device/oem/codename/audio_policy.conf

Компонент pathname «oem» должен быть заменен именем OEM-производителя, который производит устройство Android, а «codename» должен быть заменен кодовым именем устройства.

Furutech GT2 USB кабель
Furutech GT2 USB кабель

Пример записи показан здесь:

audio_hw_modules {

usb {

outputs {

usb_accessory {

sampling_rates 44100

channel_masks AUDIO_CHANNEL_OUT_STEREO

formats AUDIO_FORMAT_PCM_16_BIT

devices AUDIO_DEVICE_OUT_USB_ACCESSORY

}

usb_device {

sampling_rates dynamic

channel_masks dynamic

formats dynamic

devices AUDIO_DEVICE_OUT_USB_DEVICE

}

}

inputs {

usb_device {

sampling_rates dynamic

channel_masks AUDIO_CHANNEL_IN_STEREO

formats AUDIO_FORMAT_PCM_16_BIT

devices AUDIO_DEVICE_IN_USB_DEVICE

}

}

}

}

Исходный код

Реализация аппаратного абстракционного слоя (HAL) для аудио через USB находится здесь:

аппаратное обеспечение / libhardware / модули / usbaudio /

Аудио HAL USB сильно зависит от tinyalsa , описанного в терминологии аудио . Хотя USB-аудио зависит от изохронной передачи, это абстрагируется от реализации ALSA. Таким образом, USB audio HAL и tinyalsa не должны заниматься этой частью протокола USB.

Supra LoRad MD06-EU Сетевой блок питания
Supra LoRad MD06-EU Сетевой блок питания

Но теперь поговорим о минусах!!!

Не стоит возлагать большие надежды на высококачественный звук такого комплекта Цап и телефон. Ведь здесь полно ужасных минусов, которые изведут мелкими своими нервозностями:
1. Неудобства связки ЦАП и смартфон, т.к. такую кучу аппаратов + ворох проводов хорошо таскать и слушать в дальних поездках в автобусе, разложив их а вот на короткие поездки в метро, велосипед и прочее ну никак не подойдут.dac_pcm_2704
2. Звучание чуть лучше, чем у смартфонов. Подобные цапы-свистки не блещут высоким качеством звук, но уступают дешевым плеерам с цап + оу. Тут я не особо буду сдаваться в подробности, но советую просто взглянуть на «внутрянку» подобных Цап. Ведь качественный звук в большинстве своём это комплектуха, а не только цап-чип.

ЦАП или плеер
ЦАП или плеер

3. Не более чем начальный уровень. Звук этих цап-свистков — это начальный уровень, впрочем, плееры портативные тоже не блещут хаендом, ведь нормальную хаендовую комплектуху туда не впихнешь.
4. Усилитель для наушников простейший. Обычно в таких (в основном китайских с Алиэкспресс) ЦАП — свистков ставят простейший ОУ, в 80% это копеечные по стоимости 5532. И не думайте что ваши дорогие наушники раскроются на все 100%, нет конечно эти устройства лишь для дешёвых наушников или для дешевой стационарной техники.

Удачного прослушивания в высоком качестве!!! 

старый CD-плеер или ЦАП
старый CD-плеер или ЦАП
Я надеюсь, что эта статья «Поддержка Android в USB для качества звука» немного помогла. Пожалуйста, оставляйте комментарии ниже, чтобы я мог вернуться к вам. Не бойтесь меня и добавляйтесь в ВКЮтуб
Если вы хотите узнать больше об этой теме, и быть в курсе, пожалуйста, подпишитесь на наш сайт. 

Не забывайте сохранять нас в закладках! (CTRL+SHiFT+D) Подписывайтесь, комментируйте, делитесь в соц.сетях. Желаю удачи в поиске своего звука!
На нашем сайте Звукомания есть полезная информация по звуку и видео, которая пригодится для каждого, причем на каждый день, мы обновляем сайт «Звукомания» постоянно и стараемся искать и писать только отличную, проверенную и нужную информацию.
Вам нужен хороший фонокорректор, новый ламповый усилитель или отличный ЦАП, плеер, наушники, АС или другую звуковую технику, (усилитель, ресивер и т.д.) то пишите в ВК, помогу выгодно и с гарантией  приобрести хорошую звуковую технику…
Если вы являетесь производителем, рекламодателем, импортером, дистрибьютором или агентом в области качественного воспроизведения звука и хотели бы связаться с нами, пожалуйста, пишите в  ВК  или ОК или ИНСТА  или по эл. почте: anl555@bk.ru

Похожие сообщение