К содержимому
  1. Главная
  2. Блог
  3. Модули камер с DCMI для STM32: обзор параллельных камер Arducam

Модули камер с DCMI для STM32: обзор параллельных камер Arducam

25 июня 2021 · По материалам Arducam

Цифровой интерфейс камеры (DCMI) в STM32: что это и как он работает

На микроконтроллерах STM32 работают миллионы устройств, но до 2017 года поддержки DCMI в них не было. В то время подключать камеры к этим микроконтроллерам позволяли камеры Arducam с SPI. В 2017 году STMicroelectronics добавила DCMI в новые семейства STM32 — так устройства IoT получили машинное зрение официальным путём.

DCMI — сокращение от Digital Camera Memory Interface, термин STMicroelectronics. Проще говоря, DCMI — синхронная параллельная шина данных, через которую некоторые микроконтроллеры STM32 напрямую работают с КМОП-камерами разрядностью 8, 10, 12 или 14 бит. Это официальный способ встроить сенсор во множество устройств на STM32.

Возможности цифрового интерфейса камеры (DCMI)

  • Настраиваемый параллельный интерфейс данных — до 14 линий данных (D13–D0).
  • Два режима захвата: Snapshot — один кадр, Continuous grab — непрерывный поток кадров.
  • Поддержка прогрессивного видео в 8-битном формате, YCbCr 4:2:2 и RGB565, а также сжатых данных JPEG без ограничений на входе.
  • Обрезка и масштабирование принятого изображения.
  • Режимы пониженного энергопотребления для разных состояний (Run, Sleep, Stop/Standby).

Распространённые интерфейсы камер

Интерфейс DVP. Digital Video Port (DVP) — параллельный интерфейс камеры. Обычно это шина данных на 8–16 бит, сигналы HSYNC и VSYNC для кадровой синхронизации и тактовый сигнал PCLK, выровненный по центру относительно данных на стороне приёмника. Камеры с DVP полностью совместимы с DCMI в STM32.

Интерфейс MIPI CSI-2. MIPI — Mobile Industry Processor Interface; CSI — последовательный интерфейс камеры из одной пары тактовых линий и 1–4 линий данных. Это распространённый простой высокоскоростной протокол, в первую очередь для передачи изображений и видео по схеме «точка — точка» между камерой и хостом. Камеры MIPI напрямую с DCMI в STM32 не совместимы, но Arducam умеет подключать их и к обычному DCMI. Чтобы подобрать решение MIPI → DCMI для STM32, напишите нам на quote@arducam-russia.ru.

Интерфейс LVDS. LVDS (Low-voltage differential signaling) — низковольтная дифференциальная передача сигналов. Она даёт очень высокие скорости — гигабиты в секунду — при очень низком энергопотреблении и часто встречается в камерах Sony. LVDS тоже состоит из одной пары тактовых линий и 1–4 линий данных. Как и MIPI, его не поддерживает DCMI в STM32 напрямую. Чтобы узнать, как подключить камеру LVDS к микроконтроллеру STM32, напишите нам на quote@arducam-russia.ru.

Как работает DCMI

Блок-схема интерфейса DCMI в STM32
  • Синхронизатор DCMI управляет тем, как данные с модуля камеры поступают в экстрактор данных, буфер FIFO и 32-битный регистр данных.
  • Экстрактор данных DCMI обрабатывает данные и упаковывает их в FIFO на 4 слова, откуда они затем попадают в 32-битный регистр.
  • Каждый раз, когда 32-битный блок данных заполнен, система отправляет запрос DMA.
  • DMA забирает данные из регистра и передаёт их в нужную область памяти.
  • Как обрабатывать данные дальше, разработчик решает под задачи своего проекта.

Подробное описание возможностей DCMI — в руководстве по применению AN5020 от ST.

DCMI и подключение камер к STM32: два типа микроконтроллеров STM32

Типы плат STM32 по поддержке DCMI

Хорошая новость: благодаря поддержке камер через DCMI часть плат STM32 пришла в компьютерное зрение. В подкрепление STMicroelectronics добавила в свои программные инструменты (STM32Cube) пакет функций FP-AI-VISION1 с готовыми примерами — распознаванием продуктов питания и обнаружением присутствия человека.

Но удачным решением для 32-разрядной платформы STM32 DCMI не назовёшь: он делит всё семейство из 1168 микроконтроллеров на две группы:

1. Микроконтроллеры STM32 с поддержкой DCMI

  • серия F7
  • серия F2
  • часть серии F4
  • серия L4
  • серия H7

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

2. Микроконтроллеры STM32 без поддержки DCMI

  • серия F1
  • серия L1
  • серия F0
  • серия F3
  • серия L0
  • большинство плат серий F2 и F4
  • серия U5
  • серия L5

Эти платы вышли до появления DCMI, и интерфейса камеры у них нет.

Как подключить камеру к микроконтроллеру STM32 без DCMI

Камеры Arducam с SPI для плат STM32 без DCMI

По данным Arducam, модули камер Arducam с SPI — лучшая альтернатива DCMI по двум причинам:

  1. Они добавляют поддержку камер платам STM32 без интерфейса DCMI.
  2. На микроконтроллерах STM32 с DCMI они хорошо дополняют штатный интерфейс, когда на одной плате нужно несколько камер.
Модуль камеры Arducam 5MP Plus (OV5642) с SPI
Модуль камеры Arducam Mini 2MP Plus (OV2640)
  • Arducam 5MP Plus — мини-модуль камеры OV5642 с SPI (шилд) для Arduino UNO, Mega2560 и Raspberry Pi Pico
  • Arducam Mini 2MP Plus — модуль камеры OV2640 с SPI для Arduino UNO, Mega2560 и Raspberry Pi Pico
Серия камер Arducam с SPI для STM32

Подробнее о камерах Arducam с SPI — в статье «Камеры с SPI для плат STM32 без DCMI: Arducam Mini на 2 Мп и OV5642 на 5 Мп» (опубликована 5 июня 2021 года).

Параллельные модули камер Arducam с DCMI для отладочных плат STM32

Параллельные модули камер Arducam, совместимые с DCMI

Для старших плат STM32 с поддержкой DCMI Arducam выпускает большую линейку совместимых модулей камер на десятках разных сенсоров. Их можно доработать под требования любой задачи.

Поддерживаемые сенсоры:

  • OV2640
  • OV9655
  • OV5640
  • OV5642
  • S5K5CAGA
  • NT99141
  • MT9D111
  • OV3640
  • OV3660
  • MT9P111
  • S5K4ECGX

Arducam также делает заказные камеры на любых сенсорах и с любыми объективами.

Сенсор OV2640

Подробнее о сенсоре OV2640 — в статье «OV2640: характеристики, даташиты, камеры, особенности и аналоги» (опубликована 16 декабря 2020 года).

Камеры Arducam для STM32: планы

Модули камер Arducam для платформы STM32

На момент публикации Arducam не собиралась останавливаться на десятке камер для STM32. Компания планировала сосредоточиться на едином SDK для камер с API для расширенного управления камерой (экспозиция, усиление, частота кадров, разрешение, формат пикселей) и простой интеграцией любых параллельных модулей камер Arducam. Цель — упростить работу над проектами с камерами на любой серии STM32: подключить сенсор к плате, скачать SDK и сразу приступить к работе, не тратя время на проблемы совместимости.

В планах Arducam — целое семейство камер с DCMI с хорошо поддерживаемой средой разработки для множества задач IoT, которым пригодится встраиваемое машинное зрение.

Чтобы обсудить камеру для вашего проекта на STM32, напишите нам на quote@arducam-russia.ru.

Ещё по теме

Запросить цену

Укажите количество — пришлём коммерческое предложение.