Концепции архитектуры процессорных плат для встраиваемых систем машинного зрения
Встраиваемая система машинного зрения представляет собой комбинацию миниатюрного модуля на базе камеры и небольшой платы обработки изображения (процессорной платы). Встраиваемые системы машинного зрения находят применение в самых различных областях — от медицинских диагностических устройств до систем автоматизации производства.
В отличие от систем на базе классических ПК, во встраиваемых системах машинного зрения могут использоваться самые различные процессоры. В этой статье рассматриваются разнообразные варианты архитектуры процессорных плат и предлагается обзор существующих на сегодняшний день концепций.
Однокристальная система (SoC)
Однокристальная система (System-on-Chip — SoC) выступает сердцем любой системы со встраиваемой архитектурой. Именно она отвечает за фактическую обработку данных изображения. Во многих случаях термин «однокристальная система» используется как эквивалент слова «процессор». В действительности же SoC содержит в себе больше, чем обычный процессор. Помимо одноядерного или многоядерного ЦП (центрального процессора), на единственном кристалле размещены такие компоненты, как ГП (графический процессор), контроллер интерфейса (например, USB, Ethernet, I²C и т. д.), внутренняя система шин, мультимедийные компоненты (например, средства кодирования и декодирования видео), блок управления внутренним питанием, и многие другие. Одним словом, SoC содержит множество основных компонентов ПК в чрезвычайно компактной форме.
Среди заметных представителей нынешнего поколения однокристальных систем можно назвать NVIDIA Tegra K1, Qualcomm Snapdragon 820 и NXP I.MX.
Разработка SoC была по большей части обусловлена стремительным распространением смартфонов и планшетов. Крупные производители, такие как Samsung и Apple, могут себе позволить производить свои собственные однокристальные системы. Разработка SoC влечет миллионные (если не миллиардные) инвестиции, что просто не под силу многим компаниям.
SoC по сути представляет собой вычислительный блок со встраиваемой архитектурой. Она включает в себя ЦП, ГП, систему шин и контроллер интерфейса.
Одномодульная система (SoM)
Малые и средние технологические компании оказались меж двух огней: с одной стороны, однокристальные системы, предлагающие мощные процессоры в миниатюрном исполнении, отвечают всем требованиям, которые предъявляются в производстве современных высокопроизводительных компактных устройств, тогда как с другой стороны, создание проприетарной однокристальной системы влечет колоссальные затраты на разработку — небольшие компании просто не в состоянии справиться с этой задачей своими силами. Им удобнее приобретать готовые однокристальные системы у крупного производителя.
Ряд компаний, включая Toradex, Inforce, SECO и другие, пытаются разрешить эту дилемму путем разработки так называемых одномодульных систем (System-on-Module — SoM), или одномодульных компьютеров (Computr-on-Module — CoM). SoM содержит однокристальную систему, а также другие важные компоненты, в том числе оперативную память, блок контроля питания и дополнительные системы шин для управления прочими компонентами — и повышения практичности однокристальной системы. Образно говоря, если представить однокристальную систему как перерабатывающий завод без связи с внешним миром, то в составе одномодульного компьютера у этого «завода» появляются склад, подключенные системы снабжения и выход на улицу, а также возможность взаимодействия с директором завода.
SoM оснащается одним или несколькими — как правило, стандартизированными — разъемами, которые используются ей (как и всеми ее компонентами, включая SoC) для взаимодействия с внешним миром. Справедливости ради следует отметить, что на данный момент посредством этих разъемов невозможно напрямую подключать к одномодульной системе внешние устройства (например, сетевые устройства, блоки питания или камеры) — для этого требуется несущая плата.
Тем не менее, если идет речь об одномодульной системе, то среди ее компонентов уже присутствует однокристальная система.
Одномодульная система с несущей платой
Как уже говорилось выше, однокристальная система содержит только контроллеры интерфейса. В ней отсутствует физический разъем (например, разъем Ethernet). Этот пробел восполняет несущая плата. Как описано выше, одномодульные системы оснащены стандартным разъемом на нижнем торце, посредством которого к ним можно подключить несущую плату. На несущей плате предусмотрены физические разъемы для подключения периферийных устройств, таких как дисплеи, блоки управления и камеры. В отличие от однокристальной или одномодульной системы, разработка несущей платы — относительно несложная задача. Модульный подход во встраиваемых технологиях предполагает приобретение готовой одномодульной системы и разработку собственной несущей платы. Это менее затратная концепция по сравнению с полностью индивидуальным проектом (см. ниже), однако при этом она характеризуется значительной гибкостью, поскольку разработчик самостоятельно решает, какие разъемы должны быть на несущей плате. На несущую плату можно вывести разъемы USB, GigE или проприетарные разъемы для камер, в том числе 28-контактный разъем LVDS для подключения одной или нескольких камер dart BCON.
Примечание. В некоторых случаях в одномодульных системах уже предусмотрены отдельные физические разъемы. К примеру, одномодульный компьютер Xilinx Zynq в комплекте Basler Powerpack for Embedded Vision оснащен разъемами USB 2.0 и GigE. Однако, это, скорее, исключение, чем правило.
Одноплатный компьютер (SBC)
Помимо концепции «одномодульная система с несущей платой», также можно выбрать одноплатный компьютер (Single-Board Computer — SBC). SBC в целом представляет собой нечто большее, чем просто одномодульную систему с несущей платой, реализованную на единственной печатной плате (отсюда название «одноплатный компьютер»). Наиболее известная модель SBC — Raspberry Pi. На плате этого компьютера уже предусмотрено несколько разъемов (четыре разъема USB2, один разъем MIPI CSI-2 и другие), которые можно использовать для подключения к нему периферийных устройств без необходимости разработки дополнительной несущей платы. Преимущество этой концепции в том, что на базе одноплатного компьютера можно без лишних усилий создать встраиваемую систему. Однако этой концепции недостает гибкости — в Raspberry Pi невозможно будет добавить, например, пятый разъем USB 2.0, когда он потребуется. Следовательно, при отсутствии существенных финансовых и временных затраты на разработку одноплатного компьютера, это также наименее гибкая концепция из всех. Если компания планирует производить на продажу центральные процессоры специального назначения крупными партиями, то не рекомендуется рассматривать в качестве варианта SBC, поскольку в большинстве случаев он не содержит требуемые разъемы или компоненты. Так мы подошли к последней концепции архитектуры встраиваемых систем — индивидуальный проект.
Индивидуальный проект
Чтобы представить все разнообразие вариантов архитектуры встраиваемых систем, следует также рассмотреть индивидуальный проект. Индивидуальный проект означает разработку одноплатного компьютера для решения определенной задачи — но не для продажи в виде самостоятельного компонента. Такие одноплатные компьютеры, как правило, устанавливаются в более крупные системы. Итак, индивидуальный проект предполагает реализацию одномодульной системы с несущей платой в особой конфигурации на печатной плате.
Рассмотрим пример. Компания, занимающаяся проектированием медицинских приборов, разрабатывает портативное устройство для фотографического документирования и отслеживания состояния подозрительных пигментных пятен на коже. Одна из возможных концепций такой встраиваемой системы — SoM с несущей платой, однако этот подход не будет практичным по причине того, что одномодульная система, установленная на несущей плате занимает слишком много места. Кроме того, компания планирует продать несколько тысяч новых устройств. В данном случае экономически целесообразно разработать проприетарный одноплатный компьютер (одномодульную систему с несущей платой, реализованную на единственной печатной плате) — то есть процессорный блок, полностью адаптированный для решения конкретной задачи, который при этом отличается невысокой себестоимостью, поскольку содержит только те компоненты, которые действительно необходимы для данной встраиваемой системы.
Кроме того, компания планирует продать несколько тысяч новых устройств. В данном случае экономически целесообразно разработать проприетарный одноплатный компьютер (одномодульную систему с несущей платой, реализованную на единственной печатной плате) — то есть процессорный блок, полностью адаптированный для решения конкретной задачи, который при этом отличается невысокой себестоимостью, поскольку содержит только те компоненты, которые действительно необходимы для данной встраиваемой системы.
Резюме
Процессорная плата играет важную роль во встраиваемой системе машинного зрения. Проектирование процессорной платы базируется на нескольких концепциях.
Подходящая архитектура процессорной платы определяется объемом партии, ноу-хау, типом подчиненных систем и требованиями к обработке изображений. Возможен весь спектр вариантов: от почти классических систем машинного зрения с небольшим одноплатным компьютером до систем с модульной концепцией, построенных на базе одномодульных или однокристальных систем со специализированной несущей платой, и даже систем, разработанных по полностью индивидуальному проекту.
Чем меньше готовых компонентов в процессорной плате, тем выше затраты на ее разработку и интеграцию в готовую систему — однако при этом ее себестоимость будет значительно ниже, при условии производства крупными партиями. Какая концепция подходит для решения ваших задач? Надеемся, что эта статья поможет вам в принятии решения.