Кочегаров И.И. Микроконтроллеры AVR. Лабораторный практикум (2012) (1264221), страница 3
Текст из файла (страница 3)
Это упростило архитектуру процессоров: позволило инструкциям иметь фиксированную длину, упростило конвейеры и изолировалологику, имеющую дело с задержками при доступе к памяти, тольков двух инструкциях.Нередко слова «сокращенный набор команд» понимаются какминимизация количества инструкций в системе команд. На самомделе, термин «сокращенный» в названии описывает тот факт, что сокращен объем (и время) работы, выполняемый каждой отдельной инструкцией (как максимум один цикл доступа к памяти), тогда каксложные инструкции CISC-процессоров могут требовать сотен циклов доступа к памяти для своего выполнения.Первая система, которая может быть названа RISC-системой, суперкомпьютер CDC 6600, который был создан в 1964 г.,за десять лет до появления соответствующего термина.
CDC 6600имел RISC-архитектуру всего с двумя режимами адресации («ре11гистр+регистр» и «регистр+непосредственное значение») и 74 кодами команд (тогда как процессор 8086 имел 400 кодов команд).Однако наиболее известные RISC-системы были разработаны врамках университетских исследовательских программ, финансировавшихся программой DARPA VLSI.Проект RISC в университете Беркли был начат в 1980 г. под руководством Дэвида Паттерсона и Карло Секвина. Исследования базировались на использовании конвейерной обработки и агрессивногоиспользования техники регистрового окна.
В обычном процессореимеется небольшое количество регистров и программа может использовать любой регистр в любое время. В процессоре, использующем технологии регистрового окна, очень большое количество регистров (например 128), но программы могут использовать ограниченное количество (например только 8 в каждый момент времени).Программа, ограниченная лишь восемью регистрами для каждой процедуры, может выполнять очень быстрые вызовы процедур:«окно» просто сдвигается к 8-регистровому блоку нужной процедуры, а при возврате из процедуры сдвигается обратно, к регистрам вызвавшей процедуры. (В обычном процессоре большинство процедурпри вызове вынуждены сохранять значения некоторых регистров встеке для того, чтобы пользоваться этими регистрами при исполнении процедуры. При возврате из процедуры значения регистров восстанавливаются из стека).Проект RISC произвел на свет процессор RISC-I в 1982 г.
В нембыло 44 420 транзисторов (для сравнения: в CISC-процессорах тоговремени их было около 100 тыс.). RISC-I имел всего 32 инструкции,но превосходил по скорости работы любой одночиповый процессортого времени. Через год, в 1983 г., был выпущен RISC-II, который состоял из 40 760 транзисторов, использовал 39 инструкций и работал втри раза быстрее RISC-I.Практически в то же время, в 1981 г., Джон Хеннесси началаналогичный проект, названный «MIPS-архитектура» в Стэнфордском университете. Создатель MIPS практически полностью сфокусировался на конвейерной обработке, попытавшись «выжать все» изэтой технологии.
Конвейерная обработка использовалась и в другихпродуктах, некоторые идеи, реализованные в MIPS, позволили разработанному чипу работать значительно быстрее аналогов. Наиболееважным было требование выполнения любой из инструкций процессора за один такт. Это требование позволило конвейеру работать нагораздо бо́льших скоростях передачи данных и привело к значитель12ному ускорению работы процессора. С другой стороны, исполнениеэтого требования имело негативный побочный эффект в виде удаления из набора инструкций таких полезных операций, как умножениеили деление.В первые годы попытки развития RISC-архитектуры были хорошо известны, однако оставались в рамках породивших их университетских исследовательских лабораторий.
Многие в компьютернойиндустрии считали, что преимущества RISC-процессоров не проявятся при использовании в реальных продуктах из-за низкой эффективности использования памяти в составных инструкциях. Однако с1986 г. исследовательские проекты RISC начали выпускать первыеработающие продукты.Как оказалось в начале 1990-х гг., RISC-архитектуры позволяютполучить большую производительность, чем CISC, за счет распараллеливания, а также за счет возможности серьезного повышения тактовой частоты и упрощения кристалла с высвобождением площадипод кэш-память, достигающий огромных емкостей.
Также, RISCархитектуры позволили сильно снизить энергопотребление процессора за счет уменьшения числа транзисторов.Первое время RISC-архитектуры с трудом принимались рынкомиз-за отсутствия программного обеспечения для них. Эта проблемабыла решена переносом UNIX-подобных операционных систем(SunOS) на RISC-архитектуры.В настоящее время многие архитектуры процессоров являютсяRISC-подобными, к примеру, ARM, DEC Alpha, SPARC, AVR, MIPS,POWER и PowerPC.
Наиболее широко используемые в настольныхкомпьютерах процессоры архитектуры x86 ранее являлись CISCпроцессорами, однако новые процессоры, начиная с Intel 486DX, являются CISC-процессорами с RISC-ядром. Они непосредственно перед исполнением преобразуют CISC-инструкции x86-процессоров вболее простой набор внутренних инструкций RISC.После того, как процессоры архитектуры x86 были переведенына суперскалярную RISC-архитектуру, можно сказать, что большинство существующих ныне процессоров основаны на архитектуреRISC.13Глава 3. Общее описание микроконтроллеров AVR AVR – семейство восьмибитных микроконтроллеров фирмыAtmel, впервые выпущенные в 1996 г. Они представляют собой мощный инструмент, универсальную основу для создания современныхэкономичных встраиваемых систем многоцелевого назначения.Идея разработки нового RISC-ядра принадлежит двум студентам Норвежского университета наук и технологий (г.
Тронхейм) –Альфу Богену (Alf-Egil Bogen) и Вегарду Воллену (Vegard Wollen).В 1995 г. Боген и Воллен решили предложить американской корпорации Atmel выпускать новый 8-битный RISC-микроконтроллер и снабдить его Flash-памятью для программ на одном кристалле с вычислительным ядром.Идея была одобрена Atmel Corporation, и в конце 1996 г. былвыпущен опытный микроконтроллер AT90S1200, а во второй половине 1997 г. корпорация Atmel приступила к серийному производствунового семейства микроконтроллеров.Новое ядро было запатентовано и получило название AVR. Существует несколько трактовок данной аббревиатуры. Кто-то утверждает, что это Advanced Virtual RISC, другие полагают, что не обошлось здесь без инициалов разработчиков Alf Egil Bogen Vegard WollanRISC.Микроконтроллеры AVR имеют гарвардскую архитектуру (программа и данные находятся в разных адресных пространствах) и систему команд, близкую к идеологии RISC.
Процессор AVR имеет 328-битных регистра общего назначения, объединенных в регистровыйфайл. В отличие от «идеального» RISC, регистры не абсолютно равноправны:− три «сдвоенных» 16-битных регистра-указателя X (r26:r27),Y (r28:r29) и Z (r30:r31);− некоторые команды работают только с регистрами r16…r31;− результат умножения (в тех моделях, в которых есть модульумножения) всегда помещается в r0:r1.Система команд микроконтроллеров AVRСистема команд микроконтроллеров AVR весьма развита и насчитывает в различных моделях от 90 до 133 различных инструкций.Большинство команд занимает только 1 ячейку памяти (16 бит).14Большинство команд выполняется за 1 такт.Все множество команд микроконтроллеров AVR можно разбитьна несколько групп:− команды логических операций;− команды арифметических операций и команды сдвига;− команды операции с битами;− команды пересылки данных;− команды передачи управления;− команды управления системой.Управление периферийными устройствами осуществляется через адресное пространство данных.
Для удобства существуют «сокращенные команды» IN/OUT.Семейства и версии микроконтроллеровСтандартные семейства:− tinyAVR (ATtinyxxx):Флеш-память до 16 Кб; SRAM до 512 б; EEPROM до 512 б;Число линий ввод-вывода 4-18 (общее количество выводов 6-32);Ограниченный набор периферийных устройств.− megaAVR (ATmegaxxx):Флеш-память до 256 Кб; SRAM до 8 Кб; EEPROM до 4 Кб;Число линий ввода-вывода 23-86 (общее количество выводов28-100);Аппаратный умножитель;Расширенная система команд и периферийных устройств.− XMEGA AVR (ATxmegaxxx):Флеш-память до 384 Кб; SRAM до 32 Кб; EEPROM до 4 Кб;Четырехканальный DMA-контроллер;Инновационная система обработки событий.На основе стандартных семейств выпускаются микроконтроллеры, адаптированные под конкретные задачи:− со встроенными интерфейсами USB, CAN, контроллером LCD;− со встроенным радиоприемопередатчиком – серии ATAхxxx,ATAMxxx;− для управления электродвигателями – серия AT90PWMxxxx;− для автомобильной электроники;− для осветительной техники.15Кроме указанных выше семейств, ATMEL выпускает 32-разрядные микроконтроллеры семейства AVR32.Версии контроллеров:− AT(mega/tiny)xxx базовая версия.− ATxxxL версии контроллеров, работающих на пониженном (Low) напряжении питания (2,7 В).− ATxxxV версии контроллеров, работающих на низком напряжении питания (1,8 В).− ATxxxP малопотребляющие версии (до 100 нА в режимеPower-down), применена технология picoPower (анонсированы в июле 2007)[1], повыводно и функционально совместимы с предыдущими версиями.− ATxxxA уменьшен ток потребления, перекрывается весьдиапазон тактовых частот и напряжений питания двух предыдущихверсий (также, в некоторых моделях, добавлены новые возможностии новые регистры, но сохранена полная совместимость с предыдущими версиями).
Микроконтроллеры «А» и «не А» с точки зрения программатора ничем не отличаются.− АТxxx-yyPI корпус DIP− АТxxx-yyPU корпус DIP, бессвинцовый припой− АТxxx-yyAI корпус TQFP− АТxxx-yyAU корпус TQFP, бессвинцовый припой,где yy (цифры 8/10/16/20) перед индексом означают максимальнуючастоту, на которой микроконтроллер может стабильно работать принормальном для него напряжении питания.Краткие характеристики встроенной периферии МКМК AVR имеют развитую периферию, многофункциональные,двунаправленные порты ввода-вывода со встроенными подтягивающими резисторами.
Конфигурация портов ввода-вывода задаетсяпрограммно.В качестве источника тактовых импульсов может быть выбран:− кварцевый резонатор;− внешний тактовый сигнал;− внутренний RC-генератор (частота 1, 2, 4, 8 МГц).Внутренняя флеш-память команд до 256 Кб (не менее 10 000 циклов перезаписи).16Отладка программ осуществляется с помощью интерфейсов JTAG или debugWIRE.Внутреннее EEPROM данных до 4 Кб (100 000 циклов).Внутренняя SRAM до 8 Кб время доступа 1 такт.Внешняя память объемом до 64 Кб (Mega8515 и Mega162).Таймеры c разрядностью 8, 16 бит.ШИМ-модулятор (PWM) 8-, 9-, 10-, 16-битный.Аналоговые компараторы.АЦП (ADC) с дифференциальными входами, разрядность 10 бит(12 для XMEGA AVR):программируемый коэффициент усиления перед АЦП 1, 10 и 200;опорное напряжение 2,56 В.Различные последовательные интерфейсы, включая:− двухпроводной интерфейс TWI, совместимый с I²C;− универсальный синхронно/асинхронный приемопередатчик UART/USART;− синхронный последовательный порт Serial Peripheral Interface (SPI).Популярность микроконтроллеров AVR очень высока.
С каждым годом они захватывают все новые и новые ниши на рынке.Не последнюю роль в этом играет соотношение показателей цена/быстродействие/энергопотребление, являющееся весьма привлекательным на рынке 8-битных микроконтроллеров. Кроме того, постоянно растет число выпускаемых сторонними производителямиразнообразных программных и аппаратных средств поддержки разработок устройств на их основе.17Глава 4. Описание микроконтроллера ATmega AVR-микроконтроллеры, как уже упоминалось, содержат накристалле следующие аппаратные средства: 8-разрядное процессорное ядро, память программ, оперативную память данных, энергонезависимую память данных, регистры ввода-вывода, схему прерываний, схему программирования, а также периферийные устройства(рис. 1).Последовательный асинхронный(синхронный) интерфейсJTAGSPIИнтерфейс JTAGИнтерфейс SPIПрограммныйсчётчик (PC)СхемапрограммированияУАПП (УСАПП)Энергонезависимаяпямять данных(EEPROM)Память программ(FLASH)Оперативнаяпамять данных(SRAM)Указатель стека(SP)СхемапрерыванийРегистры общегоназначенияРегистр командДешифраторкомандРегистрыввода-выводаАЛУУправлениевыполнением командПроцессорное ядро (CPU)Регистр состояния(SREG)8Внутренняяшина данныхАЦПАналоговыйкомпараторПортыввода-выводаТаймеры-счётчики,сторожевой таймерАналоговые входыАналоговые входыЦифровые входы-выходыВходы-выходыРис.