Чтение онлайн

на главную - закладки

Жанры

Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С

Пак Дэниэл Дж.

Шрифт:

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

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

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

Пример: В

главе 2 мы обсуждали встроенную систему управления, предназначенную для обработки входных сигналов дистанционного управления или группового ввода для стерео усилителей. В этом специфическом примере, операционная система инициализировала систему усилителя и затем непрерывно опрашивала входные сигналы от пульта дистанционного управления и переключателей на лицевой панели. Интерфейс дистанционного управления связан с портом А, а переключатели на лицевой панели — портом B. Для этого применения, опрос был наилучшим метод для реализации операционной системы. Он был выбран в качестве предпочтительного, потому что 1) как только усилитель инициализирован, операционная система, выполняет только опрос сигналов на входах, 2) входы от дистанционного управления и переключателей лицевой панели имеют равный приоритет и 3) время реакции на изменение входных сигналов не критично.

8.5.2. Циклический опрос с прерываниями

Что же будет, если наше прикладная программа в основном хорошо соответствует системе с опросом, но содержит несколько задач, которые требуют непосредственного доступа к процессору? Необходимо ли отказываться от простой системы с опросом в пользу намного более сложного алгоритма планирования ОСРВ? Ответ будет отрицательным. Как мы указывали в главе 4, микроконтроллер 68HC12 имеет мощную, гибкую систему прерывания с приоритетным управлением. Чтобы обрабатывать простые текущие задачи может применяться алгоритм опроса, в то же время для внеочередной обработки задач требующих немедленного вмешательства может использоваться система прерываний.

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

Пример: Обратимся опять к нашему контроллеру стереоусилителя. Транзисторные усилители, используемые в нашем стереопроекте достаточно дороги. В хорошем проекте транзисторы не перегреваются при обычной работе усилителя, чтобы предотвратить их повреждение. Предположим, что для защиты от перегрева проектировщик предусмотрел датчики температуры для каждого транзистора, чтобы постоянно контролировать их текущую температуру. Если температура любого транзистора достигает недопустимого уровня, проектировщик хотел бы, чтобы операционная система включала дополнительные вентиляторы охлаждения. Эта модификация проекта не требует, чтобы мы вообще отказались от схемы опроса. Лучше всего использовать схему опроса в фоновом режиме, чтобы обработать обычное рабочее управление стереоусилителем. В приоритетной части системы, датчики, контролирующие температуру транзисторов, могли бы быть подключены с помощью интерфейса к системе прерывания. Прерывание было бы активизировано при достижении температурой транзистора(ов) неприемлемо высокого уровня. В этом случае процессор должен был бы формировать сигнал, на включение дополнительного вентилятора. Мы исследуем этот проект в применениях, рассмотренных в разделе 8.9 и задании для самостоятельного исследования 2, приведенного в конце главы.

8.5.3. Карусельные системы

В карусельных ОСРВ системах, ядро последовательно переходит от обработки одной активной задачи к другой. Когда оно достигает последней задачи в системе, то начинает снова с первой задачи. В циклической системе, задачам часто позволяют работать до завершения прежде перейти к следующей задаче. Если это недопустимо для каждого прохода через все задачи, может использоваться метод квантования времени. При квантовании времени она каждую задачу цикла выделяется фиксированным временем доступа к процессору. Если за этот период задача не заканчивается, ее контекст сохраняется в связанном с ней TCB, она переводится в состояние готовности, а активной становится следующая задача в циклической последовательности. Карусельная операционная система может быть легко выполнена при использовании структуры данных с круговой очередью. В этом случае, каждый TCB мог бы быть связан с позицией в очереди. Операционная система последовательно переходила бы от одной задачи к другой внутри очереди. А если желательно было бы использовать квантование времени, то это легко было бы реализовать с помощью прерываний в режиме реального времени (RTI) имеющихся в 68HC12.

Пример: В предыдущей профессиональной жизни я (Стивен Ф. Барретт) был наводчиком в военно-воздушных силах. Я вместе с моим партнером отвечал за текущий контроль состояния своих ракет. Мы находились на расстоянии нескольких километров от ракет. Состояние ракеты проверялось по компьютеру в

нашем центре управления. Компьютер проводил последовательный циклический опрос состояния каждой из наших ракет. Я не участвовал в проектировании компьютерной операционной системы центра управления; однако, я думаю, что использовалась карусельная система опроса, поскольку состояние каждой ракеты имело равную важность.

8.5.4. Смешанные системы 

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

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

8.5.5. Системы с управлением по прерыванию

В главе 4 мы обсуждали мощную и гибкую систему прерывания микроконтроллера 68HC12 с приоритетным управлением. Эту систему прерывания мы можем использовать теперь при разработке ОСРВ. При этом сначала основная программа проводит инициализацию, позволяющую конфигурировать систему, а затем система переходит к бесконечному циклу. Внутри цикла, процессор просто ждет событий, вызывающих прерывание. Когда приходят отдельные запросы на прерывания, процессор выполняет программу обработки прерывания, связанную с каждой из задач (с каждым прерыванием). Если несколько запросов на прерывания приходят одновременно, используются механизмы приоритетов, встроенные в 68HC12, и определяющие, какая из задач должна быть выполнена сначала. Механизмы стеков в системах прерывания 68HC12 гарантирует, что контексты задач будут правильно сохраняться и восстанавливаться. Операционную систему с управлением по прерыванию такого типа относительно просто написать. К числу ее преимуществ относится малое время реакции на событие, вызывающее прерывание. Систему необходимо спроектировать таким образом, чтобы она точно оценивала приоритет каждой задачи, от которой приходит запрос на прерывание.

Пример: В этой главе мы уже обсуждали робот, движущийся в лабиринте и обнаруживающий магнитные мины. Операционная система для этого робота могла бы быть выполнена, используя методы прерывания. В этом случае задачи инициализации (для ЖКД, ATD и ШИМ) были бы реализованы при инициировании операционной системы и затем переведены в бездействующее состояние. Операционная система затем перешла бы к непрерывному циклу, ожидая запросов на прерывание от различных задач. Каждая из задач, связанных с обнаружением мин, с обнаружением стенок лабиринта и управлением соответствующими поворотами, с модификацией информации, выводимой на ЖКД, посылала бы отдельный запрос на прерывание и вызывала связанную с ним программу обработки прерывания (ISR). Если, например, робот обнаруживает мину, это событие вызовет прерывание, и затем соответствующую ISR, связанную с обходом мины. Если несколько запросов на прерывания приходят одновременно; аппаратные средства приоритета прерывания 68HC12 обеспечивают первоочередное обслуживание прерывания с самым высоким приоритетом. Если запрос на прерывание с более высоким приоритетом приходит во время обслуживания низкоприоритетного прерывания, то последнее прерывается, контроллер 68HC12 конфигурируется для обслуживания прерывания с высоким приоритетом и лишь затем возвращается к обслуживанию низкоприоритетного прерывания.

8.5.6. Кооперативная многозадачность

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

Поделиться:
Популярные книги

Барон нарушает правила

Ренгач Евгений
3. Закон сильного
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Барон нарушает правила

Измена. Не прощу

Леманн Анастасия
1. Измены
Любовные романы:
современные любовные романы
4.00
рейтинг книги
Измена. Не прощу

Жребий некроманта 3

Решетов Евгений Валерьевич
3. Жребий некроманта
Фантастика:
боевая фантастика
5.56
рейтинг книги
Жребий некроманта 3

Город Богов 2

Парсиев Дмитрий
2. Профсоюз водителей грузовых драконов
Фантастика:
юмористическое фэнтези
городское фэнтези
попаданцы
5.00
рейтинг книги
Город Богов 2

Сумеречный Стрелок 3

Карелин Сергей Витальевич
3. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный Стрелок 3

Сердце для стража

Каменистый Артем
5. Девятый
Фантастика:
фэнтези
боевая фантастика
9.20
рейтинг книги
Сердце для стража

Ваше Сиятельство

Моури Эрли
1. Ваше Сиятельство
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Ваше Сиятельство

Черный дембель. Часть 3

Федин Андрей Анатольевич
3. Черный дембель
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Черный дембель. Часть 3

Сирота

Ланцов Михаил Алексеевич
1. Помещик
Фантастика:
альтернативная история
5.71
рейтинг книги
Сирота

Сотник

Ланцов Михаил Алексеевич
4. Помещик
Фантастика:
альтернативная история
5.00
рейтинг книги
Сотник

Скандальная свадьба

Данич Дина
1. Такие разные свадьбы
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Скандальная свадьба

Последний из рода Демидовых

Ветров Борис
Фантастика:
детективная фантастика
попаданцы
аниме
5.00
рейтинг книги
Последний из рода Демидовых

Бестужев. Служба Государевой Безопасности. Книга 5

Измайлов Сергей
5. Граф Бестужев
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бестужев. Служба Государевой Безопасности. Книга 5

Мастер Разума IV

Кронос Александр
4. Мастер Разума
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Мастер Разума IV