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

 

Обобщенная архитектура микро-ЭВМ представлена на рис. 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. Сигналы запросов на обмен по прерываниям.

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

 

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

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

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

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

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

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

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

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

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

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

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: