Главная > Схемотехника > Искусство схемотехники, Т.2
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

10.22. Пример интерфейса: аппаратная упаковка данных

Если все ваши приборы подключаются к стандартной интерфейсной магистрали (например, GPIB), ваши дела блестящи: просто купите интерфейсную плату для вашего компьютера и несколько кабелей, соедините все вместе и наймите программиста. Талант тут не требуется, только деньги. Однако эта глава посвящена магистральным интерфейсам, и мы хотели бы завершить ее примером законченной разработки.

Надо полагать, что вы, как и мы, не выбрасываете все ваши работоспособные приборы, если появляется что-нибудь новенькое. Некоторые исключительно полезные приборы были созданы еще до эпохи GPIB; в них можно вдохнуть новую жизнь, смастерив к ним интерфейс для подключения к лабораторному компьютеру. Например, частотомер с -разряд-ным цифровым индикатором скорее всего имеет на задней панели «цифро-последо-вательный, бит-параллельный» выход, на котором появляются друг за другом индицируемые цифры в двоично-кодированном десятичном коде (BCD); весьма вероятно, что скорость вывода цифр совпадает со скоростью регенерации индикатора. Контролировать временные соотношения вы не можете; каждая достоверная цифра, вместе с ее трехбитным адресом позиции в числе, сопровождается стробом. Такого рода прибор скорее всего использует выходные уровни .

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

Таким образом, выходные данные частотомера фиксируются в восьми -раз-рядных регистрах, выходы которых образуют 4 группы по 2 цифры (8 бит) в группе. PC может принять все восемь цифр четырьмя командами IN ввода данных шириной 1 байт из четырех последовательных адресов портов ввода-вывода (начиная с адреса, установленного на -переключателе). Можно даже поступить еще лучше, читая данные из -раз-рядного регистра (т.е. выполняя вместо команды , команду ), что приведет к двум последовательным операциям чтения байтов из двух соседних портов ввода-вывода.

Обратите внимание на простоту схемы дешифрации адреса. -разрядный компаратор выдает низкий уровень на выходе, когда 7 старших бит адреса совпадают с комбинацией, установленной на переключателях (при условии, что этот зануда AEN находится в низком состоянии); этим «базовым адресом» разрешается дешифратор 1 из , стробируемый сигналом , который декодирует три младшие бита адреса и генерирует отдельные импульсы ввода, соответствующие последовательным адресам портов.

Рис. 10.23. Символьно-последовательный интерфейс.

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

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

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

Например, в приведенном примере можно было фиксировать и передавать в ЦП по одной цифре, если только быстродействие компьютера достаточно высоко, чтобы цифры не терялись.

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

Практическое замечание по поводу нашей схемы: следует избегать чрезмерной нагрузки линий шины. В приведенной схеме к каждой линии подключаются выходы четырех тристабильных регистров , что создает чрезмерную емкостную нагрузку. Хотя наш интерфейс будет, несомненно, работать правильно, его подключение ограничит число дополнительных плат, которые можно установить на шине (особенно, если остальные разработчики окажутся грешными в том же отношении!). В нашем случае следовало использовать тристабильный -разряд-ный буфер (микросхема 244), включив его между выходами D0-D7 и шиной данных PC. Сигнал разрешения микросхемы можно получить, образовав логическое И декодированного адреса и сигнала .

<< Предыдущий параграф Следующий параграф >>
Оглавление