Как сократить время разработки изделий на процессоре с ядром ARM: процессорные модули Qseven

Как известно, разработка изделия с применением нового процессора на ядре ARM требует определенного времени. Ведь несмотря на то, что архитектура самого процессора с ядром ARM известна (т. к. лицензируется фирмой ARM), у разработчика остаются вопросы с подключением к процессору различной периферии и отдельных устройств. И эти вопросы требуют у разработчика определенного времени на изучение. Затем разработчику необходимо получить рабочий образец нового изделия, после чего необходимо часть времени потратить на его дальнейшую отладку. Это стандартный процесс разработки изделий на процессорах с ядром ARM, и в среднем этот процесс может занимать около года. Причем на решение вопросов аппаратного обеспечения приходится лишь 40—30% времени, а остальные 60—70% уйдут на разработку нового либо модернизацию уже существующего программного обеспечения для нового процессора. В результате время, необходимое для быстрого запуска в производство нового изделия, будет не очень эффективно потрачено на разработку. И один из главных вопросов, который стоит перед началом каждой новой разработки того или иного изделия с применением процессора с архитектурой ARM — как сократить время разработки.

Данная статья была написана для того, чтобы показать, каким образом можно значительно сократить время разработки изделий, базирующихся на процессорах с ядром ARM (причем независимо от семейства), используя принципы и стандарты, применяемые в архитектуре x86 уже много лет. И речь в ней пойдет об открытом стандарте Qseven.

Казалось бы, можно спросить — какое отношение разработка для архитектуры х86 имеет к разработке изделий с применением ARM? Действительно, в начале своего пути архитектуры x86 и RISC, а в дальнейшем и ARM, преследовали абсолютно разные задачи и были направлены на разные области применения. Архитектура x86 использовалась там, где требовалась высокая производительность и предполагалось наличие сложных математических задач с большим объемом вычислений, а RISC (а затем и ARM) пошли по пути снижения энергопотребления. Однако в данный момент четкие границы между этими двумя архитектурами постепенно размываются, особенно хорошо это заметно в области мобильных и переносных приборов и устройств.

Конечно, все зависит от конкретной задачи. Но очевидно, что с задачами, которые связаны с кодированием и декодированием видеоряда данных, отображением графического пользовательского интерфейса и т. п., процессоры на ядрах ARM старших семейств (Cortex A8, Cortex A9) справляются не хуже, чем процессоры младших моделей архитектуры х86 (Intel Atom, AMD Fusion и т. п). А по соотношению энергопотребление/производительность в данных задачах процессоры на ядре ARM значительно выигрывают. К тому же, если сравнивать стоимость изделий на ARM и на х86, то ARM выглядит весьма привлекательно в качестве недорогой платформы для новых разработок.

Однако очень часто для решения описанных выше задач за основу берутся именно изделия на x86. Почему?

Ответ прост — процесс разработки любого нового изделия всегда начинается с процесса поиска. Поиска оптимального пути по созданию требуемого изделия, удовлетворяющего всем заданным в ТЗ характеристикам. Причем очень часто оптимальный путь может оцениваться по времени, затраченному на разработку изделия. Конечно, так же важны и другие ресурсы (к примеру, стоимость разработки), но очень часто именно время является ключевым показателем.

Поэтому при разработке нового изделия всегда появляется вопрос: каким путем лучше пойти, чтобы обеспечить требуемую вычислительную мощность изделия — использовать стандартное готовое устройство или же разработать свое собственное?

С одной стороны, используя стандартные устройства можно значительно сократить время разработки изделия, минимизируя при этом стоимость самой разработки. Особенно это актуально, когда речь идет о небольших серийно выпускаемых партиях изделия. Однако при этом необходимо учитывать, что разработчик при этом зависит от длительности выпуска выбранного устройства. И если производитель устройства по какой-либо причине снимет его с производства, разработку придется начинать заново. К тому же, стандартное устройство выпускается производителем с жестко фиксированными размерам и характеристиками (например, жестко ограниченный набор интерфейсов), и разработчик никак не может влиять на это.

С другой стороны, собственная разработка дает возможность сократить стоимость конечного изделия за счет подбора элементной базы. Что более важно, разработчик волен сам определять параметры устройства и его характеристики — размер, количества интерфейсов и т. п. Однако при небольших партиях серийно выпускаемого изделия разработка такого устройства станет довольно дорогой. К тому же, сама разработка может затянуться на многие месяцы, и можно просто не успеть вывести изделие на рынок либо представить его заказчику к установленному сроку.

Золотая середина между этими двумя путями была найдена во встраиваемых системах на архитектуре х86 в начале 2000 года, когда с появлением первого стандарта «компьютера на модуле» (Computer-on-Module, CoM [1]) стало возможным сократить время разработки изделия, имея при этом возможность определять размеры устройства и необходимые интерфейсы.

Модульный стандарт CoM очень быстро завоевал популярность среди производителей встраиваемых систем всем мире именно благодаря простоте и скорости разработки готовых изделий с нестандартными требованиями к размеру, интерфейсам и т. п. Так же, благодаря модульному принципу стандарта CoM, стало возможным быстрое и безболезненное обновление версий изделия и взаимозаменяемость модулей различных производителей встраиваемых систем между собой. К примеру, один из таких стандартов «компьютеров на модуле» — COM Express — очень хорошо известен в России благодаря таким производителям, как Kontron, RadiSys, Advantech и т. п. Существуют и другие стандарты компьютеров-на-модуле, такие, как ETX и XTX, интересующихся ими более подробно мы рекомендуем обратится к [2] и [3].

Однако, что касается изделий, использующих процессоры с архитектурой ядра ARM, здесь до сих пор нет единого стандарта разработки. Производитель процессора обязан поддерживать саму архитектуру ядра, но подключение различных устройств периферии остается за разработчиком изделия. Поэтому каждый производитель процессоров с ядром ARM вынужден выпускать свое руководство по разработке, которое разработчикам необходимо изучить прежде, чем начинать новую разработку. Таким образом, разработка изделий на ARM требует намного больше времени и серьезных навыков инженеров и программистов, чем разработка на х86.

Казалось бы, применение принципов CoM в случае с процессорами на ядре ARM могло существенно снизить нагрузку на разработчиков, сократив при этом время и стоимость самой разработки так же, как это было сделано и с процессорами на x86. Но вся проблема состояла в том, что до 2010 года не было стандарта компьютера-на-модуле для процессоров с ядром ARM.

Ситуация изменилась после того, как компания SECO [4] разработала спецификацию нового стандарта CoM — Qseven [5]. Как и остальные стандарты «компьютеров на модуле», стандарт Qseven дает логическое и электрическое описание всех электрических сигналов, используемых в стандарте, и тип электромеханического разъема между двумя частями CoM — вычислительным (или иначе процессорным) модулем и платой-носителем (или кросс-платой). На процессорном модуле расположен центральный процессор, оперативная память и т. п. Другими словами, процессорный модуль — это вычислительная часть устройства, которая изготавливается тем или иным производителем. Кроме этого, в версии 1.2 стандарта Qseven стало возможным использовать в одном и том же устройстве как модули с процессорами x86 (Intel, AMD, VIA), так и модули с процессорами на ядре ARM (Texas Instruments OMAP3 и OMAP4, Freescale i.MX28/i.MX51, NVIDIA Tegra2 и т. п.) [6].

Таблица 1. Основные модули SECO Qseven.

  Quadmo747 Quadmo747 / EXTREME Quadmo747-X / OMAP3 Quadmo747-X / i.MX51 Quadmo747-X / i.MX28 Quadmo747-X / T20
ЦП Intel Atom серии Zxx (1,1 или 1,6ГГц) Intel Atom серии ZxxPT (1,1 или 1,33ГГц) Texas Instruments OMAP 35xx (Cortex A8 600 МГц  – 1ГГц) Freescale i.MX513/i.MX515, (OpenGL ES 2.0 3D и OpenVG 1.1 2D графические ускорители) Freescale i.MX28 с ядром 454 МГц ARM926EJ-S NVIDIA Tegra T290 с двухъядерным ЦП ARM CORTEX-A9 MPCore, частота 1,0 ГГц
LVDS 18/24-разрядный, одноканальный (разрешение до1366x768 ) 18/24-разрядный LVDS 18/24-разрядный, разрешение до 800x480 18/24-разрядный LVDS, разрешение до 1680x1050
PCI Express До двух линий x1 1 линия x1 - До двух линий x1
USB 8x USB 2.0 1x USB OTG
2 x USB Host 2.0
1x USB OTG
4 x USB Host 2.0
6 x USB 2.0
Ethernet 1x GBE 1x GBE (опционально) 10/100 Base-T
SDIO 1x 8-разрядный, внешний интерфейс, 1x слот microSD 1x 4-разрядный, внешний интерфейс MMC/HC MMC/SD/SDHC/SDIO MMC/HC MMC/SD/SDHC/SDIO
1x слот microSD
MMC/SD/SDIO
1x слот microSD
MMC/SD
SATA 1х SATA - 2x SATA
I2C Bus Да
LPC Да
CAN - - Да
Размеры 70x70 мм

Внешний вид модуля Qseven с процессором NVIDIA Tegra2 от фирмы SECO приведен на рис. 1, а его характеристики приведены в табл. 1. Так же в табл. 1 даны краткие характеристики основных модулей SECO Qseven с описанием используемых процессоров и интерфейсов. Как видно из таблицы, разработчик может выбрать модуль именно с теми характеристиками, которые ему необходимы для решения конкретно его определенной задачи.

Модуль SECO Qseven с процессором NVIDIA Tegra2 на ядре Cortex-A9

Рис. 1. Модуль SECO Qseven с процессором NVIDIA Tegra2 на ядре Cortex-A9

В итоге, руководствуясь стандартом Qseven разработчику остается сконструировать кросс-плату, на которую выводятся только интерфейсы с процессорного модуля через электромеханический разъем MXM, имеющий 230 контактов. При этом кросс-плата может содержать только те необходимые интерфейсы, которые будут использоваться в изделии, и не содержать лишних. А так как вся вычислительная часть, включая процессор, вынесена на модуль, то разработка всего устройства (по сути, разработка кросс-платы) обходится значительно дешевле (и несравнимо проще), чем разработка платы, содержащей на себе процессор на ядре ARM. Кроме того, вполне реальную помощь может оказать и сам производитель. Так, компания SECO предоставляет электрическую схему собственной кроссплатформенной отладочной платы с описанием всех интерфейсов в формате OrCad. К примеру, часть электрической схемы, включающей описание последовательного интерфейса и интерфейса Ethernet, приведена на рис. 2.

Электрическая схема кросс-платформенной отладочной платы SECO для модулей Qseven в части интерфейсов COM и Ethetnet

Рис. 2. Электрическая схема кросс-платформенной отладочной платы SECO для модулей Qseven в части интерфейсов COM и Ethetnet

Если рассматривать стандарт Qseven более подробно, то можно отметить следующие основные особенности, выгодно отличающие его от других стандартов «компьютеров на модуле»:

  1. Стандарт дает полное логическое описание всех сигналов, получаемых из модулей с процессорами как на ядре ARM, так и на архитектуре x86. В том числе это касается:
    — высокоскоростных интерфейсов, таких как PCI Express, SATA, USB 2.0, Gigabit Ethernet, и т. д.
    — графических интерфейсов, таких как LVDS, SDVO, HDMI и DisplayPort
    — основных промышленных интерфейсов (включая CAN, SPI, SDIO, I²C и т. п.) (рис. 3)
  2. В стандарте приведено полное электрическое описание сигналов указанных интерфейсов
  3. В стандарте дано полное конструкторское описание соединительного разъема — недорогого и доступного электромеханического разъема MXM, с указанием местоположения сигналов на разъеме
  4. В стандарте дано конструкторское описание самих модулей. Их размеры всего 70х70 мм, тогда как для COM Express это 125х95 мм, для ETX/XTX — 114х95 мм. Готовые одноплатные компьютеры формата PC/104 имеют больший размер 96х90 мм (рис. 4)

Основные интерфейсы Qseven с высокой скоростью передачи данных

Рис. 3. Основные интерфейсы Qseven с высокой скоростью передачи данных

Сравнение размеров основных стандартов CoM

Рис. 4. Сравнение размеров основных стандартов CoM

Данная информация носит открытый характер и доступна любому желающему в документации на стандарт Qseven [7] и [8].

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

Однако, если с аппаратной частью все ясно, то остается последний серьезный вопрос — вопрос разработки программного обеспечения (или его модернизации). И если для архитектуры х86 данный вопрос не стоит столь остро (ведь программа, написанная для DOS 10 лет назад и сегодня будет работать на любом новейшем процессоре Intel), то для ARM, как это кажется на первый взгляд, это может стать проблемой. Но и тут принцип «компьютера на модуле» приходит на помощь. Давайте рассмотрим это на примере отладочного комплекта Qseven от производителя SECO.

Как известно, имея на руках отладочную плату того или иного процессора с ядром ARM, можно приступать к разработке программного обеспечения. Однако, к сожалению, такая отладочная плата может не содержать всех интерфейсов, необходимых для разрабатываемого устройства. В результате программное обеспечение на такой отладочной плате нельзя протестировать на все 100%, и возможные проблемы с подключением нужной периферии не смогут быть обнаружены.

Отладочный комплект SECO для модулей Qseven

Рис. 5. Отладочный комплект SECO для модулей Qseven

С другой стороны, имея на руках отладочный комплект SECO (рис. 5), разработчик получает в свое распоряжение кроссплатформенную отладочную плату, на которой выведены абсолютно все интерфейсы, какие только можно получить с модуля Qseven (вне зависимости от того, на каком процессоре он выполнен) (рис. 6). Поэтому, используя данную отладочную плату, можно приступить к разработке и тестированию программного обеспечения, используя всю необходимую периферию. Кроме того, на каждый процессорный модуль SECO, выполненный в стандарте Qseven, предоставляется пакет драйверов (BSP) и модулей таких операционных систем, как Windows CE и Linux, а так же на ставшей весьма популярной в последнее время ОС Andrоid. Все BSP сопровождаются необходимой документацией и утилитами, благодаря чему работа по разработке ПО сокращается до минимума.

Кросс-платформенная плата SECO для модулей Qseven

Рис. 6. Кросс-платформенная плата SECO для модулей Qseven

Заключение

Таким образом, очевидно, что возможно в несколько раз сократить время разработки нового изделия с применением процессора на ядре ARM, используя при этом преимущества стандарта CoM. Так, используя в своем изделии процессорные модули стандарта Qseven, разработчик может значительно сократить время разработки аппаратной части устройства. А используя отладочный комплект с кроссплатформенной платой, параллельно с разработкой аппаратной части он может выполнять разработку (либо проводить модернизацию) программного обеспечения для любого выбранного процессора на ядре ARM. В итоге, используя стандарт Qseven, разработчик имеет все необходимое для разработки программной и аппаратной части изделия вне зависимости друг от друга, тем самым можно сократить общее время разработки изделия.

Список литературы:

  1. Архитектура и стандарт COM Express - Сергей Румянцев, Мир Электронных Компонентов, выпуск 3, 2008 г.
  2. COM Express Carrier Design Guide, Rev. 1.0 - C. Eder, Jan 16, 2009
  3. XTX pinout, signal description and implementation guidelines, Revision 1.2 – XTX Consortium, Dec. 5, 2006
  4. href="/www.secoqseven.com/
  5. href="/www.qseven-standard.org/
  6. href="/www.eltech.spb.ru/profiles.html?company=SECO
  7. Qseven pinout, electromechanical description and implementation guidelines, Revision 1.20 - Qseven Consortium, 12.08.2010
  8. Qseven Design Guide, Revision 1.0 - Qseven Consortium, 18.04.2011
  9. www.picmg.org