Асинхронный usb что это

Обновлено: 04.07.2024

И это не просто модное увлечение любителей цифрового звука, а действительно серьёзный способ получения достойного цифрового источника (даже и высококачественного, при определённых условиях) в виде связки компьютер+ЦАП.

Правда, некоторую неопределённость вносит вопрос: почему же производители музыкальных серверов/цифровых проигрывателей класса high-end устанавливают на свои изделия цифровые выходы S/PDIF (RCA, BNC, оптический) и AES/EBU (XLR), а не используют возможности популярного интерфейса USB? Постараемся прояснить ответ на этот вопрос.

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

Однако этот тип USB-соединения не мог обеспечить высокое качество звука, так как вызывал повышенный уровень джиттера. Кроме этого, преобразователи с USB-входом на базе микросхемы PCM270x, действующие в адаптивном режиме, могли работать с частотами дискретизации не выше 48 кГц и разрядностью до 16 бит, то есть могли обеспечить качество уровня компакт-диска, но не высокого разрешения.

После нескольких этапов развития технологии передачи цифрового звука через USB в 2004 году компанией Wavelength Audio (США) был выпущен первый ЦАП, использующий асинхронный тип передачи данных. Преобразователь и необходимое для его работы ПО под названием Streamlength были разработаны Гордоном Ранкиным (Gordon Rankin). С тех пор асинхронный тип работы USB-интерфейса утвердился как основной для передачи музыкального сигнала от компьютера к ЦАПу, а ПО Streamlength для асинхронного USB используется во многих высококачественных ЦАПах, в том числе таких компаний, как Ayre, Aesthetix, Grace Design, Berkeley Audio Design и др. В настоящее время большинство выпускаемых цифроаналоговых преобразователей, которые оснащены интерфейсом USB для соединения с компьютером, работают по такому принципу.

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

Интересно, что асинхронный USB был выполнен на основе микросхемы TAS1020B, которая выпускалась одновременно с упомянутой PCM270x. USB-контроллер TAS1020B представляет собой интегральную схему с USB-трансивером, микропроцессором, буфером памяти и интерфейсом I 2 S для подключения к микросхеме цифроаналогового конвертора. В качестве примера на рис. 1 представлена блок-схема ЦАПа на базе USB-контроллера TAS1020B.

Компьютер как муз. сервер

Furutech GT2 USB + ЦАП R2R11

Universal Serial Bus (USB) является очень популярным последовательным интерфейсом передачи данных, что компьютеры могут использовать для подключения к внешним устройствам.

ЦАП 4398+2706

ЦАП 4398+2706

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

Проще говоря, эту передачу данных можно представить следующим образом:

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

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

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

Supra USB 2.0

SB 2.0

USB и ЦАП


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

Синхронный, адаптивный и асинхронный режимы в ЦАП

Furutech GT2 USB + ЦАП R2R11

Furutech GT2 USB + ЦАП R2R11

Supra USB 2.0 A-B Blue цена

USB 2.0 A-B

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

Furutech GT2 USB + КРЕЛЛ силовой+ ортофон межблочные

подключение USB к ЦАП

Для того, чтобы вывести звук из компьютера в микроконтроллер, у современного распространенного компьютера есть четыре подходящих интерфейса: 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 кГц), работа с обратной связью улучшена

Обзор USB модуля от jLsounds - I2SoverUSB

Родина данного устройства вовсе не Китай, а бывший соратник по социалистическому лагерю- Болгария.
Устройство построено по типовой схеме, сердце которой, популярный ныне специализированный чип XMOS.

Привожу заявленные параметры :

  • XMOS 500 MIPS processor
  • Sampling frequencies: 44.1kHz, 48kHz, 88.2kHz, 96kHz, 176.4kHz, 192kHz, 352.8kHz and 384kHz
  • 16-, 24- and 32-bit resolution
  • DSD Audio over PCM frames. DSD64 (2.8224MHz and 3.0720MHz) and DSD128 (5.6448MHz and 6.1440MHz) by method DoP with 0x05/0xFA markers
  • DSD Native DSD64 (2.8224MHz and 3.0720MHz), DSD128 (5.6448MHz and 6.1440MHz) and DSD256 (11.2896MHz and 12.2880MHz) on Linux and MAC OS
  • DSD Native playback is available on firmware versions 3.06 and above
  • Directly supports PCM1704, PCM63, PCM61, PCM58, PCM56, AD1862, AD1865, AD1861, AD1860, AD1851 and other compatible with listed DACs
  • Galvanic isolation (outputs, two oscillators and reclock are after the isolator)
  • NDK NZ2520SD low jitter oscillators 45.158MHz and 49.152MHz
  • Input for external master clock
  • LP5900 ultra low noise linear power regulator
  • No switch mode power supplies in the PCB board
  • Output for DAC configuration in DSD mode
  • I2S, right-justified data or left-justified data (external pin configuration) in 32-bit (channel frame)
  • SPDIF output (through DA101C/DA102C transformer)
  • 44.1kHz, 48kHz, 88.2kHz, 96kHz, 176.4kHz, 192kHz (16-24 bits)
  • I2S, LJ, RJ and S/PDIF outputs work simultaneously up to 192kHz
  • Automatic detection of data type (PCM or DSD)
  • Master clock outputs: 45.1584/49.1520MHz and 22.5792/24.5760MHz (I2S2.5792/24.5760MHz are reclocked by edge from 45.1584/49.1520MHz)
  • Three different ways to power the board, possible configurations:
  • Power by USB bus
  • The USB part is powered by USB bus, but the generators and the reclock are fed by a separate external power supply -Both the USB part and the generators with the reclock are fed by two different external power supplies. -Dimensions: (LxWxH): 64.0 x 42.3 x 13.9 mm

Драйверы для выложены на сайте производителя.

Сам производитель вполне дружелюбен и общителен, я общался с ним по Skype причём по русски)

Все перечисленные характеристики типичны для данных устройств, кроме одной — работа в режиме NOS. Данная опция позволяет подключать к устройству напрямую чипы DAC, заявлена поддержка PCM1704, PCM63, PCM61, PCM58, PCM56, AD1862,AD1865, AD1861, AD1860, AD1851

При желании реализовать цифровую фильтрацию и (или) оверсэмплинг, можно на компьютере, чьи возможности гораздо шире, чем обычной микросхемы цифрового фильтра. Конфигурируемый выход данных выполнен очень удобно ( по крайней мере для меня)и позволяет установить необходимую плату DAC сверху «Этажеркой»

Заключение

Несколько лет назад я приобрёл несколько подобных устройств и выполнил на них ЦАП(ы), я использовал микросхемы AD1865K, PCM63K результат меня порадовал. Изделие выполнено на хорошем уровне и имеет не очень высокую стоимость 67 евро.

На момент написания появилась уже новая ревизия платы, с некоторыми усовершенствованиями.

Читайте также: