Лекция№13 Компоненты АС на основе интерфейса КАМАК

Лекция №12 Методика контроля состояния модулей в интерфейсе КАМАК.

Лекция №11 Разработка интерфейсно-ориентированной библиотеки процедур для управления крейтом КАМАК.

Анализ статусных сигналов.

Архитектура АС на основе внешней ЭВМ.

На основе внешней ЭВМ может включать от 1 до 4 крейтов КАМАК.

Рис. 10.10 Архитектура АС на основе внешней ЭВМ.

Общая длина может достигать 10м. КК транслирует сигналы магистрали ЭВМ в сигналы магистрали крейта. Архитектура не определена стандартом, для каждого типа ЭВМ требуется специально разработанный КК.

Недостаток контроллеров – ограниченная длина линий связи. Для адресации какого-либо модуля в крейте необходимо указать помимо субадреса номер станции и номер крейта.

10.3 Программная модель КК типа ККП3 для ЭВМ семейства IBM PC.

КК типа ККП3 предназначен для управления магистралью крейта КАМАК с помощью ЭВМ семейства IBM и в программном режиме, и в режиме прямого доступа к памяти (ПДП). Он обеспечивает обмен данными между модулями КАМАК и магистралью ввода-вывода ЭВМ словами длиной 8, 16 или 24 двоичных разряда. Занимает 25 управляющую станцию и 24 нормальную станцию.

Все КК занимают 16 последовательных адресов на магистрали ввода-вывода ЭВМ (базовый адрес КК 240 h).

Регистры КК обеспечивают контроль работы и управление функциональными модулями крейта. КК содержит 13 внутренних 8-разрядных регистров, девять из которых (адреса 0 h -7 h, Fh) доступны процессору для записи данных, остальные четыре (адреса 8 h, 9 h, Ah, Bh) для чтения.

Генератор цикла КАМАК используется для выполнения адресной или безадресной операции КАМАК (длительность 1 мкс). Запись в регистр с адресом 7 (регистр запуска) запускает цикл адресной или безадресной операции.

Схема формирования адресных сигналов включает регистр номера станции N (5) и регистр субадреса. Процессору указанные регистры доступны для записи. В регистр с адресом 5 записывается номер станции. В регистр субадреса до начала выполнения адресной операции необходимо записать субадрес устройства – число в диапазоне 0-15.

При выполнении адресной операции N дешифрируется КК и устанавливается Ni =1 на одну из линий. Такой способ называется географическая адресация.

Схема формирования управляющих сигналов включает регистр кода операции и позволяет выполнять операции с кодом F (0)- F (31) – 32 различных операции.

Регистр общего управления крейтом (адрес 6) используется при начальной инициализации регистров КК или генерации на магистраль крейта безадресных операций управления Z, C, I. Запись 1 в разряд AX 4 (AX 4=1) выполняет установку элементов КК в исходное состояние - начальная инициализация КК. По окончании инициализации содержимое регистра сбрасывается в 0. Безадресные операции Z, C, I могут быть сгенерированы посредством записи 1 в соответствующие разряды регистра и запуска цикла КАМАК на магистрали. Чтобы выполнить операцию Z, необходимо Z =1 и I =1 - запуск, для выполнения операции C необходимо, чтобы C =1. После выполнения операций C =0, Z =0 сбрасываются автоматически, I сбрасывать вручную.

Регистры данных – используется 6 регистров данных: 3 регистра для чтения и 3 регистра для записи данных.

Регистры данных записи (адреса 0, 1, 2) исполняют роль буферных регистров. Для записи данных вначале необходимо записать 24-разрядное слово данных. Процессор имеет возможность записи данных в указанные регистры. Если модуль КАМАК требует слово меньшей разрядности (16 или 8), то можно использовать только часть регистров записи.

Регистры данных чтения (адреса 9, Ah, Bh) исполняют роль буферных регистров 24-разрядного слова данных, поступающего из ФМ КАМАК по шине данных чтения R 1- R 24. При выполнении адресной операции чтения данные шины данных R записываются в указанный регистр. Если ФМ КАМАК передает данные словами меньшей разрядности (16 или 8), то процессор может читать только часть указанных регистров.

Схема хранения и обработки статусных сигналов.

Регистр состояния КАМАК (адрес 8). Старший бит обозначен *L, он показывает наличие запроса от модулей крейта. Если *L =1, то информация в регистрах не имеет смысла. Линия *L переходит в нулевое состояние, если имеется L -запрос от какого-либо модуля в регистре состояния КАМАК. В разряде 2 находится номер станции с наивысшим приоритетом: L 1 – самый высокий приоритет, L 23 – самый низкий. Сигналы X и Q фиксируются во время адресных операций: X – всегда, Q – иногда, по усмотрению разработчика.

Регистр номера крейта КАМАК и управления ПДП (адрес Fh) служит для указания номера активного контроллера крейта, к которому поступают команды процессора и параметры режима ПДП интерфейса. Разряды регистра 5 и 4 (C 2, C 1) содержат номер крейта, с которым выполняется обмен данными: 00 – крейт 1, 01 – крейт 2, 10 – крейт 3, 11 – крейт 4.

10.4 Методика управления контроллером крейта и модулями КАМАК.

Управление КК и ФМ включает инициализацию электронных элементов контроллера, выполнение безадресных или адресных операций в модуле и анализ содержимого статусных сигналов.

Инициализация КК выполняется после включения питания до начала работы системы следующей последовательностью команд ЦП:

1. Установка номера c (i) i =1..4 активного КК в регистре номера крейта;

2. Сброс в исходное состояние внутренних элементов КК установкой разряда AX 4=1 в регистре общего управления крейтом. По окончании инициализации разряд AX 4 сбрасывается.

Генерация на магистрали крейта безадресной или адресной операции выполняется путем записи необходимой информации в регистры КК и запуска операции на магистрали.

Безадресная операция запрет I выполняется на магистрали крейта при записи кода 4 в регистр общего управления крейтом КАМАК. Сигнал I сохраняется на магистрали до его сброса в регистре общего управления крейтом.

Безадресные операции Z, C выполняются следующим образом:

1. Запись кода операции Z (код 5) с I или кода операции C (код 2) в регистр общего управления крейтом КАМАК (относительный адрес 6 h);

2. Запуск операции на магистрали крейта посредством записи произвольного значения в регистр запуска операции КАМАК (относительный адрес 7 h).

По окончании операции на магистрали, разряды Z или C регистра общего управления сбрасываются.

Адресные операции выполняются на магистрали крейта при участии двух устройств:

1. Управляющий модуль – КК, при выполнении любой адресной операции устанавливает на магистрали сигналы N, A, F.

Управляющий модуль при выполнении операций записи (F (10)- F (23)) устанавливает данные на ШД записи на линии W 1- W 24.

2. Исполнительный модуль – ФМ, реагирует на строб-сигналы S1, S2 и устанавливает на магистрали X – команда принята, Q – ответ модуля.

КК принимает статусные сигналы и данные (при операциях чтения) в момент сигнала S1. В момент сигнала S2 ФМ может изменить данные на ШД (если, например, предусмотрен сброс).

Последовательность действий процессора при выполнении адресных операция чтения.

Адресные операции чтения: F (0)- F (7). При выполнении этих операций ЦП до запуска операций в регистре КК должен установить:

1. Адрес крейта c (i) в регистр в регистр номера крейта (относительный адрес Fh);

2. Номер станции N (i) в регистр номера станции (относительный адрес 5 h);

3. Код субадреса A (m) в регистр субадреса (относительный адрес 3 h);

4. Код операции F (k) в регистр функции (относительный адрес 4 h).

Запуск операции на магистрали – нужно в регистр запуска операции (относительный адрес 7 h) записать произвольное значение. Выполнится адресная операция чтения, и 24-разрядное слово передастся из ФМ в регистр данных чтения.

После завершения операции на магистрали – чтение данных из регистров данных чтения КК в ОЗУ:

1. Младшего байта данных R 8- R 1 из регистра чтения с адресом Bh;

2. Среднего байта данных R 16- R 9 из регистра чтения с адресом Ah;

3. Старшего байта данных R 24- R 17 из регистра чтения с адресом 9 h.

Последовательность действия процессора при выполнении адресных операций управления.

Операции управления F (8)- F (15), F (24)- F (31). При выполнении этих операций ЦП выполняет следующие действия:

1. До запуска операции на магистрали – запись N, A, F в соответствующие регистры КК. Коды операций F (k): k – 8-15, 24-31.

2. Запуск операции на магистрали. Выполняется без передачи данных.

В результате действия этих операций будет выполнена адресная операция управления без передачи данных.

Последовательность действий процессора при выполнении адресных операций записи.

Операции записи: F (16)- F (23).

1. До запуска: запись адреса устройства c (i), N (i), A (m) и кода операции записи F (k), k =16-32.

2. Запись 24-разрядного слова в регистр данных записи:

- Младший байт в регистр записи младшего байта (W 8- W 1) данных (относительный адрес 2 h);

- Средний байт в регистр записи среднего байта (W 16- W 9) данных (относительный адрес 1 h);

- Старший байт в регистр записи старшего байта (W 24- W 17) данных (относительный адрес 0 h).

3. Запуск операций на магистрали крейта. 24-разрядное слово данных из регистра записи КК предается в адресованный модуль.

Статусные сигналы X, Q вырабатываются модулем в ответ на любую адресную команду. Проверять имеет смысл после какой-либо адресной операции.

Статусные сигналы L 1- L 23 вырабатываются модулями в произвольный момент времени. *L =0 – есть запрос на обслуживание. L 16, L 8, L 4, L 2, L 1 – номер станции с наивысшим приоритетом.

10.5 Методика построения программного обеспечения в АС на основе унифицированных магистрально-модульных интерфейсных систем.

Программное обеспечение (ПО) разделяется на категории:

1. ПО для управления объектом, сбора данных в реальном времени.

2. Средства обработки, преставления, документирования информации, уровни:

- Аппаратно-ориентированное ПО должно содержать набор управления контроллером или адаптером.

Должно обеспечить прием и передачу данных по магистрали интерфейса в соответствии с протоколом обмена данными интерфейсной системы, также должно обеспечить установку в “1” или сброс в “0” данных линий управления интерфейсом, чтение статусных линий магистрали интерфейса.

Адаптеры:

· С преимущественно программной реализацией функции управления;

· С преимущественно аппаратной реализацией функции управления.

- Интерфейсно-ориентированное ПО должно содержать набор процедур, обеспечивающих управление любым элементом системы. Основным вопросом является определение состава процедур, обеспечивающих все возможности интерфейса.

От разработчика требуется знание интерфейса системы. Международная электротехническая компания IEC выработала рекомендации для интерфейса КАМАК IEC -713.

- Приборно-ориентированное ПО должно содержать набор процедур для управления определенными типами интерфейсных приборов.

- Интегрированная среда разработчика.

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

Пример: LabVIEW, LabWindows CVI, LookOut, BridgeVIEW.

Библиотека разрабатывается в соответствии со стандартом IEC -713.

Unit KKP 3;

Interface

{Инициализация КК}

Procedure CCInit (c: integer); { c – номер крейта в диапазоне 1-4}

{Безадресные операции в крейте}

Procedure CCCZ (c: integer); {Операция Z }

Procedure CCCC (c: integer); {Операция C }

Procedure CCCI (c: integer, I: boolean); {Установка (true) / Сброс (false) сигнала запрет I на магистрали}

{Адресные операции на магистрали}

Function CFSA (F, c, N, A: integer, var D: longint, var Q: integer): Boolean; { F (k), k =0÷31 – можно выполнить любую адресную операцию; c (i), i =1÷4; N (j), j =1÷23; A (m), m =0÷15; Q – 0/1, статусный сигнал; D – 24-разрядные данные; CFSA = true, если модуль возвратил X, иначе false }

Function CSSA (F, c, N, A: integer, var D: word, var Q: integer): Boolean; {Такая же функция, как и CFSA, но для 16-разрядных операций}

Procedure CTGL (c: integer, var L: integer); {Чтение регистра состояния, возвращение в L }

Function Hex (Date: longint); {Возвращает значение Date в шестнадцатеричный формат}

Implementation

Const BA =$240; {Базовый адрес КК}

Const K =? {Здесь нужно указать задержку на время выполнения операции на магистрали крейта}

{Аппаратно-ориентированное ПО}

Procedure CAMACcikl; {Запрещает КАМАК-цикл в выбранном крейте и организует задержку ≈1 мкс}

Var i: integer;

Begin

Port [ BA +7]:=$ FF;

For i =0 to K do; End;

Procedure crate (i: integer); {Выбор крейта}

Begin

Dec (c);

Port [ BA +$ F ]:=(c and 3) shl 4; End;

{Вспомогательные процедуры}

Function Hex (Date: longint): string;

Const H: array [0..15] of char = ‘0 1 2 3 4 5 6 7 8 9 A B C D E F

var D: longint;

Begin

D:= Date;

Hex:=’$’ + H [(D shr 20) and $ F ] + H [(D shr 16) and $ F ] + H [(D shr 12) and $ F ] + H [(D shr 8) and $ F ] + H [(D shr 4) and $ F ] + H [ D and $ F ]; {Переменную D сдвигаем на 20 разрядов, оставляем 4 старших}

Function CFSA (F, c, N, A: integer; var D: longint; var Q: integer): boolean;

Var WP: array [0..3] of byte absolute D;

{Переменные расположатся

D
Wp [3] Wp [2] Wp [1] Wp [0]
       
    Ah Bh

}

Begin

Crate (c);

Port [ BA +3]:= A; Port [ BA +7]:= F; Port [ BA +5]:= N; {Можно выполнять в произвольном порядке}

If F in [16..23] then

Begin

Port [ BA +2]:= Wp [2]; Port [ BA +1]:= Wp [1]; Port [ BA ]:= Wp [0];

End;

{Запускаем КАМАК-цикл}

CAMACcikl;

Q:= Port [ BA +$8] and 1;

CFSA:=(Port [ BA +8] and 2)<>0;

If F in [0..7] then

Begin

Wp [0]:= port [ BA +$ B ]; Wp [1]:= port [ BA +$ A ]; Wp [2]:= port [ BA +9]; Wp [3]:=0;

End;

Function CSSA (F, c, N, A: integer; var D: word; var Q: integer): boolean;

Var WP: array [0..3] of byte absolute D;

Begin

Crate (c);

Port [ BA +3]:= A; Port [ BA +7]:= F; Port [ BA +5]:= N;

If F in [16..23] then

Begin

Port [ BA +2]:= Wp [2]; Port [ BA +1]:= Wp [1]; Port [ BA ]:= Wp [0];

End;

CAMACcikl;

Q:= Port [ BA +$8] and 1;

CFSA:=(Port [ BA +8] and 2)<>0;

If F in [0..7] then

Begin

Wp [0]:= port [ BA +$ B ]; Wp [1]:= port [ BA +$ A ]; Wp [2]:= port [ BA +9]; Wp [3]:=0;

End;

Procedure CTGL (c: integer, var L: integer);

Begin

Crate (c);

L:= port [ BA +8];

If (L and $80)=0 then L:=2 shr 2 else L:=0;

End;

End.

Для контроля состояния модуля будем использовать: LAM -статус, LAM -требование, L -запросы.

LAM -статусные сигналы можно контролировать или сбрасывать.

I. В модулях, содержащих один или несколько источников запроса.

Проверка состояния N (i) A (m) F (27), ответ Q: Q =1 – модуль готов, Q =0 – нет готовности.

Для сброса LAM -статусного сигнала: N (i) A (m) F (10) S2 – команда сброса запроса.

II. В модулях с большим числом источников запроса (до 24).

Для контроля используется ШД чтения: R 1- R 24. При операции чтения команда будет выглядеть следующим образом: N (i) A (12) F (1) – чтение регистра группы 2. Если Rk =1 – есть LAM -статусный сигнал от k -го элемента, Rk =0 – нет LAM -статусного сигнала.

Для сброса LAM -статусного сигнала: N (i) A (m) F (11) S2. Если необходимо сбросить LAM -статусный сигнал в конкретном источнике, используют команду N (i) A (m) F (23) S2 – команда селективного сброса. Если Wk =1, источник будет сброшен.

LAM -требования формируются на основе LAM -статусных сигналов в интерфейсной части модуля. Можем совершать следующие действия: разрешение, запрет, контроль LAM -требований.

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

Разрешение LAM -требований: N (i) A (m) F (26), запрет: N (i) A (m) F (24), контроль: N (i) A (m) F (8), ответ модуля – сигнал Q: Q =1 – есть и разрешено LAM -требование, Q =0 – нет и запрещено LAM -требование.

II. В модулях с большим числом источников запроса (до 24).

ШД записи используется для разрешения и запрета (W 1- W 24), для контроля LAM -требований используется шина ШД чтения (R 1- R 24).

Запрет LAM -требований всех источников: N (i) A (13) F (11) S2, F (11) – сброс регистров группы 2. Разрешение или запрет всех источников N (i) A (13) F (17) S1, F (17) – команда записи в регистр группы 2, Wk =1 – запрет, Wk =0 – разрешение.

Разрешение или запрет LAM -требований в выбранных источниках: селективная установка/селективный сброс N (i) A (13) F (19) S1 / N (i) A (13) F (23) S1.

Проверка наличия LAM -требований в модуле: N (i) A (14) F (1), Если Rk =1 – есть LAM -требование от k -го элемента, Rk =0 – нет LAM -требования.

Контроль L-запросов от модулей крейта в контроллере:

Регистр состояния КАМАК, адрес 8; если * L =0 – нет запросов от модулей, если * L =1 – есть запросы от модулей. Если есть запросы, то показаны номера станций с наивысшим приоритетом.

               
* L L 16 L 8 L 4 L 2 L 1    

Рассмотрим 2 практических задачи построения программно-управляемых приборов на основе модулей КАМАК.

Задача №1. Построение генератора сигналов с заданной АЧХ.

Задача №2. Измерение параметров импульсных сигналов.

Основные этапы проектирования:

1. Разработка алгоритма работы прибора и определение состава аппаратных средств;

2. Выбор аппаратных средств для построения прибора, исходя из технических требований;

3. Реализация программного алгоритма

4. Проверка экспериментальная.

Задача №1.

1. Разработка алгоритма.

Генерация сигналов.

.

, , , , где n – код, пропорциональный мгновенному значению сигнала, i – код, пропорциональный текущему интервалу времени, N – код, пропорциональный амплитуде, M – код, пропорциональный периоду.

.

2. Алгоритм генерации.

1. Вычисление n(i) и округление.

2. Определение начала очередного интервала ∆t.

3. Запись полученного значения в ЦАП.

4. Возвращение к п.1.

Т.к. сигнал периодический, необходимо сформировать массив данных на интервале одного периода на максимальной частоте.

3. Приборы.

Допустим, что хотим формировать сигнал Um≤2.5 В, f>10 Гц, T=100 мс – 1 мкс.

Максимальные абсолютные погрешности: мВ, мкс.

Относительные погрешности: , .

Модули: 2ЦАП-10, генератор эталонных частот: Clock generator 730.

Модуль преобразования 2ЦАП-10 предназначен для преобразования цифрового кода в напряжение. Его технические характеристики:

1. Число преобразователей в модуле – 2;

2. Число разрядов преобразователя – 10;

3. Диапазон изменения выходного сигнала - 0÷5,115 В;

4. Разрешающая способность преобразователя - ∆ U = 5 мВ;

5. Максимальная частота преобразования – F = 1000 кГц.

Назначение элементов лицевой панели:

- Разъемы “ЦАП1”, “ЦАП2” – выходы первого и второго преобразователя;

- Разъемы “Счет 1”, “Счет 2” – добавление единицы в регистр первого или второго преобразователя соответственно;

- Разъем “ L ” – ввод LAM- статусного сигнала от внешнего источника.

Команды КАМАК:

NA (0,1) F (16) S1 – запись кода с линий W 0- W 1в первый(A (0))или второй(A (1)) преобразователи;

NA (0) F (11) S1 - запись кода с линий W 0- W 1в первый(A (0))и второй(A (1)) преобразователи одновременно;

NA (0) F (18) S1 – запись кода с линий W 0- W 1 в первый преобразователь и добавление единицы во второй;

NA (0) F (8) проверка наличия LAM -требования;

NA (0) F (10) – сброс LAM -статусного сигнала;

NA (0) F (24) – запрет LAM -требования;

NA (0) F (26) – разрешение LAM -требования;

Z – сброс LAM -статусного сигнала и запрет LAM -требований в модуле;

C – сброс в 0 регистров преобразователей.

Генератор Clock generator 730 предназначен для выработки синхроимпульсов эталонных частот.

Технические характеристики:

- Модуль вырабатывает импульсы длительностью 0,5 мкс со временем повторения от 1мкс до 1 с при декадном делении частоты;

Назначение элементов передней лицевой панели:

- Разъемы 1 мкс, 10 мкс, 100 мкс, 1 мс, 10 мс, 100 мс, 1 с.

Команды КАМАК:

- ZS 2, CS 2 – команды общего управления, сброс в 0 всех декад делителя частоты.

13.1 Разработка схемы прибора генератора с заданными амплитудно-частотными характеристиками.

Рис. 13.1 Схема генерации LAM -статусного сигнала.

Если запустить генератор, то он будет выдавать импульсы, от этого источника в модуле будет появляться LAM -статусный сигнал каждые 100 мкс, поэтому необходимо разрешить LAM -требования модулю 2ЦАП-10.

Программная реализация алгоритма.

а) Подготовка к генерации сигнала.

На этапе подготовки генерации необходимо выполнить:

1. Расчет мгновенных значений сигнала на интервале одного периода для мгновенного значения частоты (10 Гц). Для генерации сигнала с частотой больше 10 Гц, но кратной ей, мгновенные значения берутся из массива данных соответственно. Например, если частота 50 Гц, то берем 5.

2. Инициализация аппаратных средств.

CCInit (1) – инициализация КК;

CCCZ (1) – инициализация модулей.

3. Разрешение LAM -требований в модуле 2ЦАП-10.

CFSA, CSSA (26,1, NDAC,0, D, Q), причем D и Q можно не использовать.

б) Генерация сигнала.

1. Определение начала интервала .

Проверка LAM -требования: Repeat CSSSA (8,1, NDAC,0, D, Q) until Q =1;

Проверка L -запроса: Repeat CTGL (1, L) until L = NDAC .

2. Вывод в ЦАП очередного значения из таблицы данных.

CSSA (F,1, NDAC, A, D, Q);

F =16, A =0 – ЦАП1, F =16, A =1 – ЦАП2, F =17, A =0 – данные на выходе обоих ЦАП, F =18, A =0 – данные на выходе ЦАП1, на выходе ЦАП2 линейно нарастающий сигнал.

3. Сброс LAM -статусных сигналов в модуле 2ЦАП-10.

CSSA (10,1, NDAC,0, D, Q);

4. Вычислить индекс следующего элемента массива в зависимости от необходимой частоты.

в) Завершение работы системы.

CCCZ (1);

13.2 Измерение временных параметров импульсных сигналов.

1. Разработка алгоритма измерения параметров импульсных сигналов.

Частота, которую хотим измерять, должна быть много больше, чем длительность импульса.

Рис. 13.2 Измерение параметров импульсных сигналов.

Если за время измерения τэт зафиксировано N импульсов от источника сигнала неизвестной частоты f, то искомая частота или период T следования импульсов рассчитываются по формулам:, .

Рис. 13.3 Измерение длительности одиночного импульса.

Длительность τ одиночного импульса определяется количеством импульсов N генератора эталонной частоты, зафиксированных за интервал времени действия импульса из формул:, .

Аппаратные средства:

1. Счетчик импульсов;

2. Генератор эталонного времени;

3. Генератор эталонных частот.

Технические требования:

- Относительная погрешность - , ;

- f вх = 2 Гц ÷ 10 МГц;

- T вх = 0.5 с ÷ 100 мс.

- Длительность эталонного импульса должна быть не менее 10 с;

- Верхний предел измерения определяется быстродействием счетчика;

- Длительность одиночных импульсов: τвх = 1с ÷ 20 мкс.

Выбор приборов:

- Счетчик импульсов: QUAD Scaller 401 (QS 401);

- Генератор эталонных временных импульсов: C / T -1.

- Генератор эталонных частот: Clock Generator 730 B.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: