Применение встроенных систем

После того как я опубликовал на хабре анонс, меня спросили:

  • Где эту штуку можно использовать?
  • На каком железе это будет работать?

Надеюсь,  в статье вы найдете ответы на эти вопросы.

Начнем с того, что такое встроенная система.

  • Встроенная система — это небольшой специализированный компьютер, который интегрирован в то устройство которым она управляет.

Такие компьютеры можно условно разделить на два класса:

  • Малый — состоит одной микросхемы которая включает в себя процессор, ОЗУ, ПЗУ и интерфейсы ввода-вывода.
  • Большой — состоит из нескольких микросхем, одна из которых включает в себя процессор и интерфейсы ввода-вывода, а остальные представляют из себя ОЗУ, ПЗУ и дополнительноые интерфейсы ввода-вывода.

Малый класс встроенных систем обычно не обладает своей собственной операционной системой и управляющая программа работает с аппаратным обеспечением напрямую. Это связано с тем что объем ОЗУ и ПЗУ не слишком велик, а использование операционной системы для абстрагирования программы от аппаратного обеспечения не имеет смысла или даже вредно. Так происходит из-за того что количество интерфейсов ввода-вывода невелико и функции устройства просты или устройство работает в режиме «жесткого» реального времени и задержки вносимые работой операционной системы недопустимы. Встроенные системы этого класса используются очень широко, практически каждый человек сталкивалися с устройствами под их управлением. К ним относятся микроволновки, стиральные машины, автоматические двери, DVD-плееры и многие другие.

Большой класс встроенных систем в противоположность малому обычно обладает операционной системой и управление осуществляется специализированным программным обеспечением работающего в ней. Этот подход удобен, когда устройство обладает большим количеством сложных интерфейсов ввод-вывода или выполняет сложные функции. К примеру такого рода устройством является беспроводной VoIP-телефон. В нем есть беспроводной модуль Wi-Fi, клавиатура, экран, динамик и микрофон. При осуществлении звонка встраиваемая система должна одновременно обеспечивать кодирование/декодирование звука, подключение к точке доступа, взаимодействие с VoIP-АТС и передачу звука ей. Реализация всех этих задач в виде одной программы, работающей напрямую с аппаратным обеспечением, весьма сложна. Но если воспользоваться операционной системой, она возьмет на себя львиную долю рутинной работы, предоставляя программисту более простой интерфейс, за счет чего задача становится менее трудоемкой. Используются встроенные системы большого класса не так широко как малого, но в более сложных устройствах. Из того, что вы можете встретить в повседневной жизни, это:

  • VoIP-телефоны
  • Маршрутизаторы
  • Точки доступа
  • Сетевые хранилища (NAS,SAN)
  • КПК
  • Некоторые цифровые фотоаппараты
  • Сотовые телефоны
  • Игровые приставки
  • Принтеры
  • Платежные и инфомационные терминалы

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

  • Процессор поддерживается ядром
  • Минимум 4 мегабайта ОЗУ
  • Минимум 2 мегабайта ПЗУ

Если у вас есть устройство с встраиваемой системой такого класса, то остается только найти способ загрузить ядро Linux на нем. Это может позволить расширить его функции или даже модифицировать их под свои нужды. Ограничиваться это будет только ресурсами устройства и вашей фантазией. :)

Рубрика: Теория | Теги: , комментариев 8 »

комментариев 8 к “Применение встроенных систем”

  1. Dip

    Обращаюсь к вам как к специалисту :)
    Подскажите, реально ли собрать на базе OpenEmbedded компактный дистрибутив с X, FireFox или Opera и Flash? Вариант использовать десктоп дистрибутив не подходит, так как в них слишком много лишнего, а мне нужен именно минимум, необходимый для работы вышеозначенного софта.

  2. norguhtar

    Можно. Но есть вообще-то готовые варианты. К примеру http://www.imedialinux.com/

  3. ierton

    Здравствуйте. Передо мной встала задача подбора дистрибутива для встраиваемой системы. По сути, необходимо выбрать между «готовыми» дистрибутивом, такими как gentoo или debian, или «самодельными», построенными с помощью OpenEmbedded . Скажите пожалуйста, в чем преимущества второго подхода?

  4. norguhtar

    Приемущество второго метода в том что размер дистрибутива будет меньше и существенно проще его изменять. Но вообще все зависит от какое железо и какие задачи.

  5. Berkl

    Доброго времени суток!

    Поставлена задача спроектировать программируемый контроллер с шиной PCI. Выбранная процессорная плата во многом похожа на http://openembedded.ru/wp-content/uploads/2009/01/alix1b.jpg
    Вопрос на данный момент касается выбора ОС: WinCE или Embedded Linux? Тема абсолютно новая поэтому никаких предпочтений нет. В связи с этим несколько конкретных вопросов по теме:
    1. Реально ли Embedded Linux бесплатен и средства разработки под него? Если нет, тогда нужна любая инфа про то сколько и за что.
    2. Проект коммерческий, следовательно пиратские/ворованые средства дистрибутивы, средства разработки исключены. Ни исходники ни схемы разрабатываемого девайса не будут свободно распространяться. Не будет ли проблем с GPL лицензиями?
    3. У кого меньше время на разработку?

    Заранее благодарен

  6. norguhtar


    Реально ли Embedded Linux бесплатен и средства разработки под него? Если нет, тогда нужна любая инфа про то сколько и за что.

    Есть и бесплатные и платные. OpenEmbedded является бесплатной.


    Проект коммерческий. Ни исходники ни схемы разрабатываемого девайса не будут свободно распространяться. Не будет ли проблем с GPL лицензиями?

    Нет. В случае соблюдения GPL лицензии. Во первых вы не должны линковать свое ПО с GPL ПО, с LGPL можно. Во вторых предоставлять исходники на те части что распрастраняются под лицензией GPL. Причем эти части достаточно передавать тем кто будет использовать вашу систему. Если ваше ПО не содержит GPL кода то оно не должно распрастраняться под этой лицензией.


    3. У кого меньше время на разработку?

    Без понятия. Ответить на этот вопрос без знания специфики проекта невозможно.

  7. dart

    Здравствуйте. Подскажите пожалуйста, у меня следующая ситуация:
    Есть GPS-навигатор Digma DM350, процессор Sigmatel STMP3738, 360 МГц, 64 Мб Mobile DDR, 1Gb внутренней памяти, MicroSD, miniUSB, Сенсорный ТFT-дисплей 3,5″ WinCE 5.0 Core Version

    он у меня валяется без дела, хочу поставить на него линукс и писать программы для него на с.
    С линуксом знаком мало, но собираюсь осваивать эту платформу.
    Про него написано, что процессор STMP3738 ARM9-based и что Available with a Linux BSP and support from Embedded Alley

    А тут http://www.arm.com/products/processors/classic/arm9/arm926.php написано что
    Some of the features offered by the ARM926EJ-S processor are
    Binary compatibility with the ARM7TDMI® processor

    Можно ли поставить на этот навигатор какой-нибудь линукс и как мне это сделать, хотя бы примерно, в общих чертах?
    Я в этом новичок, с чего начать? Какие нужны для этого инструменты и программы?

  8. norguhtar

    Для начала выясните как туда загружать linux и какой из платформ входящих в OpenEmbedded он соответствует. После этого вы сможете что-то сделать с этим навигатором.


Прокоментировать



 

Наверх