FreeBSD for Embedded Systems, раздел 1 - введение


Что есть встраиваемый компьютер

В промышленных системах применяются процессоры разной архитектуры. В основном это ЦПУ ряда x86 Intel, AMD и клоны других фирм, а также процессоры RISC архитектуры, такие как PowerPC. Последние традиционно занимают прочные позиции во встраиваемых и телекоммуникационных приложениях.

Какие компьютеры можно отнести ко встраиваемым? Встраиваемые компьютеры имеют следующие характерные признаки:


Рынок процессоров - Intel и клоны, CISC и RISC

В таблице 1 приведены данные по доле рынка процессоров, размещаемых на одноплатных компьютерах, характерных для встраиваемых систем (данные с http://shadowbridge.tripod.com).

Таблица 1.
Распределение одноплатных компьютеров по типу процессора

Тип процессора 2002г. прогноз 2004г.
AMD 0.7% 0.1%
Intel x86, Pentium, Pentium II, Celeron 21.7% 15.3%
Intel Pentium III 38.3% 30.2%
Intel Pentium IV, Xeon 10.1% 23.9%
Motorola 68xxx/88xxx 4.8% 2.1%
PowerPC 12.6% 10.9%
SPARC, UltraSPARC 3.8% 3.9%
Прочие 8.0% 13.6%
Всего узлов, тысяч 1430.0 1703.0

Как видно из таблицы, распространенными являются процессоры архитектуры Intel. Наряду с фирменными процессорами, в промышленных системах широко используются клоны. Известные клоны - AMD, вначале развивавшийся как лицензионный продукт; ядро Cyrix, основанное на архитектуре 486 и эволюционировавшееся в National Geode и VIA Eden, а также Transmeta. Intel также не осталась в стороне от направления Embedded Systems. Корпорация поддерживает собственный план выпуска встраиваемых систем "Embedded Roadmap". В данном направлении обеспечивается гарантированное время жизни продукта 5 лет, тестирование чипсета и дальнейшая поддержка. Впервые за 10 лет, в конце 2002 года прошла презентация первого x86 - процессора Intel для встраиваемых систем под маркой ULV Celeron-M Tualatin с тактовой частотой 400 МГц. В начале 2003г. корпорация Intel представила новую разработку - процессор Pentium M для встраиваемых систем со сверхнизким потреблением с тактовыми частотами 1,1 и 1,6 МГц. К сожалению, в этой архитектуре не поддерживается популярная во встраиваемых системах шина ISA.

Основное преимущество клонов Intel по сравнении с оригинальными процессорами - дешевизна и более низкое энергопотребление. Риском использования клонов является отсутствии гарантии поддержки линейки продуктов в течении предсказуемого времени, поскольку рынок встраиваемых систем по объему и прибыльности гораздо ниже рынка ПК. Так, например, AMD прекратила выпуск 486 процессоров и оповестила об этом своих клиентов только за 7 недель до прекращения выпуска.

Процессоры Intel основаны на CISC архитектуре, которая имеет эффективный набор инструкций. Недостатками такой архитектуры является относительная дороговизна и увеличенное энергопотребление. RISC - процессоры, такие как MIPS, ARM и PowerPC имеют усеченный набор команд и отличаются низким энергопотреблением и высокой интеграцией. Следует сразу отметить, что на RISC - процессорах не работают все ОС MS Windows (за исключением CE). Какими же достоинствами обладают RISC архитектуры в области встраиваемых систем? Это - пониженное электропитание (лучшее соотношение мВТ/МГц); малое тепловыделение; большая производительность процессора по отношению к стоимости; высокая степень интеграции и в связи с этим более высокие скорости ввода - вывода и увеличение надежности. Тем не менее, RISC - процессоры не получили широкого распространения во встраиваемых системах. Это связано со следующими причинами:

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


Шинные архитектуры, активные: ATX, µATX, EBX; пассивные: PCI, ISA, CompactPCI, VME

Рассмотрим данные по шинным архитектурам, среди которых VME, CompactPCI, PCI и ISA. Систему можно реализовать вообще без шины - все на одной плате своей разработки. Данное решение оправдано для больших объемов выпуска с фиксированной конфигурацией и имеет следующие преимущества:

Шинные архитектуры распадаются на два класса: с активной объединительной платой (ATX, µATX, EBX) и с пассивной объединительной платой (PCI, ISA, CompactPCI, VME). Активные объединительные платы имеют большое количество дополнительных функций, что позволяет не использовать слоты расширения: Ethernet, видео, последовательные и параллельные порты, контроллеры IDE, FDD, USB. Пассивные платы предусматривают установку компонентов со строго определенной функциональностью. Предпочтительнее выбирать стандартные решения, для которых выпускается широкая номенклатура корпусов, готовых плат расширения ввода - вывода, источников электропитания и которые имеют типизированный дизайн и интерфейсы. Особенности различных шинных решений приведена в Таблице 2.

Таблица 2.
Особенности различных шинных архитектур

Стандарт (поставщик) Описание Архитектурная совместимость Особенности
ATX (Advantech) Активная объединительная шина с процессором и чипсетом, твердотельной памятью, имеются слоты расширения Intel Традиционная архитектура ПК, настольное исполнение, малое время жизненного цикла
µATX То же, малоформатная Intel  
EBX (AmPro) Активная объединительная шина, платы расширения устанавливаются наложением (стекинг) Intel Установка плат стыковкой друг с другом, поддержка в течении 5 лет, наличие дополнительных встроенных функций, поддержка ISA
PCI - PC/104 (AmPro) Пассивная шина PCI установкой наложением, объединительная плата отсутствует Intel Преимущества шины PCI, установка стыковкой, большая номенклатура плат расширения
ISA - MicroPC (Fastwel) Пассивная объединительная плата стандарта ISA с одним соединителем для каждого элемента расширения, быстродействие до 8 МБит/с Intel Простота установки, возможность тестирования на шине ISA стандартных ПК, дешевизна, ограниченность векторов прерываний и как следствие расширяемости, низкая скорость передачи данных
CompactPCI Пассивная объединительная плата стандарта PCI с двумя соединителями для каждого элемента расширения Универсальная Высокая скорость передачи данных, дорогие компоненты, универсальная платформа
VME Шина для бортовых конструктивных исполнений, ориентированная на архитектуру Motorola 68xxx/88xxx, PowerPC Motorola Специфичная платформа для специальных применений, с гарантированными климатическими и механическими характеристиками

Шина VME, используемая в бортовых системах высокой надежности, и работающая при расширенном климатическом диапазоне, в основном используется RISC - архитектурами, как следует из нижеприведенной Таблицы 3.

Таблица 3.
Распределение одноплатных компьютеров с шиной VME по типу процессора

Тип процессора 2002г. 2003г. прогноз 2004г.
AMD 0.2% 0.1% 0.2%
Intel x86, Pentium, Pentium II, Celeron 3.3% 2.9% 0.7%
Intel Pentium III 8.0% 8.0% 7.9%
Intel Pentium IV, Xeon 0.1% 0.3% 1.0%
MIPS 0.2% 0.2% 0.2%
Motorola 68xxx/88xxx 18.2% 15.2% 12.6%
PowerPC 62.7% 66.2% 67.8%
SPARC, UltraSPARC 4.0% 3.9% 3.9%
Прочие 3.3% 3.2% 5.7%
Всего узлов, тысяч 190.3 184.8 179.8

Следующая таблица - таблица 4 иллюстрирует процентный состав одноплатных компьютеров с шинной архитектурой CompactPCI. Шина CompactPCI является промышленным аналогом известной шины PCI и испольуется там, где требуется высокая скорость обмена между платами - например, в телекоммуникационных приложениях. Компоненты под эту шину являются относительно дорогими. Как следует из таблицы, CompactPCI является относительно универсальной и используется всеми конкурирующими процессорными технологиями.

Таблица 4.
Распределение одноплатных компьютеров с шиной CompactPCI по типу процессора

Тип процессора 2002г. 2003г. прогноз 2004г.
AMD 0.1% 0.1% 0.1%
Intel x86, Pentium, Pentium II, Celeron 8.0% 2.5% 4.9%
Intel Pentium III 25.5% 22.1% 21.1%
Intel Pentium IV, Xeon 4.0% 10.4% 11.5%
Motorola 68xxx/88xxx 5.0% 3.4% 2.2%
PowerPC 23.1% 25.3% 25.2%
SPARC, UltraSPARC 28.7% 31.1% 30.5%
Прочие 5.6% 5.1% 4.5%
Всего узлов, тысяч 150.2 169.3 188.4

Операционные системы для ВКТ - Windows, Embedded Unix, VXWorks, QNX и FreeBSD Embedded

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

Таблица 5.
Распределение операционных систем, установленные на одноплатных компьютерах

Тип ОС 2002г. 2003г. прогноз 2004г.
Legacy DOS/Windows (3.x/95/98) 7.6% 6.6% 5.0%
Windows NT/2000/XP 28.5% 30.1% 30.2%
Windows CE/NTE/XPE (embedded) 0.4% 1.3% 1.4%
Unix Variants (System V, HP UX, Solaris) 16.1% 14.3% 15.0%
Linux 12.9% 16.0% 18.9%
VXWorks 21.4% 20.6% 19.9%
Другие ОС РВ 4.1% 3.5% 3.2%
Собственные системы 4.4% 3.6% 3.2%
Прочие 4.6% 4.0% 3.2%
Всего узлов с ОС, тысяч 512.7 561.5 589.8

Операционные системы компании Microsoft, работающие только на платформе Intel (за исключением CE), занимают более трети рынка встраиваемых ОС. Этим объясняется распространенность PC - совместимых компьютеров в промышленной сфере. Очевидно, что выбор ОС типа Windows или даже DOS, по своим параметрам не очень подходящими для встраиваемых систем, есть следствие подхода разработчиков и программистов, начинавших свою деятельность с популярных операционных систем для настольных ПК. Далее, как мы видим, существенно возрастающую долю получает Linux, видимо как следствие его популярности в области desktop - систем. Классические ОС РВ занимают менее трети, в том числе популярная ОС реального времени VXWorks. Соответственно, лидером среди ОС для VME является VXWorks, и это понятно, потому что эта ОС является "родной" для процессоров типа PowerPC в промышленных приложениях (таблица 6)

Таблица 6.
Распределение одноплатных компьютеров с шиной VME по типу операционной системы

Тип ОС 2002г. 2003г. прогноз 2004г.
Legacy DOS/Windows (3.x/95/98) 1.0% 0.5% 0.3%
Windows NT/2000 3.8% 3.8% 3.6%
Windows XP 0.0% 0.0% 0.2%
Windows NTE/XPE (embedded) 0.2% 0.2% 0.2%
Linux 1.7% 2.5% 3.4%
Embedded Linux 4.9% 7.0% 10.1%
LynxOS 7.5% 7.4% 7.2%
OS9 1.3% 0.9% 0.7%
QNX 1.7% 1.6% 1.6%
Solaris 6.8% 6.9% 7.0%
Unix System V 0.7% 1.2% 1.1%
VXWorks 43.2% 45.7% 47.1%
Собственные системы 12.0% 10.4% 9.4%
Прочие 15.2% 11.9% 8.1%
Всего узлов с ОС, тысяч 171.5 167.8 162.6

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

Таблица 7.
Распределение одноплатных компьютеров с шиной CompactPCI по типу операционной системы

Тип ОС 2002г. 2003г. прогноз 2004г.
Legacy DOS/Windows (3.x/95/98) 4.3% 3.5% 3.0%
Windows NT/2000 16.4% 13.1% 11.8%
Windows XP 2.1% 3.1% 3.5%
Windows NTE/XPE (embedded) 1.3% 5.4% 5.4%
Linux 9.4% 9.4% 10.9%
Embedded Linux 0.8% 4.2% 4.4%
LynxOS 1.8% 1.6% 1.6%
QNX 1.2% 1.2% 2.4%
Solaris 28.8% 28.6% 28.7%
VXWorks 28.1% 24.0% 22.1%
Собственные системы 2.2% 2.4% 2.4%
Прочие 3.6% 3.5% 3.8%
Всего узлов с ОС, тысяч 136.6 155.6 173.1

Промышленные системы вводят специфическое понятие, такое как "реальное время" (real-time). Системы реального времени (РВ) - это системы, которые выполняют свои функции реагируя на внешние асинхронные события в пределах заданного промежутка времени. Различают системы жесткого (hard real-time) и мягкого (soft real-time) реального времени. В системах мягкого реального времени, требования ко времени отклика задаются статистически, в среднем. В таких системах считается приемлемым пропуск некоторого оговоренного числа событий (например, нескольких отсчетов из поступающего аудиосигнала, что "практически" не ухудшает качества речи). В системах жесткого реального времени, время отклика должно быть жестко гарантировано. Например, если после начала тестирования авиационного двигателя обнаружился перегрев (поступило событие), то процедура остановки должна быть выполнена в фиксированный срок. Свойство РВ в сложных системах призвано обеспечить их надежность. ОС типа Unix обеспечивают хорошую среднюю производительность, а для ОС РВ основной показатель - это время отклика.

Теперь мы подошли к главному вопросу нашей темы - выбор операционной системы. Лобовое решение - это ОС РВ, допустим QNX для x86 процессора или VXWorks для PowerPC, с ценой вопроса от $15000 до $50000. Что нам не нравится в этом решении? Это следующее:

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

предположим, имеется плата ввода - восьмиканальный аналого-цифровой преобразователь (АЦП), а именно модуль AI8S-5A компании Fastwel. Это плата формата Micro-PC, рассчитанная на работу с пассивной шиной ISA. Модуль AI8S-5A имеет буфер FIFO объемом 1К слов (шестнадцатиразрядных) для хранения выборок с программируемой верхней границей, по достижению которой модуль формирует прерывание. Примем скорость поступления данных 80000 выборок в секунду, тогда весь буфер заполняется выборками за 1024/80000 секунд, или 12,8 мс. Верхняя граница FIFO, определяющая момент наступления прерывания. может быть установлена от 512 до 992 слов. Будем считать, что верхняя граница установлена для 512 слов, что дает максимальный запас по переполнению буфера FIFO. Тогда несложный подсчет показывает, что после прерывания у системы остается 6,4 мс для считывания данных и очистке буфера до того, как он будет переполнен. Мы имеем всего одну существенную проблему в этом сценарии: во первых, несмотря на то, что за время 6,4 мс процессор выполнит несколько сот тысяч инструкций, нет гарантии того, что тривиальная задача считывания будет выполнена в срок. Поскольку объем кода, который будет исполняться в обычной ОС после наступления прерывания, не детерменирован, время отклика остается неопределенным. При рассмотрении задачи в рамках стандартных сценариев следует вывод: покупные платы расширения ввода - вывода вынуждают нас использовать операционную систему реального времени. Ситуация напоминает ту, что имела место на всем протяжении развития рынка ПК: по мере увеличения скорости процессоров и объема памяти, росла тяжеловесность приложений, а производительность оставалась на том же самом уровне. Так, CorelDraw 9.0 для обычных задач на современной машине работает с той же скоростью, что и CorelDraw 4.0 под Windows 3.1. Производители железа и софта создают рынок друг для друга, и это есть old good bisiness.

Решение проблемы лежит в другой плоскости - отход от стандартных решений и системотехнический подход к проектированию промышленной системы. Стандартные модули ввода - вывода могут использоваться только для передачи не real-time данных. Для последних необходимо создавать свои собственные модули. Принципиальное условие - в этих модулях должно производиться существенное понижение скорости real-time данных. Кроме того, если алгоритм реакции на real-time события тривиален (перегрелся двигатель - выключить электропитание сейчас же), то необязательно выносить задачи такого уровня на процессор - их может выполнять микроконтроллер модуля.

Вернемся к нашему сценарию. В результате экспериментов с покупным модулем было принято решение: не использовать покупной модуль АЦП; не использовать операционную систему реального времени. Вместо этого, на основе покупной БИС АЦП и обычных микроконтроллеров была разработана плата с аналогичными функциями, с двойной буферизацией и простой предварительной обработкой сигнала (межпериодное усреднение выборок), что позволило снизить скорость real-time данных и существенно снизить требования к операционной системе. Остался последний вопрос - реализация встраиваемой операционной системы.

Как мы видим, встраиваемая ОС (работающая на встраиваемом компьютере) и ОС РВ - это немного разные понятия, хотя операционные системы реального времени (такие как VXWorks, QNX, RTLinux) их совмещают. Свойства embedded-OS (EOS) определяются специфичными свойствами встраиваемых компьютеров, перечисленными выше (таблица 8):

Таблица 8.
Свойства EOS

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

В следующем разделе будет описана технология "OpenSpecial" - портирование популярной Unix - подобной операционной системы FreeBSD 4.3 на промышленную платформу.

 

© Назим Алиев, alnaz@mail.ru, infoATnazim.ru, обновлено 21.10.2003г.

T
Почта: infonazim.ru
На основную страницу: NAZIM.RU
В начало раздела: NAZIM.RU/BSD