Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Микроконтроллеры для систем автоматики

Покупка
Основная коллекция
Артикул: 646544.02.99
Учебное пособие предназначено для студентов направлений 13.03.02 «Электроэнергетика и электротехника» и 09.03.01 «Информатика и вычислительная техника», изучающих курс «Микропроцессорные системы». Все основные понятия микропроцессорной техники в пособии рассмотрены на примерах современных AVR-микроконтроллеров фирмы Atmel. Пособие может быть использовано студентами других направлений при изучении современных микропроцессорных систем.
Водовозов, А. М. Микроконтроллеры для систем автоматики : учебное пособие / А. М. Водовозов. - 2-е изд., испр. и доп. - Москва ; Вологда : Инфра-Инженерия, 2022. - 168 с. - ISBN 978-5-9729-1071-7. - Текст : электронный. - URL: https://znanium.com/catalog/product/1903136 (дата обращения: 03.05.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.

        A. M. Водовозов








            МИКРОКОНТРОЛЛЕРЫ ДЛЯ СИСТЕМ АВТОМАТИКИ


Учебное пособие

2-е издание, исправленное и дополненное














Москва Вологда «Инфра-Инженерия» 2022

УДК 621.375
ББК 32.85
     В62



Рецензенты:
кандидат технических наук, доцент, зам. главного энергетика ООО МП «Межрайонные электротеплосети» С. Б. Федотовский; кандидат технических наук, зав. кафедрой прикладной информатики и естественно-математических наук Вологодского института бизнеса Н. А. Хромцова




      Водовозов, А. М.

В62 Микроконтроллеры для систем автоматики : учебное пособие / А. М. Водовозов. 2-е изд., испр. и доп. - Москва ; Вологда : Инфра-Инженерия, 2022. - 168 с. : ил., табл.
       ISBN 978-5-9729-1071-7

     Учебное пособие предназначено для студентов направлений 13.03.02 «Электроэнергетика и электротехника» и 09.03.01 «Информатика и вычислительная техника», изучающих курс «Микропроцессорные системы». Все основные понятия микропроцессорной техники в пособии рассмотрены на примерах современных AVR-микроконтроллеров фирмы Atmel.
     Пособие может быть использовано студентами других направлений при изучении современных микропроцессорных систем.

                                                        УДК 621.375
                                                        ББК 32.85












ISBN978-5-9729-1071-7

     © Водовозов А. М., 2022
     © Издательство «Инфра-Инженерия», 2022
                            © Оформление. Издательство «Инфра-Инженерия», 2022

ОГЛАВЛЕНИЕ


  ВВЕДЕНИЕ............................................4
  1. АРХИТЕКТУРА МИКРОКОНТРОЛЛЕРА.....................5
  2. ПАМЯТЬ..........................................11
  3. ПРОЦЕССОРНОЕ ЯДРО...............................18
  4. СИСТЕМНЫЙ ТАКТОВЫЙ ГЕНЕРАТОР....................50
  5. СИСТЕМА СБРОСА..................................54
  6. СИСТЕМА ПРЕРЫВАНИЙ..............................59
  7. ПОРТЫ ВВОДА-ВЫВОДА..............................64
  8. ТАЙМЕРЫ-СЧЕТЧИКИ................................66
  9. АНАЛОГО-ЦИФРОВОЙ ПРЕОБРАЗОВАТЕЛЬ................91
  10. АНАЛОГОВЫЙ КОМПАРАТОР..........................98
  11. ЭНЕРГОНЕЗАВИСИМАЯ ПАМЯТЬ ДАННЫХ...............102
  12. ПОСЛЕДОВАТЕЛЬНЫЙ ВВОД-ВЫВОД...................105
  13. УПРАВЛЕНИЕ ПИТАНИЕМ И РЕЖИМЫ ЭНЕРГОСБЕРЕЖЕНИЯ.120
  14. ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ МИКРОКОНТРОЛЛЕРОВ.123
  15. КУРСОВОЙ ПРОЕКТ...............................141
  БИБЛИОГРАФИЧЕСКИЙ СПИСОК..........................156
  ПРИЛОЖЕНИЯ........................................158
  ГЛОССАРИЙ ТЕРМИНОВ И СОКРАЩЕНИЙ...................162

3

ВВЕДЕНИЕ


    Создание фирмой Intel в 1971 году первой программируемой электронной схемы на одном кристалле явилось началом эпохи микропроцессорной техники. Объединив в себе достижения вычислительной техники и микроэлектроники, микропроцессорные системы стали удобным общепринятым инструментом для построения самых различных систем автоматики и вычислительной техники.
    За 40 лет своего бурного развития микропроцессорные системы прошли путь от специализированных комплектов интегральных схем к сложным однокристальным микроконтроллерам, имеющим в своем составе целый набор самых различных программируемых элементов. Их разработкой занимаются практически все крупнейшие мировые производители компьютеров, бытовой техники, промышленных систем и электронных компонентов - всем известные: Intel, AMD, Atmel, Microchip, Mitsubishi, Motorola, Analog Device, National Semiconductor, Texas Instruments и др.
    В условиях существующей в области микроэлектроники жесткой конкуренции каждый производитель выбирает свою модель развития, предлагая множество новых технических и технологических решений. При этом не успевают устояться условные обозначения и терминология, появляется множество архитектур и языков программирования, что существенно усложняет изучение и освоение этой техники. В нашей стране ситуация усугубляется языковым барьером, вся основная терминология в этой области техники имеет английскую аббревиатуру.
    Вместе с тем, принципы построения микроконтроллеров, несмотря на множество направлений развития, не подвергаются существенной переработке. Заложенные в 70-х годах, при всем многообразии изделий, они без значительных изменений сохраняются и до настоящего времени. По этой причине изучение микроконтроллеров всегда строится на конкретных примерах какой-либо одной архитектуры. В пособии все основные понятия микропроцессорной техники рассмотрены на примерах современных AVR-микроконтроллеров фирмы Atmel. Этот выбор обусловлен целым рядом факторов, таких как распространенность микроконтроллеров в России, доступность технической информации, наличие свободно распространяемых программных и сравнительно недорогих аппаратных средств поддержки проектирования. Использованные при написании пособия оригинальные материалы можно найти на сайте www.atmel.ru.

4

        1. АРХИТЕКТУРА МИКРОКОНТРОЛЛЕРА


       Контроллером в технике регулирования считается управляющее устройство, осуществляющее регулирующие или контролирующие функции в системе. Контроллер, реализованный на одном кристалле, называется микроконтроллером. Современный микроконтроллер является большой цифровой интегральной схемой, объединяющей миллионы выполненных по микронным технологиям транзисторов. Архитектура микроконтроллера включает в себя структуру, отражающую состав изделия, и его программно-математическое обеспечение.


      1.1. Обобщенная структура микроконтроллера

      Типовая структура микроконтроллера изображена на рисунке 1.1. Микроконтроллер состоит из трех, связанных системными шинами, элементов: процессорного ядра, памяти и набора устройств ввода/вывода различного назначения.

Рис. 1.1. Структура микроконтроллера

       Процессорное ядро (MCU-Microprocessor Core Unit) является основой микроконтроллера. Оно выполняет все вычислительные операции и, одновременно, управляет работой всех остальных элементов схемы. По системным шинам процессорное ядро обменивается данными с памятью и различными устройствами ввода/вывода, интегрированными на кристалл. Разрядность процессорного ядра определяет разрядность микроконтроллера. Наиболее распространены в настоящее время 8-битные (8-разрядные) микроконтроллеры. Вместе с тем, широкое применение в простых задачах находят и


5

4-битные изделия, а в сложных высокопроизводительных системах 16- и 32-битные.
     В памяти (Memory) хранится программа работы микроконтроллера, исходные данные и все промежуточные результаты вычислений. Память состоит из множества многоразрядных ячеек, каждая из которых имеет свой адрес. По этому адресу процессорное ядро находит конкретную ячейку памяти в процессе обмена. Память микроконтроллера обычно разделена на две части: память данных (Data Memory) и память программ (Program Memory). В памяти данных хранятся результаты промежуточных вычислений, в памяти программ - программа, по которой работает микроконтроллер. Память программ микроконтроллера энергонезависима, при отключении питания в ней сохраняется записанная программа.
     Устройства ввода/вывода различных типов обеспечивают взаимодействие микроконтроллера с внешним миром. Эти блоки могут выполнять самые различные функции: ввод и вывод информации, подсчет внешних событий и интервалов времени, передача внешних запросов на процессорное ядро, аналого-цифровые и цифроаналоговые преобразования сигналов, сравнение различных величин, контроль за напряжением питания и др. Для процессорного ядра любое устройство ввода/вывода представляется в виде одного или нескольких регистров. Каждый регистр имеет свой оригинальный адрес, по которому процессорное ядро находит его в процессе работы.
     Программа работы микроконтроллера хранится в памяти в виде последовательности команд (инструкций). В ходе работы процессорное ядро последовательно извлекает из памяти инструкции, расшифровывает и выполняет их. В зависимости от инструкции в ядре выполняются различные арифметические и логические операции, пересылки данных. При необходимости, в процессе выполнения инструкции, процессорное ядро обращается за данными к ячейкам памяти и функциональным блокам, либо пересылает в них результаты вычислений. Множество инструкций, которые понимает процессорное ядро, образует систему команд микроконтроллера.
     Практически все ведущие производители разрабатывают целые семейства микроконтроллеров с так называемой модульной структурой. При этом процессорное ядро для всего семейства неизменно, а память и состав функциональных блоков у каждого микроконтроллера различны. Процессорное ядро всегда имеет свою оригинальную схему и, обязательно, оригинальное имя. Например, микроконтроллеры фирмы Motorola построены на базе ядра

6

   НС05 и НС08, фирма Intel создала ядро MCS-51 и MCS-96, контроллеры фирмы Microchip строятся на базе ядра PIC12, PIC16, PIC17, PIC18, фирма Atmel усиленно развивает семейство микроконтроллеров с ядром AVR.
       Процессорное ядро на основе известных схемотехнических решений, технологий проектирования и производства цифровых схем реализует определенную архитектуру микроконтроллера. Понятие «архитектура» включает в себя множество его структурных особенностей, основными из которых считаются: организация памяти и система команд. В настоящее время известны четыре общих архитектурных принципа в той или другой мере, реализуемые в любом процессорном ядре.
       По организации памяти различаются:
        -    Неймановская архитектура - характеризуется общим пространством памяти для хранения данных и программы. При этом разрядность памяти зафиксирована (как правило, равна одному байту). Такую архитектуру имеют, например, микроконтроллеры HC05 и НС08 фирмы Motorola, в которых общий массив 8-битных ячеек памяти включает в себя как память программ, так и память данных.
        -    Гарвардская архитектура - отличается разделением памяти программ и памяти данных. При этом разрядность памяти программ и памяти данных, а также шины доступа к ним, различны. В частности, все микроконтроллеры PIC12, PIC16 фирмы Microchip имеют 8-битную память данных, а разрядность памяти программ у них различна: PIC12 имеют 12-битную память программ, а PIC16 - 14 битную.
       По системе команд различаются:
        -    CISC-архитектура (Complicated Instruction Set Computer) - архитектура с развитой системой команд. Система команд процессорного ядра имеет инструкции разного формата: однобайтовые, двухбайтовые, трехбайтовые. Различные инструкции при этом имеют и существенно разное время исполнения.
        -    RISC-архитектура (Reduced Instruction Set Computer) - архитектура с сокращенным набором команд. Одна инструкция, как правило, занимает только одну ячейку памяти, и все инструкции имеют равное время исполнения.
       Микроконтроллеры с RISC-архитектурой имеют сравнительно более высокую производительность при той же тактовой частоте сигнала синхронизации и в настоящее время более распространены.

7

    Разные производители в своих изделиях используют зачастую различные архитектурные принципы. Поэтому приведенное выше деление довольно условно.

    1.2. Микроконтроллеры с AVR-архитектурой

      Стандартные семейства
    Концепция AVR-микроконтроллеров была разработана группой разработчиков исследовательского центра ATMEL в Норвегии в середине 90-х годов. Первые микроконтроллеры AVR появились в 1997 г.
    AVR-архитектура объединила гарвардский RISC-процессор с раздельным доступом к памяти программ и данных и развитую систему команд фиксированной 16-битной длины. Большинство команд выполняются за один машинный такт с одновременным исполнением текущей и выборкой следующей команды, что обеспечивает производительность до 1 миллиона инструкций в секунду на каждый МГц тактовой частоты. Базовый набор команд AVR содержит 130 инструкций.
    Все микроконтроллеры AVR имеют встроенную FLASH-память с возможностью внутрисхемного программирования через последовательный 4проводной интерфейс.
    Периферия микроконтроллеров AVR включает: таймеры-счётчики, широтно-импульсные модуляторы, систему прерываний, аналоговые компараторы, 8-10-разрядные многоканальные АЦП, параллельные порты, интерфейсы UART и SPI, сторожевой таймер и устройство сброса по включению питания.
    В рамках единой базовой архитектуры AVR-микроконтроллеры подразделяются на три подсемейства (таблица 1.1), отличающиеся разрядностью, тактовой частотой, производительностью, объемом памяти и областями применения.
      Таблица 1.1 Характеристики микроконтроллеров с AVR-архитектурой

Семейство Разряд- Флэш-  Корпуса  Максимальная  Производительность
           ность  память (выводы) частота (МГц)     (MIPS/МГц)    
                   (кВ)                                           
 tinyAVR     8    0,5-8    6-32        20               1         
 megaAVR     8    4-256   28-100       20               1         
AVRXMEGA     8    16-384  44-100       32               1         
 AVRUC3     32    16-512  48-144       66              1,5        

8

    AVR-микроконтроллеры поддерживают спящий режим и режим микропотребления. В спящем режиме останавливается центральное процессорное ядро, в то время как регистры, таймеры-счётчики, сторожевой таймер и система прерываний продолжают функционировать. В режиме микропотребления сохраняется содержимое всех регистров, останавливается тактовый генератор, запрещаются все функции микроконтроллера, пока не поступит сигнал внешнего прерывания или аппаратного сброса.
      Семейство tiny AVR
    Микроконтроллеры tiny AVR оптимизированы для систем, в которых требуется высокая производительность, эффективное использование энергии, простота применения и компактность. В микроконтроллеры встроены АЦП, память EEPROM и детектор понижения напряжения питания, для проектирования систем не требуются дополнительные внешние компоненты. Они сочетают в себе миниатюрность, вычислительную мощность, высокую производительность аналоговой части и интеграцию на системном уровне. Это самые компактные полнофункциональные устройства в семействе AVR; и только они могут работать с напряжением питания всего 0,7 В, что является их главным преимуществом.
      Семейство mega AVR
    Микроконтроллеры семейства mega AVR оснащены памятью программ и данных большого объема при быстродействии до 20 млн операций в секунду, а потому идеально подходят для приложений со значительным объемом программы. Все устройства mega AVR поддерживают самопрограммирование, что позволяет выполнять внутрисхемное обновление быстро, безопасно и без лишних затрат. В семейство входит самый широкий перечень устройств с различными объемами памяти, количеством выводов и набором периферии. Это модели общего назначения и модели со специализированными периферийными устройствами и интерфейсами, например интерфейсом USB либо контроллерами ЖК-дисплея, сетей CAN и LIN или усилителей мощности.
      Семейство AVR XMEGA
    Микроконтроллеры AVR XMEGA предназначены для работы в реальном времени. В них минимизируется количество необходимых комплектующих для широкого круга приложений. В одном устройстве объединяются высокоскоростные аналоговые модули, гибко настраиваемые таймеры и счетчики, множество коммуникационных модулей и интерфейсов, а также меха

9

низм эффективного управления электропотреблением. Контроллер прямого доступа к памяти совместно с системой обработки событий гарантируют прогнозируемость производительности в реальном времени даже при большой нагрузке.
      Семейство AVR UC3
    Микроконтроллеры AVR UC3 предназначены для использования в задачах с высокими требованиями к производительности. Благодаря интеллектуальной периферии и динамическому управлению питанием они целесообразны для применения в портативных системах и приборах с питанием от батареи. Некоторые микроконтроллеры семейства оснащены встроенным блоком вычислений с плавающей точкой, повышающим производительность арифметических операций с десятичными числами, увеличивающим точность вычислений и расширяющим их динамический диапазон.

    Контрольные вопросы

     -  Какая интегральная схема называется микроконтроллером?
     -  Какая информация хранится в памяти данных микроконтроллера?
     -  Какая информация хранится в памяти программ микроконтроллера?
     -  Какая память микроконтроллера является энергонезависимой?
     -  Чем определяется разрядность микроконтроллера?
      -   Могут ли ячейки памяти иметь разрядность, отличную от разрядности микроконтроллера?
      -   Какая архитектура системы команд предусматривает исполнение команд преимущественно за 1 такт работы процессорного ядра?
      -   В какой архитектуре микроконтроллера память данных и память программ могут иметь разную разрядность?
      -   В какой архитектуре системы команд инструкции могут быть разной длины?
      -   В какой архитектуре системы команд большинство инструкций размещается в одной ячейке памяти?
      -  Какие особенности имеет AVR-архитектура?
     -  Отличительные   особенности   семейства  микроконтроллеров
   tiny AVR?
     -  Отличительные   особенности   семейства  микроконтроллеров
   mega AVR?

10

     -  Отличительные особенности    семейства микроконтроллеров
   AVRXMEGA?
     -  Отличительные особенности    семейства микроконтроллеров
   UC3 AVR?

        2. ПАМЯТЬ

    Память микроконтроллера предназначена для хранения инструкций программы и данных. В микроконтроллерах с AVR - архитектурой она разделена на отдельные блоки: память программ (Program Memory) и память данных (Data Memory).

    2.1. Память программ

    Программа микропроцессора представляет собой последовательность инструкций. Каждая инструкция имеет свой оригинальный двоичный код. Коды инструкций хранятся в памяти программ (Program Memory).
    Память программ состоит из множества ячеек определенной разрядности, каждая из которых имеет свой номер (адрес). Количество ячеек (объем памяти) может быть различно. Обычно ячейки памяти программ нумеруются в шестнадцатеричной системе счисления, начиная нуля: ОхО, 0х1, 0х2 ...Оха, ОхЬ...Здесь символами Ох обозначаются числа в шестнадцатеричной систе-
ме счисления. Допускается также шестнадцатеричные числа обозначать символом $, например, $5, $а1.
    Память программ, по существующей классификации, всегда является какой-либо разновидностью постоянной памяти (ROM - Read Only Memory). Постоянная память энергонезависима, она способна хранить записанную в неё информацию при отсутствии питающего напряжения. Основным режимом такой памяти является считывание данных. В зависимости от способа программирования память типа ROM разделяется на несколько групп: ОТ-PROM, EPROM, EEPROM и flash-memory.
      Однократно программируемая память
    Однократно программируемая память (OTPROM - One Time Programmable ROM) поставляется изготовителем микроконтроллера незапрограмми-рованной, а контроллер имеет режим программирования. Каждая ячейка памяти в исходном состоянии, как правило, содержит код $FF. Операция программирования заключается в избирательном разрушении (пережигании) части плавких перемычек, включенных в элементы памяти. В этом случае

11