Под организацией микропроцессорной системы (МС) понимают совокупность устройств, связи между ними и их функциональные характеристики. Рассмотрим организацию МС на логическом уровне, или структурно–функциональную организацию.
Типовые структуры микропроцессорных систем.
Тип структуры МС определяют состав и организацию памяти и подсистемы ввода/вывода (ВВ).
В памяти можно выделить:
? постоянные запоминающие устройства (ПЗУ), используемые для хранения программ и констант;
? оперативные запоминающие устройства (ОЗУ), предназначенные для хранения переменных и загружаемого извне объектного кода (программы).
В подсистеме ВВ можно выделить ряд законченных функциональных модулей:
? порты — простейшие модули в виде адресуемых центральным процессором (ЦП) буферных схем и регистров;
? периферийные адаптеры (ПА) — более сложные программно–управляемые модули. При использовании средств ВВ для управления внешними устройствами их называют периферийными контроллерами;
? сопроцессоры ВВ — наиболее сложные модули, работающие по собственным программам.
К основным типовым структурам МС относятся:
? магистральная структура (рис. 3.1.1, а), в которой все модули подключены к магистрали. Использование единой магистрали обеспечивает выполнение за один рабочий цикл одной операции обмена данными между двумя (в общем случае любыми) модулями системы;
? магистрально–каскадная (рис. 3.1.1, б) и магистрально–радиальная (рис. 3.1.1, в) структуры, в которых используются контроллеры шин для реализации приоритетных отношений при обращении к магистрали.
В каждый момент времени магистраль предоставляется в распоряжение одному функциональному модулю. В простейших МС роль активного модуля выполняет центральный процессор (ЦП), который организует управление магистралью. В более сложных системах магистраль распределяется между отдельными модулями в соответствии с запросами на ее захват и приоритетными соглашениями. Эта задача возлагается на арбитра системной магистрали.
Магистрали микропроцессорных систем.
Обмен информацией центрального процессора (ЦП) с памятью и подсистемой ввода–вывода (ВВ) происходит по внутрисистемной магистрали, представляющей собой единый набор шин системы. Наиболее часто используется трехшинная магистраль с раздельными шинами передачи адреса и данных. Она состоит из следующих шин (рис. 3.1.2, а):
? шины данных ШД, предназначенной для обмена данными;
? шины адреса ША, по которой передаются адреса ячеек памяти или портов при обращениях;
? шины управления ШУ, служащей для управления работой системы.
Некоторые микропроцессоры (например, микроконтроллеры МС S –51) имеют совмещенную шину адреса/данных (ША/Д). Микросистема с двухшинной магистралью приведена на рис. 3.1.2, б. В этом случае для разделения функций совмещенной шины ША/Д используется строб чтения адреса (ЧтА). При ЧтА = 1 шина ША/Д выполняет функцию передачи адреса, при ЧтА = 0 — функцию передачи данных. Фиксация адреса обычно осуществляется по срезу (переходу ЧтА из 1 в 0) в специальном адресном регистре (рис. 3.1.3, а, б).
Организация пространств памяти и ввода–вывода.
С точки зрения программиста память можно представить как упорядоченный набор 8–разрядных ячеек (рис. 3.1.4, а). Каждой ячейке памяти (байту) сопоставляется число (номер), называемое адресом ячейки. Последовательность адресов составляет целочисленный ряд от 0 до 2 m – 1, где m — разрядность адресного кода, определяемая числом линий адресной шины. Совокупность всех адресов образует адресное пространство памяти. Такое пространство и его адрес называют линейными. В рассмотренных выше 8–разрядных процессорах линейный адрес эквивалентен физическому адресу, который выставляется на адресную шину для обращения к физической памяти емкостью 216 = 64К байт.
Линейное адресное пространство обеспечивает доступ к любому байту памяти (рис. 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 и 2 m –
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 иллюстрирует принцип организации обращения к внешним устройствам — устройству ввода/вывода (УВ/В), устройству ввода (УВв) и устройству вывода (УВыв). Для адресации к устройствам отведены младшие адресные разряды А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 );
ВПП выбор памяти программ ( Code — COD ).
Следует отметить, что с помощью логических схем второй набор можно преобразовать в первый. Возможно комбинированное использование обоих наборов.
Временные диаграммы циклов обращения к трехшинной и двухшинной магистралям изображены на рис. 3.1.6, а, б.
Для разделения функций совмещенной ША/Д двухшинной магистрали используется строб чтения адреса (ЧтА). Фиксация адреса осуществляется по срезу (переходу ЧтА из 1 в 0) в специальном адресном регистре (рис. 3.1.3, а).
На приведенных временных диаграммах:
? в цикле чтения:
• адрес выставляется раньше, а снимается позже строба чтения ?Чт;
• данные выставляются и снимаются с задержкой относительно строба чтения ?Чт;
• фиксация данных осуществляется по заднему фронту строба чтения ?Чт;
? в цикле записи:
• адрес и данные выставляется раньше, а снимается позже строба записи ?Зп;
• данные истинны в течение действия всего строба записи или фиксируются по заднему фронту строба записи ?ЗпЗФ (для БИС с динамическим входом синхронизации).
Строб ЗпЗФ улучшает скоростные характеристики магистрали.
Рассмотренные циклы обращения к магистрали могут быть реализованы при обмене микропроцессора с высокоскоростными периферийными устройствами ПУ, такими, например, как память. Для организации надежного обмена с низкоскоростными внешними устройствами вводится дополнительная линия управления, по которой передается сигнал подтверждения обмена (ПОб) или готовности (Гт).
При классической организации обмена (рис. 3.1.7) внешнее устройство, находящееся в состоянии обмена, выдает сигнал ПОб = 1, в противном случае — ПОб = 0. В каждом цикле обращения до окончания строба чтения/записи ( ?Чт = 0 или ?ЗпЗФ = 0) ЦП проверяет (по срезу тактовых импульсов ТИ) состояние сигнала ПОб. Если проверка показывает ПОб = 0, ЦП переходит в состояние ожидания подтверждения, генерируя сигнал ОжП = 1. После того, как установится сигнал подтверждения обмена и очередная проверка покажет ПОб = 1, ЦП снимает сигналы ожидания подтверждения (ОжП = 0) и чтения/записи ( ?Чт / ?ЗпЗФ =1). Данные фиксируются по срезу (из 0 в 1) сигналов чтения/записи. Завершение обмена внешнее устройство подтверждает сбросом сигнала подтверждения обмена (ПОб).
Внутри МС возможны события, требующие немедленного прерывания основной программы и перехода к обслуживанию другой программы, называемой подпрограммой. Реакция ЦП на эти события завершается возвратом к основной программе. Моменты возникновения таких событий не известны, поэтому не могут быть учтены при составлении основной программы. Процесс их обслуживания должен выполняться параллельно и скрытно от основной программы. Каждому прерыванию (исключению) программы предшествует радиальный сигнал запроса прерывания (ЗПр k ), который генерируется внешним устройством (или ЦП) и вызывает подпрограмму обслуживания прерывания. Аппаратные и программные средства, обеспечивающие организацию и обслуживание прерываний, образуют систему прерываний. В том случае, когда событие вызывается внешним устройством, ЦП получает сигнал векторного запроса, свидетельствующий о появлении одного или нескольких радиальных запросов ЗПр k , и переходит к выполнению специального машинного цикла — цикла ввода вектора прерывания. В этом цикле вводится информация, связанная с номером к радиального запроса, и осуществляется переход к соответствующей подпрограмме обслуживания. Цикл ввода вектора прерывания отличается от цикла ввода данных тем, что используется строб подтверждения прерывания (ППр) вместо строба чтения устройства ввода/ вывода (ЧтУВВ). При обслуживании прерываний основная программа взаимодействует с подпрограммой через размещаемые в памяти структуры данных — области взаимодействия, считывая и модифицируя данные в этих областях.
Буферизация шин данных и адреса.
Токи, потребляемые устройствами памяти и ввода/вывода по цепям шин данных и адреса значительно превышают допустимые значения токов для микросхем процессоров. Поэтому указанные устройства подключают к шинам данных и адреса микропроцессора через буферы, представляющие собой усилители импульсов. В буферах часто используются элементы с тремя состояниями выхода, два обычных состояния соответствуют высокому и низкому уровням выхода, а третье состояние Z — высокоомному выходному сопротивлению элемента. В состоянии Z элемент практически оказывается отключенным от нагрузки.
Элемент с Z –состоянием можно реализовать, например, путем введения в стандартную схему ТТЛ–инвертора полупроводникового диода VD 2 (рис. 3.1.8, а). Если на управляющем входе Z = 0, то потенциал коллектора (а также эмиттера) транзистора VT 2 близок к нулю и поэтому выходные транзисторы VT З, VT 4 находятся в режиме отсечки, т. е. в разомкнутом состоянии. При Z = 1 диод VD 2 отключен, и ТТЛ–инвертор с входом X и выходом Y работает в обычном режиме. Подключением к входу X инвертора получают повторитель с тремя состояниями выхода. На рис. 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 линий) составляется из двух таких формирователей соединением выводов ?ВК и Т.
Общие сведения об интерфейсе.
Под интерфейсом понимают совокупность аппаратных, программных и конструктивных средств, необходимых для реализации взаимодействия различных функциональных узлов микропроцессорных систем (МС) и направленных на обеспечение их информационной, электрической и конструктивной совместимости. Интерфейс МС представляет собой систему шин, вспомогательных узлов и алгоритмов, предназначенных для организации обмена информацией между микропроцессором, ОЗУ и внешними по отношению к ним узлами и устройствами (ВУ).
Как уже отмечалось выше, в систему шин входят шина данных (ШД), шина адресов (ША) и шина управления (ШУ).
Для подключения к центральной части МС (процессору и ОЗУ) внешних узлов и организации обмена информацией между ними используются интерфейсные схемы. Они позволяют:
? передавать на шину управления сигналы готовности ВУ к обмену данными с МС;
? осуществлять буферизацию шин и хранение данных, адресов и команд, что необходимо для синхронизации обмена информацией;
? выбирать требуемое внешнее устройство при работе МС с несколькими ВУ и дешифрировать их адреса, посылаемые микропроцессором;
? дешифрировать коды и инициировать выполнение команд при работе с такими внешними устройствами, которые помимо передачи данных выполняют другие операции;
? осуществлять синхронизацию и формирование управляющих сигналов, необходимых для правильной реализации любой из перечисленных выше функций;
? управлять процессом передачи данных и преобразовывать их форматы;
? выполнять другие функции, обусловленные спецификой интерфейсной схемы.