Встроенная система - это компьютерная система - комбинация компьютерного процессора, компьютерной памяти и периферийные устройства ввода / вывода, Выполняющие специальные функции в более крупной механической или электрической системе. Он встроен как часть полного устройства, часто включающего электрическое или электронное оборудование и механические части. Используемая встроенная система обычно управляет физическими операциями машины, которая имеет встроенные функции на скорости в реальном времени. Встроенные системы контролируют многие устройства, которые сегодня широко используются. Девяносто восемь процентов всех производимых микропроцессоров используются во встроенных системах.
Современные встроенные системы часто основаны на микроконтроллерах (т.е. микропроцессорах со встроенной памятью и периферийными интерфейсами), но обычные микропроцессоры (использующие внешние микросхемы для памяти и схемы периферийного интерфейса) также распространены, особенно в более системных системах. В любом случае могут быть разных типов, от универсальных до определенного типа вычислений, разработанных специально для конкретного приложения. Распространенным стандартным классом процессоров является цифровой сигнальный процессор (DSP).
Встроенная система для решения задач конкретных, инженеры-проектировщики могут оптимизировать ее, чтобы уменьшить размер и стоимость продукта, а также повысить надежность и производительность. Некоторые встроенные системы производятся серийно, благодаря экономии за счет масштаба.
Встроенные системы оценки от портативных устройств, таких как цифровые часы и MP3-плееры, до крупных стационарных установок, таких как контроллеры светофора, программируемые логические контроллеры и большие сложные системы, такие как гибридные автомобили, системы медицинской визуализации и авионика. Сложность распространяется от низкой (с одним микроконтроллером) до очень высоких с помощью устройств, периферийными устройствами и сетями, установленными внутри большими стойки для оборудования.
Истоки микропроцессор и микроконтроллер можно проследить до интегральной схемы MOS, которая представляет собой интегральную схему микросхему , изготовленную из MOSFET (металл- оксид-полупроводник полевые транзисторы ) и был разработан в начале 1960-х годов. К 1964 году MOS-чипы достигли более высокой плотности транзисторов и более низких производственных затрат, чем биполярные микросхемы. Микросхемы МОП еще более усложнялись со скоростью, предсказанной законом Мура, что привело к крупномасштабной интеграции (БИС) с сотнями транзисторов на одном кристалле МОП. к концу 1960-х гг. Применение микросхем MOS LSI для вычислений стало для использования первых микропроцессоров, поскольку инженеры начали понимать, что полная система компьютерного процессора может содержаться на нескольких микросхемах MOS LSI.
Первые многокристальные микропроцессоры, Четырехфазные системы AL1 в 1969 году и Garrett AiResearch MP944 в 1970 году, были разработаны с окрестностями МОП- БИС. чипсы. Первым однокристальным микропроцессором был Intel 4004, выпущенный в 1971 году. Он был разработан Федерико Фаггин с использованием его технологии кремниевого затвора MOS вместе с Инженеры Intel Марсиан Хофф и Стэн Мазор, и Busicom инженер Масатоши Шима.
Одной из первых узнаваемых современных встраиваемых систем был Компьютер управления Apollo, ориентиров ок. 1965 год, автор Чарльз Старк Дрейпер в приборной лаборатории Массачусетского технологического института. В начале проекта компьютерного управления Apollo считался самым рискованным проектом Apollo, поскольку в нем использовались недавно разработанные монолитные интегральные схемы для уменьшения размера и веса компьютера.
Первой серийно производимой встроенной системой был компьютер наведения Autonetics D-17 для ракеты Minuteman, выпущенный в 1961 году. Когда Minuteman II пошла в производство в 1966 году, D-17 был заменен новым компьютером, который стал первым массовым применением интегральных.
С тех пор, как в 1960-х годах появились первые приложения, встраиваемые системы стали дешевле, и произошел резкий рост вычислительной мощности и функциональности. Ранний микропроцессор , Intel 4004 (выпущенный в 1971 г.), был разработан для калькуляторов и других небольших систем, но все же требовал внешней памяти и вспомогательных микросхем. К 1980-х компонентам системы памяти, ввода и начала были интегрированы тот же чип, что и процессор, образующий микроконтроллер . Микроконтроллеры находят приложения, в которых универсальный компьютер был бы слишком дорогим. По мере того, как стоимость микропроцессоров и микроконтроллеров падала, распространенность встроенных систем увеличивалась.
Сегодня сравнительно недорогой микроконтроллер может быть запрограммирован на выполнение той же роли, что и большое количество отдельных компонентов. Благодаря микроконтроллерам стало возможным заменять даже в потребительских товарах дорогостоящие аналоговые компоненты с ручками, такие как потенциометры и переменные конденсаторы кнопками вверх / вниз или ручки считываются микропроцессором. Хотя в этом контексте встроенная система обычно более сложная, чем традиционное решение, большая часть сложности заключается в самом в микроконтроллере. Может потребоваться очень мало дополнительных компонентов, и большая часть усилий по проектированию на программное обеспечение приходится на программное обеспечение. Прототип и программное обеспечение может быть быстрее по сравнению с проектированием и созданием схемы без встроенного процессора.
Встроенные системы обычно используются в бытовой, промышленной, автомобильной, бытовой технике, медицинской, телекоммуникационные, коммерческие и военные приложения.
Телекоммуникационные системы используют множество встроенных систем от телефонных коммутаторов для сети до сотовых телефонов у конечного пользователя. В компьютерных сетях используются выделенные маршрутизаторы и сетевые мосты для маршрутизации данных.
Бытовая электроника включает MP3-плееры, телевизоры, мобильные телефоны, игровые приставки, цифровые камеры, GPS-приемники и принтеры. Бытовая техника, такая как микроволновые печи, стиральные машины и посудомоечные машины, включает встроенные системы, обеспечивающие гибкость, эффективность и функциональность. В усовершенствованных системах HVAC используются сетевые термостаты для более точного и эффективного управления температурой, которая может меняться в зависимости от времени суток и сезона. Домашняя автоматизация использует проводные и беспроводные сети, люди которые сообщают об управлении освещением, безопасностью, / видео, наблюдением и т. Д., Все из которых используют встроенные устройства для обнаружения и управления.
В транспортных системах от полета до автомобилей все чаще используются встроенные системы. Новые содержат такую современную авионику , как инерциальные системы наведения и приемники GPS, которые также имеют значительные требования к безопасности. Различные электродвигатели - бесщеточные двигатели постоянного тока, асинхронные двигатели и двигатели постоянного тока - используют электронные контроллеры двигателей. В автомобилях, электромобилях и гибридных автомобилей все чаще используются встроенные системы для повышения эффективности и снижения загрязнения. Другие автомобильные системы безопасности, использующие встроенные системы, включают антиблокировочную тормозную систему (ABS), электронный контроль устойчивости (ESC / ESP), антипробуксовочную систему (TCS) и автоматический полный привод.
Медицинское оборудование использует встроенные системы для мониторинга и различных медицинских изображений (ПЭТ, SPECT, CT и МРТ ) для неинвазивных внутренних осмотров. Встроенные системы в медицинском оборудовании часто питаются от промышленных компьютеров.
Используются встроенные системы системы, критически важные для безопасности. Если не подключены к проводным или беспроводным сетям через встроенную сотовую сеть 3G или другие методы для мониторинга и управления IoT, эти системы могут быть изолированы от взлома и, следовательно, более безопасны. В целях пожарной безопасности системы могут быть спроектированы с большей способностью выдерживать более высокие температуры и продолжать работать. Что касается безопасности, встроенные системы могут быть самодостаточными и иметь возможность работать с отключенными электрическими системами и системами связи.
Миниатюрные беспроводные устройства, называемые motes, представляют собой сетевые беспроводные датчики. Сеть беспроводных датчиков использует миниатюризацию, которая стала возможной благодаря усовершенствованной конструкции ИС для соединения полных беспроводных подсистем со сложными датчиками, что позволяет людям и компаниям производить множество вещей в физическом мире и действовать на основе информации посредством и Системы управления. Эти пылинки полностью автономны и обычно работают от батареи в течение многих лет, прежде чем батареи требуется заменить или зарядить.
Встроенные системы предназначены для выполнения некоторых задач, а не для универсального компьютера для выполнения нескольких задач. Некоторые имеют также ограничения производительности в реальном времени, которые должны быть соблюдены по таким причинам, как безопасность и удобство использования; могут иметь низкие требования к производительности или вообще не иметь их, что позволяет упростить системное оборудование для снижения затрат.
Встроенные системы не всегда автономными устройствами. Многие встроенные системы состоят из небольших частей. Например, Gibson Robot Guitar имеет встроенную систему для настройки струн, но основная цель Robot Guitar, конечно же, - воспроизводить музыку. Точно так же встроенная система в автомобиль определенную функцию в подсистемы самого автомобиля.
e-con Systems eSOM270 и eSOM300 Компьютер на модуляхПрограммные инструкции, написанные для встроенных систем, регистрируются как прошивка и хранятся в постоянной памяти или флэш-память фишек. Они работают с ограниченными аппаратными средствами компьютера: небольшим объемом памяти, маленькой отсутствующей клавиатурой или экраном.
Встроенные системы изменяются от без пользовательского интерфейса вообще, в системах, предназначенных только для одной задачи, сложные графических пользовательских интерфейсов, напоминают операционные системы современных компьютеров. Простые встраиваемые устройства используют кнопки, светодиоды, графические или символьные ЖК-дисплеи (например, HD44780 LCD ) с простой системой меню .
Более сложное устройство, в котором используется графический экран с сенсорным сенсорным или кнопочным устройством на краях экрана, гибкость при минимальном использовании пространства: кнопки может меняться вместе с экраном, а выбор включает естественное поведение установлен на желаемое. Портативные системы часто имеют экран с «кнопкой джойстика» для указывающего устройства.
Некоторые системы используют пользовательский интерфейс удаленно с помощью последовательного порта (например, RS-232, USB, I²C и т. Д.) Или подключение к сети (например, Ethernet ). Такой подход дает несколько преимуществ: расширяет возможности встроенной системы, позволяет избежать затрат на дисплей, упрощает BSP и позволяет создавать многофункциональный пользовательский интерфейс. Хорошим примером этого является сочетание встроенного веб-сервера, запущенного на встроенном устройстве (например, IP-камера ), или сетевого маршрутизатора. Пользовательский интерфейс отображается в веб-браузере на ПК, подключенном к устройству, поэтому установка программного обеспечения не требуется.
Примерами качества типичных встраиваемых компьютеров по сравнению с аналогами общего назначения являются низкое энергопотребление, малый размер, жесткие рабочие диапазоны и низкая стоимость единицы. Это происходит за счет ограниченных ресурсов обработки, что значительно затрудняет их программирование и взаимодействие с ними. Однако, создаваемые механизмы дополнительного оборудования, используя возможные датчики и наличие встроенных модулей, можно как оптимально управлять доступными средствами на устройстве и сети, так и обеспечивать расширенные функции, выходящие далеко за рамки те, что есть. Например, интеллектуальные методы могут быть разработаны для управления энергопотреблением встроенных систем.
Встроенные процессоры можно разделить на две большие категории. В обычных микропроцессорах (μ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.
Распространенным массивом для встраиваемых систем очень большого объема является система на микросхеме (SoC), которая содержит полную систему, состоящую из нескольких процессоров, умножителей, кэшей и интерфейсов на одном кристалле. SoC могут быть реализованы в виде специализированной интегральной схемы (ASIC) или с использованием программируемой вентильной матрицы (FPGA).
Встроенные системы общаются с внешним миром через периферийные устройства, например:
Как с другое программное обеспечение, встроенное проектировщики систем используют компиляторы, ассемблеры и отладчики для разработки встроенного системного программного обеспечения. Однако они могут также использовать некоторые более специфические инструменты:
Программные инструменты могут поступать из нескольких источников:
По мере роста сложности встроенных систем инструменты и операционные системы более высокого уровня переносятся в машины, где это имеет смысл. Например, сотовые телефоны, персональные цифровые помощники и другие потребительские компьютеры часто нуждаются в значительном программном обеспечении, которое приобретается или предоставляется лицом, не являющимся производителем электроники. В этих системах требуется открытая среда программирования, такая как Linux, NetBSD, OSGi или Embedded Java, поэтому сторонняя Поставщик программного обеспечения может продавать на большом рынке.
Встроенные системы обычно используются в быту, кулинарии, промышленности, автомобилестроении и медицине. Некоторыми примерами встроенных систем являются MP3-плееры, мобильные телефоны, игровые приставки, цифровые камеры, DVD-плееры и GPS. Бытовая техника, такая как микроволновые печи, стиральные и посудомоечные машины, включает встроенные системы, обеспечивающие гибкость и эффективность.
Встроенная отладка может выполняться на разных уровнях, в зависимости от доступных средств. Различные метрики, характеризующие различные формы встроенной отладки: замедляют ли это основное приложение, насколько близко отлаживаемая система или приложение к реальной системе или приложению, насколько выразительны триггеры, которые можно установить для отладки (например, проверка памяти при достижении определенного значения счетчика программ ), а также то, что можно проверить в процессе отладки (например, только память или память и регистры и т. д.).
От самых простых до самых сложных их можно примерно сгруппировать в следующие области:
Если не ограничен внешней отладкой, программист обычно может загружать и запускать программное обеспечение с помощью инструментов, просматривать код, выполняемый в процессоре, и запускать или останавливать его работу. Код может выглядеть как HLL исходный код, ассемблерный код или их сочетание.
Поскольку встроенная система часто состоит из большого количества элементов, стратегия отладки может различаться. Например, отладка программно-ориентированной встроенной системы (и микропроцессора) отличается от отладки встроенной системы, в которой большая часть обработки выполняется периферийными устройствами (DSP, FPGA и сопроцессором). Сегодня все большее количество встраиваемых систем использует более одного ядра процессора. Распространенной проблемой многоядерной разработки является правильная синхронизация выполнения программного обеспечения. В этом случае при проектировании встроенной системы может потребоваться проверка трафика данных на шинах между ядрами процессора, что требует очень низкоуровневой отладки, на уровне сигнала / шины, например, с помощью логического анализатора ..
Операционные системы реального времени (RTOS ) часто поддерживают трассировку событий операционной системы. Графическое представление предоставляется инструментальным средством главного ПК на основе записи поведения системы. Запись трассировки может выполняться программно, с помощью ОСРВ или с помощью специального оборудования для трассировки. Трассировка ОСРВ позволяет разработчикам понять проблемы синхронизации и производительности программной системы и дает хорошее понимание поведения системы на высоком уровне.
Встроенные системы часто находятся на машинах, которые, как ожидается, будут работать непрерывно в течение многих лет без ошибок, а в некоторых случаях восстанавливаются самостоятельно в случае возникновения ошибки. Поэтому программное обеспечение обычно разрабатывается и тестируется более тщательно, чем программное обеспечение для персональных компьютеров, и избегаются ненадежные механические движущиеся части, такие как дисководы, переключатели или кнопки.
Конкретные проблемы надежности могут включать:
Для восстановления после ошибок используются различные методы, иногда в комбинации - как программные ошибки, такие как утечки памяти, так и программные ошибки в аппаратном обеспечении:
Для систем с высокой громкостью, таких как портативные музыкальные плееры или мобильные телефоны, минимизация стоимости обычно является основным соображением при проектировании. Инженеры обычно выбирают оборудование, которое «достаточно хорошо» для реализации необходимых функций.
Для небольших или прототипных встроенных систем компьютеры общего назначения могут быть адаптированы путем ограничения программ или замены операционной системы на операционную систему реального времени.
В 1978 году Национальная ассоциация производителей электрооборудования выпустила стандарт для программируемых микроконтроллеров, включая практически любые компьютерные контроллеры, такие как одноплатные компьютеры, числовые контроллеры и контроллеры на основе событий.
Сегодня широко используются несколько различных типов программной архитектуры.
В этой конструкции программное обеспечение просто имеет контур. Цикл вызывает подпрограммы , каждая из которых управляет частью аппаратного или программного обеспечения. Следовательно, он называется простым контуром управления или контуром управления.
Некоторые встроенные системы преимущественно управляются прерываниями. Это означает, что задачи, выполняемые системой, запускаются разными типами событий; прерывание может быть сгенерировано, например, таймером с заранее определенной частотой или контроллером последовательного порта, принимающим байт.
Эти типы систем используются, если обработчикам событий требуется низкая задержка, а обработчики событий короткие и простые. Обычно такие системы также запускают простую задачу в основном цикле, но эта задача не очень чувствительна к неожиданным задержкам.
Иногда обработчик прерывания добавляет более длинные задачи в структуру очереди. Позже, после завершения обработчика прерывания, эти задачи выполняются основным циклом. Этот метод приближает систему к многозадачному ядру с дискретными процессами.
Система невытесняющей многозадачности очень похожа на схему простого контура управления, за исключением того, что цикл скрыт в API. Программист определяет серию задач, и каждая задача получает свою собственную среду для «запуска». Когда задача простаивает, она вызывает процедуру простоя, обычно называемую «пауза», «ожидание», «выход», «нет». (означает отсутствие операции) и т. д.
Преимущества и недостатки аналогичны преимуществам и недостаткам контура управления, за исключением того, что добавить новое программное обеспечение проще, просто написав новую задачу или добавив в очередь.
В системе этого типа низкоуровневый фрагмент кода переключается между задачами или потоками на основе таймера (подключенного к прерыванию). This is the level at which the system is generally considered to have an "operating system" kernel. Depending on how much functionality is Требуется, он вводит более или менее сложную задачу управления несколькими задачами, которые концептуально выполняются параллельно.
Поскольку любой код потенциально может повредить данные другой задачи (за исключением больших систем, использующих MMU ), программы должны быть тщательно спроектированы и протестированы, а доступ к общим данным должен контролироваться некоторыми стратегия синхронизации, такая как очереди сообщений, семафоры или схема неблокирующей синхронизации.
Из-за этих сложностей организации обычно используют операционную систему реального времени (RTOS), что позволяет прикладным программистам сосредоточиться на функциональности устройства, а не на службах операционной системы. минимум для больших систем; меньшие системы часто не могут позволить себе накладные расходы, связанные с общей системой реального времени, из-за ограничений, касающихся размера памяти, производительности или срока службы батареи. Однако выбор, что требуется ОСРВ, сопряжен с собственными проблемами, поскольку выбор должен быть сделан до начала процесса разработки приложения. Это время вынуждает разработчиков выбирать встроенную операционную систему для своего устройства в соответствии с текущими требованиями и, таким образом, в значительной степени ограничивает будущие возможности. Ограничение будущих возможностей становится все более серьезной проблемой, поскольку срок службы продукта сокращается. Кроме того, уровень сложности постоянно растет, поскольку устройства должны управлять такими переменными, как последовательный порт, USB, TCP / IP, Bluetooth, Беспроводная локальная сеть, магистральная радиосвязь, несколько каналов, данные. и голос, улучшенная графика, несколько состояний, несколько потоков, множество состояний ожидания и так далее. Эти тенденции приводят к распространению встроенного промежуточного программного обеспечения в дополнение к операционной системе реального времени.
A микроядро - логический шаг вперед по сравнению с ОС реального времени. Обычно ядро операционной системы выделяет память и переключает ЦП на разные потоки выполнения. Процессы пользовательского режима реализуют основные функции, такие как файловые системы, сетевые интерфейсы и т. Д.
Как правило, микроядра работают успешно, когда переключение задач и межзадачное взаимодействие происходит быстро, и терпят неудачу, когда они медленные.
Экзоядра эффективно взаимодействуют с помощью обычных вызовов подпрограмм. Аппаратное обеспечение и все программное обеспечение в системе доступны и расширяются прикладными программистами.
В этом случае относительно большое ядро со сложными возможностями адаптируется к встроенной среде. Это дает программистам среду, аналогичную настольной операционной системе, такой как Linux или Microsoft Windows, и поэтому очень продуктивно для разработки; с другой стороны, он требует значительно больше аппаратных ресурсов, часто дороже и из-за сложности этих ядер может быть менее предсказуемым и надежным.
Распространенными примерами встроенных монолитных ядер являются встроенные Linux, VXWorks и Windows CE.
. Несмотря на повышенную стоимость оборудования, этот тип встроенных систем становится все популярнее, особенно на более мощных встраиваемых устройствах, таких как беспроводные маршрутизаторы и системы навигации GPS. Вот некоторые из причин:
В дополнение к основной операционной системе многие em-системы имеют дополнительные программные компоненты верхнего уровня. Эти компоненты состоят из стеков сетевых протоколов, таких как CAN, TCP / IP, FTP, HTTP и HTTPS <356.>., а также включены такие возможности хранения, как FAT и системы управления флэш-памятью. Если встроенное устройство поддерживает аудио и видео, то в системе будут соответствующие драйверы и кодеки. В случае монолитных ядер многие из этих программных слоев включены. В категории RTOS доступность дополнительных программных компонентов зависит от коммерческих предложений.
Архитектура автомобильного сектора AUTOSAR - это стандартная архитектура для встроенного программного обеспечения.
Викискладе есть материалы, связанные с встроенными системами. |
В Викиучебнике есть книга по теме: Встроенные системы |
Викиверситет предлагает учебные ресурсы о Инженерном курсе встраиваемых систем |