Эту лекцию мы начнем с объяснения того, что такое система. Мы рассмотрим, как классифицируются системы и как они развивались на протяжении многих лет автоматизации. Затем обсудим, как электроника стала их частью и, как следствие, возникновение встраиваемых систем. После чего мы представим компоненты встраиваемой системы и объясним, как каждый из них вносит свой вклад в систему. Далее будут обсуждены типичные уровни встраиваемого программного обеспечения (ПО). В завершение лекции мы рассмотрим, что такое операционная система реального времени (RTOS) и как она может быть полезна в системе.
К концу этой лекции вы будете способны:
Система - это набор компонентов, собранных вместе для выполнения последовательности простых или сложных операций. Несколько систем могут также работать вместе, создавая более сложные системы.
За последние сто лет в ходе промышленного и технологического прогресса были разработаны различные типы систем. В целом их можно разделить на пять категорий.
Встраиваемые системы (ВС) по праву должны называться встраиваемыми электронными системами, поскольку они в основном построены из электронных компонентов и используются для управления механическими или электромеханическими системами. Встраиваемые электронные системы чаще называют "встраиваемыми системами". В зависимости от сферы применения их можно разделить на следующие категории:
ВС также можно классифицировать на основе характера контроля, который они налагают на систему. Мы называем это системой управления (дополнительную информацию по этой теме можно посмотреть здесь). Системы управления обычно делятся на две отдельные группы.
Это системы, которые не учитывают вывод системы при определении последующих её операций. Такие системы обычно являются ручными или полуавтоматическими, где требуется определенное взаимодействие человека с системой.
Система способна получать обратную связь с выводом и компенсировать любые ошибки, обнаруженные в выводе. Эти типы систем обычно являются автоматическими и требуют очень мало или вообще не требуют вмешательства человека в течение своего рабочего цикла.
Ниже приведены некоторые примеры из множества областей, где широко используются встраиваемые системы:
Электронная встраиваемая система - это комбинация аппаратных и программных компонентов. Как упоминалось выше, эти системы стали называть просто встраиваемыми, отказавшись от части названия "электронная". Удаление части названия произошло от общего понимания того, что встраиваемые системы содержат значительное количество электроники. Во встраиваемых системах аппаратное и программное обеспечение работают вместе для реализации требуемой функциональности системы. В зависимости от вида применения количество аппаратного и программного обеспечения в системе может варьироваться.
Аппаратные средства обычно представляют собой группу датчиков, соединенных вместе для сбора информации об окружающей среде и обмена ею с программными компонентами системы, которые обрабатывают эту информацию и предпринимают необходимые действия на её основе. Аппаратные компоненты могут также включать устройства ввода и вывода, чтобы получать ввод от пользователя, а также обмениваться с ним информацией. Ниже приведены некоторые специфические аппаратные компоненты встраиваемых систем.
Печатная плата - это плата, которая удерживает электронные компоненты системы вместе; она также отвечает за обеспечение функциональности, такой как связь между электронными компонентами, механическая стабильность оборудования, стабильность сигнала и целостность сигнала.
Эти компоненты реализуют требуемую функциональность системы. Они работают согласованно для достижения требуемого потока управления и других функций системы.
Она служит в качестве устройства вывода для отображения информации пользователю. Система отображения может варьироваться от набора небольших светодиодов до большого жидкокристаллического дисплея, который может отображать огромное количество информации.
Устройства ввода, доступные во встраиваемых системах, обычно представляют собой небольшие клавиатуры или сенсорные экраны, которые позволяют пользователю подавать сигналы системе для получения ответа и управления поведением системы.
В дополнение к вышеперечисленным компонентам встраиваемые системы содержат центральный контроллер (микроконтроллер или микропроцессор), который функционирует как "мозг" системы и отвечает за её общее управление, реагирование на возникающие ошибки и настройку реакции системы в соответствии с пользовательскими настройками и пользовательским вводом.
Как и аппаратные компоненты, программные компоненты также должны работать сообща, чтобы обеспечить требуемую функциональность, ожидаемую пользователем. Программные компоненты работают на центральном контроллере. Программное обеспечение служит прослойкой между пользователем и машиной, которой он управляет. Ниже перечислены программные компоненты, обычно встречающиеся во встраиваемых системах.
В этом разделе мы поговорим об операционной системе, требованиях к ней и о том, какой тип следует использовать для конкретных приложений.
Основываясь на требованиях пользователя к выполнению задач, системы можно разделить на системы реального времени (real-time operating system) и общего назначения (non-real-time operating system).
Системы, которые не обязаны отвечать на запрос пользователя в течение установленного времени, классифицируются как системы общего назначения.
Примерами таких систем являются персональные компьютеры. Получив запрос от пользователя (например, копирование файла из одного места в другое), система не обязана выполнить задание за определенный промежуток времени, поскольку это не критичная по времени задача.
Для таких систем достаточно операционной системы из семейств Windows или Linux. Кроме того, эти операционные системы требуют значительного объема памяти, который обычно недоступен для встраиваемых систем.
Система реального времени - ограниченная по времени система, имеющая чётко определенные, фиксированные временные ограничения. Обработка должна быть выполнена в течение определенного времени, иначе система выйдет из строя. Такие системы являются либо событийно-ориентированными (event-driven), либо с разделением времени (time-sharing). Первые переключают задачи на основе их приоритетов (это также называется вытесняющим планированием), вторые же переключают задачи на основе тактовых прерываний (clock interrupts). Большинство RTOS используют алгоритм вытесняющего планирования (preemptive scheduling).
Если система реального времени не отвечает на запрос пользователя в течение ожидаемого времени, это несоответствие может привести к опасным последствиям.
Примером системы реального времени является оборудование, используемое в медицинских целях, например, система доставки лекарств. В этом случае система должна постоянно отслеживать свое состояние и реагировать на него в течение определенного времени, чтобы предотвратить любые негативные последствия для пациента.
В подобных системах операционная система должна определять приоритеты возникающих задач и предоставлять доступ к определенным компонентам программного управления для управления аппаратным обеспечением. Системы реального времени имеют ограниченный объем памяти, поскольку они малы и должны быть очень экономичными. Поэтому операционные системы, созданные для таких приложений, обычно имеют только функции, необходимые для конкретного типа оборудования, на которое они ориентированы, а также очень маленький объем памяти.
Операционная система реального времени (RTOS) - это операционная система (ОС), предназначенная для обслуживания приложений, которые обрабатывают данные в реальном времени, то есть по мере их поступления, обычно без задержек. Требования к времени обработки (включая любые задержки ОС) измеряются десятыми долями секунд или еще более короткими промежутками времени.
Ключевой характеристикой RTOS является постоянство количества времени, которое требуется для принятия и завершения задачи приложения. Изменчивость времени завершения задачи (также известная как джиттер) в RTOS детерминирована.
Система жёсткого реального времени имеет меньший джиттер (jitter), чем система мягкого реального времени. Если в "мягкой" RTOS задержка ответа допустима, то в "жёсткой" - нет. RTOS, которая обычно или в целом может уложиться в срок, является мягкой RTOS, но если она может уложиться в срок детерминированно, то это жёсткая RTOS. Основной целью проектирования RTOS является не высокая пропускная способность, а скорее гарантированная задержка той или иной категории производительности. Другими словами, ожидается, что RTOS будут иметь минимальную задержку прерывания и минимальную задержку переключения потоков; RTOS ценится больше за то, насколько быстро или предсказуемо она может реагировать, чем за объем работы, который она может выполнить за определенный период времени.
RTOS включает в себя усовершенствованный алгоритм планирования задач в системе. Гибкость планировщика позволяет более широко организовать работу компьютерной системы с различными приоритетами приложений в системе, но ОС реального времени чаще всего предназначена для определенного набора приложений.
Наиболее распространенными конструкциями RTOS являются:
Задачи переключаются только тогда, когда требуется обслуживание события с более высоким приоритетом; этот тип алгоритма переключения называется вытесняющим или приоритетным планированием.
Задачи переключаются как по регулярному тактовому прерыванию, так и по событиям; примером алгоритма переключения с разделением времени является round-robin.
Проекты с разделением времени переключают задачи чаще, чем это строго необходимо, но обеспечивают более плавную многозадачность, создавая иллюзию, что процесс или задача используется машиной единолично.
В RTOS задача может находиться в одном из трех различных состояний.
Для задач могут быть определены и другие состояния, но три вышеперечисленных являются стандартными и обычно достаточными для большинства RTOS.
Существуют также различные типы задач, которые могут быть определены и использованы:
Это задачи, которые необходимо выполнять через регулярные промежутки времени. Как только такая задача завершена, она возвращается в состояние "заблокирована" до следующего временного интервала, в который её необходимо выполнить.
Это задачи, выполняемые по мере необходимости, например, обслуживание прерываний. После завершения задачи такого типа она возвращается в состояние "заблокирована", пока другое событие не вызовет эту задачу.
Это задачи, которые выполняются безостановочно. Обычно это задачи с очень низким приоритетом, которые позволяют выполнять другие задачи.
В планировщике RTOS могут использоваться различные алгоритмы планирования. Ниже перечислены некоторые из наиболее часто используемых алгоритмов:
Распределение ресурсов и межзадачное взаимодействие поддерживаются в RTOS с помощью одной или нескольких из следующих техник:
Эти техники будут описаны в последующих лекциях данного курса.
Распределение памяти имеет решающее значение в RTOS, поскольку утечка памяти может привести к резкому снижению производительности, что неприемлемо для системы реального времени. Распределение памяти может быть динамическим или статическим.
Динамическое распределение памяти должно хорошо обрабатываться RTOS, чтобы избежать неправильного использования ресурсов памяти. Преимуществом динамического распределения, однако, является большая гибкость для разработчика приложений. Поскольку ОС управляет распределением памяти, она может выделять и освобождать память по мере необходимости и использования.
Статическое распределение памяти, с другой стороны, дает разработчику приложения больше контроля над распределением и деаллокацией памяти в системе.
В прошлом RTOS создавались производителями специально под требования их аппаратных средств. Поскольку большинство аппаратных средств было адаптировано к пользовательским приложениям, разработчики этих аппаратных средств отличали свои устройства от устройств конкурентов, предоставляя высококачественные программные интерфейсы и высокопроизводительное ПО. В результате RTOS играла решающую роль в отличии одного продукта от другого.
Поскольку RTOS была одним из основных отличий между продуктами, предлагаемыми различными компаниями, исторически это было программное обеспечение с закрытым исходным кодом, которое поставлялось по цене лицензии.
Однако в последнее время аппаратное обеспечение стало более распространенным, и теперь разница между продуктами в основном заключается в пользовательском прикладном программном обеспечении, которое разрабатывает каждая компания-производитель.
По этой причине в настоящее время существуют различные RTOS с открытым исходным кодом, которые разработчики могут использовать со своим оборудованием для создания систем реального времени.
Примеры RTOS с закрытым и открытым исходным кодом перечислены ниже (расположены в алфавитном порядке, а не в порядке предпочтения):
Deos (DDC-I)embOS (SEGGER)FreeRTOS (Amazon)Integrity (Green Hills Software)Keil RTX (ARM)LynxOS (Lynx Software Technologies)MQX (Philips NXP / Freescale)Nucleus (Mentor Graphics)Neutrino (BlackBerry)PikeOS (Sysgo)SafeRTOS (Wittenstein)ThreadX (Microsoft Express Logic)µC/OS (Micrium)VxWorks (Wind River)Zephyr (Linux Foundation)Мы изучим FreeRTOS и то, как её можно перенести на процессор RISC-V позже в этом курсе.
Эту лекцию мы начнем с объяснения того, что такое система. Мы рассмотрим, как классифицируются системы и как они развивались на протяжении многих лет автоматизации. Затем обсудим, как электроника стала их частью и, как следствие, возникновение встраиваемых систем. После чего мы представим компоненты встраиваемой системы и объясним, как каждый из них вносит свой вклад в систему. Далее будут обсуждены типичные уровни встраиваемого программного обеспечения (ПО). В завершение лекции мы рассмотрим, что такое операционная система реального времени (RTOS) и как она может быть полезна в системе.
К концу этой лекции вы будете способны:
Система - это набор компонентов, собранных вместе для выполнения последовательности простых или сложных операций. Несколько систем могут также работать вместе, создавая более сложные системы.
За последние сто лет в ходе промышленного и технологического прогресса были разработаны различные типы систем. В целом их можно разделить на пять категорий.
Встраиваемые системы (ВС) по праву должны называться встраиваемыми электронными системами, поскольку они в основном построены из электронных компонентов и используются для управления механическими или электромеханическими системами. Встраиваемые электронные системы чаще называют "встраиваемыми системами". В зависимости от сферы применения их можно разделить на следующие категории:
ВС также можно классифицировать на основе характера контроля, который они налагают на систему. Мы называем это системой управления (дополнительную информацию по этой теме можно посмотреть здесь). Системы управления обычно делятся на две отдельные группы.
Это системы, которые не учитывают вывод системы при определении последующих её операций. Такие системы обычно являются ручными или полуавтоматическими, где требуется определенное взаимодействие человека с системой.
Система способна получать обратную связь с выводом и компенсировать любые ошибки, обнаруженные в выводе. Эти типы систем обычно являются автоматическими и требуют очень мало или вообще не требуют вмешательства человека в течение своего рабочего цикла.
Ниже приведены некоторые примеры из множества областей, где широко используются встраиваемые системы:
Электронная встраиваемая система - это комбинация аппаратных и программных компонентов. Как упоминалось выше, эти системы стали называть просто встраиваемыми, отказавшись от части названия "электронная". Удаление части названия произошло от общего понимания того, что встраиваемые системы содержат значительное количество электроники. Во встраиваемых системах аппаратное и программное обеспечение работают вместе для реализации требуемой функциональности системы. В зависимости от вида применения количество аппаратного и программного обеспечения в системе может варьироваться.
Аппаратные средства обычно представляют собой группу датчиков, соединенных вместе для сбора информации об окружающей среде и обмена ею с программными компонентами системы, которые обрабатывают эту информацию и предпринимают необходимые действия на её основе. Аппаратные компоненты могут также включать устройства ввода и вывода, чтобы получать ввод от пользователя, а также обмениваться с ним информацией. Ниже приведены некоторые специфические аппаратные компоненты встраиваемых систем.
Печатная плата - это плата, которая удерживает электронные компоненты системы вместе; она также отвечает за обеспечение функциональности, такой как связь между электронными компонентами, механическая стабильность оборудования, стабильность сигнала и целостность сигнала.
Эти компоненты реализуют требуемую функциональность системы. Они работают согласованно для достижения требуемого потока управления и других функций системы.
Она служит в качестве устройства вывода для отображения информации пользователю. Система отображения может варьироваться от набора небольших светодиодов до большого жидкокристаллического дисплея, который может отображать огромное количество информации.
Устройства ввода, доступные во встраиваемых системах, обычно представляют собой небольшие клавиатуры или сенсорные экраны, которые позволяют пользователю подавать сигналы системе для получения ответа и управления поведением системы.
В дополнение к вышеперечисленным компонентам встраиваемые системы содержат центральный контроллер (микроконтроллер или микропроцессор), который функционирует как "мозг" системы и отвечает за её общее управление, реагирование на возникающие ошибки и настройку реакции системы в соответствии с пользовательскими настройками и пользовательским вводом.
Как и аппаратные компоненты, программные компоненты также должны работать сообща, чтобы обеспечить требуемую функциональность, ожидаемую пользователем. Программные компоненты работают на центральном контроллере. Программное обеспечение служит прослойкой между пользователем и машиной, которой он управляет. Ниже перечислены программные компоненты, обычно встречающиеся во встраиваемых системах.
В этом разделе мы поговорим об операционной системе, требованиях к ней и о том, какой тип следует использовать для конкретных приложений.
Основываясь на требованиях пользователя к выполнению задач, системы можно разделить на системы реального времени (real-time operating system) и общего назначения (non-real-time operating system).
Системы, которые не обязаны отвечать на запрос пользователя в течение установленного времени, классифицируются как системы общего назначения.
Примерами таких систем являются персональные компьютеры. Получив запрос от пользователя (например, копирование файла из одного места в другое), система не обязана выполнить задание за определенный промежуток времени, поскольку это не критичная по времени задача.
Для таких систем достаточно операционной системы из семейств Windows или Linux. Кроме того, эти операционные системы требуют значительного объема памяти, который обычно недоступен для встраиваемых систем.
Система реального времени - ограниченная по времени система, имеющая чётко определенные, фиксированные временные ограничения. Обработка должна быть выполнена в течение определенного времени, иначе система выйдет из строя. Такие системы являются либо событийно-ориентированными (event-driven), либо с разделением времени (time-sharing). Первые переключают задачи на основе их приоритетов (это также называется вытесняющим планированием), вторые же переключают задачи на основе тактовых прерываний (clock interrupts). Большинство RTOS используют алгоритм вытесняющего планирования (preemptive scheduling).
Если система реального времени не отвечает на запрос пользователя в течение ожидаемого времени, это несоответствие может привести к опасным последствиям.
Примером системы реального времени является оборудование, используемое в медицинских целях, например, система доставки лекарств. В этом случае система должна постоянно отслеживать свое состояние и реагировать на него в течение определенного времени, чтобы предотвратить любые негативные последствия для пациента.
В подобных системах операционная система должна определять приоритеты возникающих задач и предоставлять доступ к определенным компонентам программного управления для управления аппаратным обеспечением. Системы реального времени имеют ограниченный объем памяти, поскольку они малы и должны быть очень экономичными. Поэтому операционные системы, созданные для таких приложений, обычно имеют только функции, необходимые для конкретного типа оборудования, на которое они ориентированы, а также очень маленький объем памяти.
Операционная система реального времени (RTOS) - это операционная система (ОС), предназначенная для обслуживания приложений, которые обрабатывают данные в реальном времени, то есть по мере их поступления, обычно без задержек. Требования к времени обработки (включая любые задержки ОС) измеряются десятыми долями секунд или еще более короткими промежутками времени.
Ключевой характеристикой RTOS является постоянство количества времени, которое требуется для принятия и завершения задачи приложения. Изменчивость времени завершения задачи (также известная как джиттер) в RTOS детерминирована.
Система жёсткого реального времени имеет меньший джиттер (jitter), чем система мягкого реального времени. Если в "мягкой" RTOS задержка ответа допустима, то в "жёсткой" - нет. RTOS, которая обычно или в целом может уложиться в срок, является мягкой RTOS, но если она может уложиться в срок детерминированно, то это жёсткая RTOS. Основной целью проектирования RTOS является не высокая пропускная способность, а скорее гарантированная задержка той или иной категории производительности. Другими словами, ожидается, что RTOS будут иметь минимальную задержку прерывания и минимальную задержку переключения потоков; RTOS ценится больше за то, насколько быстро или предсказуемо она может реагировать, чем за объем работы, который она может выполнить за определенный период времени.
RTOS включает в себя усовершенствованный алгоритм планирования задач в системе. Гибкость планировщика позволяет более широко организовать работу компьютерной системы с различными приоритетами приложений в системе, но ОС реального времени чаще всего предназначена для определенного набора приложений.
Наиболее распространенными конструкциями RTOS являются:
Задачи переключаются только тогда, когда требуется обслуживание события с более высоким приоритетом; этот тип алгоритма переключения называется вытесняющим или приоритетным планированием.
Задачи переключаются как по регулярному тактовому прерыванию, так и по событиям; примером алгоритма переключения с разделением времени является round-robin.
Проекты с разделением времени переключают задачи чаще, чем это строго необходимо, но обеспечивают более плавную многозадачность, создавая иллюзию, что процесс или задача используется машиной единолично.
В RTOS задача может находиться в одном из трех различных состояний.
Для задач могут быть определены и другие состояния, но три вышеперечисленных являются стандартными и обычно достаточными для большинства RTOS.
Существуют также различные типы задач, которые могут быть определены и использованы:
Это задачи, которые необходимо выполнять через регулярные промежутки времени. Как только такая задача завершена, она возвращается в состояние "заблокирована" до следующего временного интервала, в который её необходимо выполнить.
Это задачи, выполняемые по мере необходимости, например, обслуживание прерываний. После завершения задачи такого типа она возвращается в состояние "заблокирована", пока другое событие не вызовет эту задачу.
Это задачи, которые выполняются безостановочно. Обычно это задачи с очень низким приоритетом, которые позволяют выполнять другие задачи.
В планировщике RTOS могут использоваться различные алгоритмы планирования. Ниже перечислены некоторые из наиболее часто используемых алгоритмов:
Распределение ресурсов и межзадачное взаимодействие поддерживаются в RTOS с помощью одной или нескольких из следующих техник:
Эти техники будут описаны в последующих лекциях данного курса.
Распределение памяти имеет решающее значение в RTOS, поскольку утечка памяти может привести к резкому снижению производительности, что неприемлемо для системы реального времени. Распределение памяти может быть динамическим или статическим.
Динамическое распределение памяти должно хорошо обрабатываться RTOS, чтобы избежать неправильного использования ресурсов памяти. Преимуществом динамического распределения, однако, является большая гибкость для разработчика приложений. Поскольку ОС управляет распределением памяти, она может выделять и освобождать память по мере необходимости и использования.
Статическое распределение памяти, с другой стороны, дает разработчику приложения больше контроля над распределением и деаллокацией памяти в системе.
В прошлом RTOS создавались производителями специально под требования их аппаратных средств. Поскольку большинство аппаратных средств было адаптировано к пользовательским приложениям, разработчики этих аппаратных средств отличали свои устройства от устройств конкурентов, предоставляя высококачественные программные интерфейсы и высокопроизводительное ПО. В результате RTOS играла решающую роль в отличии одного продукта от другого.
Поскольку RTOS была одним из основных отличий между продуктами, предлагаемыми различными компаниями, исторически это было программное обеспечение с закрытым исходным кодом, которое поставлялось по цене лицензии.
Однако в последнее время аппаратное обеспечение стало более распространенным, и теперь разница между продуктами в основном заключается в пользовательском прикладном программном обеспечении, которое разрабатывает каждая компания-производитель.
По этой причине в настоящее время существуют различные RTOS с открытым исходным кодом, которые разработчики могут использовать со своим оборудованием для создания систем реального времени.
Примеры RTOS с закрытым и открытым исходным кодом перечислены ниже (расположены в алфавитном порядке, а не в порядке предпочтения):
Deos (DDC-I)embOS (SEGGER)FreeRTOS (Amazon)Integrity (Green Hills Software)Keil RTX (ARM)LynxOS (Lynx Software Technologies)MQX (Philips NXP / Freescale)Nucleus (Mentor Graphics)Neutrino (BlackBerry)PikeOS (Sysgo)SafeRTOS (Wittenstein)ThreadX (Microsoft Express Logic)µC/OS (Micrium)VxWorks (Wind River)Zephyr (Linux Foundation)Мы изучим FreeRTOS и то, как её можно перенести на процессор RISC-V позже в этом курсе.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.