33893 html m1ca23b9dПод организацией микропроцессорной системы (МС) понимают совокупность устройств, связи между ними и их функциональные характеристики. Рас­смотрим организацию МС на логическом уровне, или структурно–функциональ­ную организацию.

Типовые структуры микропроцессорных систем. Тип структуры МС опре­деляют состав и организацию памяти и подсистемы ввода/вывода (ВВ).

В памяти можно выделить:

●     постоянные запоминающие устройства (ПЗУ), используемые для хранения программ и констант;

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

В подсистеме ВВ можно выделить ряд законченных функциональных модулей:

●     порты — простейшие модули в виде адресуемых центральным процессором (ЦП) буферных схем и регистров;

●     периферийные адаптеры (ПА) — более сложные программно–управляемые модули. При использовании средств ВВ для управления внешними устройст­вами их называют периферийными контроллерами;

●     сопроцессоры ВВ — наиболее сложные модули, работающие по собственным программам.

рис. 3.1.1К основным типовым структурам МС относятся:

●     магистральная структура (рис. 3.1.1, а), в которой все модули подключены к магистрали. Использование единой магистрали обеспечивает выполнение за один рабочий цикл одной операции обмена данными между двумя (в об­щем случае любыми) модулями системы;

●     магистрально–каскадная (рис. 3.1.1, б) и магистрально–радиальная (рис. 3.1.1, в) структуры, в которых используются контроллеры шин для реализации при­оритетных отношений при обращении к магистрали.

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

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

●     шины данных ШД, предназначенной для обмена данными;

●     шины адреса ША, по которой передаются адреса ячеек памяти или портов при обращениях;

●     шины управления ШУ, служащей для управления работой системы.

рис. 3.1.2

Некоторые микропроцессоры (например, микроконтроллеры МСS–51) имеют совмещенную шину адреса/данных (ША/Д). Микросистема с двухшинной магист­ралью приведена на рис. 3.1.2, б. В этом случае для разделения функций совмещенной шины ША/Д используется строб чтения адреса (ЧтА). При ЧтА = 1 шина ША/Д выполняет функцию передачи адреса, при ЧтА = 0 — функцию передачи данных. Фиксация адреса обычно осуществляется по срезу (переходу ЧтА из 1 в 0) в специальном адресном регистре (рис. 3.1.3, а, б).

рис. 3.1.3

Организация пространств памяти и ввода–вывода. С точки зрения програм­миста память можно представить как упорядоченный набор 8–разрядных ячеек (рис. 3.1.4, а). Каждой ячейке памяти (байту) сопоставляется число (номер), назы­ваемое адресом ячейки. Последовательность адресов составляет целочисленный ряд от 0 до 2m – 1, где m — разрядность адресного кода, определяемая числом линий адресной шины. Совокупность всех адресов образует адресное простран­ство памяти. Такое пространство и его адрес называют линейными. В рассмот­ренных выше 8–разрядных процессорах линейный адрес эквивалентен физиче­скому адресу, который выставляется на адресную шину для обращения к физи­ческой памяти емкостью 216 = 64К байт.

рис. 3.1.4

Линейное адресное пространство обеспечивает доступ к любому байту памя­ти (рис. 3.1.4, б). Слова (2 байта) и двойные слова (4 байта) в линейной памяти занимают соседние байты. Порядок расположения байтов внутри слова: сначала младший (L–байт), затем старший (Н–байт) байт слова (рис. 3.1.4, в, г). Адрес L–байта служит адресом всего слова и может быть как четным, так и нечетным (путем выбора начального адреса Ан).

В адресном пространстве памяти можно выделить три составляющих:

●     CSEG (Code Segment) — пространство памяти команд (кода, программ);

●     DSEG (Data Segment) — пространство памяти данных;

●     RSEG (Register Segment) — пространство памяти программно доступных ре­гистров.

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

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

Подсистему ввода/вывода (ВВ) можно представить в виде пространства IOSEG (Input/Out Segment) и правил доступа к нему. Возможно два вида про­странств IOSEG:

●     изолированное пространство IOSEG, которое представляется набором из n ячеек (портов), с произвольным доступом к каждой из них. Для большинства МС разрядность портов составляет 8 или 16 бит. Подобно пространству па­мяти пространство ВВ линейно упорядочено. Каждый элемент пространства IOSEG имеет свой адрес. Диапазон адресов зависит от числа m адресных разрядов и имеет пределы 0 и 2m 1. Для многих процессоров предусмотре­ны команды обращения к портам, например, ввода IN и вывода OUT;

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

Организация обращения к памяти и устройствам ввода/вывода. При 16–раз­рядной адресной шине ЦП пространство памяти ограничено адресами 0000...FFFFh в шестнадцатеричной (h) системе, что соответствует десятичным номерам ячеек памяти от 0 до 65535. Требуемый объем памяти определяется типом и числом выбранных микросхем памяти, используемых в качестве модулей памяти.

Для понимания принципов организации обращения к памяти рассмотрим при­мер. Будем полагать что, объем памяти МС составляет 4К байт. При этом память содержит один модуль постоянной памяти ПЗУ и 255 модулей оперативной памяти ОЗУ объемом по 256 байт каждый. Модули памяти имеют восемь адресных входов А7.....А0, вход выборки кристалла CS, входы чтения/записи и выходы данных.

Схема организации обращения к памяти для этого случая приведена на рис. 3.1.5. Для обращения к памяти необходимо задействовать 12 линий адрес­ной шины. Для выбора ячейки в модуле памяти отведены младшие разряды адре­са А7, А0. Коды младших адресных разрядов подаются на адресные входы всех модулей одновременно. Выбор требуемого k–го модуля памяти производит­ся подачей сигнала ¯CS = 0 низкого уровня на вход выборки кристалла. Эти сигна­лы формируются на выходе дешифратора DC. На входы дешифратора поступают сигналы старших разрядов адресов А11.....А7. Чтение из ПЗУ и ОЗУ и запись в ОЗУ инициируется низким уровнем сигналов ¯ЧтП и ¯ЗпП. При высоком уровне сигналов модули памяти находятся в пассивном состоянии. Это позволяет исполь­зовать адресную шину для организации обращения к устройствам ввода/вывода.

рис. 3.1.5

Правая часть рис. 3.1.5 иллюстрирует принцип организации обращения к внеш­ним устройствам — устройству ввода/вывода (УВ/В), устройству ввода (УВв) и устройству вывода (УВыв). Для адресации к устройствам отведены младшие адресные разряды А7, А0. Работа устройств ввода–вывода и ввода иницииру­ется подачей сигнала записи ¯ЗпУВВ, а устройств ввода–вывода и вывода — подачей сигнала чтения ¯ЧтУВВ. С выходов устройств снимаются 8–разрядные операнды данных и сигнал готовности Гт (возможны также сигналы ЗАПРОСА ЗАХВАТА, ЗАПРОСА ПРЕРЫВАНИЯ и др.). При 8–разрядной адресации возможно подключение 256 устройств ввода–вывода или одновременно 256 устройств вво­да и 256 устройств вывода.

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

●     циклы чтения памяти и записи в память;

●     циклы чтения и записи в устройства (порты) ВВ (при изолированном про­странстве ВВ IOSEG);

●     цикл чтения памяти программ (для архитектуры гарвардского типа);

●     цикл чтения–записи в память (для двухшинной магистрали). Этот цикл, требу­ющий однократной передачи адреса, используется для увеличения пропуск­ной способности магистрали.

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

1 –йнабор

¯ЧтП          чтение памяти (Memory Read Command — MRDC);

¯ЧтП          запись в память (Memory Write Command — MWTC);

¯ЧтУВВ     чтение из устройства ВВ (Input/Output Read Command — IORC);

¯ЗпУВВ     запись в устройство ВВ (Input/Output Write Command — IOWC);

ЧтПП         чтение программной памяти (Program Segment Enable — PSEN).

2–й набор

¯Чт             чтение RD (Read);

¯Зп             запись WR (Write);

П/¯УВВ     выбор пространства памяти или ВВ (Memory or Input/Output — М/IO);

ВПП           выбор памяти программ (CodeCOD).

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

рис. 3.1.6

Временные диаграммы циклов обращения к трехшинной и двухшинной маги­стралям изображены на рис. 3.1.6, а, б.

Для разделения функций совмещенной ША/Д двухшинной магистрали исполь­зуется строб чтения адреса (ЧтА). Фиксация адреса осуществляется по срезу (пе­реходу ЧтА из 1 в 0) в специальном адресном регистре (рис. 3.1.3, а).

На приведенных временных диаграммах:

●     в цикле чтения:

•      адрес выставляется раньше, а снимается позже строба чтения ¯Чт;

•      данные выставляются и снимаются с задержкой относительно строба чте­ния ¯Чт;

•      фиксация данных осуществляется по заднему фронту строба чтения ¯Чт;

●     в цикле записи:

•      адрес и данные выставляется раньше, а снимается позже строба записи ¯Зп;

•      данные истинны в течение действия всего строба записи или фиксиру­ются по заднему фронту строба записи ¯ЗпЗФ (для БИС с динамическим входом синхронизации).

Строб ЗпЗФ улучшает скоростные характеристики магистрали.

Рассмотренные циклы обращения к магистрали могут быть реализованы при обмене микропроцессора с высокоскоростными периферийными устройст­вами ПУ, такими, например, как память. Для организации надежного обмена с низкоскоростными внешними устройствами вводится дополнительная линия уп­равления, по которой передается сигнал подтверждения обмена (ПОб) или готов­ности (Гт).

рис. 3.1.7

При классической организации обмена (рис. 3.1.7) внешнее устройство, на­ходящееся в состоянии обмена, выдает сигнал ПОб = 1, в противном случае — ПОб = 0. В каждом цикле обращения до окончания строба чтения/записи ( ¯Чт = 0 или ¯ЗпЗФ = 0) ЦП проверяет (по срезу тактовых импульсов ТИ) состояние сигна­ла ПОб. Если проверка показывает ПОб = 0, ЦП переходит в состояние ожидания подтверждения, генерируя сигнал ОжП = 1. После того, как установится сигнал подтверждения обмена и очередная проверка покажет ПОб = 1, ЦП снимает сиг­налы ожидания подтверждения (ОжП = 0) и чтения/записи ( ¯Чт / ¯ЗпЗФ =1). Данные фиксируются по срезу (из 0 в 1) сигналов чтения/записи. Завершение обмена внеш­нее устройство подтверждает сбросом сигнала подтверждения обмена (ПОб).

Внутри МС возможны события, требующие немедленного прерывания основ­ной программы и перехода к обслуживанию другой программы, называемой под­программой. Реакция ЦП на эти события завершается возвратом к основной про­грамме. Моменты возникновения таких событий не известны, поэтому не могут быть учтены при составлении основной программы. Процесс их обслуживания должен выполняться параллельно и скрытно от основной программы. Каждому прерыванию (исключению) программы предшествует радиальный сигнал запроса прерывания (ЗПрk), который генерируется внешним устройством (или ЦП) и вы­зывает подпрограмму обслуживания прерывания. Аппаратные и программные средства, обеспечивающие организацию и обслуживание прерываний, образуют систему прерываний. В том случае, когда событие вызывается внешним устрой­ством, ЦП получает сигнал векторного запроса, свидетельствующий о появлении одного или нескольких радиальных запросов ЗПрk, и переходит к выполнению специального машинного цикла — цикла ввода вектора прерывания. В этом цик­ле вводится информация, связанная с номером к радиального запроса, и осуще­ствляется переход к соответствующей подпрограмме обслуживания. Цикл ввода вектора прерывания отличается от цикла ввода данных тем, что используется строб подтверждения прерывания (ППр) вместо строба чтения устройства ввода/ вывода (ЧтУВВ). При обслуживании прерываний основная программа взаимодей­ствует с подпрограммой через размещаемые в памяти структуры данных — обла­сти взаимодействия, считывая и модифицируя данные в этих областях.

Буферизация шин данных и адреса. Токи, потребляемые устройствами па­мяти и ввода/вывода по цепям шин данных и адреса значительно превышают до­пустимые значения токов для микросхем процессоров. Поэтому указанные уст­ройства подключают к шинам данных и адреса микропроцессора через буферы, представляющие собой усилители импульсов. В буферах часто используются элементы с тремя состояниями выхода, два обычных состояния соответствуют высокому и низкому уровням выхода, а третье состояние Z — высокоомному вы­ходному сопротивлению элемента. В состоянии Z элемент практически оказыва­ется отключенным от нагрузки.

Элемент с Z–состоянием можно реализовать, например, путем введения в стан­дартную схему ТТЛ–инвертора полупроводникового диода VD2 (рис. 3.1.8, а). Если на управляющем входе Z = 0, то потенциал коллектора (а также эмиттера) транзи­стора VT2 близок к нулю и поэтому выходные транзисторы VTЗ, VT4 находятся в режиме отсечки, т. е. в разомкнутом состоянии. При Z = 1 диод VD2 отключен, и ТТЛ–инвертор с входом X и выходом Y работает в обычном режиме. Подклю­чением к входу X инвертора получают повторитель с тремя состояниями выхода. На рис. 3.1.8, б, в приведены графические обозначения повторителя и инвертора с тремя состояниями выхода.

рис. 3.1.8

Для построения буферов шин данных и адреса можно использовать шинные формирователи позволяющие осуществить управляемую двунаправленную пере­дачу 8–разрядных слов. На рис. 3.1.8, г приведена схема, иллюстрирующая прин­цип построения шинного формирователя, используемого в 8–разрядных процес­сорах. В k–ю цепь передачи формирователя (k = 0, ..., 7) включены два повторите­ля П1, П2 с тремя возможными состояниями выхода. Управление состояниями повторителей осуществляется с помощью логических элементов ЛЭ1, ЛЭ2. Режи­мы работы формирователя приведены в табл. 3.1.1.

Как видно из табл. 3.1.1, сигнал выборки кристалла ¯ВК = 0 активизирует пере­дачу информации через повторители, при этом сигнал Т определяет номер актив­ного (включенного) повторителя П1 или П2. При ¯ВК = 1 передача информации от­сутствует, при этом значение сигнала Т безразлично. Этот факт отмечен в табли­це символом Ф (0 или 1). Выходы Yk имеют большую нагрузочную способность, чем входы Xk, так как к ним подключаются устройства памяти и ввода–вывода. При построении устройств на основе 8–разрядных микропроцессоров в качестве буфера шины данных используется непосредственно шинный формирователь, а буфер шины адреса (16 линий) составляется из двух таких формирователей со­единением выводов ¯ВК и Т.

табл. 3.1.1

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

Как уже отмечалось выше, в систему шин входят шина данных (ШД), шина ад­ресов (ША) и шина управления (ШУ).

Для подключения к центральной части МС (процессору и ОЗУ) внешних узлов и организации обмена информацией между ними используются интерфейсные схемы. Они позволяют:

●     передавать на шину управления сигналы готовности ВУ к обмену данными с МС;

●     осуществлять буферизацию шин и хранение данных, адресов и команд, что необходимо для синхронизации обмена информацией;

●   выбирать требуемое внешнее устройство при работе МС с несколькими ВУ и дешифрировать их адреса, посылаемые микропроцессором;

●     дешифрировать коды и инициировать выполнение команд при работе с таки­ми внешними устройствами, которые помимо передачи данных выполняют другие операции;

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

●     управлять процессом передачи данных и преобразовывать их форматы;

 

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