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

2341

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

Рис. 1. Структурная схема микроконтроллеров семейства

Mega

11

регистр W или А (он же аккумулятор). Благодаря этому любой РОН может использоваться во всех командах и как операндисточник и как операнд-приемник. Следует учесть, что команды, выполняющие действия с константой, могут обращаться только ко второй половине регистров (R16...R31) неполная ортогональность РОН.2 Кроме того, невозможна непосредственная пересылка констант в порты и другие регистры устройств. Эта операция выполняется через какой-либо РОН. Обычно в качестве такого «аккумулятора» используют R16 или R24, поэтому пользоваться ими для других целей не следует 3.

Последние шесть регистров общего назначения (R26…R31) используются попарно при косвенной адресации памяти данных в качестве указателей. Так образуется три 16разрядных регистра (регистры X, Y и Z).

Регистры ввода/вывода

Регистры ввода/вывода располагаются в так называемом пространстве ввода/вывода размером 64 байта (в старших моделях 100 байт). Разрядность каждого регистра – 8. Все РВВ можно разделить на две группы: служебные регистры микроконтроллера в целом и регистры, относящиеся к периферийным устройствам (в т.ч. порты ввода/вывода – см. ниже). Регистры периферии, в свою очередь, функционально различаются. Это регистры данных (8- и 16-разрядные), регистры состояния (флагов), регистры управления (настройки, режимов). В РС и РУ каждый бит закреплен за отдельной функцией и имеет собственное ассемблерное имя. Пример совокупности РВВ – регистры одного из таймеров AVR (табл. 2).

2В описании архитектуры вычислительных систем этим термином обозначают независимость или единообразность в пользовании.

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

12

 

 

 

 

 

 

 

Таблица 2

 

 

 

 

 

 

 

 

 

Груп

Название

 

Функция

 

Содержит

 

па

 

 

 

 

 

 

 

 

TCNT1

 

Счетный регистр таймера/счетчика 1

 

текущий код

 

Регистры

данных

 

 

 

 

(2 байта)

 

 

 

 

 

(2 байта)

 

 

 

ICR1

 

Регистр захвата таймера/счетчика 1

 

защелкнутый

 

 

 

 

 

 

 

код (2 байта)

 

 

 

OCR1A

 

Регистр совпадения выхода A

 

заданный код

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

OCR1B

 

Регистр совпадения выхода B

 

заданный код

 

 

 

 

 

 

 

(2 байта)

 

Ре-

TIFR

 

Регистр флагов событий таймеров /

 

биты прошед-

 

гистр

 

 

счетчиков

 

ших событий

 

 

 

 

 

сост-я

 

 

 

 

 

 

 

 

TCCR1A

 

Регистр управления А таймером/счет-

 

биты управле-

 

Регистры

управления

 

 

чиком 1

 

ния

 

TCCR1B

 

Регистр управления B таймером/счет-

 

биты управле-

 

 

 

 

 

чиком 1

 

ния

 

 

 

 

 

 

 

 

 

TIMSK

 

Регистр маски прерываний от таймеров

 

биты маски

 

 

 

 

 

/ счетчиков

 

 

 

 

 

 

 

 

 

 

 

 

SREG

 

Регистр состояния процессора – флаг

 

бит маски

 

 

 

 

 

разрешения прерываний I

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Команды, использующие в качестве операндов регистры ввода/вывода, могут использовать только первую половину регистров ввода/вывода, т.е. регистры с младшими адресами в пространстве РВВ.

Порты ввода/вывода

Как и любые другие микроконтроллеры, микроконтроллеры AVR имеют узлы ввода/вывода дискретных данных – порты. Внешне, с точки зрения пользователя, каждый порт состоит из определенного числа выводов (обычно из восьми, но существуют и «неполные» порты), через которые МК может принимать или передавать двоичные сигналы. Задание направления передачи данных через каждую линию порта может быть произведено программно в любой момент времени.

13

Именно количество доступных портов, а точнее, количество линий ввода/вывода, определяет, в первую очередь, выбор конкретной модели МК. Во всех микроконтроллерах семейства большинство контактов ввода/вывода имеет дополнительные функции, ибо эти выводы используются также теми или иными периферийными модулями микроконтроллера (например АЦП, таймерами и др.).

Основными характеристиками подсистемы ввода/вывода дискретных данных МК AVR являются:

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

наличие входных цепочек с триггером Шмитта на всех выводах;

возможность подключения ко всем входам внутренних подтягивающих резисторов (сопротивление резисторов состав-

ляет 35...120 кОм);

нагрузочная способность каждого выхода любого порта (в отличие от МК многих других семейств), позволяющая непосредственно управлять светодиодными индикаторами (до

20 мА).

Работу с портами программа пользователя ведет путем обращения к входящим в порт регистрам ввода/вывода. Под каждый порт в адресном пространстве ввода/вывода зарезервировано по 3 адреса. По этим адресам размещаются: регистр данных порта PORTx, регистр направления данных DDRx (Data Direction Register) и ключи («квазирегистр») ввода данных с выводов порта PINx (рис. 2). Действительные названия регистров (и их разрядов) получаются подстановкой названия порта вместо символа «х», соответственно для порта А регистры называются PORTA, DDRA, PINA, для порта В – PORTB. DDRB, PINB и т.д. Для обращения к отдельным разрядам этих регистров служит номер разряда, добавляемый к имени регистра через точку, например, PINB.4, DDRA.0 и т.д. При сбросе МК все выводы портов устанавливаются в третье (Z-) состояние, регистры DDRx и PORTx очищаются.

14

 

 

 

 

 

 

 

Ввод/вывод

PORTx Т

 

 

 

 

 

 

данных

Т

Т

Т

Т

Т

Т

Т

 

 

 

 

 

 

 

Ввод/вывод

T

T

T

T

T

T

T

T коммутации

DDRx

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ввод в ЦП

 

 

 

 

 

 

 

внешних

 

 

 

 

 

 

 

сигналов

PINx

Шина данных

Интерфейс

Выводы микросхемы альтернатив-

ной функции

Рис. 2. Структура трехадресного порта с АФ

Как сказано выше, «псевдорегистры» PINx на самом деле регистрами не являются. По их адресам осуществляется доступ МК к физическим значениям сигналов на выводах порта. Соответственно, они доступны только для чтения. Если разрядность порта менее восьми, то для обмена данными с портом используется соответствующее число младших разрядов регистров. «Отсутствующие» старшие разряды доступны для чтения (и только), но всегда содержат «0».

Таким образом, для записи в порт следует загружать нужное значение (0 или 1) в соответствующий разряд регистра PORTx. При чтении этого регистра происходит считывание данных, занесенных туда ранее, независимо от того, выводятся ли эти данные на соответствующие выводы МК.

Направление передачи данных в порте определяется состоянием флагов регистра передачи данных DDRx (см. рис. 2). Если n-ный разряд этого регистра установлен в «1», то на PINxn передается состояние разряда PORTxn и соответствующий n-й вывод порта является выходом. Если же разряд DDRxn этого регистра сброшен в «0», соответствующий вывод порта является входом. Таким образом, название Data Direction Register означает только способность разрядов этого регистра

15

подключать PINxn к PORTxn или не подключать. Стóит напомнить, что сами регистры DDRx доступны как для чтения, так и для записи.

При чтении по адресу выводов порта PINx происходит считывание логических уровней сигналов, присутствующих на выводах порта, независимо от DDRx.

Помимо задания направления передачи данных порты имеют возможность подключения/отключения внутреннего подтягивающего резистора (pull-up resistor). Управление подтягивающим резистором осуществляется с помощью регистра данных порта PORTx. Если разряд Рхn регистра PORTx установлен в «1», а соответствующий вывод порта является входом, между этим выводом и проводом питания (+ 5 В) подключается подтягивающий резистор номиналом 35...120 кОм. Чтобы отключить подтягивающий резистор, необходимо либо сбросить соответствующий разряд регистра PORTx, либо сделать вывод порта выходом. Отключение всех резисторов от входов всех портов МК возможно также путем занесения логической единицы в разряд PUD регистра управления МК

MCUCR.

Подробно правила управления такими периферийными устройствами, как порты и таймер, рассмотрены в тексте указаний к конкретным лабораторным работами ниже.

СРЕДА РАЗРАБОТКИ УПРАВЛЯЮЩИХ АЛГОРИТМОВ

Разработка управляющих алгоритмов для однокристальных микроконтроллеров выполняется обычно специалистами той предметной области, которая автоматизируется, а не программистами. Поэтому все изготовители семейств МК разрабатывают различные программы, делающие программирование МК более доступным. В этой работе принимают участие и сторонние разработчики. В частности, в России разработана графическая среда Algorithm Builder для разработки алгоритмического обеспечения к микроконтроллерам с архитектурой AVR

16

фирмы ATMEL (графический макроассемблер). Авторами программы Algorithm Builder является группа отечественных программистов под руководством Геннадия Леонидовича Громова из Нижнего Новгорода.

Среда Algorithm Builder (AB) предназначена для производства полного цикла разработки, начиная от ввода алгоритма, включая процесс отладки и заканчивая программированием кристалла. Разработка программы может выполняться как на уровне чистого ассемблера AVR, так и на макроуровне, включая возможность для пользователя создавать собственные маерооператоры. В Интернете отмечается, что целевая аудитория данной среды – люди, начинающие осваивать микроконтроллеры, это подтверждено и опытом использования Algorithm Builder в учебном процессе кафедры.

В отличие от классического ассемблера программа вводится в виде алгоритма с древовидными ветвлениями и отображается на плоскости, в двух измерениях. Сеть условных и безусловных переходов отображается графически, в удобной векторной форме, логическая структура программы становится наглядной. В то же время возможны и переходы по именованным меткам.

Среда объединяет в себе графический редактор, компилятор алгоритма, симулятор микроконтроллера, внутрисхемный программатор. Данное ПО распространяется свободно. Папка с установленной программой может копироваться на другие носители и работать портативно. В состав среды входит и manual

– подробное руководство по использованию.

Следует учесть, что среда является однозадачной, открытие нескольких проектов в одном экземпляре редактора невозможно (хотя возможно создание иерархической системы проектов), однако можно запустить несколько экземпляров Algorithm Builder одновременно и при необходимости переносить фрагменты работы из одного проекта в другой через буфер ОС

Windows.

17

Algorithm Builder обеспечивает отладку на кристалле (On Chip debug), которая позволяет наблюдать содержимое реального кристалла в заданной точке останова. При этом для связи микроконтроллера с компьютером используется только один вывод, причем по выбору пользователя. Мониторная отладка может быть применена к любому типу кристалла, имеющего SRAM. В данном цикле работ Algorithm Builder для работы с реальным кристаллом не используется, загрузка и on chip debug будут проводиться с помощью среды программирования

AVR (Atmel) Studio.

Для ввода значений в память и регистры МК и наблюдения хода выполнения алгоритмов и программ можно использовать данные в различных системах счисления. Приведем здесь обозначения чисел в различных системах – в разных источниках и средах они выглядят следующим образом (табл. 3).

 

 

 

Таблица 3

 

 

 

 

Система

Сокращенное

Префикс4

Префикс

счисления

обозначение

в АВ

в Си

Двоичная

Bin – от слова

#b

0b

 

Binary

 

 

Десятичная

Dec – от слова

без пре-

без пре-

 

Decimal

фикса

фикса

Шестнадцате-

Hex – от слова

$

0x

ричная

Hexadecimal

 

 

Например, десятичное число 25 в нотации АВ выглядит как 25=$19=#b00011001, а в нотации, используемой в Си, как 25=0x19=0b00011001. Для перевода полезно использовать входящий в Windows Калькулятор в режиме «Программист».

СРЕДА РАЗРАБОТКИ И ОТЛАДКИ УПРАВЛЯЮЩИХ ПРОГРАММ

На этапе создания программ для управления МК семейства AVR в основном используется AVR Studio – профессиональная

4 Префикс – сочетание символов перед значением числа.

18

интегрированная среда разработки (Integrated Development Environment – IDE), созданная фирмой Atmel для сопровождения своей продукции. Инсталляционный пакет этой инструментальной программы можно свободно скачать с сайта фирмы (ныне microchip.com – фирмы, поглотившей Atmel), а также множества дружественных сайтов. AVR Studio предназначена для написания программ в среде Windows, их отладки, трансляции и записи в память микроконтроллера (с помощью подключаемых к компьютеру внешних устройств). Пакет включает в себя специализированный текстовый редактор для написания программ, мощный программный отладчик, а также допускает подключение дополнительных модулей [3]. В частности, версия 4 для использования с языком Си требует установки приложения WinAVR [17], а версии 5 и последующие содержат необходимые средства встроенно.

Познакомимся подробнее с этим инструментом, позволяющим работать как на Ассемблере (Atmel AVR Assembler – Asm), так и на языке Си. Как и Algorithm Builder, программная среда AVR Studio работает не просто с программами, а с проектами. Для каждого проекта должен быть отведен свой отдельный каталог на жестком диске. В AVR Studio одновременно может быть загружен только один проект. При загрузке нового проекта предыдущий проект автоматически выгружается (при необходимости работать с несколькими проектами можно запустить несколько экземпляров среды AVR Studio). Проект содержит всю информацию о разрабатываемой программе и применяемом микроконтроллере.

Работа с проектом состоит из следующих фаз:

*инициализация проекта;

*подготовка алгоритма программы (блок-схемы);

*написание и редактирование программы на языке ассемблера AVR в текстовом редакторе AVR Studio;

19

*трансляция проекта в hex-код ↔ устранение ошибок;

*проверка работоспособности программы (путем симуля-

ции, эмуляции) и отладка; * программирование микроконтроллера и проверка его

в реальной схеме.

Инициализация проекта состоит в запуске программы AVRStudio.exe, выборе в соответствующих диалоговых окнах варианта «создать новый проект – открыть существующий», а затем, если проект новый, то в выборе:

типа проекта:

-проект на Ассемблере (Atmel AVR Assembler);

-проект на языке Си (AVR GCC);

имени проекта, его главного программного файла и его местонахождения;

отладочной платформы и модели микроконтроллера.

Встроенный текстовый редактор программы AVR Studio поддерживает все необходимые сервисные функции:

-цветовое выделение синтаксиса для улучшения читабельности текста, как в Visual Studio;

-выделение текстовых фрагментов;

-вырезание с помещением в буфер Windows;

-копирование;

-вставку;

-перетаскивание мышью;

-поиск и замену и многое другое.

Для управления всеми этими возможностями используется стандартный интерфейс, известный по многим текстовым ре-

дакторам, в частности, по Visual Studio, Microsoft Word. Наби-

раемый тест программы следует периодически записывать на диск при помощи команды «Save» меню «File» или при помощи соответствующей кнопки на панели инструментов.

20

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