Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УП МПУ-13.doc
Скачиваний:
7
Добавлен:
01.04.2025
Размер:
5.78 Mб
Скачать

3.2. Внутрисистемные интерфейсы в мпу

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

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

Основной механизм внутрисистемного интерфейса – внутренняя системная магистраль или набор системных магистралей. Для работы с периферийными устройствами часть линий системной магистрали выводится на внешние выводы.

В МК серии AVR имеются отдельные магистрали доступа к памяти программ (только встроенная FlashROM) и доступа к памяти данных (встроенные РОН, РВВ, ОЗУ, ЭСППЗУ и внешнее ОЗУ).

Каждая из этих магистралей состоит из шин адреса, данных и управления.

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

Шина адреса ША [address bus] представляет собой набор проводников, по которому передается код адреса от активного устройства (процессор) АУ ко всем подключенным пассивным устройствам ПУ1, ПУ2, ... Используется однонаправленная передача, то есть АУ является источником, все ПУ – приемниками. Разрядность определяет размер доступного адресного пространства, обычно кратна 8 битам, хотя может наращиваться и поразрядно.

Шина данных ШД [data bus] представляет собой набор проводников, по которому передаются данные либо от АУ к выбранному (по адресу) ПУ – операция записи, либо в обратном направлении – операция чтения. Шина данных двунаправлена, это значит, что одно и тоже устройство может быть как источником, так и приемником сигнала. В интервалах времени, когда роль устройства не определена, оно должно переходить в высокоомное состояние, чтобы не создавать дополнительной нагрузки для источника сигнала – так называемое Z-состояние. Разрядность шины данных (то есть число проводников) обычно совпадает с разрядностью процессора.

Шина управления ШУ [control bus] состоит из проводников для передачи/приема набора сигналов, синхронизирующих операции обмена данными в магистрали. Состав сигналов шины управления сильно зависит от предусмотренного набора операций ввода/вывода.

1) Наиболее простым видом является программный ввод/вывод. Инициировать операцию ввода или вывода может только процессор (активное устройство), для этого достаточно всего двух линий управления – сигнала WR (запись) и RD (чтение).

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

Процедура чтения (ввода) подобна процедуре записи, но в качестве строба используется сигнал чтения (RD), выбранное ПУ выставляет данные по фронту сигнала чтения, и снимает их по срезу, в остальное время выводы данных ПУ находятся в Z-состоянии.

Подробнее фазы операций записи и чтения можно рассмотреть на рис. 2-3, а – только фазы Т2 и Т3.

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

Программный ввод или вывод выполняется одной машинной командой. Например, в AVR МК для работы с РВВ используются команды IN или OUT, для работы во всем адресном пространстве памяти данных – команды LDx или STx.

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

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

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

3) Если растут объемы или частота обмена информацией между периферийными блоками, то процессор оказывается загружен непроизводительными операциями: не сразу от пассивного устройства А к пассивному устройству Б, но каждый раз от А к процессору, затем от процессора к Б. Для таких задач более подходит принцип прямого доступа к памяти. В этом случае процессор перестает быть единственным активным устройством на системной магистрали, появляется контроллер прямого доступа. Он может захватить магистраль и управлять передачей данных сразу между ячейками с заданными адресами. Предварительно настраивается (программируется) количество передач, адреса приема и передачи, механизм автоматического изменения адреса, система приоритетов для захвата/освобождения магистрали и связь с системой прерываний, для организации реакции по завершению заданного количества передач.

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

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

В AVR МК на внутрисистемном уровне в подсемействах AT90, ATtiny, ATmega используется ввод/вывод программный и по прерываниям; в новом подсемействе ATxmega добавился механизм прямого доступа к памяти. На уровне связи вне кристалла используются прежде всего параллельные порты, входы прерывания, таймеры/счетчики, устройства аналогового и последовательного интерфейса; в моделях с числом выводов (ног) не менее 40 добавляется внешняя магистраль программного доступа к памяти данных.