Сделай Сам Свою Работу на 5
 

Назначение и область применения

Введение

 

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

Значительную часть встраиваемых систем составляют микроконтроллерные системы, то есть системы, основными элементами которых являются микроконтроллеры [2]. Микроконтроллер– микросхема, предназначенная для управления электронными устройствами, сочетающая в себе функции процессора и периферийных устройств, содержащая основное запоминающее устройство и / или постоянное запоминающее устройство. По сути, это однокристальный компьютер, способный выполнять простые задачи.

Согласно статистике крупнейшей аналитической компании Databeans, производящей оценку рынка полупроводниковых устройств [3], рынок микроконтроллеров достиг в 2011 году уровня более 15 миллиардов долларов в год. По данным аналитической компании, рынок микроконтроллеров демонстрирует стабильный рост, который по прогнозам до 2015 года будет составлять 7% в год. Микроконтроллеры наиболее широко используются для построения автономных мобильных устройств и систем из таких устройств от различного рода роботов до устройств бытовой техники и распределенных систем “умного дома”.

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



 

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

 

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

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

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

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

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

 

Постановка задачи

 

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

 

Обзор аналогов

 

Аналогами разрабатываемой инструментальной среды являются интегрированные среды разработки программ для микроконтроллеров наиболее популярных архитектур (AVR, PIC, MSP430, STM, ARM). Цены аналогов приведены в таблице А.1 приложения А.

1) AVR Studio

Бесплатная интегрированная среда разработки [12]. С 2011 года базируется на компонентах современной среды разработки Microsoft Visual Studio. Включает инструментарий для редактирования и отладки программ на языках С / C++ для микроконтроллеров AVR и SAM (ARM). В качестве компиляторов и компоновщиков используются инструменты из бесплатного пакета WinAVR [13]. В версии 6.0 системы интегрирован инструмент QTouch Composer, позволяющий выбрать готовые программные блоки для реализации работы микроконтроллера с сенсорными датчиками, а также содержащий готовые инструменты для отладки подобных решений в режиме исполнения на устройстве (передача данных по любому из выбранных интерфейсов: SPI, UART, TWI) с возможностью просмотра графиков данных на ЭВМ, передаваемых по этим интерфейсам во времени. Также при выборе библиотечных программных блоков имеется возможность просмотра оценки использования ресурсов контроллера.

2) CodeVisionAVR

Платная интегрированная среда разработки [14]. Существует бесплатная ознакомительная версия с ограничением ряда возможностей. Включает следующие компоненты: редакторы на языках С и assembler с подсветкой синтаксиса, компилятор с языков С и assembler, генератор начального кода CodeWizardAVR, генерирующий код инициализации на языке С на основании выбора пользователем настроек.

3) AtmanAVR

Платная интегрированная среда разработки [15], использующая компилятор gcc [16]. В отличие от инструментов пакета WinAVR имеет отладчик и генератор начального кода.

4) IAR Embedded Workbench

Дорогостоящая среда разработки [17]. Компилятор С/C++ IAR генерирует быстрый и компактный код. Основные компоненты: интегрированная среда разработки (IDE) с инструментами организации проектов и редакторами, оптимизирующие С и С++ компиляторы под контроллеры архитектур AVR, PIC, ARM, STM8, MSP430, 8051, архитектур фирмы Renesas; бибилиотеки кода, примеры программ. Имеется инструмент Visual StateChart для описания программы в виде расширенных конечных автоматов.

5) MicroC/Basic/Paskal PRO

Платная интегрированная среда разработки программ [18] на языке C / Basic / Paskal для контроллеров архитектур AVR, PIC, ARM, 8051. Современный редактор кода с автодополнением. Имеются удобные вспомогательные инструменты для отображения информации о ресурсах микроконтроллера.

6) ICC AVR

Платный инструментарий [19] для программирования AVR (компилятор). В качестве среды разработки предлагается использовать современную IDE – CodeBlocks [20]; поддержка контроллеров AT90S, ATMega, Tiny26, AT94K FPSLIC; поддержка отладки под AVR Studio; компиляторы командной строки, доступные из сторонних редакторов (платная опция); оптимизирующий ANSI-C компилятор; бибилиотеки на языке С; Application Builder как инструмент генерации кода инициализации периферии.

7) Algorithm Builder

Отечественная бесплатная графическая среда для разработки программного обеспечения для микроконтроллеров архитектуры AVR [21]. Характеристики Algorithm Builder: графическое представление ассемблера в виде блок-схем, встроенный компилятор, внутрисхемный отладчик.

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

Система не поддерживается разработчиком с 2009 года.

8) Bascom-AVR

Платная интегрированная среда разработки для программирования AVR [22]. Из отличительных особенностей среды можно отметить встроенный инструментарий для разработки программ для AVR: редактор с подсветкой синтаксиса и компилятор Basic (поддержка всех AVR с внутренней памятью), программатор ISP, интегрированный симулятор, из особенных возможностей редактора имеется лишь подсветка синтаксиса языка Basic.

9) LDMicro

Программа LDMicro позволяет запрограммировать контроллер на языке релейной логики [23]. Графический редактор и принятая нотация не являются универсальными для описания большинства программ.

10) Code Somposer Studio

Платная интегрированная среда разработки программ для микроконтроллеров [24] фирмы Texas Instruments. Построена на базе платформы Eclipse [25]. Позволяет разрабатывать программы для микроконтроллеров на языке С. Включает графический инструмент Grace для получения инициализационного кода по настройке периферии микроконтроллера. Для контроллеров, специализированных для цифровой обработки (C6000 DSP) предлагается графический редактор С6EZFlo с возможностью на языке функциональных блоков составить программу (функцию) обработки входных данных.

11) MPLAB X IDE

Бесплатная интегрированная среда [26] разработки программ для микроконтроллеров фирмы Microchip, основанная на платформе NetBeans [27]. Среда позволяет интегрировать сторонние компиляторы. Имеется модуль для симулятора simulink и набор блоков, обозначающих цифровые контроллеры dsPIC, что позволяет разработать в MatLab [28] модель и получить сгенерированный код на языке С, реализующий описанную модель программы.

12) ST MCU Toolset

Бесплатный пакет для разработки программ для микроконтроллеров фирмы STMicroelectronics, включающий бесплатные компиляторы с языков С / C++, assembler, а также линковщик [29]. IDE поддерживает подсветку синтаксиса и автодополнение кода. Инструмент STM Studio позволяет просматривать на ПК графики данных в режиме реального времени работы микроконтроллера.

13) Atollic True Studio

Платная IDE для разработки программ на языках С/C++ для микроконтроллеров архитектур ARM, AVR UC3, Toshiba TX [30]. Полностью основана на IDE Eclipse, в которую добавлены инструменты для автоматизированного тестирования, анализа исходного кода и отладки. В качестве компиляторов предлагается использовать сторонние бесплатные компиляторы.

14) FlowCode

Платная IDE для разработки программ на графическом языке для микроконтроллеров AVR, PIC, ARM [31]. Графический язык основан на концепциях блок-схем, с которого автоматизированно генерируется программа на языке С. Недостатком данной графической нотации является громоздкость конструкций с ветвлениями и отсутствие средств для реализации паралеллизма. Отладка производится с использованием встроенного симулятора. В последних версиях FlowCode появился прототип редактора схемы оборудования для конфигурации симулятора с целью отладки взаимодействия по интерфейсам нескольких микроконтроллеров.

Программная документация

 

2.1 Техническое задание на программное обеспечение

 

Назначение разработки

 

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

Разрабатываемая система должна поддерживать программирование микроконтроллеров архитектуры AVR фирмы Atmel семейств tiny, mega, xmega. Архитектура разрабатываемой системы должна предусматривать расширение перечня поддерживаемых контроллеров и определять ограничения на их архитектуру, а также пути преодоления этих ограничений, которые, возможно, будут предусматривать необходимость переписывания отдельных частей системы.

 

Терминология

 

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

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

Переменная – поименованная область памяти (аналогична переменным в структурных языках программирования).

Функция – фрагмент программного кода, имеющий название, список параметров, возвращаемое значение. Является аналогом функции на языке Си.

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

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

Событие – способ оповещения задачей или пакетом других задач и пакетов о чем-либо. Событие описывается названием и сигнатурой функции, которой должны обладать подписчики на это событие. Множественная подписка на событие предполагает последовательный вызов подписанных функций. Подпиской может быть как синхронный, так и асинхронный вызов подписываемой функции. Однако сигнатура подписываемой функции должна возвращать тип “void” (т.е. не возвращать вовсе никакого значения).

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

Свойство локальности элементов некоторого объекта означает невидимость этих элементов вне объекта, их содержащего. Локальными могут быть переменные и функции задач и пакетов.

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

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

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

Интерфейсом называется протокол взаимодействия устройств низшего уровня (при котором программная реализация предполагает обращение к аппаратуре).

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

Проектом называется совокупность документов, относящихся к одной микроконтроллерной системе. Виды документов в проекте: документы схемы оборудования, документы диаграммы задач, документы программы на текстовом языке, документы со сгенерированной программой на языке С для микроконтроллеров и ЭВМ, файлы функциональных тестов.

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

 

Требования к функциональным характеристикам

 

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

1) Организовывать хранение проектов и документов в файловой системе ЭВМ пользователя.

2) Отображать дерево проектов и документов, создавать и редактировать проекты и элементы их структуры.

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

4) Поддерживать режимы редактирования, отладки и тестирования программы.

5) Отображать ошибки компиляции и линковки и прочие информационные сообщения о работе системы.

6) Среда должна предусматривать интерфейс для интеграции с системой информационной поддержки разработчика (СИПР).

7) Предусматривать возможность удаления, переустановки, обновления из локального хранилища или с удаленного сервера.

8) Обеспечивать отображение и редактирование схемы оборудования.

a) Отображать палитру инструментов и компонентов.

б) Отображать модели следующих автоматизирующих устройств: микроконтроллеры семейства AVR, ЭВМ.

в) Отображать модели автоматизируемых устройств, их функциональные блоки и выводы.

г) Позволять устанавливать настройки функциональных блоков в окне свойств.

д) Позволять соединять выводы устройств друг с другом.

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

9) Обеспечивать отображение и редактирование диаграммы задач

а) Отображать палитру инструментов и компонентов.

б) Отображать, создавать и редактировать задачи (пользовательские и аппаратные) и пакеты: изменять название, списки методов и событий, изменять приоритет задач.

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

10) Обеспечивать отображение и редактирование текстового языка программирования.

а) Осуществлять подсветку синтаксиса, автодополнение вводимых слов.

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

в) Подсвечивать ошибки компиляции в тексте.

г) Организовывать работу с точками останова.

д) Осуществлять пошаговую отладку по коду с подсветкой текущего места исполнения.

е) Предусматривать отдельный компонент управления функциональными тестами к программе.

11) Предусматривать возможность модульного и системного тестирования программы.

 

Требования к надежности

 

При расчете нижеуказанных характеристик требуемой надежности предполагается соблюдение следующих требований:

- соблюдены требования к аппаратной составляющей технического средства;

- в окне редактора открыто не более 50 вкладок;

- количество элементов в дереве проекта пользователя не превышает 1000 элементов (включая разделы проектов и собственно документы).

При соблюдении вышеуказанных требований максимальное время ответа графической подсистемы должно составлять не более 10 секунд, вероятность безотказной работы ПО должна быть не менее 80% в течение суток.

 

 

Требования к составу и параметрам технических средств

 

Работа системы производится на компьютере общего назначения. Минимальные требования к характеристикам целевого компьютера:

- жесткий диск с наличием на нем свободного пространства для работы системы не менее 5 Гб;

- оперативная память со свободным объемом для работы системы не менее 1 Гб;

- процессор при суммарной частоте вычислительных ядер не ниже 2 ГГц;

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

- возможность доступа компьютера к сети или сменному носителю для копирования файлов программы на целевой компьютер;

- монитор для отображения текстовой и графической информации разрешением не ниже 1024x768.

 

Требования к информационной и программной совместимости

 

Система должна быть реализована на базе платформы Eclipse, иметь возможность работы под операционными системами семейства Windows (от версии XP и выше) и Linux (дистрибутивы Ubuntu и Fedora от версии Ubuntu 10.04 и выше,
от Fedora 12 и выше).

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

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

Для работы системы необходим предустановленный пакет Java Runtime Environment (JRE) [32] версии не ниже 6.0.

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

 

Требования к результатам работы

 

Требования к комплектации решения

 

Программный продукт должен быть представлен в виде исполняемого файла с набором дополнительных файлов-библиотек, либо в виде файла-установщика.

 

Требования к документации

 

Программная документация должна включать в себя:

- расчётно-пояснительную записку;

- схемы алгоритмов и программ;

- проектировочные UML-диаграммы;

- текст программы;

- наборы тестовых данных;

- руководство пользователя.

 

Перечень работ по этапам

 

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


Таблица 2.1 - Перечень работ по этапам

Наименование этапов Сроки выполнения Примечание
Разработка пояснительной записки к программному обеспечению 27.04 предъявляется на первый смотр
Разработка описания программы 27.04 предъявляется на первый смотр
Разработка программы и методика испытаний 27.04 предъявляется на первый смотр
Разработка эксплуатационной документации 25.05 предъявляется на второй смотр
Разработка и отладка программ 25.05 частично предъявляются на первый смотр, полностью - на второй
Разработка материалов по экономике и охране труда 25.05 предъявляются на второй смотр
Испытания 25.05 акт испытаний предъявляет­ся на второй смотр
Оформление пояснительной записки 10.06 предъявляется на предзащиту
Оформление графических материалов 10.06 предъявляются на предзащиту

 

Пояснительная записка

 

Назначение и область применения

 

Целью данной работы является разработка программной системы, позволяющей пользователю создать схему соединения программных и аппаратных модулей микроконтроллерной системы, написать программу для каждого микроконтроллера в схеме, выполнить отладку и тестирование программ на модели системы, получить сгенерированную программу на языке С. Разрабатываемая система должна поддерживать программирование микроконтроллеров архитектуры AVR фирмы Atmel семейств tiny, mega, xmega. Архитектура разрабатываемой системы должна предусматривать расширение перечня поддерживаемых контроллеров и определять ограничения на их архитектуру, а также пути преодоления этих ограничений.

 

 



©2015- 2022 stydopedia.ru Все материалы защищены законодательством РФ.