Научная статья на тему 'Библиотека подпрограмм для работы с системой КАМАК на персональных компьютерах'

Библиотека подпрограмм для работы с системой КАМАК на персональных компьютерах Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
194
38
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Отливанчик М. А.

Описывается библиотека подпрограмм, предназначенная для обращения к модулям КАМАК из программ, написанных на языке UCSD Pascal в операционной системе Apple Pascal System, работающих на персональных компьютерах Apple Н/Правец-8. Библиотека является реализацией рекомендаций документа SR/01 комитета ESONE с обоснованными в работе изменениями и дополнениями. Приводится краткое описание библиотечных подпрограмм и используемых типов данных, а также описываются процедуры использования и настройки библиотеки.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Библиотека подпрограмм для работы с системой КАМАК на персональных компьютерах»

М. А. Отливанчик

БИБЛИОТЕКА ПОДПРОГРАММ ДЛЯ РАБОТЫ С СИСТЕМОЙ КАМАК НА ПЕРСОНАЛЬНЫХ КОМПЬЮТЕРАХ

ОСОБЕННОСТИ БИБЛИОТЕКИ КАМАК

Предлагаемая библиотека предназначена для использования в программах автоматизации управления и сбора данных на языке UCSD Pascal в операционной системе Apple Pascal System (версия ОС UCSD p-System), работающих на персональных измерительно-вычислительных комплексах (ПИВК) на основе компьютеров Apple ІІ/Правец-8 и системы КАМАК.

Библиотека является реализацией рекомендаций документа SR/01 комитета ESDNE* со следующими изменениями и дополнениями, обусловленными типом используемого компьютера и операционной системы:

— поскольку данная операционная система не использует прерываний, процедура CCLNK. явно предполагающая использование прерываний, не реализована;

— поскольку использование драйвера ветви с персональными компьютерами не предполагается, параметр В (номер ветви) не используется. В форматах вызовов он, однако, сохранен из соображений совместимости. При этом, будучи входным параметром, он игнорируется, а будучи выходным — выдает значение 0;

— при блочной передаче в режиме адресного сканирования в случае переполнения номера станции не происходит перехода на другой крейт, так как использование нескольких крейтов в одной такой системе представляется маловероятным;

— поскольку компьютер и крейт-контроллер имеют 8-битовую архитектуру, то, кроме процедур, передающих 24-битовое слово КАМАК. в качестве системно-зависимых добавлены процедуры, передающие 16 бит (слово) и 8 бит (байт) данных. Использование этих процедур позволяет во многих случаях уменьшить время выполнения программы и объем занимаемой ею памяти;

— добавлена процедура CTLS, проверяющая статус LAM, аналогично тому, как CTLM проверяет запрос

LAM.

СОСТАВ БИБЛИОТЕКИ

Подробно все процедуры описаны в документе SR/01, поэтому здесь даются только имена процедур библиотеки вместе с их назначением.

DREG Объявить регистр КАМАК

CFSA Выполнить одиночное действие КАМАК с 24 битами данных

CSSA Выполнить одиночное действие КАМАК с 16 битами данных

CBS А Выполнить одиночное действие КАМАК с 8 битами данных

CCCZ Выдать сигнал Z

сссс Выдать сигнал С

CCCI Установить или сбросить сигнал I

CTCI Проверить сигнал 1

CCCD Разрешить или запретить запрос от крейта

* Subrommes for САМ AC. ESONE/SR/01.

CTCD Проверить, разрешен ли запрос от крейта

CTGL Проверить, есть ли запрос от крейта

CDLAM Объявить LAM

CCLM Разрешить или запретить LAM

CCLC Очистить LAM

CTLM Проверить LAM

CTLS Проверить статус LAM

CTSTAT Проверить статус предыдущей операции

CFGA Блочная операция общего вида с 24-битовыми данными

CSGA То же с 16-битовыми данными

CBGA То же с 8-битовыми данными

CFMAD Адресное сканирование с 24-битовыми данными

CSMAD То же с 16-битовыми данными

CBMAD То же с 8-битовыми данными

CFUBC Блочная передача, синхронизованная контроллером с 24-битовыми данными

CSUBC То же с 16-битовыми данными

CBUBC То же с 8-битовыми данными

CFUBL Блочная передача, синхронизованная LAM с 24-битовыми данными

CSUBL То же с 16-битовыми данными

CBUBL То же с 8-битовыми данными

CFUBR Блочная передача в режиме повторения с 24-битовыми данными

CSUBR То же с 16-битовыми данными

CSUBR То же с 8-битовыми данными

CGREG Анализировать описание регистра КАМАК

CGLAM Анализировать идентификатор LAM

Библиотека определяет и использует следующие типы данных:

CRATE=1..6: Номер крейта, то есть номер слота, к которому подключен

интерфейс КК

STATION=l ..23: Номер станции

SUBADDRESS=0.. 15: Номер субадреса

CAMACFUNCTION=0..31; Номер функции КАМАК

LAMSPEC=-16.. 15; Спецификатор LAM

BYTE=1..256; Целая величина, занимающая 1 байт

CAMACWORD=PACKED RECORD 24-битовое слово КАМАК, где:

LOW:INTEGER; 16 младших бит

HIGH:BYTE 8 старших бит

END:

Кроме того, определены типы CAMACREG и LAM1D для задания регистра КАМАК и идентификатора LAM соответственно. Конкретный смысл этих определений скрыт от пользователя. Для задания управляющих блоков в процедурах блочной передачи определен тип CBLOCK - запись, содержащая поля:

RCOUNT: INTEGER; - заданное количество повторений

TALLY: INTEGER; - реально выполненное количество повторений

LAM : LA.MID и L.AMVALUE: INTEGER - различные представления одного и того же поля, задающего иден-

тификатор синхронизующего LAM.

ИСПОЛЬЗОВАНИЕ БИБЛИОТЕКИ

Библиотека КАМАК состоит из двух частей: программного модуля САМАС типа INTRINSIC UNIT и собственно библиотеки, находящейся в файле САМАС.LIBRARY.

Модуль САМАС содержит в себе описания всех типов данных, используемых в процедурах библиотеки, а также процедуры CDREG. CDLAM. CGREG и CGLAM. Для того чтобы использовать эти описания, необходимо, во-первых, иметь на системном диске библиотеку SYSTEM.LIBRARY с включенным в нее модулем САМАС, а во-вторых, в начале своей программы поставить оператор USES САМАС. При этом данные описания становятся глобальными, поэтому никаких дополнительных описаний не требуют и могут быть использованы наравне со стандартными типами и процедурами.

Все остальные процедуры должны быть описаны в использующей их программе внешними (EXTERNAL) в соответствии с правилами языка UCSD Pascal, а библиотека САМАС.LIBRARY должна быть связана с откомпилированной программой посредством программы LINKER.

НАСТРОЙКА БИБЛИОТЕКИ

По правилам языка Apple Pascal при запуске программы, использующей программный модуль типа UNIT, автоматически выполняется содержащаяся в этом модуле процедура инициализации. Такая процедура обычно необходима для задания начальных значений используемым в модуле переменным и для инициализации внешних устройств, если это необходимо. В нашем случае процедура инициализации производит начальную установку регистров крейт-контроллера, необходимую для его дальнейшей работы. Поскольку процедура инициализации выполняется автоматически, то есть без явного обращения к ней из программы, то нет возможности передать ей номер крейт-контроллера, который надо инициализировать.

Дія этих целей служит программа CAMACGEN. Программа в диалоговом режиме запрашивает номера крейт-контроллеров, которые надо инициализировать, и создает соответствующую программу инициализации на ассемблере. Затем последовательно запускаются ассемблер, редактор связей и библиотекарь, которые и производят все необходимые действия по встраиванию новой программы инициализации в модуль САМАС библиотечного файла SYSTEM.LIBRARY.

i Надоели баннеры? Вы всегда можете отключить рекламу.