Современное электронное оборудование невозможно представить в отрыве от программного обеспечения. В зависимости от решаемой задачи, наши компетенции позволяют осуществлять разработку следующих видов ПО:
Программное обеспечение микроконтроллеров (MCU)
В реализуемых проектах мы традиционно используем следующие типы микроконтроллеров, для большинства из которых создали собственные библиотеки высокого уровня, позволяющие быстро и качественно обеспечивать требуемый функционал.
Архитектура Cortex-M:
- STMicroelectronics: STM32F1, STM32F3, STM32F4 (не используем в новых проектах);
- Миландр: MDR32F9Q2I, К1986ВЕ92У (не используем в новых проектах);
- GigaDevice: GD32F1, GD32F4
Архитектура RISK-V:
- GigaDevice: GD32VF103;
- Микрон: MIK32 АМУР;
Программное обеспечение для системы на кристалле ESP32
Для построения систем, в которых предполагается использование технологий беспроводной связи Wi-Fi и Bluetooth, мы используем SOC от компании Espressif: ESP32, ESP32-S3.
Опыт разработки устройств на базе ESP32 демонстрирует широчайшие возможности применения:
- воспроизведение или передача в сеть аудио-данных с потоковым кодированием;
- визуализация на дисплеях среднего разрешения;
- передача видео-кадров в сеть;
- управление электродвигателями;
- получение данных с цифровых датчиков и оборудования с частотным выходом;
- организация сетевого доступа для управления различным оборудованием, ранее не имевшим такого функционала и многое другое.
Для удобства организации web-интерфейса для MCU и SOC нами была разработана свободно распространяемая программа IonMakeFs.
Сервисное программное обеспечение
Сервисное ПО обычно создается параллельно со встраиваемым ПО и в ходе разработки используется для отладки и тестирования. После постановки изделия на производства сервисное ПО может быть использовано для:
- первичной (заводской) настройки изделия;
- сбора сервисных (скрытых от конечного пользователя) данных в процессе испытаний;
- визуализации сигналов и сервисных параметров при поиске неисправностей.
Наша практика предполагает разработку сервисного ПО под ОС MS Windows на языке C# с использованием .NET Framework.
Системное и прикладное ПО одноплатных компьютеров
В ходе нашей работы мы получили опыт создания одноплатных компьютеров на базе процессоров:
- NXP: iMX 6 Series;
- STMicroelectronics: STM32MP1;
- Allwinner: A64.
Каждый из проектов требовал корректировки системного ПО под конкретную аппаратную архитектуру:
- U-boot: калибровка DDR, инициализация экрана, параметры запуска Kernel;
- Kernel: DeviceTree, модули ядра;
- RootFs: компоненты, необходимые для работы прикладного ПО.
В своей практике мы используем Yocto и Debian сборки, адаптированные под конкретную аппаратную архитектуру.
Для разработки прикладного ПО мы используем:
языки программирования: С/С++ (CMake, QT), C# (.Net Core);
Графические терминалы и пульты управления
Существует множество задач, когда разрабатываемое изделие необходимо:
- оснастить цветным экраном или touch-панелью диагональю 7-10 дюймов;
- организовать развитый пользовательский интерфейс;
- осуществлять обработку и хранение значительных объемов данных;
- взаимодействовать с другими устройствами по интерфейсам RS-232, RS-422/485, USB, Ethernet;
- опционально иметь возможность подключения к ЛВС по Wi-Fi.
Мы обладаем значительным опытом и наработками в области создания данного вида ПО, а в качестве аппаратной платформы для решения подобных задач в 2019 году нами было разработано типовое решение – модуль “Модуль управления и индикации РГЦС.433811.002” на базе процессора iMX6.
Системы сбора и обработки данных, серверы IoT устройств
Современный уровень развития информационных технологий все в большей степени позволяет автоматизировать рабочие процессы, возложив на оператора лишь задачи контроля и ручного управления в экстренных ситуациях. Данный подход позволяет повысить эффективность и качество труда за счет снижения влияния “человеческого фактора”.
Наша команда обладает опытом создания подобных систем, в том числе нагруженных, за счет ресурсоэффективного подхода к созданию программного обеспечения.
Имеющиеся наработки позволяют эффективно разрабатывать ПО для центральных устройств систем сбора и обработки данных, характеризующихся: высокими требованиями надежности и наличием резервирования, непрерывной работой с множеством оконечных устройств, сложными алгоритмами статистической обработки и подготовки информации перед ее отображением и выдачей в системы более высокого уровня интеграции.