Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
32
Добавлен:
03.03.2016
Размер:
3 Мб
Скачать

201

Рис. 2.2. Гарвардская архитектура МП

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

МК RISC имеют сокращенную систему команд (Reduse Instruction Set Computer), из которой исключены редко применяемые команды. Общее число команд находится в пределах 50…100. Первые RISС-процессоры были разработаны в начале 1980-х годов в Стэнфордском и Калифорнийском университетах США. Простая архитектура позволяет как удешевить МК, так и поднять тактовую частоту.

Характерные особенности МК RISC:

Фиксированная длина машинных инструкций (например, 32 бита) и простой формат команды.

Одна инструкция выполняет только одну операцию с памятью — чтение или запись. Операции вида «прочитать-изменить-записать» отсутствуют.

Большое количество регистров общего назначения (32 и более).

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

(например, все команды имеют длину 4 байта), резко уменьшено число используемых способов адресации. Данные, как правило, обрабатываются только с регистровой или непосредственной адресацией. Значительно увеличено число регистров процессора,

 

202

что позволяет редко обращаться к

внешней памяти, а это повышает

быстродействие. Идентичность временных циклов выполнения команд позволяет проще организовывать конвеерные методы обработки информации.

Существуют промежуточные решения между CISC и RISC – процессорами, например МК AVR фирмы Atmel, являющихся очень популярными у разработчиков в настоящее время. Они имеют Гарвардскую архитектуру и достаточно развитую, хотя и усеченную систему команд. В частности в их арсенале насчитывается до 133 инструкций, что соответствует CISC. С другой стороны большинство инструкций выполняются за один такт, в отличие от CISC МК с Принстонской архитектурой, где на выполнение одной инструкции требуется минимум 12 тактов, поэтому, если считать что для исполнения некоторых CISC инструкций потребуется выполнение до 3 команд RISC, быстродействие МК AVR более чем в 4 раза превышает быстродействие классических МК с Принстонской архитектурой. Фактически микропроцессоры AVR стали индустриальным стандартом.

Последними по времени (менее 10 лет назад) появились VLIW - процессоры (Very Long Instruction Word), особенность которых состоит в использовании очень длинных команд (16 байт и более). Отдельные поля длинной команды определяют несколько подлежащих реализации микроопераций, которые могу выполняться параллельно во времени в нескольких операционных устройствах процессора. Таким образом длинная команда определяет сразу группу микроопераций. VLIW - процессоры считаются перспективными для высокопроизводительных систем.

Большое многообразие производимых МК не позволяет рассмотреть их все в рамках данного курса. Поэтому ограничимся рассмотрением наиболее популярных микропроцессоров фирмы Atmel с CISC архитектурой MCS-51 и RISC архитектурой

AVR.

2.2. Архитектура микроконтроллеров

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

● выявление набора доступных для программирования регистров, их функционального назначения и структуры;

 

203

● понимание организации оперативной

памяти и порядка ее использования;

знакомство с типами данных;

изучение формата машинных команд;

выяснение организации обработки прерываний.

2.2.1.Архитектура микроконтроллеров MCS-51

Архитектура семейства MCS-51 в значительной мере предопределяется ее назначением - построение компактных и дешевых цифровых устройств. Все функции МК реализуются с помощью единственной микросхемы. В состав семейства MCS-51 входит целый ряд микросхем от самых простых микроконтроллеров до достаточно сложных. Микроконтроллеры семейства MCS-51 позволяют выполнять как задачи управления различными устройствами, так и реализовывать отдельные узлы аналоговой схемы. Все микросхемы этого семейства работают с одной и той же системой команд, большинство из них выполняется в одинаковых корпусах с совпадающей цоколевкой (нумерация выводов для корпуса). Это позволяет использовать для разработанного устройства микросхемы разных фирм - производителей (таких как Intel, Dallas, Atmel, Philips и т.д.) без переделки принципиальной схемы устройства и программы.

MCS-51 выполнен по Гарвардской архитектуре, где адресные пространства памяти программ и данных разделены.

Структурная схема контроллера представлена на рис.2.3 и состоит из следующих основных функциональных узлов: блока управления, арифметико-логического устройства, блока таймеров/счетчиков, последовательного интерфейса и прерываний, программного счетчика (счетчика команд), памяти данных и памяти программ. Двусторонний обмен осуществляется с помощью внутренней 8-разрядной магистрали данных. Рассмотрим подробнее назначение каждого блока. По такой схеме построены практически все представители семейства MCS-51. Различные микросхемы этого семейства различаются только регистрами специального назначения (в том числе и количеством портов). Система команд всех контроллеров семейства MCS-51 содержит 111 базовых команд с форматом 1, 2 или 3 байта и не изменяется при переходе от одной микросхемы к другой. Это обеспечивает прекрасную переносимость программ с одной микросхемы на другую.

204

Блок управления и синхронизации (Timing and Control) предназначен для выработки синхронизирующих и управляющих сигналов, обеспечивающих координацию совместной работы блоков ОЭВМ во всех допустимых режимах ее работы. В состав блока управления входят:

устройство формирования временных интервалов,

комбинационная схема ввода-вывода,

регистр команд,

дешифратор команд.

Входные и выходные сигналы блока управления и синхронизации:

1PSEN – разрешение программной памяти;

2ALE – выходной сигнал разрешения фиксации адреса;

3PROG – сигнал программирования;

4EA – блокировка работы с внутренней памятью;

5VPP – напряжение программирования;

6RST – сигнал общего сброса.

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

фазу 1 (Phase 1 - P1) и фазу 2 (Phase 2 - P2). Таким образом, машинный цикл может быть определен как последовательность временных интервалов S1P1, S1P2, S2P1,....,S6P2. Длительность фазы равна периоду следования тактовых импульсов, поэтому машинный цикл занимает 12 тактовых периодов.

Количество машинных циклов определяет продолжительность выполнения команд. Практически все команды выполняются за один или два машинных цикла, кроме команд умножения и деления, продолжительность выполнения которых составляет четыре машинных цикла. Логика ввода - вывода предназначена для приема и выдачи сигналов, обеспечивающих обмен информации с внешними устройствами через порты ввода вывода Р0-Р3.

Рис 2.3. Структурная схема однокристального микроконтроллера Intel 8051 (семейство MCS-51)

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

Арифметико-логическое устройство (ALU) представляет собой параллельное восьмиразрядное устройство, обеспечивающее выполнение арифметических и логических операций. АЛУ состоит из:

регистров временного хранения -TMP1 и TMP2,

ПЗУ констант,

сумматора,

дополнительного регистра - регистра В,

206

аккумулятора - ACC,

регистра слова состояния программ (регистр флагов)- PSW . Регистры временного хранения TMP1, TMP2 - восьмиразрядные регистры,

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

ПЗУ констант обеспечивает выработку корректирующего кода при двоичнодесятичном представлении данных, кода маски при битовых операциях и кода констант.

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

Регистр B - восьмиразрядный регистр, используемый во время операций умножения и деления. Для других инструкций он может рассматриваться как дополнительный сверхоперативный регистр.

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

Регистр состояния программ PSW (Programm Status Word) предназначен для хранения слова состояния выполняемых команд. При выполнении многих команд в ALU формируется ряд признаков операции (флагов), которые фиксируются в регистре слова состояния программы (PSW). В табл. 1 приводится перечень флагов PSW, даются их символические имена и описываются условия их формирования.

Блок прерываний и последовательного интерфейса - UART(Universal Asynchronous Receiver/Transmitter) предназначен для организации ввода - вывода последовательных потоков информации и организации системы прерывания программ.

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

207

 

 

 

Таблица 1

 

 

 

 

 

 

 

 

 

Сим-

Раз-

 

Имя и назначение

 

 

вол

ряд

 

 

 

 

 

 

 

CY

PSW.7

Флаг

переноса.

 

Устанавливается

и

 

 

сбрасывается

 

аппаратно

или

 

 

программно

при

выполнении

 

 

арифметических

 

и

логических

AC

PSW.6

Флаг

вспомогательного

переноса.

 

 

Устанавливается

 

и

сбрасывается

 

 

только

аппаратно

при

выполнении

 

 

команд сложения и вычитания и

 

 

сигнализирует о переносе или займе в

F0

PSW.5

Флаг

0. Может

быть

установлен,

 

 

сброшен или проверен программой как

 

 

флаг,

 

 

специфицируемый

RS1

PSW.4

Выбор

банка

регистров.

 

 

Устанавливается

 

и

сбрасывается

 

 

программно для выбора рабочего банка

RS0

PSW.0

регистров

 

 

 

 

 

OV

PSW.2

Флаг переполнения. Устанавливается и

 

 

сбрасывается

 

аппаратно

при

 

 

выполнении арифметических операций

PSW.1

Не

 

 

 

 

 

 

P

PSW.0

Флаг

паритета.

Устанавливается

и

 

 

сбрасывается аппаратно

в

каждом

 

 

цикле и фиксирует нечетное/четное

 

 

число

единичных

битов

в

 

 

аккумуляторе, т.е. выполняет контроль

Эти действия могут носить сервисный характер, быть запросами со стороны программы пользователя на выполнение обслуживания либо быть реакцией на нештатные ситуации.

Всостав блока входят:

1.логика управления,

2.регистр управления,

3.буфер передатчика,

4.буфер приемника,

5.приемопередатчик последовательного порта,

6.регистр приоритетов прерываний,

7.регистр разрешения прерываний,

8.логика обработки флагов прерываний и схема выработки вектора.

Счетчик команд (Program Counter) предназначен для формирования текущего 16разрядного адреса внутренней памяти программ и 8/16-разрядного адреса внешней

 

208

памяти программ. В состав счетчика

команд входят 16-разрядные буфер РС,

регистр РС и схема инкремента (увеличения содержимого на 1).

Память данных ОЗУ (RAM) предназначена для временного хранения информации, используемой в процессе выполнения программы.

Память программ (EPROM) предназначена для хранения программ и представляет собой постоянное запоминающее устройство (ПЗУ). В разных микросхемах применяются масочные, стираемые ультрафиолетовым излучением или FLASH ПЗУ. Регистр указателя данных (DPTR) предназначен для хранения 16 - разрядного адреса внешней памяти данных.

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

Порты P0, P1, P2, P3 являются квазидвунаправленными портами ввода - вывода и предназначены для обеспечения обмена информацией ОЭВМ с внешними устройствами, образуя 32 линии вводавывода.

Они предназначены для ввода или вывода информации побайтно. Каждый порт содержит управляемые регистр-защелку, входной буфер и выходной драйвер.

Выходные драйверы портов P0 и P2, а также входной буфер порта P0 используются при обращении к внешней памяти. При этом через порт P0 в режиме временного мультиплексирования сначала выводится младший байт адреса, а затем выдается или принимается байт данных. Через порт P2 выводится старший байт адреса в тех случаях, когда разрядность адреса равна 16 бит.

Все выводы порта P3 могут быть использованы для реализации альтернативных функций, перечисленных в табл. 2 . Эти функции могут быть задействованы путем записи 1 в соответствующие биты регистра-защелки (P3.0 – P3.7) порта P3.

 

 

Табл. 2

 

 

Альтернативные функции порта P3

Сим-

Раз-

Имя и назначение

вол

ряд

 

RD

Р3.7

Чтение. Активный сигнал низкого уровня

 

формируется аппаратно при обращении к внешней

 

 

памяти данных

WR

Р3.6

Запись. Активный сигнал низкого уровня

 

 

формируется аппаратно при обращении к внешней

 

 

памяти данных

 

 

209

T1

Р3.5

Вход таймера/счетчика 1 или тест-вход

T0

Р3.4

Вход таймера/счетчика 0 или тест-вход

INT1

P3.3

Вход запроса прерывания 1. Воспринимается сигнал

 

 

низкого уровня или срез

INT0

Р3.2

Вход запроса прерывания 0. Воспринимается сигнал

 

 

низкого уровня или срез

TXD

 

Выход передатчика последовательного порта в

 

Р3.1

режиме UART*. Выход синхронизации в режиме

 

регистра сдвига

RXD

Р3.0

Вход приемника последовательного порта в режиме

 

 

UART. Ввод/вывод данных в режиме регистра сдвига

 

 

 

*Через универсальный асинхронный приемопередатчик UART происходят прием и передача информации, представленной последовательным кодом (младшими битами вперед) в полном дуплексном режиме обмена.

Р0 является двунаправленным, а Р1 Р3 квазидвунаправленными. Каждая линия портов может быть использована независимо для ввода или вывода.

По сигналу RST в регистры-защелки всех портов автоматически записываются единицы, настраивающие их тем самым на режим ввода.

Все порты могут быть использованы для организации ввода/вывода информации по двунаправленным линиям передачи. Однако порты P0 и P2 не могут быть использованы для этой цели в случае, если система имеет внешнюю память, связь с которой организуется через общую разделяемую шину адреса/данных, работающую в режиме временного мультиплексирования.

Организация памяти и функционирование микроконтроллера

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

Таким образом по однонаправленной адресной шине посылаются адреса, определяя объект, с которым будет обмен по шине данных (двунаправленной). По шине управления в разных направлениях передаются управляющие сигналы. Микроконтроллеры семейства MCS-51 построены по Гарвардской архитектуре. Это означает, что память данных и память программ в этих микросхемах разделены и

210

имеют отдельное адресное пространство. В этих микроконтроллерах имеется пять адресных пространств: память программ, внешняя память данных три для внутренней памяти. Такое построение памяти позволяет удвоить доступное адресное пространство. Кроме того такое построение памяти позволяет в ряде случаев увеличить быстродействие микросхем.

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

Применяется несколько способов формирования адресов.

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

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

Соседние файлы в папке Алаев А.Н