Стивен Барретт - Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С
- Название:Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С
- Автор:
- Жанр:
- Издательство:Издательский дом «ДМК-пресс»
- Год:2007
- Город:Москва
- ISBN:5-9706-0034-2
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Стивен Барретт - Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С краткое содержание
В книге последовательно рассматриваются все этапы создания встраиваемых систем на микроконтроллерах с применением современных технологий проектирования. Задумав эту книгу, авторы поставили перед собой задачу научить читателя искусству создания реальных устройств управления на однокристальных микроконтроллерах.
Издание содержит материал, охватывающий все вопросы проектирования, включает множество заданий для самостоятельной работы, примеры программирования, примеры аппаратных решений и эксперименты по исследованию работы различных подсистем микроконтроллеров.
Данная книга является прекрасным учебным пособием для студентов старших курсов технических университетов, которые предполагают связать свою профессиональную деятельность с проектированием и внедрением встраиваемых микропроцессорных систем. Книга также будет полезна разработчикам радиоэлектронной аппаратуры на микроконтроллерах.
Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Пример: В предыдущей профессиональной жизни я (Стивен Ф. Барретт) был наводчиком в военно-воздушных силах. Я вместе с моим партнером отвечал за текущий контроль состояния своих ракет. Мы находились на расстоянии нескольких километров от ракет. Состояние ракеты проверялось по компьютеру в нашем центре управления. Компьютер проводил последовательный циклический опрос состояния каждой из наших ракет. Я не участвовал в проектировании компьютерной операционной системы центра управления; однако, я думаю, что использовалась карусельная система опроса, поскольку состояние каждой ракеты имело равную важность.
8.5.4. Смешанные системы
Как мы уже видели, карусельная система опроса может также быть дополнена возможностями приоритетного прерывания. Такой тип циклической системы с прерываниями называется смешанной системой. В этом случае, циклический алгоритм формирует фоновую часть из операционной системы, в то время как приоритетная часть системы формируется программой прерываний.
Пример:В сценарии управления ракетами, мы были бы заинтересованы в том, чтобы получить немедленное сообщение о катастрофических событиях, угрожающих одной из управляемых нами ракет, таких как затопление пусковой шахты, пожар в бункере ракеты, нарушение защиты, и т.д. В этих случаях операционная система могла бы быть дополнена частью программы с прерываниями, чтобы мгновенно перейти от обычного циклического опроса, к обработке событий с высоким приоритетом, а после ее окончания вернуться к обычному карусельному опросу.
8.5.5. Системы с управлением по прерыванию
В главе 4 мы обсуждали мощную и гибкую систему прерывания микроконтроллера 68HC12 с приоритетным управлением. Эту систему прерывания мы можем использовать теперь при разработке ОСРВ. При этом сначала основная программа проводит инициализацию, позволяющую конфигурировать систему, а затем система переходит к бесконечному циклу. Внутри цикла, процессор просто ждет событий, вызывающих прерывание. Когда приходят отдельные запросы на прерывания, процессор выполняет программу обработки прерывания, связанную с каждой из задач (с каждым прерыванием). Если несколько запросов на прерывания приходят одновременно, используются механизмы приоритетов, встроенные в 68HC12, и определяющие, какая из задач должна быть выполнена сначала. Механизмы стеков в системах прерывания 68HC12 гарантирует, что контексты задач будут правильно сохраняться и восстанавливаться. Операционную систему с управлением по прерыванию такого типа относительно просто написать. К числу ее преимуществ относится малое время реакции на событие, вызывающее прерывание. Систему необходимо спроектировать таким образом, чтобы она точно оценивала приоритет каждой задачи, от которой приходит запрос на прерывание.
Пример: В этой главе мы уже обсуждали робот, движущийся в лабиринте и обнаруживающий магнитные мины. Операционная система для этого робота могла бы быть выполнена, используя методы прерывания. В этом случае задачи инициализации (для ЖКД, ATD и ШИМ) были бы реализованы при инициировании операционной системы и затем переведены в бездействующее состояние. Операционная система затем перешла бы к непрерывному циклу, ожидая запросов на прерывание от различных задач. Каждая из задач, связанных с обнаружением мин, с обнаружением стенок лабиринта и управлением соответствующими поворотами, с модификацией информации, выводимой на ЖКД, посылала бы отдельный запрос на прерывание и вызывала связанную с ним программу обработки прерывания (ISR). Если, например, робот обнаруживает мину, это событие вызовет прерывание, и затем соответствующую ISR, связанную с обходом мины. Если несколько запросов на прерывания приходят одновременно; аппаратные средства приоритета прерывания 68HC12 обеспечивают первоочередное обслуживание прерывания с самым высоким приоритетом. Если запрос на прерывание с более высоким приоритетом приходит во время обслуживания низкоприоритетного прерывания, то последнее прерывается, контроллер 68HC12 конфигурируется для обслуживания прерывания с высоким приоритетом и лишь затем возвращается к обслуживанию низкоприоритетного прерывания.
8.5.6. Кооперативная многозадачность
При кооперативном многозадачном режиме ОСРВ для задачи с самым высоким приоритетом из находящихся в состоянии готовности выделяется определенное количество процессорного времени. Затем она возвращает управление операционной системе в отметке, удобной для прерывания связанных с ней действий. До передачи управления, эта задача модифицирует связанный с ней TCB в соответствии с текущим контекстом. Затем задача снова переводится в состояние готовности. Операционная система затем позволяет следующей задаче с самым высоким приоритетом, находящейся в состоянии готовности перейти в активное состояние. Задача, вводящая активное состояние восстанавливает контекст, извлекая информацию из своего TCB. Эта задача затем выполняет свою часть программы, пока не достигает точки прерывания. Затем она, в свою очередь, модифицирует свой TCB в соответствии с текущим контекстом, возвращает управление операционной системе и процесс продолжается. Важно подчеркнуть, что в кооперативной многозадачной системе, задача возвращает управление операционной системе. Если задача не будет передавать управление, то задачи с более низким приоритетом никогда не смогут получить процессорного времени. Вы можете заметить, насколько важна межзадачная связь при таком типе операционной системы. Она обычно осуществляется путем использования глобальных переменных.
Операционные системы этого типа можно выполнить, используя для задач системы ряд списков с указателями. При этом списки с указателями существуют для каждого из различных состояний, в которых могут находиться задачи. Эта концепция иллюстрируется структурой, показанной на рис. 8.17. В процессе работы системы, задачи перемещаются из списка в список. Ранее в этой главе мы перемещали из одного списка с указателями в другой запись, идентифицирующую автомобиль, в ответ на его обслуживание различными автомобильными дилерами. Точно так же в зависимости от действий нашей прикладной программы перемещается из списка в список и задача, состояние которой отражается в форме записи с указателем.

Рис. 8.17.Система списков с указателями для задач
8.5.7. Многозадачные системы с преимущественным приоритетом
Многозадачная система с преимущественным приоритетом (PPMS) очень похожа на кооперативную многозадачную систему, главное различие между ними заключается в том, какой из компонентов системы отвечает за предоставление процессорного времени. В кооперативной многозадачной системе, задача возвращает управление процессором операционной системе. В PPMS, сам процессор решает, какая из задач станет активной и будет ли выгружаться задача с низким приоритетом. С PPMS, каждой задаче внутри системы назначен приоритет. Операционная система исследует список с указателями, содержащий все задачи, находящиеся в состоянии готовности и переводит в активное состояние задачу с самым высоким приоритетом. Когда готова задача с более высоким приоритетом, операционная система затем выгружает низкоприоритетную задачу. Последняя изменяет свой TCB и затем переходит в состояние готовности. Активной становится задача с высоким приоритетом. При этом типе ОСРВ, приоритеты задач могут быть постоянными или динамически изменяться в процессе выполнения программы.
Читать дальшеИнтервал:
Закладка: