Последовательный КАМАК

Последовательный КАМАК (или КАМАК-A2, от CAMAC — Computer Automated Measurement and Control) — способ организации многокрейтовой КАМАК-системы при помощи последовательного канала Highway.

Стандартизация последовательного КАМАК оформлялась следующими документами:

Используемое название Пояснение Организация по стандартизации
ESONE IEEE IEC ГОСТ
КАМАК-А2, Последовательный КАМАК Последовательная ветвь до 62 крейтов EUR 6100 IEEE 595—1982 IEC 640 ГОСТ 26.201.2-94 Система КАМАК. Требования к интерфейсу последовательной магистрали

Топология сети крейтов

[править | править код]
Схема, иллюстрирующая подключение КАМАК при помощи последовательного канала.

Все крейты, подключённые к шине объединяются в кольцо. Между каждыми двумя крейтами устанавливается последовательный канал с 8-битным байтом. Кольцо замыкается через последовательный драйвер (англ. Serial Driver, SD). Последовательный драйвер соединяется с ЭВМ, владеющей шиной.

Соединение производится при помощи двух или девяти витых пар для последовательного или параллельно-последовательного обмена. При этом одна витая пара передаёт синхронизирующий сигнал и одна или восемь — информацию, содержащуюся в посылке.

Физические характеристики шины

[править | править код]

Максимальная тактовая частота на шине равна 5 МГц.

Все сообщения передаются побайтно и следуют одно за другим. При последовательной передаче сообщение содержит стартовый (нулевой) бит, 8 информационных битов и стоповый бит (единичный). Байты передаются начиная с наименьшего значащего разряда.

При параллельно-последовательной передаче за один так синхросигнала передаётся один байт информации.

Протокол взаимодействия

[править | править код]

В каждом передаваемом байте разряды 7 и 6 используются в качестве служебных для контроля чётности и для определения конца посылки. Остальные 6 разрядов содержат информационную посылку:

7 6 5 4 3 2 1 0
Контроль чётности Признак конца Информационная посылка

Бит конца сообщения равен нулю во время передачи посылки. Для сигнализации об окончании посылки используется байт, в котором этот бит установлен в единицу.

Сообщения протокола

[править | править код]

В таблице приведена структура некоторых наиболее важных сообщений, используемых при передаче данных по последовательной шине.

7 6 5 4 3 2 1 0 Пояснение
CMD—Общее командное сообщение (9 или 5 байт) Описывает одну команду. В случае, если команда не предусматривает передачу данных, байты 4..7 не передаются.
P0 0 SC5 SC4 SC3 SC2 SC1 SC0 SC5..0 — Адрес крейта, которому предназначена команда.
P1 0 0 0 SA3 SA2 SA1 SA0 Биты в разрядах 5 и 4 — идентификатор типа посылки. SA3..0 — субадрес модуля.
P2 0 1 SF3 SF3 SF2 SF1 SF0 SF3..0 — номер функции.
P3 0 1 SN3 SN3 SN2 SN1 SN0 SN3..0 — номер модуля.
P4 0 SW23 SW22 SW21 SW20 SW19 SW18 SW23..0 — передаваемые данные. В зависимости от номера функции эта секция может отсутствовать.
P5 0 SW17 SW16 SW15 SW14 SW13 SW12
P6 0 SW11 SW10 SW9 SW8 SW7 SW6
P7 0 SW5 SW4 SW3 SW2 SW1 SW0
P8 0 S5 S4 S3 S2 S1 S0 S5..0 — биты контроля чётности по столбцам.
SPACE—Байт заполнения SPACE-байты передаются для резервирования позиций в потоке, куда крейд сможет записать результат выполнения команды.
1 0 1 1 1 1 1 1 Передаётся только последовательным драйвером.
WAIT—Байт ожидания WAIT-байты по шине тогда, когда шина не загружена.
0 1 0 0 0 0 0 0 Отсутствует передача на данном такте.
RPY—Общее ответное сообщение (7 или 3 байта) Посылается вместо сообщения команды (с использованием резервных байт). Информирует о результате выполнения команды. В случае, если команда не предусматривает передачу данных, байты 2..5 не передаются.
P0 0 SC5 SC4 SC3 SC2 SC1 SC0 SC5..0 — Адрес крейта, от которого поступил ответ.
P1 0 0 1 DERR SQ SX ERR Биты в разрядах 5 и 4 — идентификатор типа посылки. DERR, SQ, SX, ERR—флаги.
P2 0 SR23 SR22 SR21 SR20 SR19 SR18 SR23..0 — передаваемые данные. В зависимости от номера функции эта секция может отсутствовать.
P3 0 SR17 SR16 SR15 SR14 SR13 SR12
P4 0 SR11 SR10 SR9 SR8 SR7 SR6
P5 0 SR5 SR4 SR3 SR2 SR1 SR0
P6 0 S5 S4 S3 S2 S1 S0 S5..0 — биты контроля чётности по столбцам.
SRPY—Укороченное ответное сообщение Посылается вместо сообщения команды. Информирует о приёме команды.
P0 0 SC5 SC4 SC3 SC2 SC1 SC0 SC5..0 — Адрес крейта, от которого поступил ответ.
P2 1 1 0 0 0 0 0 S5..0 — биты контроля чётности по столбцам.
DMD—Запрос на обслуживание Аналог прерывания. Посылается для извещения ЭВМ о событии.
P0 0 SC5 SC4 SC3 SC2 SC1 SC0 SC5..0 — Адрес крейта, сгеенерировавшего запрос.
P1 0 1 SL4 SL3 SL2 SL1 SL0 SL4..0 — Номер модуля-источника запроса.
P6 0 S5 S4 S3 S2 S1 S0 S5..0 — биты контроля чётности по столбцам.