Cтраница 2
Напишите программу вывода на терминал номеров всех станций крейта, в которых расположены модули, с указанием субадресов и выполняемых по ним функций. [16]
Предположим, через модуль, расположенный в станции N 1, по команде F ( 0) с субадресом А ( 0) происходит блочная передача с опросом Q Данные передаются 24-разрядными словами. Напишите программу считывания блока из 100 ( 10) слов и занесения их в массив ячеек памяти ЭВМ, начиная с адреса MAS. Каждое прочитанное слово должно разместиться в трех последовательных байтах массива. [17]
В, номер-а крейта С в ветви или последова 1-тельной магистрали; номера функционального модуля NT в крейте и субадреса А, определяющего местоположение устройства в модуле. [18]
Служебная часть модуля формирует стандартные сигналы системы, обеспечивает выполнение циклов при получении команд, дешифрует функции КАМАК и субадреса, вырабатывает сигналы ответов и подтверждения команд, принимает и передает данные функциональной части, запросов. [19]
Адресная операция N ( i) A ( j) F ( k) содерж-ит адресную часть обращения к регистру по субадресу A ( j) модуля, расположенного на i - й станции контроллера и код функции F ( k), которую должен выполнить модуль. Программное выполнение адресных операций КАМАК с помощью команд ЭВМ включает два этапа: подготовку и выполнение. На этапе подготовки в младшие 5 разрядов CSR необходимо занести код функции, которая будет выполняться. Собственно, выполнение адресной операции происходит при обращении с помощью подходящей машинной команды к требуемому функциональному узлу модуля по адресу, который он занимает в адресном пространстве ЭВМ. [20]
Последовательность выполнения команд в КАМАК следующая: ЭВМ сначала называет контроллер крейта, потом определяет номер станции модуля в крейте вместе с субадресом А, который определяет регистр в модуле, где исполняется функция F; N - декодирует в контроллере, А vi F - в модуле. [21]
В модуле с большим числом источников запросов отдельные триггеры группируются в регистры, к которым обеспечивается доступ как к регистрам второй группы по следующим субадресам: А ( 12) - регистр LAM-статуса; А ( 13) - регистр LAM-маски; А ( 14) регистр LAM-требования. [23]
Для программного управления работой счетчиков будут использованы следующие команды КАМАК: F ( 0) - чтение содержимого регистра данных и сброс L-запроса счетчика; F ( 8) - проверка L-запроса; F 10) - сброс L-запроса; F ( 24) - блокировка входа; F ( 26) - деблокировка входа; F ( 26) A ( 15) - дебло-кировка L-запроса от модуля. Субадреса А ( 0) и А ( 1) относятся к счетчикам 1 и 2 соответственно. [24]
Символ А обозначает субадрес или адрес определенного узла модуля. Субадрес может быть использован, например, для выбора одного из регистров модуля, выбора функциональной части, к которой относится функция КАМАК. Ряд субадресов, как будет описано ниже, закреплен за определенными функциональными частями. [25]
Помимо сброса и маскирования индивидуальных запросов обычно предусматривается возможность выполнить сброс, а также блокировку и деблокировку одновременно всех запросов с помощью одной команды F ( 10), F ( 24), F ( 26) соответственно. Для этой цели используется субадрес ( обычно А ( 15)), отличный от субадресов, относящихся к индивидуальным запросам. [26]
Прежде всего это малое адресное пространство модуля - всего 16 субадресов, поскольку для их передачи на магистрали КАМАК отведено всего четыре пинии. ОЗУ модуля, необходимость которой в интеллектуальном модуле очевидна. [27]
Помимо сброса и маскирования индивидуальных запросов обычно предусматривается возможность выполнить сброс, а также блокировку и деблокировку одновременно всех запросов с помощью одной команды F ( 10), F ( 24), F ( 26) соответственно. Для этой цели используется субадрес ( обычно А ( 15)), отличный от субадресов, относящихся к индивидуальным запросам. [28]
Допустим, что в крейте находится модуль, выполняющий операцию F ( 25) по субадресу А ( 15), в других модулях эта операция либо не используется, либо выполняется по другому субадресу. Требуется программным способом определить местонахождение модуля в крейте. [29]
Стандарт предусматривает программное управление триггером LAM-маски. В некоторых модулях имеется возможность проверить наличие маски у запроса командой F ( 27) с соответствующим субадресом. При выполнении этой команды состояние триггера LAM-маски отображается в ответе Q модуля. Программное маскирование предоставляет широкие возможности по организации запросов внутри модуля, их идентификации и обслуживанию. [30]