Контрактная разработка электроники / Библиотека / Статья: Применение операционных систем при проектировании электронных устройств

Статья: Применение операционных систем при проектировании электронных устройств

Дубовик Евгений
Ничипорович Владимир

Promwad, дизайн-центр электроники

Введение

Динамично развивающейся рынок электроники предъявляет сегодня жесткие требования к электронным устройствам и их функционалу, поэтому с каждым днем на рынке появляется все больше продуктов данного класса с применением микропроцессоров. И мало что осталось незатронутым данной тенденцией: простые приборы, начиная с термостатов, регуляторов освещения, таймеров и пр. уже содержат в себе 8-разрядные микропроцессоры с невысокой тактовой частотой в несколько мегагерц и выше. Если же речь идет о выполнении более сложных задач (таких, как коммутация сетевых пакетов, управление сложными технологическими процессами и т.п), то в соответствующих устройствах с высокой вероятностью стоит ожидать увидеть 64 либо 128 разрядные микропроцессоры с тактовой частотой в несколько гигагерц. И чем сложнее устройство, тем мощнее будет его «начинка» – и в таком случае речь уже может пойти о так называемых системах на кристалле (СнК), которые позволяют повысить интеграцию процессов и представляют собой логически законченный универсальный блок с широким набором уже встроенной периферии. Чаще всего такие СнК контролируются встраиваемыми операционными системами (ОС) или Embedded OS. В этой статье пойдет речь о таких ОС, а именно о решаемых ими задачах, вариантах применения и стоимости.

Периферия микроконтроллеров

Встраиваемая периферия микроконтроллеров отличается большим разнообразием, что позволяет создавать устройства с широким функционалом для различного применения. Отдельно стоит выделить следующие варианты встраиваемой периферии микроконтроллеров:
  • стандартная периферия микропроцессора включается в себя аналого-цифровые преобразователи для измерения входных аналоговых сигналов, последовательные UART-порты, а также таймеры-счетчики;
  • часто имеется интерфейс Ethernet;
  • все чаще встречается поддержка кодеков для записи и воспроизведения звука и видео в высоком качестве (HD);
  • возможен вариант с интегрированным графическим контроллером, который дает возможность подключить к микроконтроллеру мониторы со стандартным RGB интерфейсом;
  • может иметься поддержка сенсорного экрана и/или интерфейс для подключения ЖК-дисплея;
  • может присутствовать контроллер матричной клавиатуры 8×8 клавиш;
  • ряд моделей оснащены контроллером IDE, который позволяет производить запись и чтение данных с/на стандартные жесткие диски, а также же применять для этих целей CD/DVD-ROM и твердотельные жесткие диски (SSD);
  • в некоторых моделях могут присутствовать контроллеры USB и PCMCIA, благодаря чему появляется возможность подключения самых разнообразных внешних устройств.

Классификация ОС

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

Прародителями современной операционной системы считаются служебные программы-загрузчики, а так же библиотеки часто используемых подпрограмм, которые начали разрабатываться с появлением первых универсальных компьютеров. Первой известной операционной системой стал Multics, на основе которой впоследствии был создан Unix. Эволюция и снижение стоимости микропроцессоров позволило им проникнуть во все области жизни человека, а увеличение вычислительной мощности позволило применять операционные системы в портативных и встраиваемых устройствах.

Условно все существующие операционные системы можно классифицировать по следующим признакам:
  • однозадачные (MS-DOS, MSX) и многозадачные (OS/2, UNIX, Windows);
  • однопользовательские (MS-DOS, Windows 3.x, ранние версии OS/2) и многопользовательские (UNIX, Windows NT);
  • бесплатные (Linux) и платные (VxWorks, Windows);
  • открытые и закрытые;
  • высокой стабильности (VxWorks AE) и низкой (Windows);
  • 16-разрядные и 32-разрядные.
Многозадачные операционные системы позволяют выполнять несколько программ одновременно на одном центральном процессоре. Однако на самом деле это не так, в каждый момент времени выполняется только одна задача, а специальный диспетчер управляет их переключением. Скорость переключения является немаловажным фактором, который характеризует операционную систему, ведь именно им определяется время отклика системы на внешнее событие, и если этот параметр слишком велик, то внешнее событие не будет обработано. Управление переключением осуществляется с помощью специального диспетчера, определяющего какой задаче в данный момент времени нужно отдать ресурс центрального процессора. Быстрое переключение по сравнению со временем исполнения задачи позволяет организовать псевдомногозадачный механизм на одном процессоре.
По данным журнала Embedded System Design, распределение частоты использования различных операционных систем во встраиваемых системах представлено на диаграмме (Рис. 1).

Распределение различных операционных систем по частоте применения во встраиваемых системах (по данным журнала Embedded System Design)
Рисунок №1. Распределение различных операционных систем по частоте применения во встраиваемых системах (по данным журнала Embedded System Design)

Таким образом, все разрабатываемые сегодня электронные устройства условно можно разделить на четыре части:
  1. 37,5% – продукты, использующие коммерческие ОС. Чаще всего это оказывается либо массовый пользовательский продукт, где серия исчисляется сотнями тысяч в год и цена ОС не оказывает сильного влияния на себестоимость устройства, либо продукты для военной, авиа, космической и пр. промышленности, где надежность является наивысшим приоритетом;
  2. 23,4% – продукты, использующие Open Source, как коммерчески распространяемые, так условно бесплатные. Здесь обычно вопрос финансирования разработки является ключевым и ОС с открытым кодом являются прекрасным решением в соотношении цена/качество. Такими продуктами обычно являются consumer electronics – потребительская электроника;
  3. 12,7% – продукты под управлением ОС собственной разработки. К такому решению обычно приходят, когда выполняемые устройством задачи крайне специфичны и существуют жесткие ограничения по используемым ресурсам устройства (объем кода, вычислительные мощности и пр.);
  4. 26,4% - продукты без операционной системы. Несмотря на то, что такой подход является по большей части пережитком прошлого (еще от 8-разрядных процессоров), он до сих пор часто используется при разработке – обычно это устройства, имеющие несложный функционал. Стоит отметить, что такое решение со временем сойдет на «нет», т.к. уже практически невозможно в полную силу использовать потенциал современных процессоров без какой-либо ОС.

Характеристика ОС

В представленной таблице №1 приводятся основные характеристики некоторых операционных систем.

Таблица №1. Характеристик ОС
Параметр
VxWorks
QNX
LynxOS
pSOS
Архитектура монолитная микроядро микроядро микроядро
Стандарт собственный и POSIX 1003 POSIX 1003 POSIX 1003 собственный
Многозадачность + + + +
Многопроцессорность + + + +
Уровней приоритетов 256 32 255 255
Время реакции / переключения контекста 4мкс / 15 мкс 4,3 мкс / 13мкс 7 мкс / 17 мкс 4мкс / 12 мкс
Планирование приоритетное; preemptive ядро FIFO, round robin, адаптивное; preemptive ядро FIFO, round robin, Quantum, preemptive ядро preemptive ядро
Процессоры (target) Motorola 68xxx, Intel 80x86, Intel 80960, PowerPC, SPARC, Alpha, MIPS, ARM Intel 80x86 Intel 80x86, Motorola 68xxx, SPARC, PowerPC Motorola 68xxx, Intel 80x86, Intel 80960, ARM, MIPS, PowerPC
Минимальный размер 22К 60K полной системы: 256Kb
усеченной системы: 124Kb
только ядра: 33Kb
15К
Средства синхронизации и взаимодействия семафоры POSIX 1003, очереди, сигналы POSIX 1003 (семафоры, mutex, condvar) POSIX 1003 (семафоры, mutex, condvar) семафоры, mutex, события
Примерная стоимость пакета ПО , USD ~20 000 300 - 6 000 10 000 5 000

Как можно видеть из таблицы, данные операционные системы незначительно различаются по времени реакции и переключению контекста. Так же они имеют схожий набор средств синхронизации и взаимодействия достаточный для решения большинства задач.

Рассмотрим более детально эти и другие операционные системы.

VxWorks

Данная ОС реального времени является фактически стандартом для космической электроники. Наиболее ярким примером применения может служить использование VxWorks в Mars Exploration Rover – миссия NASA на Марс (запуск 8 июня 2003). Успешная работа этой операционной системы в миссии Mars Pаthfinder в 1997 году показало ее надежность и стабильность, что явилось определяющим фактором в выборе системы для управления роботами-марсаходами в последующих миссиях, а также спутниками и космическими станциями. VxWorks производства компании Wind River применяется в миссиях NASA Pathfinder, Deep Space One, Mars Odyssey, Stardust в спутнике PROBA Европейского Космического Агенства ESA и на челноке Lifeboat Международной Космической Станции.

Операционная система VxWorks де-факто является стандартом для космической электроники
Рисунок №2. Операционная система VxWorks де-факто является стандартом для космической электроники

Такое доверие объясняется высокой надежностью и отказоустойчивостью данной операционной системы, что делает ее применимой в различных проектах авиа-космической, военной или иной тематики с высокими требованиями жизнеобеспечения и надежности. Несмотря на то, что стоимость операционной системы VxWorks с отладочными средствами довольно высока, она не столь значительна по сравнению со стоимостью всего проекта, а хороший набор отладочных средств позволяет исключить возможные ошибки в программном обеспечении.

WinCE

Классическим примером коммерческой ОС может служить Windows Embedded. Свою историю он начал в 1996 году и с тех пор вырос до шестой версии. Производитель заявляет, что оснастил систему новым многопоточным ядром, позволяющим достигнуть максимальной производительности. Нововведением также стали компоненты для подключения к мобильным телефонным сетям и различным GPS устройствам – данные возможности пока отсутствуют у большинства открытых систем. Таким предложением Microsoft рассчитывает захватить бурный рынок мобильных устройств.

Поскольку критичным ресурсом в мире разработки ПО является рабочее время, а более совершенные инструментальные средства увеличивают производительность, то Microsoft решила эту проблему путем включения средств разработки для мобильных устройств в пакет Visual Studio.

Система Windows CE стала основой для различных типов устройств.. В целом, рынок бытовых устройств делят между собой компания Microsoft со своей WinCE и различные *NIX системы. Операционные системы от Microsoft нашли применение в мобильных телефонах и GPS-навигаторах (Рис. 3). Возможности операционной системы превратили такие устройства в мультимедиа центры, способные воспроизводить и записывать аудио- и видео-данные. Доминирующая позиция обусловлена хорошей технической поддержкой и доступностью обновления компонентов операционной системы (карты, видеофайлы, рингтоны). При определенной массовости таких устройств, стоимость операционной системы в их составе не оказывает существенного влияния.

ОС от Microsoft являются лидером в мобильных телефонах и GPS-навигаторах (на картинке Goclever 4330A BT)
Рисунок №3. ОС от Microsoft являются лидером в мобильных телефонах и GPS-навигаторах (на картинке Goclever 4330A BT)

С целью минимизации влияния стоимости операционной системы на стоимость изделия в целом, а также в случае невозможности обеспечения массовости изделия производитель может применить некоммерческую операционную систему, бесплатно распространяемую и с открытым исходным кодом.

Linux

Примером открытой и бесплатной встраиваемой ОС является Linux. Linux имеет открытый исходный код, не имеет лицензионных выплат и легко доступен. Однако в этом бочке меда есть своя ложка дегтя: большинство базовых компонентов разработано и распространяется в соответствии с условиями Генеральной Открытой Лицензии (GPL) – политикой бесплатного лицензирования. Суть этой лицензии в том, что программное обеспечение, сопровождаемое исходными текстами, можно модифицировать произвольным образом, однако в дальнейшем, его нельзя предложить как собственный закрытый продукт – любой желающий должны иметь к коду свободный доступ.
Не смотря на то, что лидирующие позиции на рынке мобильных и портативных устройств занимает Symbian и Windows, многие мировые производители, такие как Nokia, Motorola, Panasonic, Samsung и др. доверили Linux’у управление своими продуктами (Рис. 4).

Nokia N810 WiMAX Edition работает под управлением Tablet OS2008, основанной на Linux
Рисунок №4. Nokia N810 WiMAX Edition работает под управлением Tablet OS2008, основанной на Linux

Во встраиваемых ОС Linux отсутствует интегрированный набор инструментальных средств. Может возникнуть ситуация, когда конфигурирование операционной системы и разработка новых приложений потребует больше времени и сил. Предварительно сконфигурированные решения либо слишком ограничены, либо специфичны для данного конкретного дистрибутива. Может оказаться так, что за внешней бесплатностью системы будет стоять необходимость дополнительного пакета поддержки платы или процессора, которые достигнут сумм порядка нескольких тысяч долларов. Поиск и устранение недостатков ведется в мире Linux силами open-source сообществ. Это гарантирует, что описание возможных проблем вы найдете в Интернете без проблем, однако на этот поиск вы затратите время.

Из дистрибутивов Embedded Linux с открытым кодом наибольшей известностью пользуются Embedded Debian Project, ucLinux, ETLinux, FREESCO, Linux Router Project, Linux-VR Project, Linux On A Floppy (LOAF), Qplus, Midori Linux, uClinux, PeeWeeLinux, ThinLinux.

QNX

Операционная система QNX распространяется бесплатно для некоммерческого использования, однако стоимость лицензии для коммерческого распространения не так уж высока по сравнению с VxWorks, и варьируется в зависимости от комплектации системы, количества приобретаемых лицензий и других факторов. На базе QNX строятся высоконадежные решения для управления медицинским и промышленным оборудованием, сетевыми маршрутизаторами, бортовыми системами. Широкое распространение QNX получила и в военной промышленности, отчасти из-за того, что код данной операционной системы сертифицирован соответствующими органами. Однако вопрос сертификации последнего ядра Neutrino остается до сих пор открытым.

LynxOS

Операционная система LynxOS поддерживает многозадачные и многопоточные приложения. Применяется для приложений с высокими требованиями по времени реакции и надежности. Приложения, разработанные и скомпилированные в ОС Linux, могут работать в среде LynxOS без каких-либо изменений в исходных текстах и без перекомпилирования. Это уникальное свойство LynxOS очень удобно для пользователей в случае отсутствия исходных текстов. Система полностью поддерживает стандарт POSIX.1003.la, а также подразделы POSIX. 1003. lb и POSIX. 1003.1с. Система работает на разных аппаратных платформах (IA-32, PowerPC, MIPS, ARM, xScale) и поддерживает самые современные сетевые средства и Интернет-технологии. Так же в ней существует возможности "горячей замены" и "высокой доступности" (Hot Swap, High Availability).

Немаловажно, что LynxOS-178 имеет сертифицированный стек TCP/IP для приложений в области авионики, медицины, атомной промышленности и связи. LynxOS поддерживает специальные возможности для встраиваемых приложений, среди которых – очень малое время загрузки, работа с флэш-памятью (M-systems TrueFFS), а также загрузка по сети или из ROM конфигураций исполняемой системы.

Как сделать выбор?

Какую же операционную систему выбрать – коммерческую или бесплатную? Однозначного ответа на этот вопрос не существует. При выборе ОС в первую очередь необходимо руководствоваться следующими показателями и определить для себя наиболее приоритетные из них:
  • стоимостью разработки;
  • временем интеграции в общую систему;
  • качеством средств разработки;
  • наличием новых, поддерживаемых стандартов;
  • стоимостью сопровождения;
  • требованиями по отказоустойчивости.
Правильное формирование требований к продукту на этапе проектирования позволит сделать выбор операционной системы, решающей поставленные задачи и с возможностью минимизации вложений – как на этапе разработки, так и на этапе сопровождения.

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

Ссылки по теме:

www.promwad.com
www.qnx.org.ru
www.openproj.ru/89/2160/
www.microsoft.com
www.vxworks.ru
www.goclever.net
www.compitech.ru
www.ibm.com
www.embedded.com


Скачать pdf-версию статьи вы можете здесь.