2.2.2.1.15 Функциональное моделирование блоков устройств
Принятая концепция передачи сигналов в параметризируемой форме вместо полноценного моделирования их цифровой или тем более аналоговой формы во времени позволяет упростить моделирование блоков устройств. Это связано с тем, что количество различных типов блоков, которые способны испускать сигналы в соответствии с установленными в них аппаратными и программными настройками, небольшое:
1) блоки таймеров;
2) блоки счетчиков;
3) блоки ШИМ;
4) блоки АЦП;
5) блоки ЦАП;
6) блоки интерфейсов.
Кроме блоков в состав устройства входят также различные виды памяти.
Поскольку при программировании на языке С разработчик управляет работой микроконтроллера за счет записи данных в регистры (регистры управления и ввода / вывода, доступа к регистрам процессора на языке С нет, если не рассматривать возможность ассемблерных вставок), то именно через регистры происходит настройка и всех функциональных блоков устройства. При этом разные биты одного регистра могут относиться к различным настройкам разных блоков. Для реализации задания настроек функциональных блоков на языке Lua виртуальной машины, необходима организация подписок функциональных блоков на установку новых значений. Сама установка значения в регистр будет осуществляться в функции setRegisterValue, которая в качестве параметров принимает название регистра и новое его значение, в теле которой происходит вызов подписчиков всех функциональных блоков, которые по имени регистра и его новом значении могут изменять параметры своего моделирования.
2.2.2.1.16 Обеспечение модульности и обновляемости
Обеспечение модульности возможно за счет разработки предполагаемых программных компонентов в качестве плагинов. Согласно архитектуре Eclipse плагин является единицей модульности, расширяемости и представления кода в платформе. Плагины могут расширять другие плагины и в то же время предоставлять точки расширения для других плагинов. Для организации программной системы в виде плагинов используется технология OSGi [49].
В состав плагина входит не только программный код (набор классов), но также файл манифеста, в котором указывается информация о плагине, перечисляются его расширения и точки расширения. Так например для регистрации собственного редактора (рисунок) в файле манифеста необходимо указать на наличие расширения, производящего расширение интерфейса IEditor, с указанием реализующего класса, расширений файлов, с которыми работает данный редактор и некоторых других свойств (рисунок 2.11).
Рисунок 2.11 – Использование манифеста плагина для внедрения в платформу собственного редактора
Для обеспечения удаленных или локальных обновлений в рамках Eclipse удобно использовать платформу снабжения (Provisioning Platform P2), которая позволяет производить в рамках Eclipse установку и обновление модулей. Использование платформы снабжения позволяет:
- автоматически разрешать конфликты зависимостей между программными компонентами: по заданным пользователем компонентам, которые бы он хотел установить в систему, платформа способна вычислить все компоненты, от которых данные зависимы и произвести их полную установку;
- удаленная передача программных компонентов и их конфигурационных настроек по сети реализовывается при поддержке скачиваний с зеркалированных репозиториев с функцией автоматической балансировки потоков трафика.
2.2.2.2 Описание функционирования программного комплекса
Согласно структурной схеме системы, основными подсистемами являются подсистема редактирования и отладки (рисунок). Отладка программы пользователем возможна после ее написания и успешной компиляции. Процесс разработки программы пользователем в системе представлен на рисунке.
Рисунок 2.12 - Обобщенная схема функционирования программного комплекса
Согласно функциональной схеме, пользователь разрабатывает три вида документов: схема оборудования, диаграмма задачи и собственно саму программу на текстовом языке. Часть информации за пользователя генерируется автоматически, что отображено на схеме крупными стрелками. Тонкими линиями на схеме обозначено взаимодействие по управлению. Так программа на Lua исполняется отладчиком и обращается напрямую к моделям автоматизирующих и автоматизируемых устройств. Последние в свою очередь приводят к непосредственной анимации во время моделирования объектов на схеме оборудования.
Программа пользователя представляется в виде задач, а поэтому на нижнем уровне (при генерации на язык С) необходима интеграция пользовательской программы с операционной системой. Существует множество существующих операционных систем для микроконтроллеров, в качестве целевой возможен выбор легковесной операционной системы ОSА [50]. Данная операционная система предоставляет возможность организовывать кооперативную многозадачность (в том числе с учетом приоритетов задач), работает на микроконтроллерах архитектур AVR, PIC.
Компиляцию программы с языка С в образ, прошиваемый непосредственно в микроконтроллер, предполагается выполнять с помощью бесплатных gcc-компиляторов, которые существуют для большинства моделей микроконтроллеров целевых архитектур при возможности подмены компилятора на тот, который имеется у пользователя.
2.2.2.3 Описание состава технических и программных средств
Работа системы производится на компьютере общего назначения. Минимальные требования к характеристикам целевого компьютера:
- жесткий диск с наличием на нем свободного пространства для работы системы не менее 5 Гб;
- оперативная память со свободным объемом для работы системы не менее 1 Гб;
- процессор при суммарной частоте вычислительных ядер не ниже 2 ГГц;
- видеокарта, обеспечивающая отображения графических компонентов установленной на компьютер операционной системы;
- возможность доступа компьютера к сети или сменному носителю для копирования файлов программы на целевой компьютер;
- монитор для отбражения текстовой и графической информации разрешением не ниже 1024x768.
Система должна быть реализована на базе платформы Eclipse, иметь возможность работы под операционными системами семейства Windows (от версии XP и выше) и Linux (дистибутивы Ubuntu и Fedora от версии Ubuntu 10.04 и выше, от Fedora 12 и выше).
Система должна обеспечивать работу с файлами и папками через средства установленной на компьютер операционной системы. При этом в систему возможно импортирование созданных вне ее исходных файлов на языке С.
Для работы системы необходим предустановленный пакет JRE (Java Runtime Environment) версии не ниже 6.0.
- Введение
- 1 Анализ предметной области
- 1.1 Постановка задачи
- 1.2 Обзор аналогов
- 2 Программная документация
- 2.1 Техническое задание на программное обеспечение
- 2.1.1 Назначение разработки
- 2.1.2 Терминология
- 2.1.3 Требования к функциональным характеристикам
- 2.1.4 Требования к надежности
- 2.1.5 Требования к составу и параметрам технических средств
- 2.1.6 Требования к информационной и программной совместимости
- 2.1.7 Требования к результатам работы
- 2.1.7.1 Требования к комплектации решения
- 2.1.7.2 Требования к документации
- 2.1.8 Перечень работ по этапам
- 2.2 Пояснительная записка
- 2.2.1 Назначение и область применения
- 2.2.2 Описание разработанной технологии создания программ для распределенных микроконтроллерных систем
- 2.2.2.1 Схема оборудования
- 2.2.2.2 Недостатки диаграммы Бара для проектирования микроконтроллерных программ управления
- 2.2.2.3 Концепции диаграммы задач
- 2.2.2.4 Семантика отображаемых на диаграмме задач связей
- 2.2.2.5 Синхронные и асинхронные вызовы функций задач
- 2.2.2.6 Синхронный вызов функции пакета
- 2.2.2.7 События и подписки
- 2.2.2.8 Текстовый язык
- 2.2.2 Технические характеристики
- 2.2.2.1 Описание структуры программной системы
- 2.2.2.1.1 Платформа разработки
- 2.2.2.1.2 Подсистема редактирования
- 2.2.2.1.3 Разработка графических редакторов
- 2.2.2.1.4 Разработка текстового редактора
- 2.2.2.1.5 Описание языка
- 2.2.2.1.6 Семантический анализ пользовательской программы
- 2.2.2.1.7 Генерация кода на целевом языке
- 2.2.2.1.8 Генерация кода редактора текстового языка
- 2.2.2.1.9 Проектирование отладчика
- 2.2.2.1.10 Регистрация конфигурации запуска
- 2.2.2.1.11 Модель отладки
- 2.2.2.1.12 Виртуальная машина
- 2.2.2.1.13 Моделирование
- 2.2.2.1.14 Концепция параметризированных сигналов
- 2.2.2.1.15 Функциональное моделирование блоков устройств
- 2.2.3 Ожидаемые технико-экономические показатели
- 2.3 Описание программы
- 2.3.1 Описание логической структуры
- 2.3.1.2 Типичный поток событий в графическом редакторе
- 2.3.2 Входные и выходные данные
- 2.3.3 Используемые технические средства
- 2.4 Программа и методика испытаний
- 2.4.1 Программа испытаний
- 2.4.2 Методика испытаний
- 3 Руководство пользователя
- 3.2 Условия выполнения программного комплекса
- 3.3 Установка программы
- 3.4 Текстовый редактор
- 3.5 Графический редактор
- 4 Акт испытаний программного продукта
- 5 Экономическая часть
- Заключение
- Список использованных источников