Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

GEK / Перечень вопросов Архитектура_2

.pdf
Скачиваний:
118
Добавлен:
18.05.2015
Размер:
3.84 Mб
Скачать

 

MEMRD

 

Шина

ТИ

MEMWD

 

управления

 

 

 

 

Dn-1

 

Шина

 

 

 

 

D0

 

данных

 

 

 

 

МП

 

 

 

Am-1

 

Шина

 

 

 

 

A0

 

адреса

 

 

 

 

 

BR

 

 

 

...

...

 

 

 

Bw

 

 

Xn-1

X0

 

 

Матрица

 

 

Устройство

запоминающих

 

элементов

 

 

выборки

 

 

 

 

 

адреса

 

 

 

 

 

Память

 

Рис. 9 - Схема соединения памяти с магистралью

В начале цикла записи в память (рис. 10) МП передает адрес. С первой половины такта T2 до окончания такта T4 МП осуществляет вывод записываемых данных на линии Dn-1,…,D0 шины данных. Низким уровнем сигнала MEMRW открывается тристабильный вентиль Bw, линии Dn-1,…,D0 соединяются с линиями Xn-1,…,X0 и начинается процесс записи в выбранную ячейку памяти. Для записи информации в память также требуется некоторое время, в течение которого происходит изменение состояния запоминающих элементов, ячейки памяти. Поэтому в течение времени, пока сигнал MEMRW имеет низкий уровень, данные на входе памяти должны поддерживаться в неизменном состоянии. Для этого служит такт T3. Когда уровень сигнала MEMRW на такте T4 становится высоким, содержимое линий Xn-1,…,X0 фиксируется в ячейке памяти, указанной адресом.

 

Цикл чтения памяти

 

Цикл записи в память

 

 

 

 

 

 

 

T1

T2

T3

T4

T1

T2

T3

T4

ТИ

 

 

 

 

 

 

 

 

Am-1-A0

 

 

 

 

 

 

 

 

MEMRD

 

 

 

 

 

 

 

 

MEMWR

Время обращения

 

 

 

 

 

 

 

Время обращения

 

 

 

к памяти

 

 

 

 

 

 

 

 

к памяти

 

 

 

 

 

 

 

 

 

 

Фаза

 

 

 

 

 

 

 

 

выполнения

 

 

 

 

 

 

 

 

 

 

Выходные

 

Выходные

 

 

Подключение

данные

 

данные

 

 

памяти

 

МП

 

Фиксация

шины данных

 

 

 

 

 

 

 

 

данных в

к памяти

 

 

Считывание

 

 

 

 

 

 

Состояние ЗЭ

памяти

 

 

 

данных МП

 

 

 

 

 

ячейки памяти

 

 

 

 

 

 

 

 

 

 

 

 

 

 

изменилось

 

 

 

Рис. 10 – Диаграмма циклов чтения/записи

 

Рассмотрим процесс ввода/вывода данных. Схема соединения портов ввода/вывода с магистралью приведена на рис. 11.

Каждый порт ввода представляет собой ряд тристабильных вентилей, при открывании которых данные, поступающие в этот порт передаются на линии Dn-1,…,D0 шины данных, откуда уже считываются МП.

Порт вывода представляет собой регистр, работа которого заключается в следующем. МП выводит данные на линии Dn-1,…,D0 шины данных. Эти данные стробирующим сигналом C заносятся в регистр, который обеспечивает их сохранность до записи новых данных.

Для выбора портов ввода/вывода используется дешифратор. Младшими k битами адресной шины можно осуществлять выбор 2k портов ввода или вывода. Временная диаграмма работы в циклах ввода/вывода данных аналогична временной диаграмме в циклах чтения/записи в память. Различие состоит в том, что вместо сигналов MEMRD и MEMWR МП выдает сигналы IORD и IOWR.

Временные диаграммы работы шины в системе с тремя управляющими сигналами приведены на рис. 12 (на рисунке не показана шина данных). Обратите внимание, что сигнал MEM/IO формируется в начале цикла одновременно с адресом и поддерживается неизменным в течение всего цикла магистрали. Аналогично формируется сигнал RD/WR, так как направление передачи остается неизменным в течение всего цикла шины. Управляющие сигналы RD и WR стробируют выполнение операций чтение и запись и вырабатываются аналогично сигналам MEMRD (IORD) и MEMWR (IOWR) соответственно.

Стробирующий сигнал STRB определяет время выполнения операции чтение или запись и

формируется так же, как и сигналы MEMRD, MEMWR, IORD или IOWR

 

 

IORD

 

 

 

 

ТИ

IOWR

 

 

 

 

 

 

 

 

 

 

 

 

Dn-1

 

 

 

 

 

 

D0

 

 

 

 

 

МП

 

 

 

 

 

 

 

Am-1

 

 

 

 

 

 

A0

 

 

 

 

 

 

Дешифратор

 

 

 

 

 

PortSelect

...

 

 

 

 

 

 

1

 

1

 

 

 

 

 

 

 

D

D

 

 

 

 

...

 

RG

 

 

 

EO

C

 

...

 

 

 

Q

Q

 

 

 

 

 

 

 

 

 

 

 

 

 

Порт ввода

 

 

Порт вывода

Рис. 11 – Схема соединения портов ввода/вывода с магистралью

Цикл чтения памяти

 

 

Цикл вывода в порт

 

 

 

 

 

T1

T2

T3

T4

T1

T2

T3

T4

ТИ

 

 

 

 

 

 

 

Am-1-A0

 

 

 

 

 

 

 

RD

 

 

 

 

 

 

 

WR

 

 

 

 

 

 

 

MEM / IO

 

 

 

 

 

 

 

 

 

a)

 

 

 

 

 

Цикл чтения памяти

 

 

Цикл вывода в порт

 

 

 

 

 

T1

T2

T3

T4

T1

T2

T3

T4

ТИ

 

 

 

 

 

 

 

Am-1-A0

 

 

 

 

 

 

 

STRB

 

 

 

 

 

 

 

RD / WR

MEM / IO

б)

Рис. 12 – Временные диаграммы работы шины в системе с тремя управляющими сигналами

В описанной выше стандартной временной диаграмме работы магистрали временные соотношения в циклах чтения/записи полностью задаются МП. В этом случае память и порты ввода/вывода должны постоянно находиться в рабочем (готовом) состоянии, что не всегда возможно. Для медленных устройств система должна позволять произвольно увеличивать длительность циклов шины. Для этого из памяти или из портов ввода/вывода передаются управляющие сигналы, задающие время окончания цикла (подтверждающие окончание цикла) (рис. 13). Как правило, для этой цели используется сигнал READY (ГОТОВНОСТЬ), но могут также использоваться сигналы WAIT (ОЖИДАНИЕ) и TRANSFERACKNOWLEDGE (ПОДТВЕРЖДЕНИЕ ПЕРЕДАЧИ).

Временная диаграмма работы шины с применением сигнала готовности READY приведена на рис. 14. МП по заднему фронту положительного импульса такта T3 (момент времени 1) анализирует состояние сигнала READY. Если данный сигнал имеет высокий уровень, цикл дополняется еще одним тактом (ожидания) TW. По заднему фронту положительного импульса такта TW (момент времени 2) опять анализируется состояние сигнала READY. Если уровень этого сигнала низкий, новые дополнительные такты не вводятся, а следующий такт T4 является последним тактом цикла. Если сигнал READY, анализируемый в такте TW, имеет высокий уровень, цикл дополняется новыми тактами. Таким образом, длительность цикла можно изменять в зависимости от готовности памяти или порта ввода/вывода. Разумеется, в памяти или интерфейсе периферийного устройства должна быть схема, формирующая сигнал READY.

 

 

Шина управления

 

 

 

 

 

 

 

 

 

 

 

 

 

MEMRD

МП

 

 

 

 

MEMWR

IORD

IOWR

READY

 

 

 

 

 

Память

 

Порты

 

ввода/вывода

 

 

 

 

 

 

 

 

Рис. 13 – МП с применением сигнала готовности READY

 

Цикл чтения памяти

 

T1

T2

T3

Tw

T4

ТИ

 

 

 

 

Am-1 - A0

 

 

 

 

MEMRD

 

 

 

 

MEMWR

 

 

 

 

READY

 

 

2

 

 

 

 

 

 

 

1

 

 

Dm-1 - D0

 

 

 

 

Данные

 

 

 

выданы

 

 

 

памятью

 

 

 

Рис. 14 – Временная диаграмма работы шины с применением сигнала готовности READY

28. Интерфейс Centronix, назначение сигналов, формат протокола обмена данными.

Параллельный интерфейс.

Исторически параллельный интерфейс был введен в персональный компьютер (ПК) для подключения принтера (отсюда и аббревиатура LPT - Line printer - построчный принтер). Однако впоследствии параллельный интерфейс стал использоваться для подключения других периферийных устройств - сканеров, дисководов типа Zip и ряда других устройств. Базовая разновидность порта позволяет передавать данные только в одном направлении (от ПК к ПУ), однако позднее был разработан ряд стандартов двунаправленной передачи данных.

Адаптер параллельного интерфейса представляет собой набор регистров, расположенных в адресном пространстве устройств ввода/вывода. Количество регистров зависит от типа порта, однако три из них стандартны и присутствуют всегда - регистр данных, регистр состояния и регистр управления. Адреса регистров отсчитываются от базового, стандартные значения которого 3BCh, 378h, 278h. Узнать количество установленных портов в компьютере и их базовые адреса можно просканировав область данных BIOS по адресам 0:408h для LPT1, 0:40Ah для LPT2, 0:40Ch для LPT3 и 0:40Eh для

LPT4. Если по данным адресам содержится слово (2 байта) с ненулевым значением, то это и есть базовый адрес порта. Если слово содержит нулевое значение - порт не установлен. BIOS не поддерживает больше 4 LPT-портов. Порт может использовать аппаратное прерывание (IRQ7 или IRQ9). Многие современные системы позволяют изменять режим работы порта, его адрес и IRQ из настроек BIOS Setup. Например, в AWARD BIOS имеется раздел Integrated Peripherals, позволяющий настраивать режим, адрес и IRQ порта.

LPT порт имеет внешнюю 8-битную шину данных, 5-битную шину сигналов состояния и 4-х битную шину управляющих сигналов. При начальной загрузке BIOS пытается обнаружить параллельный порт, причем делает это примитивным и не всегда корректным образом - по возможным базовым адресам портов передается тестовый байт, состоящий из чередующегося набора нулей и единиц (55h или AAh), затем производится чтение по тому же адресу, и если прочитанный байт совпал с записанным, то считается, что по данному адресу найден LPT порт. Определить адрес порта LPT4 BIOS не может. Для работы с ПУ в BIOS предусмотрено прерывание INT 17h, предоставляющее возможность передавать данные (побайтно), инициализировать ПУ и получать информацию о его состоянии.

Интерфейс Centronics

Понятие Centronics относится к набору сигналов, протоколу обмена и разъему, устанавливаемому в принтерах. Большинство современных принтеров совместимы с интерфейсом Centronics. Назначение сигналов и контакты разъема ПУ, на который они выведены приведены в таблице 1

 

 

 

 

Таблица 1.

 

 

 

Сигналы интерфейса Centronics

 

 

 

 

 

Сигнал

Т

Конт.

Напр.

Назначение

Strobe

0

1

I

Строб данных. Передается ЭВМ, данные фиксируются по

 

 

 

 

низкому уровню сигнала.

D0 ... D7

1

2-9

I

Линии данных. D0 - младший бит.

Ack

0

10

O

Acknowledge - импульс подтверждения приема байта

 

 

 

 

(запрос на прием следующего). Может использоваться

 

 

 

 

для формирования прерывания.

Busy

1

11

O

Занят. Прием данных возможен только при низком

 

 

 

 

уровне сигнала

PE

1

12

O

"1" сигнализирует о конце бумаги

Select

1

13

O

"1" сигнализирует о включении принтера (ГП - готовность

 

 

 

 

приемника), обычно +5 В через резистор от источника

 

 

 

 

питания ПУ)

Auto LF

0

14

I

Автоматический перевод строки. Если "0", то ПУ при

 

 

 

 

получении символа CR (перевод каретки) выполняет

 

 

 

 

функцию LF - перевод строки

Error

0

15

O

Ошибка ПУ (off-line, нет бумаги, нет тонера, внутренняя

 

 

 

 

ошибка)

Init

0

16

I

Инициализация (переход к началу строки, сброс всех

 

 

 

 

параметров на значения по умолчанию)

Slct In

0

17

I

Выбор принтера. При "1" принтер не воспринимает

 

 

 

 

остальные сигналы интерфейса

GND

 

19-30,

-

Общий провод

 

 

33

 

 

Примечание: столбец "T" - активный уровень сигнала: "1" - высокий активный уровень, "0" - низкий активный уровень. Столбец "Напр." - направление передачи по отношению к принтеру: I - вход, 0 - выход.

Передача начинается с проверки источником сигнала "Error". Если он установлен, то обмен не производится. Затем проверяется состояние сигнала "Busy". Если он равен "0", то источник приступает к передаче байта данных. Для передачи байта источник выставляет на линии D0-D7 байт данных и выдает сигнал Strobe. Приемник по сигналу Strobe# (здесь и далее по тексту значок "#" после названия сигнала является признаком того, что сигнал имеет низкий активный уровень) читает данные с шины данных и выставляет сигнал Busy на время его обработки. По окончании обработки приемник выдает сигнал ACK# и снимает сигнал Busy. Если в течение длительного времени (6 - 12 сек) источник не получает ACK#, то он принимает решение о ошибке "тайм-аут" (time-out) устройства. Если после приема байта приемник по какой - либо причине не готов принимать данные, то он не снимает сигнал Busy. При программной реализации обмена по указанному протоколу желательно ограничить время ожидания снятия Busy (обычно 30 - 45 сек), иначе возможно зависание программы.

Стандартный параллельный порт ПК

Стандартный параллельный порт называется SPP (Standard Parallel Port - Стандартный Параллельный Порт). SPP порт является однонаправленным, на его базе программно реализуется протокол обмена Centronics. Порт обеспечивает возможность генерации IRQ по импульсу ACK# на входе. Сигналы порта выводятся на стандартный разъем DB-25S (розетка), который размещен непосредственно на плате адаптера или соединяется с ним плоским шлейфом (в случае, если адаптер интегрирован с материнской платой). Названия сигналов соответствуют названиям сигналов интерфейса Centronics (таблица 1.2).

В таблице 1.2 I/O - направление передачи: I - вход; O - выход; O(I) - выход, состояние которого может быть считано при определенных условиях, O/I - выходные линии, состояние которых читается при чтении из соответствующих регистров порта.

Адаптер SPP-порта содержит три 8-битных регистра, расположенных по соседним адресам в пространстве ввода-вывода, начиная с базового адреса порта BASE (3BCh, 378h или 278h).

Data Register (DR) — регистр данных, адрес=ВАSЕ. Данные, записанные в этот регистр, выводятся на выходные линии Data[7:0]. Данные, считанные из этого регистра, в зависимости от схемотехники адаптера соответствуют либо ранее записанным данным, либо сигналам на тех же линиях, что не всегда одно и то же.

Status Register (SR) — регистр состояния (только чтение), адрес=ВАSЕ+1. Регистр отображает 5-битный порт ввода сигналов состояния принтера (биты SR.4-SR.7) и флаг

прерывания. Бит SR. 7 инвертируется — низкому уровню сигнала соответствует единичное значению бита в регистре, и наоборот.

Ниже описано назначение бит регистра состояния (в скобках даны номера контактов разъема порта).

SR.7 — Busy — инверсное отображение состояния линии Busy (11): при низком уровне на линии устанавливается единичное значения бита — разрешение на вывод очередного байта.

SR. 6 — Ack (Acknowledge) — отображение состояния линии Ack# (10).

SR. 5 — РЕ (Paper End) — отображение состояния линии Paper End (12). Единичное значение соответствует высокому уровню линии — сигналу о конце бумаги в принтере.

SR. 4 — Select — отображение состояния линии Select (13). Единичное значение соответствует высокому уровню линии — сигналу о включении принтера.

SR. 3 — Error — отображение состояния линии Error* (15). Нулевое значение соответствует низкому уровню линии — сигналу о любой ошибке принтера.

SR.2 — PIRQ — флаг прерывания по сигналу Ack# (только для порта PS/2). Бит обнуляется, если сигнал Ack# вызвал аппаратное прерывание. Единичное значение устанавливается по аппаратному сбросу и после чтения регистра состояния.

SR[1:0] — зарезервированы.

Control Register (СR) — регистр управления, адрес=ВА5Е+2, допускает запись и чтение. Регистр связан с 4-битным портом вывода управляющих сигналов (биты 0-3) для которых возможно и чтение; выходной буфер обычно имеет тип «открытый коллектор». Это позволяет корректно использовать линии данного регистра как входные при программировании их в высокий уровень. Биты 0,1,3 инвертируются.

Ниже описано назначение бит регистра управления.

CR [7:6] — зарезервированы.

CR.5 — Direction — бит управления направлением передачи (только для портов PS/2, см. ниже). Запись единицы переводит порт данных в режим ввода. При чтении состояние бита не определено.

CR. 4 — AcklNTEN (Ack Interrupt Enable) — единичное значение разрешает пре-

рывание по спаду сигнала на линии Ack# — сигнал запроса следующего байта.

CR.3 — Select In — единичное значение бита соответствует низкому уровню на выходе Select ln# (17) — сигналу, разрешающему работу принтера по интер-

фейсу Centronics.

CR.2 — In it— нулевое значение бита соответствует низкому уровню на выходе Init# (16) — сигнал аппаратного сброса принтера.

CR. 1 — Auto LF — единичное значение бита соответствует низкому уровню на выходе Auto LF# (14) — сигналу на автоматический перевод строки (LF — Line Feed) по приему байта возврата каретки (CR). Иногда сигнал и бит называют

AutoFD или AutoFDXT.

CR.0 — Strobe — единичное значение бита соответствует низкому уровню на выходе Strobe* (1) — сигналу стробирования выходных данных.

Перечислим шаги процедуры вывода байта по интерфейсу Centronics с указанием требуемого количества шинных операций процессора.

1. Вывод байта в регистр данных (1 цикл IOWR#).

2.Ввод из регистра состояния и проверка готовности устройства (бит SR. 7 — сигнал Busy). Этот шаг зацикливается до получения готовности или до срабатывания программного тайм-аута (минимум 1 цикл IORD#).

3.По получению готовности выводом в регистр управления устанавливается строб данных, а следующим выводом строб снимается. Обычно, чтобы пере ключить только один бит (строб), регистр управления предварительно считывается, что к двум циклам IOWR# добавляет еще один цикл IORD#.

Видно, что для вывода одного байта требуется 4-5 операций ввода-вывода с регистрами порта (в лучшем случае, когда готовность обнаружена по первому чтению регистра состояния). Отсюда вытекает главный недостаток вывода через стандартный порт — невысокая скорость обмена при значительной загрузке процессора. Порт удается разогнать до скоростей 100-150 Кбайт/с при полной загрузке процессора, что недостаточно для печати на лазерном принтере. Другой недостаток функциональный — сложность использования в качестве порта ввода/

29.Организация подсистемы ввода-вывода ПЭВМ. Программирование системы вводавывода.

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

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

При разработке систем ввода/вывода должны быть решены следующие проблемы:

возможность реализации системы с переменным составом оборудования, в первую очередь с различным набором устройств ввода/вывода, с тем, чтобы пользователь мог выбирать состав оборудования (конфигурацию) системы в соответствии с ее назначением, легко дополнять систему новыми устройствами;

для эффективного и высокопроизводительного использования оборудования системы возможность параллельной во времени работы процессора над программой и выполнения периферийными устройствами процедур ввода/вывода;

упрощение для пользователя и стандартизация программирования операций ввода/вывода, обеспечение независимости программирования ввода/вывода от особенностей того или иного устройства ввода/вывода;

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