2017

Требования к языковым средствам описания и процедуре верификации управляющих алгоритмов

Проведен анализ текущей практики создания микроконтроллерных встраиваемых систем на базе микроконтроллерных платформ с открытой архитектурой (МПОА) [1], в особенности, линейки Arduino, привлекательными сокращением сроков разработки аппаратуры и надежностью, обеспечиваемой за счет серийного изготовления и доступности, имеющимся набором периферийных устройств (shields), в том числе плат расширения для связи по Ethernet и WiFi, компактностью, широким температурным диапазоном, низким энергопотреблением и дешевизной. Последнее обуславливает существенное смещение в трудозатратах при разработках встраиваемых систем на основе МПОА (ВС МПОА) в сторону затрат на создание программного обеспечения (ПО): затраты на создание ПО могут на несколько порядков превышать стоимость аппаратной части. Поэтому вопросы снижения трудоемкости программирования ВС МПОА активно дискутируются в профессиональном сообществе.

Доминирующий подход – использование объектно-ориентированного программирования (ООП) и так называемых операционных систем реального времени (RTOS). При этом основная проблема использования RTOS – тяжеловесность, что автоматически делает подход неприменимым для ВС МПОА на базе микроконтроллеров ATmega48/88/168 в силу отсутствия требуемого объема памяти и существенно ограничивает возможность его использования на более развитых моделях микроконтроллеров. Использование RTOS и ООП также затрудняют создание устойчивого (robust) ПО: необходимость обрабатывать события, поступающие от внутренней и внешней периферии микроконтроллера, вынуждает разработчиков решать возникающую при этом проблему параллелизма средствами «сложных низкоуровневых примитивов», что, как следствие, приводит к большому количеству плохо отслеживаемых и отлаживаемых ошибок в таких программах. Сложность вызывает не только процесс тестирования встраиваемых систем, при котором трудозатраты на регрессионное тестирование в сотни раз превышают трудозатраты на локализацию ошибки и исправление кода, но и обновление исправленных версий на оборудовании, которое, как правило, территориально распределено, размещается в труднодоступных местах и предполагает прошивку программного обеспечения только на территории изготовителя (то есть конструктивно не имеет штатных интерфейсов и не сопровождается программными средствами загрузки обновленного ПО).

Характерные для ВС МПОА проблемы, связанные с событийной (event driven) природой алгоритмов эффективно решаются за счет создания альтернативных ООП методик и инструментария, в первую очередь основанных на модификациях конечных автоматов. Наиболее продвинутая модификация модели конечного автомата – модель гиперпроцесса и технология процесс-ориентированного программирования (созданная в рамках выполнения НИР по тематике госзаданий Института) радикально расширяет понятийный аппарат конечного автомата и позволяет описывать такие свойства алгоритмов управления, как параллелизм, событийность и синхронизм. Модель гиперпроцесса поддержана языковыми и инструментальными средствами (язык процесс ориентированного программирования Reflex и его транслятор), которые при использовании в задачах промышленной автоматизации показывают высокую эффективность при описании сложных логически параллельных алгоритмов. Программная модель предполагает обработку входных/выходных сигналов в режиме round robin, а интерфейсы к УСО (в том числе, предполагающие обработку прерываний) инкапсулируются и абстрагируются через отдельно создаваемые системные библиотеки.

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

На основе проведенного анализа была выдвинута гипотеза о возможности адаптации технологии процесс-ориентированного программирования к задаче создания ВС МПОА и сформулированы требования к математической модели алгоритма, языковым средствам описания и процедуре верификации управляющих алгоритмов, реализуемых на МПОА, основные из которых это необходимость обеспечить:

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

Для предварительной проверки выдвинутой гипотезы была проведена эмпирическая апробация элементов предполагаемого подхода [2-3].

2017 fig1

Рис. 1. Унифицированный подход к обработке источников прерываний

Публикации

1. Розов А. С., Зюбин В. Е., Нефедов Д. В. Программирование встраиваемых микроконтроллерных систем на основе гиперпроцессов // Вестн. НГУ. Серия: информационные технологии. 2017. Т. 15, № 4. С. 64–73.

2. Краснов Д. В., Нефедов Д. В., Санжиев Е. С., Лях Т. В., Розов А. С. Практическая апробация процесс-ориентированной технологии программирования на открытых микроконтроллерных платформах // Вестник ВСГУТУ. 2017. Т. 66, вып. 3. С. 85–92.

3. Розов А. С., Лях Т. В., Краснов Д. В., Санжиев Е. С. Практическая апробация языка IndustrialC на примере автоматизации установки термовакуумного напыления // Вестн. НГУ. Серия: Информационные технологии. 2017. Т. 15, № 3. С. 90–99.