Видеомост с интерфейсом USB 3.0 на базе ПЛИС Lattice

№ 8’2015
PDF версия
Сегодня появилось простое решение, способное устранить несовместимость между распространенным в современных ПК интерфейсом ввода/вывода USB 3.0 и цифровыми мультимедийными интерфейсами, в частности HDMI и SDI, которые доминируют в аудиовизуальной аппаратуре.
В этой статье описывается метод инкапсуляции, позволяющий организовать в канале USB прозрачный конвейер практически для любого мультимедийного потока, а также вариант реализации данного метода на базе нового поколения малогабаритных, недорогих и экономичных ПЛИС. В качестве практического примера, подходящего для многих приложений в сегментах потребительской электроники, видеовещания, машинного зрения и видеонаблюдения, будет рассматриваться отладочная плата типового видеомоста с интерфейсом USB 3.0.

Введение

Сегодня появилось простое решение, способное устранить несовместимость между распространенным в современных ПК интерфейсом ввода/вывода USB 3.0 и цифровыми мультимедийными интерфейсами, в частности HDMI и SDI, которые доминируют в аудиовизуальной аппаратуре. До настоящего момента различия в форматах кадров и механизмах передачи сигналов затрудняли обмен несжатым аудиовизуальным контентом высокой четкости между видеокамерами, датчиками изображения и другими источниками аудио- и видеосигналов. Проблема упрощения передачи видео высокой четкости по интерфейсу USB приобретает все большую актуальность в современных условиях, когда персональные компьютеры становятся неотъемлемым компонентом множества изделий промышленного, коммерческого и потребительского назначения. Сюда относятся системы машинного зрения (видеокамеры с интерфейсом USB 3.0, в том числе ночного видения), средства производства видеопродукции (видеоконвертеры и устройства видеозахвата), цифровые рекламно-информационные панели, системы видеонаблюдения и даже потребительские мобильные устройства.

В этой статье описывается метод инкапсуляции, позволяющий организовать в канале USB прозрачный конвейер практически для любого мультимедийного потока, а также вариант реализации данного метода на базе нового поколения малогабаритных, недорогих и экономичных ПЛИС. В качестве практического примера, подходящего для многих приложений в сегментах потребительской электроники, видеовещания, машинного зрения и видеонаблюдения, будет рассматриваться представленная на рис. 1 отладочная  плата типового видеомоста с интерфейсом USB 3.0 [1].

Отладочная плата типового видеомоста с интерфейсом USB 3 на базе ПЛИС

Рис. 1. Отладочная плата типового видеомоста с интерфейсом USB 3 на базе ПЛИС

 

Проблема совместимости интерфейсов

Технология USB 3.0 наконец-то обеспечила в персональных компьютерах пропускную способность каналов ввода/вывода, необходимую для передачи несжатых потоков аудиовизуального контента высокой четкости. Однако реализовать весь потенциал этой технологии в технических средствах обработки мультимедиа до сих пор было затруднительно, поскольку большая часть популярного мультимедийного и видеооборудования не оснащена интерфейсом USB. Например, в видеоаппаратуре потребительского класса стандартом де-факто является интерфейс HDMI, в профессиональной видеоаппаратуре преобладает интерфейс SDI, а датчики изображений для аппаратуры промышленного и научного назначения чаще всего подключаются по интерфейсам sub-LVDS или MIPI CSI‑2. Электрические сигналы физического уровня каждого из этих интерфейсов относительно легко преобразуются в потоки данных, поддающиеся обработке с применением стандартной цифровой логики, но структуры их кадров и протоколы передачи сигналов различаются коренным образом.

Прежде проблема совместимости между интерфейсом USB персонального компьютера и интерфейсами SDI/HDMI аудиовизуальной аппаратуры эффективнее всего преодолевалась обходным путем. Обычно для этого использовалась плата видеозахвата, которая регистрировала видеоданные, упаковывала их в пакеты шины PCI Express и передавала непосредственно на шину данных главного компьютера. Такой метод надежен, но плата видеозахвата повышает себестоимость и сложность конструкции до неприемлемого во многих случаях уровня.

 

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

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

Веб-камеры и другие мультимедийные устройства с интерфейсом USB уже имеют встроенный аппаратный механизм такой инкапсуляции, но в продаже едва ли удастся найти серийные микросхемы, которые обеспечивали бы мостовую инкапсуляцию видео высокой четкости на скорости интерфейса USB 3.0. К счастью, есть возможность создать экономически эффективный интерфейсный мост такого рода на базе недорогой ПЛИС (рис. 2).

Применение мостов с интерфейсом USB 3.0

Рис. 2. Применение мостов с интерфейсом USB 3.0

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

 

Передача потокового видео по интерфейсу USB

В стандарте USB уже определены мостовые протоколы для HDMI, SDI и почти всех остальных распространенных цифровых мультимедийных интерфейсов. Наиболее часто используемый из них — это класс видеоустройств USB (USB Video Class, UVC), определяющий характеристики подключаемых по интерфейсу USB видеоустройств, например веб-камер, цифровых камкордеров, транскодеров и аналоговых видеоконвертеров.

UVC поддерживает большинство распространенных форматов потокового и покадрового видео, включая покадровые видеостандарты MJPEG и DV, которые применяются в большинстве приложений, описываемых в настоящей статье. Эти высококачественные форматы, требующие высокой пропускной способности, обычно предусматривают передачу кадров в виде несжатых данных типа YUV (YUY2, NV12), а информации о границах кадров и отсчетов — по отдельному вспомогательному каналу. (Хотя это и неприменимо напрямую в данном случае, следует добавить, что UVC поддерживает потоковые видеоформаты, включая MPEG‑2 TS, MPEG‑2 PS и MPEG‑1, а также форматы с временнóй кодировкой, в частности H.264 и VP8.)

Применительно к аппаратуре на базе персональных компьютеров в UVC предусмотрен метод для инкапсуляции видеоданных и сигналов управления от камеры или другого источника в стандартные USB-пакеты для передачи по интерфейсу USB 3.0 на главный компьютер, где полученные сведения воспроизводятся в совместимом приложении с помощью стандартного UVC-драйвера Microsoft. Самостоятельные аудиопотоки, не связанные с видеопотоком, обрабатываются аналогичным образом в формате класса аудиоустройств USB (USB Audio Class, UAC) [2] (дополнительные сведения о USB 3.0 и других аспектах стандарта USB есть в литературе, список которой приведен в конце статьи).

 

Функциональные требования к мосту

В идеале видеомост с интерфейсом USB должен поддерживать преобразование потоков нескольких видеоинтерфейсов (HDMI, Tri-rate SDI, последовательный интерфейс CMOS-датчика изображений, MIPI CSI‑2 и т. д.) и выходных сигналов датчиков в стандартные UVC-пакеты и передачу их по каналу USB 3.0 на главный компьютер. Помимо потокового видео, мост должен обеспечивать сквозную передачу многоканального I2S-аудиоконтента в формате UAC.

Для этого мост должен выполнять две важные функции:

  • Преобразование электрических сигналов. Электрические входные сигналы от мультимедийного источника необходимо восстановить, синхронизировать и преобразовать в последовательный поток битов, пригодный для обработки и инкапсуляции в USB-пакеты. Мост должен принимать входные сигналы от аудиовизуальных интерфейсов HDMI, MIPI и SDI, а также обеспечивать подключение к главному компьютеру по интерфейсу USB 3.0 на канальном (MAC) и физическом (PHY) уровнях.

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

  • Преобразование форматов. Потоки данных и управляющих команд интерфейсов HDMI, MIPI и SDI необходимо инкапсулировать в формате UVC и передать на главный компьютер через приемопередатчик шины USB 3.0. К тому же мост должен обеспечивать буферизацию между видео-устройствами, данные с которых поступают на вход в режиме высокоскоростных «всплесков», и интерфейсом USB 3.0, чья скорость передачи данных относительно постоянна. Чтобы рационально использовать доступную полосу пропускания, интервал гашения видеосигнала перед преобразованием опускается и в UVC-пакетах передаются только полезные видеоданные. Аудиоданные, не связанные с видеопотоком, передаются в изохронном режиме интерфейса USB.

Мост должен поддерживать преобразование выходных сигналов с распространенных датчиков изображений в формат, который может обрабатываться интерфейсом USB. Сюда относятся сигналы последовательных интерфейсов, таких как MIPI CSI‑2 (большинство мобильных устройств) и sub-LVDS (датчики изображений Panasonic и Sony). Кроме того, мост должен принимать выходные сигналы параллельных интерфейсов цифровых сигнальных процессоров (DSP) [3] и других устройств, используемых для обработки сигналов сложных датчиков изображений, которые применяются в аппаратуре научного и медицинского назначения (рис. 3).

Плата датчика изображений Panasonic MN34041 с датчиком HDR 60 — типичный пример устройства с интерфейсом sub-LVDS, которое можно подключить к отладочной плате типового видеомоста с интерфейсом USB 3.0 компании Lattice

Рис. 3. Плата датчика изображений Panasonic MN34041 с датчиком HDR 60 — типичный пример устройства с интерфейсом sub-LVDS, которое можно подключить к отладочной плате типового видеомоста с интерфейсом USB 3.0 компании Lattice

 

Реализация моста

Для того чтобы достичь требуемых показателей производительности, гибкости в настройке, себестоимости решения и сроков выхода на рынок, максимально возможный объем функциональности этого многоинтерфейсного моста реализован на базе ПЛИС; сверх этого используется лишь небольшое количество внешних компонентов для реализации канального (MAC) и физического (PHY) уровня интерфейсов. Для данной конструкции была выбрана ПЛИС LFE3-17EA семейства ECP3 [4] компании Lattice, поскольку она отвечает предъявляемым функциональным требованиям (высокопроизводительный ввод/вывод, быстродействие, размеры) и имеет несколько аппаратных подсистем, в которых реализованы необходимые в данном случае ключевые функции. Эти интегрированные функциональные блоки, такие как многолинейный двусторонний последовательно-параллельный преобразователь (SERDES) и аппаратная подсистема физического уровня интерфейса SDI, упрощают проектирование и снижают себестоимость решения. Полученное решение (рис. 4) поддерживает высокоскоростной прием и упаковку аудиовизуальных данных в кадры форматов UVC и UAC интерфейса USB 3.0 без использования внешних буферов памяти.

Типовой видеомост с интерфейсом USB на базе ПЛИС

Рис. 4. Типовой видеомост с интерфейсом USB на базе ПЛИС

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

Блок-схема моста с интерфейсом USB 3.0 на уровне компонентов

Рис. 5. Блок-схема моста с интерфейсом USB 3.0 на уровне компонентов

Все источники и выходы этой конструкции сопрягаются с вычислительными элементами, реализованными внутри ПЛИС, посредством параллельной шины единообразной структуры (параллельные данные + сигналы управления HS, VS и DE). Мы расскажем, почему это важно, после того как рассмотрим каждый из интерфейсов физического уровня, поддерживаемых видеомостом.

Входные сигналы SDI корректируются эквалайзером TI LMH0394, а затем поступают на интегрированное на кристалле ПЛИС аппаратное ядро физического уровня трехскоростного интерфейса SDI с поддержкой всех трех стандартных скоростей передачи данных (SD, HD и 3G).

Данные HDMI поступают на микросхему Analog Devices ADV7611 — приемник стандарта HDMI 1.4a с поддержкой профессиональных аудиовизуальных сигналов и опциональным HDCP-декодером. Если видеоданные в вашей системе не шифруются по протоколу HDCP, можно дополнительно сэкономить, реализовав HDMI-приемник внутри ПЛИС и избавившись от аппаратного приемника.

К соединителю расширения можно подключать камеру или датчик изображений с интерфейсом MIPI CSI‑2 или sub-LVDS. Тем самым мост быстро превращается в видеокамеру высокой четкости с интерфейсом USB 3.0, пригодную для применения в промышленной аппаратуре машинного зрения. Видеоданные с датчика изображений поступают по нескольким (максимум четырем) последовательным линиям соединителя расширения и преобразуются в сигналы общего параллельного интерфейса. В число функциональных блоков ПЛИС с поддержкой интерфейсов КМОП-датчиков изображений (sub-LVDS) и последовательных интерфейсов MIPI CSI‑2 входят также блоки обработки изображений с КМОП-датчиков (восстановление цвета, преобразование между пространствами цветов, скалярная обработка).

Аудиовизуальные данные, инкапсулированные в USB-пакеты, передаются на контроллер SuperSpeed USB — микросхему Cypress CYUSB3014. Она представляет собой реализацию интерфейса физического уровня USB 3.0 на базе PIPE с поддержкой скорости передачи 5 Гбит/с и соединяет мост с главным компьютером. Физический уровень USB сопрягается с ПЛИС посредством интегрированного на кристалле ПЛИС параллельного интерфейса GPIF II с тактовой частотой 100 МГц, настроенного для работы с 32‑разрядной шиной.

Cypress FX3 содержит и встроенное 32‑разрядное RISC-ядро ARM9 с тактовой частотой 200 МГц, оснащенное интерфейсами I2C и SPI. Оно позволяет настраивать и конфигурировать все микросхемы на плате, в том числе инициализировать микросхемы ADV7611 и LMH0394. С его помощью можно также конфигурировать ПЛИС по ведомому интерфейсу SPI и осуществлять конструкторское управление по интерфейсу I2C (рис. 6). Программное обеспечение ARM и двоичный файл конфигурации ПЛИС хранятся во флэш-памяти SPI, подключенной к контроллеру Cypress USB3. Соединитель для внешнего JTAG-устройства обеспечивает непосредственную загрузку схемы и отладку ПЛИС с помощью отладчика Reveal.

USB-контроллер Cypress CYUSB3014 используется для настройки и конфигурирования ПЛИС, а также других устройств, входящих в состав видеомоста

Рис. 6. USB-контроллер Cypress CYUSB3014 используется для настройки и конфигурирования ПЛИС, а также других устройств, входящих в состав видеомоста

 

Интеграция IP-ядер ПЛИС

Большая часть программируемых IP-ядер, реализованных в ПЛИС ECP3, обеспечивает восстановление, буферизацию и инкапсуляцию входных видеоданных в формате UVC с последующей передачей на приемопередатчик шины USB — CYUSB3014. Кроме того, в ПЛИС реализован ряд других ключевых функций, которые показаны на блок-схеме, приведенной на рис. 5 (и далее на рис. 7).

Большинство функциональных элементов видеомоста с интерфейсом USB могут быть реализованы на базе ПЛИС ECP3 компании Lattice

Рис. 7. Большинство функциональных элементов видеомоста с интерфейсом USB могут быть реализованы на базе ПЛИС ECP3 компании Lattice

Как уже говорилось, все источники видеосигнала, а также физический уровень интерфейса USB в этой конструкции сопрягаются с вычислительными элементами, реализованными внутри ПЛИС, посредством параллельной шины единообразной структуры (параллельные данные + сигналы управления HS, VS и DE). Разрядность шины у этих устройств может быть разной, но общая архитектура позволяет конструировать на базе ПЛИС мощные вычислительные структуры для эффективного пакетирования и преобразования практически любого аудиовизуального формата. Например, шина данных между ПЛИС и микросхемой Cypress FX3 (интерфейсом GPIF II) имеет разрядность 32 бит, формат UVC — 16 бит (YUV), а аудиоданные I2S — 16 или 24 бит. Вычислительные элементы ПЛИС позволяют эффективно пользоваться 32‑разрядной общей шиной, комбинируя 24‑разрядный отсчет аудиосигнала с первыми 8 разрядами следующего отсчета без излишней нагрузки на FX3 или «заимствования» процессорного времени микроконтроллера.

 

Конструктивные проблемы и другие практические соображения

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

Так, с ее помощью был выявлен ряд конструктивных проблем, связанных с эффективностью передачи низкоскоростных изохронных аудиоданных параллельно с высокоскоростными «всплесками» видеоданных. Для минимизации издержек аудиоданные буферизуются и передаются более крупными пакетами, содержащими множество отсчетов. Но если пакеты слишком длинные, это может сказаться на качестве восстановления изохронных аудиоданных. Если же, наоборот, аудиопакеты слишком короткие, они будут передаваться чаще, и на каком-то этапе издержки их передачи окажутся чересчур велики, так что они начнут мешать передаче более чувствительных к временной синхронизации видеоданных. Компания Lattice использует указанную отладочную плату как средство для более глубокого исследования этой проблемы и выработки рекомендаций по тонкой настройке параметров передачи аудиовизуальных данных. Аналогичные исследования проводятся на предмет оптимальной буферизации видеокадров в ограниченном объеме памяти, доступном внутри ПЛИС.

Единственная проблема, связанная с временной синхронизацией в данной конструкции, — передача данных между областями с различными тактовыми сигналами. Чтобы синхронизировать передачу данных в рамках всего устройства, интерфейс GPIF между Cypress FX3 и ПЛИС действует на тактовой частоте 100 МГц, видеоинтерфейс работает с переменной тактовой частотой передачи пикселей (в зависимости от разрешения), а аудиоданные передаются с еще меньшей частотой следования бит и слов. Аудиоданные и соответствующие тактовые сигналы подвергаются вторичной дискретизации с использованием внутреннего тактового сигнала ПЛИС частотой 100 МГц, чтобы затем их можно было передать на интерфейс GPIF с таким же тактовым сигналом. Для видеоданных применяется асинхронная очередь (FIFO) с двумя тактовыми сигналами, посредством которой данные переводятся с тактовой частоты пикселей на тактовую частоту интерфейса GPIF (100 МГц).

 

Заключение

Результаты испытаний и проверки рассмотренной здесь типовой конструкции показывают, что недорогие ПЛИС позволяют успешно решать задачу преобразования широкого спектра форматов видеоданных высокой четкости для передачи по интерфейсу USB 3.0. Эта конструкция легко адаптируется в соответствии с требованиями к себестоимости и характеристикам, предъявляемыми в различных приложениях.

Теоретически возможна также передача видеоданных других интерфейсов (например, DVI, DisplayPort, параллельный интерфейс CMOS-датчиков изображений и т. д.). Однако ввиду ограничений на стоимость и размеры отладочной платы на ней реализованы только самые распространенные видеоинтерфейсы. Существует также возможность передачи видеоданных в форматах, использующих сжатие (например, H.264). В распоряжении компании Lattice имеется стороннее IP-ядро для сжатия видеоданных и передачи их по интерфейсу USB 2.0.

Дополнительную информацию об интерфейсе USB 3.0, а также почти обо всех остальных практических аспектах работы со стандартом USB можно найти в документе “USB in a Nutshell”, который опубликован на сайте Крэйга Пикока (Craig Peacock) — www.beyondlogic.org.  Полный текст стандарта USB опубликован на сайте организации USB Alliance — www.usb.org.

Литература
  1. Указание по применению видеомоста компании Lattice. latticesemi.com/usb3 /ссылка утрачена/
  2. USB Alliance: определение класса видеоустройств USB, версия 1.5. usb.org/developers/devclass_docs/USB_Video_Class_1_5.zip /ссылка утрачена/
  3. Texas Instruments DM368 — один из цифровых сигнальных процессоров, широко применяемых для обработки выходных сигналов крупноформатных высокоскоростных датчиков изображений. Технические характеристики. ti.com/tool/dm368ipnc-mt5 /ссылка утрачена/
  4. Технические характеристики ПЛИС Lattice. latticesemi.com/en/Products/FPGAandCPLD/LatticeECP3.aspx, www.ru.wikipedia.org/wiki/USB#USB_3.1, www.en.wikipedia.org/wiki/USB_video_device_class, www.ru.wikipedia.org/wiki/HDMI /ссылки утрачены/
  5. www.wiki.osdev.org /ссылка утрачена/
  6. Пособие USB Made Simple. usbmadesimple.co.uk
  7. lvr.com/usb.htm /ссылка утрачена/

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *