Siemens предлагает и то, и другое автомобильное встроенное программное обеспечение а также разработка встроенного программного обеспечения решения. Компания Siemens прекратила выпуск автономного встроенного программного обеспечения для SoC, прекратив выпуск в ноябре 2023 года продуктов Nucleus, Nucleus Hypervisor, Nucleus ReadyStart, Sokol Flex Linux, Sokol Omni Linux и Sourcery CodeBench (включая сопутствующие дополнения). Существующие контракты на поддержку этих продуктов все еще выполняются, пожалуйста, свяжитесь с Siemens Центр поддержки для получения дополнительной информации.
Какие существуют типы встроенного программного обеспечения и их назначение?
- Операционная система — операционная система (ОС) в самом общем смысле — это программное обеспечение, которое позволяет пользователю запускать другие приложения на вычислительном устройстве. Операционная система управляет аппаратными ресурсами процессора, включая устройства ввода, такие как клавиатура и мышь, устройства вывода, такие как дисплеи или принтеры, сетевые подключения и устройства хранения, такие как жесткие диски и память. ОС также предоставляет услуги, облегчающие эффективное выполнение прикладных программ, управление ими и выделение памяти для них.
- Прошивка — это тип программного обеспечения, который написан непосредственно для аппаратного обеспечения. Он работает без использования API, операционной системы или драйверов устройств, предоставляя необходимые инструкции и рекомендации для связи с другими устройствами или выполнения основных задач и функций по назначению.
- Промежуточное ПО — это программный слой, расположенный между приложениями и операционными системами. Промежуточное ПО часто используется в распределенных системах, где оно упрощает разработку программного обеспечения, обеспечивая следующее:
- Скрытие тонкостей распределенных приложений
- Маскировка неоднородности аппаратного обеспечения, операционных систем и протоколов
- Предоставление унифицированных высокоуровневых интерфейсов, используемых для создания совместимых, повторно используемых и портативных приложений.
- Предоставление набора общих услуг, позволяющих свести к минимуму дублирование усилий и улучшить взаимодействие между приложениями
- Приложение — конечный пользователь разрабатывает окончательное программное приложение, которое работает в операционной системе, использует промежуточное программное обеспечение и микропрограммное обеспечение или взаимодействует с ними и является основным объектом целевой функции встроенных систем. Каждое конечное приложение уникально, а операционные системы и микропрограммное обеспечение могут быть идентичными для разных устройств.
Встроенное программное обеспечение и встроенные системы
Аппаратные компоненты устройства, на котором установлено встроенное программное обеспечение, называются «встроенной системой». Некоторыми примерами аппаратных компонентов, используемых во встроенных системах, являются схемы питания, центральные процессоры, устройства флэш-памяти, таймеры и последовательные порты связи. На ранних этапах проектирования устройства решается аппаратное обеспечение, из которого будет состоять встроенная система, и его конфигурация внутри устройства. Затем с нуля разрабатывается встроенное программное обеспечение, которое будет работать исключительно на этом оборудовании в такой точной конфигурации. Это делает разработку встроенного программного обеспечения специализированной областью, требующей глубоких знаний аппаратных возможностей и компьютерного программирования.
Примеры встроенных программных функций
Почти в каждом устройстве с печатными платами и компьютерными чипами эти компоненты встроены во встроенную программную систему. В результате встроенные программные системы повсеместно используются в повседневной жизни и используются в потребительских, промышленных, автомобильных, аэрокосмических, медицинских, коммерческих, телекоммуникационных и военных технологиях.
Типичные примеры функций на основе встроенного программного обеспечения включают:
- Системы обработки изображений, используемые в медицинском оборудовании для обработки изображений
- Системы управления Fly-by-Wire, используемые в летательных аппаратах
- Системы обнаружения движения в камерах безопасности
- Системы управления дорожным движением, обнаруженные на светофорах
- Системы синхронизации и автоматизации, используемые в устройствах умного дома
Какие существуют типы встроенных систем?
Исходя из требований к производительности и функциональности, существует пять основных классов встраиваемых систем:
- Встроенные системы реального времени выполняют задачи детерминированным и повторяемым образом, на что влияют базовая архитектура и планирование операционных систем, а также производительность потоков, ветвление и задержка прерываний. Встроенные системы общего назначения не соответствуют требованиям реального времени и могут управлять прерываниями или ветвлениями без зависимости от времени завершения. Графические дисплеи и управление клавиатурой и мышью являются хорошими примерами общих систем.
- Автономные встроенные системы могут выполнять задачи без хост-системы или внешних ресурсов обработки. Они могут выводить или получать данные с подключенных устройств, но не полагаются на них в выполнении своей задачи.
- Автономные встроенные системы могут выполнять свою задачу без хост-системы или внешних ресурсов обработки. Они могут выводить или получать данные с подключенных устройств, но не полагаются на них в выполнении своей задачи.
- Для выполнения поставленных задач встроенные сетевые системы зависят от подключенной сети.
- В зависимости от сложности аппаратной архитектуры системы существует три основных типа встроенных систем: встроенные в сеть системы зависят от подключенной сети для выполнения поставленных задач.
Как конечные рынки влияют на встроенные системы
Требования к встроенным системам и компонентам будут отличаться в зависимости от требований целевого рынка. Вот несколько примеров:
- Потребитель. В таких приложениях, как потребительские товары, такие как стиральные машины, носимые устройства и мобильные телефоны, встроенные системы подчеркивают уменьшенный размер
- Система на кристалле, низкое энергопотребление или работа от аккумулятора и графические интерфейсы. В этих приложениях ценятся настраиваемые операционные системы и возможность отключать неработающие «домены» проекта.
- Сетевые технологии — приложения, обеспечивающие подключение, связь, эксплуатацию и управление корпоративной сетью. Он обеспечивает канал связи и услуги между пользователями, процессами, приложениями, службами и внешними сетями/Интернетом. Встроенные сетевые приложения сосредоточены на скорости ответа, обработке пакетов и периферийных аппаратных путях.
- Промышленность. В таких приложениях, как управление производственными цехами, двигатели и ветряные мельницы, основное внимание уделяется защите облачных подключений и детерминированной работе в режиме реального времени, а также промежуточному программному обеспечению.
- Медицинская, автомобильная и аэрокосмическая отрасли — этим отраслям необходимы критически важные системы смешанной безопасности, в которых части конструкции изолированы друг от друга, чтобы обеспечить ввод в систему или выход из нее только необходимых данных (безопасность) и при этом не причинить вреда конечному пользователю (безопасность). В качестве примеров можно привести системы автономного вождения в автомобилях и медицинских устройствах. Эти встроенные системы могут сочетать в себе операционные системы с открытым исходным кодом (Linux) и детерминированные операционные системы реального времени (RTOS) и активно использовать проверенное промежуточное программное обеспечение.
Почему автомобильное встроенное программное обеспечение отличается?
В автомобильной электронике сложные взаимодействия в реальном времени происходят между множеством встроенных систем, каждая из которых управляет такими функциями, как торможение, рулевое управление, подвеска, трансмиссия и т. д. Физический корпус, в котором находится каждая встроенная система, называется электронным блоком управления (ECU). Каждый блок управления и встроенное программное обеспечение являются частью сложной электрической архитектуры, известной как распределенная система.
Взаимодействуя друг с другом, блоки управления, составляющие распределенную систему автомобиля, могут выполнять множество функций, таких как автоматическое экстренное торможение, адаптивный круиз-контроль, контроль устойчивости, адаптивные фары и многое другое. Для выполнения одной функции может потребоваться взаимодействие между 20 или более встроенными программными приложениями, расположенными в многочисленных блоках управления, соединенных несколькими сетевыми протоколами. Сложные алгоритмы управления, используемые во встроенном программном обеспечении, обеспечивают правильную синхронизацию функций, необходимые входы и выходы и безопасность данных.
Типичные примеры функций на основе автомобильных программных приложений включают:
- Функции ADAS (Advanced Driver Assist Systems), такие как адаптивный круиз-контроль, автоматическое экстренное торможение, система удержания полосы движения, система помощи при движении, предупреждения о выезде с полосы движения
- Управление батареями
- Компенсация момента
- Регулировка скорости впрыска топлива
Программный стек ECU
Электронный блок управления или ЭБУ состоит из основного вычислительного блока с аппаратным обеспечением на уровне микросхемы и набора встроенного программного обеспечения. Однако среди производителей автомобилей растет тенденция к разработке электронных блоков управления со сложными интегральными схемами, содержащими несколько вычислительных ядер на одном чипе — так называемая система на чипе (SoC). Эти SoC могут содержать множество абстракций ECU для консолидации оборудования. Программный стек для ECU обычно включает в себя ряд решений, от низкоуровневого микропрограммного обеспечения до высокоуровневых встроенных программных приложений.
Стек ЭБУ | Описание |
Встроенное программное приложение | Алгоритмы управления, обработка, сервисы |
Платформа приложений | Фреймворки безопасности и безопасности |
Операционная среда | AUTOSAR классический, адаптивный AUTOSAR, каналы ввода/вывода |
Встроенные виртуализации | ОС реального времени, абстракции ECU |
Прошивка | Загрузчики, безопасное хранилище, безопасная многопоточность |
аппаратное обеспечение | Устройства на основе кремния, микроконтроллеры, однослойные или многослойные платы |