Главная страница
Навигация по странице:

  • Практическая работа №31. Тестирование и отладка микропроцессорных систем при программировании. Цель работы

  • Основные теоретические сведения.

  • Mega AVR. Tiny AVR (ATtinyXXX)

  • USB; 168DVD AVR (AT78CXXX)

  • FPGA AVR (AT94K\XAL)

  • Mega и Tiny

  • SPI

  • Программная модель AVR-микроконтроллеров.

  • Х [R27:R26], Y [R29:R28] и Z [R31:R30]

  • Система команд AVR-микроконтроллеров.

  • Методические указания для практических занятий по дисциплине мдк. 02. 01


    Скачать 7.37 Mb.
    НазваниеМетодические указания для практических занятий по дисциплине мдк. 02. 01
    Дата09.09.2022
    Размер7.37 Mb.
    Формат файлаpdf
    Имя файлаMetod_Mikroprocessornye-sistemy_PZ_09.02.01_2020.pdf
    ТипМетодические указания
    #669073
    страница21 из 43
    1   ...   17   18   19   20   21   22   23   24   ...   43
    Оформление отчета о проделанной работе
    Отчет о работе должен содержать:
    1) техническое задание;
    2) анализ задания;
    3) программу получения тестовых значений (с комментариями), распечатку текстовых значений;
    4) оценку количества внешних устройств и их назначение;
    5) схему подключения внешних устройств к МК через порт Р4 и системную шину;
    6) структуру программного обеспечения МПС;
    7) блок-схемы алгоритмов программ;
    8) тексты программ (с комментариями);
    9) результаты тестирования и анализ результатов (методику тестирования, копии экранов с содержимым внешней памяти, анализ допущенных ошибок, анализ несовпадения результатов с вычисленными значениями, анализ несовпадения результатов тестирования схемного АЛУ и
    АЛУ, написанного на языке VHDL).
    Практическая работа №31. Тестирование и отладка микропроцессорных систем при
    программировании.
    Цель работы: изучение назначения и особенностей архитектуры однокристальных микроконтроллеров; ознакомление с архитектурой и программной моделью AVR- микроконтроллеров.
    Основные теоретические сведения.
    Микроконтроллеры составляют наиболее широкий класс микропроцессоров, используемых в приборах, устройствах и системах различного назначения. Микроконтроллер - это специализированный микропроцессор, предназначенный для построения устройств управления техническими объектами и технологическими процессами. Конструктивно микроконтроллер представляет собой большую интегральную схему (БИС), на кристалле которой размещены все составные части типовой вычислительной системы: микропроцессор, память, а также периферийные устройства для реализации дополнительных функций. Так как все элементы микроконтроллера размещены на одном кристалле, их также называют однокристальными
    (однокорпусными) микро-ЭВМ или однокристальными микроконтроллерами. Цель применения микроконтроллеров - сокращение числа компонентов, уменьшение размеров и снижение стоимости приборов (систем).

    167
    Как правило, микроконтроллеры имеют RISC-архитектуру (RISC - Reduced Instruction Set
    Computer - вычислитель с сокращённым набором команд), незначительную ёмкость памяти, физическое и логическое разделение памяти программ и памяти данных, ориентированную на задачи управления систему команд. Таким образом, микроконтроллеры предназначены для решения задач управления, контроля, регулирования и первичной обработки информации и менее эффективны при реализации сложных алгоритмов обработки данных.
    В состав типовой микроконтроллерной системы управления входит микроконтроллер и аппаратура его сопряжения с объектом управления (рис. 1). Микроконтроллер производит периодический опрос сигналов состояния объекта и в соответствии с заложенным алгоритмом генерирует последовательности сигналов управления. Сигналы состояния характеризуют текущие параметры объекта управления. Они формируются путём преобразования выходных сигналов датчиков (Д) с помощью аналого-цифровых преобразователей (АЦП) или формирователей сигналов состояния (ФСС); последние чаще всего выполняют функции гальванической развязки и формирования уровней. Сигналы управления, выработанные микроконтроллером, подвергаются преобразованию с помощью цифро-аналоговых преобразователей (ЦАП) или формирователей сигналов управления (ФСУ), в качестве которых применяются усилители мощности, оптроны, ключи и др. Выходные сигналы ЦАП и ФСУ представляют собой управляющие воздействия, которые поступают на исполнительные устройства (ИУ). В системе может быть также предусмотрены панель управления, устройство индикации и интерфейс для обмена информацией с внешними устройствами. В зависимости от назначения и характеристик конкретной системы некоторые из указанных элементов могут отсутствовать.
    Разрядность выпускаемых микроконтроллеров варьируется от 4 до 64 бит. Наибольшее распространение получили 8-разрядные микроконтроллеры как пригодные для использования в различных приложениях и имеющие низкую стоимость. Характерными представителями таких устройств являются микроконтроллеры семейства AVR фирмы Atmel.
    AVR-микроконтроллеры - это 8-разрядные RISC-микроконтроллеры, отличительными особенностями которых являются наличие FLASH-памяти программ, широкий спектр периферийных устройств, высокая вычислительная производительность, а также доступность средств разработки программного обеспечения.
    В состав семейства AVR в настоящее время входят более 50 различных устройств, которые подразделяются на несколько групп.
    Универсальные AVR-микроконтроллеры входят в группы Tiny AVR и Mega AVR. Tiny
    AVR (ATtinyXXX) - дешёвые устройства с небольшим количеством выводов. Mega AVR
    (ATmegaXXX) - мощные AVR-микроконтроллеры, имеющие наибольшие объёмы памяти и количество выводов, а также максимально полный набор периферийных устройств.
    Специализированные AVR-микроконтроллеры представлены группами LCD AVR
    (ATmega169, ATmega329) - микроконтроллеры для работы с жидкокристаллическими индикаторами; USB AVR (AT43USBX\X, AT76C711) микроконтроллеры с интерфейсом USB;

    168
    DVD AVR (AT78CXXX) - контроллеры CD/DVD-приводов; RF AVR (AT86RFXXX) - микроконтроллеры для построения систем беспроводной связи; Secure AVR (AT90SCXXXAT,
    AT97SCXXXX) - микроконтроллеры для смарт-карт; FPGA AVR (AT94K\XAL) - AVR- микроконтроллеры, выполненные на одном кристалле с ПЛИС.
    Кроме того, ранее выпускалось группа Classic AVR (AT90SXXXX) - устройства, занимающие промежуточное положение между микроконтроллерами групп Mega и Tiny (заменены совместимыми усовершенствованными аналогами группы Mega).
    Архитектура AVR-микроконтроллеров. AVR-микроконтроллеры содержат на кристалле следующие аппаратные средства: 8-разрядное процессорное ядро, память программ, оперативную память данных, энергонезависимую память данных, регистры ввода-вывода, схему прерываний, схему программирования, а также периферийные устройства (рис. 2)
    Процессорное ядро (Central Processing Unit - CPU) AVR-микроконтроллеров содержит арифметико-логическое устройство (АЛУ), регистры общего назначения (РОН), программный счётчик, указатель стека, регистр состояния, регистр команд, дешифратор команд, схему управления выполнением команд.
    В АЛУ выполняются все вычислительные операции. Операции производятся только над содержимым РОН. На выборку содержимого регистров, выполнение операции и запись результата обратно в РОН затрачивается один машинный такт (один период тактовой частоты).
    Регистры общего назначения представляют собой 8-разрядные ячейки памяти с быстрым доступом, непосредственно доступные АЛУ. В AVR-микроконтроллерах имеется 32 РОН.
    Программный счётчик (Program Counter - PC) содержит адрес следующей выполняемой команды.
    Указатель стека (Stack Pointer - SP) служит для хранения адреса вершины стека (см. лабораторную работу № 5).
    Регистр состояния (Status Register - SREG) содержит слово состояния процессора.
    Регистр команд, дешифратор команд и схема управления выполнением команд обеспечивают выборку из памяти программ команды, адрес которой содержится в программном счётчике, её декодирование, определение способа доступа к указанным в команде аргументам и собственно выполнение команды. Для ускорения выполнения команд используется механизм

    169
    конвейеризации, который заключается в том, что во время исполнения текущей команды про- граммный код следующей выбирается из памяти и декодируется.
    Память AVR-микроконтроллеров организована по схеме гарвардского типа - адресные пространства памяти программ и памяти данных разделены.
    Память программ представляет собой перепрограммируемое ПЗУ типа FLASH и выполнена в виде последовательности 16-разрядных ячеек, так как большинство команд AVR- микроконтроллера являются 16-разрядными словами. FLASH-память не обладает возможностью перезаписи отдельных ячеек, поэтому всегда выполняется полная очистка всей памяти программ.
    При этом гарантируется не менее 10 000 циклов перезаписи. Память программ имеет размер от 1 до 128K слов.
    Оперативная память данных представляет собой статическое ОЗУ (SRAM - Static Random-
    Access Memory) и организована как последовательность 8-разрядных ячеек. Оперативная память данных может быть внутренней (до 16K байт) и внешней (до 64К байт).
    Энергонезависимая (nonvolatile) память данных организована как последовательность 8- разрядных ячеек и представляет собой перепрограммируемое ПЗУ с электрическим стиранием
    (РПЗУ-ЭС, или EEPROM - Electrically Erasable Programmable Read-only Memory).
    Энергонезависимая память данных имеет размер до 64К байт.
    Регистры ввода-вывода предназначены для управления процессорным ядром и периферийными устройствами AVR-микроконтроллера.
    Схема прерываний обеспечивает возможность асинхронного прерывания процесса выполнения программы при определённых условиях.
    К периферийным устройствам AVR-микроконтроллера относятся порты ввода-вывода, таймеры, счётчики, сторожевой таймер, аналоговый компаратор, аналого-цифровой преобразователь, универсальный асинхронный (синхронно-асинхронный) приёмопередатчик -
    УАПП (УСАПП), последовательный периферийный интерфейс SPI, интерфейс JTAG и др.
    Набором периферийных устройств определяются функциональные возможности микроконтроллера.
    Обмен информацией между устройствами AVR-микроконтроллера осуществляется посредством внутренней 8-разрядной шины данных.
    Программная модель AVR-микроконтроллеров.
    Программная модель микропроцессора представляет собой совокупность программно доступных ресурсов. В программную модель микроконтроллеров семейства AVR входят РОН, регистры ввода-вывода, память программ, оперативная память данных и энергонезависимая память данных (рис. 3).

    170
    РОН (R0...R31) могут использоваться в программе для хранения данных, адресов, констант и другой информации. Шесть старших регистров объединены попарно и составляют три 16- разрядных регистра Х [R27:R26], Y [R29:R28] и Z [R31:R30] (рис. 4).
    РОН, регистры ввода-вывода и оперативная память данных образуют единое адресное пространство. Адресное пространство - это множество доступных ячеек памяти, различимых по адресам; адресом называется число, однозначно идентифицирующее ячейку памяти (регистр).
    Адреса ячеек памяти традиционно записываются в шестнадцатеричной системе счисления, на что указывает знак $ в обозначении адреса. Адреса в едином адресном пространстве AVR- микроконтроллеров распределяются следующим образом. Младшие 32 адреса ($0000...$001F) соответствуют РОН. Следующие 64 адреса ($0020...$005F) занимают регистры ввода-вывода.
    Внутренняя оперативная память данных у AVR-микроконтроллеров начинается с адреса $0060.
    В память программ, кроме собственно программы, могут быть записаны постоянные данные, которые не изменяются в процессе работы микропроцессорной системы (константы, таблицы линеаризации датчиков и т. п.). Выполнение программы при включении питания или после сброса микроконтроллера начинается с команды, находящейся по адресу $0000 (т. е. в первой ячейке) памяти программ.
    Энергонезависимая память данных предназначена для хранения информации, которая может изменяться непосредственно в процессе работы микропроцессорной системы
    (калибровочные коэффициенты, конфигурационные параметры и т. п.). Энергонезависимая память данных имеет отдельное адресное пространство и может быть считана и записана программным путём.
    Система команд AVR-микроконтроллеров. Система команд (instruction set) микропроцессора представляет собой совокупность выполняемых микропроцессором операций и правила их кодирования в программе. Система команд AVR-микроконтроллеров включает команды (инструкции) арифметических и логических операций, команды ветвления, управляющие последовательностью выполнения программы, команды передачи данных и команды операций с битами. Всего в систему команд входит более 130 инструкций. Младшие модели микроконтроллеров не поддерживают некоторых из них.
    Система команд AVR-микроконтроллеров приведена в Приложении 2.
    Программирование микроконтроллеров. Процесс разработки прикладного ПО устройств на основе однокристальных микроконтроллеров включает следующие этапы (рис. 5):
    - разработки алгоритма и структуры программы;
    - написания исходного текста программы;
    - получения выполняемой программы;
    - тестирования и отладки программы;
    - получения загрузочной программы.

    171
    На этапе разработки алгоритма и структуры программы выбирается метод решения задачи и разрабатывается алгоритм его реализации. Алгоритм - это набор правил или описание последовательности операций для решения определённой задачи или достижения некоторой цели. Графическим изображением алгоритма является схема алгоритма (flowchart), выполняемая в соответствии с ГОСТ 19.701-90 «Единая система программной документации. Схемы алго- ритмов, программ, данных и систем. Условные обозначения и правила выполнения».
    На этапе написания исходного текста программы разработанный алгоритм записывается в виде программы на исходном языке (ассемблере или языке высокого уровня).
    Языком ассемблера называется язык программирования, в котором каждой команде про- цессора или совокупности команд процессора соответствует сокращённая символическая запись
    (мнемоника). Использование символического обозначения команд, а также адресов регистров и ячеек памяти, переменных, констант и других элементов программы существенно облегчает процесс составления программ по сравнению с программированием на уровне машинных кодов.
    Символические обозначения элементов обычно отражают их содержательный смысл. Язык ассемблера обеспечивает возможность гибкого доступа ко всем ресурсам программируемого микропроцессора (микроконтроллера) и позволяет создавать программы, наиболее эффективные как по быстродействию, так и по объёму занимаемой программной памяти. В этой связи программирование на языке ассемблера предполагает знание архитектуры и свойств микропроцессора, т. е. всего того, что входит в понятие «программная модель». Языки ассемблера являются машинно-ориентированными и, следовательно, отличаются для разных типов микропроцессоров. В ряде ассемблеров допускается оформление повторяющейся после- довательности команд как одной макрокоманды (макроса), такие ассемблеры называют
    макроассемблерами.
    Языки высокого уровня (С, Паскаль, Бейсик и др.), как и ассемблер, обеспечивают доступ ко всем ресурсам микроконтроллера, но вместе с тем дают возможность создавать хорошо структурированные программы, снимают с программиста заботу о распределении памяти и содержат большой набор библиотечных функций для выполнения стандартных операций.
    На этапе получения выполняемой программы исходный текст программы с помощью специальных средств (трансляторов, компиляторов, компоновщиков и др.) преобразуется в исполняемый код. Транслятором (translator) называют программу, служащую для перевода

    172
    (трансляции) программ на языке ассемблера в машинный код, «понимаемый» процессором.
    Компилятор (compiler) представляет собой программу, преобразующую в эквивалентный машинный код текст программы на языке высокого уровня. Результатом работы транслятора или компилятора может быть как выполняемый загрузочный модуль, так и объектный модуль
    (программа, команды, переменные и константы которой не «привязаны» к конкретным адресам ячеек памяти). Для построения выполняемой программы из объектных модулей применяется
    компоновщик (редактор связей, linker). В процессе получения выполняемой программы из исходного текста программы устраняются синтаксические ошибки, состоящие в нарушении правил синтаксиса используемого языка программирования.
    На этапе тестирования и отладки программы производится поиск, локализация и устранение в ней логических ошибок. Тестирование служит для обнаружения в программе ошибок и выполняется с использованием некоторого набора тестовых данных. Тестовые данные должны обеспечивать проверку всех ветвей алгоритма. При тестировании программы могут подвергаться проверке также некоторые показатели системы, связанные с программой
    (например, объём кодов и данных). После тестирования программа должна быть подвергнута
    отладке (debug), задачей которой является локализация ошибки, т. е. нахождение места в программе, вызывающего ошибку.
    Тестирование и отладка программы могут привести (и, как правило, приводят) к необходимости возврата к ранним этапам процесса разработки программы для устранения ошибок в постановке задачи, разработке алгоритма, написании исходного текста и т. д. Таким образом, процесс разработки программы, как и весь процесс проектирования, является итерационным.
    На этапе получения загрузочной программы производится «освобождение» программы от лишних фрагментов, использовавшихся для тестирования и отладки. Эти фрагменты увеличивают объём программы и не нужны при нормальном функционировании микропроцессорной системы. Далее полученная загрузочная программа заносится в память микроконтроллера.
    По завершении процесса разработки производится документирование, т. е. составление комплекта документов, необходимых для эксплуатации и сопровождения программы.
    Сопровождение программы (program maintenance) - это процесс внесения изменений, исправления оставшихся ошибок и проведения консультаций по программе, находящейся в эксплуатации. Виды программных документов регламентированы ГОСТ 19.101-77 «Единая система программной документации. Виды программ и программных документов».
    Разработка ПО для встраиваемых микропроцессоров производится на персональном компьютере с использованием специальных программных и аппаратных средств. Такой способ создания ПО носит название кросс-разработки. Совокупность аппаратных и программных средств, применяемых для разработки и отладки ПО, объединяют общим наименованием
    средства поддержки разработки.
    В настоящем практикуме процесс разработки ПО изучается на примере языка ассемблера
    1   ...   17   18   19   20   21   22   23   24   ...   43


    написать администратору сайта