- •Магомедов и. А. Микропроцессорные системы. Теория и практика применения микроконтроллеров
- •Глава I. Микроконтроллеры
- •Глава III. Лабораторный практикум по микроконтроллерам семейства avr фирмы atmel
- •Предисловие
- •Введение
- •Глава I. Микроконтроллеры
- •1.1. Классификация микроконтроллеров
- •Области применения:
- •1.2. Направление развития элементной базы 8-разрядных микроконтроллеров
- •Контрольные вопросы
- •Глава II. Высокопроизводительные risc микроконтроллеры семейства avr
- •2.1. Микроконтроллер фирмы Atmel aTmega1281
- •2.2. Системное управление и сброс микроконтроллера
- •Контрольные вопросы
- •2.3. Программная модель микроконтроллера2
- •Регистр управления коэффициентом деления частоты кварцевого генератора - xtal Divide Control Register – xdiv.
- •Контрольные вопросы
- •Регистр управления коэффициентом деления частоты кварцевого генератора xdiv и его назначение. Пример использования регистра.
- •2.4 Подсистема памяти микроконтроллера
- •2.4.1 Статическое озу памяти данных
- •2.4.2 Система команд процессоров avr в семействе avr система команд у микроконтроллеров разных типов содержат от 89 до 130 команд.
- •2.4.3 Режимы адресации памяти программ и данных
- •2.4.5 Память данных на eeprom
- •2.4.6 Конфигурационные биты
- •2.4.7 Системная синхронизация и тактовые источники
- •Контрольные вопросы
- •2.5. Периферийные модули микроконтроллера aTmega128
- •2.5.1. Параллельные порты ввода-вывода
- •Порты в качестве универсального цифрового ввода-вывода. Все порты являются двунаправленными портами ввода-вывода с опциональными подтягивающими резисторами.
- •Описание регистров портов ввода-вывода.
- •Использование параллельных портов для управления жидкокристаллическим индикатором и
- •Контрольные вопросы
- •2.6. Подсистема таймера/счетчика микроконтроллера aTmega128
- •Описание регистров 8-разрядного таймера-счетчика 0.
- •Описание регистров 16-разрядных таймеров-счетчиков.
- •Контрольные вопросы
- •2.7. Подсистема ввода аналоговых сигналов мк
- •Контрольные вопросы
- •2.8. Аналоговый компаратор
- •Контрольные вопросы
- •2.9. Последовательный периферийный интерфейс – spi
- •Функционирование вывода ss.
- •2.9.1. Пример использования интерфейса spi микроконтроллера aTmega128
- •Контрольные вопросы
- •2.10. Универсальный синхронно - асинхронный последовательный приемопередатчик
- •Описание регистров усапп
- •2.10.1. Пример использования порта uart
- •Контрольные вопросы
- •2.11. Последовательный двухпроводной интерфейс twi
- •2.11.1. Формат посылки и передаваемых данных
- •2.11.2. Модуль twi микроконтроллера avr
- •Описание регистров twi.
- •2.11,3. Подключение схемы ds1307 к микроконтроллеру по интерфейсу twi
- •Глава III. Лабораторный практикум по микроконтроллерам семейства avr фирмы atmel6
- •Оформление отчета
- •Правила выполнение работы в лаборатории
- •Подготовки стенда к выполнению лабораторной работы
- •Лабораторная работа № 1. Разработка и отладка программ в среде avr Studio 4. Изучение системы команд микроконтроллеров семейства avr
- •Режимы работы отладчика
- •Индивидуальные задания к выполнению лабораторной работы №1
- •Контрольные вопросы к лабораторной работе №1
- •Лабораторная работа №2. Параллельные порты ввода/вывода микроконтроллера
- •Индивидуальные задания к выполнению лабораторной работы №2
- •Контрольные вопросы к лабораторной работе №2
- •Лабораторная работа №3 Подсистема ввода аналоговых сигналов микроконтроллера
- •Краткие теоретические сведения
- •Индивидуальные задания к выполнению лабораторной работы №3
- •Контрольные вопросы к лабораторной работе №3
- •Лабораторная работа №4.
- •Краткие теоретические сведения
- •Индивидуальные задания к выполнению лабораторной работы №4
- •Контрольные вопросы к лабораторной работе №4
- •Лабораторная работа №5 Изучение режимов работы Таймера/Счетчика
- •Краткие теоретические сведения
- •Индивидуальные задания к выполнению лабораторной работы №5
- •Контрольные вопросы к лабораторной работе № 5
- •Лабораторная работа №6 Последовательный периферийный интерфейс – spi
- •Краткие теоретические сведения
- •Индивидуальные задания к выполнению лабораторной работы №6
- •Контрольные вопросы к лабораторной работе № 6
- •Лабораторная работа №7 Подсистема памяти микроконтроллера.
- •Краткие теоретические сведения
- •Индивидуальные задания к выполнению лабораторной работе №7
- •Контрольные вопросы к лабораторной работе №7
- •Лабораторная работа №8 Последовательный двухпроводной интерфейс i2c (twi)
- •Краткие теоретические сведения
- •Индивидуальные задания к выполнению лабораторной работы №8
- •Контрольные вопросы к лабораторной работе №8
- •Список использованной литературы
- •Костин г.Ю. Микроконтроллеры фирмы Motorola. М.: ктц-мк, 1998.
- •Микроконтроллеры семейства avr
- •Приложение 2
- •Include - Вложить другой файл
- •Выражения
- •Набор инструкций
- •Приложение 3
- •Семейства avr
- •Приложение 4
Области применения:
Коммуникационное оборудование:
- уплотнение каналов передачи данных;
- кодирование аудио- и видеопотоков;
Системы гидро- и радиолокации;
Распознавание речи и изображений;
Речевые и музыкальные синтезаторы;
Анализаторы спектра;
Управление технологическими процессами и другие области, где необходима быстродействующая обработка сигналов, в том числе в реальном времени.
Лучшие современные ЦСП можно характеризовать следующими параметрами:
Тактовая частота - 1 ГГц и выше;
Многоядерность;
Наличие двухуровневого кеша;
Встроенные многоканальные контроллеры прямого доступа к памяти;
Быстродействие порядка нескольких тысяч MIPS и MFLOPS;
Выполнение до 8 параллельных инструкций за такт;
Совместимость со стандартными шинами (PCI и др.).
Нечеткие микроконтроллеры. Идея построения процессоров с нечеткой логикой (fuzzy logic) основывается на нечеткой математике. Математическая теория нечетких множеств, предложенная проф. Л.А. Заде [19], являясь предметом интенсивных исследований, открывает все большие возможности перед системными аналитиками. Основанные на этой теории различные компьютерные системы, в свою очередь, существенно расширяют область применения нечеткой логики.
Подходы нечёткой математики дают возможность оперировать входными данными, непрерывно меняющимися во времени и значениями, которые невозможно задать однозначно, такими, например, как результаты статистических опросов. В отличие от традиционной формальной логики, известной со времен Аристотеля и оперирующей точными и четкими понятиями типа истина и ложь, да и нет, ноль и единица, нечеткая логика имеет дело со значениями, лежащими в некотором (непрерывном или дискретном) диапазоне.
Функция принадлежности элементов к заданному множеству также представляет собой не жесткий порог "принадлежит - не принадлежит", а плавную сигмоиду, проходящую все значения от нуля до единицы. Теория нечеткой логики позволяет выполнять над такими величинами весь спектр логических операций - объединение, пересечение, отрицание и др.
Согласно знаменитой теореме FAT (Fuzzy Approximation Theorem), доказанной Коско, любая математическая система может быть аппроксимирована системой, основанной на нечеткой логике. Свое второе рождение теория нечеткой логики пережила в начале восьмидесятых годов, когда сразу несколько групп исследователей (в основном в США, Японии и СССР) всерьез занялись созданием нечетких систем управления различного применения, использующих нечеткие управляющие алгоритмы [21] и аппаратных средств поддержки нечетких систем [22, 23]. Используя преимущества нечеткой логики, заключающиеся в простоте содержательного представления, можно упростить проблему, представить ее в более доступном виде и повысить производительность системы.
Рис. 1.3. Структура нечеткого процессора
(МНВ - механизм нечеткого вывода).
Оказалось возможным создание нечеткого процессора (рис. 1.3), позволяющего выполнять различные нечеткие операции и приближенные рассуждения (нечеткий вывод) в соответствии с правилами логического вывода. В начале 80-ых годов в СССР (Ленинград, Таганрог) велись исследования по разработке нечетких процессоров управления [20, 22], а в 1986 году в AT&T Bell Labs создавались процессоры с “прошитой” нечеткой логикой обработки информации. В начале 90-х компания Adaptive Logic из США выпустила кристалл, сделанный по аналогово-цифровой технологии. Он позволит сократить сроки конструирования многих встроенных систем управления реального времени, заменив собой традиционные схемы нечетких микроконтроллеров. Аппаратный процессор нечеткой логики второго поколения принимает аналоговые сигналы, переводит их в нечеткий формат, затем, применяя соответствующие правила, преобразует результаты в формат обычной логики и далее – в аналоговый сигнал. Все это осуществляется без внешних запоминающих устройств, преобразователей и какого бы ни было программного обеспечения нечеткой логики. Этот процессор относительно прост по сравнению с громоздкими программными обеспечениями. Но так как его основу составляет комбинированный цифровой/аналоговый кристалл, он функционирует на очень высоких скоростях (частота отсчетов входного сигнала – 10 кГц, а скорость расчета – 500 тыс. правил/с), что во многих случаях приводит к лучшим результатам в системах управления по сравнению с более сложными, но медлительными программами.
В Европе и США ведутся интенсивные работы по интеграции fuzzy команд в ассемблеры промышленных контроллеров встроенных устройств (чипы Motorola 68HC11/12/21). Такие аппаратные средства позволяют в несколько раз увеличить скорость выполнения приложений и компактность кода по сравнению с реализацией на обычном ядре. Кроме того, разрабатываются различные варианты fuzzy- сопроцессоров, которые контактируют с центральный процессор через общую шину данных, концентрируют свои усилия на размывании/ уплотнении информации и оптимизации использования правил (продукты Siemens Nixdorf).
Идеи нечеткой логики не являются панацеей и не смогут совершить переворот в компьютерном мире. Нечеткая логика не решит тех задач, которые не решаются на основе логики двоичной, но во многих случаях она удобнее, производительнее и дешевле. Разработанные на ее основе специализированные аппаратные решения (fuzzy-вычислители) позволят получить реальные преимущества в быстродействии. Если каскадировать fuzzy-вычислители, мы получим один из вариантов нейропроцессора или нейронной сети. Во многих случаях эти понятия просто объединяют, называя общим термином «neuro-fuzzy logic».
В настоящее время перспективой использовать процессоры, основанные на нечеткой логике всерьез заинтересовались военные. Известно, что NASA рассматривает возможность применения нечеткие системы для управления процессами стыковки космических аппаратов.
По архитектуре существует два основных принципа построения микроконтроллеров:
Гарвардская архитектура
Архитектура Фон-Неймана
В Гарвардской архитектуре принципиально различаются два вида памяти: память программ и память данных.
В Гарвардской архитектуре принципиально невозможно производить операцию записи в память программ, что исключает возможность случайного разрушения управляющей программы в случае неправильных действий над данными. Кроме того, в ряде случаев для памяти программ и памяти данных выделяются отдельные шины обмена данными. Эти особенности определили области применения этой архитектуры построения микропроцессоров. Гарвардская архитектура применяется в микроконтролерах, где требуется обеспечить высокую надёжность работы аппаратуры и в сигнальных процессорах, где эта архитектура кроме обеспечения высокой надёжности работы устройств позволяет обеспечить высокую скорость выполнения программы, за счёт одновременного считывания управляющих команд и обрабатываемых данных, а так же запись полученных результатов в память данных.
Отличие архитектуры Фон Неймана заключается в принципиальной возможности работы над управляющими программами точно так же как над данными. Это позволяет производит загрузку и выгрузку управляющих программ в произвольное место памяти процессора, которая в этой структуре не разделяется на память программ и память данных. Любой участок памяти может служить как памятью программ, так и памятью данных. Причём в разные моменты времени одна и та же область памяти может использоваться и как память программ и как память данных. Для того, чтобы программа могла работать в произвольной области памяти, её необходимо модернизировать перед загрузкой, то есть работать с нею как с обычными данными. Эта особенность архитектуры позволяет наиболее гибко управлять работой микропроцессорной системы, но создаёт принципиальную возможность искажения управляющей программы, что понижает надёжность работы аппаратуры. Эта архитектура используется в универсальных компьютерах и в некоторых видах микроконтроллеров.
По системе команд микроконтроллеры отличаются огромным разнообразием, зависящим от фирмы-производителя. Тем не менее, можно определить две крайние политики построения процессоров: аккумуляторные процессоры и процессоры с регистрами общего назначения.
В процессорах с регистрами общего назначения математические операции могут выполняться над любой ячейкой памяти. В зависимости от типа операции команда может быть одноадресной, двухадресной или трёхадресной.
Принципиальным отличием аккумуляторных процессоров является то, что математические операции могут производиться только над одной особой ячейкой памяти - аккумулятором. Для того, чтобы произвести операцию над произвольной ячейкой памяти её содержимое необходимо скопировать в аккумулятор, произвести требуемую операцию, а затем скопировать полученный результат в произвольную ячейку памяти.
В настоящее время в чистом виде не существует ни та ни другая система команд. Все выпускаемые в настоящее время процессоры обладают системой команд с признаками, как аккумуляторных процессоров, так и процессоров с регистрами общего назначения.
По разрядности данных МК можно разделить на следующие основные типы: встраиваемые (embedded) 8-разрядные МК и 16/32-разрядные МК.
Восьмиразрядные МК для встраиваемых систем выпускаются многими Atmel, Motorola, Microchip, AMD, NEC, Hitachi и др.
Разрабатывая идеологию семейства 8-разрядных RISC микроконтроллеров фирма Atmel стремилась предоставить пользователю возможность оптимизировать соотношение «производительность-энергопотребление-стоимость».
Специалисты фирмы Atmel заявляют, что объемы потребления микроконтроллеров семейства AVR и, следовательно, их производства растут. Можно согласиться с тем, что объединив на одном кристалле 8-разрядное RISC CPU с внутрисистемно самопрограммируемой Flash памятью, фирма создала семейство мощных микроконтроллеров, ставших де-факто промышленным стандартом начала нового столетия и являющихся гибким и недорогим решением для большого количества самых разнообразных встраиваемых применений.
С точки зрения внутреннего обмена информацией, взаимодействия процессора с памятью, AVR микроконтроллеры построены по Гарвардской архитектуре с раздельными шинами адресов и данных, раздельными пространствами памяти программ и данных. Важной особенностью процессора AVR микроконтроллеров являются 32 8-разрядных рабочих регистра общего назначения, причем у ряда микроконтроллеров до шести регистров могут быть объединены попарно в 16-разрядные регистры-указатели косвенной адресации пространства памяти (обозначаемые символами X, Y и Z). Все 32 регистра напрямую подсоединены к АЛУ (ALU), обеспечивая взаимодействие команды, выполняемой за один тактовый цикл, с двумя независимыми регистрами или регистром и некоторой константой. Результатом такой архитектуры стала высокая эффективность кодов, обеспечивающая десятикратное повышение производительности, по сравнению с традиционными CISC микроконтроллерами, работающими с той же тактовой частотой.
В отличии от фирмы Atmel восьмиразрядные МК семейства M68HC08 фирма Motorola разрабатывает в соответствии со стратегией проектирования интегральных схем по заданию заказчика (customer-specified integrated circuit - CSIC), в основе которой хорошо отработанное процессорное ядро, под которое наработано большое количество апробированных программных средств и имеются испытанные средства проектирования, и библиотеки модулей встраиваемых периферийных устройств, позволяющие "собрать" на одном кристалле все средства, которые необходимы и достаточны для реализации практически законченной системы. Примером такого, выполненного под конкретный заказ (задачу), прибора может служить микроконтроллер MC68HC908W32 предназначенный для применения в беспроводной телефонии и позволяющий реализовать практически все, за исключением RF, функции, необходимые для реализации беспроводного телефона.
В то же время, фирма разработала и продолжает разрабатывать ориентированные на определенные области применения, но достаточно универсальные микроконтроллеры. Среди них микроконтроллеры, ориентированные на применение в автомобильных и производственных сетях (оснащенные встроенным контроллером CAN), ориентированные на управление электродвигателями (с расширенными возможностями PWM), ориентированные на использование в периферийных устройствах (оснащенные встроенным контроллером USB) и недорогие универсальные микроконтроллеры в малогабаритных корпусах с малым количеством выводов. Во всех этих микроконтроллерах семейства использовано 8-разрядное центральное процессорное устройство (CPU08), обрамленное различными дополнительными модулями встроенной периферии, памятью различной емкости и типов.
До настоящего времени самыми популярными во встраиваемых системах оставались 8-разрядные микроконтроллеры являются МК компании Atmel, которые по показателю цeна/функциональность были вне конкуренции. От существовавших 32-разрядных микроконтроллеров 8-разрядные отличались рядом преимуществ [6]:
низкой ценой;
низким потреблением энергии;
относительной доступностью качественных средств разработки и отладки.
Однако за последние годы в мире 32-разрядных микроконтроллеров произошли события, которые в корне изменили расклад сил. Ниша исключительного применения 8-разрядных микроконтроллеров оказалась под жёстким давлением со стороны 32-разрядных устройств.
Согласно данным маркетингового анализа компании Semico в 2006 г. объём продаж 32-разрядных микроконтроллеров превысил продажи 8 и 16-разрядных микросхем. Анализ показывает, что развитие 16-раз рядных микроконтроллеров идёт существенно более медленными темпами, чем 32-разрядных. Это лишний раз говорит о том, что при принятии решения о смене 8-разрядного микроконтроллера на более мощный в качестве основной стратегической перспективы имеет смысл рассматривать, в первую очередь, сразу 32-разрядные микросхемы, минуя 16-разрядные, за исключением особых случаев.
Особенности архитектуры ARM. Архитектура ARM отражает собственную философию компании, суть которой – максимальное удовлетворение требованиям встраиваемых систем. Для этого разработчики не стали замыкаться в формальных рамках RISC архитектуры, а в одном продукте реализовали идеи, ранее считавшиеся несовместимыми.
Хотя в своей основе ядро ARM отталкивается от идеологии RISC архитектуры (ограниченный набор команд, очередь выборки инструкций, активное использование регистров и ограниченный доступ к памяти), оно не является «чистым» представителем RISC.
Не все инструкции ARM выполняются за один цикл. Например, есть инструкции, позволяющие переслать между памятью и регистрами 16 слов по 32 разряда. Поскольку подобные операции активно используются компиляторами при каждом вызове и возврате из функций, введение таких инструкций существенно ускоряет работу программы и минимизируют размер кода.
В состав системы команд входят так же инструкции обращения к аппаратному сопроцессору. Это позволяет разработчикам микроконтроллеров на базе ARM расширять возможности базовой архитектуры, добавляя свои сопроцессоры в случае необходимости.
Дополнительно к ARM архитектуре могут интегрироваться несколько расширений [6, 7]:
Thumb – 16-разрядный набор инструкций, улучшающий эффективность использования памяти программ;
DSP – набор арифметических инструкций для цифровой обработки сигналов;
Jazelle™ – расширение для аппаратного непосредственного исполнения Java инструкций;
Media – расширение для 2…4 кратного увеличения скорости обработки аудио и видеосигналов.
Клиентами ARM являются свыше 60 производителей, среди которых можно выделить такие известные компании, как Atmel (выпускает более 20 МК с архитектурой ARM, например- AT91SAM7A1, AT91SAM7SE256), NXP (бывшая Philips) выпускает более 30 МК, например - LPC2294 LPC2146), Analog Devices, Freescale (Motorola) и др.
В настоящее время архитектура ARM занимает лидирующие позиции и охватывает 75% рынка 32-разрядных встраиваемых RISC процессоров.
В качестве примера 16-разрядных микроконтроллеров можно привести высокопроизводительные 16-разрядные МК семейства PIC24F и PIC24H, которые были разработаны компанией Microchip для расширения существующей линейки микроконтроллеров. Предоставляя пользователю хорошие вычислительные возможности и значительно переработанные периферийные модули, семейства PIC24 позволяют увеличить функциональность разрабатываемых устройств. С другой стороны, микроконтроллеры PIC24 разработаны таким образом, чтобы сделать переход пользователя с существующих семейств на новые более легким.
Большое количество 16/32-разрядных МК выпускает и компания Motorola. Так, 16-битовое семейство 68HC16 так же, как 32-битовое семейство 68300 и новое 16-битовое семейство 68HC12 разработаны с использованием расширенной библиотеки периферийных модулей, которые взаимодействуют через сходные интерфейсные шины. Эта методология модульного проектирования обеспечивает возможность быстрого развития новых производных семейства для специфических применений или потребителей.
