USB-IF опубликовала спецификацию стандарта USB Audio Device Class 3.0
Недавно мы рассказывали о причинах, побуждающих производителей отказываться от использования джека 3.5 мм в мобильных устройствах. Сейчас же группа USB-IF, ответственная за стандартизацию коннектора, выпустила спецификацию USB Audio Device Class 3.0 (ADC 3.0) для тех производителей, которые планируют использовать USB Type-C в качестве интерфейса для передачи звука.
Эта спецификация позволит разработчикам избавиться от 3.5-мм разъема, но при этом поддерживает как цифровую, так и аналоговую передачу звука (через переходники). Также по этой спецификации можно предположить «начинку» будущих USB-C наушников и других аудиоустройств: девайсы будут оснащены многофункциональными процессорными модулями (MPU), способными определять их функционал в конкретный момент времени.
Среди доступных операций синхронизация с источником, ЦАП, шумоподавление, темброблок и управление микрофоном. Кроме того, MPU управляют энергопотреблением устройств: современные USB-C гарнитуры известны своей прожорливостью, новая же спецификация подразумевает, что MPU будет отключать неиспользуемые функции в различные моменты времени, тем самым снижая энергопотребление.
Устройства, построенные согласно этой спецификации, должны поддерживать сжатие USB Audio Type-III и IV, а также будут обратно совместимы с ADC 1.0 и 2.0.
Выбираем недорогой и качественный USB-аудиоинтерфейс
Оглавление
Вступление
Звуковая карта, она же аудиоинтерфейс — важный элемент любого компьютера или ноутбука, отвечающий за вывод звука. Именно он преобразует сигналы из цифровой формы, в которой аудиоданные хранятся в памяти ПК или на сменных носителях, в аналоговую, необходимую для подачи в усилитель или активную акустику. Он же преобразует звук и в обратную сторону: из аналога в цифру. Эта функция пригодится для записи или использования микрофона.
реклама
Прежде звуковые карты имели исключительно вид платы для установки в слот PCI, в котором они выпускаются и по сей день, но с появлением ноутбуков и планшетов потребовался мобильный аудиоинтерфейс и производители тотчас же на это отреагировали. И сейчас внешнее исполнение уже давно стало стандартом. Когда для подключения проводов не нужно тянуться к задней стенке системника, все необходимые органы управления удобно расположены поблизости, есть усилитель для наушников и можно подключаться хоть к стационарному ПК, хоть к ноутбуку, для многих выбор становится очевиден, поэтому здесь есть из чего выбрать.
Если отбросить Китай, копеечные мультимедийные варианты и аудиоинтерфейсы для геймеров, заточенные больше под работу с объемным звуком, чем на точную передачу нюансов музыки, то остаются или ЦАПы из сегмента HI-Fi, или профессиональные карты. В первой категории можно найти корейский и китайский портатив, немного настольных вариантов и полноразмерные компоненты за большие деньги. Со второй все не так однозначно. С увеличением спроса на доступное профессиональное оборудование для звукозаписи почти все крупные производители ринулись в бюджетный сегмент, расширив ассортимент так называемых полупрофессиональных решений.
Дошло до того, что сегодня можно купить звуковую карту какого-нибудь из известных мировых брендов про-аудио за скромные 3000-5000 рублей. Они, конечно, уступают по качеству профессиональным моделям, но с мультимедийными устройствами и уж тем более с интегрированными точно не сравнятся. Таким образом, на рынке бюджетных решений сложилась интересная ситуация: с одной стороны, за одни и те же деньги (до 15 000) рублей можно приобрести хороший китайский портатив, а с другой — профессиональный аудиоинтерфейс начального уровня с неплохими характеристиками.
Если целью не стоит создание домашней студии звукозаписи, а интересует лишь вывод аудиодорожки на систему звукоусиления, будет достаточно минимальной конфигурации с двумя аналоговыми выходами. Тем, кому необходима возможность прослушивания в наушниках, стоит обратить внимание на наличие соответствующего усилителя и выхода для подключения. Для записи потребуются аналоговые входы и микрофонные предусилители.
Класс USB Audio: для чего он нужен и где он используется
Многие из нас уже привыкли использовать периферийные аудиоустройства через USB вместо использования классического миниатюрного разъема на всю жизнь, причина этого в том, что через USB можно передавать гораздо больше данных. Но для USB-порта для воспроизведения звука необходимы определенные изменения в его архитектуре, которые мы знаем как USB. Аудио Класс.
Класс USB Audio очень популярен и также используется, потому что он поддерживается всеми операционными системами и, следовательно, платформами. Мы видим, что это используется в Windows, Linux, macOS и т. д. Таким образом, подключить устройство, совместимое с USB Audio Class, так же просто, как подключи и работай, без каких-либо дополнительных забот.
Стандарты USB Audio Class
В высококачественных игровых наушниках с одним динамиком на канал используется вторая версия стандарта, которая предназначена не только для воспроизведения звука с более высоким качеством, но и для большего количества одновременных каналов.
Типы ЦАП в USB Audio Class
Хотя звук обрабатывается в цифровом виде, когда он обрабатывается в нашем компьютере как данные. Во время передачи на динамики он поступает в виде аналогового сигнала, который необходимо преобразовать с помощью преобразователя, преобразующего цифровой сигнал в аналоговый, или более известного под его английской аббревиатурой DAC.
В высококачественных наушниках с несколькими каналами, потому что это ненормально, что USB, который может передавать звук, включен в материнская плата ПК у них обычно есть ЦАП внутри них. В любом случае, если у вас есть звуковая карта, возможно, что некоторые из ее портов USB имеют встроенный ЦАП.
Не только для компьютеров
Смартфоны и планшеты также поддерживают USB Audio Class через свои USB-порты, но именно через USB-C и тому подобное, USB Audio Class 2.0 достиг таких типов компьютеров. Делает возможным не только воспроизведение, но и запись нескольких одновременных каналов через этот тип входного и выходного порта.
Постепенно порт мини-джек исчезает в пользу использования портов USB и т.п. Это означает, что со временем все USB-порты на планшетах и смартфонах будут иметь встроенные ЦАП. Более того, из-за высокого спроса на порт USB типа C с ЦАП, возможно, что порт USB со встроенным аудио ЦАП также стандартизирован на ПК.
Звуковая карта ЮСБ: зачем она нужна в компьютере
Звуковая карта ЮСБ — является неотъемлемым компонентом ПК. Иметь компьютер без звуковой карты — это отстой. У большинства компьютеров и ноутбуков есть звуковые карты, и покупатели, по крайней мере, на это надеются. Но если ваш компьютер довольно старый или вы собираете его с нуля, то есть альтернатива установке обычной звуковой карты.
Что такое звуковая карта ЮСБ
Ответ — звуковая карта ЮСБ это устройство, которое вы просто подключаете к свободному USB-порту, и вы сразу получаете звук. В этой статье я объясню, как работает звуковая карта ЮСБ, и объясню основные преимущества и недостатки использования звуковой карты ЮСБ.
Я помогал другим людям устанавливать звуковые карты ЮСБ на свои компьютеры и ноутбуки, так что у меня есть некоторый опыт. Поэтому вы в этом убедитесь, прочитав эту статью, действительно, вам не о чем беспокоиться. Так что давай продолжим, ладно?
Как работает звуковая карта ЮСБ?
Как вы, возможно, уже знаете, компьютер использует “1’s” и “0’s”, известные как биты. Каждый файл на вашем компьютере представляет собой набор организованных, определенным образом битов. В аудио файлах, также используются биты, и звуковая карта ЮСБ преобразует их в звуки, которые мы можем слышать и понимать.
Звуковая карта ЮСБ выполняет цифро-аналоговое преобразование. Мы не можем слушать музыкальное произведение в цифровом формате. Мы можем слышать только аналоговые звуки. Таким образом, звуковая карта ЮСБ обрабатывает биты звука и преобразует их, чтобы мы могли слышать их через динамики или наушники.
Внутри звуковой карты ЮСБ есть усилитель. Когда происходит начальное цифро-аналоговое преобразование, аналоговые волны очень слабые и требуют усиления, чтобы они были слышны для нас. Таким образом, усилитель внутри звуковой карты ЮСБ подает питание на эти небольшие аналоговые волны, чтобы сделать их намного больше для вывода на динамики или наушники.
Звуковая карта ЮСБ также преобразует аналоговые сигналы в цифровые. Вы можете подключить микрофон к звуковой карте, а затем создать аудио файл своего голоса на компьютере. Компьютер не может работать с аналоговыми волнами, поэтому должен происходить процесс цифрового преобразования. Ваша звуковая карта ЮСБ делает все это возможным.
Цифро-аналоговые и аналого-цифровые преобразователи в звуковой USB-карте работают очень быстро, и нам кажется, что все это происходит в режиме реального времени. Эта технология используется и для других приложений, таких как телекоммуникации. Ваш мобильный телефон преобразует цифру в аналоговую и наоборот.
Настройка звуковой карты ЮСБ
Доступно несколько различных типов звуковых карт ЮСБ. В своей простейшей форме они представляют собой небольшую коробку с кабелем USB с двумя разъемами 3,5 мм для наушников и микрофона. Вы также можете приобрести звуковую карту USB, которая напоминает систему Hi-Fi с динамиками, графическим эквалайзером и многим другим.
Неважно, какая у вас звуковая карта ЮСБ, процесс настройки будет аналогичным. У большинства звуковых карт ЮСБ есть установочный диск, содержащий файлы драйверов, необходимые для правильной работы устройства. Запустите установочный диск перед тем, как вставить звуковую карту ЮСБ в свободный порт USB.
После того, как установочные файлы будут настроены, вы можете подключить звуковую карту ЮСБ. Если вы не получили установочный компакт-диск со звуковой картой ЮСБ, перейдите на веб-сайт производителя, найдите там последние установочные файлы и загрузите их. В Windows есть драйверы для звуковых карт, но не все.
Как только вы подключите звуковую карту ЮСБ, она сразу же заработает, если, конечно вы использовали правильные установочные файлы. Вы можете проверить, все ли в порядке, зайдя в панель управления и выбрав «Оборудование и звук». Перейдите в «Управление аудио устройствами» и проверьте, отображается ли ваша звуковая карта ЮСБ и включена ли она.
Преимущества звуковой карты ЮСБ
По сравнению с установкой и настройкой обычной звуковой карты на вашем компьютере, звуковые карты ЮСБ имеют следующие преимущества:
Легкая установка
Установить звуковую карту ЮСБ действительно просто. Вам не нужно снимать крышку с компьютера и вставлять как обычную карту в слот на материнской плате. Это всего лишь вопрос использования свободного USB-порта, установки правильных файлов драйверов и подключения устройства
Если вы не являетесь опытным компьютерным специалистом, то открыть свой компьютер для установки звуковой карты может быть непросто. Кроме того, существует вероятность статических ударов, которые могут серьезно повредить материнскую плату и другие компоненты.
Звуковые карты ЮСБ компактны и портативны
Большинство звуковых карт ЮСБ довольно маленькие, и их можно брать с собой куда угодно. Если у вас более одного компьютера без звуковой карты, вы можете использовать его на обеих этих машинах.
Вам нужно установить файлы драйвера только один раз. После этого ваш компьютер будет мгновенно распознавать звуковую карту ЮСБ каждый раз, когда вы ее подключаете.
Некоторые звуковые карты ЮСБ обеспечивают лучшее качество звука и часто их стоимость ниже.
Часто бывает, что современная звуковая карта ЮСБ создает лучший звук, чем обычная звуковая карта, которую необходимо установить в свой компьютер. К тому же они, как правило, значительно дешевле, чем традиционные звуковые карты.
Некоторые пользователи стремятся использовать звуковую карту ЮСБ для добавления объемного звука на свой ноутбук или компьютер, даже если у них уже есть звуковая карта. Это обусловлено тем, что установив ее, они могут получить лучшее качество звука от внешней звуковой карты ЮСБ.
Минимальные электрические помехи
Иногда внутренние звуковые карты страдают от электрических помех, вызываемыми другими компонентами компьютера. Такое влияние может, вероятно, оказать и звуковая карта ЮСБ.
Недостатки звуковой карты ЮСБ
Вы должны учитывать следующие недостатки звуковой карты ЮСБ по сравнению с обычной звуковой картой PCI-E:
Производительность и задержка
Звуковая карта PCI-E всегда будет обеспечивать более высокую производительность с меньшей задержкой, чем звуковая карта ЮСБ, поскольку она напрямую подключена к материнской плате компьютера.
Если на вашем компьютере запущены мощные аудио приложения, то лучшим вариантом может оказаться традиционная карта.
Карты USB могут быть дорогими
Если вы просто ищете обычную звуковую карту USB, то она вам обойдется значительно дешевле по сравнению с навороченной звуковухой. Но если вам нужно много дополнительных функций, вы можете в конечном итоге заплатить за звуковую карту ЮСБ больше, чем за звуковую карту PCI-E, которая имеет те же функции.
Вы постоянно используйте USB-порты
Если USB-порты на вашем компьютере очень важны, то постоянное использование одного из них для звука может быть не лучшей идеей
Вывод
Если вы хотите улучшить качество встроенного звука вашего компьютера, обязательно попробуйте звуковую карту ЮСБ. Простое такое устройство, может буквально изменить ваше впечатление от прослушивания.
Внешняя USB звуковая карта 7.1
Составное устройство USB на STM32. Часть 2: USB Audio Speaker
Во второй части публикации о составном устройстве USB я расскажу о том, как работает звуковое устройство USB, которое STM32CubeMX генерирует по умолчанию «из коробки», а также как подготовить проект и настроить параметры звукового устройства перед запуском генерации кода.
В первой части публикации были описаны предпосылки запуска проекта по разработке составного устройства USB и приведены общие сведения о назначении и составе устройства.
Ссылка на первую часть публикации:
Составное устройство USB на STM32. Часть 1: Предпосылки
Подготовка проекта
Проект был создан в STM32CubeIDE из шаблона для платы NUCLEO-F446ZE. Особенностью платы является наличие двух разъёмов USB, к одному из которых подключены встроенный в плату ST-Link V2.1 и виртуальный COM-порт с подключенным к нему UART3. Через этот разъём USB может также осуществляться электропитание платы.
К виртуальному COM-порту можно подключиться на скорости 115200 bps любой терминальной программой и использовать этот канал связи для приёма сообщений при отладке. Прерывание для UART3 по умолчанию отключено, его надо включить.
Пользовательское устройство USB Full Speed использует второй разъём USB. Для корректной работы порта USB в составе проекта опцию «Activate_VBUS» нужно отключить.
При настройке конфигурации порта была обнаружена интересная особенность: при включении опции «Low power» микроконтроллер терял связь с интерфейсом SWD. К счастью, встроенный в плату ST-Link поддерживает режим «Connect under reset», что позволяет выводить MCU из состояния «кирпича» без применения дополнительных аппаратных средств.
Создаём Audio Device Class
Приступим к созданию двухканального дуплексного звукового устройства USB, для чего переходим в раздел «Middleware» и выбираем IP «Audio Device Class». Задаём максимальное количество интерфейсов равное трём. Частоту дискретизации устанавливаем равной 48000 samples/s.
Сохраняем проект. Запускаем генерацию кода. Пытаемся разобраться, что получилось в результате.
Хочу отметить, что использование STM32CubeMX и библиотеки HAL позволяет прятать «под капот» большой объём кода. Для профессиональной разработки такой подход может быть и не приемлем, но для любительского проекта экономит много времени и сил.
Из всего проекта нас пока интересуют только файлы, расположенные в папках USB_DEVICE/App и Middlewares/ST/Class/AUDIO.
Для начала разберём, как в файле usb_device.c происходит процесс формирования и запуска устройства USB:
Сначала создаётся переменная hUsbDeviceFS. Тип USBD_HandleTypeDef объявлен в usbd_def.h.
Функция MX_USB_DEVICE_Init вызывается из main.c.
Вызовом функции USBD_Init задаются начальные значения переменной hUsbDeviceFS.
Вызовом функции USBD_RegisterClass в hUsbDeviceFS.pClass размещается указатель на созданную в usbd_audio.c переменную USBD_AUDIO, содержащую указатели на обработчики событий, относящихся к классу устройства. Тип USBD_ClassTypeDef объявлен в usbd_def.h.
Вызовом функции USBD_RegisterInterface в hUsbDeviceFS.pUserData размещается указатель на созданную в usbd_audio_if.c переменную USBD_AUDIO_fops_FS, содержащую указатели на обработчики событий, относящихся к пользовательскому интерфейсу устройства. Тип USBD_AUDIO_ItfTypeDef объявлен в usbd_audio.h.
Вызовом функции USBD_Start производится запуск устройства USB.
Читаем дескрипторы
Дескрипторы устройств USB являются своеобразными «техническими паспортами» или «руководствами по эксплуатации», из которых хост получает всю необходимую информацию о составе устройства USB и режимах его работы.
Что именно хост получает от сгенерированного в STM32CubeMX звукового устройства, можно узнать с помощью бесплатной утилиты Thesycon USB Descriptor Dumper.
Данные из листинга становятся более понятными, если обратиться к следующим документам:
Из раздела Device Descriptor мы видим, что устройство поддерживает USB 2.0, имеет единственную конфигурацию, и что класс, подкласс и протокол устройства определяются классом, подклассом и протоколом интерфейса.
Из раздела Configuration Descriptor мы видим, что длина дескриптора конфигурации класса устройства составляет 109 байт, что в устройство входят два интерфейса, что устройство «самозапитанное» (self-powered) и не может потреблять от шины USB ток более 100 мА.
Далее идёт описание интерфейса управления (Audio Control Interface, AC), из которого мы узнаём, что структура устройства выглядит так:
Подробней об этой структуре можно прочитать в [2] на стр.15, 19 – 26.
Для связи с хостом интерфейс управления использует конечную точку 0 (EP0).
Данные дескриптора интерфейса воспроизведения (Audio Streaming Interface, AS) описаны в [2] на стр.30 – 34. Сначала идёт описание интерфейса, затем – описание используемых им конечных точек.
У интерфейса воспроизведения есть два состояния:
Разбираем работу устройства
Файлы сгенерированного в STM32CubeMX драйвера звукового устройства USB расположены в папках Middlewares/ST/Class/AUDIO и USB_DEVICE.
Функции, с помощью которых драйвер звукового устройства взаимодействует со своим оконечным оборудованием (например ЦАП или кодеком), содержатся в файле usbd_audio_if.c.
Во время инициализации устройства функции AUDIO_Init_FS передаются значения частоты дискретизации в герцах и начального уровня громкости. Эти данные могут быть использованы для инициализации оконечного оборудования.
После первоначального заполнения циклического буфера звукового устройства драйвер формирует команду AUDIO_CMD_START и передаёт оконечному оборудованию указатель типа uint8_t* на начало буфера и число типа uint32_t, равное половине длины буфера в байтах.
В идеальном случае, когда скорость чтения данных оконечным устройством из буфера и скорость приёма данных по USB совпадают, было бы достаточно запустить оконечное оборудование на вывод данных с параметрами, переданными вместе с командой AUDIO_CMD_START, прямо из циклического буфера звукового устройства.
В реальном же мире потребуется синхронизация скорости потоков данных. В сгенерированном в STM32CubeMX звуковом устройстве это реализовано путём «подгонки» скорости вывода данных через оконечное оборудование под скорость приёма данных по USB.
Обратная связь организована через вызов оконечным оборудованием функции HalfTransfer_CallBack_FS после окончания чтения половины буфера, а затем вызов функции TransferComplete_CallBack_FS после полного окончания чтения буфера.
При запуске функции TransferComplete_CallBack_FS драйвер звукового устройства формирует команду AUDIO_CMD_PLAY и сравнивает скорости записи в буфер и чтения из буфера по положению указателей чтения и записи. Если расстояние между этими указателями меньше четверти размера буфера, оконечному оборудованию передаётся указатель типа uint8_t* на начало буфера, а также число типа uint32_t, равное уменьшенной на 4 половине длины буфера в байтах, если чтение происходит медленней записи, или увеличенной на 4 половине длины буфера в байтах, если чтение происходит быстрей.
Подобный метод синхронизации вносит искажения в сигнал, но они менее заметны на слух, чем искажения при записи в область буфера, из которой производится чтение.
От автора
В следующей части публикации мы:





