Стремительное развитие периферийных вычислений и машинного зрения в реальном времени предъявляет жесткие требования к высокопроизводительным решениям для захвата и обработки изображений с низкой задержкой. Программируемые вентильные матрицы (FPGA) отличаются мощными возможностями параллельной обработки, настраиваемой аппаратной логикой и высокой энергоэффективностью, что делает их идеальными для приложений, ориентированных на зрение, включая промышленную автоматизацию, медицинскую визуализацию и интеллектуальные системы Интернета вещей. USB-камеры широко применяются во встраиваемых и промышленных сценариях благодаря своей экономической эффективности, совместимости по принципу «подключи и работай», а также разнообразным техническим характеристикам, охватывающим потребительский и промышленный классы. Однако интеграция USB-камер с платформами FPGA долгое время была ограничена присущими ей проблемами, такими как несовместимость протоколов, чрезмерная системная задержка и недостаточный контроль параметров камеры в реальном времени, что значительно ограничивает полный потенциал производительности систем реального времени на базе FPGA для обработки изображений. Традиционные интеграционные архитектуры используют структуру передачи данных, опосредованную центральным процессором (CPU), при которой CPU принимает и буферизует видеоданные от USB-камер перед их пересылкой на ПЛИС (FPGA). Такая архитектура вносит избыточную задержку передачи, не позволяет в полной мере задействовать аппаратные ресурсы ПЛИС и нарушает преимущества параллельной обработки данных, присущие ПЛИС. В данном документе систематически представлены две интеграционные архитектуры без участия CPU, предназначенные для решения указанных технических узких мест, а также приведены всесторонние рекомендации, охватывающие выбор аппаратного обеспечения, порядок реализации и методы инженерной отладки для создания высоконадёжных и низколатентных систем машинного зрения.
Преимущества интеграции USB-камеры и FPGA
FPGA и USB-камеры образуют высокодополняемую комбинацию для периферийных приложений машинного зрения с жесткими ограничениями по пропускной способности, задержке и энергопотреблению. Ключевые сильные стороны обоих устройств идеально соответствуют техническим требованиям обработки изображений в реальном времени.
• Преимущества ядра FPGA: В отличие от последовательного режима выполнения инструкций в CPU, FPGA поддерживают параллельную обработку данных по нескольким каналам, что идеально подходит для задач машинного зрения, чувствительных ко времени, таких как фильтрация изображений, обнаружение объектов и анализ траекторий движения.
• Преимущества ядра USB-камеры: USB-камеры поддерживают диапазон разрешений от VGA до 4K и несколько основных форматов изображений, включая YUV, RGB и MJPEG. Их компактный форм-фактор обеспечивает гибкое развертывание в различных встраиваемых системах машинного зрения.
Типичные сценарии применения
1. Промышленная автоматизация: FPGA обрабатывают видеопотоки в реальном времени с USB-камер для обнаружения дефектов печатных плат, отслеживания движения на сборочных линиях и визуального управления роботизированными манипуляторами с задержкой менее миллисекунды.
2. Медицинская визуализация: низкая задержка интеграции данных поддерживает обработку эндоскопических и ультразвуковых изображений в реальном времени, помогая врачам быстро и точно ставить диагноз.
3. Интеллектуальные IoT-устройства: сочетание FPGA и USB-камер обеспечивает низкое энергопотребление для систем интеллектуального видеонаблюдения, контроля доступа с распознаванием лиц и систем обнаружения дорожного движения.
4. Автомобильные системы зрения: в передовых системах помощи водителю (ADAS) FPGA обрабатывают видеоданные с USB-камер в реальном времени для обнаружения пешеходов, линий разметки и транспортных средств, повышая безопасность вождения.
Ключевые узкие места традиционных схем интеграции USB-FPGA
Большинство традиционных интеграционных решений полагаются на CPU как на промежуточный блок пересылки данных. Этот упрощенный метод реализации создает четыре критических узких места производительности, которые не могут удовлетворить требования высокоточных систем реального времени для машинного зрения.
1. Высокая задержка: кэширование, обработка и пересылка данных через ЦП вносят системную задержку в 10–100 мс, что критично для сценариев, чувствительных ко времени, таких как промышленное обнаружение дефектов и автомобильные ADAS, легко приводя к пропуску обнаружения и задержке реакции.
2. Недостаточное использование ресурсов FPGA: режим пересылки данных через ЦП вынуждает FPGA работать в режиме последовательного ожидания данных, что не позволяет задействовать параллельную обработку, приводя к простою логических блоков и ресурсов DSP.
3. Ограниченные возможности управления камерой в реальном времени: большинство USB-камер стандарта UVC управляются программными API на стороне CPU, что делает невозможным для FPGA динамическую регулировку экспозиции, усиления, баланса белого и других параметров в реальном времени. Этот недостаток ограничивает адаптивность систем машинного зрения к изменяющимся условиям освещения.
4. Дефекты совместимости протоколов: FPGA не поддерживают USB-host протоколы нативно. Традиционные решения требуют использования внешних микросхем USB-контроллеров или разбора протокола через CPU, что увеличивает сложность системы и вносит дополнительную задержку.
Хотя профессиональные интерфейсы машинного зрения, такие как Camera Link и MIPI, могут избежать вышеуказанных проблем, USB-камеры имеют неоспоримые преимущества в стоимости и совместимости. Фундаментальное решение для преодоления ограничений производительности — это использование архитектуры прямой связи между USB-камерами и FPGA без участия CPU.
Инновационные стратегии интеграции с низкой задержкой без использования CPU
Удаление промежуточного звена CPU является основой интеграции с низкой задержкой. Ниже предлагаются две проверенные на практике аппаратные архитектуры прямого подключения для обеспечения высокоэффективного обмена данными между USB-камерами и ПЛИС.
Стратегия 1: Реализация USB-хост-контроллера и стека протокола UVC на базе ПЛИС
Эта архитектура реализует полный хост-контроллер USB и стек протоколов UVC (USB Video Class) на основе аппаратной логики FPGA, что позволяет FPGA напрямую выполнять анализ протокола, прием данных и управление параметрами USB-камер без участия процессора. Данная схема позволяет снизить задержку системы до менее 1 миллисекунды и обеспечить аппаратное управление параметрами камеры на полном уровне.
Принцип реализации и этапы
1. Выбор USB PHY-чипа: Подбор высокоскоростных физических уровней USB 3.0/3.2, таких как FTDI FT602 и Cypress CYUSB3014. Чипы взаимодействуют с ПЛИС через параллельные шины. FT602 является предпочтительным устройством для промышленной интеграции благодаря низкой стоимости, низкому энергопотреблению и простой адаптации драйверов.
2. Разработка стека протоколов UVC на ПЛИС: Использование языков описания аппаратуры Verilog или VHDL для завершения разработки базовой логики, включая перечисление USB-устройств, настройку конечных точек управления параметрами камеры и высокоскоростную передачу видеоданных на основе изохронных конечных точек.
3. Интеграция конвейера аппаратной обработки изображений: встраивание логики предварительной обработки изображений, такой как обнаружение краёв, коррекция цвета и подавление шума, в аппаратную логику FPGA для реализации конвейерной параллельной обработки видеоданных и устранения задержек передачи данных.
Ключевые преимущества
• Сверхнизкая задержка системы, сквозная задержка控制在1мс以内, удовлетворяющая строгим требованиям обработки в реальном времени
• Поддержка динамической регулировки экспозиции, усиления и других параметров камеры в реальном времени на основе логики FPGA
• Полное использование параллельных вычислительных ресурсов FPGA для максимального использования аппаратного обеспечения
• Исключение зависимых CPU-устройств и снижение общей стоимости BOM системы
Инженерный пример применения: обнаружение дефектов печатных плат в реальном времени
Промышленная производственная система использует 4K-камеру с глобальным затвором и интерфейсом USB, а также ПЛИС Xilinx Kintex-7, и реализует аппаратный стек протокола UVC на основе микросхемы USB PHY FT602. Система стабильно обрабатывает видеопотоки 4K высокой чёткости с частотой 30 кадров в секунду и задержкой менее миллисекунды. Алгоритм обнаружения краёв с аппаратным ускорением на ПЛИС обеспечивает распознавание в реальном времени отсутствующих компонентов на печатных платах и дефектов короткого замыкания. По сравнению с традиционной схемой обработки на центральном процессоре, доля ложноположительных результатов при обнаружении дефектов снижена на 30%. Кроме того, ПЛИС динамически регулирует параметры экспозиции камеры в соответствии с изменениями освещения на производственном участке, что гарантирует стабильную точность обнаружения в сложных условиях эксплуатации.
Стратегия 2: Архитектура ускорения ИИ на ПЛИС на основе моста USB-to-AXI
Для сценариев периферийного ИИ-зрения, таких как обнаружение объектов и распознавание лиц, можно использовать архитектуру моста USB-to-AXI. Эта схема преобразует видеоданные USB в стандартные сигналы шины AXI4-Stream через аппаратную логику моста, напрямую передает данные в ядро аппаратного ускорения ИИ на стороне ПЛИС и обеспечивает сквозную обработку с низкой задержкой.
Принцип реализации и этапы
1. Создание моста USB-to-AXI: Используйте готовые IP-ядра, такие как Xilinx USB 3.0 Host Controller IP, или пользовательскую логику на Verilog для завершения перечисления USB-устройств и преобразования видеопотока USB в формат данных шины AXI, подходящий для внутренней передачи на ПЛИС.
2. Интеграция аппаратного IP-ядра для вывода ИИ: Встройте в проект ПЛИС ядра Xilinx DPU или Intel OpenVINO FPGA для аппаратного ускорения, чтобы поддерживать аппаратное ускорение основных моделей CNN, таких как YOLO и ResNet.
3. Оптимизация внутреннего потока данных: взаимодействие с BRAM на кристалле FPGA и внешней памятью DDR для создания разумного механизма кэширования данных, обеспечивающего плавную передачу видеоданных между мостом и AI-ядром, а также предотвращение потери кадров и перегрузки данных.
Ключевые преимущества
• Реализация локального периферийного AI-вывода без зависимости от ресурсов CPU и облачных вычислений
• Архитектура шины AXI поддерживает масштабируемое расширение, что позволяет гибко интегрировать функциональные IP-ядра для предварительной обработки изображений, хранения данных и других задач
• Совместим со всеми стандартными UVC USB-камерами и промышленными камерами, обладает высокой адаптивностью к сценариям
Пример инженерного применения: бесконтактный мониторинг частоты сердечных сокращений
Медицинское устройство использует обычную USB-камеру и отладочную плату Xilinx PYNQ-Z2 на базе FPGA. Видеоданные, собираемые камерой, передаются на FPGA через мост USB-to-AXI. После аппаратной оптимизации и развертывания алгоритма Eulerian video magnification система улавливает незначительные изменения цвета кожи, вызванные колебаниями кровотока на лице, что позволяет реализовать бесконтактное определение частоты сердечных сокращений. Точность обнаружения системы составляет 95% по сравнению с традиционными контактными мониторинговыми устройствами, а общая задержка составляет менее 50 мс. Система применяется в сценариях мониторинга пациентов в больницах, что позволяет эффективно снизить риск перекрестного инфицирования.
Рекомендации по выбору аппаратных компонентов
Разумное согласование аппаратного обеспечения является предпосылкой стабильной работы систем с низкой задержкой. Ниже приведены целевые критерии выбора ПЛИС, USB-камер и вспомогательных компонентов для различных сценариев применения.
1. Выбор ПЛИС
• Сценарии начального уровня (гражданские и DIY-приложения): предпочтительны Xilinx Artix-7 и Intel Cyclone IV. Эти устройства поддерживают протокол USB 2.0, имеют умеренные логические ресурсы и подходят для захвата видео с низким разрешением (VGA/720P) и простой обработки обнаружения движения.
• Средние сценарии (промышленное и медицинское оборудование): рекомендуются Xilinx Kintex-7 и Intel Arria V. Они поддерживают высокоскоростную передачу USB 3.0/3.2, оснащены достаточными DSP-срезами и встроенными ресурсами хранения и могут удовлетворить требования обработки для камер высокого разрешения 1080P/4K и сложных алгоритмов зрения.
• Высокопроизводительные сценарии (автомобильные ADAS и передовое ИИ-зрение): используются устройства серий Xilinx UltraScale и Intel Stratix 10. Они поддерживают высокоскоростную передачу USB 3.2 Gen 2 10 Гбит/с и интегрируют выделенные модули ускорения ИИ, что позволяет выполнять вывод высокоточных моделей CNN в реальном времени.
2. Выбор USB-камеры
• Разрешение и частота кадров: камеры 720P/1080P подходят для обычного видеонаблюдения; для высокоточных сценариев, таких как промышленное обнаружение дефектов, требуются камеры с разрешением 4K. Частота кадров (30FPS/60FPS) должна соответствовать вычислительной мощности FPGA, чтобы избежать потери кадров.
• Версия протокола USB: для передачи видео высокого разрешения обязателен интерфейс USB 3.0/3.2, чтобы гарантировать запас пропускной способности; USB 2.0 применим только для низкоскоростных сценариев с низким разрешением уровня VGA.
• Тип протокола: стандартные UVC-камеры отличаются функцией plug-and-play и высокой совместимостью, подходят для большинства стандартных сценариев; камеры с промышленным пользовательским протоколом поддерживают управление большим количеством базовых параметров, что подходит для высокоточного промышленного визуального оборудования.
• Функциональные характеристики: для сценариев с высокоскоростным движением выбирайте камеры с глобальным затвором, чтобы избежать размытия движения; для темных промышленных и медицинских сред отдавайте приоритет устройствам с чувствительностью к низкой освещенности и регулируемыми параметрами экспозиции.
3. Вспомогательные компоненты
• Чип USB PHY: FT602 для недорогих решений USB 3.0; CYUSB3014 для высокопроизводительных промышленных сценариев; официальное IP-ядро USB 2.0 host от Intel для низкоскоростных начальных проектов.
• Запоминающие устройства: Внешняя память DDR3/DDR4 используется для кэширования видеоданных большого объема; встроенная BRAM используется для хранения промежуточных данных обработки в реальном времени.
• Модуль питания: среднеуровневые системы технического зрения оснащены источником питания 5 В/3 А для обеспечения стабильных потребностей в питании FPGA, камеры и PHY-чипа.
Практические советы по реализации и оптимизации отладки
С учетом распространенных проблем при разработке интеграции USB-камеры и FPGA ниже приведены практические спецификации реализации и методы отладки, направленные на повышение эффективности разработки и стабильности системы.
1. Сначала проверка прототипа: выполните функциональную проверку на основе зрелых плат разработки, таких как Xilinx PYNQ-Z2 и Intel DE10-Nano, перед проектированием пользовательской печатной платы. Встроенный USB-интерфейс и периферийные ресурсы позволяют быстро проверить работоспособность стека UVC и логики моста AXI, снижая риск доработки аппаратного обеспечения.
2. Использование готовых официальных IP-ядер: Полностью используйте оптимизированные IP-ядра USB-хоста, протокола UVC и AXI-моста, официально предоставляемые Xilinx и Intel. Проверенные IP-ядра позволяют избежать повторной разработки и значительно сократить срок проекта.
3. Стандартизированная отладка USB-связи: Используйте профессиональные инструменты, такие как Ellisys USB Explorer и LeCroy USB Analyzer, для захвата данных USB-передачи, выявления сбоев перечисления устройств и ошибок анализа протокола. Используйте инструменты Vivado Logic Analyzer и Quartus SignalTap для мониторинга внутренних шинных сигналов ПЛИС и состояния обработки в реальном времени.
4. Оптимизация задержки системы: Использовать изохронные конечные точки USB для передачи видео в реальном времени; настроить небольшие буферы фиксированного размера для снижения задержки хранения данных; использовать конвейерную обработку FPGA и технологии параллельных вычислений для ускорения работы алгоритмов; подключать камеру напрямую к PHY-чипу и избегать USB-концентраторов для устранения дополнительных задержек.
Будущие тенденции развития
С итеративным обновлением стандартов передачи USB и технологий ПЛИС-чипов, интегрированные системы машинного зрения на основе USB-камер и ПЛИС будут развиваться в сторону более высокой пропускной способности, меньшей задержки и более низкого порога входа. Три ключевых направления развития следующие.
1. Популяризация интеграции USB4 и Thunderbolt: интерфейсы USB4 и Thunderbolt 4 поддерживают максимальную пропускную способность 40 Гбит/с, что обеспечивает обработку видео сверхвысокой чёткости 8K в реальном времени. Следующее поколение FPGA будет интегрировать собственную логику контроллера USB4, что исключит необходимость во внешних PHY-чипах и дополнительно снизит задержку системы и аппаратный объём.
2. Популяризация недорогих FPGA для периферийного ИИ: Недорогие FPGA начального уровня, такие как Artix-7 и Cyclone V, постепенно оснащаются облегченными модулями ускорения ИИ, что обеспечивает маломощные и недорогие периферийные ИИ-приложения для компьютерного зрения в умных домах и небольших IoT-устройствах.
3. Стандартизация проектирования интерфейса FPGA-USB: Отраслевые организации и производители FPGA совместно продвигают стандартизацию интеграции USB-FPGA, выпуская унифицированные эталонные проекты и универсальные IP-ядра, что снижает технический порог для разработчиков и обеспечивает быстрое развертывание систем компьютерного зрения.
Заключение
Архитектура прямой интеграции без использования CPU полностью решает проблемы задержки и нерационального расходования ресурсов, характерные для традиционных решений на основе USB-камер и ПЛИС. Две ключевые стратегии — стек протокола UVC на базе ПЛИС и мост USB-to-AXI — в полной мере раскрывают преимущества ПЛИС в области параллельной обработки и аппаратного ускорения, обеспечивая сверхнизкую задержку передачи, управление параметрами камеры в реальном времени и эффективное использование ресурсов. Данные решения широко применимы в промышленном контроле, медицинском мониторинге, автомобильном зрении и сценариях периферийного ИИ. В реальной инженерной разработке максимальная производительность системы достигается за счет рационального подбора аппаратного обеспечения, повторного использования официальных IP-ядер и целенаправленной оптимизации задержек. С постоянным совершенствованием протоколов передачи и ростом производительности микросхем интегрированные системы видеозрения на основе USB-камер и ПЛИС станут основным малозатратным и высокопроизводительным решением в области периферийного видеозрения реального времени.