Интеллектуальный PCI контроллер с встроенным процессором
для крейт-контроллеров КК009, КК012 и К106.


Ю.Б. Семенов, В.Е. Жучко, Д.В. Каманин, В. Г. Тищенко

Большой ассортимент блоков КАМАК, существующих в настоящее время, позволяет создавать практически любую конфигурацию для использования в ядерно-физических экспериментах. Эта даёт возможность конфигурировать гибкие и мощные системы сбора и накопления физической информации. Для обслуживания таких систем часто применяются недорогие и вместе с тем достаточно мощные персональные компьютеры (ПК) под управлением различных операционных систем (ОС). Выбор той или иной ОС определяется особенностями решаемой задачи. Частым требованием к системе является быстрая реакция ПК на запрос на обслуживание со стороны измерительной аппаратуры (запрос LAM). Это требование может быть удовлетворено до некоторой степени применением ОС реального времени (таких как QNX, OS-9, VxWorks, и др.). Недостатком такого решения является, во-первых, достаточно высокая стоимость самой ОС. Второй недостаток обусловлен относительно низким быстродействием самой системы сбора данных, реализованной в стандарте КАМАК, по сравнению с быстродействием современных ПК (внутренний цикл КАМАК составляет 1 мкс). Разница в быстродействии приводит к крайне неэффективному использованию процессорного времени ПК, поскольку основное время процессор вынужден будет проводить в состоянии ожидания прохождения команды CNAF и поступления очередной порции данных. При увеличении частоты поступления сигналов LAM неизбежно наступит момент, когда процессор окажется полностью занят обработкой прерываний и работа самой ОС, равно как и пользовательских приложений, будет заблокирована. Фактически же, большую часть этого времени процессор будет попросту бездействовать.

Нами предлагается более эффективное решение обсуждаемой проблемы, основанное на подходе, часто реализуемом фирмой National Instruments в своих изделиях. А именно, саму процедуру чтения данных из крейта КАМАК предлагается возложить на специализированную интерфейсную карту, изготовленную в стандарте PCI и устанавливаемую в ПК. Эта карта оснащена микропроцессором на основе современных программируемых логических матриц и встроенной памятью FIFO (First In – First Out). Запрос на прерывание процессору ПК будет генерироваться лишь после того, как будет считано все событие целиком или даже несколько событий – в зависимости от задания пользователя.

Преимущества такого подхода очевидны. Во-первых, процессор ПК освобождается от рутинной работы по чтению данных из блоков КАМАК по каждому прерыванию. Во-вторых, режим реального времени в таком подходе реализуется автоматически. Это позволит использовать любую ОС, в том числе и широко распространенные ОС семейства MS-Windows. Время же отклика контроллера на запрос со стороны КАМАК фиксировано и составляет 30 нс, что существенно меньше, чем то, которое гарантируют современные дорогостоящие ОС реального времени.

Разработанная нами PCI карта может быть использована совместно с любым из широко распространенных крейт-контроллеров типа КК009, КК012 или К106. Реализованы два режима работы карты:

i) Пассивный режим, в котором карта эмулирует работу своего прототипа [1] в зависимости от типа используемого крейт контроллера (КК009, КК012, К106). Этот режим предусмотрен для обеспечения максимальной совместимости с существующим программным обеспечением (ПО). Небольшая переделка ПО все же потребуется. Это связано с применением шины PCI взамен шины ISA, которой современные компьютеры редко оснащаются.

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

Предлагаемая PCI карта реализована на программируемой микросхеме ALTERA серии ACEX типа EPIC100QC208-3 и является дальнейшим развитием ранее разработанной карты [2]. Со стороны компьютера карта представляет область памяти объемом FFFFh. Нижние адреса до 7FFFh от базового адреса занимает пространство памяти контроллера КК009 (0000h - 1FFFh для К106). Адреса 8000h - 87FF занимает память программы встроенного процессора объемом 512 строк. Встроенный процессор оперирует восемью 16-разрядными регистрами общего назначения и регистром доступным как со стороны процессора, так и со стороны ПК. Вся память, включая FIFO, реализована внутри одного чипа ALTERA, а потому доступ к ней максимально быстрый.

Для программирования внутреннего микропроцессора предоставляется набор примерно из 30 команд, включая команды чтения из блока в память FIFO, простейшие арифметические команды, команды условных переходов и ветвления, команды запроса на обслуживание со стороны центрального процессора. Предлагаемый набор команд позволяет легко реализовать интеллектуальную систему сбора данных, которая будет считывать, например, лишь те блоки, которые должны быть прочитаны в соответствии с реальной картиной физического события. Организация такого программного триггера (триггера второго уровня) позволит, с одной стороны, уменьшить поток данных, а с другой стороны, еще больше разгрузить основной процессор ПК позволив его задействовать более эффективно для выполнения других задач. Для упрощения процесса программирования разработан кросс-компилятор для ПК, при помощи которого можно легко создать задание, отвечающее требуемой конфигурации эксперимента, оперативно загрузить его в PCI карту, проверить работоспособность и отредактировать при необходимости. Более подробное описание ассемблерных команд процессора, а также вся необходимая техническая документация для пользователей и разработчиков программного обеспечения содержится на интернет-страничке группы ФОБОС [3].

Описанный подход, несомненно, может быть с успехом использован для любых крейт-контроллеров, в частности, использующих шины VME или VSB, как в системе сбора данных спектрометра ФОБОС [4]. Дальнейшим развитием разработанной нами технологии станет программируемый КАМАК-контроллер, берущий на себя функции описываемой карты PCI и управляемый дистанционно через локальную сеть. При этом необходимость в специальном ПК, расположенном вблизи КАМАК крейта, отпадет. Также станет возможно использование в физическом эксперименте портативных компьютеров, в том числе с использованием беспроводной связи.

REFERENCES
  1. Antyukhov V.A. et al., Digital CAMAC Modules (Issue XV), P10-87-928, JINR, 1987.
  2. Yu.B.Semenov et al. “Heavy Ion Physics” FLNR JINR scientific report 2001-2002, Dubna, 2003, Ed. by A.G.Popeko, p.233
  3. http://fobos.jinr.ru/solutions
  4. Yu.B.Semenov et al. “Heavy Ion Physics” FLNR JINR scientific report 1999-2000, Dubna, 2001, Ed. by A.G.Popeko, p.197