Краткие теоретические сведения и методические указания

ПРОГРАММИРОВАНИЕ МИКРОКОНТРОЛЛЕРНЫХ СИСТЕМ.

Методические указания

к выполнению лабораторных работ

Санкт-Петербург

Составитель:доцент кафедры ВС и С Иванов Н. М.

Предназначена для выполнения лабораторной работы по дисциплине «Микропроцессорные системы» студентами дневного отделения специальности 2201 «Вычислительные машины, комплексы, системы и сети».

Подготовлена к публикации по рекомендации методической комиссии ПФ СП ГУАП.

Рецензент: доцент каф. «Вычислительные системы и сети» СП ГУАП, к.т.н. Прохоров В.М.

© Санкт – Петербургский

Государственный Университет

Аэрокосмического Приборостроения, 2006


Лабораторная работа № 1. Система команд МК PIC16С877.

Цель работы: изучить систему команд микроконтроллера PIC16С877; получить навыки программирования на языке Ассемблера микроконтроллера.

Краткие теоретические сведения и методические указания.

PIC16CXX - это 8-pазpядные микpоконтpоллеpы с RISC аpхитектуpой, пpоизводимые фиpмой Microchip Technology. Это семейство микpоконтpоллеpов отличается низкой ценой, низким энеpгопотpеблением и высокой скоpостью. Микpоконтpоллеpы имеют встpоенное ЭППЗУ пpогpаммы, ОЗУ данных и выпускаются в 18 и 28 выводных коpпусах.
PIC OTP - это однокpатно пpогpаммиpуемые пользователем контpоллеpы, пpедназначенные для полностью оттестиpованных и законченных изделий, в котоpых не будет пpоисходить дальнейших изменений кода. Эти контpоллеpы выпускаются в дешевых пластиковых коpпусах с пpедваpительно заданным типом внешнего генеpатоpа - кваpцевым или RC.
Для отладки пpогpамм и макетиpования выпускается ваpиант контpоллеpов с ультpафиолетовым стиpанием. Эти контpоллеpы допускают большое число циклов записи/стиpания и имеют очень малое вpемя стиpания - обычно 1-2 минуты. Однако цена таких контpоллеpов существенно выше, чем однокpатно пpогpаммиpуемых, поэтому их невыгодно устанавливать в сеpийную пpодукцию.

Для изделий, пpогpамма котоpых может меняться, либо содеpжит какие-либо пеpеменные части, таблицы, паpаметpы калибpовки, ключи и т.д., выпускается электpически стиpаемый и пеpепpогpаммиpуемый контpоллеp PIC16F84. Он также содеpжит электpически пеpепpогpаммиpуемое ПЗУ даных.

Основным назначением микроконтроллеров PIC16/17, как следует из аббревиатуры PIC (Peripheral Interface Controller), является выполнение интерфейсных функций. Этим объясняются особенности их архитектуры:

RISC-система команд, характеризующаяся малым набором одноадресных инструкций (33, 35 или 55), каждая из которых имеет длину в одно слово (12, 14 или 16 бит) и большинство выполняется за один машинный цикл. В системе команд отсутствуют сложные арифметические команды (умножение, деление), предельно сокращен набор условных переходов;

высокая скорость выполнения команд: при тактовой частоте 20 МГц время машинного цикла составляет 200 нс (быстродействие равно 5 млн.операций/сек);

наличие мощных драйверов (до 24 мА) на линиях портов ввода/вывода;

низкая потребляемая мощность;

ориентация на ценовую нишу предельно низкой стоимости, определяющая использование дешевых корпусов с малым количеством выводов (8, 14, 18, 28), отказ от внешних шин адреса и данных (кроме PIC17C4X), использование упрощенного механизма прерываний и аппаратного (программно недоступного) стека.

Анализ архитектуры микроконтроллеров PIC с точки зрения их программирования и отладки систем позволяет сделать следующие выводы:

RISC-система команд обеспечивает высокую скорость выполнения инструкций, но вызывает затруднения и снижение производительности при программировании нетривиальных алгоритмов. Поскольку все инструкции в системе команд являются одноадресными, загрузка константы в любой из регистров требует двух инструкций. Вначале нужно загрузить константу в рабочий регистр W, а затем переслать его содержимое в нужную ячейку памяти данных:

movlw 12h

movwf REG

Аналогично, все бинарные арифметико-логические операции приходится выполнять с привлечением рабочего регистра W.

Высокое быстродействие в значительной степени достигается за счет использования конвейера команд. Инструкции ветвления, изменяющие программный счетчик (безусловный переход, вычисляемый переход), не используют инструкцию из очереди, поэтому выполняются за два машинных цикла и снижают темп выполнения программы. Кроме того, сам анализ условий в архитектуре PIC требует выполнения “лишних” команд.

Наличие одного вектора прерываний, отсутствие развитого механизма обработки запросов по приоритетам и вложенных прерываний затрудняют решение сколько-нибудь сложных задач управления. При приходе запроса от любого из источников выполняется переход на процедуру обработки по единственному вектору. В процедуре приходится по флагам определять источник, причем условия ветвления, как указывалось выше, анализируются сложно, и все это ухудшает время реакции. После обработки прерывания нужно самостоятельно очистить флаг запроса. Из-за отсутствия вложенных прерываний возможно длительное ожидание обработки запросом от источника с более высоким приоритетом.

Аппаратный стек глубиной 2 или 8 слов не имеет признака переполнения и ограничивает вложенность процедур. За отсутствием его переполнения программист должен следить самостоятельно.

Память данных состоит из банков, для определения текущего банка используются биты регистров STATUS (для PIC16) или BSR (для PIC17). На этапе трансляции принадлежность указанного регистра текущему активному банку не может быть проверена, для этого требуется моделирование хода выполнения программы.

Память программ разбита на страницы размером 2К слов. Для перехода на нужный адрес по командам CALL и GOTO должны быть правильно установлены биты выбора текущей страницы в регистре PCLATCH. На этапе трансляции невозможно проверить правильность передачи управления во время выполнения, для этого также требуется моделирование выполнения программы.

Ограниченность ресурсов микроконтроллеров PIC делает проблематичным их программирование на языках высокого уровня.

Указанные особенности архитектуры микроконтроллеров PIC оправданы чрезвычайно низкой ценой, поэтому эти изделия (особенно семейства PIC16) весьма популярны. В настоящее время их используют даже вместо логических ИС средней степени интеграции. Но реализовать все преимущества этих микроконтроллеров можно только при наличии средств программирования и отладки, адекватных по цене и функциональным возможностям решаемым задачам. Важнейшие требования к инструментальным средствам для микроконтроллеров, ориентированных на выполнение функций ввода-вывода, можно сформулировать следующим образом:

основным назначением этих средств является поддержка программирования на языке ассемблер и перенесение программы на плату системы управления;

мощные драйверы портов ввода/вывода, состояние которых однозначно описывается значениями в регистрах управления, упрощают функцию замещения электрофизических параметров прототипной БИС, поэтому эти порты можно имитировать с помощью БИС программируемой логики;

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: