русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Общее понятие об однокристальных микроЭВМ


Дата добавления: 2015-08-14; просмотров: 1398; Нарушение авторских прав


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

Альтернативным вариантом построения МПС является использование однокристальных микроЭВМ (ОМЭВМ, микроконтроллеров), представляющих собой готовую МПС, состоящую из всех необходимых функциональных модулей (процессор, ЗУ, порты) и выполненную в виде одной микросхемы. Такие микроконтроллеры ориентированы на использование именно в управляющих устройствах, поэтому имеют ряд специфических блоков (например, блок формирования ШИМ) и функций. В то же время, функциональность каждого отдельного блока ОМЭВМ (например, последовательного порта) весьма ограничена по сравнению с аналогичными устройствами, входящими в состав микропроцессорных комплектов.

Однокристальная микроЭВМ семейства Intel MCS-51

Знакомство с микроконтроллерами проведем на примере ОМЭВМ семейства Intel MCS-51 (отечественный аналог МК-51). Микроконтроллеры данного типа были разработаны достаточно давно, но их архитектура оказалась настолько удачной, что они стали де-факто стандартом среди 8-разрядных однокристальных микроконтроллеров.

Общие характеристики микроконтроллера семейства MCS-51

Микроконтроллер семейcтва MCS-51 состоит из следующих основных блоков:

  1. 8-разрядное арифметическо-логическое устройство;
  2. ПЗУ объемом 4 кБайта;
  3. ОЗУ объемом 128 байт;
  4. четыре многофункциональных 8-разрядных параллельных порта;
  5. последовательный порт;
  6. два 16-разрядных таймера-счетчика;
  7. контроллер прерываний;
  8. блок управления.

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



Размер ПЗУ может быть увеличен до 64 кБайт за счет подключения внешнего ПЗУ.

Также, в дополнении к имеющемуся внутреннему ОЗУ, может быть подключено внешнее ОЗУ объемом до 64 кБайт.

Условное обозначение и назначение выводов

На рис. 1 представлено условное графическое обозначение микроконтроллера семейства MCS-51.

Рис. 1.

Назначение выводов, указанных на рис. 1 приведено в табл. 1:

Таблица 1

P0.0-P0.7 Выводы параллельного порта P0
P1.0-P1.7 Выводы параллельного порта P1
P2.0-P2.7 Выводы параллельного порта P2
P3.0-P3.7 Выводы параллельного порта P3
RST Сигнал общего сброса
BQ1, BQ2 Выводы для подключения кварцевого резонатора
DEMA Сигнал запрещения использования внутреннего ПЗУ
PME Управляющий сигнал разрешения чтения из внешнего ПЗУ
ALE Сигнал разрешения фиксации адреса
Ucc Вывод питания от источника напряжения +5В

 

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

Альтернативные функции выводов параллельных портов рассматриваемого микроконтроллера приведены в табл. 2.

Таблица 2

Порт Номер вывода Альтернативное назначение
P0 0-7 Мультиплексированная шина адреса/данных при работе в внешним ЗУ. Передаются данные (8 разрядов) и младший байт адреса (8 разрядов)
P1 0-7 Не имеют альтернативного назначения, используются только в качестве выводов параллельного порта
P2 0-7 Старшая часть шины адреса при работе с внешним ЗУ. Передается старший байт адреса
P3 Входная линия последовательного порта RxD
P3 Выходная линия последовательного порта TxD
P3 Вход внешнего прерывания 0 INT0
P3 Вход внешнего прерывания 1 INT1
P3 Вход таймера-счетчика 0 T0
P3 Вход таймера-счетчика 1 T1
P3 Управляющий сигнал разрешения записи WR (при работе в внешним ОЗУ)
P3 Управляющий сигнал разрешения чтения RD (при работе в внешним ОЗУ)

 

Организация запоминающего устройства

Запоминающее устройство в рассматриваемом микроконтроллере состоит из ЗУ программ (ПЗУ) и ЗУ данных (ОЗУ). ЗУ программ и ЗУ данных имеют раздельные адресные пространства размером 64 кБайт.

ЗУ программ представляет собой постоянное запоминающее устройство, предназначенное для хранения команд программы. ЗУ программ может иметь объем до 64 кБайт. 4 кБайта этого ЗУ расположены на кристалле микроЭВМ, они соответствуют четырем младшим килобайтам адресного пространства (адреса от 0000h до 0FFFh). Дополнительно может быть подключено внешнее ПЗУ, которое будет соответствовать адресам от 1000h до FFFFh. Таким образом, при обращении в память программ по адресу меньше 0FFFh автоматически происходит обращение к внутреннему ПЗУ микроконтроллера, при обращении по адресу больше 0FFFh — обращение к внешнему ПЗУ.

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

Схема подключения внешнего ПЗУ к микроконтроллеру представлена на рис. 2.

Рис. 2.

Временная диаграмма изменения сигналов при чтении из внешнего ПЗУ (памяти программ) представлена на рис. 3.

Рис. 3.

Как видно из схемы, для передачи данных используются выводы порта Р0, для передачи адреса — выводы портов Р0 (младший байт) и Р2 (старший байт). Так как порт Р0 представляет собой мультиплексированную шину адреса данных, для подключения ЗУ необходимо выполнить ее демультиплексирование. Для этого применен буферный регистр, фиксирующий младший байт адреса по заднему фронту строба адреса ALE. Сигнал PME (разрешение чтения из памяти программ) играет роль управляющего сигнала разрешения чтения.

Нужно заметить, что при подключении внешнего ПЗУ порты Р0 и Р2 выполняют функции передачи адреса/данных и не могут быть использованы как собственно порты ввода-вывода.

ЗУ данных представляет собой ОЗУ, предназначенное для хранения каких-либо данных. ЗУ данных подразделяется на внутреннее и внешнее.

Внутреннее ЗУ данных имеет объем 128 байт и расположено непосредственно внутри микроконтроллера. Оно содержит:

  • 32 8-разрядных регистра общего назначения (РОН), объединенных в 4 группы (банка) по 8 регистров. В каждый момент времени возможна работа только с одной группой (банком) РОН, переключение банков осуществляется через специальный управляющий регистр.
  • 6 8-разрядных регистров с индивидуально адресуемыми битами. Каждый отдельный бит этих регистров имеет собственный адрес и к нему возможен индивидуальный доступ по чтению или записи.
  • Регистры специальных функций. Это регистры, относящиеся к различным функциональным блокам и имеющие специальное назначение в соответствии с логикой работы соответствующего блока (к примеру, входной буфер последовательного интерфейса, счетные регистры таймеров/счетчиков, регистры управления и состояния таймеров счетчиков и т.п.).

Внешнее ЗУ данных может быть подключено к микроконтроллеру в виде микросхем внешнего ОЗУ при необходимости. Максимальный объем внешнего ЗУ данных равен 64 кБайт. Адресные пространства внутреннего и внешнего ЗУ данных разделены. Схема подключения внешнего ЗУ данных представлена на рис. 4.

Рис. 4.

Временная диаграмма изменения сигналов при чтении из внешнего ОЗУ (памяти данных) представлена на рис. 5.

Рис. 5.

Как и в схеме подключения внешнего ПЗУ используются порты Р0 и Р2 для передачи адреса и данных, для демультиплексирования шины адреса-данных используется буферный регистр. Для управления процессом обмена служат сигналы разрешения чтения (RD, вывод 7 порта Р3) и разрешения записи (WR, вывод 6 порта Р3).

Обобщенная архитектура микроЭВМ

Обобщенная архитектура микроЭВМ представлена на рис. 6.

Рис. 6.

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

Блок счетчика команд содержит регистр-счетчик команд (16-разрядный), схему инкремента, регистр указателя данных. Предназначен для формирования 16-разрядных адресов команд и данных.

Блок портов ввода-вывода содержит четыре 8-разрядных двунаправленных порта ввода-вывода. Каждый порт имеет буферный регистр, из которого считываются данные при вводе информации и записываются при выводе, а также управляющий регистр, который определяет направление передачи данных и режим использования выводов порта — по прямому назначению или для реализации альтернативной функции ввода-вывода. Возможно непосредственное обращение к каждому отдельному разряду параллельного порта и настройка каждого отдельного разряда на соответствующий режим работы. Например, в схеме на рис. 4 разряды 6 и 7 порта 3 использовались для альтернативных функций ввода-вывода (формирование управляющих сигналов чтения-записи), но шесть остальных разрядов этого порта могут быть использованы в операциях ввода-вывода как линии параллельного порта.

Блок последовательного интерфейса и прерываний состоит из двух отдельных частей — последовательного интерфейса и блока обработки прерываний.

Блок последовательного интерфейса представляет собой дуплексный последовательный порт, имеющий четыре режима работы:

Режим 0. Синхронная передача или прием данных по линии RxD (вывод 0 порта Р3). Размер кадра — 8 бит. Скорость передачи определяется тактовой частотой микроконтроллера ( ) и равняется .

Режим 1. Асинхронная передача, размер кадра — 10 бит (старт-бит, стоп-бит и 8 бит данных). Скорость передачи определяется частотой переполнения таймера/счетчика 1, то есть может задаваться программно.

Режим 2. Асинхронная передача, размер кадра — 11 бит (старт-бит, стоп-бит, 8 бит данных и служебный бит). Служебный бит устанавливается программно и программно же может быть проанализирован после приема данных. Он может быть использован, например, для контроля четности или для иных целей. Скорость передачи определяется тактовой частотой микроконтроллера ( ) и равняется или .

Режим 3. Аналогичен режиму 2, но скорость передачи определяется частотой переполнения таймера/счетчика 1, то есть может задаваться программно.

Передача данных начинается немедленно после записи байта в выходной буферный регистр последовательного интерфейса (SBUF). Чтение принятых данных происходит также по адресу SBUF –—при чтении он соответствует входному буферному регистру.

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

Блок обработки прерываний обеспечивает обработку сигналов запросов на обмен по прерываниям от пяти источников (табл. 3)

Таблица 3

Источник прерывания Адрес подпрограммы обработки прерывания
Сигнал внешнего прерывания по линии INT0 (P3.2) 0003h
Переполнение таймера/счетчика 0000Bh
Сигнал внешнего прерывания по линии INT1 (P3.3) 0013h
Переполнение таймера/счетчика 1001Bh
Последовательный интерфейс (завершение приема/передачи очередного байта данных) 0023h

 

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

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

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

Блок таймеров/счетчиков включает в себя два таймера-счетчика, каждый из которых состоит из 16-разрядного счетного регистра, регистра режимов, регистра управления и схемы инкремента. Все перечисленные регистры расположены в области регистров специальных функций ЗУ данных. Оба таймера/счетчика полностью аналогичны друг другу и могут работать в режиме таймера или в режиме счетчика.

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

где — тактовая частота микроконтроллера.

То есть, изменяя начальное значение счетного регистра, можно задавать различную длительность интервала времени, отмеряемую таймером.

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

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

В режиме холостого хода перестает работать блок АЛУ, выполнение программы приостанавливается. Остальные блоки ОМЭВМ продолжают работать (таймеры-счетчики, последовательный интерфейс, блок управления прерываниями). В результате энергопотребление микроконтроллера падает до 15-30% от номинального. Выход из режима холостого хода происходит при возникновении любого прерывания или при подаче сигнала общего сброса RST.

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

Переход однокристальной микроЭВМ в режимы холостого хода и микропотребления выполняется путем установки соответствующих битов в регистре управления микроконтроллером специальной командой. Регистр управления микроконтроллером расположен в области регистров специальных функций ЗУ данных.

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

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

Рис. 1.

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

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

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

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

Циклы реализуются с помощью команд условных переходов.

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

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

  • в регистре W;
  • в регистре команд;
  • в памяти данных.

Мультиплексор данных подключает к входу АЛУ в соответствии с кодом операции либо РК (в режиме непосредственной адресации), либо память данных (в режиме прямой и косвенной адресации).

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

Биты конфигурации задают режим функционирования МК:

  • сброс по включению питания (POR);
  • таймер включения питания (PWRT);
  • таймер запуска генератора (OSC);
  • сброс по снижению напряжения питания (BOR);
  • сторожевой таймер (WDT);
  • режим низковольтного последовательного программирования (LVP);
  • режим внутрисхемной отладки (ICD).

 



<== предыдущая лекция | следующая лекция ==>
УСО для вывода данных в последовательной форме | Организация памяти данных микроконтроллера PIC16F877


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 4.374 сек.