Функционирование микропроцессорной системы

Блок-схема алгоритма функционирования на примере МПС на основе МП КР580ВМ80А в течение рабочего цикла выполнения команды приведена на рис. 11.91.

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

Считанная по этому адресу из памяти команда поступает на шину данных и принимается регистром команд. В счетчике команд МП формируется адрес следующей команды.

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

После исполнения данной команды на шину адреса поступает адрес следующей команды и т.д.

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

Часто возникает необходимость заставить МП автоматически выполнить одну из набора специальных программ, когда в программе или в МПС возникают некоторые определенные условия. Такие действия называют прерыванием, а выполняемую при этом программу — процедурой прерывания. Различают внутреннее и внешнее прерывания. Внутреннее прерывание исполняемой программы вызывается состоянием самого МП, а внешнее — специальным сигналом, подаваемым в МП от обслуживаемого им внешнего устройства.

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

1бб

Блок-схема алгоритма функционирования МПС

Рис. 11.91. Блок-схема алгоритма функционирования МПС

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

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

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

В большинстве МП приняты запросы на прерывания немаскируемые и маскируемые.

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

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

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

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

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

11.4.5. Микроконтроллеры 11.4.5.1. Структура микроконтроллера

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

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

Процессорное ядро всегда имеет свою оригинальную схему и обязательно оригинальное имя. Например, МК фирмы Motorola построены на базе ядра НС05 и ЯС08, фирма Intel создала ядро MCS-51 и MCS-96, контроллеры фирмы Microchip имеют ядро PIC12, PIC16, Р1С17 или PIC18, фирма Atmel развивает семейство МК с ядром AVR.

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

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

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

Большинство высокопроизводительных МК имеют гарвардскую архитектуру, где память разделена на две части: память данных (Data

Memory) и память программ (Program Memory). Разрядность памяти программ и памяти данных, а также шин доступа к ним в таких МК может быть различной. В частности, все МК PIC фирмы Microchip имеют 8-битную память данных и разрядность памяти программ до 14.

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

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

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

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

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

Состав процессорного ядра МК, назначение его элементов и их функционирование аналогично МП, рассмотренным выше.

Память. Память МК предназначена для хранения инструкций программы и данных. Физически память организована так же, как в микросхемах памяти. Она состоит из множества ячеек определенной разрядности, каждая из которых имеет свой адрес. Число ячеек (объем памяти) может быть различным.

Память программ. Программа МК записывается в виде последовательности команд (инструкций). Каждая инструкция имеет свой оригинальный двоичный код. Коды инструкций хранятся в памяти программ в определенной программой последовательности.

Память программ МК по существующей классификации всегда является какой-либо разновидностью постоянной памяти типа ROM. Она энергонезависима, способна хранить записанную в нее информацию при отсутствии питающего напряжения. Основным режимом такой памяти является чтение данных, но способы записи программы (способы программирования) памяти могут быть разными. В зависимости от назначения микроконтроллера в нем может быть заложена память программ типа PROM, EPROM, EEPROM или Flash-memory.

Микроконтроллер с памятью типа PROM программируются только один раз. Микросхемы с памятью типа EPROM могут быть перепрограммированы. При программировании такие МК извлекаются из изделия и устанавливаются в специальные программаторы. При использовании контроллеров с памятью типа EEPROM и Flash-memory пользователь получает возможность изменения программы без извлечения из изделия. Память типа Flash-memory, кроме того, позволяет организовать перепрограммирование МК непосредственно во время работы.

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

Специализированные ячейки Flash-memory. В энергонезависимой памяти МК Flash-memory могут присутствовать специализированные ячейки различной разрядности, предназначенные для защиты программы пользователя и конфигурирования изделия. Эти ячейки не отображаются в общем массиве памяти программ, имеют оригинальные имена и индивидуально программируются. Такими ячейками могут быть:

  • • биты-блокировки, позволяющие запретить чтение программы, энергонезависимой памяти данных типа EEPROM и программирование кристалла. Запрограммированные биты блокировки, как правило, можно стереть только при очистке Flash-memory программ. При этом уничтожается и сама программа;
  • • биты-предохранители (fuse-биты), задающие некоторые конфигурационные особенности МК. Состав fuse-битов каждого конкретного МК обусловлен особенностями построения узлов сброса, тактирования и программирования кристалла. Fuse-биты могут задавать тип источника тактового сигнала МК, время задержки старта МК после сброса, объем секции начальной загрузки в памяти программ;
  • • байты-сигнатуры, служащие для идентификации типа кристалла. Эти ячейки программируются изготовителем и доступны только для чтения.

11.4.5.2. Функциональные модули микроконтроллера

Функциональные модули в составе МК могут выполнять самые разнообразные функции. Они обеспечивают работу процессорного ядра, различные режимы работы МК, ввод и вывод данных в различных форматах, подсчет времени и событий, хранение данных. В состав МК в качестве отдельных модулей входят: тактовый генератор; схемы сброса, энергосбережения и поддержки программирования; системы прерываний; порты ввода-вывода; схемы последовательных интерфейсов; аналого-цифровые и цифроаналоговые преобразователи; аналоговые компараторы; энергонезависимая память данных типа EEPROM; схемы управления индикаторами и клавиатурами и т.д.

Для управления функциональными модулями в них предусматриваются регистры ввода-вывода и особые ячейки Flash-memory. В регистры ввода-вывода информация заносится в процессе выполнения программы, а в ячейки Flash-memory — на стадии программирования МК, одновременно с занесением программы в память программ.

Тактовый генератор. Процессорное ядро всегда является синхронным микропрограммным автоматом, тактовый генератор необходим для его синхронизации. Именно период работы генератора определяет время, необходимое для выполнения элементарных операций в ядре. Простейшие операции, как правило, выполняются за один такт. Операции, связанные с извлечением данных из памяти, выполняются за два- три такта.

Схема сброса. Схема сброса осуществляет перевод МК в исходное состояние. При этом все регистры МП ядра устанавливаются во вполне определенные начальные состояния, и МК переходит к выполнению программы с фиксированного начального адреса.

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

В каждой архитектуре МК реализуется своя оригинальная система обслуживания прерываний, однако общий алгоритм обработки запросов всегда содержит одни и те же действия ядра:

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

• возобновляется выполнение прерванной программы.

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

Обычно порты являются двунаправленными с индивидуальной настройкой каждой линии.

Энергонезависимая память данных. Энергонезависимая память данных типа EEPROM отличается от памяти данных типа SRAM существенно большим временем чтения и записи информации. Время обращения при записи обычно составляет несколько миллисекунд и к тому же сильно зависит от напряжения питания МК. По этой причине обращение к EEPROM всегда осуществляется через регистры ввода-вывода.

Аналого-цифровые преобразователи. АЦП в составе МК предназначен для оцифровки и ввода аналоговых сигналов с различных датчиков физических величин. В состав МК обычно входят 8—16-битные многоканальные преобразователи с большим набором встроенных функций. При этом все функции преобразователя программируются и могут быть изменены в процессе работы.

Для управления преобразователем в МК используются специальные регистры данных, управления и состояния АЦП.

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

Таймеры-счетчики. Таймеры-счетчики обеспечивают работу МК в реальном времени. С их помощью МК может выполнять определенные заранее действия с объектом в заданные моменты времени. Типовыми задачами таймеров-счетчиков являются:

  • • подсчет импульсов сигнала за фиксированный интервал времени;
  • • формирование интервалов времени определенной длительности;
  • • формирование периодических сигналов заданной частоты;
  • • формирование широтно-модулированных сигналов;
  • • формирование временных задержек;
  • • измерение времени и др.

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

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

Последовательные интерфейсы. Периферийные модули, реализующие стандартные последовательные интерфейсы, обеспечивают связь МК с другими элементами системы. Современные МК обычно поддерживают несколько стандартных протоколов обмена интерфейса. Наиболее распространенными среди них являются UART, SPI, 12С. Число линий, по которым происходит передача информации, в таких модулях равно двум или трем.

Микроконтроллер может выступать в роли передатчика или приемника. Синхронизацию обмена обеспечивает передатчик.

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

Системы энергосбережения. Одним из основных показателей МК является энергопотребление. Величина энергопотребления характеризуется напряжением питания микроконтроллера и потребляемым током.

Большинство современных МК имеют несколько режимов работы, различающихся энергопотреблением. Обычно они подразделяются на две группы:

  • 1) активный режим, в котором микроконтроллер выполняет заложенную в него программу и включены все его функциональные блоки;
  • 2) режимы энергосбережения, в которых отключаются те или иные функциональные блоки МК и его энергопотребление существенно снижается.

Режимы энергосбережения, в свою очередь, могут быть различными, например:

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

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

Для перевода МК в тот или иной режим энергосбережения в системе команд предусматриваются специальные инструкции, а в его архитектуре — специальные регистры.

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >