Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное_пособие.doc
Скачиваний:
70
Добавлен:
10.11.2019
Размер:
8.13 Mб
Скачать

2 Архитектура микроконтроллера

2.1 Структура микроконтроллера

Структура микроконтроллера включает следующие функциональные блоки:

  • 8-разрядное арифметико-логическое устройство (АЛУ);

  • внутреннюю flash-память программ объемом 16 Кбайт с возможностью внутрисистемного программирования через последовательный интерфейс;

  • 32 регистра общего назначения;

  • внутреннюю энергонезависимую (EEPROM) память данных объемом 512 байт;

  • внутреннее ОЗУ данных объемом 1Кбайт;

  • 4 параллельных порта ввода-вывода (32 линии ввода-вывода);

  • 3 программируемых таймера-счетчика Т0, Т1 и Т2;

  • последовательные интерфейсы UART, SPI и TWI;

  • подсистему прерываний и управления (включая сторожевой таймер);

  • аналоговый компаратор;

  • 8-канальный аналого-цифровой преобразователь;

  • встроенный интерфейс JTAG, с помощью которого реализуются функции программирования программной памяти и внутрисхемной эмуляции (отладка программного обеспечения в самом микроконтроллере).

Структура микроконтроллера ATmega16 приведена на рисунке 2. Упрощенная структура представлена на рисунке 3. Напомним, что микроконтроллер состоит из процессора, памяти и периферийных или встроенных устройств ввода-вывода. Процессор имеет в своем составе: АЛУ, счетчик команд (программный счетчик), регистр команд, регистр флагов или состояния, и устройство управления.

Схемы на рисунке 2 и рисунке 3 называют иногда программными моделями, так в них не показаны такие устройства как дешифраторы, мультиплексоры, устройство управления и другие блоки, которые реально имеются в микроконтроллере.

2.2 Организация программной памяти

FLASH память программ предназначена для хранения команд, управляющих функционированием микроконтроллера, и констант. Емкость программной памяти составляет 16К байт, но ячеек 8К. Разрядность одной ячейки составляет 16 бит (2 байта или одно слово). Тип программной памяти микроконтроллера – ПЗУ с электрической записью и электрическим стиранием (FLASH - ROM). Программа представляет собой логическую последовательность команд. Для большинства команд код команды занимает

Рисунок 2

одну ячейку программной памяти, т.е. длина такой команды составляет 16 двоичных разрядов.

Несколько команд микроконтроллера имеют длину два слова и размещаются в двух ячейках памяти программ.

16-разрядный счетчик команд (PC) предназначен для хранения адреса ячейки программной памяти, из которой считывается команда. Иначе, при считывании команды адрес ячейки выбирается из счетчика команд. Аппаратно РС представляет собой суммирующий загружаемый счетчик. Используемое число разрядов счетчика команд определяется емкостью программной памяти. Так как емкость программной памяти равна 16К байт (число ячеек равно 8К), то число разрядов счетчика равно 13. Так как шина данных микроконтроллера имеет 8 разрядов, то счетчик команд состоит физически из двух частей. Старшие разряды кода адреса ячейки программной хранятся в пятиразрядном регистре РСН, младшие - в восьмиразрядном регистре PCL.

На линейном участке программы после чтения команды из ПЗУ содержимое счетчика команд автоматически увеличивается на единицу, т.е. подготавливается адрес следующей ячейки памяти. В командах передачи управления (переходы, вызовы подпрограмм и возвраты из подпрограмм) счетчик может загружаться новым значением, указанным командой. Упрощенная работа процессора состоит в последовательном считывании команд из программной памяти и их выполнении.

Регистр команд или инструкций (IR) предназначен хранения кода текущей команды, которая помещается в него при считывании ячейки программной памяти. Загрузка регистра команд производится по 16-разрядной шине команд. После загрузки регистра команд микроконтроллер работает в соответствии с этой командой (инструкцией).

Микроконтроллер имеет встроенный тактовый генератор, вырабатывающий колебания импульсной формы с тактовой частотой Fclk . Под действием кода команды и импульсов от тактового генератора формируется последовательность сигналов для управления всеми функциональными блоками микроконтроллера: импульсы на входы синхронизации регистров, счетчиков, сигналы выбора устройств, импульсы записи/чтения памяти и др. . Например, по команде записи в ячейку ОЗУ сначала подается сигнал открывания выходных тристабильных буферов устройства, от которого будет подан адрес ячейки памяти. В следующий момент времени подается сигнал открывания выходных буферов устройства, от которого будут поданы данные. В следующий момент времени подается сигнал (импульс) записи на соответствующий вход памяти.

В упрощенном рассмотрении процессор “может” только считывать команды из программной памяти. Все остальные действия процессора определяются конкретной командой. Разряды кода команды, загруженной в регистр команд, определяют действия процессора при ее выполнении. В коде команды заключена следующая информация:

  • операция, которая будет выполняться: сложение, вычитание, сдвиг, пересылка и др.;

  • адрес или адреса регистров или ячеек памяти, в которых размещены операнды;

  • адрес помещения результата операции: память, регистр;

  • способ адресации: непосредственный, прямой, косвенный и др.;

  • длина команды: 1 или 2 слова.

Рисунок 3