Встроенная система - Embedded system

Встроенная система на подключаемый модуль карты с процессором, памятью, блок питания, и внешние интерфейсы

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

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

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

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

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

История

Фон

Истоки микропроцессора и микроконтроллера можно проследить в МОП интегральной схемы , которая является интегральной схемой чип изготовлен из МОП - транзисторов (металл-оксид-полупроводник полевых транзисторов ) и был разработан в начале 1960 - х годов. К 1964 году MOS-чипы достигли более высокой плотности транзисторов и более низких производственных затрат, чем биполярные чипы. Микросхемы МОП еще больше усложнялись со скоростью, предсказанной законом Мура , что привело к крупномасштабной интеграции (БИС) с сотнями транзисторов на одном кристалле МОП к концу 1960-х годов. Применение микросхем MOS LSI в вычислениях стало основой для первых микропроцессоров, поскольку инженеры начали понимать, что полная компьютерная процессорная система может содержаться на нескольких микросхемах MOS LSI.

Первые многочиповые микропроцессоры, Four-Phase Systems AL1 в 1969 году и Garrett AiResearch MP944 в 1970 году, были разработаны с использованием нескольких микросхем MOS LSI. Первым однокристальным микропроцессором был Intel 4004 , выпущенный в 1971 году. Он был разработан Федерико Фаггин с использованием своей технологии кремниевого МОП -кристалла вместе с инженерами Intel Марцианом Хоффом и Стэном Мазором , а также инженером Busicom Масатоши Шима .

Разработка

Одной из первых узнаваемых современных встраиваемых систем был компьютер управления Apollo , разработанный ок. 1965 год - Чарльз Старк Дрейпер из приборной лаборатории Массачусетского технологического института . В начале проекта компьютер управления Apollo считался самым рискованным элементом в проекте Apollo, поскольку в нем использовались недавно разработанные монолитные интегральные схемы для уменьшения размера и веса компьютера.

Первой серийно производимой встроенной системой был компьютер наведения Autonetics D-17 для ракеты Minuteman , выпущенный в 1961 году. Когда Minuteman II пошел в производство в 1966 году, D-17 был заменен новым компьютером, который представлял собой первый высокопроизводительный компьютер. объемное использование интегральных схем.

Со времени появления этих ранних приложений в 1960-х годах встраиваемые системы стали дешеветь, и произошел резкий рост вычислительной мощности и функциональности. Ранний микропроцессор , то Intel 4004 (выпущено в 1971 году), был разработан для калькуляторов и других малых систем , но по- прежнему требуется внешняя память и поддержка чипов. К началу 1980-х компоненты системы памяти, ввода и вывода были интегрированы в тот же чип, что и процессор, образующий микроконтроллер . Микроконтроллеры находят приложения, в которых универсальный компьютер был бы слишком дорогим. По мере того, как стоимость микропроцессоров и микроконтроллеров падала, распространенность встраиваемых систем увеличивалась.

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

Приложения

Сборка встроенного компьютера для электронной машины для голосования Accupoll

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

Телекоммуникационные системы используют многочисленные встроенные системы с телефонных коммутаторов для сети на сотовые телефоны в конечном пользователе . В компьютерных сетях используются выделенные маршрутизаторы и сетевые мосты для маршрутизации данных.

Бытовая электроника включает MP3-плееры , телевизоры , мобильные телефоны , игровые приставки , цифровые камеры , приемники GPS и принтеры . Бытовая техника, такая как микроволновые печи , стиральные и посудомоечные машины , включает встроенные системы, обеспечивающие гибкость, эффективность и функциональность. В современных системах отопления, вентиляции и кондиционирования воздуха используются сетевые термостаты для более точного и эффективного контроля температуры, которая может меняться в зависимости от времени суток и сезона . В домашней автоматизации используются проводные и беспроводные сети, которые можно использовать для управления освещением, климатом, безопасностью, аудио / видео, наблюдением и т. Д., Все из которых используют встроенные устройства для обнаружения и управления.

В транспортных системах от полета до автомобилей все чаще используются встроенные системы. Новые самолеты содержат современную авионику, такую ​​как инерциальные системы наведения и приемники GPS, которые также имеют серьезные требования к безопасности. Различные электродвигатели - бесщеточные двигатели постоянного тока , асинхронные двигатели и двигатели постоянного тока - используют электронные контроллеры двигателей . В автомобилях , электромобилях и гибридных транспортных средствах все чаще используются встроенные системы для повышения эффективности и уменьшения загрязнения. Другие автомобильные системы безопасности, использующие встроенные системы, включают антиблокировочную тормозную систему (ABS), электронный контроль устойчивости (ESC / ESP), контроль тяги (TCS) и автоматический полный привод .

В медицинском оборудовании используются встроенные системы для мониторинга и различные медицинские изображения ( ПЭТ , ОФЭКТ , КТ и МРТ ) для неинвазивных внутренних проверок. Встроенные системы медицинского оборудования часто работают от промышленных компьютеров.

Встроенные системы используются для систем, критичных к безопасности . Если они не подключены к проводным или беспроводным сетям через встроенную сотовую сеть 3G или другие методы для мониторинга и управления IoT, эти системы могут быть изолированы от взлома и, следовательно, более безопасны. В целях пожарной безопасности системы могут быть спроектированы так, чтобы иметь большую способность выдерживать более высокие температуры и продолжать работать. Что касается безопасности, встроенные системы могут быть самодостаточными и иметь возможность работать с отключенными электрическими системами и системами связи.

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

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

Встроенные системы предназначены для выполнения некоторых конкретных задач, а не для универсального компьютера для выполнения нескольких задач. Некоторые также имеют ограничения производительности в реальном времени, которые необходимо соблюдать по таким причинам, как безопасность и удобство использования; другие могут иметь низкие требования к производительности или не иметь их, что позволяет упростить системное оборудование для снижения затрат.

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

Компьютер e-con Systems eSOM270 и eSOM300 на модулях

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

Пользовательские интерфейсы

Встроенный системный текстовый пользовательский интерфейс с использованием MicroVGA

Встраиваемые системы варьируются от систем без пользовательского интерфейса вообще, в системах, предназначенных только для одной задачи, до сложных графических пользовательских интерфейсов, которые напоминают операционные системы современных настольных компьютеров. В простых встраиваемых устройствах используются кнопки , светодиоды , графические или символьные ЖК-дисплеи ( например, ЖК-дисплей HD44780 ) с простой системой меню . Более сложные устройства, в которых используется графический экран с сенсорным управлением или программные клавиши по краям экрана, обеспечивают гибкость при минимизации используемого пространства: значение кнопок может меняться вместе с экраном, а выбор включает естественное поведение указания на то, что требуется.

Некоторые системы предоставляют пользовательский интерфейс удаленно с помощью последовательного (например, RS-232 ) или сетевого (например, Ethernet ) соединения. Такой подход расширяет возможности встроенной системы, позволяет избежать затрат на дисплей, упрощает BSP и позволяет разработчикам создавать на ПК богатый пользовательский интерфейс. Хорошим примером этого является комбинация встроенного HTTP-сервера, работающего на встроенном устройстве (например, IP-камере или сетевом маршрутизаторе ). Пользовательский интерфейс отображается в веб-браузере на ПК, подключенном к устройству.

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

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

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

Готовые компьютерные платы

PC / 104 и PC / 104 + являются примерами стандартов для готовых компьютерных плат, предназначенных для небольших, небольших встраиваемых и защищенных систем. В основном они основаны на архитектуре x86 и часто физически малы по сравнению со стандартным ПК, хотя все еще довольно велики по сравнению с большинством простых (8/16-битных) встроенных систем. Они могут использовать DOS , Linux , NetBSD или встроенную операционную систему реального времени, такую ​​как MicroC / OS-II , QNX или VxWorks .

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

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

Один общий стиль дизайна используется небольшой модуль системы, возможно , размер визитной карточки, держа высокую плотность BGA чипов , таких как ARM основанное система-на-чипе процессора и периферийных устройств, внешней флэш - памяти для хранения данных и памяти DRAM для выполнения объем памяти. Поставщик модуля обычно предоставляет загрузочное программное обеспечение и следит за выбором операционных систем, обычно включая Linux и некоторые варианты в реальном времени. Эти модули могут производиться в больших объемах организациями, знакомыми с их специализированными проблемами тестирования, и сочетаться с пользовательскими материнскими платами гораздо меньшего объема с внешними периферийными устройствами для конкретных приложений. Яркие примеры этого подхода включают Arduino и Raspberry Pi .

Решения для ASIC и FPGA SoC

Распространенным массивом для встраиваемых систем очень большого объема, таких как мобильные телефоны и смартфоны , а также для встраиваемых систем (не очень большого объема) с особыми потребностями в производительности обработки сигналов, интерфейсах и надежности, как в авионике, является система на чипе (SoC). SoC содержит полную систему, состоящую из нескольких процессоров, умножителей, кешей, даже различных типов памяти и, как правило, различных периферийных устройств, таких как интерфейсы для проводной или беспроводной связи на одном кристалле. Часто в состав таких микросхем входят графические процессоры (GPU) и процессоры цифровых сигналов (DSP). SoC могут быть реализованы как специализированная интегральная схема (ASIC) или с использованием программируемой вентильной матрицы (FPGA), которая обычно может быть переконфигурирована.

Периферийные устройства

Крупный план микросхемы SMSC LAN91C110 (SMSC 91x), встроенной микросхемы Ethernet.

Встроенные системы общаются с внешним миром через периферийные устройства , такие как:

Инструменты

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

  • В отладчиках схем или эмуляторах (см. Следующий раздел).
  • Утилиты для добавления контрольной суммы или CRC к программе, чтобы встроенная система могла проверить, действительна ли программа.
  • Для систем, использующих цифровую обработку сигналов , разработчики могут использовать математический инструмент для моделирования математики.
  • Инструменты моделирования и симуляции на уровне системы помогают проектировщикам создавать имитационные модели системы с аппаратными компонентами, такими как процессоры , память , прямой доступ к памяти , интерфейсы , шины и программный поток поведения в виде диаграммы состояний или блок-схемы с использованием настраиваемых библиотечных блоков. Для выбора правильных компонентов проводится моделирование путем сопоставления мощности и производительности, анализа надежности и анализа узких мест. Типичные отчеты, которые помогают проектировщику принимать архитектурные решения, включают задержку приложения, пропускную способность устройства, использование устройства, энергопотребление всей системы, а также энергопотребление на уровне устройства.
  • Инструмент разработки на основе моделей создает и моделирует графические потоки данных и диаграммы состояний UML для таких компонентов, как цифровые фильтры, контроллеры двигателей, декодирование протокола связи и многоскоростные задачи.
  • Пользовательские компиляторы и компоновщики могут использоваться для оптимизации специализированного оборудования.
  • Встроенная система может иметь свой собственный специальный язык или инструмент проектирования или добавлять улучшения к существующему языку, например Forth или Basic .
  • Другой вариант - добавить операционную систему реального времени или встроенную операционную систему.
  • Инструменты моделирования и генерации кода часто основаны на конечных автоматах

Программные инструменты могут поступать из нескольких источников:

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

По мере роста сложности встроенных систем инструменты и операционные системы более высокого уровня переносятся в машины, где это имеет смысл. Например, для мобильных телефонов , персональных цифровых помощников и других потребительских компьютеров часто требуется серьезное программное обеспечение, которое приобретается или предоставляется другим лицом, а не производителем электроники. В этих системах требуется открытая среда программирования, такая как Linux , NetBSD , OSGi или Embedded Java, чтобы сторонний поставщик программного обеспечения мог продавать свои продукты на большом рынке.

Встроенные системы обычно используются в быту, кулинарии, промышленности, автомобилестроении и медицине. Некоторыми примерами встроенных систем являются MP3-плееры, мобильные телефоны, игровые приставки, цифровые камеры, DVD-плееры и GPS. Бытовая техника, такая как микроволновые печи, стиральные и посудомоечные машины, включает встроенные системы, обеспечивающие гибкость и эффективность.

Отладка

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

От самых простых до самых сложных их можно условно разделить на следующие области:

  • Интерактивная резидентная отладка с использованием простой оболочки, предоставляемой встроенной операционной системой (например, Forth и Basic)
  • Внешняя отладка с использованием протоколирования или вывода через последовательный порт для отслеживания операций с использованием монитора во флэш-памяти или сервера отладки, такого как Remedy Debugger, который работает даже для гетерогенных многоядерных систем.
  • Внутрисхемный отладчик (ICD), аппаратное устройство, которое подключается к микропроцессору через интерфейс JTAG или Nexus . Это позволяет управлять работой микропроцессора извне, но обычно ограничивается конкретными возможностями отладки в процессоре.
  • В цепи эмулятор (ICE) заменяет микропроцессор с моделируется эквивалентной, обеспечивая полный контроль над всеми аспектами микропроцессора.
  • Полный эмулятор обеспечивает имитацию всех аспектов оборудования, позволяя управлять им и изменять его, а также отлаживать его на обычном ПК. Минусами являются расходы и медленная работа, в некоторых случаях до 100 раз медленнее, чем у окончательной системы.
  • Для проектов SoC типичным подходом является проверка и отладка проекта на макетной плате FPGA. Такие инструменты, как Certus, используются для вставки зондов в RTL FPGA, которые делают сигналы доступными для наблюдения. Это используется для отладки аппаратного, микропрограммного и программного обеспечения, взаимодействующего с несколькими ПЛИС, с возможностями, аналогичными логическому анализатору.
  • Преимущество программных отладчиков состоит в том, что они не нуждаются в модификации оборудования, но должны тщательно контролировать то, что они записывают, чтобы сэкономить время и место для хранения.

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

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

Отслеживание

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

Надежность

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

Конкретные проблемы надежности могут включать:

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

Для восстановления после ошибок используются различные методы, иногда в сочетании - как программные ошибки, такие как утечки памяти , так и программные ошибки в оборудовании:

  • сторожевой таймер, который перезагружает компьютер, если программное обеспечение периодически не уведомляет подсистемы сторожевого устройства с резервными запасными частями, которые можно переключить в программные «режимы работы», обеспечивающие частичное функционирование.
  • Проектирование с использованием архитектуры Trusted Computing Base (TCB) обеспечивает высокую безопасность и надежность системной среды.
  • Гипервизор предназначены для встраиваемых систем может обеспечить безопасную инкапсуляцию для любого компонента подсистемы так , что скомпрометированы программный компонент не может вмешиваться с другими подсистемами, или системное программное обеспечение привилегированного уровня. Эта инкапсуляция предотвращает распространение ошибок от одной подсистемы к другой, тем самым повышая надежность. Это также может позволить подсистеме автоматически отключаться и перезапускаться при обнаружении неисправности.
  • Программирование с учетом иммунитета

Высокая или низкая громкость

Для систем большого объема, таких как портативные музыкальные плееры или мобильные телефоны , минимизация затрат обычно является основным соображением при проектировании. Инженеры обычно выбирают оборудование, которое «достаточно хорошо» для реализации необходимых функций.

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

Встроенные программные архитектуры

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

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

Простой контур управления

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

Система управления прерываниями

Некоторые встроенные системы преимущественно управляются прерываниями . Это означает, что задачи, выполняемые системой, запускаются различными типами событий; прерывание может быть сгенерировано, например, таймером с заранее определенной частотой или контроллером последовательного порта, принимающим байт.

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

Иногда обработчик прерывания добавляет более длинные задачи в структуру очереди. Позже, после завершения обработчика прерывания, эти задачи выполняются основным циклом. Этот метод приближает систему к многозадачному ядру с дискретными процессами.

Совместная многозадачность

Система многозадачности без вытеснения очень похожа на схему простого цикла управления, за исключением того, что цикл скрыт в API . Программист определяет серию задач, и каждая задача получает свою собственную среду для «запуска». Когда задача простаивает, она вызывает процедуру простоя, обычно называемую «пауза», «ожидание», «выход», «nop». (означает отсутствие операции ) и т. д.

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

Вытесняющая многозадачность или многопоточность

В этом типе системы фрагмент кода низкого уровня переключается между задачами или потоками на основе таймера (подключенного к прерыванию). Это уровень, на котором обычно считается, что система имеет ядро ​​«операционной системы». В зависимости от того, сколько функциональных возможностей требуется, он представляет большую или меньшую сложность управления несколькими задачами, которые концептуально выполняются параллельно.

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

Из-за этих сложностей организации обычно используют операционную систему реального времени (RTOS), что позволяет разработчикам приложений сосредоточиться на функциональности устройства, а не на службах операционной системы, по крайней мере, для больших систем; меньшие системы часто не могут позволить себе накладные расходы, связанные с общей системой реального времени, из-за ограничений, касающихся размера памяти, производительности или срока службы батареи. Однако выбор, что требуется ОСРВ, порождает свои собственные проблемы, поскольку выбор должен быть сделан до начала процесса разработки приложения. Это время вынуждает разработчиков выбирать встроенную операционную систему для своего устройства на основе текущих требований и, таким образом, в значительной степени ограничивает будущие возможности. Ограничение будущих возможностей становится все более серьезной проблемой, поскольку срок службы продукта сокращается. Кроме того, уровень сложности постоянно растет, поскольку устройства должны управлять такими переменными, как последовательный порт, USB, TCP / IP, Bluetooth , беспроводная локальная сеть , магистральная радиосвязь, несколько каналов, данные и голос, улучшенная графика, несколько состояний, несколько потоков, многочисленные состояния ожидания и так далее. Эти тенденции приводят к распространению встроенного промежуточного программного обеспечения в дополнение к операционной системе реального времени.

Микроядра и экзоядра

Микроядра является логическим шагом по сравнению с ОС реального времени. Обычно ядро ​​операционной системы выделяет память и переключает ЦП на разные потоки выполнения. Процессы пользовательского режима реализуют основные функции, такие как файловые системы, сетевые интерфейсы и т. Д.

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

Экзоядра эффективно взаимодействуют с помощью обычных вызовов подпрограмм. Аппаратное обеспечение и все программное обеспечение в системе доступны и расширяются прикладными программистами.

Монолитные ядра

В этом случае относительно большое ядро ​​со сложными возможностями адаптируется к встроенной среде. Это дает программистам среду, аналогичную настольной операционной системе, такой как Linux или Microsoft Windows , и, следовательно, очень продуктивно для разработки; с другой стороны, он требует значительно больше аппаратных ресурсов, часто дороже и из-за сложности этих ядер может быть менее предсказуемым и надежным.

Распространенными примерами встроенных монолитных ядер являются встроенные Linux , VXWorks и Windows CE .

Несмотря на увеличение стоимости оборудования, этот тип встроенных систем становится все более популярным, особенно на более мощных встроенных устройствах, таких как беспроводные маршрутизаторы и системы навигации GPS . Вот некоторые из причин:

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

Дополнительные программные компоненты

Помимо основной операционной системы, многие встроенные системы имеют дополнительные программные компоненты верхнего уровня. Эти компоненты состоят из стеков сетевых протоколов, таких как CAN , TCP / IP , FTP , HTTP и HTTPS , а также включают возможности хранения, такие как FAT и системы управления флеш-памятью. Если встроенное устройство поддерживает аудио и видео, то в системе будут присутствовать соответствующие драйверы и кодеки. В случае монолитных ядер включены многие из этих программных слоев. В категории RTOS доступность дополнительных программных компонентов зависит от коммерческого предложения.

Доменно-ориентированные архитектуры

В автомобильном секторе AUTOSAR - это стандартная архитектура для встроенного программного обеспечения.

Смотрите также

Примечания

  1. ^ Для получения дополнительных сведений о MicroVGA см. Этот PDF-файл .

использованная литература

дальнейшее чтение

  • Джон Катсулис (май 2005 г.). Проектирование встроенного оборудования, 2-е издание . О'Рейли. ISBN 0-596-00755-8.
  • Джеймс М. Конрад; Александр Григорьевич Дин (сентябрь 2011 г.). Встроенные системы, введение с использованием микроконтроллера Renesas RX62N . Микриум. ISBN 978-1935-7729-96.
  • Клаус Элк (август 2016 г.). Разработка встроенного программного обеспечения для Интернета вещей, основы, технологии и передовой опыт . ISBN 978-1534602533.

внешние ссылки