Структура микроконтроллера
Содержание
1. Обобщенная структурная схема
2. Генератор тактового сигнала
3. Процессор
4. Запоминающее устройство FlashROM
5. Запоминающее устройство SRAM
6. Запоминающее устройство EEPROM
7. Внешнее запоминающее устройство ERAM
8. Периферийные устройства
Литература
1. Обобщенная структурная схема
Микроконтроллеры семейства AVR имеют единую базовую структуру. Обобщенная структурная схема микроконтроллера (МК) изображена на рис. 1.VCC OND
В состав микроконтроллера входят:
■ генератор тактового сигнала (GCK);
■ процессор (CPU);
■ постоянное запоминающее устройство для хранения программы, выполненное по технологии Flash, (FlashROM);
■ оперативное запоминающее устройство статического типа для хранения данных (SRAM);
■ постоянное запоминающее устройство для хранения данных, выполненное по технологии EEPROM, (EEPROM);
■ набор периферийных устройств для ввода и вывода данных и управляющих сигналов и выполнения других функций.
В микроконтроллерах тина t11, t12. t15, 1200 и t28 запоминающее устройство SRAM отсутствует. В микроконтроллерах типа t1l и t28 отсутствует также запоминающее устройство EEPROM.
К микроконтроллерам типа 8515 и тЮЗ может быть подключено внешнее запоминающее устройство для храпения данных (ERAM). Команды программы хранятся только во внутреннем запоминающем устройстве FlashROM.
Выводы VCC и GND предназначены для подключения источника напряжения питания микроконтроллера. Уровень напряжения всех сигналов в микроконтроллере отсчитывается относительно уровня на шине GND, принимаемого за 0В. Допустимые значения напряжения питания у микроконтроллеров разных типов и вариантов указаны в приложении П1 в табл. П1.3. Другие выводы микроконтроллеров разных типов указаны в приложении П2. Функции этих выводов описываются при рассмотрении устройств, в работе которых они используются.
В состав процессора (CPU) входят:
■ счетчик команд (PC);
■ арифметико-логическое устройство (ALU);
■ блок регистров общего назначения (GPR, General Purpose Registers) и другие элементы, не показанные на схеме рис. 1.
Кроме регистров общего назначения в микроконтроллере имеются регистры специальных функций, которые в семействе AVR называются регистрами ввода-вывода (I/О Registers, IOR). С участием этих регистров осуществляются:
■ управление работой микроконтроллера и отдельных его устройств;
■ определение состояния микроконтроллера и отдельных его устройств;
■ ввод данных в микроконтроллер и отдельные его устройства и вывод данных и выполняются другие функции.
Структура микроконтроллера
Таблица 1
Тип МК |
Flash (байт) |
ISP |
SRAM (байт) |
EEPROM (байт) |
ERAM |
IOR |
P |
I/O |
ALT |
SPI |
UART |
TWSI |
T/C0 |
T/C1 |
T/C2 |
ADC |
AC |
PHM |
IU |
Тип МК |
t11 |
1K |
14 |
1 |
6 |
6 |
A |
+ |
5 |
t11 |
t12 |
1K |
+ |
64 |
18 |
1 |
6 |
6 |
A |
+ |
6 |
t12 |
t15 |
1K |
+ |
64 |
27 |
1 |
6 |
6 |
A |
B |
4 |
+ |
9 |
t15 |
2323 |
2K |
+ |
128 |
128 |
17 |
1 |
3 |
2 |
A |
3 |
2323 |
2343 |
2K |
+ |
128 |
128 |
17 |
1 |
5 |
3 |
A |
3 |
2343 |
1200 |
1K |
+ |
64 |
18 |
2 |
15 |
4 |
A |
+ |
4 |
1200 |
2313 |
2K |
+ |
128 |
128 |
32 |
2 |
15 |
10 |
+ |
A |
D |
+ |
11 |
2313 |
t28 |
2K |
17 |
3 |
20 |
6 |
A |
+ |
+ |
6 |
t28 |
4433 |
4K |
+ |
128 |
256 |
44 |
3 |
20 |
20 |
+ |
+ |
A |
D |
6 |
+ |
14 |
4433 |
8515 |
8K |
+ |
512 |
512 |
+ |
45 |
4 |
32 |
31 |
+ |
+ |
A |
E |
+ |
13 |
8515 |
8535 |
8K |
+ |
512 |
512 |
54 |
4 |
32 |
26 |
+ |
+ |
A |
E |
C |
8 |
+ |
17 |
8535 |
m163 |
16K |
+ |
1024 |
512 |
63 |
4 |
32 |
28 |
+ |
+ |
+ |
A |
E |
C |
8 |
+ |
18 |
m163 |
m103 |
128K |
+ |
4000 |
4K |
+ |
60 |
6 |
48 |
47 |
+ |
+ |
C |
E |
B |
8 |
+ |
24 |
m103 |
Для нумерации регистров ввода-вывода используются номера от О до 63 (от $00 до $3F, где $ — указатель шестнадцатеричного кода). Каждому регистру присвоено имя, связанное с выполняемой этим регистром функцией. Микроконтроллеры разных типов имеют разный состав регистров ввода-вывода, при этом регистры с одинаковыми номерами могут иметь разные имена. Число регистров ввода-вывода у микроконтроллеров разных типов указано в табл. 1.1, в колонке IOR. Имена и номера регистров ввода-вывода у микроконтроллеров разных типов приведены в приложении П4. Функции, выполняемые регистрами ввода-вывода, описываются при рассмотрении устройств, в работе которых они участвуют.
Работа некоторых устройств микроконтроллера зависит от состояния дополнительных однобитовых запоминающих элементов — установочных битов (Fuse Bits). Исходные значения установочных битов записываются на заводе-изготовителе. Значение установочного бита может быть изменено только при программировании микроконтроллера. В приложении П6 перечислены установочные биты в микроконтроллерах разных типов и указаны их исходные значения. Функции установочных битов рассматриваются при описании устройств, работа которых зависит от их значения.
2. Генератор тактового сигнала
Микроконтроллеры семейства AVR являются устройствами синхронного типа. Действия, выполняемые в микроконтроллере, привязаны к импульсам тактового сигнала. Микроконтроллеры имеют полностью статическую структуру и могут работать при тактовой частоте от 0 Гц. Максимальные значения тактовой частоты у микроконтроллеров разных типов и вариантов указана в приложении П1, в таблице Ш.З.
В качестве генератора тактового сигнала (GCK) используются:
■ внутренний генератор с внешним кварцевым или керамическим резонатором (XTAL);
■ внутренний RC-генератор (IRC);
■ внутренний генератор с внешней 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.
Рис. 2
Запись в стек выполняется в порядке убывания адресов. В качестве исходного адреса для обращений к стеку, который заносится в регистр-указатель стека в начале программы, целесообразно использовать старший адрес SRAM. В рассмотренном на рис. 2 примере таким адресом является адрес $025Е
6. Запоминающее устройство EEPROM
Постоянное запоминающее устройство EEPROM предназначено для хранения данных, записанных при программировании микроконтроллера и получаемых в процессе выполнения программы. При выключении напряжения питания данные сохраняются. Ячейка памяти содержит 8 разрядов. Емкость EEPROM (в числе бантов) у микроконтроллеров разных типов указана в табл. 1 в колонке EEPROM.
EEPROM имеет обособленное адресное пространство. При обращении к EEPROM адрес записывается в регистр адреса EEAR (№ $1Е). В микроконтроллерах типа 8515, 8535, ml63 и ml03 регистр адреса содержит два восьмизарядных регистра — EEARL и EEARH (№№ $1Е и $1F). Байт, предназначенный для записи, заносится в регистр данных EEDR (№ $Ш). Байт, получаемый при чтении, поступает в этот же регистр. Для управления процедурами записи и чтения используется регистр управления EECR (№ $1С).
Для записи байта в EEPROM необходимо:
1) записать адрес в регистр адреса;
2) записать байт в регистр данных;
3) установить в единичное состояние разряд EEMWE регистра EECR,
4) при EEMWE = 1 установить в единичное состояние разряд EEWE регистра EECR.
Процедура записи выполняется в зависимости от величины напряжения питания за 2,5—4 мс. При завершении записи разряд EEWE регистра EECR аппаратно сбрасывается в нулевое состояние.
Разряд EEMWE сохраняет единичное состояние в течение 4-х тактов после установки и аппаратпо сбрасывается в пулевое состояние.
В микроконтроллерах типа t12, tl5, 4433. 8535, ml63 и ml03 при нулевом состоянии разряда EEWE формируется запрос прерывания ЕЕ RDY. Прерывание по данному запросу разрешено при единичном состоянии разряда EERIE регистра EECR.
Для чтения байта из EEPROM необходимо:
1) записать адрес в регистр адреса;
2) установить в единичное состояние разряд EERE регистра EECR. Считанный байт поступает в регистр данных. Разряд EERE регистра EECR аппаратно сбрасывается в нулевое состояние.
7. Внешнее запоминающее устройство ERAM
Внешнее запоминающее устройство предназначено для хранения байтов данных. Оно может быть подключено к микроконтроллерам типа 8515 и m10З. Схема подключения ERAM к микроконтроллеру изображена на рис. 3.
Структура микроконтроллера
Рис 3
Для подключения используются:
■ 8 выводов порта А (РА), через которое выдается младший байт кода адреса и байт данных для записи и принимается байт данных при чтении;
■ 8 выводов порта С (PC), через которые выдается старший байт кода адреса;
■ вывод ALE, через который выдается импульс для записи младшего байта кода адреса во внешний регистр RG;
■ вывод WR, через который в ERAM выдается импульс управления записью;
■ вывод RD, через который в ERAM выдается импульс управления чтением.
В микроконтроллере типа 8515 для выдачи сигнала ALE используется отдельный вывод, а сигналы WR и RD выдаются через выводы PD6 и PD7 соответственно. В микроконтроллере типа тЮЗ сигналы управления выдаются через отдельные выводы.
Обращение к внешней памяти по командам обращения к SRAM возможно после установки в единичное состояние разряда SRE регистра MCUCR (№ $35). Обращение выполняется за 3 такта.
Если требуется, в цикл обращения может быть введен дополнительный такт (такт ожидания). Дополнительный такт вводится при единичном состоянии разряда SRW в регистре MCUCR.
8. Периферийные устройства
В группу периферийных устройств входят:
■ параллельные порты ввода-вывода;
■ последовательный порт SPI;
■ последовательный порт UART;
■ последовательный порт TWSI (I2C);
■ таймеры-счетчики общего назначения;
■ сторожевой таймер и аналого-цифровой преобразователь;
■ аналоговый компаратор;
■ программируемый аппаратный модулятор;
■ блок прерываний.
Параллельный порт ввода-вывода (Port, P) предназначен для ввода и вывода данных. Микроконтроллеры семейства AVR имеют от одного до шести портов. Порт может иметь от трех до восьми выводов. Число параллельных портов ввода-вывода и суммарное число выводов портов у микроконтроллеров разных типов, указано в табл. 1 в колонках Р и I/O соответственно.
Вывод порта может работать в режиме входа или в режиме выхода. Направление передачи бита устанавливается для каждого вывода в отдельности.
Некоторые выводы портов кроме ввода и вывода битов данных могут использоваться для выполнения альтернативных функций при работе других устройств. Суммарное число выводов параллельных портов, которые могут выполнять альтернативные функции у микроконтроллеров разных типов, указано в табл. 1 в колонке ALT. В это число не включены выводы, выполняющие альтернативные функции только при программировании микроконтроллера. Альтернативные функции выводов портов у микроконтроллеров разных типов указаны в приложении ПЗ.
Последовательный порт ввода-вывода SPI (Serial Peripheral Interface) предназначен для ввода и вывода байтов при обмене данными с другими устройствами, имеющими порт SPI. Обмен выполняется под управлением тактового сигнала порта. Устройство, инициализирующее обмен и вырабатывающее тактовый сигнал, является ведущим (master). Устройство, выполняющее обмен при поступлении тактового сигнала, является ведомым (slave). В процессе обмена оба устройства последовательно бит за битом одновременно выдают и принимают байт. Обмен выполняется с использованием трех шин.
Максимальная скорость приема/передачи (в битах в секунду) равна 1/4 частоты тактового сигнала микроконтроллера (у МК типа m163 — 1/2 тактовой частоты).
К одному ведущему устройству могут быть подключены несколько ведомых. Функции ведущего и ведомого могут меняться в процессе работы системы.
Порт SPI, который может работать в режиме ведущего и ведомого и использоваться для обмена данными в процессе работы, имеется у микроконтроллеров типа 4433, 8515, 8535, ml63 и m10З (табл. 1, колонка SPI). Микроконтроллеры других типов, кроме til и t28, имеют порт SPI, который может работать только в режиме ведомого и ис-пользуется при последовательном программировании микроконтроллера без дополнительного источника напряжения (Downloading).
Последовательный порт ввода-вывода UART (Universal Asynchronous Receiver-Transmitter) предназначен для передачи и приема байтов данных по двухпроводным линиям связи (например, по интерфейсу RS-232C или "токовая петля"). Прием и передача могут вестись одновременно. При передаче байта формируется последовательность из десяти или одиннадцати битов (кадр), содержащая стартовый бит, имеющий нулевое значение, восемь битов байта (DO, D1, ..., D7) и столовый бит, имеющий единичное значение. Между старшим битом байта (D7) и стоповым битом может помещаться дополнительный бит.
Порт UART входит в состав периферийных устройств микроконтроллеров типа 2313, 4433, 8515, 8535, т163 и ml03 (табл. 1, колонка UART).
Последовательный порт ввода-вывода TWSI (Two-Wire Serial Interface) предназначен для обмена байтами данных с другими устройствами по двухпроводной шине IС (Integrated Circuit). К шине могут подключаться до 127 устройств.
Устройство, подключенное к шине IС, может работать в качестве ведущего (master) или ведомого (slave). Ведущее устройство при освобождении шины от обмена между другими устройствами посылает в шину сигнал начала обмена и занимает шину, затем посылает адресный байт для выбора одного из ведущих устройств и задания направления обмена, передает или принимает байты данных и посылает сигнал окончания обмена.
Ведомое устройство, опознав свой адрес, в зависимости от указанного направления обмена принимает или передает данные.
Устройство, принимающее байты данных, после приема каждого байта посылает в шину сигнал подтверждения приема. Адресный байт может содержать общий адрес для передачи данных одновременно во все ведомые устройства.
Скорость обмена задается ведущим устройством, обмен может вестись со скоростью до 400000 бит/с.
Последовательный порт TWSI имеется у микроконтроллера типа ml63.
Таймер-счетчик общего назначения (General Purpose Timer/Counter) предназначен для формирования запроса прерывания при истечении заданного интервала времени (режим таймера) или свершении заданного числа событий (режим счетчика). Микроконтроллеры семейства AVR могут иметь от одного до трех таймеров-счетчиков общего назначения Т/СХ (X — номер таймера-счетчика, X = 0, 1, 2).
Основным элементом таймера-счетчика является базовый счетчик, который ведет счет на сложение. При его переполнении формируется запрос прерывания Т/СХ OVF.
Таймер-счетчик общего назначения может выполнять дополнительные функции:
■ функцию захвата;
■ функцию сравнения;
■ функцию широтно-импульсного модулятора;
■ функцию счета реального времени.
Функция захвата (capture) заключается в запоминании кода, сформированного в базовом счетчике, в специальном регистре захвата при изменении значения определенного внешнего или внутреннего сигнала. При этом формируется запрос прерывания Т/СХ САРТ.
Функция сравнения (compare) заключается в изменении значения сигнала на определенном выходе микроконтроллера при совпадении кода, формируемого в базовом счетчике, с кодом в специальном регистре сравнения. При этом формируется запрос прерывания Т/СХ СОМР.
Функция широтно-импульсного модулятора (PWM) заключается в формировании на определенном выходе микроконтроллера импульсной последовательности с заданными периодом повторения и длительностью импульсов.
Функции сравнения и PWM реализуются с использованием одного и тою же оборудования. Выбор нужной функции выполняется программными средствами.
Функция счета реального времени (Real Time Clock) реализуется в таймере-счетчике при использовании дополнительного внутреннего генератора с внешним кварцевым резонатором с частотой 32768 Гц ("часовой" кварц). При этом параметры процессов в таймере-счетчике с высокой точностью привязаны к единице измерения реального времени — секунде.
В зависимости от разрядности счетчика и выполняемых дополнительных функций могут быть выделены пять типов таймеров-счетчиков общего назначения, входящих в группу периферийных устройств микроконтроллеров семейства AVR.
Тип А. Восьмиразрядный таймер-счетчик без дополнительных функций.
Тип В. Восьмиразрядный таймер-счетчик с функцией сравнения/PWM.
Тип С. Восьмиразрядный таймер-счетчик с функцией сравнения/PWM и функцией счета реального времени.
Тип D. Шестнадцатиразрядный таймер-счетчик с функциями захвата и сравнения/PWM.
Тип Е. Шестнадцатиразрядный таймер-счетчик с функцией захвата и двумя каналами для выполнения функций сравнения/PWM.
В табл. 1, в колонках Т/СО, Т/С1 и Т/С2 указаны типы таймеров-счетчиков, входящих в группу периферийных устройств под этими именами у микроконтроллеров разных типов. Таймер-счетчик одного типа в микроконтроллерах разных типов может иметь разные имена.
Сторожевой таймер (Watchdog Timer, WDT) предназначен для ликвидации последствий сбоя в ходе программы путем перезапуска микроконтроллера при обнаружении сбоя. Сторожевой таймер имеется у микроконтроллеров всех типов.
Аналого-цифровой преобразователь (Analog-to-Digital Converter) формирует десятиразрядный двоичный код числа, пропорционального величине напряжения аналогового сигнала па входе микроконтроллера. В микроконтроллерах AVR к преобразователю могут подключаться от четырех до восьми входов микроконтроллера.
Аналого-цифровой преобразователь входит в состав периферийных устройств микроконтроллеров типа t15, 4433, 8535, ml63 и ml03. Число подключаемых входов у микроконтроллеров названных типов указано в табл. 1, в колонке ADC.
Аналого-цифровой компаратор (Analog Comparator, AC) сравнивает по величине аналоговые сигналы, поступающие на два входа микроконтроллера, и формирует запрос прерывания ANA COMP, когда разность их значений меняет знак. При этом также может быть выдан сигнал для выполнения функции захвата в таймере-счетчике общего назначения.
Аналоговый компаратор входит в состав периферийных устройств микроконтроллеров всех типов, кроме 2323 и 2343 (табл. 1, колонка АС).
Программируемый аппаратный модулятор (Programmable Hardware Modulator, РИМ) предназначен для формирования импульсного сигнала на выводе РА2 для питания светодиодных индикаторов. Длительность импульса и скважность сигнала задаются программными средствами. Ток нагрузки может иметь величину до 25 мА при напряжении питания 1,8 В. Программируемый аппаратный модулятор имеется у микроконтроллеров типа t28.
Блок прерываний (Interrupt Unit, IU) организует переход к выполнению прерывающей программы при поступлении запроса прерывания, если прерывание по данному запросу разрешено и он имеет более высокий приоритет, чем другие запросы, поступившие одновременно с ним.
Прерывание разрешено, если разряд 1 регистра SREG находится в единичном состоянии и в единичном состоянии находится разряд, разрешающий/запрещающий прерывание по данному запросу, расположенный в одном из регистров ввода-вывода. Приоритетность запросов задана аппаратно.
При переходе к выполнению прерывающей программы разряд I регистра SREG сбрасывается в нулевое состояние и сохраняется в этом состоянии до завершения прерывающей программы. Разряд 1 может быть переведен в единичное состояние по команде в прерывающей программе.
Запросы в блок прерываний поступают из внешних источников и источников, расположенных во внутренних устройствах микроконтроллера. Общее число запросов прерывания у микроконтроллеров разных типов указано в табл. 1, в колонке IU
Литература
1 Тавернье К. PIC-микроконтроллеры. Практика применения: Пер. с фр. -М: ДМКПресс, 2008. - 272 с.: ил. (Серия «Справочник»).
2 Борзенко А.Е. IBMPC: устройство, ремонт, модернизация. – 2-е изд. перераб. и доп. – М.: ТОО фирма «Компьютер Пресс», 2006. – 344с.: ил.
3 Цифровые интегральные микросхемы: Справ./М. И. Богданович, И.Н. Грель, В.А. Прохоренко, В.В. Шалимо.–Мн.: Беларусь, 2001. – 493 с.: ил.
4 ДСТУ 3008-95. Документация. Отчеты в сфере науки и техники. Структура и правила оформления.
5 Охрана труда в вычислительных центрах. Ю.Г. Собаров и др. – М.: Машиностроение, 2000. – 192с.
|