Embedded


Никита Мошкалов
Директор по развитию @ ООО "Кравт"
Санкт-Петербург

- Пользовательские сценарии в разработке железа не менее важны, чем в разработке программного обеспечения

- Краткий обзор факторов и сценариев, определяющих конечный продукт

- Мировой опыт в разработке модульных конструкций

- Собственный опыт в разработке модульных конструкций

  • День выступления: 27.09.2024
  • Время начала: 12:15
  • Время окончания: 12:45
  • Зал : Разработка-1 [Green6]
  • Категории : Разработка
  • Секции : Embedded

  • Антон Бондарев
    Генеральный директор @ Embox
    Санкт-Петербург

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

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

    В докладе рассматриваются современные направления развития встроенных систем. Показываются противоречия и трудности возникающие при их создании. В первую очередь они связанны со все возрастающими функциональными требованиями предъявляемыми системам, которые порой включают такие сложные части как 3D графика и даже элементы искусственного интеллекта. А также рассматриваются пути решения данных противоречий вместе с ограничениями этих подходов. Что конечно отражается на ОС которые применяются в подобных системам.

    Условно ОС для встроенных систем можно отнести к трем большим классам:

    ОС на базе Линукс (И других универсальных но конфигурируемых ОС);

    ОС для микроконтроллеров (LibOS);

    ОС реального времени (ОС РВ).

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

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

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

    Еще одним существенным фактом для применения ОС Линукс в embedded является фактор открытости. Компании, которые производят встроенные системы, не хотят быть зависимыми от производителя ОС, а как минимум иметь возможность влиять на ход разработки и вносить свои изменения в код проекта. В частности, это оказалось очень востребованным на фоне санкций.

    Аналогично из-за стремления к независимости от производителя, все большее распространение получает открытая процессорная архитектура RISC-V. В России в последнее время фактически все производители процессоров отказываются от использования ядер ARM и переходят на архитектуру RISC-V.

    Возвращаясь к попыткам использования ОС Линукс в embedded и связанных с этим улучшений в ядре, нужно выделить следующие:

    KBuild билд систему позволяющую конфигурировать ядро в широких пределах;

    DevTree систему спецификации оборудования, которая очень хорошо подходит для разнообразного железа применяемого в embedded;

    Yocto Project (OpenEmbedded) & BuildRoot конфигурируемая сборка для корневой файловой системы;

    Linux-RT система патчей модифицирующих планировщик и позволяющих получить более стабильное управление потоками в системе;

    ucLinux (NOMMU режим) версия ядра позволяющая исполняться на системах без аппаратного MMU (микроконтроллерах).

    Стоит отметить, что существуют ряд попыток движения со стороны LibOS в сторону увеличение функциональности и удобства разработки, то есть в сторону ОС Линукс.

    NuttX - позволяет использовать POSIX ПО на микроконтроллерах. Сейчас слой POSIX добавляется в ряд LibOS в том числе наиболее популярную FreeRTOS.

    ZephyrOS использует DevTree в синтаксисе Linux.

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

    Использование данного предположения и позволило добиться в ОСРВ Embox сочетания преимуществ LibOS и ОС Linux. Embox - это открытая конфигурируемая ОС для встроенных систем. Основная идея Embox заключается в использовании прикладного ПО Линукс в более безопасном и детерминированном, менее энергопотребляемом и ресурсоемком окружении, в том числе на микроконтроллерах.

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

    С другой стороны, Embox имеет всю необходимую функциональность для построения современных emdedded систем: кросс-платформенное ядро, сетевой стек, файловую подсистему, графическую подсистему и так далее. Что позволяет создавать системы практически не ограниченные по функциональности. Из за этих свойст мы называем Embox - Linux без Linux.

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

    Портирование на Embox некоторых прикладных проектов привело к выявлению ошибок и исправлению. Например, была улучшена библиотека для создания VoIP телефонии PJSIP.

    Кроме того, Embox является единственной платформой, которая позволяет использовать фреймворк для компьютерного зрения OpenCV на микроконтроллерах ARM cortex-m.

    Разработка под Embox может вестись под ОС Линукс и является кросс-платформенной. Таким образом, разработанные проекты под микроконтроллеры STM были прозрачно перенесены под российские МК на базе RISC-V K1921DU015.

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

    • День выступления: 27.09.2024
    • Время начала: 11:05
    • Время окончания: 11:35
  • Зал : Разработка-1 [Green6]
  • Категории : Разработка
  • Секции : Embedded
  • Сложность : Senior

  • Никита Куликов
    руководитель отдела Embedded-разработки @ Wiren Board
    Москва

    - Что такое Modbus RTU и какие у него проблемы.

    - Зачем нам возиться с RS-485 и Modbus, а просто не перейти на CAN?

    - Натягиваем CAN-арбитраж на RS-485.

    - Добавляем в Modbus RTU события, сканирование шины и другие полезные фичи.

    - Как это работает. Посмотрим на байтики и физику шины.

    • День выступления: 27.09.2024
    • Время начала: 10:30
    • Время окончания: 11:00
  • Зал : Разработка-1 [Green6]
  • Категории : Разработка
  • Секции : Embedded
  • Сложность : Senior

  • Ильмир Гайнутдинов
    Основатель @ ESPDomofon
    Уфа

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

    Так же появились онлайн CAD системы, которые помимо разработки, позволяют сразу разместить заказ на производстве.

    Развитие микроэлектроники позволяет решать такие задачи, о которых, например, лет 20 назад, даже не задумывались.

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

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

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

    Совсем недавно автоматизации подвергались только высокотехнологичные производства, сейчас автоматизация идет широким шагом в массы. Появилось новое направление: Умный дом.

    Появление специализированных сообществ в социальных сетях позволяет разработчикам быстрее понять потребность в тех или иных устройствах.

    • День выступления: 27.09.2024
    • Время начала: 11:40
    • Время окончания: 12:10
  • Зал : Разработка-1 [Green6]
  • Категории : Разработка
  • Секции : Embedded
  • Сложность : Middle