Вход/Регистрация
Искусство схемотехники. Том 2 (Изд.4-е)
вернуться

Хоровиц Пауль

Шрифт:

Рис. 10.9. Цикл ввода-вывода при чтении.

Пример такой схемы приведен на рис. 10.10.

Рис. 10.10. Параллельный входной порт.

Схема позволяет компьютеру считать байт, хранящийся в регистре на D-триггерах типа `574. Поскольку и тактовый вход, и входы данных регистра доступны внешнему устройству, в регистр может быть занесена цифровая информация практически любого характера (выход цифрового прибора, АЦП и т. п.). Для разнообразия мы использовали вместо всех логических элементов 2-разрядный дешифратор адреса типа `679. Эта «умная микросхема» имеет 12 адресных входов, вход выборки и 4 «программируемых» входа. Если вы хотите дешифровать некоторый определенный адрес, это делается хитро: функционально такая микросхема представляет собой 12-входовую схему И-НЕ, программируемое число этих входов может быть дополнительно инвертировано; инвертируются всегда входы с меньшими номерами, а их количество вы можете задавать с помощью 4-х отдельных программируемых входов.

Пусть мы хотим «добраться» до резервного порта ввода-вывода с адресом 200Н (рис. 10.8). Нам необходимо распознать состояние А9 — высокий уровень, А0-А8 — низкий. Ко всему прочему мы можем использовать микросхему `679 для стробирования дешифрованного адреса низкими уровнями сигналов AEN и IOR'.

Итак, окончательно нам требуется схема И-НЕ с 11-ю инвертирующими входами и одним неинвертирующим входом, что обеспечивается подачей кода 1011, осуществляемой аппаратным образом на программируемые входы. Затем подключим адресную шину и синхросигналы так, как показано на рис. 10.10. Как только команда

IN AL,200H

выполнится, ЦП выставляет адрес 200Н на линиях А0-А9 и затем устанавливает IOR' на время 630 нc. Центральный процессор считывает то, что он обнаруживает на шине данных (D0-D7) в момент времени, соответствующий спаду сигнала IOR', затем сбрасывает А0-А9.

Реакция периферийного устройства должна заключаться в том, чтобы выдать данные на соответствующие разряды D0-D7 по крайней мере за 50 нc до конца IOR'; выполнить это условие не составляет никакого труда, так как устройству известно, что от него требуются данные, уже по меньшей мере 600 не. Для типовой задержки срабатывания используемых здесь микросхем 10 нc, 600 нс выглядят вечностью.

Начиная с этого примера, мы прекратим пристально рассматривать весь клубок линий магистрали, а просто будем называть отдельные линии по именам.

Сигналы магистрали: двунаправленность и однонаправленность. Из двух примеров, которые мы рассмотрели до сих пор, вы могли увидеть, что некоторые линии магистрали являются двунаправленными, например линии шины данных: во время записи на них выставляется выходной код ЦП, а во время чтения — выходной код периферийного устройства. Как ЦП, так и периферийное устройство для подключения к таким линиям используют элементы с третьим состоянием на выходе.

Другие сигналы, такие как IOW' и IOR', всегда вырабатываются ЦП с помощью стандартных драйверов. Типичным для компьютерных магистралей является существование обоих типов линий, двунаправленных линий для данных, передаваемых как в одном, так и в другом направлении, и однонаправленных линий для сигналов, которые всегда вырабатываются ЦП (или, более точно, соответствующими логическими схемами управления магистралью). Процессор всегда использует какой-то простой протокол, вроде наших правил установки/чтения в соответствии с сигналами IOW', IOR' и адресными, который предотвращает конфликтные ситуации на совместно используемых линиях магистрали.

Среди перечисленных до сих пор только шина данных является двунаправленной; адрес, сигнал AEN и синхросигналы распространяются только в одном направлении — от ЦП. (Чтобы не создавать неправильного впечатления, надо уточнить, что более сложные компьютерные системы позволяют другим адресатам магистрали становиться ее «хозяевами»; очевидно, в таких системах почти все сигналы магистрали являются мультиплексируемыми и двунаправленными. IBM PC в этом отношении необычайно проста.)

10.08. Программируемый ввод-вывод: регистры состояний

В нашем последнем примере компьютер мог считать байт из схемы сопряжения в любое время, когда захочет. Это замечательно, но как узнать, когда можно считать что-нибудь стоящее? В некоторых случаях вы можете потребовать, чтобы компьютер считывал данные через равные интервалы времени, отсчитываемые его таймером реального времени. Пусть например, компьютер «заставляет» АЦП начинать преобразование через равные промежутки времени (командой OUT) и затем считывает результат несколькими микросекундами позже (командой IN). В измерительных системах этого может быть вполне достаточно. Однако часто встречаются такие случаи, когда внешнее устройство имеет свой собственный «интеллект», и было бы хорошо, если бы оно могло без промедления сообщить компьютеру, что что-то произошло.

Классическим примером является алфавитно-цифровой ввод при нажатии каких-либо клавиш клавиатуры дисплея. Если вы не хотите терять символы, компьютер должен ввести каждый из них и без большой задержки. Еще более серьезная ситуация с быстрым накопительным устройством, таким как диск или ленточный магнитофон; данные необходимо передавать со скоростью до 100000 байт в секунду без задержки. Для того чтобы решить эту проблему, существуют три реальные возможности: использовать регистры состояний, прерывания и прямой доступ в память (ПДП). Давайте начнем с простейшего метода-регистров состояния — проиллюстрированного схемой сопряжения клавиатуры на рис. 10.11.

  • Читать дальше
  • 1
  • ...
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: