Единое окно доступа к образовательным ресурсам

Изучение архитектуры и основ программирования микроконтроллеров: Методические указания по выполнению лабораторных работ

Голосов: 1

Учебно-методические указания для выполнения лабораторной работы "Изучение архитектуры и основ программирования микроконтроллеров", подготовлены преподавателями факультета электроники Московского государственного института радиотехники, электроники и автоматики. Они предназначены для студентов обучающихся по направлению 654300 и специальностям 072000, 190400, 190700, 200100, 200300, изучающих общие дисциплины по информационным технологиям, а также специализирующимся в области проектирования систем управления, сбора и обработки данных.

Приведенный ниже текст получен путем автоматического извлечения из оригинального PDF-документа и предназначен для предварительного просмотра.
Изображения (картинки, формулы, графики) отсутствуют.
           МИНИСТЕРСТВО ОБРАЗОВАНИЯ
        РОССИЙСКОЙ ФЕДЕРАЦИИ


 МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ
РАДИОТЕХНИКИ, ЭЛЕКТРОНИКИ И АВТОМАТИКИ
       (ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)

            Факультет электроники


                                   Подлежит возврату

                                             №____

             Методические указания
       по выполнению лабораторной работы

         ИЗУЧЕНИЕ АРХИТЕКТУРЫ И
ОСНОВ ПРОГРАММИРОВАНИЯ МИКРОКОНТРОЛЛЕРОВ




          Для студентов специальностей

             072000, 190400, 190700,
                 200100, 200300




                МОСКВА 2003


                             -2-

Составители:   В.И. Индришенок,
               В.В. Кузнецов,
               Е.Ф. Певцов



Редактор       Е.Ф. Певцов


Учебно-методические указания для выполнения лабораторной
работы «Изучение архитектуры и основ программирования мик-
роконтроллеров», подготовлены преподавателями факультета
электроники Московского государственного института радиотех-
ники, электроники и автоматики. Они предназначены для
студентов обучающихся по направлению 654300 и специально-
стям 072000, 190400, 190700, 200100, 200300, изучающих общие
дисциплины по информационным технологиям, а также специа-
лизирующимся в области проектирования систем управления,
сбора и обработки данных.

Печатаются по решению редакционно-издательского совета
Московского государственного института радиотехники,
электроники и автоматики (технического университета).




                   ©    Московский Государственный
                        институт радиотехники,
                        электроники и автоматики
                        (технический университет)

                             2003


                             -3-

                           Введение
     Изобретение микропроцессора считается величайшим собы-
тием XX века. Создатели первого микропроцессора Тед Хофф,
Федерико Феджина и Стен Мейзор работали в компании INTEL,
их имена занесены в национальный зал славы США. Первый
ЧИП микропроцессора 4004 (1971 г.) состоял из 2,3·103 транзи-
сторов, работал с тактовой частотой 750 кГц, выполняя 60 тыс.
операций в секунду, и стоил около 200 долларов. Характеризуя
современные темпы развития микропроцессорной техники, пред-
седатель совета директоров INTEL Гордон Мур высказал сле-
дующую аналогию: «Если бы автомобилестроение эволюциони-
ровало со скоростью полупроводниковой промышленности, то
сегодня "Ролс-Ройс" стоил бы три доллара, мог бы проехать пол-
миллиона километров на одном галлоне бензина, и было бы де-
шевле его выбросить, чем платить за парковку».
     Интенсивное развитие микроконтроллеры (МК) получили в
середине 90-х годов. Это в значительной степени обусловлено
развитием высоких технологий и удешевлением массового про-
изводства СБИС. До этого времени обработка сигналов от пери-
ферийных устройств осуществлялись по идеологии единого об-
рабатывающего центра, связанного общей шиной с другими уст-
ройствами системы (автомобильная электроника в это время тре-
бовала прокладки до 90 кг проводов!). Цена микроконтроллеров
неуклонно снижалась, и стало выгоднее встраивать их в перифе-
рийные схемы и всю необходимую обработку проводить непо-
средственно в этих схемах, минимально загружая центр управле-
ния и выдавая ему только необходимую информацию.
     С удешевлением производства СБИС и ростом их надежно-
сти связано также все большее распространение компьютеров,
позволяющих ускорить процесс обработки информации за счет
специальной архитектуры, главной особенностью которых явля-
ется применение разделенных физически областей памяти для
хранения программ и данных. Такие компьютеры принято назы-
вать еще компьютерами с гарвардской архитектурой, поскольку
их идеология была в свое время разработана Гарвардским уни-
верситетом. Эти устройства принципиально отличаются от ком-


                             -4-

пьютеров, в которых для хранения данных и для хранения про-
грамм используется общая память. По имени университета, где
они впервые были разработаны, их называют компьютеры с
принстонской архитектурой, а по имени ученого, создавшего
теорию их работы – компьютеры с архитектурой Фон-Неймана.
То, что компьютеры Фон-Неймана получили вначале большее
распространение связано, с недостаточной надежностью систем с
параллельной обработкой того времени, поскольку они базирова-
лись на устройствах с малой степенью интеграции на электро-
лампах и дискретных транзисторных схемах.
     По набору команд, используемому микропроцессорами,
принято разделять также компьютеры с сокращенной системой
команд (RISC – Reduced Instruction Set Computers) и компьютеры
с полной системой команд (CISC – Complex Instruction Set Com-
puters).
     В общем случае контроллер или микропроцессорная систе-
ма управляет объектами, используя комбинированные аппаратно-
программные реализации функций управления. Результатом ра-
боты являются данные на магистрали (специальной шине) и мо-
дифицированное содержимое регистров – специальных ячеек па-
мяти данных. Функционально достижение этих результатов мо-
жет быть реализовано программно с помощью микропроцессоров
(МП) или аппаратно с помощью самостоятельно работающих
специальных СБИС, таких как микроконтроллеры (МК), цифро-
вые автоматы, преобразователи данных, синхронизированных с
микропроцессором или привязанных к его сетке работы с помо-
щью системы прерываний.
     Микроконтроллер отличается от микропроцессора тем, что
аппаратные операции, наиболее часто используемые в микропро-
цессорных системах управления, выполняются внутренними мо-
дулями, интегрированными на кристалле вместе с процессорным
ядром. Кроме памяти программ и данных к таким модулям отно-
сятся: таймеры/счетчики, модули АЦП и ЦАП, модули управле-
ния электродвигателями и т.п. Для сегодняшних МК характерна
тенденция к объединению многих функциональных модулей в
одном кристалле.


                             -5-

     Основные элементы архитектуры микроконтроллера
     Как правило, семейства МК имеют единые базовые струк-
туры. В качестве типичного примера семейства МК AVR рас-
смотрим архитектуру МК AT90S8515 (см. рис. 1). С точки зрения
изучения принципов работы и программирования можно выде-
лить следующие основные элементы МК AT90S8515:
     − генератор тактового сигнала (GCK);
     − процессор (CPU);
     − память программ, предназначенная для хранения про-
граммного кода и констант;
     − память данных, в которой сохраняются данные и значе-
ния переменных;
     − набор периферийных устройств (регистры, порты, тай-
мер/счетчик, аналого-цифровой преобразователь и др.) для ввода
и вывода данных, управляющих сигналов и выполнения других
функций.
     Рассмотрим назначение и организацию работы этих эле-
ментов.
     МК семейства AVR – устройства синхронного типа, т.е.
операции, выполняемые МК, привязаны по времени к импульсам
тактового сигнала. Для МК AT90S8515 в качестве генератора
тактового сигнала используется либо внешний генератор (ре-
жим EXT), либо внутренний генератор с внешним кварцевым или
керамическим резонатором (режим XTAL).
     Процессор микроконтроллера выполняет три основные опе-
рации, обеспечивающие выполнение программы:
     1) формирует адрес очередной команды;
     2) выбирает команду из памяти;
     3) организует выполнение команды.
     Основные узлы процессора:
     −    счетчик команд или программный счетчик
     −    (PC); дешифратор (декодер) команд;
     −    арифметико-логическое устройство (ALU);
     −    блок регистров общего назначения РОН (GPR);
     −    регистр состояния МК (SREG);
     −    регистр-указатель стека (SP).


                          РА0 – РА7                            РС0 – РС7


                  Драйверы порта А                            Драйверы порта С


      Регистр данных             Регистр направл     Регистр данных        Регистр направл
          порта А                данных порта А          порта С           данных порта С



                  8-разрядная шина данных                                                XTAL1
                                                     Встроенный
       Счетчик                   Указатель            генератор         Генератор
       команд                      стека
                                                                                         XTAL2
                                                       Сторожевой        Синхронизация
                                                         таймер           и управление
PLASH память                   Аппаратный                                                    reset
  программ                        стек
                                                         Регистр
                                 Регистры              управления
        Регистр                                                                           ALE
                                  общего
        команд
                                назначения               Таймер/
                                     x                   счетчик
       Декодер                       y
       команд                        z                    Блок                           ICP
                                                       прерываний
 Линии команд
                                  АЛУ
                                                        ЭСППЗУ
                                                         данных

                                  Регистр
                                 состояния


     Логика                    Последовательн.            UART
программирования                  SPI канал




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




                 порта В           данных порта В        порта D           данных порта D


                      Драйверы порта В                        Драйверы порта D


                              PB0 – PB7                             PB0 – PB7


                              -7-

      При работе МП под управлением программы реализуется
алгоритмический принцип следования (не рассматриваются мно-
гопроцессорные системы). Программный счетчик является ука-
зателем на подлежащую выполнению команду и содержит адрес
этой команды в памяти программ. Он работает в 3-х режимах:
 1) сброс (при пуске и перезапуске МК очищается PC и выполне-
    ние программы начинается с команды, расположенной в памя-
    ти по нулевому адресу);
 2) инкремент адресов (значение PC увеличивается, указывая на
    команду программы, следующую за выполняемой);
 3) установка PC в соответствии с кодом команды условного или
    безусловного перехода.
      Установку программного счетчика для выбора следующей
команды реализует дешифратор команд (логика программирова-
ния). Дешифратор, также, по коду команды вырабатывает управ-
ляющие сигналы, обеспечивающие её выполнение. Для полного
выполнения командного цикла может требоваться несколько
тактов синхронизации, а некоторые команды выполняются за
несколько командных циклов.
      Арифметико-логическое устройство (Arithmetic Logic Unit)
служит исключительно для выполнения арифметических опера-
ций (сложение, вычитание, логические И и ИЛИ, сравнение,
сдвиг разрядов, установка регистра состояния в соответствии с
результатом операции). Данные, с которыми напрямую работает
АЛУ, содержатся в РОН. Результат операции (кроме операций
сравнения) помещается в РОН и, дополнительно, в регистре со-
стояния МК SREG устанавливаются признаки результата (флаги
нуля, переноса, переполнения и др.).
      Регистры микроконтроллера представляют собой специаль-
ные элементы памяти, предназначенные для: 1) хранения данных
внутри процессора (аккумуляторы, регистр состояния, индексные
регистры и т.д.); 2) организации управления (управление преры-
ваниями, таймерами и т.д.); 3) ввода/вывода данных (регистры
данных последовательных или параллельных портов и т.д.). Для
процессоров с RISC архитектурой характерно, что обращение к
регистрам реализуется через указания их адресов. Адреса регист-


                                    -8-

ров располагаются в адресном пространстве памяти данных, как
это показано на рис. 2, (отображение регистров на память).

Память программ Область регистров          Область      Адресное
                     общего               регистров     пространство
                                            ввода-      данных

                      32 x 8                                $0000




                                          64 x 8            $0020
       Команды




                                                            $0060
                                                      Внутренняя
                                                        память
                                                        SRAM

                                                            $FFFF
                                                      Внешняя
                                                       память



 Рис.2. Распределение адресов в микроконтроллере AT90S8515.

     Блок регистров общего назначения содержит 32 восьмираз-
рядных регистра с шестнадцатиричными адресами $00 - $1F в
пространстве памяти данных. К ним можно обращаться и по име-
нам R0 – R31. Шесть регистров с именами от R24 до R31 могут
образовывать пары для хранения шестнадцатиразрядных слов,
причем регистр с четным номером хранит младший байт, а ре-
гистр с нечетным номером – старший байт. Этим спаренным ре-
гистрам присвоены имена X, Y, Z. Они могут использоваться как
индексные регистры в командах обращения к памяти данных. Ре-
гистр Z может также использоваться для чтения из памяти про-
грамм отдельных байтов, что позволяет хранить в ней таблицы
данных.
     Дополнительно из объема памяти данных может быть выде-
лена специальная область - стек, организованный по принципу


                             -9-

"последний вошел - первый вышел" или Last In First Out (LIFO).
При этом в процессорах с Гарвардской архитектурой операции со
стеком могут производиться одновременно с выполнением дру-
гих действий.
     Для увеличения объема хранения данных к МК может быть
подключена внешняя память. Имеется два варианта подключе-
ния: 1) как к микроконтроллеру; 2) как к устройству вво-
да/вывода.
     Память программ предназначена для хранения кодов ко-
манд программы и констант и представляет собой электрически
перепрограммируемое постоянное запоминающее устройство –
FlashROM (выполненное по специальной полупроводниковой
технологии). Объем памяти программ в МК AT90S8515– 8 Кбайт.
Ячейка памяти содержит 16 двоичных разрядов. При чтении ко-
дов команд адрес в ПЗУ программ поступает из счетчика команд.
При чтении констант адрес поступает из спаренного регистра Z,
при этом он должен содержать адрес байта. Отличительной осо-
бенностью МК является то, что для большинства из них реализо-
вана возможность перепрограммирования в аппаратуре, где они
должны работать (функция Downloading, перепрограммирование
в системе или In-System Programming).
     Память данных включает в себя регистровый файл РОН,
область регистров ввода/вывода и оперативное запоминающее
устройство статического типа (Static Random Access Memory -
SRAM). Оперативное запоминающее устройство предназначено
для временного хранения данных, получаемых в ходе работы
программы. Адреса SRAM начинаются с $60. Объем встроенной
в МК SRAM обычно ограничен (512 байт в AT90S8515). Ячейка
памяти содержит 8 разрядов. Единственным типом операций яв-
ляется обмен данными между SRAM и РОН – загрузка (load)
байта в РОН и сохранение (store) байта в SRAM. Адрес байта при
обращении к памяти данных может быть указан в коде команды
(прямая адресация) или предварительно записан в пару регистров
X, Y или Z (косвенная адресация).
     Память данных может быть расширена до 64 Кбайт при
подключении внешних микросхем статической памяти к портам
МК. При этом имеются возможности работы с внешней памятью


                             -10-

как с периферийным устройством, когда протокол обмена дан-
ными реализуется программно, и как со встроенной памятью, ко-
гда обращение к обоим видам памяти производится с помощью
одинаковых команд. В последнем случае внешняя память выби-
рается, если адрес больше верхнего адреса встроенной SRAM.
     Регистры ввода-вывода – это блок из 64-х байтов, в кото-
ром содержатся как регистры управления процессором, так и ре-
гистры интерфейса ввода-вывода. Существует два способа обра-
щения к регистрам ввода-вывода и РОН:
1) прямое обращение к каждой из этих областей данных (исполь-
зуется в основном при выполнении арифметических операций);
2) объединение всех трех областей регистров и памяти в общее
адресное пространство данных.
     Как это показано на рис. 2, в адресное пространство МК,
помимо адресов, по которым выполняется обращение к ячейкам
ОЗУ данных, включены 32 адреса для обращения к РОН (адреса
от $00 до $1F) и 64 адреса для обращения к регистрам ввода-
вывода (адреса от $20 до $5F). Первой ячейке SRAM соответст-
вует адрес $60. Адрес для обращения к РОН по команде обраще-
ния к SRAM совпадает с номером регистра, а адрес для обраще-
ния к регистру ввода-вывода зависит от вида команды. В коман-
дах LOAD и STORE используются общие адреса всего про-
странства памяти данных, включая РОН и регистры вво-
да/вывода; а в командах IN и OUT, применяемых для обмена
данными между РОН и этими регистрами, и в командах очистки
CBI или установки SBI бит указывается номер регистра – адрес в
области ввода/вывода (номера с $00 по $3F).
     Адреса некоторых регистров, общих для всех моделей AVR,
в пространстве регистров ввода-вывода приведены в таблице. Как
видно, если применяются команды LOAD или STORE, то к абсо-
лютному адресу следует прибавить начальное смещение $20.
     Таким образом, структуру процессора можно представить в
упрощенном виде, приведенном на рис. 3. Такое представление
удобно для программирования, поскольку оно отражает все дос-
тупные операнды и на ней может быть прослежено выполнение
всех команд данного семейства МК.



    
Яндекс цитирования Яндекс.Метрика