Асинхронный usb что это
Асинхронное USB аудио на STM32
Для того, чтобы вывести звук из компьютера в микроконтроллер, у современного распространенного компьютера есть четыре подходящих интерфейса: Ethernet, Bluetooth, USB и S/PDIF. В МК, три из них требует использования внешнего железа (S/P DIF вход напрямую стал поддерживаться начиная с STM32F446), а Ethernet, кроме того — еще и специального драйвера на стороне компьютера. Поэтому выбор пал на USB.
Архитектура шины USB предполагает, что все данные передаются пакетами. Пакеты объединяются в кадры. Кадры отделяются друг от друга специальными маркерами (это просто один из видов пакетов) — SOF, в котором передается 11-ти битный номер кадра и другая информация. Спецификация USB Audio class определяет, что для передачи звука используется изохронный тип передач. Это значит, что звуковой сигнал поступает пакетами с интервалом 1 миллисекунда. Поскольку Для синхронизации поступления данных от USB и вывода их в ЦАП стандарт определяет три типа синхронизации:
-синхронный, когда частота воспроизведения выделяется из частоты маркеров SOF;
-адаптивный, когда частота воспроизведения подстраивается на основе частоты маркеров SOF;
-асинхронный, когда устройство само генерирует частоту воспроизведения, а ее отношение к частоте маркеров SOF передает в специально выделенную конечную точку (explicit feedback endpoint).
Первые два алгоритма требует использования петли ФАПЧ, поскольку для работы сопременных ЦАПов с передискретизацией нужна опорная частота, так называемый мастерклок, кратный частоте дискретизации аудиосигнала. Третий алгоритм требует организации петли обратной связи. В процессорах STM32 существует аппаратная поддержка как для петли ФАПЧ (из внешних компонентов нужен фазовый детектор, ФНЧ и ГУН) — путем вывода сигнала SOF на вывод PA8 и деления мастерклока кодека таймером в 256 раз — так и для асинхронного режима: таймер 2 умеет измерять период сигналов SOF относительно своего источника тактирования. Используя в качестве источника тактирования таймера мастерклок кодека, напрямую измеряем отношение мастерклока к SOF, а, поскольку оно является кратным к частоте дискретизации, — то и требуемое стандартом Fs/Fsof.
Для этого таймер 2 настраиваем с внешним тактированием от сигнала ETR, сбросом от канала 1 и захватом канала 1. Сигнал SOF при этом аппаратно передается в процессоре от модуля USB в канал 1 таймера 2.
Чтобы рассказать хосту об используемом способе синхронизации, нужно изменить дескриптор интерфейса — это самая простая часть,
.
Кроме нее, потребуется изменить дескриптор конечной точки для приема аудиопотока (меняем тип синхронизации и адрес конечной точки синхронизации) и дописать дескриптор конечной точки синхронизации
Поскольку в асинхронном USB аудио синхронизация идет с помощью изменения длины пакета данных в кадре, код приема данных в кольцевой буфер должен учитывать длину принятого пакета.
Дальше — сплошные грабли. В виде неотключаемого фильтра четности фрейма на конечных точках.
Обработчик маркера SOF обновляет данные для конечной точки синхронизации
Если данные успешно отправлены — все повторяется
В обработчике прерываний от DMA аудиокодека обновляем положение указателя буфера чтения
В архиве USB_STM32F4 версия с подключением внешнего генератора (на PC7, PC9, PA15 — осциллятор 12,288 МГц), USB_STM32F4_int_osc.zip — с PLLI2S в качестве источника тактирования, требуется только перемычка PC7-PA15
UPD: Обновил вложение с USB_STM32F4_int_osc.zip, была небольшая ошибка, из-за которой звук не включался
В заключение, выражаю свою благодарность автору проекта audio-widget Børge Strand-Bergesen и Dr. Tsuneo Chinzei.
UPD:Обновил вложение (768khz.zip), теперь там еще и стереокодер для ФМ-вещательного сигнала (вывод PA5) и исправлен хруст в звуке в кодеке. Схема подключения DDS AD9951 и микроконтроллера в архиве.
UPD2:Добавил возможность выбора нескольких частот дискретизации и разрешения (16 бит — до 192 кГц,24 бит — до 96 кГц), работа с обратной связью улучшена
14. Использование USB ЦАП с ПК
НОВЫЙ УРОВЕНЬ ЦИФРОВОГО ЗВУКА
Руководство по использованию ЦАП (USB-B) с персональным компьютером.
Содержание:
ВВЕДЕНИЕ
Как известно, в последние годы изменился способ прослушивания музыки. Наблюдается переход от использования физических носителей данных к сетевым источникам, что позволяет получить доступ к неограниченному цифровому развлекательному контенту через Интернет или в библиотеке, хранящейся на компьютере. Это может быть iTunes, проигрыватель Windows Media, потоковая музыка или просмотр YouTube и так далее. Компьютер – это центральный элемент всех этих развлечений. Компьютер является простым проигрывателем и в стандартной настройке его качество среднее или даже ниже. Но, есть способ поднять его на совершенно новый уровень, сделав компьютер хорошим проигрывателем, предоставив ответственность за звук внешнему компоненту, например, цифро-аналоговому преобразователю с USB портом (далее ЦАП или ЦАП USB). Таким образом, мы не только сможем наслаждаться упомянутым выше стандартным аудио, но и получить доступ к звуку высокого разрешения, превышая качество компакт-диска 16 бит/44,1 кГц. Можно наслаждаться студийным качеством в виде записей 24 бит/192 кГц или даже DSD формата SACD с битовым потоком частотой 2,8 МГц, 5,6 МГц и даже 11,2 МГц. Однако для достижения вышеизложенного требуется определенное оборудование, которое необходимо настроить и отрегулировать. Эта статья поможет вам в этом. Здесь представлена вся необходимая информация. Основные положения:
Но сначала давайте рассмотрим различные способы доступа к музыке, чтобы лучше понять и уточнить некоторую терминологию. Когда вы ознакомитесь с этим документом, у вас будет вся необходимая информация для получения наилучшего качества воспроизведения вашей музыки, хранящейся на компьютере, с помощью ЦАП USB.
ЦИФРОВЫЕ СОЕДИНЕНИЯ
Вы можете обнаружить на Hi-Fi компонентах два разных типа USB-интерфейса.
Первый из них USB-A удобно расположен на передней панели, чтобы можно было подключить USB-карту, смартфон или портативный жесткий диск. Это синхронное подключение, оно является простейшим способом реализации USB-аудио с портативных устройств. Внимание, это соединение поддерживается не всеми ЦАП USB.
На фото ниже, CD-проигрыватель с подключением USB-A на передней панели.
Это порт USB-A:
Второй порт USB-B на задней панели предназначен для прямого подключения ПК или Mac, поддерживает не только сигналы PCM до 384 кГц/32 бит, но также DSD 2,8MHz, 5,6 МГц и 11,2 МГц.
Это порт USB-B:
Именно об этом варианте подключения мы подробнее расскажем в этой статье.
Использование порта USB-B позволит обойти аудиокарту компьютера (звуковую карту) для прямого доступа к высококачественной обработке звука на внешнем USB-ЦАПе. Есть и другие технологии, такие как “асинхронный режим” (asynchronous mode) и “прозрачный по битам режим” (bit-transparent mode), но это будет объяснено несколько позже, когда мы будем объяснять, как использовать это подключение и как получить лучшее качество звука. Другим преимуществом компьютера для подключения к ЦАП является отсутствие ограничений формата файлов, так как все, что воспроизводится на медиаплеере ПК/Mac, будет воспроизводиться с помощью USB-ЦАП, если это стерео-сигнал в PCM или DSD.
Чтобы завершить список цифровых входов, мы должны упомянуть здесь оптический и коаксиальный цифровые интерфейсы. Благодаря этому USB-ЦАП может использоваться как высокопроизводительный ЦАП для других устройств с данным типом цифрового выхода, например, Apple TВ/ТВ-приставки, мультимедийные аудио плееры Denon Heos Link, Yamaha MusicCast WXC-50 или другое устройство, чтобы значительно увеличить их качество звукания. На приведенном ниже рисунке вы можете увидеть эти входы вместе с входом USB-B:
Вход USB-B и другие цифровые входы вы можете увидеть также на многих современных активных акустических системах:
ВОЗМОЖНОСТИ СОЕДИНЕНИЯ USB-B
High-End режим ЦАП через порт USB-B.
Во-первых, этот порт использует самые современные технологии для получения наилучшего звука ваших аудиофайлов. Нет никаких ограничений для аудио ЦАП, так как он обрабатывает 2-канальные сигналы PCM и DSD, предоставляемые ПК/Mac. Можно наслаждаться воспроизведением любого файла, хранящегося на вашем компьютере, который может воспроизводиться медиаплеером на компьютере. Сигнал будет выводиться через соединение USB-A на компьютере и отправляться на порт USB-B на ЦАП.
Краткий обзор возможностей порта USB-B:
Он также сможет обойти аудиомикшер на вашем компьютере, который является источником искажения. Микшер представляет собой DSP ПК, где все звуки любого программного обеспечения будут смешиваться вместе и отправляться на колонки, но для достижения этого смешивания DSP должен преобразовывать все различные форматы, поступающие от другого программного обеспечения. Это значительно изменит аудиофайл и снизит качество звука. При обходе звукового микшера исходный звуковой файл будет выводиться как идеальный (bit perfect) – не произойдет никаких изменений оригинального сигнала.
Асинхронный режим позволяет контролировать временные параметры передачи звуковых данных на приемник (USB-ЦАП), что сводит к минимуму джиттер (колебание цифрового сигнала) и дает возможность получить максимальное качество воспроизведения.
USB-B порт совместим со всеми форматами файлов, включая DSD с помощью DoP, всеми форматами, которые может прочитать ваш компьютерный медиа плейер. Но также это зависит от характеристик ЦАП.
Рассмотрим этот процесс более детально:
НАСТРОЙКА ДЛЯ ПК И MAC
Выше была приведена информация для понимания ПК-звука, сейчас мы можем показать вам на примере медиаплееров jRiver Media Center для ПК и Audirvana для Mac, как достичь наилучшего качества звука.
Настройка JRIVER MEDIA CENTER на ПК.
Необходимо выполнить следующие шаги:
ПРИМЕЧАНИЕ: Скриншоты на компьютере могут выглядеть по-разному в зависимости от версии программного обеспечения. Однако программа установки будет аналогична описанной здесь. На следующих страницах показаны скриншоты jRiver 20.
jRiver также доступен для Mac.
Настройка AUDIRVANA на MAC.
ПРИМЕЧАНИЕ: Скриншоты на вашем Mac могут выглядеть по-разному в зависимости от версии программного обеспечения. Однако настройки будут аналогичны описанным здесь.
Настройка Audirvana.
Откройте ваш музыкальный плеер Audirvana и Выберите Audirvana Plus и предпочтения.
Выберите аудиосистему, затем выберите «Предпочтительное аудиоустройство», нажмите «Изменить».
Выберите USB High Speed Audio, это ЦАП USB или название вашего ЦАП. Это будет отображаться только в том случае, если ЦАП USB подключен, а вход настроен на вход USB-B.
При выборе исходного кода DSD выберите автоматическое обнаружение. Это позволит использовать функции DoP, если ЦАП совместим. В случае, если это не работает, выберите DSD через PCM Standard 1.0
Теперь, пожалуйста, проверьте, что выбран режим эксклюзивного доступа, это режим hog mode, который дает приоритет плееру и позволяет избежать смешанных звуков. В красной части выберите режим эксклюзивного доступа; Прямой режим (Direct) и чистый (Integer) режим. Также проверьте читсый (Integer) режим, на один шаг выше, чтобы обойти микшер UNIX от OSX.
Теперь давайте посмотрим на этот скриншот для окончательной проверки: Вверху выбрано USB High Speed Audio.
Активное звуковое устройство находится на USB High Speed Audio plus. Встроенный DSD через PCM (DoP) активируется при автоматическом обнаружении (но если это не работает, как указано выше, выберите DSD через PCM standard 1.0) и, как вы можете видеть, все форматы, которые могут быть потоковыми, теперь отображаются зеленым цветом. Таким образом, у нас активирован режим эксклюзивного доступа (режим hog mode) и чистый режим (Integer).
Для пользователей iTunes
Плеер Audirvana может быть интегрирован в iTunes, чтобы обеспечить идеальное воспроизведение, для этого при активном применении Audirvana выберите “Предпочтения” на вкладке “Audirvana Plus” и включите опцию “Интегрированный режим iTunes”.
Теперь все готово, чтобы наслаждаться аудио файлами высокого класса. Получайте наслаждение.
СОВЕТЫ И РЕКОМЕНДАЦИИ ДЛЯ ПОЛУЧЕНИЯ ЛУЧШЕГО КАЧЕСТВА ВАШЕГО USB ЦАП
ON LINE-ПОРТАЛЫ ДЛЯ СКАЧИВАНИЯ МУЗЫКИ
Вот список лишь некоторых интересных порталов для аудио высокого разрешения. Есть и другие и их количество растет.
РЕЖИМЫ ПЕРЕДАЧИ ЗВУКА
Здесь подробно разъясняются режимы передачи звука:
Windows Direct Sound: прямой звук. Это стандартный режим воспроизведения на ПК с ОС Windows.
Он идет через микшер ядра, который выступает в качестве интерфейса ядра ОС между различными источниками звука на ПК (звук ПК, MIDI, проигрыватели и т.д.) и драйвером звуковой карты. Различные источники могут создавать звуки с различными частотами дискретизации; микшер ядра переконфигурирует различные звуковые потоки на уникальную частоту дискретизации и позволит смешивать их перед отправкой на звуковую карту. Но это смешивание будет на низкой частоте (стандарт 44,1 кГц). Кроме того, микшер добавит некоторую обработку (динамическое сжатие, управление тональностью, регулировка громкости и т. д.), поэтому это приведет к низкому качеству звука. По этой причине для лучшего качества звука нам следует избегать режима прямого звука. Этот режим не идеальный.
Обзор асинхронного USB интерфейса WaveIO
Модуль WaveIO специально предназначен для асинхронной передачи потокового аудио между компьютером, снабженным портом USB и практически любым ЦАП, с I2S или SPDIF интерфейсом. Модуль поддерживает частоту дискретизации вплоть до 384 кГц. Для Windows доступны проприетарные драйвера, с поддержкой ASIO для получения максимального качества звука.
На плате установлены качественные японские тактовые генераторы (NDK oscillator NZ2520SD). Предусмотрена возможность питания WaveIO, как с USB порта, так и помощью 5в внешнего блока питания.
Основные характеристики модуля:
Для индикации предусмотрен разъем J9.
Частоты дискретизации 352.8 / 384 кГц и поддержка dsd были добавлены позже, поэтому для их индикации были задействованы сразу на 2 пина. На мой взгляд удобнее было бы оптимизировать индикацию под использование дешифратора.
Сейчас с последней прошивкой, c поддержкой dsd, индикация выглядит так:
Итого для определения режима DSD для WaveIO получается следующая логика:
На мой взгляд это крайне неудобно, лучше было бы вывести на J9 отдельный пин — DSD.ON (это важнее для конфигурации ЦАПов, чем сама индикация режимов), как это сделано у amanero и других популярных транспортах.
Сам же модуль выполнен очень качественно, работает стабильно (в отличие от китайских поделок), поэтому будет хорошим выбором для тех, кому нужен качественный транспорт для ЦАПа.
Тема: Asynchronous USB
Опции темы
А можно ли вообще вывести звук из компа на внешний DAC по SPDIF или USB, чтобы слушать без слёз
Я вообще теоретик, ничего сложнее чем перевести аппарат с 110 на 220 своими руками не делал.
Пытался понять, есть ли решение проблемы.
Понял, что вариантов вообще немного: USB, Firewire, SPDIF и Ethernet/Wi-Fi.
Долгое время не мог понять, откуда вообще проблемы с выводом цифры, ведь все 0 и 1 доходят до места назначения без вопросов. Все беды от того, что сигнал, который передается из компьютера в DAC состоит из двух компонентов — данные (0 и 1) и clock.
Подробно тут — http://en.wikipedia.org/wiki/Biphase_mark_code
Плохие clock в компьютере неизбежны, качество блоков питания в компе посредственное.
SPDIF
Ровно поэтому качество SPDIF Toslink фиговенькое:
streamed output from Mac Book Toslink 1607ps S/PDIF
streamed output from Apple Airport express Toslink 2418ps
Более-менее хорошее — это
Synchronous: in this mode the readout clock is directly derrived from the 1KHz frame rate. There is a PLL that takes in the start of frame signal and genrates a clock. Using this scheme its rather difficult to generate 44.1, but very easy to generate 48KHz. This is a primary reason why many early USB audio devices only supports 48KHz, they used this mode. As you can guess this mode is very susceptible to jitter on the bus, pretty much anything that causes the output from the host to be jittered (PS noise, vibrations, interference etc) AND things that can cause jitter on the interconnect (interference, reflections, ground noise etc) will wind up with jitter on the readout clock.
Adaptive: in this mode the clock comes from a separate clock generator (usually implemented as a PLL referenced by a crystal oscillator) that can have its frequency adjusted in small increments over a wide range.
Значит clock тоже в руках USB-чипсета, не стоит ждать выдающихся результатов.
А если посмотреть результаты замеров джитера для разных USB-чипсетов, то вообще хочется купить себе CD-транспорт.
Asynchronous: in this mode an external clock is used to clock the data out of the buffer and a feedback stream is setup to tell the host how fast to send the data. A control circuit monitors the status of the buffer and tells the host to speed up if the buffer is getting too empty or slow daown if its getting too full. Note this is still isochronous, the host is continuousley sending samples, there is no «per packet handshake» going on. Since the readout clock is not dependant on anything going on with the bus, it can be fed directly from a low jitter oscillator, no PLL need apply.
Асинхронный режим выглядит как решение всех проблем. Трудность в том, что почти не USB-чипсетов, которые бы без затрат реализовывали это решения.
Gordon Rankin из Wavelength написал firmware для USB-чипсета TAS1020B.
Измеренный им уровень джитера Async USB module TAS1020 — 78.2ps. Поразительно.
Код firmware для USB-чипсета TAS1020B лицензировала Ayre и выпустила свой DAC — Ayre QB-9 (очень понятный whitepaper http://www.ayre.com/pdf/Ayre_USB_DAC_White_Paper.pdf)
Можно ли у нас такое сделать? Я бы точно купил асинхронный USB-конвертор с хорошим питанием клока и выходом SPDIF RCA.
Hi-Fi и High-End техника или энциклопедия звука и видео
ЗВУКОМАНИЯ
Hi-Fi и High-End техника или энциклопедия звука и видео
USB для ЦАП
USB для ЦАП
Furutech GT2 USB + ЦАП R2R11
Universal Serial Bus (USB) является очень популярным последовательным интерфейсом передачи данных, что компьютеры могут использовать для подключения к внешним устройствам.
USB для ЦАП
Одна из областей применения многих — и та, которая нас здесь интересует — это передача аудиоданных с компьютера на соответствующим образом оборудованный цифро-аналоговый преобразователь внешний ЦАП.
Левчук Александр Николаевич©
Проще говоря, эту передачу данных можно представить следующим образом:
USB аудиоданные считываются с жесткого диска и временно сохраняются в основной памяти компьютера. Оттуда каждую миллисекунду поступает на выход USB, где пакет данных, так называемый «кадр», отправляется на микросхему приемника в цифро-аналоговом преобразователе.
Furutech GT2 USB подключение
Таким образом, скорость, с которой пакеты данных отправляются через USB-кабель, составляет 1 кГц — часы, управляющие этим, находятся в компьютере. Это приводит к (в принципе) постоянному току 1000 кадров в секунду в направлении цифро-аналогового преобразователя. Конечно, эти часы также могут дрожать, то есть немного колебаться во времени.
SB 2.0
USB и ЦАП
Однако следует отметить, что «уровень заполнения» кадров (пакетов данных) не обязательно должен быть постоянным: кадры всегда отправляются, независимо от того, пусты они, полны или наполовину полны — и «уровень заполнения данных» также измеряется, среди прочего, тем, не занят ли ЦП компьютера (отправляющего данные) задачами и программами, которым отдается более высокий приоритет, чем постоянное заполнение кадров данными. Постоянная частота кадров не обязательно идет рука об руку с постоянной скоростью передачи данных (данные в единицу времени).
Сторона USB-приемника (то есть ЦАП) имеет буфер для входящих данных, и чтобы гарантировать, что он не будет ни полным, ни пустым, компьютер должен быть синхронизирован с USB-приемником в цифро-аналоговом преобразователе. Для этой задачи используется так называемый изохронный режим передачи (также есть режимы прерывания, группового и управления). Изохронный режим имеет три подгруппы: одна говорит о синхронной, адаптивной или асинхронной передаче данных.
Синхронный, адаптивный и асинхронный режимы в ЦАП
Синхронный режим больше не играет главную роль в текущих преобразователей D / A, часы в ЦАП бежат в зависимости от частоты кадров 1 кГц в USB — шине данных отправки, максимальная выборка частоты 48 кГц, слово ширина 16 биты.
Furutech GT2 USB + ЦАП R2R11
Адаптивный режим, с другой стороны, это очень распространенный тип передачи данных: На стороне ЦАП, своего рода восстановление тактовой здесь происходит с использованием системы фазовой автоподстройки частоты (PLL), который зависит от среднего количества поступающих данных в единицу времени (то есть скорость передачи данных, а не непосредственно частоту кадров) восстанавливает исходную частоту дискретизации аудиоданных. Это делается в ответ на настройки компьютера и его часов, которые, конечно же, не были обрезаны для обеспечения максимальной точности потока данных. В адаптивном режиме компьютер является ведущим, а ЦАП — ведомым.
USB 2.0 A-B
Однако в асинхронном режиме восстановление тактовой частоты, выполняемое контуром управления ФАПЧ, но не зависящее от главных часов компьютера в цифро-аналоговом преобразователе, определяет время, в которое синхронизация независимо от недостатков компьютера и от шины USB вызывает джиттер.
Отношения ведущий / ведомый изменяются на обратное: теперь часы в цифро-аналоговом преобразователе (внешний ЦАП) работают, и через аудиоконтроллер USB устанавливается контур обратной связи, который гарантирует, что компьютер имеет буфер на входе USB в правильном измерении, т.е. не позволять ему работать пустым или полным.
подключение USB к ЦАП