Е. Д. Булатов, А. А. Даниленко, В. В. Казьмина, Е. А. Отливанчик,
М. А. Отливанчик, В. А. Суворов
КРЕЙТ-КОНТРОЛЛЕР ДЛЯ ПЕРСОНАЛЬНЫХ КОМПЬЮТЕРОВ
Крейт-контроллер для персонального компьютера (ПК) должен обладать некоторыми особенностями, которые определяются особенностями ПК как таковых. К этим особенностям относятся:
- простота организации;
— относительно низкая цена, то есть крейт-контроллер должен иметь стоимость меньше, чем стоимость используемого ПК;
- развиваемость, то есть минимальная конфигурация крейт-контроллера должна быть простой и дешевой. По мере повышения требований со стороны эксперимента возможности крейт-контроллера должны наращиваться;
— простота взаимодействия с компьютером, особенно в его минимальной конфигурации.
Нами был создан крейт-контроллер для ПК типов Правец-8/Apple II/АГАТ, удовлетворяющий поставленным выше требованиям. Блок-схема крейт-контроллера приведена на рис. 1. Функционально крейт-контроллер состоит из двух частей, соединенных друг с другом кабелем, одна из которых — собственно крейт-контроллер — выполнена в виде блока КАМАК двойной ширины и вставляется в две крайних правых позиции крейта КАМАК, а вторая - интерфейсная плата - вставляется в любой разъем шины ввода-вывода компьютера. Причем интерфейсная плата выполняет лишь функцию согласования с шиной ввода-вывода компьютера и содержит малое количество микросхем (13). Такая организация позволяет использовать этот крейт-
контроллер и для других типов ПК, имеющих 8-разрядную шину ввода-вывода, например, IBM/PC и совместимых с ним. При этом необходимо разработать вновь только интерфейсную плату.
Минимально необходимая часть крейт-контроллера обведена на рис. 1 пунктирной линией. Она содержит два 24-разрядных регистра данных записи (W) и чтения (R), три регистра для хранения команд (N, A, F), декодировщик номера станции, кодировщик и регистр хранения номера LAM-запроса, регистр режима для управления сигналами С, I, Z и маской прерываний, регистр статуса для проверки состояния сигналов X, Q, I, маски и запроса на прерывание, генератор цикла КАМАК и логику управления.
Логика
пдп
Регистр статуса
1£
Регистр режима
Г
Регистр L
IRQ X Q MASK I Z С
7\
Ll-24
Регистр N
Кодер Декодер
L N
V
N1-24
Регистр A
I/O BUS
ИНД 1
N и L 1 Интерфейс
л
Регистр F
Г
Регистр шины R
A
V V
Al-8 Fl-16 Rl-24
1_LL
Регистр шины W
V
Wl-24
Логика 1 Управле- Генератор
SRS Г I ние
_В S2_S1_
Рис. 1
Все платы крейт-контроллера выполнены на широко распространенных микросхемах серий 155,531 и 555. В качестве большинства регистров используются микросхемы КР589ИР12, имеющие достаточно большой выходной ток, что позволило исключить из схемы мощные шинные формирователи. В логике управления широко используются микросхемы постоянных запоминающих устройств (ПЗУ). Последние два фактора позволили сократить количество микросхем и тем самым максимально упростить и удешевить крейт-контроллер.
Элементы минимальной конфигурации размещены на печатных платах самого крейт-контроллера, одна из которых (укороченная) вставляется в управляющую позицию крейта и содержит декоди-
ровщик N и кодировщик LAM, а другая (полноразмерная) содержит все остальные элементы.
Расширения крейт-контроллера обеспечивают выполнение следующих функций:
- поддержку режимов сканирования, остановки и повторения (SRS), элементы которой устанавливаются на полноразмерной плате;
- индикацию текущего номера станции N и номера LAM-запроса, элементы которой размешаются на отдельной плате;
- управление прямым доступом в память (ПДП) на основе микросхемы КР580ИК57, элементы которой размешены на отдельной плате.
Расширения увеличивают функциональные возможности крейт-контроллера и скорость обмена
данными. Подсоединение дополнительных плат к основным производится простейшим способом с помощью разъемов.
Запуск цикла КАМАК может производиться любым из трех способов:
- обращением к специальному регистру;
- записью стартового бита в регистр режима;
- записью в регистры N, А, F, если в записываемом байте установлен старший бит. Это увеличивает гибкость в использовании крейт-контроллера.
Крейт-контроллер в любой конфигурации удовлетворяет стандарту EUR-6500 на многоконтроллерные системы.
С точки зрения программиста крейт-контроллер представляется в виде 13 8-разрядных регист-
ды типа NAF, возможно, с передачей одного слова данных. Кроме того, данный набор подпрограмм позволяет достаточно просто обрабатывать прерывания по LAM-запросам от модулей КАМАК при помощи написанных пользователем дополнительных подпрограмм на языке ассемблера или Applesoft BASIC.
Поскольку подпрограммы записаны в ПЗУ, они не требуют от программиста какой-либо подго-
ров. для одних из них разрешены операции чтения и записи, а для других - только чтения или только записи. Распределение регистров по адресам для компьютеров Правец-8/Apple II приведено на рис. 2 (п - номер разъема шины ввода-вывода компьютера, в который вставлена интерфейсная плата). Оно задается картой адресного ПЗУ и. следовательно, может легко изменяться по желанию пользователя.
На интерфейсной плате крейт-контроллера находится ПЗУ, в котором записан набор подпрограмм, позволяющий выполнять простые операции КАМАК в программах, написанных на языке Applesoft BASIC. Под простыми операциями КАМАК подразумеваются безадресные команды выдачи сигналов Z и С и установки и сброса I, а также одиночные коман-
товки к работе (например, загрузки с диска или связывания с программой) и могут быть использованы даже в минимальной (бездисковой) конфигурации компьютера.
Данный набор подпрограмм может быть использован для автоматизации экспериментов и технологических процессов, невысокая сложность и небольшие информационные потоки которых позволяют использовать интерпретирующий язык типа BASIC,
Адрес Запись Чтение
10*п+С080Н DO DO
10»п+С081Н Dl D1
10*п+С082Н D2 D2
10*п+С083Н Mode Status
10*п+С084Н DMA Addr. DMA Addr.
10*n+ С085Н DMA TC DMA TC
10*п+С006Н DMA Control DMA Control
10*п+С087Н N LAM
10*п+С088Н A
10*n+ С089Н F
10«h+C08AH NEnd
10*п+С08ВН A End
10*п+С08СН START
Рис. 2.
а также для обучения экспериментаторов, не имеющих опыта работы с системой КАМАК. Кроме того, целесообразно использование этих подпрограмм при наладке и настройке модулей КАМАК.
Обращение ко всем подпрограммам пакета осуществляется оператором CALL по одному и тому же (для данного крейт-контроллера) адресу, зависящему от п — номера разъема шины ввода-вывода компьютера, в котором установлена интерфейсная плата. Этот адрес вычисляется по формуле 49280+п*16 (С0В0+п*10 в шестнадцатеричной системе). Рекомендуется присваивать это значение какой-либо переменной в начале программы и затем использовать ее в обращениях к модулям КАМАК. Тип выполняемой операции, а также ее параметры, если они необходимы, задаются после адреса в операторе CALL через запятую.
Имеются следующие подпрограммы:
Ъ Выдача сигнала Ъ
С Выдача сигнала С
I, Б Установка сигнала I
I, К Сброс сигнала I
S, n, a, qj Адресная команда КАМАК с
передачей 16-битных данных S, n, a, Адресная команда КАМАК с
передачей 24-битных данных R, Е Разрешить прерывания от
крейта КАМАК R, D Запретить прерывания от крей-
та КАМАК
L, а Подготовиться к обработке
прерываний
М Подготовиться к обработке
прерываний программой на языке BASIC