Микроконтроллерные устройства
Главная | Каталог статей | Регистрация | Вход
Воскресенье
19.05.2024
00:48
Приветствую Вас Гость | RSS
Главная » Статьи » Программирование » Разработка программного обеспечения

Основные модели программирования микроконтроллеров

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

     В практике программирования микроконтроллеров (МК) наиболее часто используются следующие модели организации управляющих программ:
  1. Система с суперциклом (С2Ц) (superloop systems) – все задачи/действия выполняются в теле бесконечного цикла в строго определенной, линейной последовательности.
  2. Многозадачная система (МЗС) – задачи планируются и выполняются под управлением операционной системы реального времени (RTOS).
  3. Использование различных моделей конечных автоматов (МКА) (state machine).

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

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

Рис. 1

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

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

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

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

     МКА подразумевает простое преобразование входящих событий в соответствующие действия, и, по сути, представляет собой чисто реактивное устройство, работа которого не зависит от операционной системы. В любой момент времени такая система находится в одном из нескольких возможных состояний. Переход из одного состояния в другое происходит в зависимости от внешних условий. Как только происходит изменение состояния, может быть выполнено определенное действие. Например, электронное устройство может находиться в состояниях «ВКЛ» и «ВЫКЛ», дверь может быть «Открыта» или «Закрыта_И _Незаблокирована» и пр. КА не обязательно должен иметь карту всех возможных физических состояний и переходов, достаточно описать набор состояний, необходимых для решения конкретной задачи. Одним из важных свойств КА является возможность параллельной работы. Например, представим себе торговый автомат и все возможные случаи, которые необходимо принять во внимание при разработке программного обеспечения:
  • что произойдет, если чашка будет убрана до того, как она наполнится (например, в кофейном автомате)?
  • что случится со счетом кредитной карты, если пользователь отменит заказ уже в процессе оплаты и обработки карты терминалом?
  • как поведет себя машина, если новый заказ будет сделан до завершения обработки текущего заказа?
  • будут ли пользователю возвращены деньги, если во время обработки заказа произойдет поломка какого-либо электромеханического узла автомата?
     Использование МКА предпочтительно в приложениях, связанных с управлением, где основными критериями являются надежность, размер и предсказуемость поведения программного кода.
 
     По материалам IAR Systems. Первоисточник – Getting started with IAR Embedded Workbench, раздел Developing embedded application (GSEW-2, 2010 г.).
Категория: Разработка программного обеспечения | Добавил: Dante (04.01.2011) | Автор: Ванцев Д.В. E W
Просмотров: 3188 | Рейтинг: 1.0/1
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Категории раздела
Разработка программного обеспечения [2]
Общие вопросы разработки прграмного обеспечения для микроконтроллеров: подходы к программированию, алгоритмизация задач и пр.
Поиск
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Copyright MyCorp © 2024
Создать бесплатный сайт с uCoz