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

2341

.pdf
Скачиваний:
2
Добавлен:
15.11.2022
Размер:
1.43 Mб
Скачать

Этап трансляции проекта в hex-код с устранением ошибок будет рассмотрен в ходе выполнения рабочего задания работы №4.

В зависимости от выбора языка состав проекта отличается, но принципы и этапы работы сохраняются.

Что касается проверки работоспособности программы, то существует три основных метода:

симуляция;

эмуляция и отладка;

программирование микроконтроллера и проверка его в реальной схеме.

Первый из этих методов, симуляция5, является полностью программным. Специальное программное обеспечение моделирует деятельность микроконтроллера и показывает, что происходит внутри него во время выполнения программы, в частности, как изменяется состояние его регистров, ячеек памяти и проч. Можно также вручную симулировать изменение входных сигналов (изменяя, например, содержимое регистра PinD), а также памяти и регистров ввода/вывода. С помощью этого метода можно легко убедиться в работоспособности (или, напротив, в неработоспособности) ключевых идей, лежащих в основе программы. С другой стороны, невозможно проверить реакцию программы на некоторые реальные воздействия, такие как дребезг контактов. Симулятор микроконтроллеров AVR входит в состав среды разработки AVR Studio.

5 Согласно Википедии, симуляция (калька c англ. simulation, от

лат. simulatio — видимость, притворство) — имитация какого-

либо физического процесса при помощи искусственной (напр., механической или компьютерной) системы. В вычислительной математике используется перевод "математическое моделирование".

21

Эмуляция 6 позволяет получить гораздо больше информации о реальном функционировании программы и может быть намного полезнее при отыскании ошибок в программе. При эмуляции к компьютеру подключается зонд (probe) с разъемом, соответствующим конкретной модели AVR. Под управлением программы эмулятора зонд начинает функционировать точно так же, как и реальный микроконтроллер, выполняющий разработанную программу. Работа устройства под управлением эмулятора ничем не отличается от работы под управлением реального микроконтроллера, однако, используя эмулятор, возможно замедлить выполнение программы, а также просмотреть состояние внутренних узлов микроконтроллера (регистров и т.п.). При использовании этого метода проверяются работоспособность программы, корректность разводки печатной платы, а также их совместная работа. В частности, при разработке программного обеспечения может использоваться внутрисхемная отладка с использованием интерфейса JTAG. В этом случае к исследуемому устройству подключается специальный отладчик, с помощью которого можно просматривать внутреннее состояние микроконтроллера как в реальном времени, так и в пошаговом режиме.

Естественно, симуляция и эмуляция обеспечивают условия отладки программы, достаточно комфортные для пользователя. Однако, эти этапы не отменяют тщательное тестирование функционирования реального микроконтроллера после загрузки («прошивки») разработанной программы, включая случаи сбоев, некорректного сочетания сигналов на входах и т.п.

6 Эмуляция (англ. 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. Опишите состав и основные возможности среды Algorithm 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

 

Регистр маски

 

Регистр флагов

 

 

 

 

 

(TIMSK)

 

(TIFR)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Источники

флагов

Рис. 3. Структурная схема таймера Т1

30

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]