Читаем PIC-микроконтроллеры. Все, что вам необходимо знать полностью

Последовательность операций «выборка команды/ее дешифровка/исполнение», т. е. так называемый цикл выборки — исполнения команды, является фундаментальным понятием, необходимым для понимания работы компьютера. Чтобы проиллюстрировать этот рабочий ритм, рассмотрим простую программу, которая считывает переменную NUM_1, прибавляет к ней число 4 и записывает результат в переменную NUM_2. На языке высокого уровня Си эту операцию можно записать следующим образом[48]:

NUM_2 = NUM_1 + 4;

Несколько более подробно структура нашего компьютера, который я назвал BASIC (аббревиатура от Basic All-purpose Stored Instruction Computer — базовый универсальный компьютер с хранимой программой), изображена на Рис. 3.4. На этом рисунке показаны ЦПУ и обе области памяти со своими шинами данных и соответствующими шинами адреса.

Рис. 3.4.Состояние ЦПУ в момент выполнения первой команды при одновременной выборке второй команды. Все адреса/данные представлены в шестнадцатеричной системе

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

Сначала разберемся с процессом выборки команд.

Счетчик команд

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

Поскольку счетчик команд подключен через внутреннюю шину данных к исполнительному блоку, мы можем использовать АЛУ для управления этим регистром и изменения предопределенной последовательности исполнения команд. Таким образом, можно реализовать различные команды перехода к другим частям программы, а также команды пропуска.

Конвейер

В двух регистрах команд содержатся коды команд, считанные из памяти программ. В начало конвейера (в первый регистр команд, IR1) загружается код n-й команды и хранится там для обработки в следующем цикле. Это позволяет исполнять команду n - 1, находящуюся в конце конвейера (во втором регистре команд, IR2) одновременно с выборкой n-й команды и загрузкой ее в конвейер. Работа конвейера показана на Рис. 3.7.

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

Дешифратор команд ID является «мозгами» ЦПУ — он дешифрует код команды, находящийся в регистре IR2, и формирует в определенной последовательности сигналы для исполнительного блока, необходимые последнему для определения местоположения операнда (если таковой имеется) в памяти данных и для переключения АЛУ в заданный режим. На Рис. 3.4 показано выполнение команды movf h’25’,w (копирование содержимого регистра данных с адресом h’25’ в рабочий регистр).

* * *

Исполнительный блок осуществляет обращения к памяти данных и конфигурирование АЛУ. Работой исполнительного блока управляет дешифратор команд, функционирование которого, в свою очередь, зависит от значения кода команды n — 1, находящегося в регистре команд IR2.

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

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

Когда ЦПУ собирается обратиться к ячейке (регистру) памяти данных, он помещает адрес этой ячейки в регистр адреса FAR. При этом производится непосредственная адресация памяти данных по ее шине адреса. Как показано на Рис. 3.4, из памяти данных считывается регистр с адресом h’25’, и его содержимое защелкивается во внутреннем регистре данных FDR процессора.

Регистр данных

Этот «двунаправленный» регистр выполняет две функции:

• Хранит содержимое адресованного регистра данных, если ЦПУ осуществляет цикл чтения. Именно это происходит при выполнении 1-й команды (movf h’25’,w), которая пересылает (копирует) содержимое регистра с адресом h’25’ в рабочий регистр.

• Хранит данные, которые ЦПУ собирается записать в адресованный регистр данных. Такой цикл записи, в частности, имеет место при выполнении команды movwf h’26’, которая пересылает (копирует) содержимое рабочего регистра в регистр с адресом h’26’.

Арифметико-логическое устройство

АЛУ выполняет арифметические и логические операции, определяемые значением кода режима (см. Рис. 2.10 на стр. 39), который извлекается из кода команды дешифратором команд.

Регистр состояния

Этот регистр содержит флаги нуля Z и переноса С, которые устанавливаются соответственно, если результат операции равен нулю и если в результате сложения возник перенос.

Рабочий регистр
Перейти на страницу:

Все книги серии Программируемые системы

PIC-микроконтроллеры. Все, что вам необходимо знать
PIC-микроконтроллеры. Все, что вам необходимо знать

Данная книга представляет собой исчерпывающее руководство по микроконтроллерам семейства PIC компании Microchip, являющегося промышленным стандартом в области встраиваемых цифровых устройств. В книге подробно описывается архитектура и система команд 8-битных микроконтроллеров PIC, на конкретных примерах изучается работа их периферийных модулей.В первой части излагаются основы цифровой схемотехники, математической логики и архитектуры вычислительных систем. Вторая часть посвящена различным аспектам программирования PIC-микроконтроллеров среднего уровня: описывается набор команд, рассматривается написание программ на ассемблере и языке высокого уровня (Си), а также поддержка подпрограмм и прерываний. В третьей части изучаются аппаратные аспекты взаимодействия микроконтроллера с окружающим миром и обработки прерываний. Рассматриваются такие вопросы, как параллельный и последовательный ввод/вывод данных, временные соотношения, обработка аналоговых сигналов и использование EEPROM. В заключение приводится пример разработки реального устройства. На этом примере также демонстрируются простейшие методики отладки и тестирования, применяемые при разработке реальных устройств.Книга рассчитана на самый широкий круг читателей — от любителей до инженеров, при этом для понимания содержащегося в ней материала вовсе не требуется каких-то специальных знаний в области программирования, электроники или цифровой схемотехники. Эта книга будет также полезна студентам, обучающимся по специальностям «Радиоэлектроника» и «Вычислительная техника», которые смогут использовать ее в качестве учебного пособия при прослушивании соответствующих курсов или выполнении курсовых проектов.

Сид Катцен

Радиоэлектроника

Похожие книги

Электроника для начинающих (2-е издание)
Электроника для начинающих (2-е издание)

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

Чарльз Платт

Радиоэлектроника / Технические науки
Искусство схемотехники. Том 3 (Изд.4-е)
Искусство схемотехники. Том 3 (Изд.4-е)

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

Пауль Хоровиц , Уинфилд Хилл

Техника / Радиоэлектроника
Электроника для начинающих
Электроника для начинающих

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

Паоло Аливерти , Чарльз Платт

Радиоэлектроника / Технические науки