Главная » Просмотр файлов » В.Т. Рябов - Устройство и программирование однокристальных микроконтроллеров

В.Т. Рябов - Устройство и программирование однокристальных микроконтроллеров (1054006), страница 16

Файл №1054006 В.Т. Рябов - Устройство и программирование однокристальных микроконтроллеров (В.Т. Рябов - Устройство и программирование однокристальных микроконтроллеров) 16 страницаВ.Т. Рябов - Устройство и программирование однокристальных микроконтроллеров (1054006) страница 162017-12-27СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 16)

Такое написание лучшепереносится из программы в программу, допускает раздельную отладку, поэтому и прощеотлаживается и является естественным для процессов управления. Далее рассмотрим процесс разработки такого диспетчера.Контрольные вопросы.1. Этапы и выполняемые работы при разработке программного обеспечения микроконтроллеров.2. Обеспечение работы ПО ЛМК в жестком реальном времени.3. Особенности разработки программного обеспечения ЛМК.4. Ошибки ПО на логическом и физическом уровне и методы их устранения.515.2. Диспетчер процессов для МК семейства MCS-51.Функции диспетчера процессов.Диспетчер процессов является минимальным ядром базовой операционной системы«жесткого» реального времени.

Хороший диспетчер процессов должен:1) представлять пользователю гибкий программный интерфейс для управления очередностью запуска процессов во времени (синхрокванты) и запускать процессы взависимости от внешних событий в порядке очереди (интеркванты), либо безочереди (экстракванты);2) занимать минимальный объем резидентного ОЗУ, не ограничивать пользователя виспользовании регистров общего назначения и других ресурсов микроконтроллера;3) минимально загружать процессор процессом диспетчирования.Проектируемый диспетчер предназначен для управления синхроквантами, рядом интерквантов, перезапускаемых внешними событиями и экстраквантами, запускаемыми отдвух входов прерываний.Реальное время будет отсчитываться в диспетчере процессов с помощью коротких«тиков» с длительностью, определяемой пользователем и способной изменяться в пределахот долей миллисекунды до нескольких десятков миллисекунд и длинных тиков, длительность которых в 256 раз больше, чем у коротких.

Может быть, несколько странная системаотсчета времени по сравнению с привычными секундами, минутами и часами, но удобнаядля реализации в микроконтроллере. Реальное время будет фиксироваться и обрабатываться программой обработки прерываний таймера Т/С0. Этот таймер занят базовой операционной системой. Пользователь в своей управляющей программе свободно может использоватьтаймер Т/С1.Процессы (синхрокванты) могут быть запущены на выполнение с задержкой до 255тиков (коротких или длинных). Тогда реализуемая диспетчером задержка синхроквантабудет составлять от одной миллисекунды (при тике в 1 мс) до минуты (65,536 с).Синхроквант будет управляться двумя флагами – статусом кванта и флагом кванта.Статус кванта предусмотрен для управления им из программы пользователя, флаг таймерабудет устанавливаться таймером при истечении заданной в кванте задержки времени.Квант будет запущен диспетчером, если установлены его статус и флаг.Распределение переменных диспетчера в памяти МКЕсли при программировании на языках высокого уровня переменным просто задаются символические имена и определяется их тип, при программировании на ассемблереесть возможность явно определить расположение переменных в адресном пространстверезидентной оперативной памяти МК.

Это повышает эффективность использования памяти и быстродействие программы.Проведем распределение переменных в памяти, отведем для хранения статусов ифлагов два байта из зоны битового процессора, что позволит нам эффективно работать сотдельными битами (очищать CLR bit и устанавливать их SETB bit командами битовогопроцессора).Ячейка резидентной памяти микроконтроллера с адресом 20h будет регистромстатусов квантов, каждый ее бит содержит статус соответствующего кванта в соответствиис таблицей 1.

Биты этого регистра устанавливаются программно пользователем. Если пользователь хочет запустить какой-либо квант или периодически перезапускать его по истечениизаданной задержки, он должен установить в единицу статус этого кванта. Если квант запускать не нужно – очистить соответствующий бит.52Таблица 5.1.Содержимое регистра статусов квантов (ячейки 20h)№ бита7Адрес бита 7Назначение SPR766SPR655SPR544SPR433SPR322SPR211SPR100SPR0Ячейка резидентной памяти микроконтроллера с адресом 21h будет регистромфлагов квантов, каждый ее бит содержит флаг соответствующего кванта в соответствиис таблицей 2. Флаги квантов устанавливаются в подпрограмме обработки прерыванийтаймера Т/С0. Такое двойное управление квантом с помощью флагов и статусов сделанодля того, чтобы максимально сократить время обработки прерывания. В подпрограммедля всех возможных квантов уменьшаются задержки и устанавливаются флаги, когда задержка истечет, а решение о запуске кванта примет диспетчер, если пользователем в своей программе установлен статус соответствующего кванта.Таблица 5.2.Содержимое регистра флагов квантов (ячейки 21h)№ бита7Адрес бита FhНазначение FPR76EhFPR65DhFPR54ChFPR43BhFPR32AhFPR219FPR108FPR0Ячейка с адресом 22h будет регистром размерности задержек квантов (устанавливается пользователем).

Если в соответствующий кванту бит записана единица, задержка отсчитывается в больших тиках, если ноль, в малых.Таблица 5.3.Содержимое регистра разрядности задержек квантов (ячейки 22h)№ бита76543210Адрес бита 17h16h15h14h13h12h11h10hНазначение RPR7RPR6RPR5RPR4RPR3RPR2RPR1RPR0Ячейка с адресом 23h – счетный регистр малых тиков. Система отсчета времениведется в малых тиках, период которых может быть настроен пользователем (исходнодлительность малого тика 1 мс) и в больших тиках, содержащих 256 малых. Тик, совпадающий с обнулением ячейки 23h, считается большим.Создадим систему отсчета реального времени.

Таймер микроконтроллера может работать в четырех режимах (см. гл. 3.2). Наиболее гибким и удобным для построения диспетчера представляется режим 1, схема функционирования которого и содержание управляющего регистра таймера TMOD представлены на рис.5.1.Здесь в регистре TMOD определен режим таймера Т/С0, система не ограничиваетпользователя в выборе допустимого режима Т/С1.Если в подпрограмме обработки прерываний перезагружать старший и младший регистры таймера, мы сможем гибко регулировать время малого тика (время прерывания таймера), абольшой тик будет отсчитываться после 256 прерываний (малых тиков).В ячейках с адресами 24h и 25h будем хранить начальные значение старшего имладшего байта TH0 и TL0 таймера счетчика Т/С0.

Таймер счетчик начинает считать от16-и разрядного числа, заданного регистрами 24h и 25h и, как только переполнится, возникнет прерывание и запустится подпрограмма его обработки. В подпрограмме обработкиэтого прерывания снова установим начальное значение счетного регистра таймера и обработаем флаги прерываний в соответствии с заданными задержками квантов.53В микроконтроллерах семейства MCS-51 - автовекторная система прерываний. Закаждым источником прерываний закреплен свой вектор – адрес в младшей зоне памятипрограмм.Затаймером Т/С0закреплен вектор0Bh.

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

Это нужно,чтобы после обработки прерывания вернутся к выполнению основной программы. Затем всчетчик команд заносится вектор наступившего прерывания. МК обращается в памятьпрограмм по этому адресу, считывает и выполняет приведенную там команду.Ячейка с адресом 26h – регистр управления очередью квантов. Квант запускается из пультовой петли диспетчера, если установлены его статус и флаг. Анализ состоянийквантов (очередность запуска) будем вести по двум стратегиям:1) приоритетный запуск, начинается анализ с нулевого кванта (самого приоритетного) и заканчивается седьмым.2) круговой запуск, если выполнялся, например, пятый квант, после его выполнения и возврата в диспетчер первым анализироваться будут условия запускашестого, седьмого, нулевого, первого и т.д.Бит 26.0 (нулевой бит ячейки 26h) – бит круговой очереди в диспетчере.

Если онсброшен в 0 – приоритетный запуск, если установлен в 1 – круговой.Для стека микроконтроллера выделим зону памяти в 28 байтов с адреса 64h и до конца резидентной памяти данных. Стек используется микроконтроллером при вызове подпрограмм. Так же программисты используют стек для передачи в подпрограммы параметров – значений. Длина стека в 28 байтов, скорее всего, не будет ограничивать программиста. При необходимости программист может изменить значение указателя стека.Распределение оперативной памяти микроконтроллера с диспетчером процессов показано в таблице 5.4.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6363
Авторов
на СтудИзбе
310
Средний доход
с одного платного файла
Обучение Подробнее