logo search
Bolshakov_Poyasnitelnaya_zapiska

1 Анализ предметной области

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

В области разработки программ для ЭВМ от идеи программирования процессоров на уровне регистров ушли давно, создав множество высокоуровневых технологий, языков и инструментов. Наиболее распространенной в области программирования ЭВМ стала парадигма объектно-ориентированного программирования, позволяющая представить программу в виде системы некоторых взаимодействующих абстрактных сущностей. Парадигма объектно-ориентированного программирования нашла отражение в технологии COM и ее развитии для распределенных систем DCOM [4].

Для построения распределенных систем на базе ЭВМ существуют и другие парадигмы, основанные на модели параллельно взаимодействующих компонентов. Одной из таких парадигм является парадигма синхронного программирования [5], основанная на разработке программ на языках синхронного программирования: Esterel [6], Lustre [7], Signal [8], позволяющих описывать системы параллельных взаимодействующих модулей. Также разработаны стандарты по методам формального описания протоколов и соответствующие им языки: Estelle [9], Lotos [10], SDL [11].

Таким образом, существует множество технологий для описания РВС, построенных на базе ЭВМ. Однако при создании распределенных микроконтроллерных систем данные технологии, как показывает практика, не применяются. Причины этого кроются в принципиальных отличиях ЭВМ и микроконтроллеров и предъявляемым к ним требованиям, из-за чего перенос технологий с первых на последние представляется чрезвычайно затруднительным. Микроконтроллерные системы имеют другую область применения, нежели чем ЭВМ, к ним предъявляются особые требования по эффективности использования ресурсов (в том числе оперативной памяти), особые требования по энергосбережению. Также на базе микроконтроллеров часто строят системы для управления ответственными объектами (так называемые реактивные системы – системы, взаимодействующие с окружающей средой посредством обмена сообщениями в темпе, задаваемом самой средой [5]). При этом в качестве основных требований реактивных систем выступает минимальное время реакции системы и максимальная ее надежность. Все перечисленные особенности построения микроконтроллерных систем не позволяют в полной мере использовать существующие технологии создания (РВС), поскольку получаемые системы управления не удовлетворяют указанным требованиям.

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