как подключить компьютер к цап

Содержание
  1. Компьютер для Hi-Fi, часть 2: что нужно иметь для качественного воспроизведения звука?
  2. USB-ЦАП: как получить Hi-Fi звук на ПК, не покупая аудиокарту
  3. Немного о функции USB-ЦАП
  4. Опыт использования плеера FiiO как внешней аудиокарты
  5. Выводы
  6. Организовываем взаимодействие между ПК и ЦАП/АЦП при помощи ПЛИС
  7. Предисловие
  8. Небольшой ликбез на тему интерфейсов
  9. Дисклеймер
  10. Общая информация
  11. По способу соединения
  12. По способу передачи информации
  13. По режиму передачи
  14. По принципу обмена информацией
  15. О каких интерфейсах пойдет речь?
  16. Что это за ЦАП?
  17. Что говорит производитель?
  18. Рекомендованная схема управления
  19. Немного об HSC-ADC-EVALC
  20. Собственная модель взаимодействия
  21. Причина использования промежуточного устройства
  22. Почему ПЛИС – это круто?
  23. Процесс проектирования
  24. Ничего не предвещало беды.
  25. Выход есть!
  26. Разработка ПО
  27. Общая информация
  28. Основной функционал программы
  29. Передача данных по UART
  30. Пользовательский интерфейс
  31. Разработка проекта для ПЛИС
  32. Общая информация
  33. Контроллер UART
  34. Описание
  35. Генератор импульсов
  36. Модуль чтения
  37. Модуль передачи
  38. Контроллер SPI
  39. Важное отступление
  40. Общая схема контроллера
  41. Модуль последовательной записи
  42. Модуль битового счетчика
  43. Модуль анализа ошибок
  44. Заключение

Компьютер для Hi-Fi, часть 2: что нужно иметь для качественного воспроизведения звука?

Сохранить и прочитать потом —

Это продолжение. Начало читайте в предыдущей части.

Внешний цифро-аналоговый преобразователь (DAC, Digital-to-Analog Converter), подключенный по цифровому входу, позволяет решить проблему низкого качества звука встроенного в материнскую плату решения. Подключение ЦАПа позволяет «обойти» электронику компьютера, отвечающую за преобразование и обработку музыкального сигнала. И лучшим вариантом будет USB-подключение, чтобы полностью исключить использование штатной звуковой платы.

atoll dac 100se1

В нашем ассортименте вы можете найти большое количество внешних цифро-аналоговых преобразователей: к примеру, модель Atoll DAC 100SE предлагает 3 коаксиальных, 3 оптических входа и USB-порт, которые позволяют подключить несколько источников звука. USB поддерживает режимы вплоть до 24 бит/96 кГц.

atoll dac 100se 4488670049 3

Более бюджетным вариантом могут быть, например, ЦАПы Pro-Ject DAC Box TV или Cambridge Audio DacMagic 100: у них тоже есть необходимый оптический вход, который вы можете подключить к компьютеру, а у модели от Cambridge Audio найдется еще и USB-вход, поддерживающий асинхронную передачу цифрового потока вплоть до 24 бит/192 кГц.

cambridge audio dacmagic 100 1

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

adl by furutech formula 2 mb 5870837498 4

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

Аудиоинтерфейс (звуковая карта)

Этим универсальным термином называются как внешние, так и внутренние решения по вводу-выводу и обработке звука. Звуковые карты, в отличие от ЦАПов, больше ориентированы не только на прослушивание музыки, но и на ее создание, не говоря уже про более широкий спектр применения и мультимедийные функции (игры, кино голосовая телефония и т.д.). Какие же бывают звуковые карты сегодня по типам подключений и обработки звука?

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

41kfUC hyuL

Как правило, мультимедийная звуковая карта предлагает от пяти до семи выходов с разъемами 3.5” mini-Jack, в которые подключаются микрофон и динамики, также есть и линейный вход. Еще один минус мультимедийных звуковых карт – в них часто используются программные или аппаратные (часто неотключаемые) «улучшители» звука (или «улучшайзеры», как их еще называют), которые делают и без того не самый лучший звук еще хуже.

У более качественных решений на борту находятся коаксиальные и оптические входы и выходы, а «потребительский» мини-джек не используется даже для выхода на наушники. В отличие от ЦАПов, профессиональные внешние аудиоинтерфейсы могут предложить не только несколько входов/выходов (в том числе линейный, XLR и для микрофона), но и дополнительные аппаратные средства регулировки их параметров, включая и выхода на наушники (например, интерфейс Lexicon IO22).

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

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

Что же касается оптического соединения, то в отличие от «традиционного», оно не подвержено наводкам (потому что их просто нет), в отличие от соединения по обычным проводам. Но поскольку далеко не вся акустика (и то в основном профессиональная – например, студийные мониторы) и не каждый аудиоинтерфейс имеет оптические входы и выходы, данный способ связи можно рассматривать скорее как приятный бонус.

Кстати, внешние решения обычно считаются еще и мобильными – но никто не запрещает использовать их в стационарном ПК, и это даже приветствуется.

Помимо подключения, внешние и внутренние звуковые карты различаются количеством и типом входов и выходов: это могут быть пара RCA-входов и выходов, дополнительные входы для микрофона (с фантомным питанием, усилителем и без них), инструментальные входы и цифровые. Варианты для начинающих предлагаются с одной парой входов и выходов – как, например, в модели PreSonus AudioBox USB, которая поддерживает параметры до 24 бит/48кГц.

Если же вам интересно более высокое качество звука и большее количество входов, имеет смысл обратить внимание на звуковую карту TASCAM US-1200 с поддержкой шести аналоговых входов, разрядности 24 бит и максимальной частоты дискретизации ЦАП в 96 кГц.

tascam us 1200 1

Профессиональные студийные внутренние звуковые карты также представлены в нашем каталоге: это решения компании RME, известного производителя подобного оборудования, предназначенного для студий. Карты RME сделаны для использования с внешним I/O-интерфейсом, поэтому для мультимедийных целей не подойдут.

rme fireface

Напоследок хотим вас предостеречь от покупки очень старых звуковых интерфейсов, как внешних, так и внутренних (возрастом 10 лет и больше). Это сопряжено как с риском прекращения поддержки данного продукта производителем и выпуска новых драйверов под новые ОС, так и с не вполне комфортным их использованием с учетом повышенных требований пользователей сегодня. К примеру, некоторые из них допускают использование себя только в одном приложении одномоментно – что нельзя назвать удобным.

Усилители с USB-портом

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

atoll in 400 black2

Из таких моделей можно выделить, например, Atoll IN 400: стереоусилитель для по-настоящему мощной напольной акустики. Помимо отличных собственных характеристик, он без проблем послужит в качестве полноценного USB-интерфейса для ПК без необходимости использования отдельного внешнего решения. Более скромный вариант – стереоусилитель Denon PMA-50. Кроме USB-порта, данная модель предлагает подключение по беспроводному каналу Bluetooth с поддержкой кодека aptX Low Latency, что позволяет передавать аудиоданные с минимальной задержкой, а звук с источника (компьютера, планшета, смартфона и т.д.) можно транслировать со скоростью до 352 КБ/с.

denon pma 50 3

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

Источник

USB-ЦАП: как получить Hi-Fi звук на ПК, не покупая аудиокарту

Если вы любите слушать музыку в высоком качестве, то наверняка знакомы с форматами «без потерь», или lossless (FLAC, WAV и другие). Они дают существенную разницу в сравнении с MP3: широкий динамический диапазон и отсутствие потерь на ВЧ благодаря меньшей компрессии. Однако их вес ограничивает перенос музыки на карту памяти, поэтому приходится хранить медиатеку на ПК. Можно ли слушать музыку напрямую с компьютера, не тратясь при этом на аудиокарту ради качественного звука? Решение такого вопроса простое — достаточно использовать Hi-Fi плеер с функцией USB-ЦАП.

Немного о функции USB-ЦАП

Большинство компьютеров и ноутбуков имеют встроенные в материнскую плату аудиокодеки, не способные выдать качественный звук. Однако эту проблему получится обойти, подключив к ПК внешний ЦАП и поручив ему обработку звукового сигнала.

Многие плееры могут работать как внешняя аудиокарта, принимая цифровой сигнал с внешнего устройства и преобразовывая его в аналоговый. Для этого им нужен специальный контроллер на входе USB, который перекидывает поступающий сигнал на ЦАП. В устройствах FiiO эта роль возложена на чип компании XMOS, позволяющий передавать аудиопоток вплоть до 24 бит/44 кГц, что является Hi-Res качеством.

pK6ptz1kL7LsmLz0ZH6J8oz0oRHGQhHMB

Чтобы задействовать его функционал, необходимо выбрать на плеере режим ЦАП при подключении по USB, установить на компьютер пакет драйверов и программу FiiO Control Panel. Она распознаёт подключённые устройства и даёт возможность настроить передачу цифрового сигнала в обход микшеров и настроек Windows.

pK6pwez2ap8NwvroZ6jsIz2IDkmdwR

В настройках драйвера USB Audio на ПК есть два пункта: USB Streaming Mode (управление задержкой звука) и ASIO Buffer Size (разрядность буфера). Лучше оставить значения по умолчанию, так как эти параметры взаимосвязаны и настраиваются с оглядкой на производительность системы.

pK6ppt9JdAIpknO2rp5CCikuNRSa

Установка необходимого софта производится один раз и занимает несколько минут. После этого не придётся ничего настраивать, достаточно подключить плеер по USB и пользоваться им как внешней звуковой картой. Такое решение позволяет использовать с ПК качественные колонки и наушники, которые он бы не потянул со встроенным звуком.

Опыт использования плеера FiiO как внешней аудиокарты

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

pK6ptosfXgsG5rtpJIhaQkDsCiyLyA

Во время тестирования мы использовали флагманский плеер FiiO X7-II, который подключался к ПК в режиме USB-ЦАП. Прирост в качестве относительно встроенного в материнскую плату кодека трудно не заметить — и он тем больше, чем лучше используемые наушники.

В полноразмерных Fostex T50RP звук приобретает мощь, размах и отличный контроль. Бас уходит «вглубь», становится более динамичным и оформленным. Эмоции на средних частотах наконец передаются в полном объёме — голоса вокалистов становятся глубже и обогащаются тембрами. Благодаря отличной проработке планов и широкой стереопанораме инструменты больше не теснятся в одной точке, а чётко локализованы в пространстве. Кстати, достоверная передача голосов и объёма работают на атмосферу в фильмах и сериалах, способствуя эффекту погружения. Высокие частоты тоже демонстрируют качественный рост, вырвавшись из-за вуали шума и искажений, которыми их сдабривает встроенная звуковая карта.

pK6ptcUjBhL62vf0jHjBoAtVB0okMh

Однако по-настоящему оценить разницу удалось в качественных арматурных наушниках Audio-Technica ATH-IM02. Из-за высокой чувствительности и повышенных требований к выходным характеристикам источника их невозможно слушать с большинством ПК с недорогими материнскими платами и встроенными в них кодеками — фоновый шум по уровню практически равен звуковому сигналу. При подключении FiiO X7-II как USB-ЦАП эти внутриканальные наушники реализуют весь свой потенциал, выдавая невероятно скоростное, очерченное и детальное звучание. Их способности пригодятся, если ваш жёсткий диск забит композициями в формате FLAC, однако прирост ощутим даже при просмотре YouTube и прослушивании онлайн-музыки.

Для чистоты эксперимента в тестировании также поучаствовал MacBook Pro 2015 с неплохим встроенным звуком. Разница при использовании с ним плеера уже не настолько ошеломительная, но по-прежнему бросающаяся в глаза — всё же ноутбук не позиционируется как качественное аудиоустройство. И если с запасом мощности у него дела обстоят неплохо, то проработка краёв частотного диапазона у FiiO X7-II заметно лучше. Кстати, при таком использовании плеер одновременно заряжается по USB. Это не имеет значения на стационарном компьютере, работающем от сети, однако при подключении к ноутбуку стоит внимательнее следить за состоянием аккумулятора.

Выводы

Функцию USB-ЦАП поддерживают все новые плееры FiiO, начиная с бюджетного X1-II. Каждый из них позволяет улучшить звук среднестатистического ПК, при этом качественный отрыв будет увеличиваться от модели к модели. FiiO X3-III звучит лучше, чем кодеки в дорогих материнских платах, а FiiO X5-III и X7-II вполне могут заменить даже профессиональную аудиокарту.

pK6pmm5DKqHLn10z1pyTmgJkuNRyq

Hi-Fi плееры с функцией USB-ЦАП — универсальное аудиорешение, с которым можно получить хороший звук дома, на улице и в офисе от любого компьютера или ноутбука.

Источник

Организовываем взаимодействие между ПК и ЦАП/АЦП при помощи ПЛИС

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

Однако использование или отладка ЦАП/АЦП могут быть затруднены поставленными производителем аппаратуры ограничениями, например, на используемое ПО или на способы управления устройством. Это наводит на мысль о проектировании собственной модели взаимодействия.

В этой статье мы рассмотрим возможность организации взаимодействия между ПК и ЦАП/АЦП при помощи ПЛИС.

fknrk3dh lzetqng6rmbke0fgls

Предисловие

Основной целью данной статьи является описание решения конкретной задачи, а так же знакомство с интерфейсами взаимодействия интегральных микросхем (ИМС). Внимание основному предназначению ЦАП/АЦП здесь не отводится.

Статья требует некоторых знаний в объектно-ориентированном программировании и схемотехнике, так что если вы не знакомы с этими понятиями, рекомендуется начать с них.

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

Всем удачи и новых свершений!

Небольшой ликбез на тему интерфейсов

Дисклеймер

Если вы знакомы с устройством основных интерфейсов, использующихся для коммуникации ИМС, вы можете спокойно пропустить этот пункт.

Общая информация

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

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

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

С целью не вдаваться в подробное перечисление классификаций, далее рассмотрены самые необходимые в дальнейшем понимании аспекты интерфейсов.

По способу соединения

С точки зрения способа соединения устройств (то бишь топологии сети), описанные в этой статье интерфейсы могут быть организованы в соединения:

xw

Топология «шина» (или, как ее еще часто называют «общая шина» или «магистраль») предполагает использование как минимум одного общего канала, к которому подсоединены все приемопередающие устройства. Общий канал используется всеми устройствами по очереди. Все сообщения, посылаемые отдельными устройствами, принимаются и прослушиваются всеми остальными устройствами, подключенными к сети. Из этого потока каждый абонент сети отбирает адресованные только ему сообщения.

pkrdfsvvnedy66ogrl y 769kgw

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

По способу передачи информации

По способу передачи информации интерфейсы различают:

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

Смешанный (параллельно-последовательный/байтовый) способ широко используется в системах с различной разрядностью представления данных у разных устройств

По режиму передачи

По режиму передачи информации различают интерфейсы:

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

xw

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

eg7

По принципу обмена информацией

По принципу обмена информацией интерфейсы подразделяют на:

euexsjckmvbxcwj2k

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

abqn2qpz4 wrwrn4pr amtwye8

О каких интерфейсах пойдет речь?

В настоящий момент самыми распространенными интерфейсами для взаимодействия между интегральными микросхемами (ИМС) являются синхронные SPI и I2C и асинхронный UART.

I2C – последовательная асимметричная шина для связи между интегральными схемами внутри электронных устройств. Шина I2C применяется для соединения низкоскоростных периферийных компонентов с процессорами и микроконтроллерами. I2C реализовывает передачу данных в полудуплексном режиме в формате «Ведущий-ведомый», в котором поддерживается несколько ведущих устройств.

Концепция стандарта состоит в том, что каждое подключенное к шине устройство определяется уникальным адресом, используемым при обращении к этому устройству. Такая концепция значительно упрощает идентификацию устройства, что позволяет интерфейсу иметь всего два канала. Классическая адресация включает 7-битное адресное пространство с 16 зарезервированными адресами. Это означает, что разработчикам доступно до 112 свободных адресов для подключения периферии к одной шине. Все операции по шине I2C осуществляются при помощи канала последовательных данных (SDA) и канала синхронизации (SCL).

ln1ve
Диаграмма передачи данных по интерфейсу I2C

SPI – последовательный синхронный стандарт передачи данных в режиме дуплекса, предназначенный для обеспечения простого и недорогого высокоскоростного сопряжения микроконтроллеров и периферии.

Шина SPI организована по принципу «ведущий-подчиненный». Ведущий шины передает данные по линии MOSI синхронно со сгенерированным им же сигналом SCLK, а подчиненный захватывает переданные биты данных по определенным фронтам принятого сигнала синхронизации. Одновременно с этим подчиненный отправляет свою посылку данных по линии MISO, тем самым организую дуплексную передачу данных. Так же подчиненное устройство ждет сигнала разрешения на передачу данных по линии SS.


Диаграмма передачи данных по интерфейсу SPI

UART – универсальный асинхронный приемопередатчик – интерфейс для связи цифровых устройств, предназначенный для передачи данных в последовательной форме.
Основными каналами данного стандарта являются RxD (принимающий канал) и TxD (передающий канал).

Передача данных в UART осуществляется по одному биту по каналу TxD в равные промежутки времени. Этот временной промежуток определяется заданной скоростью и для конкретного соединения указывается в бодах. Так как UART является асинхронным интерфейсом, то помимо информационных бит, UART автоматически вставляет в поток синхронизирующие метки, так называемые стартовый и стоповый биты. При приеме данных эти биты не учитываются, так как они используются только для маркировки старта и окончания передачи информации. Обычно стартовый и стоповый биты обрамляют 8 бит данных (максимальный размер посылки), при этом младший информационный бит передается первым, однако эта конфигурация является настраиваемой.
Изначально UART предназначался для связи двух устройств по принципу «точка-точка». Впоследствии были созданы физические уровни, которые позволяют связывать более двух UART по принципу полудуплекса. Существуют реализации типа «общая шина» и «кольцо».

5w5ui cf8lwfgieqdopo7vwcvd0
Диаграмма передачи данных по интерфейсу UART

Что это за ЦАП?

pt8zd0jzabm e kgbtz06ol bik
Вроде не этот

Для начала определимся с используемым ЦАП/АЦП:

Отладочная плата Analog Devices AD9993-EBZ представляет собой устройство, объединяющее четыре 14-битных АЦП и два 14-битных ЦАП.

Управление режимами работы этой ИМС осуществляется за счет изменения состояния ее внутренних регистров. В AD9993 используются 66 регистров с размером хранимого (обрабатываемого) слова в 8 бит, адреса которых описываются трехразрядными шестнадцатеричными значениями (12 бит данных). Поддерживаются два типа команд – команда чтения и команда записи. Другими словами, для того, чтобы корректировать работу ИМС, необходимо передать команду записи некоторого допустимого 8-битного значения по определенному адресу регистра. Доступ к регистрам данной ИМС осуществляется через последовательный периферийный интерфейс (SPI), подключение к которому на отладочной плате реализовано через 40-контактный разъем FIFO_0 или через дополнительно устанавливаемую контактную группу.

2wy6otsylp7wpg7qmzf7gtdlinm
Вроде этот (FIFO_0 – верхний серый разъем)

Основные требования по предельным параметрам интерфейса SPI:

Что говорит производитель?

Рекомендованная схема управления

Исходя из документации AD9993-EBZ, рекомендованным способом управления ИМС является использование отладочной платы Analog Devices HSC-ADC-EVALC, подключенной к ИМС по 40-контактному порту, и к ПК по интерфейсу USB.

В качестве ПО для управления используется SPIController.

image loader
Рекомендованная схема

gusyyhepzen1v1lqigviggseuvm
Analog Devices HSC-ADC-EVALC (базируется на ПЛИС Xilinx Virtex-4)

Немного об HSC-ADC-EVALC

Хочется отметить, что использование платы Analog Devices HSC-ADC-EVALC в качестве устройства управления ЦАП/АЦП не является его главным предназначением.

HSC-ADC-EVALC главным образом используется как плата буферной памяти для АЦП, однако она также имеет функционал конфигурирования отладочных плат через интерфейс SPI, если подключенные платы это поддерживают.

Собственная модель взаимодействия

Причина использования промежуточного устройства

Очевидным является факт того, что взаимодействие ЦАП/АЦП и ПК невозможно организовать напрямую, так как SPI, с помощью которого предусмотрено программирование AD9993-EBZ, не является типовым интерфейсом современного ПК.

Для решения поставленной задачи необходимо было использовать устройство-посредник, который бы преобразовывал данные из интерфейса USB, посылаемые с компьютера, в формат интерфейса SPI, поддерживающийся ИМС.

В ходе прорабатывания вариантов выбор пал на использование отладочной платы Terasic DE10-Nano, работающей на базе ПЛИС Cyclone V.


Собственная модель взаимодействия

Почему ПЛИС – это круто?

Основные преимущества использования ПЛИС:

Процесс проектирования

Ничего не предвещало беды.

В ходе проектирования модели взаимодействия было принято решение реализовать интерфейс SPI на основе GPIO (пинов общего назначения), контактная база которого имеется на DE10-Nano. Реализация контроллера SPI на базе ПЛИС не должна была создавать особых проблем благодаря большому количеству материалов на схожую тему.

Однако затруднения вызвала реализация подключения ПЛИС к компьютеру по интерфейсу USB.

DE10-Nano имеет следующие порты USB:

Части HPS и ПЛИС чипа Cyclone V имеют свои собственные контакты. Эти контакты не делятся свободно между HPS и ПЛИС. Контакты HPS конфигурируются программным обеспечением, выполняемым в HPS. Контакты ПЛИС программируются с помощью образа конфигурации ПЛИС через HPS или любой другой поддерживающийся внешний источник.

Для того, чтобы организовать взаимодействие программируемой логики чипа Cyclone V с этими портами, необходимо создать специальный загрузчик Linux, работающий на HPS, а также необходимо разработать программу, которая способна передавать сигналы с контроллеров доступных портов USB на свободные контакты ПЛИС.

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

Выход есть!

Плотно прошерстив просторы Интернета, решено было использовать внешний контроллер UART.

Внешний контроллер UART представляет собой небольшую плату на базе чипа FT232RL. На плате установлены разъемы miniUSB-B для связи с компьютером и 6-контактный разъем для связи с микроконтроллерами и устройствами.
Подключение контроллера происходит по интерфейсу USB к ПК, и через контактную базу GPIO к DE10-Nano.

fvidd1
Сам контроллер от компании Waveshare (использован в проекте)

Использование интерфейса UART поверх USB для передачи данных с ПК фактически лишает необходимости разбираться со сложным и многослойный устройством протокола USB. С этого момента взаимодействие по интерфейсу USB больше не является нашей заботой, так как эта задача отводится драйверам, предустановленным в системе или самостоятельно установленным пользователем.

Помимо линий питания и земли, а также линий передачи и приема данных, на плате присутствуют контакты, подписанные как RTS и CTS. Эти контакты используются для так называемого управления потоком – механизма, предназначенного для сигнализировании о готовности принимать данные со стороны ведущего или ведомого устройства в зависимости от состояния линий. Использование этих линий не является необходимостью, поэтому для отключения механизма необходимо указать в настройках драйвера компьютера что управление потоком не используется (обычно такая конфигурация является дефолтной).

При подключении к ПК в системе Windows контроллер UART определяется как последовательный виртуальный порт. Следовательно, разработка схемы взаимодействия с ПК сводится к созданию ПО с функционалом взаимодействия с последовательным виртуальным портом, а также к разработке проекта для ПЛИС, реализующего прием/передачу данных по интерфейсу UART.

Разработка ПО

Общая информация

Как уже было сказано, разработка ПО для ПК сводится к созданию программы, поддерживающей обмен информацией с виртуальным последовательным портом. В ходе анализа доступных программных средств для разработки ПО выбор пал на язык программирования Java 8-ой редакции c использованием библиотеки RTXT.

Java – это строго типизированный объектно-ориентированный язык программирования, обладающий рядом ключевых особенностей. В частности – программы, написанные на ЯП Java транслируются в специальный байт-код, что позволяет им выполняться на любой компьютерной архитектуре, для которой существует реализация виртуальной Java-машины.

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

В качестве инструмента для разработки пользовательского интерфейса использована старая, но надежная встроенная библиотека Swing. Благодаря возможности изменения тем, простой UI на Swing может выглядеть не уродливо более-менее современно.

Сама программа по-спартански простая и в основном использует документированные возможности библиотеки RTXT.

Основной функционал программы

Вот так происходит определение доступных портов:

Подключение к выбранному порту:

Процесс передачи данных:

Как уже было сказано, управление ЦАП/АЦП происходит посредством передачи команды записи некоторого допустимого 8-битного значения по определенному адресу регистра, описанного в документации. Для определения текущего состояния регистра, необходимо передать команду чтения и указать адрес запрашиваемого регистра. Полное описание как всегда в документации.

Передача данных по UART

В ходе изучения AD9993-EBZ было выяснено, что в доступном 12-ти битном адресном пространстве регистров используются только 8 бит данных. Так же передаваемое значение состояния регистра описывается 8-мью битами. Для определения типа передачи данных (запись/чтение) требуется передать 1 бит данных.

Так как текущее ограничение на максимальный размер посылки по интерфейсу UART является 8 бит данных, было принято решение о передаче 3 последовательных посылок размером 8 бит при процессе записи и 2 посылки при процессе чтения.

Первая посылка будет содержать тип передачи данных, продублированной на весь размер посылки. Следовательно, возможных значений может быть всего два: 00000000 для чтения и 11111111 для записи соответственно. Использование целой посылки для передачи одного бита данных было сделано для упрощение дальнейшей обработки принятых сигналов.
Далее передается адрес запрашиваемого регистра и передаваемое значение состояния регистра при процессе записи.


Осциллограмма разрабатываемой посылки UART

Пользовательский интерфейс

image loader

Основными элементами пользовательского интерфейса ПО являются кнопки подключения/отключения от доступных последовательных портов (элементы 3,4), поля ввода адреса и значения регистра (элементы 7,8), окно логов (элемент 6). ПО спроектировано с возможностью взаимодействия с ним в двух состояниях: «подключен к порту» и «отключен от порта». Состояния определяют активность некоторых элементов на интерфейсе программы, а также ограничивают возможность исполнения определенных методов с целью уменьшения вероятности ошибок и некорректного использования ПО. При включении программа находится в состоянии «отключен от порта». Так же в целях облегчения работы с программой (что и я являлось одной из главных целей проекта) был добавлен функционал подключения файлов с уже сохраненными командами в формате JSON (элемент 10).

Процесс загрузки команд:

image loader
Выбор файла

image loader
Интерфейс с командами

Функционал позволяет сортировать загруженные команды по разделам (элемент 12), настраивать процесс работы с подключенными командами (отправлять ли команду на последовательный порт сразу при нажатии, или заполнять поля адреса и значения в соответствии с выбранной командой).

Разработка проекта для ПЛИС

Общая информация

Прежде чем начать разработку проекта для ПЛИС, необходимо определиться с задачей, которую он обязан решить.

Звучит она примерно так: проект для ПЛИС должен поддерживать представленное ниже преобразование данных:


Диаграмма преобразования данных

На вход DE10-Nano поступают сигналы с линии Tx интерфейса UART (верхний сигнал). Далее ПЛИС необходимо правильно определить принятые данные из трех посылок по 8 бит каждая и преобразовать их в соответствующий документации формат посылки SPI (представлен в 4 линиях).

Основными модулями, необходимыми для реализации данного преобразования, являются модуль контроллера UART и модуль контроллера SPI. Именно им отводится оставшаяся часть главы.

При разработке проектов для ПЛИС использовалась IDE Qartus Prime Lite Edition 17-ой версии.
Если вы не имеете опыта использования Quartus или вообще не программировали ПЛИС, рекомендуется начать с понятного (по моему мнению) примера первого проекта на Quartus.

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

Контроллер UART

Описание

Контроллер UART состоит из трех модулей:

Генератор импульсов

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

Существует общепринятый ряд стандартных скоростей для UART: 300; 600; 1200; 2400; 4800; 9600; 19200; 38400; 57600; 115200; 230400; 460800; 921600 бод. В нашем случае передача данных происходит на скорости 9600 бод. Далее нам нужно получить генератор с частотой, в 16 раз превышающую скорость символов. Это необходимо для того, чтобы корректно детектировать уровень передаваемого сигнала.

Для генерирования импульсов используется имеющийся в чипе генератор с частотой 50 МГц. Чтобы получить искомую частоту, требуется учитывать каждый 325-ый импульс генератора.
Вот так это будет выглядеть на языке Verilog:

Модуль чтения

Модуль чтения производит преобразование входного сигнала с линии RX в выходной 8-разрядный массив данных.

Непосредственно чтение и передача прочитанных данных на выход:

Модуль передачи

Модуль передачи преобразует 8-разрядных входной сигнал в последовательный пакет данных стандарта UART.

Непосредственная передача данных:

Контроллер SPI

Важное отступление

Так как контроллер SPI, реализованный на базе ПЛИС, представляет собой более сложную логическую структуру, чем контроллер UART, то дальнейшее объяснение логики работы легче провести на схемотехнической модели контроллера.

Общая схема контроллера

image loader

Разработанную модель можно разделить на 3 основных модуля:

Тактирование работы схемы обеспечивается сигналом частоты 12,5 МГц, подаваемым через линию CLK_125.

Запуск работы контроллера по формированию посылки управления осуществляется сигналом «START». По этому сигналу все модули схемы устанавливаются в исходное состояние и инициализируется начало цикла формирования требуемых сигналов на выходных линия CLK, SS, MOSI интерфейса SPI

Модуль последовательной записи

u2ql

Модуль последовательной записи выполнят основную задачу контроллера SPI, а именно – выдачу параллельных битовых данных в последовательную линию MOSI. Происходит это благодаря элементу RG_24_PI_SO, который функционирует по принципу сдвигового регистра, основанного на D-триггерах.

Элемент RG_24_PI_SO имеет 24 входа данных, соответствующих документации AD9993-EBZ о формате посылки SPI. В них входят:

Модуль битового счетчика

jbporndr64iqpbd0qvuuk mgwoe

Модуль битового счетчика необходим для определения длительности сигнала разрешения записи данных на линии SS интерфейса SPI. Так как, согласно документации AD9993-EBZ, длительность сигнала разрешения должна быть равна суммарной длительности передаваемых данных, возникает необходимость отсчета 24-х синхроимпульсов с начала передачи данных для определения необходимой длительности сигнала разрешения. Функцию счета выполняет элемент ST_32, который при определении 24-го сигнала синхроимпульса воспроизводит сигнал, который используется для обнуления счетчика, а также для окончания передаваемого сигнала разрешения.

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

Модуль анализа ошибок

1hyo0l9y7s6bdpj9s unnjntsii

Как было упомянуто в объяснение предыдущего модуля, для обеспечения функционала анализа ошибок был разработан метод, основанный на чтении значения сохраненной на ИМС команды по адресу регистра, использовавшегося в процессе записи данных. Процесс чтения необходим для сравнения записанного значения с прочитанными данными для выявления несоответствий, а следовательно – определения произошедшей ошибки. Модуль анализа ошибок основан на элементе RG_8_SI_PO, который функционирует по принципу сдвигового регистра. Элемент преобразовывает полученные по последовательному порту MISO сигналы в параллельный 8-разрядный выход. Далее данные сравниваются со значением команды, использовавшейся при процессе записи данных. Функционал сравнения выполняет элемент CMP_8, основанный на логике «исключающего или». При обнаружении несоответствия, модуль передает сигнал на выход LED, который будет находится в состоянии логической единицы до следующего процесса записи данных. Предполагается, что выход LED будет связан с одним из светодиодов, группа которых присутствует на отладочной плате DE10 Nano, что позволит визуально сигнализировать о случившейся ошибке.

Заключение

В результате решения поставленной задачи была спроектирована и физически реализована схема взаимодействия ПК и устройства ЦАП/АЦП с рядом ключевых преимуществ. В процессе реализации была решена проблема с соединением ПЛИС и ПК. Решением этого послужило использование внешнего модуля UART. Было написано ПО для ПК на языке Java. ПО имеет интерфейс с базовыми возможностями передачи и приема данных в разработанном формате посылки UART, помимо этого имеет функцию загрузки сохраненных команд. Были разработаны контроллеры UART и SPI на базе ПЛИС.

Вопросы, рассмотренные в рамках данного проекта, позволяют:

Источник

Поделиться с друзьями
Remonta.top
Добавить комментарий