Встроенная система - Embedded system
An Встроенная система компьютерная система - комбинация компьютерный процессор, память компьютера, и ввод, вывод периферийные устройства, выполняющие специальную функцию в более крупной механической или электрической системе.[1][2] это встроенный как часть полного устройства, часто включающего электрическое или электронное оборудование и механические части. Поскольку встроенная система обычно контролирует физические операции машины, в которую она встроена, она часто вычисления в реальном времени ограничения. Встроенные системы контролируют многие устройства, которые сегодня широко используются.[3] Девяносто восемь процентов всех производимых микропроцессоров используются во встроенных системах.[4]
Современные встраиваемые системы часто основаны на микроконтроллеры (то есть микропроцессоры со встроенной памятью и периферийными интерфейсами), но обычные микропроцессоры (использующие внешние микросхемы для памяти и схем периферийного интерфейса) также распространены, особенно в более сложных системах. В любом случае используемые процессоры могут быть разных типов, от универсальных до специализированных для определенного класса вычислений, или даже специально разработанные для конкретного приложения. Распространенным стандартным классом выделенных процессоров является цифровой сигнальный процессор (DSP).
Поскольку встроенная система предназначена для решения конкретных задач, инженеры-конструкторы может оптимизировать его, чтобы уменьшить размер и стоимость продукта, а также повысить надежность и производительность. Некоторые встроенные системы производятся серийно, благодаря эффект масштаба.
Встроенные системы варьируются от портативных устройств, таких как цифровые часы и Mp3-плееры, к крупным стационарным установкам, например контроллеры светофора, программируемые логические контроллеры, и большие сложные системы, такие как гибридные автомобили, медицинская визуализация системы и авионика. Сложность варьируется от низкой с одним микроконтроллером до очень высокой с несколькими модулями. периферийные устройства и сети, смонтированные внутри большого стойка для оборудования.
История
Задний план
Истоки микропроцессор и микроконтроллер можно проследить до MOS интегральная схема, что является Интегральная схема чип сфабрикованный от МОП-транзисторы (металл-оксид-полупроводник полевые транзисторы ) и был разработан в начале 1960-х годов. К 1964 году MOS-чипы достигли более высокого уровня плотность транзисторов и более низкие производственные затраты, чем биполярный чипсы. Микросхемы МОП стали более сложными со скоростью, предсказанной Закон Мура, что приводит к крупномасштабная интеграция (LSI) с сотнями транзисторы на одном кристалле MOS к концу 1960-х. Применение микросхем MOS LSI для вычисление была основой для первых микропроцессоров, поскольку инженеры начали понимать, что полный компьютерный процессор Система могла содержаться на нескольких микросхемах MOS LSI.[5]
Первые многочиповые микропроцессоры Четырехфазные системы AL1 в 1969 г. и Гаррет АйИсследование MP944 в 1970 году были разработаны микросхемы MOS LSI. Первый однокристальный микропроцессор был Intel 4004, выпущенный в 1971 году. Разработан Федерико Фаггин, используя его кремниевый затвор Технология MOS, наряду с Intel инженеры Марсиан Хофф и Стэн Мазор, и Бизиком инженер Масатоши Шима.[6]
Развитие
Одной из первых узнаваемых современных встраиваемых систем была Компьютер наведения Apollo,[нужна цитата ] развит ок. 1965 г. Чарльз Старк Дрейпер на Инструментальная лаборатория Массачусетского технологического института. В начале проекта компьютер наведения Apollo считался самым рискованным элементом проекта Apollo, поскольку в нем использовались недавно разработанные монолитные интегральные схемы чтобы уменьшить размер и вес компьютера.
Ранняя массовая встраиваемая система была Компьютер наведения Autonetics D-17 для Ракета Минитмен, выпущенный в 1961 году. Когда Minuteman II поступил в производство в 1966 году, D-17 был заменен новым компьютером, который стал первым массовым применением интегральных схем.
Со времени появления этих ранних приложений в 1960-х годах встраиваемые системы стали дешеветь, и произошел резкий рост вычислительной мощности и функциональности. Рано микропроцессор, то Intel 4004 (выпущен в 1971 г.), был разработан для калькуляторы и другие небольшие системы, но по-прежнему требуются внешняя память и вспомогательные микросхемы. К началу 1980-х компоненты системы памяти, ввода и вывода были интегрированы в тот же чип, что и процессор, образующий микроконтроллер. Микроконтроллеры находят приложения, в которых универсальный компьютер был бы слишком дорогим. По мере того, как стоимость микропроцессоров и микроконтроллеров падала, распространенность встроенных систем увеличивалась.
Сегодня сравнительно недорогой микроконтроллер может быть запрограммирован на выполнение той же роли, что и большое количество отдельных компонентов. Благодаря микроконтроллерам стало возможным заменить дорогие ручки с ручками даже в потребительских товарах. аналог компоненты, такие как потенциометры и переменные конденсаторы с кнопками вверх / вниз или ручками, считываемыми микропроцессором. Хотя в этом контексте встроенная система обычно более сложна, чем традиционное решение, большая часть сложности заключается в самом микроконтроллере. Может потребоваться очень мало дополнительных компонентов, и большая часть усилий по проектированию приходится на программное обеспечение. Прототип и тестирование программного обеспечения могут быть быстрее по сравнению с проектированием и созданием новой схемы без встроенного процессора.
Приложения
Встроенные системы обычно встречаются в бытовых, промышленных, автомобильный, бытовая техника, медицинские, телекоммуникационные, коммерческие и военные приложения.
Телекоммуникации системы используют многочисленные встроенные системы от телефонные переключатели для сети сотовые телефоны на конечный пользователь.В компьютерных сетях используются выделенные маршрутизаторы и сетевые мосты для маршрутизации данных.
Бытовая электроника включают Mp3-плееры, телевизионные наборы, мобильные телефоны, игровые приставки, цифровые фотоаппараты, GPS приемники и принтеры. Бытовая техника, например микроволновые печи, стиральные машины и посудомоечные машины, включают встроенные системы для обеспечения гибкости, эффективности и функциональности. Продвинутый HVAC системы используют сетевые термостаты для более точного и эффективного контроля температуры, которая может меняться в зависимости от времени суток и время года. Домашняя автоматизация использует проводные и беспроводные сети, которые можно использовать для управления освещением, климатом, безопасностью, аудио / видео, наблюдением и т. д., все из которых используют встроенные устройства для обнаружения и управления.
В транспортных системах от полета до автомобилей все чаще используются встроенные системы. Новые самолеты содержат продвинутые авионика такие как инерциальные системы наведения и приемники GPS, к которым также предъявляются высокие требования безопасности. Электродвигатели разные - бесщеточные двигатели постоянного тока, асинхронные двигатели и Двигатели постоянного тока - использовать электронные контроллеры двигателей. Автомобили, электрические транспортные средства, и гибридные автомобили все чаще используют встроенные системы для максимального повышения эффективности и уменьшения загрязнения. Другие автомобильные системы безопасности, использующие встроенные системы, включают: антиблокировочная система (АБС), Электронный контроль устойчивости (ESC / ESP), контроль тяги (TCS) и автоматический полноприводный автомобиль.
Медицинское оборудование использует встроенные системы для мониторинг, и различные медицинская визуализация (ПЭТ, ОФЭКТ, CT, и МРТ ) для неинвазивных внутренних проверок. Встроенные системы медицинского оборудования часто работают от промышленных компьютеров.[8]
Встраиваемые системы используются критические системы безопасности. Если не подключены к проводным или беспроводным сетям через встроенную сотовую сеть 3G или другие методы для мониторинга и управления IoT, эти системы могут быть изолированы от взлома и, таким образом, будут более безопасными.[9] В целях пожарной безопасности системы могут быть спроектированы с большей способностью выдерживать более высокие температуры и продолжать работать. Что касается безопасности, встроенные системы могут быть самодостаточными и иметь возможность работать с отключенными электрическими системами и системами связи.
Миниатюрные беспроводные устройства под названием пылинки сетевые беспроводные датчики. Сеть беспроводных датчиков использует миниатюризацию, ставшую возможной благодаря усовершенствованной конструкции ИС, для соединения полных беспроводных подсистем со сложными датчиками, позволяя людям и компаниям измерять множество вещей в физическом мире и воздействовать на эту информацию с помощью систем мониторинга и управления. Эти пылинки полностью автономны и обычно работают от батареи в течение многих лет, прежде чем батареи потребуется заменить или зарядить.
Характеристики
Встроенные системы предназначены для выполнения некоторых конкретных задач, а не для универсального компьютера для выполнения нескольких задач. Некоторые также имеют в реальном времени ограничения производительности, которые необходимо соблюдать по таким причинам, как безопасность и удобство использования; другие могут иметь низкие требования к производительности или вообще не иметь их, что позволяет упростить системное оборудование для снижения затрат.
Встроенные системы не всегда являются автономными устройствами. Многие встроенные системы состоят из небольших частей в более крупном устройстве, которое служит более общим целям. Например, Робот-гитара Гибсон имеет встроенную систему для настройки струн, но главная цель робота-гитары, конечно же, - играть музыку.[10] Точно так же встроенная система в автомобиль выполняет определенную функцию в качестве подсистемы самого автомобиля.
Программные инструкции, написанные для встроенных систем, называются прошивка, и хранятся в постоянной памяти или флэш-память чипсы. Они работают с ограниченными аппаратными ресурсами компьютера: небольшой объем памяти, маленькая или отсутствующая клавиатура или экран.
Пользовательский интерфейс
Встраиваемые системы варьируются от нет пользовательского интерфейса вообще, в системах, предназначенных только для одной задачи, для сложных графический пользовательский интерфейс напоминают операционные системы современных настольных компьютеров. Простые встраиваемые устройства используют кнопки, Светодиоды, графический или символьный ЖК-дисплеи (HD44780 ЖК-дисплей например) с простым система меню.
Более сложные устройства, использующие графический экран с прикоснуться сенсорные кнопки или кнопки на краю экрана обеспечивают гибкость при минимизации используемого пространства: значение кнопок может меняться вместе с экраном, а выбор включает естественное поведение указания на то, что требуется. Портативные системы часто есть экран с «кнопкой джойстика» для указывающего устройства.
Некоторые системы предоставляют пользовательский интерфейс удаленно с помощью последовательного порта (например, RS-232, USB, I²C и т. д.) или сети (например, Ethernet ) соединение. Такой подход дает несколько преимуществ: расширяет возможности встроенной системы, позволяет избежать затрат на отображение, упрощает BSP и позволяет создавать на ПК богатый пользовательский интерфейс. Хорошим примером этого является сочетание встроенный веб-сервер работает на встроенном устройстве (например, айпи камера ) или сетевой маршрутизатор. Пользовательский интерфейс отображается в веб-браузер на ПК, подключенном к устройству, поэтому установка программного обеспечения не требуется.
Процессоры во встроенных системах
Примерами свойств типичных встраиваемых компьютеров по сравнению с аналогами общего назначения являются низкое энергопотребление, небольшой размер, жесткие рабочие диапазоны и низкая стоимость единицы продукции. Это происходит за счет ограниченных ресурсов обработки, что значительно затрудняет их программирование и взаимодействие. Однако, создавая интеллектуальные механизмы поверх оборудования, используя возможные существующие датчики и наличие сети встроенных устройств, можно оптимально управлять доступными ресурсами на уровне устройства и сети, а также предоставлять расширенные функции, выходящие далеко за рамки те, что есть.[11] Например, могут быть разработаны интеллектуальные методы управления энергопотреблением встроенных систем.[12]
Встроенные процессоры можно разделить на две большие категории. В обычных микропроцессорах (μP) используются отдельные интегральные схемы для памяти и периферийных устройств. Микроконтроллеры (μC) имеют встроенные периферийные устройства, что снижает энергопотребление, размер и стоимость. В отличие от рынка персональных компьютеров, существует множество различных основных Архитектура ЦП используются, поскольку программное обеспечение разрабатывается специально для приложения и не является товарным продуктом, установленным конечным пользователем. И то и другое Фон Нейман, а также различной степени Гарвардские архитектуры, используются. RISC а также не-RISC процессоры. Длина слова варьируется от 4 до 64 бит и выше, хотя наиболее типичными остаются 8/16 бит. Большинство архитектур имеют большое количество различных вариантов и форм, многие из которых также производятся несколькими разными компаниями.
Многочисленные микроконтроллеры были разработаны для использования во встроенных системах. Микропроцессоры общего назначения также используются во встроенных системах, но, как правило, для них требуется больше схем поддержки, чем для микроконтроллеров.
Готовые компьютерные платы
PC / 104 и PC / 104 + являются примерами стандартов для готовый компьютерные платы, предназначенные для небольших встроенных и защищенных систем небольшого объема, в основном на базе x86. Они часто физически малы по сравнению со стандартным ПК, но все же довольно велики по сравнению с большинством простых (8/16-битных) встроенных систем. Они часто используют ДОС, Linux, NetBSD, или встроенный операционная система реального времени такие как MicroC / OS-II, QNX или VxWorks. Иногда на этих платах используются процессоры, отличные от x86.
В некоторых приложениях, где малый размер или энергоэффективность не являются первоочередными задачами, используемые компоненты могут быть совместимы с компонентами, используемыми в персональных компьютерах общего назначения x86. Платы, такие как VIA EPIA Ассортимент помогает заполнить пробел, будучи совместимым с ПК, но высоко интегрированным, физически меньшим по размеру или имеющим другие характеристики, делающие их привлекательными для разработчиков встраиваемых систем. Преимущество этого подхода заключается в том, что можно использовать недорогие стандартные компоненты вместе с теми же инструментами разработки программного обеспечения, которые используются для разработки общего программного обеспечения. Системы, построенные таким образом, по-прежнему считаются встроенными, поскольку они интегрированы в более крупные устройства и выполняют единственную роль. Примеры устройств, которые могут использовать этот подход: Банкоматы и игровые автоматы, которые содержат код, специфичный для приложения.
Однако большинство готовых плат встроенных систем не ориентированы на ПК и не используют шины ISA или PCI. Когда система на кристалле Если задействован процессор, стандартная шина, соединяющая дискретные компоненты, может принести мало пользы, а среда для аппаратных и программных средств может сильно отличаться.
В одном из распространенных стилей дизайна используется небольшой системный модуль, размером с визитную карточку, с высокой плотностью размещения. BGA чипы, такие как РУКА -на основании система на кристалле процессор и периферия, внешние флэш-память для хранения, и DRAM для оперативной памяти. Поставщик модуля обычно предоставляет загрузочное программное обеспечение и обеспечивает выбор операционных систем, обычно включая Linux и некоторые варианты выбора в реальном времени. Эти модули могут производиться в больших объемах организациями, знакомыми с их специализированными проблемами тестирования, и сочетаться с заказными материнскими платами гораздо меньшего объема с внешними периферийными устройствами для конкретных приложений.
Внедрение встраиваемых систем продвинулось настолько, что их можно легко реализовать с помощью уже изготовленных плат, основанных на всемирно признанных платформах. Эти платформы включают, но не ограничиваются, Ардуино и Raspberry Pi.
Решения ASIC и FPGA
Обычным массивом для встраиваемых систем очень большого объема является система на чипе (SoC), который содержит полную систему, состоящую из нескольких процессоров, умножителей, кэшей и интерфейсов на одном кристалле. SoC могут быть реализованы как специализированная интегральная схема (ASIC) или используя программируемая вентильная матрица (ПЛИС).
Периферийные устройства
Встроенные системы общаются с внешним миром через периферийные устройства, такие как:
- Интерфейсы последовательной связи (SCI): RS-232, RS-422, RS-485, так далее.
- Интерфейс синхронной последовательной связи: I2C, SPI, SSC и ESSI (расширенный синхронный последовательный интерфейс)
- универсальная последовательная шина (USB)
- Мультимедийные карты (SD-карты, Compact Flash и т. Д.)
- Сети: Ethernet, LonWorks, так далее.
- Полевые шины: CAN-шина, LIN-автобус, PROFIBUS, так далее.
- Таймеры: ФАПЧ (s), захват / сравнение и Единицы обработки времени
- Дискретный ввод-вывод: он же Ввод / вывод общего назначения (GPIO)
- Аналоговый в цифровой / Цифровой в аналоговый (АЦП /ЦАП )
- Отладка: JTAG, Интернет-провайдер, БДМ Порт, порты BITP и DB9.
инструменты
Как и в случае с другим программным обеспечением, разработчики встроенных систем используют компиляторы, монтажники, и отладчики для разработки встроенного системного программного обеспечения. Однако они могут также использовать некоторые более специфические инструменты:
- В отладчиках или эмуляторах схем (см. Следующий раздел).
- Утилиты для добавления контрольной суммы или CRC в программу, чтобы встроенная система могла проверить, действительна ли программа.
- Для систем, использующих цифровая обработка сигналов, разработчики могут использовать математический инструмент для моделирования математики.
- Инструменты моделирования и симуляции системного уровня помогают проектировщикам создавать имитационные модели системы с такими аппаратными компонентами, как процессоры, воспоминания, DMA, интерфейсы, шины и последовательность действий программного обеспечения в виде диаграммы состояний или блок-схемы с использованием настраиваемых библиотечных блоков. Для выбора правильных компонентов проводится моделирование путем сопоставления мощности и производительности, анализа надежности и анализа узких мест. Типичные отчеты, которые помогают проектировщику принимать архитектурные решения, включают задержку приложения, пропускную способность устройства, использование устройства, энергопотребление всей системы, а также энергопотребление на уровне устройства.
- Инструмент разработки на основе моделей создает и моделирует графические потоки данных и диаграммы состояний UML для таких компонентов, как цифровые фильтры, контроллеры двигателей, декодирование протокола связи и многоскоростные задачи.
- Пользовательские компиляторы и компоновщики могут использоваться для оптимизации специализированного оборудования.
- Встроенная система может иметь свой собственный специальный язык или инструмент проектирования или добавлять улучшения к существующему языку, например Четвертый или Базовый.
- Другой вариант - добавить операционная система реального времени или встроенная операционная система
- Моделирование и генерация кода инструменты часто на основе государственные машины
Программные инструменты могут поступать из нескольких источников:
- Софтверные компании, специализирующиеся на рынке встраиваемых систем
- Портировано из GNU инструменты разработки программного обеспечения
- Иногда можно использовать инструменты разработки для персонального компьютера, если встроенный процессор близок к обычному процессору ПК.
По мере того как сложность встроенных систем растет, инструменты и операционные системы более высокого уровня переносятся в машины, где это имеет смысл. Например, сотовые телефоны, персональные цифровые помощники и другие потребительские компьютеры часто нуждаются в значительном программном обеспечении, которое покупается или предоставляется другим лицом, а не производителем электроники. В этих системах открытая среда программирования, такая как Linux, NetBSD, OSGi или Встроенная Java требуется, чтобы сторонний поставщик программного обеспечения мог продавать его на большом рынке.
Встроенные системы обычно используются в потребительских, кулинарных, промышленных, автомобильных и медицинских приложениях. Некоторыми примерами встроенных систем являются MP3-плееры, мобильные телефоны, игровые приставки, цифровые камеры, DVD-плееры и GPS. Бытовая техника, такая как микроволновые печи, стиральные и посудомоечные машины, включает встроенные системы, обеспечивающие гибкость и эффективность.
Отладка
Встроенный отладка могут выполняться на разных уровнях, в зависимости от имеющихся возможностей. Различные метрики, характеризующие различные формы встроенной отладки: замедляют ли это основное приложение, насколько близко отлаживаемая система или приложение к реальной системе или приложению, насколько выразительны триггеры, которые можно установить для отладки (например, осматривая память, когда счетчик команд значение достигнуто), а также то, что можно проверить в процессе отладки (например, только память или память и регистры и т. д.).
От самых простых до самых сложных их можно условно разделить на следующие области:
- Интерактивная резидентная отладка с использованием простой оболочки, предоставляемой встроенной операционной системой (например, Forth и Basic)
- Внешняя отладка с использованием журнала или вывода через последовательный порт для отслеживания операции с использованием монитора во флэш-памяти или сервера отладки, такого как Remedy Debugger это работает даже для разнородных многоядерный системы.
- Внутрисхемный отладчик (ICD), аппаратное устройство, которое подключается к микропроцессору через JTAG или Nexus интерфейс.[13] Это позволяет управлять работой микропроцессора извне, но обычно ограничивается конкретными возможностями отладки в процессоре.
- An внутрисхемный эмулятор (ICE) заменяет микропроцессор имитированным эквивалентом, обеспечивая полный контроль над всеми аспектами микропроцессора.
- Полный эмулятор обеспечивает имитацию всех аспектов оборудования, позволяя управлять им и изменять его, а также отлаживать его на обычном ПК. Минусами являются расходы и медленная работа, в некоторых случаях до 100 раз медленнее, чем у окончательной системы.
- Для проектов SoC типичным подходом является проверка и отладка проекта на прототипе платы FPGA. Такие инструменты, как Certus[14] используются для вставки зондов в RTL FPGA, которые делают сигналы доступными для наблюдения. Это используется для отладки взаимодействия аппаратного, микропрограммного и программного обеспечения между несколькими ПЛИС с возможностями, аналогичными логическому анализатору.
- Преимущество программных отладчиков состоит в том, что они не нуждаются в модификации оборудования, но должны тщательно контролировать то, что они записывают, чтобы сэкономить время и место для хранения.[15]
Если не ограничиваться внешней отладкой, программист обычно может загружать и запускать программное обеспечение с помощью инструментов, просматривать код, выполняемый в процессоре, и запускать или останавливать его работу. Вид кода может быть таким HLL исходный код, код сборки или их смесь.
Поскольку встроенная система часто состоит из множества элементов, стратегия отладки может отличаться. Например, отладка программно-ориентированной встроенной системы (и микропроцессора) отличается от отладки встроенной системы, в которой большая часть обработки выполняется периферийными устройствами (DSP, FPGA и сопроцессором). Сегодня все большее количество встроенных систем используют более одного ядра процессора. Распространенной проблемой многоядерной разработки является правильная синхронизация выполнения программного обеспечения. В этом случае при проектировании встроенной системы может потребоваться проверка трафика данных на шинах между ядрами процессора, что требует очень низкоуровневой отладки на уровне сигнала / шины с логический анализатор, например.
Отслеживание
Операционные системы реального времени (ОСРВ ) часто поддерживает отслеживание событий операционной системы. Графическое представление предоставляется инструментальным средством главного ПК на основе записи поведения системы. Запись трассировки может выполняться в программном обеспечении, с помощью ОСРВ или с помощью специального оборудования для трассировки. Трассировка ОСРВ позволяет разработчикам понять проблемы синхронизации и производительности программной системы и дает хорошее понимание поведения системы на высоком уровне.
Надежность
Встроенные системы часто находятся в машинах, которые, как ожидается, будут работать без ошибок в течение многих лет, а в некоторых случаях восстанавливаются сами по себе в случае возникновения ошибки. Поэтому программное обеспечение обычно разрабатывается и тестируется более тщательно, чем программное обеспечение для персональных компьютеров, и избегаются ненадежные механические движущиеся части, такие как дисководы, переключатели или кнопки.
Конкретные проблемы надежности могут включать:
- Систему нельзя безопасно отключить для ремонта, или она недоступна для ремонта. Примеры включают космические системы, подводные кабели, навигационные маяки, скважинные системы и автомобили.
- Систему необходимо продолжать работать по соображениям безопасности. «Вялые режимы» менее терпимы. Часто резервные копии выбираются оператором. Примеры включают навигацию самолетов, системы управления реакторами, критические для безопасности средства управления химическим заводом, сигналы поездов.
- При отключении система потеряет большие суммы денег: телефонные коммутаторы, заводские средства управления, средства управления мостами и лифтами, перевод средств и создание рынка, автоматизированные продажи и обслуживание.
Для восстановления после ошибок используются различные методы, иногда в сочетании. Обе ошибки программного обеспечения, такие как утечки памяти, а также мягкие ошибки в оборудовании:
- сторожевой таймер который перезагружает компьютер, если программное обеспечение периодически не уведомляет подсистемы сторожевого таймера с избыточными запасными частями, которые могут быть переключены в программные "режимы остановки", которые обеспечивают частичное функционирование
- Проектирование с Надежная вычислительная база (TCB) архитектура[16] обеспечивает высокую безопасность и надежность системной среды
- А гипервизор Разработанный для встроенных систем, может обеспечить безопасную инкапсуляцию для любого компонента подсистемы, так что скомпрометированный программный компонент не может вмешиваться в другие подсистемы или системное программное обеспечение привилегированного уровня.[17] Эта инкапсуляция предотвращает распространение ошибок от одной подсистемы к другой, тем самым повышая надежность. Это также может позволить подсистеме автоматически отключаться и перезапускаться при обнаружении неисправности.
- Программирование с учетом иммунитета
Высокая или низкая громкость
Для систем большого объема, таких как портативные музыкальные плееры или мобильные телефоны, минимизация затрат обычно является основным соображением при проектировании. Инженеры обычно выбирают оборудование, которое «достаточно хорошо» для реализации необходимых функций.
Для небольших или прототипных встраиваемых систем компьютеры общего назначения могут быть адаптированы путем ограничения программ или замены операционной системы на операционная система реального времени.
Встроенные программные архитектуры
В 1978 г. Национальная ассоциация производителей электрооборудования выпустила стандарт для программируемых микроконтроллеров, включая практически любые компьютерные контроллеры, такие как одноплатные компьютеры, числовые контроллеры и контроллеры на основе событий.
Сегодня широко используются несколько различных типов программной архитектуры.
Простой контур управления
В этом дизайне программное обеспечение просто имеет петля. Цикл вызывает подпрограммы, каждый из которых управляет частью оборудования или программного обеспечения. Следовательно, он называется простым контуром управления или контуром управления.
Система управления прерываниями
Некоторые встроенные системы преимущественно контролируются прерывает. Это означает, что задачи, выполняемые системой, запускаются разными типами событий; прерывание может быть сгенерировано, например, таймером с заранее определенной частотой или контроллером последовательного порта, получающим байт.
Такие системы используются, если обработчикам событий требуется низкая задержка, а обработчики событий короткие и простые. Обычно такие системы также запускают простую задачу в основном цикле, но эта задача не очень чувствительна к неожиданным задержкам.
Иногда обработчик прерывания добавляет более длинные задачи в структуру очереди. Позже, после завершения обработчика прерывания, эти задачи выполняются основным циклом. Этот метод приближает систему к многозадачному ядру с дискретными процессами.
Кооперативная многозадачность
Система многозадачности без вытеснения очень похожа на схему простого контура управления, за исключением того, что контур скрыт в API.[3][1] Программист определяет серию задач, и каждая задача получает свою собственную среду для «запуска». Когда задача простаивает, она вызывает процедуру простоя, обычно называемую «пауза», «ожидание», «выход», «nop». (означает нет операции), так далее.
Преимущества и недостатки аналогичны преимуществам и недостаткам контура управления, за исключением того, что добавлять новое программное обеспечение проще, просто написав новую задачу или добавив в очередь.
Вытесняющая многозадачность или многопоточность
В системе этого типа низкоуровневый фрагмент кода переключается между задачами или потоками на основе таймера (подключенного к прерыванию). Это уровень, на котором обычно считается, что система имеет ядро «операционной системы». В зависимости от того, сколько функциональных возможностей требуется, он представляет большую или меньшую сложность управления несколькими задачами, которые концептуально выполняются параллельно.
Поскольку любой код потенциально может повредить данные другой задачи (за исключением больших систем, использующих MMU ) программы должны быть тщательно спроектированы и протестированы, а доступ к общим данным должен контролироваться некоторой стратегией синхронизации, такой как очереди сообщений, семафоры или неблокирующая синхронизация схема.
Из-за этих сложностей организации часто используют операционная система реального времени (RTOS), позволяя разработчикам приложений сосредоточиться на функциональности устройства, а не на службах операционной системы, по крайней мере, для больших систем; меньшие системы часто не могут позволить себе накладные расходы, связанные с общий система реального времени из-за ограничений, касающихся объема памяти, производительности или времени автономной работы. Однако выбор того, что требуется ОСРВ, порождает собственные проблемы, поскольку выбор должен быть сделан до начала процесса разработки приложения. Это время вынуждает разработчиков выбирать встроенную операционную систему для своего устройства в соответствии с текущими требованиями и, таким образом, в значительной степени ограничивает будущие возможности.[18] Ограничение будущих возможностей становится все более серьезной проблемой по мере сокращения срока службы продукта. Кроме того, уровень сложности постоянно растет, поскольку устройства должны управлять такими переменными, как последовательный порт, USB, TCP / IP, блютуз, Беспроводная сеть, магистральная радиосвязь, несколько каналов, данные и голос, улучшенная графика, несколько состояний, несколько потоков, многочисленные состояния ожидания и так далее. Эти тенденции приводят к распространению встроенное промежуточное ПО в дополнение к операционной системе реального времени.
Микроядра и экзоядра
А микроядро является логическим шагом вперед по сравнению с ОС реального времени. Обычно ядро операционной системы выделяет память и переключает процессор на разные потоки выполнения. Процессы пользовательского режима реализуют основные функции, такие как файловые системы, сетевые интерфейсы и т. Д.
В общем, микроядра успешны, когда переключение задач и межзадачное взаимодействие происходит быстро, и терпят неудачу, когда они медленные.
Экзоядра эффективно взаимодействовать с помощью обычных вызовов подпрограмм. Аппаратное обеспечение и все программное обеспечение в системе доступны и расширяются прикладными программистами.
Монолитные ядра
В этом случае относительно большое ядро со сложными возможностями адаптируется к встроенной среде. Это дает программистам среду, аналогичную настольной операционной системе, например Linux или Майкрософт Виндоус, и поэтому очень продуктивен для развития; с другой стороны, он требует значительно больше аппаратных ресурсов, часто дороже и из-за сложности этих ядер может быть менее предсказуемым и надежным.
Распространенные примеры встроенных монолитных ядер: встроенный Linux, VXWorks и Windows CE.
Несмотря на повышенную стоимость оборудования, этот тип встроенных систем становится все более популярным, особенно на более мощных встроенных устройствах, таких как беспроводные маршрутизаторы и Системы навигации GPS. Вот некоторые из причин:
- Доступны порты для стандартных встроенных наборов микросхем.
- Они разрешают повторное использование общедоступного кода для драйверы устройств, веб-серверы, брандмауэры, и другой код.
- Системы разработки могут начинаться с широких наборов функций, а затем дистрибутив можно настроить так, чтобы исключить ненужные функции и сэкономить расходы на потребляемую память.
- Многие инженеры считают, что запуск кода приложения в пользовательском режиме более надежен и легче поддается отладке, что упрощает процесс разработки и упрощает перенос кода.[нужна цитата ]
- Функции, требующие более быстрого отклика, чем можно гарантировать, часто можно разместить в оборудование.
Дополнительные программные компоненты
Помимо основной операционной системы, многие встроенные системы имеют дополнительные программные компоненты верхнего уровня. Эти компоненты состоят из стеков сетевых протоколов, таких как МОЧЬ, TCP / IP, FTP, HTTP, и HTTPS, а также включены возможности хранения, такие как ЖИР и системы управления флэш-памятью. Если встроенное устройство поддерживает аудио и видео, то в системе будут присутствовать соответствующие драйверы и кодеки. В случае монолитных ядер многие из этих программных слоев включены. В категории RTOS доступность дополнительных программных компонентов зависит от коммерческого предложения.
Доменно-ориентированные архитектуры
В автомобильном секторе АВТОСАР стандартная архитектура для встроенного программного обеспечения.
Смотрите также
- Коммуникационный сервер
- Киберфизическая система
- DSP
- Электронный блок управления
- Гипервизор
- Встроенные операционные системы
- Встроенное ПО
- Прошивка
- FPGA
- Информационное устройство
- Микропроцессор
- Микроконтроллер
- Силиконовый компилятор
- Операционная система реального времени
- Программная инженерия
- Система на микросхеме
- Система на модуле
- Повсеместные вычисления
- Фотонно оптимизированные встроенные микропроцессоры
Заметки
использованная литература
- ^ а б Майкл Барр. «Глоссарий встроенных систем». Техническая библиотека Neutrino. Получено 2007-04-21.
- ^ Хит, Стив (2003). Проектирование встроенных систем. Серия ЭДН для инженеров-конструкторов (2-е изд.). Newnes. п.2. ISBN 978-0-7506-5546-0.
Встроенная система - это микропроцессор основанная на системе, которая создана для управления функцией или рядом функций.
- ^ а б Майкл Барр; Энтони Дж. Масса (2006). "Введение". Программирование встроенных систем: с помощью средств разработки C и GNU. О'Рейли. С. 1–2. ISBN 978-0-596-00983-0.
- ^ Барр, Майкл (1 августа 2009 г.). "Настоящая мужская программа на C". Проектирование встроенных систем. TechInsights (United Business Media). п. 2. Получено 2009-12-23.
- ^ Ширрифф, Кен (30 августа 2016 г.). «Удивительная история первых микропроцессоров». IEEE Spectrum. Институт инженеров по электротехнике и электронике. 53 (9): 48–54. Дои:10.1109 / MSPEC.2016.7551353. S2CID 32003640. Получено 13 октября 2019.
- ^ «1971: микропроцессор объединяет функции центрального процессора на одном кристалле». Кремниевый двигатель. Музей истории компьютеров. Получено 22 июля 2019.
- ^ «Фонд электронных рубежей». Фонд электронных рубежей.
- ^ Встроенные системы Решения Dell OEM | Dell. Content.dell.com (04.01.2011). Проверено 6 февраля 2013.
- ^ Мулла, Ифат Азим (август 2019 г.). «Комплексное исследование встроенных систем и Интернета вещей» (PDF). Международный журнал перспективных исследований в области науки, техники и технологий. 6 (8).
- ^ Дэвид Кэри (22 апреля 2008 г.). «Под капотом: робот-гитара включает автонастройку». Проектирование встроенных систем. Архивировано из оригинал на 2008-07-08.
- ^ К.Алиппи: Интеллект для встроенных систем. Springer, 2014 г., 283 стр., ISBN 978-3-319-05278-6.
- ^ С. Миттал "Обзор методов повышения энергоэффективности встраиваемых вычислительных систем ", НЖКАЭТ, 6 (4), 440–459, 2014.
- ^ Танкрети, Мэтью; Хоссейн, Мохаммад Саджад; Багчи, Саурабх; Рагхунатан, Виджай (2011). «Авекша: программно-аппаратный подход к неразрушающему отслеживанию и профилированию встроенных беспроводных систем». Материалы 9-й конференции ACM по встроенным сетевым сенсорным системам. SenSys '11. Нью-Йорк, Нью-Йорк, США: ACM: 288–301. Дои:10.1145/2070942.2070972. ISBN 9781450307185. S2CID 14769602.
- ^ «Tektronix обновляет прототипирование, встроенное оборудование повышает платы до статуса эмулятора». Электронный инженерный журнал. 2012-10-30. Получено 2012-10-30.
- ^ Танкрети, Мэтью; Сундарам, Винайтхиртан; Багчи, Саурабх; Эугстер, Патрик (2015). «ТАРДИС: только программное обеспечение для записи и воспроизведения на системном уровне в беспроводных сенсорных сетях». Материалы 14-й Международной конференции по обработке информации в сенсорных сетях. IPSN '15. Нью-Йорк, Нью-Йорк, США: ACM: 286–297. Дои:10.1145/2737095.2737096. ISBN 9781450334754. S2CID 10120929.
- ^ Хайзер, Гернот (декабрь 2007 г.). «Ваша система безопасна? Докажите это!» (PDF). ;авторизоваться:. 2 (6): 35–8.
- ^ Moratelli, C; Иоганн, S; Невес, М; Хессель, Ф (2016). «Встроенная виртуализация для разработки безопасных приложений Интернета вещей». Международный симпозиум по быстрому прототипированию систем (RSP) 2016 г.: 2–6. Дои:10.1145/2990299.2990301. ISBN 9781450345354. S2CID 17466572. Получено 2 февраля 2018.
- ^ «Работа на нескольких встроенных платформах» (PDF). кларнокс. Получено 2010-08-17.
дальнейшее чтение
- Джон Катсулис (май 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 г.
- Неделя встроенных систем (ESWEEK) ежегодное мероприятие с конференциями, семинарами и обучающими программами, охватывающими все аспекты встраиваемых систем и программного обеспечения
- Семинар по встроенным и киберфизическим системам образования, семинар по образовательным аспектам встраиваемых систем