Читаем Искусство схемотехники. Том 2 (Изд.4-е) полностью

Это законченный интерфейс, вместе с флагом состояния, прерываниями и выбираемым адресом порта ввода-вывода. Работа интерфейса начинается в левом нижнем углу рисунка, где обозначены данные, посылаемые из частотомера: последовательные цифры, их адреса (0–7) и стробирующий импульс STROBE7, говорящий о достоверности данных. Частотомер посылает цифры от самой младшей (LSD) до самой старшей (MSD), так что весь цикл заканчивается приемом самой старшей цифры (разряда 7). Восемь регистров `173 (4-разрядные D-регистры с тристабильными выходами) фиксируют последовательные цифры; для этого их информационные входы объединены, а на тактовые входы подаются отдельные сигналы с дешифратора адреса цифр. Обратите внимание на использование микросхемы `138-стробируемого дешифратора 1 из 8, с помощью которого из сигналов адреса и строба образуются тактовые сигналы для фиксации цифр.

Таким образом, выходные данные частотомера фиксируются в восьми 4-разрядных регистрах, выходы которых образуют 4 группы по 2 цифры (8 бит) в группе. PC может принять все восемь цифр четырьмя командами IN ввода данных шириной 1 байт из четырех последовательных адресов портов ввода-вывода (начиная с адреса, установленного на DIP-переключателе). Можно даже поступить еще лучше, читая данные из 16-разрядного регистра (т. е. выполняя вместо команды IN AL,DX, команду IN AX,DX), что приведет к двум последовательным операциям чтения байтов из двух соседних портов ввода-вывода. Обратите внимание на простоту схемы дешифрации адреса. 8-разрядный компаратор `682 выдает низкий уровень на выходе, когда 7 старших бит адреса совпадают с комбинацией, установленной на переключателях (при условии, что этот зануда AEN находится в низком состоянии); этим «базовым адресом» разрешается дешифратор 1 из 8 `138, стробируемый сигналом IOR', который декодирует три младшие бита адреса и генерирует отдельные импульсы ввода, соответствующие последовательным адресам портов. Это весьма распространенный способ дешифрации адресов, так как обычно вы назначаете различным регистрам интерфейса несколько последовательных адресов портов.

Флаг состояния устанавливается при приеме последней цифры числа из частотомера; состояние можно прочитать по адресу PORT + 4, где PORT — адрес, установленный на DIP-переключателях. Флаг состояния сбрасывается, когда ЦП читает последний (самый старший) байт данных (по адресу PORT + 3). Интерфейс позволяет работать и в режиме прерываний, которые через перемычку подключаются к любому из уровней IRQ2 или IRQ3, и разрешаются посылкой 1 по адресу PORT (а запрещаются посылкой 0); обратите внимание на неполную дешифрацию адреса в цепи записи, что позволило сэкономить вентили. Как и положено законопослушным гражданам, при включении питания мы сбрасываем оба триггера — и состояния, и разрешения прерываний.

Описанный интерфейс выполняет «упаковку» данных, объединяя несколько чисел в одно компьютерное слово. Если «числа» состоят из одного бита каждое, в 16-разрядное слово компьютера их можно упаковать 16 штук. Это не такое бессмысленное рассуждение, как кажется на первый взгляд: в цифровой обработке сигналов приходится иметь дело с периодическими выборками жестко ограниченных колебаний (которые можно рассматривать, как 1-бит аналого-цифровое преобразование); для повышения скорости выполнения операций ввода-вывода эти биты можно упаковать аппаратно и читать затем целыми словами. Конечно, если скорость не имеет значения, проще получать данные с помощью минимальных аппаратных средств, а всю упаковку и преобразования выполнять программно. Например, в приведенном примере можно было фиксировать и передавать в ЦП по одной цифре, если только быстродействие компьютера достаточно высоко, чтобы цифры не терялись.

Упражнение 10.8. Видоизмените схему интерфейса так, чтобы можно было программно выбирать линию запроса прерывания IRQ, используемую интерфейсом: посылкой 01Н по адресу PORT разрешать прерывания по IRQ2, посылкой 02Н по адресу PORT разрешать прерывания по IRQ3, а посылкой 0 по адресу PORT (или включением питания) запрещать и то, и другое.

Перейти на страницу:

Похожие книги

100 способов избежать аварии. Спецкурс для водителей категории В
100 способов избежать аварии. Спецкурс для водителей категории В

Сколько раз, сидя перед экраном телевизора, вы вздрагивали, услышав визг тормозов? К сожалению, со стороны пассажирского сиденья он звучит еще страшнее. Все мы прекрасно знаем, что, садясь за руль, мы несем ответственность не только за себя и своих спутников, но и за всех участников дорожного движения.Так как же вести себя, если вы понимаете, что ситуация вышла из-под контроля и велика вероятность аварии?Александр Каминский, изучив часто случающиеся аварии, на страницах своей книги поделился опытом и секретами, как их избежать, а также подробно описал экстренные действия во время нештатных ситуаций.Книга написана живым и доступным языком и предназначена для широкого круга автовладельцев с различным стажем вождения. Желаем вам приятного чтения и надеемся, что чужой опыт, описанный в этой интересной книге, никогда не станет вашим!

Александр Юрьевич Каминский

Автомобили и ПДД / Техника