Встраиваемая система

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

Например, встроенный в лифт контроллер сообщает двигателю о необходимости перемещения лифта на разные этажи с помощью кнопок, которые нажимаются. Декодер встроен в телевизионную приставку спутникового телевидения (STB), чтобы считывать сигнал с антенны и посылать что-то, что понимает телевизор. Часто этот тип системы должен выполнять свою работу в определенное время. Это называется вычислениями в реальном времени. Если бы телевизионная приставка была прервана для выполнения другой задачи, вы бы увидели плохую картинку, например, на телевизоре. Компьютер общего назначения часто имеет короткие паузы, в то время как он делает что-то другое, он не в режиме реального времени.

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

Фотография внутренней части ADSL модема/маршрутизатора. Современный пример встраиваемой системы. Микропроцессор (4), оперативная память (6) и флэш-память (7).Zoom
Фотография внутренней части ADSL модема/маршрутизатора. Современный пример встраиваемой системы. Микропроцессор (4), оперативная память (6) и флэш-память (7).

Примеры встраиваемых систем

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

  • Телекоммуникационные системы используют их для телефонов, сотовых сетей и wi-fi маршрутизаторов.
  • Потребительская электроника включает в себя приемники вещания, MP3-плееры, мобильные телефоны, видеоигровые консоли, цифровые фотоаппараты, DVD-плееры, GPS-приемники, системы домашней безопасности и принтеры.
  • Бытовая техника, такая как микроволновые печи, стиральные машины, сигнализация и посудомоечные машины имеют встроенные системы.
  • В транспорте используются встраиваемые системы для всего, начиная от локомотивов для поездов, самолетов и автомобилей.
  • В промышленности используются электродвигатели с электронными контроллерами, считыватели карт и станки с ЧПУ, которые автоматически производят металлические детали.
  • Медицинские приборы, такие как дефибрилляторы, автоматические считыватели артериального давления и автоматические инсулиновые насосы.
  • Военные устройства, такие как рации, спутники и системы наведения для ракет.

Общие черты

  • Встраиваемые системы предназначены для выполнения определенной задачи, в отличие от компьютеров общего назначения.
  • Он не похож на компьютер - может не быть ни полного монитора, ни клавиатуры.
  • Многие встраиваемые системы должны уметь делать вещи в реальном времени - за короткий промежуток времени (почти мгновенно с точки зрения человека).
  • Многие встраиваемые системы должны быть очень надежными и безопасными, особенно для медицинского оборудования или авионики, управляющей самолетами.
  • Начинается очень быстро. Люди не хотят ждать ни минуты или двух, чтобы их машина запустилась, ни аварийного оборудования.
  • Она может использовать специальную операционную систему (или иногда очень маленькую домашнюю ОС), которая помогает удовлетворить эти требования, называемую операционной системойреального времени, или RTOS.
  • Инструкции по программе, написанные для встраиваемых систем, называются микропрограммным обеспечением и хранятся в читаемой памяти или в микросхемах флэш-памяти. Они работают с ограниченными аппаратными ресурсами компьютера: небольшим объемом памяти, небольшой или отсутствующей клавиатурой и/или экраном.

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

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

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

Пример пользовательского интерфейса с кнопками и простым ЖК-дисплеем.Zoom
Пример пользовательского интерфейса с кнопками и простым ЖК-дисплеем.

Оборудование

Аппаратное обеспечение включает в себя микросхемы, провода, печатные платы, кнопки и дисплеи.

ЦПУ

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

В отличие от микропроцессора для компьютера общего назначения, больший и быстрый не всегда лучше. Многие встраиваемые процессоры очень маленькие. Иногда это делается для того, чтобы использовать меньше места или меньше энергии, иногда - для того, чтобы быть дешевле. В компьютерах общего назначения используются микропроцессоры, которые читают 32-битные или 64-битные слова и работают на скоростях, измеряемых в ГГц, но встраиваемые процессоры обычно имеют от 4 до 32 бит и работают на скоростях, измеряемых десятками МГц (в сто раз медленнее). (Но программы также меньше по размеру и не проверяют на предмет того, что не используется).

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

Существуют "готовые" компьютерные платы, которые можно использовать в некоторых встраиваемых системах. Они часто используют Windows CE, Linux, NetBSD или встроенную операционную систему реального времени.

Иногда может быть проще использовать уже изготовленную печатную плату. Обычно они делят многие компоненты с компьютерами общего назначения, но они меньше, чем один в компьютере общего назначения. Такие платы, как VIA EPIA, могут работать под управлением Microsoft Windows. Преимущество заключается в том, что это экономит некоторое время электротехники и может использовать те же инструменты разработки программного обеспечения, которые используются для разработки программного обеспечения типа PC. Примерами таких встроенных устройств являются банкоматы или дисплеи в казино. Это хорошо работает, если требования реального времени не очень строгие (не имеет большого значения, если работа занимает восемь секунд вместо пяти, например).

решения ASIC и FPGA

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

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

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

  • Серийные порты: РУПОРЫ-232, РУПОРЫ-422, РУПОРЫ-485. Раньше это было довольно распространено с 9-контактными (или более крупными) разъемами.
  • Синхронный последовательный интерфейс связи: I²C Интерфейс, I²S Интерфейсный звук, SPI, MIcrowire, ...
  • Универсальная последовательная шина (USB).
  • Сети: Ethernet, сеть контроллеров, LonWorks, ...
  • Дискретный вход/выход: Вход/выход общего назначения (GPIO). Это может быть один провод с сигналом включения/выключения. Он может быть использован для небольшой клавиатуры или для подсветки светодиода.
  • Аналого-цифровые/цифрово-аналоговые преобразователи (АЦП/ЦАП). Он измеряет что-то, что меняет силу, например, датчик освещенности или управление двигателем.
  • Отладка: JTAG, ICSP порт, для инженеров-программистов.
Soekris net4801, встроенная система, предназначенная для сетевых приложений.Zoom
Soekris net4801, встроенная система, предназначенная для сетевых приложений.

Программное обеспечение

Операционные системы

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

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

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

Некоторые примеры операционных систем, от простых до сложных:

  • Простой контур управления - Таймер и контур используются для многократного вызова различных подпрограмм. Часто это делается одним человеком для небольших систем.
  • прерывание управляется - Задачи запускаются разными событиями. Событием может быть что-то хронометрированное (например, каждые десять секунд) или нажатие кнопки или получение данных.
  • упреждающая многозадачность - Каждая задача получает свою очередь на выполнение, а когда она заканчивает, то вызывает планировщика в операционной системе для выполнения следующей задачи.
  • упреждающая многозадачность или многопоточность - задача может быть остановлена через некоторое время, чтобы позволить другой задаче запуститься на некоторое время. Ни одна задача не может запустить систему. На этом уровне считается, что система имеет "ядро операционной системы" и может выполнять задачи параллельно. Этот тип ОС обычно покупается у компании, которая работает только на встроенных операционных системах.

Операционные системы реального времени включают такие продукты, как MicroC/OS-II, Green Hills INTEGRITY, QNX или VxWorks. В отличие от MacOS или Windows 7, эти операционные системы не очень хорошо известны большинству людей. Но они используются во многих местах, где время и безопасность очень важны. Люди используют их каждый день и не осознают этого.

Распространенными примерами больших ядер являются встраиваемые Linux и Windows CE. Хотя они не имеют жестких временных ограничений, необходимых для строгой системы реального времени, они становятся все более распространенными, особенно для более мощных устройств, таких как беспроводные маршрутизаторы и GPS. Они позволяют повторно использовать код, являющийся общественным достоянием, для драйверов устройств, веб-серверов, брандмауэров и другого кода. Разработчики программного обеспечения, которые более удобны в написании приложений для ПК, также найдут это более знакомым. При необходимости можно использовать FPGA или другое специальное аппаратное обеспечение для тех вещей, которые действительно нуждаются в жестких временных рамках.

Инструменты

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

  • Для систем, использующих цифровую обработку сигналов, разработчики могут использовать математические инструменты, такие как MATLAB, MathCad или Mathematica.
  • Клиентские компиляторы и компоновщики могут быть использованы для улучшения оптимизации под конкретное оборудование.
  • Встраиваемая система может иметь свой собственный специальный язык или инструмент проектирования, или добавлять усовершенствования к существующему языку, как тот, который используется в Basic Stamp.

Инструменты отладки:

  • Внутрисхемный отладчик (ICD), аппаратное устройство, которое подключается к микропроцессору через JTAG-интерфейс. Он запускает и останавливает микропроцессор снаружи во время работы программного обеспечения. Он также позволяет считывать память и регистры, а также хранить программу в памяти.
  • Внешняя отладка с помощью протоколирования или вывода через последовательный порт для отслеживания работы с помощью либо мигающего монитора (printfs).
  • Интерактивная резидентная отладка - если ОС ее поддерживает, то это оболочка на встроенном процессоре, которая выполняет команды, набранные разработчиком (например, Linux).
  • Внутрисхемный эмулятор заменяет микропроцессор на плате, обеспечивая полный контроль над всем, что может сделать микропроцессор.
  • Полный эмулятор моделирует все возможности оборудования, позволяя контролировать и модифицировать его. Аппаратного обеспечения на самом деле не существует, но его притворная версия ("виртуальная" машина) находится на обычном ПК.
  • Проверка внешних линий с помощью логического анализатора или мультиметра.

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

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

Безопасность и надежность

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

Места, где важны безопасность и надежность:

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

Способы восстановления после ошибок - как программные ошибки, такие как утечка памяти, так и программные ошибки в аппаратном обеспечении:

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

Связанные страницы

Вопросы и ответы

В: Что такое встроенная система?


О: Встроенная система - это компьютер, созданный для решения конкретных задач, который нелегко изменить.

В: Чем встраиваемая система отличается от компьютера общего назначения?


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

В: Каковы некоторые примеры встроенных систем?


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

В: Что такое вычисления в реальном времени?


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

В: Из каких компонентов состоит встраиваемая система?


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

В: Какими задачами может управлять встроенная система?


О: Встроенная система может управлять небольшими устройствами, такими как MP3-плееры или цифровые камеры, или более крупными системами, такими как светофоры или самолеты.

В: Что означает термин "встроенный" по отношению к встроенным системам?


О: Термин "встроенный" означает, что компьютер встроен в более крупную систему и его нелегко изменить.

AlegsaOnline.com - 2020 / 2023 - License CC3