Консалтинг — Пример платформенного программного обеспечения

Платформенное программное обеспечение (ППО) – совокупность программ, которая позволяет управлять механической и схемотехнической частями платформы, образовав единое законченное устройство – движущуюся платформу.

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

Пример 1. Необходимо принять команду управления и выдать управление на двигатели. Программа должна состоять из трёх независимых модулей – приёмник команды -> обработчик команды -> схема управления двигателями. Таким образом, реализуется принцип модульности. В случае изменения протокола команды достаточно будет изменить только подпрограмму приёма команды. В случае изменения управления двигателями необходимо изменить только подпрограмму управления двигателями. Обработчик команды – ядро программы – при этом остаётся неизменным.

Пример 2. Допустим, программная часть адаптирована для использования с платой Arduino (микроконтроллер Atmel). Необходимо адаптировать код для другого микроконтроллера. С точки зрения автономности исходный код для Arduino должен делить на две части. На первом этапе описывается функциональная логика работы (приём команд, обработка, выдача управления и т.д.) универсальным кодом на языке Си, в этом коде не допускается использовать специфические функции платформы Arduino, код должен быть «чистым», что позволяет надеяться на его повторяемую работу на любой платформе. Вторая же часть программы является интерфейсной прослойкой между первой частью и схемотехнической частью вычислительного устройства: подключение сигналов-переменных с пинам микросхемы (портам), настройка режимов портов, реализация переходной логики, специфичной для выбранной платформы.

В финале разработки представлены в следующем виде:

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