Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Микроконтроллеры в системах управления. Лабораторный практикум

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
Этап трансляции проекта в hex-код с устранением ошибок будет рассмотрен в ходе выполнения рабочего задания работы №4.
В зависимости от выбора языка состав проекта отличается,
но принципы и этапы работы сохраняются.
Что касается проверки работоспособности программы, то существует три основных метода:
симуляция; эмуляция и отладка; программирование микроконтроллера и проверка его
в реальной схеме.
Первый из этих методов, симуляция5, является полностью программным. Специальное программное обеспечение моде­лирует деятельность микроконтроллера и показывает, что про­исходит внутри него во время выполнения программы, в частности, как изменяется состояние его регистров, ячеек памяти и проч. Можно также вручную симулировать измене­ние входных сигналов (изменяя, например, содержимое реги­стра PinD), а также памяти и регистров ввода/вывода. С помо­щью этого метода можно легко убедиться в работоспособности (или, напротив, в неработоспособности) ключевых идей, ле­жащих в основе программы. С другой стороны, невозможно проверить реакцию программы на некоторые реальные воздей­ствия, такие как дребезг контактов. Симулятор микроконтрол­леров AVR входит в состав среды разработки AVR Studio.
5 Согласно Википедии, симуляция (калька c англ. simulation, от
лат. simulatio — видимость, притворство) — имитация какого-
либо физического процесса при помощи искусственной (напр., ме­ханической или компьютерной) системы. В вычислительной мате­матике используется перевод "математическое моделирование".
21
6
Эмуляция
6
позволяет получить гораздо больше информа-
ции о реальном функционировании программы и может быть намного полезнее при отыскании ошибок в программе. При эмуляции к компьютеру подключается зонд (probe) с разъемом, соответствующим конкретной модели AVR. Под управлением программы эмулятора зонд начинает функционировать точно так же, как и реальный микроконтроллер, выполняющий раз­работанную программу. Работа устройства под управлением эмулятора ничем не отличается от работы под управлением реального микроконтроллера, однако, используя эмулятор, возможно замедлить выполнение программы, а также про­смотреть состояние внутренних узлов микроконтроллера (ре­гистров и т.п.). При использовании этого метода проверяются работоспособность программы, корректность разводки печат­ной платы, а также их совместная работа. В частности, при разработке программного обеспечения может использоваться внутрисхемная отладка с использованием интерфейса JTAG. В этом случае к исследуемому устройству подключается специ­альный отладчик, с помощью которого можно просматривать внутреннее состояние микроконтроллера как в реальном вре­мени, так и в пошаговом режиме.
Естественно, симуляция и эмуляция обеспечивают условия отладки программы, достаточно комфортные для пользователя. Однако, эти этапы не отменяют тщательное тестирование функционирования реального микроконтроллера после загруз­ки («прошивки») разработанной программы, включая случаи сбоев, некорректного сочетания сигналов на входах и т.п.
Эмуляция (англ. emulation) в вычислительной технике — ком-
плекс программных, аппаратных средств или их сочетание, предназначен­ное для копирования (или эмулирования) функций одной вычислительной системы (гостя) на другой, отличной от первой, вычислительной системе (хосте) таким образом, чтобы эмулированное поведение максимально точ- но соответствовало поведению конкретной оригинальной системы (гостя), в отличие от разных форм компьютерного моделирования (см. Симуляция), в которых имитируется поведение некоторой абстрактной модели.
22
Лабораторная работа № 1
ФОРМИРОВАНИЕ АЛГОРИТМОВ УПРАВЛЕНИЯ
МИКРОКОНТРОЛЛЕРНОЙ СИСТЕМОЙ
Цель работы – изучение возможностей управления процес­сами через порты ввода-вывода однокристального микро­контроллера.
Теоретические сведения
Основные сведения о микроконтроллере ATmega16, его памяти и регистрах, среде Algorithm Builder приведены выше в соответствующих разделах пособия.
Порядок выполнения работы
Предварительное задание
1. Изучите приведенные выше сведения: o об организации цикла лабораторных работ по дисци-
плине;
o о микроконтроллере ATmega16, его регистрах; o о назначении и устройстве лабораторного стенда – по
файлу «Стенд для изучения МК AVR» из того же ката­лога, что и данное пособие;
o о среде Algorithm Builder. В случае надобности используйте файлы учебных матери-
алов и лекции.
2. Подготовьте ответы на следующие контрольные вопросы: o Перечислите основные особенности программ для
управляющих ЭВМ.
o Перечислите основные требования к структуре и соста-
ву управляющей ЭВМ.
3. Изучите рабочее задание и подготовьтесь к его выпол-
нению.
23
Рабочее задание
1. Создайте в папке User каталог своей учебной группы,
в нем каталог своей бригады (ВНИМАНИЕ! Имя каталога и весь путь к нему НЕ должны содержать знаков КИРИЛЛИ­ЦЫ!). Создайте в нем папку LR1.
2. Составьте заготовку отчета в виде файла MS Word с названием и целью работы, сохраните ее под именем LR1 в своем каталоге.
3. Запустите AlgorithmBuilder.exe. Программа является од­нозадачной, поэтому, если в окне программы загрузился какой­либо алгоритм, обязательно дайте команду Файл / Закрыть проект.
4. Обратившись к пункту строки меню «?», откройте и прочитайте мануал программы (подробно до стр. 10, далее ознакомительно), в частности, найдите упрощенный способ ввода символа « –> ». Особое внимание обратите также на раздел «Редактирование алгоритма».
5. Наберите «Пример простого алгоритма», приведенный в мануале (без комментариев, векторы переходов – после полно­го ввода алгоритма, способ ввода см. в мануале, с. 3).
6. Задайте тип МК, выбрав ATmega16. Запустите симуля­цию.
7. Для наблюдения процессов во введенном алгоритме от­кройте окна “Processor”, “Port B” и “Working registers”.
8. Опробуйте работу кнопок F5-F9, изменяя положение и количество точек останова. Учтите, что полное отсутствие то­чек останова не позволит вам наблюдать отработку алгоритма. В этом случае придется воспользоваться кнопкой Стоп или
Reset.
9. Многократно проходя циклы (F9) и пользуясь коммен­тариями к примеру из мануала, составьте письменное изложе­ние алгоритма управления, определив цель каждого этапа. Об­ратите внимание, что основная часть любого алгоритма управ­ления объектом должна быть цикличной, дабы непрерывно по­вторять стадии получения информации от датчиков и других
24
устройств объекта, обработки и направления результатов в исполнительные механизмы.
10. Многократно проходя циклы, проследите изменение
значений разрядов слова состояния процессора, объясните ре­зультаты.
11. Проследите изменение значений r17 и порта B, объяс-
ните результаты.
12. Снимая флажки DDR, определите их влияние на по­ступление сигналов на выходы порта (Pin), объясните резуль­таты. Установите флажки Pin в тех разрядах, где флажки DDR сняты, пронаблюдайте за ними, многократно проходя циклы. Восстановите флажки DDR.
13. Проследите начальную установку стека, с помощью встроенного редактора (наведя курсор) определите десятичное значение загруженного числа. Объясните необходимость двух команд для загрузки стека. Объясните изменение значения ука­зателя стека SP при входе в подпрограмму и выходе из нее.
14. Сохраните в папке своей бригады созданный вами ал­горитм под именем LR1_1.
15. Изучите раздел мануала «Редактирование алгоритма». Переработайте операции загрузки SP и DDRB, удалив проме­жуточный шаг, связанный с регистром R16. Проверьте работу алгоритма. Выполняя его по шагам, пронаблюдайте использо­вание регистра R16 на этапе инициализации.
16. Выполняя алгоритм по шагам (без заходов в подпро­грамму), пронаблюдайте изменение регистра R17 внутри цик­ла. Замените условный переход С = 0 на переход по состоянию R17. Проверьте работу алгоритма.
17. Замените в алгоритме ручную загрузку начального зна­чения SP на инструмент SETTER. Изучите его описание, в окне его настройки определите, как этот инструмент работает. Проверьте функционирование алгоритма. Сохраните его под именем LR1_2.
18. Измените тип МК (ATtiny25 или иной – тип задает преподаватель). Проверьте работу алгоритма. Пронаблюдайте
25
при проходе по шагам без захода в подпрограмму, при каких значениях R17 происходит уход «1» из задействованных раз­рядов порта.
19. Переработайте алгоритм так, чтобы при каждом нажа­тии F9 происходил переход «1» из разряда порта B в следую­щий разряд без ухода в состояния, не отображаемые в задей­ствованных разрядах порта. Проверьте работу алгоритма. Со­храните его под именем LR1_3.
20. Переработайте свой алгоритм так, чтобы логические единицы в биты порта B выводились поочередно в обратном порядке – от старшего к младшему разряду. Выполните симу­ляцию и сохраните алгоритм под именем LR1_4.
21. В режиме симуляции установите курсором в окне порта B в качестве начального значения две смежные логические единицы, запишите в алгоритме соответствующее шестнадца­теричное значение для R17 (в начале и в цикле), пронаблюдай­те перемещение единиц в порте, обратите внимание на их пе­реход с одного края разрядной сетки на другой.
Доработайте алгоритм так, чтобы переход происходил че-
рез состояние 10…01 (например, 000011-100001-110000). Для этого проанализируйте алгоритм и определите необходимое количество условных переходов и соответствующие значения R17. Переработав алгоритм, выполните симуляцию, проверьте результат и сохраните алгоритм под именем LR1_5.
22. Составьте отчет по перечисленным выше пунктам, включая скриншоты алгоритмов и экранов эмуляции. Приве­дите в пунктах отчета полученные навыки составления алго­ритмов и навыки пользования программой, запишите отчет в файл под именем LR1 в той же папке, что и алгоритмы.
23. Покажите результаты преподавателю, ответьте на его вопросы.
Итоговые вопросы
1. Опишите состав и основные возможности среды Algo­rithm Builder.
26
2. Каково быстродействие исследованных вами МК?
3. Опишите состав РСП и назначение его разрядов.
4. Опишите организацию портов МК AVR.
5. Опишите конфигурирование портов и управление
данными.
6. Представьте краткое содержание каждого проработан-
ного вами алгоритма.
7. Объясните назначение указателя стека и необходи-
мость задания его начального значения.
8. Объясните, как изменяются в ходе эмуляции разряды
РСП и значение SP и как используются эти изменения в про­грамме.
9. Объясните механизмы действия макрооператоров и
инструмента SETTER.
10. Перечислите полученные навыки составления алго-
ритмов и навыки пользования средой Algorithm Builder.
Лабораторная работа № 2
ФОРМИРОВАНИЕ АЛГОРИТМОВ УПРАВЛЕНИЯ
В РЕАЛЬНОМ ВРЕМЕНИ
Цель работы – изучить возможности управления процес-
сами в реальном времени.
Теоретические сведения
Система управления РТК – это обычно многопроцессорная
система, в состав которой входят ЭВМ и микропроцессорные устройства (МПУ) с целевыми функциями. Эти однокристаль­ные МПУ в составе собственно микропроцессора, устройств хранения информации и средств связи с объектами, называют­ся микроконтроллерами (МК). В общем случае элементы объ­екта управления принимают из микроконтроллера сигналы управления в цифровом и аналоговом виде и формируют для
27
передачи в микроконтроллер сигналы состояния в цифровом и аналоговом виде.
Исследуем систему управления исполнительного уровня,
на котором с помощью МК выполняется непосредственное управление приводами некоторого исполнительного механиз­ма. В данной работе используется шаговый двигатель, соответ­ственно из контура управления исключаются датчики положе­ния и скорости.
Скорость и направление вращения ШД определяются по­рядком подачи в его обмотки импульсов тока и частотой этих импульсов. Порядок подачи (см. схему стенда формируется программно за счет коммутации обмоток, а частота переклю­чения – уставками управляющего таймера.
В целом интерфейс микроконтроллера с реальным време­нем, а также с различными частотно-импульсными процессами представляет собой один из основных аспектов процесса управления объектами. При этом зачастую существенно, чтобы такие взаимодействия происходили, не нарушая хода основной технологической программы, а просто обеспечивая ввод и вы­вод необходимых данных. Такой интерфейс и выполняют тай­меры.
Микроконтроллеры AVR семейств Tiny и Mega имеют в своем составе от одного до нескольких таймеров/счетчиков общего назначения (плюс сторожевой таймер для предотвра­щения зацикливания программы), например модель ATmega256x включает 2 восьмиразрядных и 4 16-битных тай­мера.
Функциональные возможности таймеров/счетчиков поз­воляют микроконтроллеру решать такие задачи, как:
• отсчет равных интервалов времени заданной длительно-
сти, повтор алгоритма управления по истечении каждого тако­го временного интервала; обычно эту функцию называют фор­мированием меток реального времени.
28
• измерение длительности сигнала заданного логического
уровня на линии ввода МК;
• подсчет числа импульсов внешнего сигнала на заданном
временном интервале;
• формирование на линии вывода МК сигнала заданного
логического уровня с программируемой задержкой по отноше­нию к изменению сигнала на линии ввода;
• формирование на линии вывода МК импульсного сигна-
ла с программируемой частотой и программируемым коэффи­циентом заполнения;
и даже контроль за изменением состояния линии ввода
МК.
В данной работе будет изучаться и исследоваться 16-битный таймер Т1. Рассмотрим его подробнее. Структурная схема Т1 приведена на рис. 3. Состав регистров управления, состояния и данных этого таймера приведен выше (см. табл. 2), цветовая за­ливка узлов на схеме соответствует заливке регистров в таблице.
Рассмотрим реализацию основных режимов работы тай­мера, начиная со счетного режима.
Основным элементом любого таймера является счетный регистр. Счетный регистр таймера/счетчика Т1 представляет собой суммирующий (в режиме ШИМ – как суммирующий/вы­читающий) 16-разрядный счетчик с доступом по чтению и запи­си. Адресно TCNT1 размещен в двух регистрах TCNT1H:TCNT1L. После подачи напряжения питания в реги­стре TCNT1 находится нулевое значение. При его переполне­нии устанавливается флаг TOV1 регистра событий TIFR (см. ниже) и счет начинается с нуля, а также запрос на прерывание (при наличии соответствующих разрешений – см. ниже).
При записи в счетный регистр во время работы таймера счет будет продолжен от записанного значения – по следу­ющему за операцией записи импульсу тактового сигнала тай­мера/счетчика. Чтобы при обращении ЦПУ микроконтроллера к этим регистрам запись или чтение обоих байтов содержимого
29
Регистр флагов
(TIFR)
Регистр маски
(TIMSK)
Источники флагов
Рис. 3. Структурная схема таймера Т1
30
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]