63212 (Структура микроконтроллера), страница 2
Описание файла
Документ из архива "Структура микроконтроллера", который расположен в категории "". Всё это находится в предмете "коммуникации и связь" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "коммуникации и связь" в общих файлах.
Онлайн просмотр документа "63212"
Текст 2 страницы из документа "63212"
■ внутренний генератор с внешней RC-цепочкой (ERC);
■ внешний генератор (ЕХТ).
Генераторы тактового сигнала, используемые в микроконтроллерах разных типов, указаны в табл. 2.
У микроконтроллеров, имеющих внутренний генератор с внешним резонатором (XTAL), резонатор подключается к выводам XTAL1 и XTAL2, которые через конденсаторы малой емкости (20—30 пФ) соединяются с тиной GND. Тактовая частота определяется рабочей частотой резонатора. У микроконтроллера типа t28 при нулевом значении установочного бита INTCAP подключение выводов XTAL1 и XTAL2 к шине GND выполняется через внутренние конденсаторы емкостью 50 пФ.
Таблица 2
Тип | ТипМК | ||||||||||||
GCK | П1 | t12 | t15 | 2323 | 2343 | 1200 | 2313 | t28 | 4333 | 8515 | 8535 | m163 | m103 |
XTAL | + | + | + | + | + | + | + | + | + | + | +* | ||
IRC | + | +* | +* | + | + | +* | +* | ||||||
ERC | + | + | + | + | |||||||||
ЕХТ | + | + | + | + | + | + | + | + | + | + | + | + | |
* — возможно изменение частоты программными средствами |
У микроконтроллеров типа t1l и tl2 в качестве выводов XTAL1 и XTAL2 используются выводы РВЗ и РВ4.
Внешний генератор (ЕХТ) подключается к выводу XTAL1, при этом вывод XTAL2 остается неподключенным. У микроконтроллера типа 2343, не имеющего выводов XTAL, внешний генератор подключается к выводу РВЗ.
В генераторах с RC-цепочкой тактовая частота определяется параметрами цепочки, но изменяется в значительных пределах при изменении напряжения питания микроконтроллера.
В микроконтроллерах типа 2343 и 1200 внутренний RC-генератор (IRC) используется при нулевом значении установочного бита RCEN.
В микроконтроллерах типа t1l, tl2, t28 и ml63 выбор генератора для работы определяется комбинацией значений установочных битов CKSEL. У микроконтроллеров типа t1l таких битов три (CKSEL2 — 0), у микроконтроллеров остальных типов — четыре (CKSEL3 — 0).
В табл. 3 приведены числа, двоичные коды которых являются комбинацией значений установочных битов CKSEL при выборе типа генератора. Биту CKSEL0 соответствует младший разряд двоичного кода.
Таблица 3
Тип GCK | CKSEL2 — 0 | CKSEL3 — 0 |
XTAL | 6,7 | 8—15 |
IRC | 4 | 2—4 |
ERC | 5 | 5—7 |
ЕХТ | 0 | 0,1 |
В микроконтроллерах, имеющих внутренний генератор с внешней RC-цепочкой (ERC), резистор (3—100 кОм) подключается между выводом XTAL1 и шиной VCC, а конденсатор (не менее 20 пФ) — между выводом XTAL1 и шиной GND.
В микроконтроллерах типа t12, t15, t28 и m163 при использовании внутреннего RC-генератора тактовая частота может изменяться программными средствами путем изменения кода, записываемого в регистр OSCCAL. При записи кода $00 тактовая частота имеет наименьшее значение, при записи кода SFF — наибольшее значение.
В микроконтроллере типа ml03 программными средствами может изменяться тактовая частота генератора с кварцевым резонатором.
Значение тактовой частоты FCk определяется по формуле
где Fq — рабочая частота кварцевого резонатора; (XDIV.6 — 0) — число, двоичный код которого записан в младших семи разрядах регистра XDIV (№ $ЗС). Изменение тактовой частоты возможно при XDIV.7 = 1.
3. Процессор
Процессор (CPU) формирует адрес очередной команды, выбирает команду из памяти и организует ее выполнение. Код команды имеет формат "слово" (16 бит) или "два слова". Система команд микроконтроллеров семейства AVR рассматривается в главе 2.
В состав процессора кроме счетчика команд (PC), арифметико-логического устройства (ALU) и блока регистров общего назначения (GPR),изображенных на структурной схеме рис. 1, входят:
■ регистр состояния микроконтроллера SREG;
■ регистр-указатель стека SP или SPL и SPH
и другие элементы, далее не рассматриваемые.
В счетчике команд адрес очередной команды формируется путем добавления 1 к числу, код которого хранится в счетчике команд. При пуске и перезапуске микроконтроллера в счетчик команд заносится код числа 0 и первая команда выбирается из FlashROM по адресу 0.
В арифметико-логическом устройстве (ALU) выполняются арифметические и логические операции. Операнды поступают из регистров общего назначения (GPR). При выполнении одноместных операций результат записывается в регистр, из которого поступил операнд. При выполнении двухместных операций результат записывается в регистр, из которого поступил первый операнд.
Блок регистров общего назначения (GPR) содержит 32 восьмиразрядных регистра, которым присвоены имена R0, R1, ..., R31. В некоторых операциях в ALU могут участвовать лишь регистры со старшими номерами (от R16 до R31). Регистры с именами от R24 до R31 могут образовывать пары, используемые для хранения слов, при этом регистр с четным номером хранит младший байт, а регистр с нечетным номером — старший байт.
Паре регистров R26, R27 присвоено имя X, паре регистров R28, R29 — имя Y, паре регистров R30, R31 — имя Z. Эти пары регистров используются для хранения адресов при обращениях к памяти с косвенной адресацией.
Регистр состояния микроконтроллера SREG (№ $3F) содержит восемь разрядов (SREG.7, SREG.6, .... SREG.0).
Разряд SREG, 7 (I) используется для разрешения/запрещения прерываний. При I = 0 все прерывания запрещены. При 1=1 любое прерывание может быть разрешено.
Разряд SREG.6 (Т) используется для хранения бита при выполнении операций с битами.
Остальные разряды регистра SREG используются для хранения признаков результатов арифметических и логических операций, выполняемых в ALU. Назначение этих разрядов рассматривается при описании системы команд микроконтроллера.
Регистр-указатель стека SP(№ $3D) хранит и формирует адрес при обращении к стеку типа LIFO. В микроконтроллерах типа t1l, 112, 115, 1200 и t28 в качестве стека используется специальное запоминающее устройство (аппаратный стек). Этот стек используется только для хранения адресов возврата при прерываниях и обращениях к подпрограммам. В системе команд отсутствуют команды обращения к стеку.
В микроконтроллерах других типов в качестве стека используется выделяемая пользователем область в SRAM. В системе команд есть команды для обращению к стеку. Запись байтов в стек выполняется в порядке уменьшения адресов в SRAM. При пуске и перезапуске микроконтроллера в регистр-указатель стека заносится код числа 0. Для нормальной работы стека в регистр-указатель необходимо занести другой начальный адрес. В микроконтроллерах с большой емкостью SRAM регистр-указатель состоит из двух регистров — SPL и SPH (№№ $3D и $ЗЕ).
4. Запоминающее устройство Flash ROM
Постоянное запоминающее устройство FlashROM предназначено для хранения кодов команд программы и констант. Ячейка памяти содержит 16 разрядов. В ней могут храниться код команды формата "слово", половина кода команды формата "два слова" или коды двух констант. Емкость FlashROM (в числе байтов!) у микроконтроллеров разных типов указана в табл. 1. в колонке Flash.
При чтении кодов команд адрес в FlashROM поступает из счетчика команд. При чтении констант адрес поступает из пары Z регистров общего назначения.
Запись кодов в FlashROM выполняется в процессе программирования побайтно. В микроконтроллерах с большим числом выводов (20 и более) байт может вводиться параллельно или последовательно. В микроконтроллерах с малым числом выводов (8) байт вводится последовательно.
Программирование может выполняться с использованием дополнительного источника напряжения +12 В или без использования дополнительного источника. Последовательное программирование без использования дополнительного источника напряжения производится с использованием трех выводов микроконтроллера и может выполняться после установки микроконтроллера в аппаратуре, где ему предстоит работать, (Downloading). Типы микроконтроллеров, в которых этот способ программирования реализуется, отмечены знаком "+" в табл. 1 в колонке ISP (In-System Programming).
В микроконтроллере типа ml63 имеется возможность вводить и записывать в FlashROM коды в процессе работы микроконтроллера. Эта процедура (Self-programming) выполняется под управлением специальной программы (Boot Loader), которая составляется программистом и записывается в специальную секцию FlashROM. При выполнении этой программы используется регистр SPMCR (№ $37).
5. Запоминающее устройство SRAM
Оперативное запоминающее устройство статического типа SRAM предназначено для хранения данных, получаемых в процессе работы микроконтроллера. При выключении напряжения питания микроконтроллера данные в SRAM теряются.
Ячейка памяти содержит 8 разрядов. Емкость SRAM (в числе байтов) у микроконтроллеров разных типов указана в табл. 1 в колонке SRAM.
Адрес байта при обращении к SRAM может быть указан в коде команды с обращением к SRAM (прямая адресация) или предварительно записан в пару регистров X, Y или Z (косвенная адресация). Обращение к SRAM может выполняться с использованием адреса, хранящегося в регистре-указателе стека.
Байт для записи в SRAM поступает из регистра общего назначения. Байт, считанный из SRAM, поступает в регистр общего назначения.
В адресное пространство SRAM кроме адресов, по которым выполняется обращение к ячейкам памяти SRAM, включены 32 адреса для обращения к регистрам общего назначения (адреса от $00 до $1F) и 64 адреса для обращения к регистрам ввода-вывода (адреса от $20 до $5F).
Первой ячейке в SRAM соответствует адрес $60. Адрес для обращения к регистру общего назначения по команде обращения к SRAM совпадает с номером регистра (0-31 = $00-$1F). Адрес для обращения к регистру ввода-вывода по команде обращения к SRAM равен его номеру, увеличенному на число 32 ($20). В микроконтроллерах, допускающих подключение внешнего запоминающего устройства ERAM, адреса для обращения к ячейкам ERAM включены в адресное пространство SRAM и расположены после старшего адреса SRAM. Типы микроконтроллеров, в которых возможно подключение ERAM, отмечены знаком "+" в табл. 1 в колонке ERAM.
На рис. 2, в качестве примера, показано распределение адресов в адресном пространстве SRAM между регистрами общего назначения (GPR), регистрами ввода-вывода (IOR), ячейками памяти в SRAM и ячейками памяти в ERAM у микроконтроллера типа 8515.