- •Предисловие
- •Глава 1
- •1.1. Средства микропроцессорной вычислительной техники
- •1.2. Основные характеристики, место и классификация микроЭвм
- •1.3. Индустрия микропроцессорных средств вт
- •Глава 2 элементная база микроэвм. Микропроцессоры
- •2.1. Микропроцессорные бис
- •2.2. Микропроцессор 8086
- •2.3. Развитие семейства мп 8086
- •Глава 3 элементная база микроэвм. Микропроцессорные семейства бис
- •3.1. Сопроцессоры
- •3.2 Интегральные микросхемы памяти
- •3.3. Интерфейсные схемы, контроллеры
- •3.4. Схемы обрамления
- •Глава 4 магистрально-модульная организация микроэвм
- •4.1. Интерфейсы и магистрали микроЭвм
- •4.2. Магистрали типа Multibus
- •4.3. Интерфейсы периферийного оборудования
- •4.4. Конструктивные особенности микроЭвм
- •Глава 5 аппаратура микроэвм
- •5.1. Периферия микроЭвм
- •5.2. Аппаратура персональных микроЭвм
- •5.3. Модульные системы и одноплатные микроЭвм
- •Глава 6
- •6.1. Операционные системы
- •6.2. Средства автоматизации программирования
- •6.3. Пакеты прикладных программ
- •1. Монография я учебные издания
- •2. Периодические издания
- •3. Фирменные издания
- •Глава 1. Введение в микропроцессорную технику .............................. 5
- •Глава 2. Элементная база микроЭвм. Микропроцессоры ...................... 18
- •Глава 3. Элементная база микроЭвм. Микропроцессорные семейства бис ............................................................................................................................ 81
- •Глава 4. Магистрально-модульная организация микроЭвм ……………108
- •Глава 5. Аппаратура микроЭвм ............. ……………………………….148
- •Глава 6. Программное обеспечение микроЭвм ........................................187
3.3. Интерфейсные схемы, контроллеры
Внешние устройства любой вычислительной машины подключаются к микроЭВМ с помощью специальных БИС, получивших название интерфейсных схем и контроллеров. Под интерфейсной БИС подразумевается микросхема, предназначенная для выполнения функций управления некоторым классом периферийных устройств, ограниченным обычно способом обмена данными — параллельным или последовательным. Такие микросхемы отличает широкая универсальность, обеспеченная программной настройкой БИС на выполнение конкретных функций: направление передачи, генерация сигналов сопровождения и завершения обмена, контроль достоверности и т. д. БИС контроллера достаточно жестко ориентирована на конкретный вид внешнего устройства, хотя и в таких схемах ряд функций может быть выбран программно.
По способу передачи информации между устройством ввода-вывода и интерфейсной БИС/контроллером последние однозначно делятся на два класса — последовательные и параллельные. Универсальные последовательные интерфейсные БИС (communication interface) поддерживают обмен последовательным кодом с самыми разнообразными устройствами (принтерами, телетайпами, модемами и другими). Такие БИС выпускаются десятками фирм и при всем их разнообразии кроме основной функции — преобразования последовательного кода в параллельный при приеме информации и наоборот — при передаче, они обеспечивают программный выбор режима работы (синхронный, асинхронный), форматов параллельного и последовательного кодов (разрядность, формирование стоповых бит, формирование контрольных разрядов), контроль достоверности приема информации (на четность, нечетность), частоту стробирования посылок. Подробное описание типичной БИС универсального последовательного интерфейса КР580ВВ51 (аналог БИС 8251 фирмы Intel) приведено в [1.13]. БИС последовательных контроллеров выполняют аналогичные функции, но они проектируются для обмена в соответствии с некоторым стандартом. Например, выпускаются контроллеры, поддерживающие последовательный обмен по стандартам HDLC Международного консультационного комитета по телефонии и телеграфии, SDLC фирмы IBM, стандарту на первый уровень локальной сети типа Ethernet (IEEE802.3).
Параллельные интерфейсные БИС и контроллерные БИС предназначены для аппаратной поддержки обмена информацией с устройствами, которые принимают и выдают параллельный код. Универсальные параллельные интерфейсные БИС программно настраиваются на выполнение конкретных операций обмена. Так широко распространенная БИС фирмы Intel 8255 имеет 24 линии связи, которые программно (группами по 8 и 4) можно настроить на ввод или вывод информации в трех режимах: без стробирования, со стробированием, двунаправленный ввод-вывод. Аналогичные микросхемы выпускаются многими фирмами (см. описанные БИС КР580ВВ55 в [1.13]). БИС параллельных контроллеров оптимизированы в соответствии с некоторым стандартом на параллельный обмен, например, IEEE 488 (GPIB) (международный межприборный интерфейс), или поддерживают группу устройств. Широкое распространение в аппаратуре микроЭВМ находят БИС контроллеров алфавитно-цифровых и графических дисплеев, клавиатуры, принтеров, накопителей на гибких и жестких магнитных дисках. Несмотря на специализацию, контроллерные БИС также допускают некоторую программную настройку параметров и функций. В табл. 3.5 (по материалам [3.2]) приведены краткие характеристики интерфейсных и контроллерных БИС микропроцессорных семейств MCS-80 и MCS-86 фирмы Intel.
Рассмотрим более подробно БИС универсального периферийного интерфейса (УПИ, universal peripheral interface) 8041A [1.36, 3.2]. Эта БИС по сути своей является однокристальным микрокомпьютером, ориентированным на выполнение операций ввода-вывода. Структура микросхемы приведена на рис. 3.8. Ее можно условно разделить на три части. Первая часть — это собственно компьютер в кристалле, состоящий из 8-разрядных АЛУ и аккумулятора АС, оперативной памяти для данных, емкостью 64 байта, памяти для программ, емкостью 1 Кбайт (в 8041А выполнена в виде ОЗУ, в 8741А — в виде СППЗУ с ультрафиолетовым стиранием, в 8641А — ПЗУ программируемого изготовителем) и устройства управления (10-разрядный счетчик команд, дешифратор команд, управление и синхронизация). Вторая часть — 8-разрядные порты ввода-вывода, обеспечивающие связь с внешними устройствами. Третья часть — регистры обмена информацией с основным микропроцессором. Данные и команды между УПИ и МП передаются по 8-разрядной двунаправленной шине D7—D0, тип операции задается сигналами (запись) и (чтение), причем уровень сигнала на входе A0 определяет тип байта: данные (высокий уровень) или команды (низкий уровень).
УПИ выбирается низким уровнем сигнала на входе CS. Периферия подключается к портам ввода-вывода с помощью квазидвухнаправленных линий P17—P10 (порт 1) и Р27—Р24 (порт 2). Четыре старших линии (Р27—Р24) могут программно настраиваться на выполнение специальных функций. Кроме этого, имеется два входных сигнала Т1, Т0, состояние которых можно проверять командами условной передачи управления. Причем вход Т1 служит также для ввода счетных импульсов в 8-разрядный программно управляемый таймер/счетчик.
Архитектурные решения (структура, система команд) УПИ в основном соответствует однокристальному микрокомпьютеру 8048 (подробнее описание БИС аналога КМ1816ВЕ48 приведено в [1.13]). УПИ 8041А отличается наличием входного регистра данных DBI и выходного регистра данных DBO, что значительно облегчает организацию обмена с основным МП. Причем состояние этих регистров отображается двумя разрядами слова состояния IBF и ORF, соответственно (рис. 3.9, а). Если, например, УПИ записывает в выходной регистр DBO некоторый код, то флаг OBF (output buffer full — выходной буфер полный) взводится в 1. OBF сбросится в 0 только тогда, когда МП прочитает код из DBO. Аналогично работает и IBF (входной буфер полный). При взведении флага IBF в УПИ может наступить внутреннее прерывание, если оно не замаскировано. Имея доступ к регистру состояния SR, и основной микропроцессор, и УПИ могут всегда контролировать содержимое регистров обмена данными.
В регистре состояния есть два флага F1 и F0. Флаг F0 общего назначения. Его можно программно устанавливать, сбрасывать и изменять. Он обычно используется для индикации основному МП ошибки при выполнении операции обмена. Флаг F1 также полностью программно управляем. Но он дополнительно отображает состояние линии А0 при записи информации в регистр DBI, что позволяет УПИ узнать, команда или данные переданы из основного МП. Кроме этого, четыре старшие разряда регистра SR устанавливаются УПИ программно с помощью команды передачи старших разрядов аккумулятора.
Состояния флагов OBF и IBF могут выводиться на линии Р24, Р25 при настройке командой ENFlag (код E516). Функционально сигналы на этих выходах могут служить запросами на прерывание для основного МП. По команде ENDMA (код F516) линия P26 настраивается на выполнение функций выхода запроса передачи по каналу прямого доступа в память DRQ. Когда УПИ необходимо принять или передать очередной байт в системную память, DRQ взводится в 1. Запрос сбрасывается в ноль при чтении из DBO или записи в DBI, выполненных в сопровождении высокого уровня на вход Р27, по которому принимается сигнал подтверждения обмена по каналу прямого доступа DACK.
Память программ емкостью 1 Кбайт разбита на четыре страницы 1 Кбайт по 256 байт. Адресация команд в памяти программ осуществляется 10-разрядным счетчиком, причем два его старших разряда (номер страницы) можно изменить только с помощью команды вызова подпрограммы. Содержимое любой ячейки памяти программ пересылается в аккумулятор с помощью команды MOVR (чтение текущей страницы) или команды MOVR3 (чтение 3 страницы). Назначение трех ячеек первой страницы зарезервировано для хранения адресов входов в подпрограммы обработки прерываний (рис. 3.9, б). Шестидесятичетырехбайтная память данных содержит в своем составе два набора рабочих регистров по 8 в каждом, восьмиуровневый стек с двухбайтными элементами и 32 байта для данных пользователя (рис. 3.9, в). Доступ к данным возможен с помощью регистровой и косвенной адресации. Переключение наборов регистров осуществляется специальными командами. Допускается также непосредственная адресация констант. Система команд включает шесть групп операций:
арифметико-логические — сложение, инкремент, декремент, логика, сдвиги (выполняются над аккумулятором, регистрами, памятью данных);
передача данных — между аккумулятором и регистрами, аккумулятором и памятью данных, пересылки из памяти программ в аккумулятор;
ввод-вывод — пересылки между DBO, DBI, SR и аккумулятором, между портами и аккумулятором;
управление таймером/счетчиком — загрузка и чтение содержимого, пуск, останов и сброс таймера, управление прерыванием от таймера;
передачи управления — вызов подпрограммы и возврат из подпрограммы, безусловные переходы, условные переходы;
управление — сброс, установка и изменение флагов F0 и F1, выбор рабочего набора регистров, управление прерыванием по IBF, настройка линий Р24—Р27
Подробное описание форматов данных и команд, способов адресации и системы команд приведено в [1.13]. В [1.16] отмечаются широкие возможности УПИ 8041А при построении микропроцессорных систем на базе МП 8080, 8085, 8086 для связи с медленными и средними по скорости периферийными устройствами, например, принтерами, клавиатурой, дисплеями, кассетными накопителями на магнитной ленте.