В нашей стране разрабатывались и изготовлялись системы, в основном, трех стандартов: САМАС (или КАМАК), ВЕКТОР, МЭК-685. Последний стандарт ориентирован на приборостроение и мы на нем останавливаться не будем. ВЕКТОР является модификацией САМАСа. В настоящее время практически не используется. Основной причиной этого является то, что модули, изготавливаемые в других странах, не совместимы с САМАСом.
КАМАК представляет собой систему электронных модулей, предназначенных для построения цифровых измерительных установок, управляемых от ЭВМ. Первоначально разрабатывался для управления работой синхрофазотрона. В дальнейшем использовался более широко. В частности, в Санкт-Петербурге на его базе был реализован диагностический комплекс для исследования технических характеристик тракторов «Кировец». Общий вид КАМАК представлен на рис. 9.
Крейт источник питания





















|



|
рис. 9
КАМАК удачно объединяет в себе, с одной стороны, богатый набор электронных функциональных модулей самого разнообразного назначения (усилители, счетчики, таймеры, аналого-цифровые преобразователи, запоминающие устройства и т.д.), а с другой стороны – средства связи всей этой аппаратуры с ЭВМ, для чего предусмотрен специальный управляющий модуль –контроллер КАМАК. Характерным для системы КАМАК является наличие унифицированного канала передачи данных (магистрали) между отдельными модулями и контроллером. И модули, и контроллер имеют выход на магистраль, по линиям которой происходит обмен рабочей и служебной информацией, а также питание модулей: контроллер кроме того связан с ЭВМ (рис 10). Всеми процессами на магистрали управляет (по командам от ЭВМ) контроллер, однако если в модуле возникла ситуация, требующая вмешательства ЭВМ, модуль может послать в контроллер запрос на обслуживание и иницировать тем самым конкретную программу обработки.
|
|
|
ФМ ВУ
![]() |
Рис77
рис. 10
Стандартизация модулей по конструкции, способу подсоединения к магистрали, характеристикам электрического питания, параметрам входных и выходных сигналов позволяет быстро собирать и модернизировать экспериментальные установки, комплектуя их требуемыми модулями, а единая система команд существенно облегчает разработку алгоритмов управления системой. При этом компоновка любой системы сводится по существу к составлению программы взаимодействия ЭВМ с модулями (порядок опроса состояния модулей, записи и съема информации и т.д.), технические же вопросы согласования модулей друг с другом или с контроллером отпадают ввиду стандартизации системы.
Конструктивной основой системы КАМАК является специальный каркас – крейт, содержащий 25 станций – направляющих, по которым в крейт вдвигаются модули. В зависимости от сложности модуль может иметь единичную ширину 17,2 мм и занимать одно место в крейте либо ширину, кратную указанной. Контроллер обычно занимает два крайних правых места. Таким образом, в крейте может размещаться до 23 различных модулей. Каждый модуль имеет стандартный 86-контактный разъем для подсоединения к магистрали. Разводка линий магистрали по контактам разъемов всех станций (кроме крайней правой, принадлежащей контроллеру) выполнена единообразно, что позволяет устанавливать любые модули на любые места крейта.
|
|
|
На рис. 11 приведено схематическое изображение магистрали крейта. Большая часть линий магистрали – параллельные линии, соединяющие одноименные контакты всех разъемов; сигналы, передаваемые по этим линиям, доступны всем модулям.
Модули контроллер
![]() | ![]() |




1 2 3 23 24 25

R
![]() |


W
![]() |

A


F

Управление питанием
![]() |

N
Рис.11
Рабочая информация в системе КАМАК передается 24-разрядным двоичным параллельным кодом, для чего служат 24 линии чтения R (передача из модулей в контролер) и 24 линии записи W (передача данных из контролера в модули). Поскольку в каждом модуле могут размещаться несколько функциональных узлов (например, несколько счетчиков) и, кроме того, еще имеются многочисленные обслуживающие схемы, для адресации к элементам модуля служат 4 линии субадреса А, по которым номер узла в модуле или его субадрес передается также двоичным параллельным кодом. Всего, таким образом, в каждом модуле может использоваться до 24 = 16 субадресов.
В процессе обращения контроллера к модулю может быть задано выполнение различных операций – чтение или запись информации, опрос состояния регистра и т.д. Для передачи кода операции предусмотрены 5 линий функций F, что дает возможность использовать до 32 различных функций. Значения функций стандартизированы, например, функция F(2) никогда не используется для записи информации в регистр, а только для чтения его содержимого с последующим его сбросом. Назначение же регистров и характер содержащейся в них информации зависят от функционального назначения и конкретной схемы модуля.
Группа параллельных линий отводится для управления и передачи служебных сигналов. Сюда относятся линии (и соответственно сигналы) Z, C, I, B, Q, S1, S2. Некоторые из этих сигналов (B, S1, S2) генерируются контроллером или модулями автоматически в процессе обмена информацией по магистрали, на них нельзя воздействовать программным образом; другие сигналы устанавливаются, снимаются либо контролируются программно, и их назначение необходимо понимать для правильного составления программ управления.
Например, сигнал С (Сброс) вызывает сброс регистров модулей крейта.
Сигнал Х (Команда принята) вырабатывается модулем всякий раз при получении им «законной» команды, которую данный модуль в состоянии выполнить. Нулевое значение сигнала Х = 0 указывает на наличие неисправности (например, отсутствие адресуемого модуля) или серьезной ошибки в программе обслуживания (в модуль послана команда, которую он не может выполнить).
Две группы линий (N и L) служат для установления связи контроллера с определенными модулями. В отличие от остальных линий магистрали линии N и L имеют радиальный характер; каждый модуль связан с контроллером индивидуальной парой линий N и L. Когда контроллер генерирует команду обращения к какому-то модулю, он устанавливает соответствующую функцию КАМАК на линиях F, требуемый адрес на линиях А и возбуждает линию N, соответствующую адресуемому модулю. Сигналы F и A поступают во все модули. Однако воспринимает их только тот модуль, который подсоединен к возбужденной линии N, т.е. модуль, установленный на станции с номером N.
|
|
|
Если в модуле создалась ситуация, требующая вмешательства ЭВМ (АЦП преобразовал входной сигнал в код, счетчик зарегистрировал заданное число импульсов и т.д.), модуль может послать в контроллер запрос на обслуживание, установив логическую 1 на линии. Обычно возбуждение линии L (L-запрос) приводит к прерыванию текущей программы и переходу на программу обработки прерывания от данного модуля. Поскольку от каждого модуля в контроллер идет индивидуальная линия L, контроллер, получив запрос, может определить, из какого именно модуля он пришел.
Как уже отмечалось, каждая команда, с которой контроллер обращается к какому-то модулю, состоит из трех элементов: функции F, субадреса А и номера адресуемого модуля N. Управление аппаратурой КАМАК и заключается в выполнении последовательности команд NAF (команд КАМАК), соответствующей заданному алгоритму функционирования установки. Требуемая последовательность команд NAF записывается в виде машинной программы.
Как и в любой программе реального времени, последовательность выполняемых операций не является фиксированной, а определяется ходом эксперимента. Например, получив от модуля АЦП запрос на обслуживание, ЭВМ выполняет программу приема из модуля и записи в оперативную память подготовленного модулем кода входного сигнала. Если, однако, при этом выясняется, что общий объем накопленной информации достиг заданного значения, ЭВМ выполняет программу выключения модуля АЦП – блокировки его входа, запрещение генерации им L- запросов и т.д.










