Крейт-контроллер для персональных компьютеров
Автор: Булатов Е.Д., Даниленко А.А., Казьмина В.В., Отливанчик Е.А., Отливанчик М.А., Суворов В.А.
Журнал: Компьютерная оптика @computer-optics
Статья в выпуске: 2, 1987 года.
Бесплатный доступ
Описывается крейт-контроллер для персональных компьютеров, совместимых с популярным компьютером Apple II, возможности которого увеличиваются за счет подключения дополнительных плат. Специальное ПЗУ содержит набор подпрограмм обращения к модулям КАМАК из программ, написанных на языке Applesoft BASIC, что позволяет работать в минимальной конфигурации компьютера.
Короткий адрес: https://sciup.org/14058121
IDR: 14058121
Текст научной статьи Крейт-контроллер для персональных компьютеров
Крейт-контроллер для персонального компьютера (ПК) должен обладать некоторыми особенностями, которые определяются особенностями ПК как таковых. К этим особенностям относятся.
-
- простота организации;
-
— относительно низкая цена, то есть крейт-контроллер должен иметь стоимость меньше, чем стоимость используемого ПК;
-
- развиваемость, то есть минимальная конфигурация крейт-контроллера должна быть простой и дешевой. По мере повышения требований со стороны эксперимента возможности крейт-контроллера должны наращиваться;
-
— простота взаимодействия с компьютером, особенно в его минимальной конфигурации.
Нами был создан крейт-контроллер для ПК типов Правец-8/Apple П/АГАТ, удовлетворяющий поставленным выше требованиям. Блок-схема крейт-контроллера приведена на рис. 1. Функционально крейт-контроллер состоит из двух частей, соединенных друг с другом кабелем, одна из которых — собственно крейт-контроллер — выполнена в виде блока КАМАК двойной ширины и вставляется в две крайних правых позиции крейта КАМАК, а вторая — интерфейсная плата - вставляется в любой разъем шины ввода-вывода компьютера. Причем интерфейсная плата выполняет лишь функцию согласования с шиной ввода-вывода компьютера и содержит малое количество микросхем (13). Такая организация позволяет использовать этот крейт- контроллер и для других типов ПК, имеющих 8-раз-рядную шину ввода-вывода, например, IBM/PC и совместимых с ним. При этом необходимо разработать вновь только интерфейсную плату.
Минимально необходимая часть крейт-контроллера обведена на рис. 1 пунктирной линией. Она содержит два 24-разрядных регистра данных записи (W) и чтения (R), три регистра для хранения команд (N, A, F), декодировщик номера станции, кодировщик и регистр хранения номера LAM-запроса, регистр режима для управления сигналами С, I, Z и маской прерываний, регистр статуса для проверки состояния сигналов X, Q, I, маски и запроса на прерывание, генератор цикла КАМАК и логику управления.
Рис. 1
Все платы крейт-контроллера выполнены на широко распространенных микросхемах серий 155,531 и 555. В качестве большинства регистров используются микросхемы КР589ИР12, имеющие достаточно большой выходной ток, что позволило исключить из схемы мощные шинные формирователи. В логике управления широко используются микросхемы постоянных запоминающих устройств (ПЗУ). Последние два фактора позволили сократить количество микросхем и тем самым максимально упростить и удешевить крейт-контроллер.
Элементы минимальной конфигурации размещены на печатных платах самого крейт-контроллера, одна из которых (укороченная) вставляется в управляющую позицию крейта и содержит декоди ровщик N и кодировщик LAM, а другая (полноразмерная) содержит все остальные элементы.
Расширения крейт-контроллера обеспечивают выполнение следующих функций:
-
— поддержку режимов сканирования, остановки и повторения (SRS), элементы которой устанавливаются на полноразмерной плате;
-
- индикацию текущего номера станции N и номера LAM-запроса, элементы которой размешаются на отдельной плате;
-
— управление прямым доступом в память (ПДП) на основе микросхемы КР58ОИК57, элементы которой размещены на отдельной плате.
Расширения увеличивают функциональные возможности крейт-контроллера и скорость обмена данными. Подсоединение дополнительных плат к основным производится простейшим способом с помощью разъемов.
Запуск цикла КАМАК может производиться любым из трех способов:
-
— обращением к специальному регистру;
-
— записью стартового бита в регистр режима;
-
— записью в регистры N, A, F, если в записываемом байте установлен старший бит. Это увеличивает гибкость в использовании крейт-контроллера.
Крейт-контроллер в любой конфигурации удовлетворяет стандарту EUR-65OO на многоконтроллерные системы.
С точки зрения программиста крейт-контроллер представляется в виде 13 8-разрядных регист ров. для одних из них разрешены операции чтения и записи, а для других — только чтения или только записи. Распределение регистров по адресам для компьютеров Правец-8/Apple II приведено на рис. 2 (п — номер разъема шины ввода-вывода компьютера, в который вставлена интерфейсная плата). Оно задается картой адресного ПЗУ и. следовательно, может легко изменяться по желанию пользователя.
На интерфейсной плате крейт-контроллера находится ПЗУ, в котором записан набор подпрограмм, позволяющий выполнять простые операции КАМАК в программах, написанных на языке Applesoft BASIC. Под простыми операциями КАМАК подразумеваются безадресные команды выдачи сигналов Z и С и установки и сброса I, а также одиночные коман-
Адрес |
Запись |
Чтение |
10*п+С080Н |
DO |
DO |
10*п+С081Н |
D1 |
DI |
10*п+С082Н |
D2 |
D2 |
10*п+С083Н |
Mode |
Status |
10*п+С084Н |
DMA Addr. |
DMA Addr. |
10*п+С085Н |
DMA TC |
DMA TC |
10*п+С006Н |
DMA Control |
DMA Control |
10*п+С087Н |
N |
LAM |
10*п+С088Н |
A |
|
10*п+С089Н |
F |
|
10*п+С08АН |
N End |
|
10*п+С08ВН |
A End |
|
10*п+С08СН |
START |
Рис. 2.
ды типа NAF. возможно, с передачей одного слова данных. Кроме того, данный набор подпрограмм позволяет достаточно просто обрабатывать прерывания по LAM-запросам от модулей КАМАК при помощи написанных пользователем дополнительных подпрограмм на языке ассемблера или Applesoft BASIC.
Поскольку подпрограммы записаны в ПЗУ, они не требуют от программиста какой-либо подго товки к работе (например, загрузки с диска или связывания с программой) и могут быть использованы даже в минимальной (бездисковой) конфигурации компьютера.
Данный набор подпрограмм может быть использован для автоматизации экспериментов и технологических процессов, невысокая сложность и небольшие информационные потоки которых позволяют использовать интерпретирующий язык типа BASIC.
а также для обучения экспериментаторов, не имеющих опыта работы с системой КАМАК. Кроме того, целесообразно использование этих подпрограмм при наладке и настройке модулей КАМАК.
Обращение ко всем подпрограммам пакета осуществляется оператором CALL по одному и тому же (для данного крейт-контроллера) адресу, зависящему от п — номера разъема шины ввода-вывода компьютера, в котором установлена интерфейсная плата. Этот адрес вычисляется по формуле 49280+п*16 (С0В0+п*10 в шестнадцатеричной системе). Рекомендуется присваивать это значение какой-либо переменной в начале программы и затем использовать ее в обращениях к модулям КАМАК. Тип выполняемой операции, а также ее параметры, если они необходимы, задаются после адреса в операторе CALL через запятую.
Имеются следующие подпрограммы:
Z |
Выдача сигнала Z |
с |
Выдача сигнала С |
I.S |
Установка сигнала I |
I,R |
Сброс сигнала 1 |
S,n, а, |
f(,d](,q} Адресная команда КАМАК с |
передачей 16-битных данных |
|
S,n,a, |
f{>d}£, q} Адресная команда КАМАК с |
передачей 24-битных данных |
|
R, Е |
Разрешить прерывания от крейта КАМАК |
R, D |
Запретить прерывания от крейта КАМАК |
L, a |
Подготовиться к обработке прерываний |
M |
Подготовиться к обработке прерываний программой на языке BASIC |