Выбор управляющего процессорного модуля для встраиваемых систем
В случае, когда перед разработчиком стоит задача, для которой не хватает производительности микроконтроллера или интерфейсы, предусмотренные, к примеру, областью применения, нестандартны, раньше существовал единственный выход: использовать универсальные или специализированные микропроцессоры, внешнюю память, загрузочные диски и поддержку разнообразной периферии. Но такой путь требовал больших временных затрат от разработчиков и программистов. В то же время аналогичные задачи решались одновременно в разных частях света разными инженерами. Однако переносимость таких решений оказывалась невысокой из-за наличия в каждом случае специфичных ограничений. Такой подход был главенствующим, пока не появились готовые недорогие процессорные модули.
Процессорный модуль (Computer-On-Module, CoM) является дальнейшим развитием «систем на кристалле» (System-On-Chip, SoC). Такие модули характеризуются небольшими размерами, наличием стандартных интерфейсов и хорошей поддержкой операционными системами. При их использовании экономится время на разработку, тестирование, поддержку, написание системного ПО и адаптацию операционных систем, поскольку чаще всего все это уже входит в готовый процессорный модуль. Таким образом его использование существенно сокращает время выхода готового устройства на рынок.
Сам термин CoM был введен компанией VDC Research Group, Inc. (бывшая Venture Development Corporation, USA) для описания целого класса производимых компьютерных плат, он прижился и широко используется, в основном после принятия промышленного стандарта COM-Express.
Классификация процессорных модулей
Структурно процессорные модули можно разделить на модули высокой, средней и низкой производительности, причем все они отличаются низким потреблением при достаточно высокой вычислительной производительности в своем классе, так как разрабатываются для встраиваемых применений, где задачи отвода тепла внутри компактного корпуса являются критичными при выборе типа модуля.
Высокопроизводительные модули
Высокопроизводительные модули практически всегда требуют активного охлаждения, потребляют 5–10 Вт и более и являются полноценными компьютерами, основанными чаще всего на микропроцессорах фирмы Intel. Они достигают производительности топовых версий Intel Core i7 с практически неограниченным количеством памяти в виде модулей расширения и высокоскоростными интерфейсами, такими как PCIexpress, GBE, SATA3 и т. д. Основная задача таких модулей — предоставить все возможности высокопроизводительного персонального компьютера в компактном одноплатном исполнении с возможностью подключить к ним как стандартные платы расширения, так и специализированные, рассчитанные на решение конкретной задачи. Стандартизация таких модулей производится по внешним габаритам, типам и расположениям разъемов:
- ETX (Embedded Technology eXtended — «расширение встраиваемых технологий», [1]) — форм-фактор материнских плат, имеющий размеры 95×114 мм и стандартное расположение интерфейсных разъемов. На разъемах выведены порты ввода/вывода архитектуры PC/AT (последовательный, параллельный и т. д.), USB, аудио- и видеоразъемы, Ethernet, а также полноценная реализация шин ISA и PCI.
- XTX — это развитие стандарта ETX с 75%-ной совместимостью по контактам [2]. В XTX убрана шина ISA и добавлены PCI-Express, SATA и LPC. На сегодня эти стандарты уступают по популярности более новому стандарту COM-Express, однако по-прежнему поддерживаются достаточно большим количеством производителей [1, 2]. В качестве примеров ETX и XTX можно рассмотреть модули от таких производителей, как Avalue, Congatec, Kontron, MSC, Norco, SECO и др.
- COM-Express (COMe) — это стандарт «компьютера-на-модуле», созданный для замены устаревших ETX и XTX [3]. Он был представлен в 2005 г. консорциумом PIСMG [3] и определяет как размер модуля (рис.1), так и его интерфейсы. На сегодня вышла вторая ревизия стандарта, которая описывает семь различных типов цоколевки разъемов, и четыре возможных форм-фактора модулей (от 55×84 до 110×155 мм). Стандарт характеризуется применением в высокопроизводительных системах, обязательна поддержка Ethernet10/100/1000, SATA, LPC, 8×USB (включая поддержку USB 3.0), 6×PCI-Express, аудио, видео. Питание 12 В. К самым известным производителям модулей COMExpress можно отнести RadiSys и Kontron, Congatec и AdLink.
Кроме того, к высокопроизводительным модулям можно отнести процессорные платы магистрально-модульных систем, таких как CompactPCI и AdvancedTCA.
CompactPCI — это системная шина, широко используемая в промышленной автоматике и магистрально-модульных системах. Электрически она совместима с шиной PCI, но позволяет подключить больше устройств. Поддерживается «горячее» подключение плат, но в настоящее время данный стандарт фактически устарел по пропускной способности. Основной конкурент — шины VME, VME32, VME64, используемые в военной технике НАТО, но в России данные стандарты распространения не получили. Разрабатываются расширения, такие как PCI-E, но перспективы их использования не определены.
AdvancedTCA, MicroTCA (Telecommunications Computing Architecture — «архитектура для телекоммуникационных вычислений») — архитектура, разработанная при участии более 100 компаний — производителей промышленного и телекоммуникационного оборудования под руководством PICMG и являющаяся новым поколением стандартизованных телекоммуникационных вычислительных платформ, пришедшим на смену устаревшего CompactPCI. Механически представляет собой стандартные корзины для подключения плат стандартных размеров со стандартными разъемами и расположением контактов на них. Поддерживает «горячее включение» плат и несколько топологий связи между ними. Основной средой передачи информации между платами является Ethernet, хотя дополнительно на разъеме есть и тестовые сигналы JTAG, тактовые импульсы (clock), а также сигнальные провода, проходящие через коммутатор сигналов (Switch Fabric). Дополнительно в стандарте описана система охлаждения процессорных модулей, единая на всю корзину. Процессорные модули с интерфейсом TCA могут использоваться в широком диапазоне применений — как для построения кластера для облачных вычислений (где основной интерфейс между модулями Ethernet), так и для телекоммуникационных решений с синхронными последовательными интерфейсами, подключением видеокамер, звука, внешних датчиков и т. д.
Малопроизводительные модули
До недавнего времени к малопроизводительным можно было отнести различные модули SoDIMM и 2,5” одноплатные компьютеры, выполненные на ARM-процессорах (чаще всего производителями используется ARM9). Стандартизации таких модулей не предполагалось, поэтому каждый производитель сам определял форм-фактор и срок жизни выпускаемой продукции. Что, естественно, влекло за собой определенные риски для разработчиков, так как изначально никакой совместимости модулей от разных производителей не предполагалось. Однако на сегодня ситуация немного изменилась: с выходом спецификации Revision 2.0 открытого промышленного стандарта Qseven [4], с одной стороны, и выпуском новых малопотребляющих процессоров (к примеру, таких как Freescale i.MX6 Solo, рис. 2), с другой. Сейчас у разработчиков появилась возможность использовать малопроизводительные модули без рисков для срока жизни полученной продукции. Поскольку соблюдение стандарта различными производителями означает взаимозаменяемость модулей между собой, разработку не придется начинать с нуля: можно просто подобрать аналогичный модуль в стандарте Qseven от другого производителя. Кроме этого, новая ревизия спецификации Qseven предусматривает модули половинного размера — всего 40×70 мм (рис. 3), что как нельзя лучше подходит для сегмента начальных и малопроизводительных систем.
Модули средней производительности
В том случае, когда нужны недорогие процессорные модули, отличающиеся низким потреблением и относительно высокой вычислительной производительностью, которые не требуют активного охлаждения, единственное существующее на данный момент решение — это модули, также выполненные в стандарте Qseven. Кроме того, по сравнению с остальными открытый промышленный стандарт Qseven дает разработчику наибольшую гибкость при разработке технических устройств, поскольку является кросс-платформным для архитектур ARM и x86. Другими словами, модули, выполненные на процессорах x86, и модули, выполненные на процессоре ARM, являются взаимозаменяемыми в рамках стандарта Qseven. Это значит, что, выполнив разработку устройства на привычном процессоре x86, в дальнейшем можно будет перейти на ARM-процессор с целью снижения энергопотребления устройства и общей себестоимости [5].
Что касается доступности модулей и срока их жизни, то здесь можно отметить следующие положительные особенности. С одной стороны, в модулях используются встраиваемые процессоры с долгим сроком жизни таких производителей, как Intel, AMD, VIA Technology, NVidia, Texas Instruments и Freescale. С другой стороны, на сегодняшний момент насчитывается уже более 50 производителей процессорных модулей в стандарте Qseven. К тому же при необходимости можно на уже выпускаемой продукции заменить процессорный модуль Q7 на аналогичный собственной разработки. При этом срок выпуска продукции (time-to-market) получится небольшим, и можно будет перейти на собственную вычислительную платформу или иметь широкий диапазон процессорных модулей в едином стандарте под разные задачи.
Таким образом, у разработчика есть выбор не только между производителем как процессора, так и самого модуля, что дает большую свободу в выборе наиболее подходящего устройства, исходя из поставленной задачи (таблица).
Производитель | Начальный уровень | Мультимедиа | Высокая производительность, вычислительные задачи |
Ответственное применение, широкий температурный диапазон |
---|---|---|---|---|
Seco | QuadMo747-X/i.MX6 | uQ7-OMAP5 | uQ7-OMAP5 | QuadMo747-X/i.MX6 |
QuadMo747-X/OMAP3 | QuadMo747-X/T30 | QuadMo747-GSeries | QuadMo747-X/OMAP3 | |
QuadMo747-Z5xx | QuadMo747-X/T20 | QuadMo747-X/i.MX6 | QuadMo747-XL | |
QuadMo747-X/i.MX6 | QuadMo747-X/T30 | QuadMo747-EXTREME | ||
QuadMo747-X/i.MX51 | QuadMo747-E6xx | |||
QuadMo747-GSeries | ||||
QuadMo747-E6xx | ||||
Avalue | EQM-CDV | |||
EQM-A50M |
Если рассматривать стандарт Qseven более подробно, то можно отметить следующие основные особенности, выгодно отличающие его от других стандартов «компьютеров-на-модуле».
Во-первых, стандарт дает полное логическое описание всех сигналов, получаемых из модулей с процессорами как на ядре ARM, так и на архитектуре x86. В том числе, это касается:
- высокоскоростных интерфейсов, таких как PCI Express, SATA, USB 2.0+, GigabitEthernet и т. д.;
- графических интерфейсов, таких как LVDS, SDVO, HDMI и DisplayPort;
- основных промышленных интерфейсов (включая CAN, SPI, SDIO, I2C и т. п.) (рис. 4).
Во-вторых, в стандарте приведены:
- полное электрическое описание сигналов указанных интерфейсов;
- полное конструкторское описание соединительного разъема (недорогого и доступного MXM) с указанием местоположения сигналов на нем;
- конструкторское описание самих модулей.
Размеры модулей всего 70×70 мм, тогда как для COM-Express это 125×95 мм, а для ETX/XTX — 114×95. Готовые одноплатные компьютеры формата PC/104 имеют больший размер — 96×90 мм. Данная информация носит открытый характер и доступна любому желающему в документации на стандарт Qseven [6, 7].
Опыт использования модулей
Для построения многоканального видеорегистратора с хранением данных на жестком диске и управлением по локальной сети была предложена структура, показанная на рис. 5.
Блоки AVx содержат АЦП аудио и видео. DSPx обеспечивает сжатие полученных данных и отправку сжатого потока через FPGA на процессорный модуль PC. Процессорный модуль принимает данные от нескольких видеокамер, формирует из них контейнеры для хранения и записывает на жесткий диск, а также прокидывает сквозной канал для просмотра и архивирования данных по локальной сети.
Поток данных внутри такой системы оказался достаточно большим, и малопроизводительные модули для реализации оказались непригодны. Высокопроизводительные модули выделяют слишком много тепла, так что внутри компактного регистратора их установить невозможно. Поэтому в качестве процессорных модулей были выбраны Qseven — SECO QuadMo747-Z5xx, содержащие процессор Intel Atom Z500 series 1,6 ГГц, 1 Гбайт памяти DDR2, GBE и SATA2. Наличие NAND-drive диска позволило установить прямо на модуль операционную систему Linux, чтобы не зависеть от наличия и исправности жесткого диска. После оптимизации ПО и уменьшения количества одновременно используемых камер оказалось возможным перейти на модуль с частотой процессора не 1,6, а 1,1 ГГц, а также перейти на процессорные модули с ARM-процессорами. Внешний вид устройства представлен на рис. 6.
Выбор описанных модулей существенно сократил время разработки устройства и сделал его проще, надежнее и функциональнее. Например, не заложенная изначально функция беспроводного управления регистратором оказалась возможной с установкой миниатюрного модуля USB-Wi-Fi. Точное время может быть получено с внешнего устройства GPS, также подключенного через USB. Для расширения температурного диапазона использования устройства впоследствии был подключен программно управляемый вентилятор охлаждения. В результате получился многофункциональный компактный прибор, выполняющий все необходимые заданные функции и даже больше. Есть запас ресурсов по расширению функциональности.
Выводы
В статье были рассмотрены различные варианты управляющих процессорных модулей для встраиваемых систем. Можно сделать следующие выводы:
- В перспективных разработках в качестве компактных высокопроизводительных модулей стоит рассматривать COM-Express. Они производительные, недорогие, но требуют внешнего охлаждения или большого радиатора.
- Для построения кластера из большого числа как однородных, так и разнородных модулей удобно использовать стандарт AdvancedTCA или его уменьшенный вариант MicroTCA. Процессорные модули в таких системах дороже, чем тот же COM-Express, но зато легко собираются в кластеры, в корзине стандартно находится блок охлаждения, решены вопросы обмена информацией между модулями питания и резервирования.
- В качестве малопотребляющего производительного модуля, способного работать без активного охлаждения, рекомендуется использовать модули стандарта Qseven. Это целое семейство процессорных модулей различной производительности, построенных на различных платформах, но имеющих стандартные интерфейсы, такие как Ethernet, USB, SATA, SPI, LPC и др. Есть опыт практического использования серийных устройств на базе таких модулей.
- Для управления медленными процессами можно использовать любой из целого класса малопроизводительных модулей, подходящий по размерам, интерфейсам и цене.
- www.etx-ig.org
- www.xtx-standard.org
- www.picmg.org
- www.qseven-standard.org
- Некрасов А. Как сократить время разработки изделий на процессоре с ядром ARM: процессорные модули Qseven // Компоненты и технологии. 2012. № 3.
- Qsevenpinout, electromechanical description and implementation guidelines. Revision 1.20. Qseven Consortium. 12.08.2010.
- Qseven Design Guide. Revision 1.0. Qseven Consortium. 18.04.2011.