Одно из наиболее распространенных направлений использования ПЭВМ - сбор и обработка информации о состоянии датчиков, управление различными механизмами и технологическими системами. Типичная проблема, возникающая при этом: как ввести в компьютер и вывести из него все необходимые сигналы, число которых нередко достигает нескольких сотен. Часто приходится разрабатывать специальный блок, принимающий сигналы датчиков и преобразующий их в сигналы одного из стандартных интерфейсов, которыми оборудован компьютер, например, последовательного интерфейса RS-232C ("Стык С2"). Обычно этот же блок решает и обратную задачу- преобразует сигналы стандартного интерфейса в вид, необходимый для управления исполнительными устройствами. К сожалению, такое решение не всегда оправдано. Во-первых, стандартный интерфейс нередко бывает занят, например, связью с другими компьютерами, принтером и подобными устройствами. Во-вторых, необходимость постоянного приема и передачи большого числа сигналов через сравнительно медленный последовательный интерфейс может сильно повлиять на скорость работы системы в целом.
Во многих компьютерах, в том число в IBM PC, предусмотрена возможность подключения дополнительных устройств непосредственно к системной шине. Для этого на основной плате компьютера установлены специальные розетки ("слоты"), в которые могут вставляться дополнительные платы, выполняющие функции, на предусмотренные исходной конфигурацией компьютера. Скорость обмена дм и ими по системной шине - максимально возможная для данного компьютера и ограничивается в основном быстродействием его процессора. В настоящее время выпускается большой ассортимент дополнительных плат, выполняющих самые разнообразные функции, в том числе и расширяющих возможности связи компьютера с внешними устройствами. При необходимости такие платы можно изготовить самостоятельно.
Принципиальная схема простой дополнительной интерфейсной платы показана на рис. 1. Она построена на базе известного адаптера параллельного интерфейса КР580ВВ55А, что позволяет вводить или выводить из компьютера до 24 логических сигналов. На микросхемах DD2, DD3 выполнен дешифратор, на который поданы сигналы А4-А9 шины адреса компьютера. При выполнении компьютером команд чтения из портов с адресами от З00Н до 30FH или записи в эти же порты на выводе 8 DD3 формируется импульс низкого логического уровня, разрешаю-щий работу микросхем DD1 и DD4. Разряды адреса А2 и A3 не используются, а сигналы АО и А1 подаются непосредственно на адресные входы DD4. Таким образом, к порту А этой микросхемы можно обращаться по любому из адресов З00Н, 304Н, 308H З0СН; к порту В - по адресам 301Н, 305Н, 309Н, З0DН; к порту С-по адресам 302Н, 306Н,З0АН,З0ЕН, а к регистру управляющего слова - по адресам 303Н, 307Н, 30ВН, 30FH.
Операции чтения или записи ПРОИЗВОДЯТСЯ по формируемым процессором компьютера сигналам IOR или IOW. Однако в компьютере эти сигналы могут быть сформированы не только процессором, но и контроллером прямого доступа к памяти (ПДП). Для исключения сбоев на дешифратор подан сигнал AEN, блокирующий его при работе компьютера в режиме ПДП.
Несколько слов о назначении шинного формирователя DD1. Если плату предполагается использовать только для вывода данных, то вполне можно обойтись и без этой микросхемы: буфер шины данных компьютера имеет достаточный запас нагрузочной способности для управления непосредственно подключенной к нему шиной данных микросхемы DD4. Однако для передачи в обратном направлении нагрузочной способности этой микросхемы недостаточно, поэтму требуется мощный шинный формирователь.
Иногда оказывается, что длительность формируемых компьютером сигналов записи и чтения слишком мала для надежной работы сравнительно "медленных" периферийных микросхем (в том числа и КР580ВВ55А). Особенно вероятна такая ситуация при ускорении работы компьютера за счет повышения тактовой частоты процессора (так называемый турбо-режим). Для удлинения циклов записи/чтения до необходимой величины в системном разъеме предусмотрен специальный вход сигнала готовности внешних устройств RDY. Если после начала импульса записи или чтения установить на этом входе низкий логический уровень, то окончание импульса будет задержано до снятия этого уровня. Выход RDY обязательно выполняется по схеме с "открытым коллектором", что при необходимости позволяет объединить эти сигналы от разных источников.
Схема уала формирования сигнала RDY показана на рис. 2. Длительность импульса устанавливают подборкой конденсатора С1. Необходимость применения этого узла в изготавливаемой плате лучше всего проверить экспериментально.
Если нужно увеличить число выводов для подключения внешних устройств, на интерфейсной плате можно установить дополнительные микросхемы КР580ВВ55А. Каждая из них позволит вводить или выводить еще 24 логических сигнала. Основная трудность, с которой придется столкнуться, - как разместить в компьютере разъем (или разъемы) с достаточным числом контактов для подачи всех этих сигналов.
Выводы 5, 8, 9, 27-36, а также выводы питания (7 и 26) дополнительных микросхем КР580ВВ55А подключают параллельно соответствующим выводам микросхемы DD4. Дешифратор адреса (DD2.1-DD2.5, DD3) заменяют микросхемой ППЗУ 556РТ7 или КР556РТ18. Адресные входы А2-А9 (выводы 6-1, 23,22) этой микросхемы соединяют с соответствующими цепями разъема ХР1, вход А10 (вывод 21) -о цепью AEN, выводы 7, 8, 20 - с общим проводом, а выводы 18, 19 - с источником питания +5 В через резистор сопротивлением 1 кОм. Вывод 9 соединяют с выводами 19 DD1и 13 DD2,а вывод 10-с выводом 6 DD4 (его соединение с DD1 и DD2 разрывают). К выводам 11, 13-17 подключают выводы шести дополнительных микросхем КР580ВВ55А; таким образом, всего их может быть до семи штук (включая DD4).
Для экономии места вместо таблицы программирования микросхемы ППЗУ дешифратора приведем простую программу на языке БЕЙСИК, которая распечатает эту таблицу на принтере.
10 REM Дешифратор дополнительных портов ввода/вывода 20 РА1=&H300: REM Адрес порта А DD4 30 PA2=&H304: REM Адрес порта А 1-й доп. ВВ55 40 РА3=&H308: REM Адрес порта А 2-й доп. ВВ55 50 PA4=&H30C: REM Адрес порта А 3-й доп. ВВ55 60 FOR A=0 TO 2047 70 X=&B11111111l 80 IF (A>=PA1) AND (A<=PA1+3) THEN X=&B11111100:GOTO 120 90 IF (A>=PA2) AND (А<=РА2+3) THEN X=&B11111010 :GOTO 120 100 IF (A>=PA3) AND (А<=РА3+3) THEN Х=&В11110110 :GOTO 120 110 IF (A>=PA4) AND (А<=РА4+3) THEN Х=&B11101110 120 IF (А AND &HF)=0 THEN LPRINT: LPRINT HEX (А) 130 LPRINT" "; HEX (Х); 140 NEXT 150 LPRINT
Таблица рассчитана на дешифратор для четырех микросхем КР580ВВ55А, адреса портов которых размещаются в области 300H-30FH. Внеся в программу расчета очевидные изменения, нетрудно получить таблицу для другого числа микросхем и других адресов их портов. Однако, выбирая адреса, необходимо убедиться, что они еще не использованы компьютером.
В заключение отметим, что микросхемы ПЗУ серии К573 из-за недостаточного быстродействия в дешифраторе использовать нельзя.
Перейдем к особенностям программирования компьютера. В любой программе, предназначенной для работы с описанной платой, должна быть предусмотрена настройка всех установленных на ней микросхем КР580ВВ55А. Не вдаваясь в известные подробности работы этих микросхем, приведем таблицу управляющих слов для наиболее часто используемого режима 0.
Управляющее |
ПорТ А |
Порт с(ст) |
Порт в |
Порт с(мл) |
слово (исх) |
(РАО. .РА7) |
(РС4..РС7) |
(РВО..РВ7) |
(РСО..РСЗ) |
80 |
Вывод |
Вывод |
Вывод |
вывод |
81 |
Вывод |
Вывод |
Вывод |
Ввод |
82 |
Вывод |
Вывод |
Ввод |
Вывод |
83 |
Вывод |
Вывод |
Ввод |
Ввод |
88 |
Вывод |
Ввод |
Вывод |
Вывод |
89 |
Вывод |
Ввод |
Вывод |
Ввод |
8А |
Вывод |
Ввод |
Ввод |
Вывод |
8В |
Вывод |
Ввод |
Ввод |
Ввод |
90 |
Ввод |
Вывод |
Вывод |
Вывод |
91 |
Ввод |
Вывод |
Вывод |
Ввод |
92 |
Ввод |
Вывод |
Ввод |
Вывод |
93 |
Ввод |
Вывод |
Ввод |
Ввод |
98 |
Ввод |
Ввод |
Вывод |
Вывод |
9S |
Ввод |
Ввод |
Вывод |
Ввод |
9А |
Ввод |
Ввод |
Ввод |
Вывод |
9В |
Ввод |
Ввод |
Ввод |
Ввод |
Одно из этих слое необходимо записать в регистр управляющего слова каждой микросхемы КР580ВВ55А до выполнения каких-либо других операций с ней. Например, команда (на языке Бейсик)
OUT &H303, &H80
настроит микросхему на вывод по всем 24 внешним цепям. Собственно вывод может производиться аналогичными командами: OUT &H300, &H55: REM Вывод константы 55Н в порт А OUT &H301,X: REM Вывод значения переменной X в порт B
OUT &H303,2*N+Z
Последний пример иллюстрирует возможность изменения состояния отдельных разрядов порта С с использованием специальных управляющих слов. Здесь N - номер разряда порта С(от 0 до 7), a Z-значение (0 или 1), которое должно быть установлено в данном разряде.
Чтение сигналов, поданных на внешние выводы, может выполняться командами, подобными следующей:
T=INP(&H302): REM Переменной T присваивается значение, прочитанное из порта C
Естественно, соответствующий порт должен быть настроен на ввод.
При программировании на языке АССЕМБЛЕРа следует избегать ситуаций, когда команды обращения к портам следуют непосредственно одна задругой. В подобных случаях необходимо вставлять между ними "холостые" команды.
Печатную плату для описанного устройства изготавливают из . двустороннего фольгированного стеклотекстолита. Ее ориентировочные размеры 112х93 мм. Между печатными проводниками +5 В и общего провода возможно ближе к выводам питания каждой микросхемы нужно установить не показанные на схеме блокировочные конденсаторы емкостью не менее 0.047 мкф. Вилка ХР1 представляет собой ряд контактных площадок длиной 10 и шириной около 2 мм на краю платы, вставляемом в системный разъем компьютера. Так как разъемы компьютера IBM PC выполнены в дюймовой системе мер, площадки должны располагаться с шагом 2,54 мм (0,1 дюйма). Контакты А1-А31 находятся со стороны установки деталей, а В1-B31 - со стороны пайки. Если есть возможность, на эти площадки нужно нанести специальное гальваническое покрытие, обеспечивающее надежный контакт, в крайнем случае - залудить их.
Цепи для подключения внешних устройств также выводят на разъемный, соединитель, разместив его на краю платы, обращенном в сторону задней панели компьютера. Тип соединителя не имеет значения, главное, чтобы он имел достаточное число контактов и по своим размерам мог быть размещен в отведенном ему месте. В этом соединителе рекомендуется чередовать сигнальные контакты с контактами, соединенными с общим проводом (цепью 0 В).
Вместо микросхем серии К555 можно применить их аналоги из серий К155, К531, К1533. Шинный формирователь К555АП6 можно заменить на КР580ВА86 или два К589АП16.
Н.ВАСИЛЬЕВ, г. Москва
РАДИО N 6, 1994 г.