Из Википедии, бесплатной энциклопедии
  (Перенаправлено из встроенных систем )
Перейти к навигации Перейти к поиску

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

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

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

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

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

История [ править ]

Фон [ править ]

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

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

Развитие [ править ]

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

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

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

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

Приложения [ править ]

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

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

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

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

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

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

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

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

Характеристики [ править ]

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

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

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

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

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

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

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

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

Процессоры во встроенных системах [ править ]

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

Встроенные процессоры можно разделить на две большие категории. В обычных микропроцессорах (μP) используются отдельные интегральные схемы для памяти и периферийных устройств. Микроконтроллеры (μC) имеют встроенные периферийные устройства, что снижает энергопотребление, размер и стоимость. В отличие от рынка персональных компьютеров, используется множество различных базовых архитектур ЦП , поскольку программное обеспечение разрабатывается специально для приложения и не является массовым продуктом, устанавливаемым конечным пользователем. Используются как фон Нейман , так и различные степени гарвардской архитектуры . RISCа также не-RISC процессоры. Длина слова варьируется от 4 до 64 бит и выше, хотя наиболее типичными остаются 8/16 бит. Большинство архитектур имеют большое количество различных вариантов и форм, многие из которых также производятся несколькими разными компаниями.

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

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

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

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

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

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

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

Решения ASIC и FPGA [ править ]

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

Периферийные устройства [ править ]

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

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

  • Интерфейсы последовательной связи (SCI): RS-232 , RS-422 , RS-485 и т. Д.
  • Интерфейс синхронной последовательной связи: I2C , SPI , SSC и ESSI (расширенный синхронный последовательный интерфейс)
  • Универсальная последовательная шина (USB)
  • Мультимедийные карты (SD-карты, Compact Flash и т. Д.)
  • Сети: Ethernet , LonWorks и др.
  • Полевые шины : CAN-Bus , LIN-Bus , PROFIBUS и т. Д.
  • Таймеры: PLL (s), блоки захвата / сравнения и обработки времени
  • Дискретный ввод-вывод: также известный как ввод / вывод общего назначения (GPIO)
  • Аналого-цифровое / цифровое-аналоговое ( АЦП / ЦАП )
  • Отладка: JTAG , ISP , порт BDM, порты BITP и DB9.

Инструменты [ править ]

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

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

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

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

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

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

Отладка [ править ]

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

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

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

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

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

Отслеживание [ править ]

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

Надежность [ править ]

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

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

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

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

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

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

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

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

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

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

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

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

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

Система, управляемая прерываниями [ править ]

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

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

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

Совместная многозадачность [ править ]

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

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

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

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

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

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

Микроядра и экзоядра [ править ]

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

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

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

Монолитные ядра [ править ]

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

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

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

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

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

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

Доменные архитектуры [ править ]

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

См. Также [ править ]

  • Коммуникационный сервер
  • Киберфизическая система
  • DSP
  • Электронный блок управления
  • Гипервизор
  • Встроенные операционные системы
  • Встроенное программное обеспечение
  • Прошивка
  • ПЛИС
  • Информационное устройство
  • Микропроцессор
  • Микроконтроллер
  • Силиконовый компилятор
  • Операционная система реального времени
  • Программная инженерия
  • Система на микросхеме
  • Система на модуле
  • Повсеместные вычисления
  • Фотонно-оптимизированные встроенные микропроцессоры

Заметки [ править ]

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

Ссылки [ править ]

  1. ^ а б Майкл Барр . «Глоссарий встроенных систем» . Техническая библиотека Нейтрино . Проверено 21 апреля 2007 .
  2. ^ Хит, Стив (2003). Проектирование встроенных систем . Серия ЭДН для инженеров-конструкторов (2-е изд.). Newnes. п. 2 . ISBN 978-0-7506-5546-0. Встроенная система - это система на основе микропроцессора , созданная для управления функцией или рядом функций.
  3. ^ а б Майкл Барр; Энтони Дж. Масса (2006). «Введение» . Программирование встроенных систем: с помощью средств разработки C и GNU . О'Рейли. С. 1–2. ISBN 978-0-596-00983-0.
  4. ^ Барр, Майкл (1 августа 2009 г.). "Настоящая мужская программа на C" . Проектирование встроенных систем . TechInsights (United Business Media). п. 2 . Проверено 23 декабря 2009 .
  5. ^ Shirriff, Кен (30 августа 2016). «Удивительная история первых микропроцессоров» . IEEE Spectrum . Институт инженеров по электротехнике и радиоэлектронике . 53 (9): 48–54. DOI : 10.1109 / MSPEC.2016.7551353 . S2CID 32003640 . Проверено 13 октября 2019 . 
  6. ^ «1971: микропроцессор объединяет функцию процессора на одном чипе» . Кремниевый двигатель . Музей истории компьютеров . Проверено 22 июля 2019 .
  7. ^ "Фонд электронных границ" . Electronic Frontier Foundation .
  8. ^ Встроенные системы Решения Dell OEM | Dell . Content.dell.com (04.01.2011). Проверено 6 февраля 2013.
  9. ^ Дэвид Кэри (2008-04-22). «Под капотом: робот-гитара включает автонастройку» . Проектирование встроенных систем . Архивировано из оригинала на 2008-07-08.
  10. ^ C.Alippi: Интеллект для встроенных систем. Springer, 2014 г., 283pp, ISBN 978-3-319-05278-6 . 
  11. ^ С. Миттал, " Обзор методов повышения энергоэффективности встраиваемых вычислительных систем ", IJCAET, 6 (4), 440–459, 2014.
  12. ^ Tancreti, Мэтью; Хоссейн, Мохаммад Саджад; Багчи, Саурабх; Рагхунатан, Виджай (2011). «Авекша: программно-аппаратный подход к неразрушающему отслеживанию и профилированию встроенных беспроводных систем». Материалы 9-й конференции ACM по встроенным сетевым сенсорным системам . SenSys '11. Нью-Йорк, Нью-Йорк, США: ACM: 288–301. DOI : 10.1145 / 2070942.2070972 . ISBN 9781450307185. S2CID  14769602 .
  13. ^ "Tektronix встряхивает прототипы, встроенное оборудование повышает платы до статуса эмулятора" . Электронный инженерный журнал. 2012-10-30 . Проверено 30 октября 2012 .
  14. ^ Tancreti, Мэтью; Сундарам, Винайтертхан; Багчи, Саурабх; Эугстер, Патрик (2015). «ТАРДИС: только программное обеспечение для записи и воспроизведения на системном уровне в беспроводных сенсорных сетях». Материалы 14-й Международной конференции по обработке информации в сенсорных сетях . IPSN '15. Нью-Йорк, Нью-Йорк, США: ACM: 286–297. DOI : 10.1145 / 2737095.2737096 . ISBN 9781450334754. S2CID  10120929 .
  15. ^ Heiser, Гернот (декабрь 2007). «Ваша система безопасна? Докажите это!» (PDF) . ; Логин: . 2 (6): 35–8.
  16. ^ Морателли, C; Иоганн, S; Невес, М; Хессель, Ф (2016). «Встроенная виртуализация для разработки безопасных приложений Интернета вещей» . Международный симпозиум по быстрому прототипированию систем (RSP) 2016 : 2–6. DOI : 10.1145 / 2990299.2990301 . ISBN 9781450345354. S2CID  17466572 . Проверено 2 февраля 2018 .
  17. ^ «Работа на нескольких встроенных платформах» (PDF) . кларнокс . Проверено 17 августа 2010 .

Дальнейшее чтение [ править ]

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

Внешние ссылки [ править ]

  • Курс по встроенным системам с mbed YouTube, продолжается с 2015 года.
  • Тенденции кибербезопасности и встроенных систем Дэн Гир, ноябрь 2013 г.
  • Видеокурс по программированию современных встраиваемых систем YouTube, продолжается с 2013 г.
  • Ежегодное мероприятие Embedded Systems Week (ESWEEK) с конференциями, семинарами и обучающими программами, охватывающими все аспекты встраиваемых систем и программного обеспечения.
  • Семинар по встроенным и киберфизическим системам. Обучение , семинар по образовательным аспектам встроенных систем.