Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

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

Лекция



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

Встра́иваемая систе́ма (встро́енная систе́ма, англ. embedded system) — специализированная микропроцессорная система управления, контроля и мониторинга, концепция разработки которой заключается в том, что такая система будет работать, будучи встроенной непосредственно в устройство, которым она управляет.

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

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

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

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

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

История

Хронология микропроцессоров

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

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

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

Разработка

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

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

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

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

Особенности

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

PC-система: материнская плата ALIX.1C Mini-ITX с процессором AMD Geode LX 800, включая CF-, Mini PCI- и PCI-слоты, 44-контактный IDE-интерфейс, аудио, USB и 256 МБ RAM

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

  • минимальное собственное энергопотребление (возможно, автономное питание);
  • минимальные собственные габариты и вес;
  • собственная защита (корпус) минимальна и обеспечивается прочностью и жесткостью конструкции и примененными элементами;
  • функции отвода тепла (охлаждения) обеспечивают минимум требований тепловых режимов. Если плотность теплового потока (тепловой поток, проходящий через единицу поверхности) не превышает 0,5 мВт/см², перегрев поверхности устройства относительно окружающей среды не превысит 0,5 °C, такая аппаратура считается нетеплонагруженной и не требует специальных схем охлаждения.
  • микропроцессор и системная логика, а также ключевые микросхемы по возможности совмещены на одном кристалле;
  • специальные военно-космические требования по радиационной и электромагнитной стойкости, работоспособность в вакууме, гарантированное время наработки, срок доступности решения на рынке и т. д.

Основой построения простых встроенных систем часто служат одноплатные (однокристальные) ЭВМ (см.: микроконтроллер), специализированные или универсальные микропроцессоры, ПЛИС.

Широко распространено непосредственное использование или обеспечение значительной степени совместимости с морально устаревшими за долгое время выпуска (десятки лет) устройствами и интерфейсами (например, процессорами семейств Intel 8086, i386, i486, Pentium и их аналогами; шиной ISA и т. п.) из-за низкой стоимости разработки конкретного решения.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Последовательные интерфейсы связи (SCI): RS-232 , RS-422 , RS-485 и т. д.
  • Синхронный последовательный интерфейс : I2C , SPI , SSC и ESSI (улучшенный синхронный последовательный интерфейс)
  • Универсальная последовательная шина (USB)
  • Карты памяти ( SD-карты , CompactFlash и т. Об этом говорит сайт https://intellect.icu . д.)
  • Контроллер сетевого интерфейса : Ethernet , WiFi и т. д.
  • Полевые шины : CAN-шина , LIN-шина , PROFIBUS и т. д.
  • Таймеры: Фазовая автоподстройка частоты , программируемые интервальные таймеры
  • Универсальный ввод/вывод (GPIO)
  • Аналого-цифровые и цифро-аналоговые преобразователи
  • Отладка: JTAG , внутрисистемное программирование , порт интерфейса фонового режима отладки , порты BITP и DB9.

Инструменты

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

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

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

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

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

Область применения

Областью применения встроенных систем являются:

  • средства автоматического регулирования и управления технологическими процессами, например авионика, контроль доступа;
  • станки с ЧПУ;
  • банкоматы, платежные терминалы;
  • телекоммуникационное оборудование.

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

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

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

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

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

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

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

Безопасность встроенных систем

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

Процессоры для встраиваемых систем

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

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

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

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

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

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

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

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

Решения ASIC и FPGA SoC

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

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

Отладка

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

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

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

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

Трассировка

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

Надежность

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

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

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

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

  • сторожевой таймер , который сбрасывает и перезапускает систему, если программное обеспечение периодически не уведомляет подсистемы сторожевого таймера
  • Проектирование с использованием архитектуры надежной вычислительной базы (TCB) обеспечивает высокозащищенную и надежную системную среду
  • Гипервизор , разработанный для встроенных систем, способен обеспечить безопасную инкапсуляцию для любого компонента подсистемы, так что скомпрометированный программный компонент не сможет помешать работе других подсистем или системного программного обеспечения привилегированного уровня. Эта инкапсуляция не позволяет ошибкам распространяться из одной подсистемы в другую, тем самым повышая надежность. Это также может позволить подсистеме автоматически отключаться и перезапускаться при обнаружении ошибки.
  • Программирование с учетом иммунитета может помочь инженерам создавать более надежный код для встраиваемых систем. Руководства и правила кодирования, такие как MISRA C/C++, направлены на то, чтобы помочь разработчикам создавать надежные, переносимые прошивки различными способами: обычно путем рекомендаций или предписаний против методов кодирования, которые могут привести к ошибкам во время выполнения (утечки памяти, недопустимое использование указателей), использования проверок во время выполнения и обработки исключений (проверки диапазона/работоспособности, деление на ноль и проверки допустимости индекса буфера, случаи по умолчанию в логических проверках), ограничения циклов, создания читаемого человеком, хорошо прокомментированного и хорошо структурированного кода и избегания языковых неоднозначностей, которые могут привести к несоответствиям или побочным эффектам, вызванным компилятором (порядок оценки выражений, рекурсия, определенные типы макросов). Эти правила часто можно использовать в сочетании со статическими проверщиками кода или проверкой ограниченной модели для целей функциональной проверки, а также для помощи в определении свойств синхронизации кода .

Высокий или низкий объем

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

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

Архитектуры встроенного программного обеспечения

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Уровень сложности встраиваемых систем постоянно растет, поскольку устройствам требуется управлять периферийными устройствами и задачами, такими как последовательный интерфейс, USB, TCP/IP, Bluetooth , беспроводная локальная сеть , магистральное радио, несколько каналов, данные и голос, улучшенная графика, несколько состояний, несколько потоков, многочисленные состояния ожидания и т. д. Эти тенденции ведут к внедрению встроенного промежуточного программного обеспечения в дополнение к RTOS.

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

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

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

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

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

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

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

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

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

Архитектуры, специфичные для домена

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

Вау!! 😲 Ты еще не читал? Это зря!

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

создано: 2024-10-26
обновлено: 2024-11-08
10



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Промышленное программирование. программирование контроллеров

Термины: Промышленное программирование. программирование контроллеров