Что такое программирование задачи жизнеобеспечения на микроконтроллере
Перейти к содержимому

Что такое программирование задачи жизнеобеспечения на микроконтроллере

  • автор:

Разработка программного обеспечения Разработка ПО

От того, как написано программное обеспечение (ПО) зависит, как будет работать само устройство, его быстродействие, загрузка. Скорость отработки микроконтроллером программного обеспечения, написанного программистами разного уровня, может отличаться в разы. Ниже мы рассмотрим разработку ПО, применительно к микроконтроллерам. Но для создания системы способной, что–либо контролировать, или чем-либо управлять, к микроконтроллеру необходимо подключить датчики, модули памяти, исполнительные устройства, передающие и принимающие устройства, и прочие электронные компоненты. При «увязке» всех компонентов в систему необходима разработка ПО, которое создано исключительно для разрабатываемого устройства или системы. Мы создадим требуемые Вам устройства или системы, и разработаем ПО для их качественной и быстрой работы. Звоните! И мы решим Вашу задачу!

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

Программа (программное обеспечение) – это последовательность выполняемых микроконтроллером команд. Каждой команде в памяти соответствует свое число – код. При включении питания микроконтроллер один за другим считывает эти коды, осуществляет их дешифрацию (определяет, что ему нужно сделать), а затем исполняет одну за другой эти дешифрованные команды. Главная особенность памяти, это то, что занесенные в нее коды, сохраняются неизменными, при отсутствии питания микроконтроллера. Именно программное обеспечение определяет поведение всей системы. Все изменения и модификации программного обеспечения вносятся в микроконтроллер с помощью программатора. Один и тот же микроконтроллер, но с программным обеспечением, написанным под определённую задачу, может применяться в различных системах – для управления котлом теплоснабжения или в устройствах автоматизированной телефонной связи. В процессе создания программного обеспечения, программист пишет текст программы на компьютере так же, как он пишет любой другой текст. Затем он запускает специальную программу – транслятор. Транслятор – это специальная программа, которая переводит текст, написанный программистом, в машинные коды, то есть в форму, понятную для микроконтроллера. Написанный программистом текст программы называется исходным кодом. Код, полученный в результате трансляции, называется результирующим или машинным кодом. Именно этот код записывается в программную память микроконтроллера при помощи программатора.

Все языки программирования делятся на две группы:

— языки низкого уровня (машино-ориентированные);

— языки высокого уровня;

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

Главная задача языка – описать последовательность действий, которую должен выполнить Ваш микроконтроллер. В то же время язык должен быть удобен и понятен человеку.

Типичным примером машино-ориентированного языка программирования, является язык Ассемблер. Этот язык максимально приближен к системе команд микроконтроллера. Каждый оператор (команда) этого языка, это, по сути, словесное название какой-либо конкретной команды машинного кода. В процессе трансляции такая команда просто заменяется кодом операции. Специфика языка Ассемблер состоит еще в том, что набор команд для этого языка напрямую зависит от системы команд конкретного микроконтроллера. В недавнем прошлом язык Ассемблер был единственным языком программирования для микроконтроллеров. Только он позволял эффективно использовать скудные ресурсы самых первых микроконтроллеров. Однако в настоящее время, когда возможности современных микроконтроллеров значительно выросли, для написания программного обеспечения, в основном используются языки высокого уровня, такие как Бейсик, СИ. Эти языки в свое время были разработаны для больших компьютеров. Но сейчас их широко используют для программирования микроконтроллеров. Языки высокого уровня отличаются тем, что они гораздо больше ориентированы на человека. Большинство команд языков высокого уровня не связаны с конкретными командами микроконтроллера.

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

В каких именно регистрах или ячейках памяти будут храниться значения, программист не решает. Программа – транслятор выбирает все это сама. Поэтому задача эффективности алгоритма полученной в результате трансляции программы целиком ложиться на программу – транслятор. В целом, программное обеспечение, написанное на языках высокого уровня, занимает в памяти микроконтроллера объем на 30 — 40% больший, чем аналогичное программное обеспечение, написанные на языке Ассемблер. И это в лучшем случае, бывает и больше. Однако если микроконтроллер имеет достаточно памяти и запас по быстродействию, то увеличение программы – не проблема. Преимуществом языков высокого уровня является существенное ускорение процесса разработки программы. Для программирования современных контроллеров не нужен программатор. Все программирование можно сделать по интерфейсу USB или RS232, RS-485. Пишется программа, при помощи компилятора переводится в машинные коды и загружается в микроконтроллер. Существует оптимизирующий компилятор, позволяющий повысить скорость исполнения кода (отработки программного обеспечения микроконтроллером) в несколько раз.

Поводя черту под сказанным, следует отметить, если необходимо произвести замену неисправного модуля в старой системе, под которую обучен персонал, то для этого, можно приобретать недорогие микроконтроллеры и разрабатывать программное обеспечение на языке Ассемблер. Все устройство может быть выполнено на контроллерах, и связь между модулями может быть выполнена на языке низкого уровня, в этом случае цена в производстве будет относительно низкой, но возрастает цена и сроки разработки программного обеспечения для такого устройства. Это занимает больше времени, и требует более высокой квалификации программиста, так как ему необходимо знать специфику каждого микроконтроллера. Если же требуется выполнить работы как можно быстрее, и стоимость микроконтроллеров не особенно лимитируется, то в данном случае, в систему встраивается современный модуль, разработка программного обеспечения, для которого осуществляется на языке СИ. В остальных случаях необходимо ориентироваться на современные микроконтроллеры и средства разработки. Мы пропагандируем изготовление устройств на современной элементной базе. Это позволяет выполнить устройство с современным программным обеспечением, обслуживание которого, у Вас не вызовет затруднений. Стоимость разработки программного обеспечения, зависит от его сложности, объемов, и соответственно сроков выполнения. Здесь должен быть соблюден баланс между многими факторами, такими, как: размеры устройства, скорость работы, устойчивость работы, стоимость разработки программного обеспечения, стоимость в производстве и многое другое. Для решения этой задачи необходим комплексный подход, и мы всегда готовы подсказать приемлемое решение, исходя из технического задания и уровня финансирования.

Мы работаем по отработанной технологии взаимодействия с заказчиком.

Вы звоните нам, описываете задачу так, как Вы её видите. Если принципиально мы можем принять задание в работу, Вы через форму обратной связи, в разделе «Контакты» , отправляете технические условия (ТУ), или техническое задание (ТЗ), или в письменном виде передаете то, что Вы говорили по телефону. Мы оцениваем возможные решения и примерную стоимость. Сообщаем Вам стоимость решения задачи. Если ориентировочная стоимость и срок разработки программного обеспечения , в принципе Вас устраивают, начинаем официальную часть: подписание договора, согласование технического задания, его утверждение, календарный план выполнения работ ит.д. В некоторых случаях, когда необходимо обрабатывать большое количество информации, связанной с Вашей задачей (техническое задание, техническая документация), мы оставляем за собой право оговорить стоимость работ по изучению предоставленной Вами информации, и подготовки коммерческого предложения по разработке программного обеспечения . В процессе работы над задачей может возникнуть необходимость в выезде на объект для согласования и уточнения вопросов с заказчиком, поиск дополнительной информации, проведение предварительных исследований. В этом случае, мы также оставляем за собой право оговорить стоимость вышеперечисленных работ. Если Вам удобно, то связаться с нами, и сделать предварительный запрос, можно через обратную связь в разделе «КОНТАКТЫ» .

Как правило, неразрешимых технических задач нет, вопрос только в стоимости решения и сроке выполнения работ.

Наши решения

Методика проектирования программного обеспечения микроконтроллеров для быстродействующих систем управления Текст научной статьи по специальности «Компьютерные и информационные науки»

МИКРОКОНТРОЛЛЕР / СЛОЖНЫЕ АЛГОРИТМЫ УПРАВЛЕНИЯ / ПРОЕКТИРОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ / СТРУКТУРНАЯ СХЕМА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ / ДИАГРАММА СОСТОЯНИЙ / MICROCONTROLLER / COMPLEX CONTROL ALGORITHMS / SOFTWARE DESIGN / STRUCTURAL DIAGRAM SOFTWARE / STATE DIAGRAM

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Винтоняк Никита Павлович, Федотов Владимир Александрович, Семенов Валерий Дмитриевич

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Винтоняк Никита Павлович, Федотов Владимир Александрович, Семенов Валерий Дмитриевич

Влияние способа преобразования автоматных диаграмм на параметры сгенерированного программного кода

Использование графических языков в жизненном цикле бортового программного обеспечения космических аппаратов

Объектно-ориентированный анализ алгоритма управления и проектирование архитектуры программного обеспечения для климатической экранированной ТЕМ-камеры

Парадигма автоматного программирования
Switch-технология в задачах логического управления
i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Methods of software design microcontrollers for high-speed control systems

The article describes the design methodology of the software microcontrollers. The technique allows to implement complex software control algorithms with maximum performance further with their full description and documentation.

Текст научной работы на тему «Методика проектирования программного обеспечения микроконтроллеров для быстродействующих систем управления»

Н.П. Винтоняк, В.А. Федотов, В.Д. Семенов. Методика проектирования программного обеспечения 175

Н.П. Винтоняк, В.А. Федотов, В.Д. Семенов

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

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

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

История развития электронной техники показывает, что цифровые системы управления являются её перспективным направлением развития. Они позволяют значительно расширить эксплуатационные параметры электронной техники и заложить значительно более сложные алгоритмы управления, повышающие её гибкость. Применение микроконтроллеров (МК) в качестве основного узла цифровой системы управления позволяет улучшить массогабаритные показатели, расширить функциональные возможности, уменьшить влияние разброса параметров элементов на точностные характеристики системы управления и упростить настройку электронной техники в процессе производства. Применение цифровых систем управления позволяет снизить время разработки новой электронной техники. Это обусловлено возможностью использования ранее разработанного программного обеспечения (ПО) МК и его дальнейшей модернизации на любом этапе разработки [1].

При реализации сложных алгоритмов управления (хранящих информацию о ходе выполнения алгоритма в памяти, т. е. зависящих от предыстории) разработчики ПО МК часто сталкиваются с затруднениями по его отладке и модернизации. Данные затруднения связаны с использованием несистемного подхода, при котором ПО разрабатывается интуитивно (эвристически) в ходе написания исходного кода. Несистемный подход влечет за собой сложность алгоритмизации и трудность внесения изменений в разработанный алгоритм. Используя несистемный подход, программисты описывают разработанное ПО с помощью блок-схем алгоритмов ЕСПД [2], которые в этом случае получаются громоздкими и затрудняют понимание сложных алгоритмов управления.

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

— возможность реализации сложных алгоритмов управления;

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

— упрощение процесса отладки и модернизации проектируемого ПО с возможностью его повторного использования в других системах управления;

— возможность разделения работ по проектированию ПО между несколькими исполнителями;

— документирование и сертификация проектируемого ПО.

При реализации сложных алгоритмов управления прибегают к системным подходам [3], которые предполагают первоначально проводить формализованный анализ проектируемого ПО и только после этого приступать к созданию исходного кода ПО. Системные подходы проектирования ПО широко представлены в различных методиках проектирования ПО [4-7]. Одной из таких методик является SWITCH-технология, разработанная А.А. Шалыто [4], которая относится к парадигме автоматного программирования. В SWITCH-технологии ПО представляется в виде схемы взаимосвязанных конечных автоматов, проектируемых по графам переходов (диаграммам состояний). Особенности данной методики позволяют проектировать сложные алгоритмы управления и установить однозначную связь между графом переходов и исходным кодом ПО. Также повышается «наблюдае-

Доклады ТУСУРа, № 2 (36), июнь 2015

мость» ПО (состояние конечного автомата отслеживается с помощью одной переменной), что ведет к упрощению его отладки и сертификации. Эта технология позволяет изначально «правильно» проектировать ПО, а не отлаживать его до тех пор, пока оно не станет «правильным». Успешность данной технологии описана в отзывах [8, 9] на работу [4] и в многочисленных статьях о её применении [10].

Несмотря на достоинства SWITCH-технологии, у неё есть ограничения при применении. Так как данная технология разработана для систем логического управления, в частности для программируемых логических контроллеров (ПЛК), она не обеспечивает максимально возможное быстродействие алгоритмов управления, работающих на МК. В данной технологии предполагается, что считывание входных воздействий конечного автомата производится в основном цикле ПО методом опроса, а их обработка производиться на следующем такте основного цикла ПО [11]. Временные задержки на обработку входных воздействий вводятся самим алгоритмом ПО, разработанным с помощью SWITCH-технологии [12], так как все воздействия обрабатываются на следующем такте основного цикла ПО. Модификация SWITCH-технологии для разработки ПО МК [5], в которой для каждого сообщения выделяется три этапа, после прохождения которых сообщение поступит на вход конечного автомата, ведет к упрощению отладки ПО [13], но еще больше увеличивает время реакции МК на различные события. Методики, описанные в [4] и [5], целесообразно применять для разработки ПО, реализующего «небыстродействующее» логическое управление устройством.

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

Унифицированный язык моделирования UML [7], использующий графические обозначения для создания UML-модели, помимо множества прочих диаграмм, также использует диаграммы состояний для представления различных объектов и их реакции на возникающие события. Он является языком общего назначения, и совместим со всеми языками программирования. Однако UML обладает некоторой избыточностью, сильной взаимосвязью с парадигмой объектно-ориентированного программирования, нечеткостью описания последовательности действий при проектировании ПО и отсутствием рекомендаций по его использованию в ПО МК. Это влечет за собой трудности по его адаптации для проектирования ПО МК.

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

Отсутствие методики проектирования ПО МК для быстродействующих систем управления, отвечающей всем современным требованиям, делают её разработку актуальной.

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

— этап эскизного проекта ПО;

— этап оформления исходного кода ПО и его отладки;

— этап документирования ПО и его дальнейшей сертификации.

На первом этапе проектирования ПО сначала создается программно-аппаратная структурная схема (рис. 1, а), которая разрабатывается с учетом принципиальной схемы объекта управления. Принципиальная схема обусловливает сигналы, поступающие и отправляемые МК. Алгоритм разработки программно-аппаратной структурной схемы представляет собой выполнение следующих операций. На программно-аппаратной структурной схеме отображаются узлы объекта управления, с которыми взаимодействует МК (например, кнопка, двигатель, органы индикации), без собственных линий связи и выделяется область ПО. Элементы структурной схеме ПО, помещенные в область ПО, являются программным кодом, а элементы, которые находятся вне этой области, являются аппаратными узлами объекта управления, соединённого с МК. За пределы программной области, выделенной прямоугольником, выводятся программно-аппаратные связи (пронумерованные штрих-пунктирные линии). Они представляют собой выделенные аппаратные узлы МК (порты ввода / вывода, таймеры, аналого-цифровые преобразователи и др.). Программно-аппаратные связи демонст-

Доклады ТУСУРа, № 2 (36), июнь 2015

Н.П. Винтоняк, В.А. Федотов, В.Д. Семенов. Методика проектирования программного обеспечения 177

рируют взаимодействие ПО МК с аппаратной частью объекта управления. Внутри программной области располагаются блоки ПО, которые служат для представления в программе некоторого объекта, обладающего определенными свойствами, поведением и отношениями с другими объектами и их функциями. Представляемый блоком ПО объект может быть как внешним по отношению к МК (например, кнопка, двигатель, органы индикации и т.п.), так и внутренним (например, таймер, модуль АЦП, модуль ШИМ и т.п.). Внутри области ПО находится «системный» блок ПО, не отображаемый на структурной схеме ПО, который реализует алгоритм работы главной функции исходного кода ПО и координирует работу остальных блоков ПО. Блоки ПО связаны между собой внешними сообщениями (пронумерованные сплошные линии) и запросами (пронумерованные пунктирные линии), которые реализуются в исходном коде ПО в виде отдельных функций. Внешние сообщения позволяют блокам взаимодействовать друг с другом и осуществлять заданный алгоритм управления, а запросы позволяют передавать данные между блоками (текущее время, ток, напряжение, и т.п.).

б — пример диаграммы состояний блока ПО; в — алгоритм работы «системного» блока ПО

В дальнейшем для каждого блока ПО, входящего в структурную схему ПО, разрабатывается диаграмма состояний (рис. 1, б), описывающая процесс изменения внутреннего состояния каждого блока ПО. Блок ПО хранит в себе информацию о предыстории выполнения алгоритма, что позволяет реализовывать сложные алгоритмы управления. На диаграмме состояний отображаются возможные состояния блока ПО (овал с названием состояния), начальное состояние (круг), отображающее состояние МК после включения/сброса, внешние сообщения (указанные на структурной схеме ПО и начинающиеся с надписи «Ext:») и аппаратные сообщения (начинаются с надписи «Hrd:»), вызываемые аппаратными прерываниями МК. Также на диаграмме состояний отображаются внутренние сообщения (начинаются с надписи «Int:»), которые возникают при выполнении их условия и отображают события, возникающие внутри блока (достижение током заданного предела, конец временной задержки и т.п.). Каждое сообщение вызывает изменение состояния блока ПО (переход), за исключением «петли» (переход осуществляется на текущее состояние). Для запуска блока ПО используется специальное внешнее сообщение «Инициализация», посылаемое «системным» блоком ПО, которое позволяет блоку ПО выйти из начального состояния. Для вызова внешних сообщений других блоков ПО или описания действий, выполняемых при переходах, на диаграмме состояний отображаются прямоугольные области с пронумерованными операциями, на которую указывает «молния» (зигзагообразная стрелка), выходящая из соответствующего перехода. Направления переходов указываются прямыми или изогнутыми стрелками. Также на диаграмме состояний отображается специальное внешнее сообщение «Такт», посылаемое «системным» блоком ПО, которое проверяет условия внутренних сообщений и позволяет выполнять действия в состояниях.

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

Доклады ТУСУРа, № 2 (36), июнь 2015

«Системный» блок ПО помещается в основную функцию исходного кода ПО (main.h и main.c). Для реализации диаграммы состояний в исходном коде ПО используется оператор «switch» языка Си. В качестве выражения оператора «switch» используется переменная состояния блока ПО, а в качестве меток перечисляются возможные состояния блока ПО. Каждое сообщение и запрос реализуются с помощью отдельной функции, в которой используется оператор «switch», проверяющий текущее состояние (таким образом реализуется передача потока выполнения программы при передаче сообщения). С помощью оператора «switch» достигается однозначная взаимосвязь разработанных диаграмм состояний и исходного кода ПО. В процессе инициализации «системный» блок ПО поочередно вызывает специальные внешние сообщения «Ext: Инициализация» всех блоков ПО, а в основном цикле ПО поочередно вызывает специальные внешние сообщения «Ext: Такт» всех блоков ПО (рис. 1, в). Программная реализация разработанного алгоритма ПО и его отладка выходят за рамки данной статьи.

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

Практическая ценность предлагаемой методики была подтверждена при разработке систем управления силовыми преобразователями электроэнергии и ряде других проектов при реализации алгоритмов логического управления, в том числе в [14-18].

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

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

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

3. Установить однозначную взаимосвязь проектируемого ПО и исходного кода ПО, что упрощает его отладку, модернизацию, повторное использование и автоматизацию процесса проектирования ПО.

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

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

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

1. Мелешин В.И. Управление транзисторными преобразователями электроэнергии / В.И. Меле-шин, Д.А. Овчинников. — М.: Техносфера, 2011. — 576 с.

2. ГОСТ 19.701-90. Схемы алгоритмов, программ данных и систем. Условные обозначения и правила выполнения. — Введ. 1992-01-01. — М.: Изд-во стандартов, сор. 1992. — 33 с. — (Единая система программной документации).

3. Перегудов Ф.И. Основы системного анализа / Ф.И. Перегудов, Ф.П. Тарасенко. — Томск: НТЛ, 1997. — 396 с.

4. Шалыто А.А. Switch-технология. Алгоритмизация и программирование задач логического управления. — СПб.: Наука, 1998. — 628 с.

5. Применение Switch-технологии при разработке прикладного программного обеспечения для микроконтроллеров. — Ч. 1 [Электронный ресурс]. — Режим доступа: http://kit-e.ru/articles/cir-cuit/2006_11_164.php, свободный (дата обращения: 28.04.2015).

6. Козаченко В.Ф. Эффективный метод программной реализации дискретных управляющих автоматов во встроенных системах управления [Электронный ресурс]. — Режим доступа: http://motorcontrol.ru/publications/state_mashine.pdf, свободный (дата обращения: 28.04.2015).

7. UML [Электронный ресурс]. — Режим доступа: http://www.omg.org/spec/UML/, свободный (дата обращения: 28.04.2015).

Доклады ТУСУРа, № 2 (36), июнь 2015

Н.П. Винтоняк, В.А. Федотов, В.Д. Семенов. Методика проектирования программного обеспечения 179

8. Герр Р Новый поворот // PC MAGAZIN/RUSSIAN EDUTION. — 1998. — №10. — C. 88-90.

9. Лашманкин А. Возрождение автоматов // Компьютер дома и на работе. — 2001. — №23. — С. 50.

10. Кафедра «Технологии программирования»: О нас: Шалыто Анатолий Абрамович [Электронный ресурс]. — Режим доступа: http://is.ifmo.ru/aboutus/shalyto/, свободный (дата обращения: 28.04.2015).

11. Вавилов К.В. Что плохого в неавтоматном подходе к программированию контроллеров? /

К.В. Вавилов, А. А. Шалыто // Промышленные АСУ и контроллеры. — 2007. — №1. — С. 49-51.

12. Кафедра «Технологии программирования»: курсовые проекты: Интеграция механизма обмена сообщениями в Switch-технологию [Электронный ресурс]. — Режим доступа:

http://is.ifmo.ru/projects/memech/, свободный (дата обращения: 28.04.2015).

13. Применение SWITCH-технологии при разработке прикладного программного обеспечения для микроконтроллеров. — Ч. 3: Обмен сообщениями и таймеры [Электронный ресурс]. — Режим доступа: http://kit-e.ru/articles/circuit/2007_1_146.php, свободный (дата обращения: 28.04.2015).

14. Винтоняк Н.П. Источник питания устройства тепловых экспресс-испытаний радиоэлементов с микропроцессорной системой управления / Н.П. Винтоняк, В.А. Федотов, В.Д. Семенов // Итоги научно-исследовательских работ курсового проектирования студентов 1-6 курсов кафедры промышленной электроники: матер. ежегод. науч.-практ. конф. / под ред. В.Д. Семенова. — Вып. 6. -Томск: Том. гос. ун-т систем упр. и радиоэлектроники, 2012. — С. 6-22.

15. Разработка программного обеспечения моточного станка Roller DX7 / Н.П. Винтоняк, РГ Калинин, В.А. Федотов, В.Д. Семенов // Научная сессия ТУСУР-2014. — Т. 2. — С. 195-199.

16. Винтоняк Н.П. Устройство для тепловых испытаний радиоэлементов на основе элементов Пельтье / Н.П. Винтоняк, В.А. Федотов, В.Д. Семенов // Научная сессия ТУСУР-2013. — Т. 2. -С.180-182.

17. Калинин РГ. Выбор корректирующего звена резонансного преобразователя на основе экспериментальной АЧХ по управляющему воздействию / Р.Г. Калинин, А.В. Кобзев, В.Д. Семенов, В.А. Федотов // Доклады ТУСУРа. — 2014. — № 1. — 143 с.

18. Калинин РГ. Эффективность нагрева медного провода в зазоре индуктора поперечного магнитного поля для зачистки от лаковой изоляции / РГ. Калинин, В.Д. Семенов, В.А. Федотов // Доклады ТУСУРа. — 2014. — № 1(31). — С. 74-77.

Винтоняк Никита Павлович

Аспирант каф. промышленной электроники ТУСУРа

Эл. почта: nic-nic91@yandex.ru

Федотов Владимир Александрович

Зав. лаб. ГПО каф. промышленной электроники ТУСУРа Тел.: +7-952-888-46-13 Эл. почта: fva@vipelec.com

Семенов Валерий Дмитриевич

Канд. техн. наук, профессор каф. промышленной электроники ТУСУРа Тел.: +7-913-821-22-92 Эл. почта: svd@ie.tusur.ru

Vintonyak N.P., Fedotov V.A., Semenov V.D.

Methods of software design microcontrollers for high-speed control systems

The article describes the design methodology of the software microcontrollers. The technique allows to implement complex software control algorithms with maximum performance further with their full description and documentation.

Keywords: microcontroller, complex control algorithms, software design, structural diagram software, state diagram.

Доклады ТУСУРа, № 2 (36), июнь 2015

Научно-исследовательская работа «програмирование задачи жизнеобеспечения на микроконтроллере.» — заказ №191363

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

Научно-исследовательская работа Дата заказа: 2022-05-04

Предмет: Автоматизация технологических процессов и производств

Работа выполнена: 2022-05-07

Цена: 10165 р.

Выполнил эксперт

Бронислава Валентиновна Мищенко

Достижения автора:

Рейтинг автора:

Работ выполнено:

Всего работ: 374

Всего отзывов:

Положительных: 756
Отрицательных: 2

Прогресс выполнения учебной работы

Исполнителем работы выбран(а) Бронислава Валентиновна Мищенко

Автор Бронислава Валентиновна Мищенко отправил(а) финальный файл. Работа полностью завершена.

Что такое программирование задачи жизнеобеспечения на микроконтроллере

ОСНОВНЫЕ МОДЕЛИ ПРОГРАММИРОВАНИЯ МИКРОКОНТРОЛЛЕРОВ

В практике программирования микроконтроллеров (МК) наиболее часто используются следующие модели организации управляющих программ:

Система с суперциклом (С2Ц) (superloop systems) – все задачи/действия выполняются в теле бесконечного цикла в строго определенной, линейной последовательности.

Многозадачная система (МЗС) – задачи планируются и выполняются под управлением операционной системы реального времени (RTOS).

Использование различных моделей конечных автоматов (МКА) (state machine).

Система с суперциклом

Для подобной системы существует и другое определение – однозадачная система, поскольку при использовании этой модели определенная задача выполняется ЦПУ в определенное время. Поскольку здесь ни в коей мере не используется система реального времени, для реализации фрагментов алгоритма управляющей программы, критичных ко времени выполнения, используется система прерываний МК. На рис. 1 приведена пример обобщенной схемы, иллюстрирующей ход выполнения действий в С2Ц с использованием подпрограмм-обработчиков прерываний (ISR). Разработка программ по модели С2Ц усложняется по мере увеличения размера управляющего кода. Поскольку выполнение одного программного модуля не может быть прервано другим модулем иначе, как только через механизм прерываний, время реакции или обращения к конкретному модулю зависит от времени выполнения остальных модулей системы. Таким образом, такая система плохо удовлетворяет требованиям реального времени и может быть использована для реализаций алгоритмов, не требовательных ко времени.

Многозадачная система с приоритетом

Использование системы реального времени подразумевает возможность одновременного выполнения процессором множества задач. Выполнение задач планируется системой реального времени – это означает, что RTOS может запустить или остановить выполнение каждой задачи. В МЗС могут использоваться различные алгоритмы планирования задач. Одним из наиболее распространенных алгоритмов реализации систем реального времени является многозадачность с приоритетом прерывания. В RTOS с приоритетом используется периодическое прерывание по таймеру, в обработчике которого происходит прерывание выполнения текущей задачи и, при необходимости, переключение задач. При этом будет выполняться задача, имеющая наиболее высокий приоритет и находящаяся в состоянии готовности. Если в обработчике прерывания другой задаче будет установлен более высокий приоритет, произойдет переключение задач – текущая задача будет остановлена, задача с более высоким приоритетом – запущена. Этот процесс иллюстрирует рис. 2.

Рис. 2 – Схема функционирования МЗС с приоритетом

Использование моделей конечных автоматов

МКА подразумевает простое преобразование входящих событий в соответствующие действия, и, по сути, представляет собой чисто реактивное устройство, работа которого не зависит от операционной системы. В любой момент времени такая система находится в одном из нескольких возможных состояний. Переход из одного состояния в другое происходит в зависимости от внешних условий. Как только происходит изменение состояния, может быть выполнено определенное действие. Например, электронное устройство может находиться в состояниях «ВКЛ» и «ВЫКЛ», дверь может быть «Открыта» или «Закрыта_И _Незаблокирована» и пр. КА не обязательно должен иметь карту всех возможных физических состояний и переходов, достаточно описать набор состояний, необходимых для решения конкретной задачи. Одним из важных свойств КА является возможность параллельной работы. Например, представим себе торговый автомат и все возможные случаи, которые необходимо принять во внимание при разработке программного обеспечения:

что произойдет, если чашка будет убрана до того, как она наполнится (например, в кофейном автомате)?

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

как поведет себя машина, если новый заказ будет сделан до завершения обработки текущего заказа?

будут ли пользователю возвращены деньги, если во время обработки заказа произойдет поломка какого-либо электромеханического узла автомата?

Использование МКА предпочтительно в приложениях, связанных с управлением, где основными критериями являются надежность, размер и предсказуемость поведения программного кода.

По материалам IAR Systems. Первоисточник – Getting started with IAR Embedded Workbench, раздел Developing embedded application (GSEW-2, 2010 г.).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *