АРХИТЕКТУРА МИКРОКОНТРОЛЛЕРА

 

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

Типовая структура микроконтроллера изображена на рис. 1.1. Микроконтроллер состоит из трех, связанных системными шинами, элементов: процессорного ядра, памяти и набора программируемых функциональных блоков различного назначения.

 
 

 

 


Рис. 1.1. Структура микроконтроллера

 

Процессорное ядро (MCU - Microprocessor Core Unit) является основой микроконтроллера. Оно выполняет все вычислительные операции и, одновременно, управляет работой всех остальных элементов схемы. По системным шинам процессорное ядро обменивается данными с памятью и всеми функциональными блоками. Разрядность процессорного ядра определяет разрядность микроконтроллера. Наиболее распространены в настоящее время 8-битные (8-разрядные) микроконтроллеры. Вместе с тем, широкое применение в простых задачах находят и 4-битные изделия, а в сложных высокопроизводительных системах 16- и 32-битные.

В памяти (Memory) хранится программа работы микроконтроллера, исходные данные и все промежуточные результаты вычислений. Память состоит из множества многоразрядных ячеек, каждая из которых имеет свой адрес. По этому адресу процессорное ядро находит конкретную ячейку памяти в процессе обмена. Память микроконтроллера обычно разделена на две части: память данных (Data Memory) и память программ (Program Memory).

Функциональные блоки различных типов обеспечивают взаимодействие микроконтроллера с внешним миром. Эти блоки могут выполнять самые различные функции: ввод и вывод информации, подсчет внешних событий и интервалов времени, передача внешних запросов на процессорное ядро, аналого-цифровые и цифроаналоговые преобразования сигналов, сравнение различных величин, контроль за напряжением питания и др. Для процессорного ядра любой функциональный блок представляется в виде одного или нескольких регистров. Каждый регистр имеет свой оригинальный адрес, по которому процессорное ядро находит его в процессе работы.

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

Практически все ведущие производители разрабатывают целые семейства микроконтроллеров с так называемой модульной структурой. При этом процессорное ядро для всего семейства неизменно, а память и состав функциональных блоков у каждого микроконтроллера различны. Процессорное ядро всегда имеет свою оригинальную схему и, обязательно, оригинальное имя. Например, микроконтроллеры фирмы Motorola построены на базе ядра HC05 и НС08, фирма Intel создала ядро MCS-51 и MCS-96, контроллеры фирмы Microchip строятся на базе ядра PIC12, PIC16, PIC17, PIC18, фирма Atmel усиленно развивает семейство микроконтроллеров с ядром AVR.

Процессорное ядро на основе известных схемотехнических решений, технологий проектирования и производства цифровых схем реализует определенную архитектуру системы. Для микропроцессорной системы понятие «архитектура» включает в себя множество её структурных особенностей, основными из которых считаются: организация памяти и система команд. В настоящее время известны четыре общих архитектурных принципа в той или другой мере, реализуемые в любом процессорном ядре.

По организации памяти различаются:

 

0 Неймановская архитектура - характеризуется общим пространством памяти для хранения данных и программы. При этом разрядность памяти зафиксирована (как правило, равна одному байту). Такую архитектуру имеют, например, микроконтроллеры HC05 и НС08 фирмы Motorola, в которых общий массив 8-битных ячеек памяти включает в себя как память программ, так и память данных [5].

0 Гарвардская архитектура - отличается разделением памяти программ и памяти данных. При этом разрядность памяти программ и памяти данных, а также шины доступа к ним, различны. В частности, все микроконтроллеры PIC12, PIC16 фирмы Microchip имеют 8-битную память данных, а разрядность памяти программ у них различна: PIC12 имеют 12 битную память программ, a PIC16- 14 битную [3].

 

По системе команд различаются:

 

0 CISC-архитектура (Complicated Instruction Set Computer) - архитектура с развитой системой команд. Система команд процессорного ядра имеет инструкции разного формата: однобайтовые, двухбайтовые, трехбайтовые. Различные инструкции при этом имеют и существенно разное время исполнения.

0 RISC-архитектура (Reduced Instruction Set Computer) - архитектура с сокращенным набором команд. Одна инструкция, как правило, занимает только одну ячейку памяти, и все инструкции имеют равное время исполнения.

 

Микроконтроллеры с RISC-архитектурой имеют сравнительно более высокую производительность при той же тактовой частоте сигнала синхронизации и в настоящее время более распространены.

Разные производители в своих изделиях используют зачастую различные архитектурные принципы. Поэтому приведенное выше деление довольно условно

Например, AVR-микроконтроллеры фирмы Atmel, по мнению её создателей, имеют улучшенную RISC (enhanced RISC) архитектуру. В соответствии с принципами RISC - архитектуры практически все команды микроконтроллера (исключая те, у которых одним из операндов является 16-разрядный адрес) занимают только в одну ячейку памяти программ. Но сделать это разработчикам удалось за счет одновременного использования принципов Гарвардской архитектуры и расширения ячейки памяти программ до 16 разрядов. Поэтому в системе команд AVR-микроконтроллеров целых 130 различных команд, что значительно больше, чем у большинства современных RISC - архитектур. Для сравнения, контроллеры фирмы Microchip с ядром PIC12, PIC16, PIC17 имеют всего 33 команды [3].