Skip to content

Планы по модернизации Контроллер крейта, совместимый с K 16 и интерфейсной платы

Ushakov Michael edited this page Jan 7, 2023 · 11 revisions

1. Описание возможностей и проблем контроллера крейта, совместимого с К-16

Наиболее полная документация находится в репозитории

Назначение контроллера крейта - предоставление возможности управления приборами КАМАК из ПКб трансляция адресов и команд

Основные возможности:

  • контроллер для многокрейтовых систем;
  • интеграция с ПК через ISA-интерфейсную плату;
  • прямая адресация к регистрам контроллера;
  • генерация прерываний ПК и маскирование т.е. сведение к одному из возможных типов, число обрабатываемых запросов - 8 шт

1.1 Особенности работы контроллера крейта КАМАК

Для дальнейшего понимания того, как новый контроллер крейта должен работать вкратце рассмотрим как работает К-16

1.1.1 Регистры внутреннего состояния

  • RCS - 16-разрядный регистр статуса и управления;
    • D0 - D4 - F1, F2, F4, F8, F16 код функции
    • D5 - IFF - триггер запрета
    • D6 - DENB - триггер разрешения прерывания
    • D7 - D -
    • D8 - C - однократная программная генерация КАМАК-цикла и сигнала C с последующим сбросом
    • D9 - Z - однократная программная генерация КАМАК-цикла и сигнала Z с последующим сбросом
    • D10 - XENB - разрешение генерации прерывания при отсутствии сигнала X от модулей
    • D11 - S - запрет на генерацию КАМАК-цикла при операциях Чтение с паузой.
    • D12 - J -
    • D13 - -
    • D14 - X
    • D15 - Q
  • RM - регистр масок и источником запросов - SL8|SL7|...|SL1|M8|M7|...|M1
    • SL - групповые запросы, 8 -наивысший приоритет, 1 - низший
    • M - маскирует SL
  • RNu и RD - регистр числа и данных, RD только для чтения, RNu только для записи
  • RACB - регистр управления дополнительной управляемой магистралью для многокрейтовых систем (ЭТОТ РЕГИСТР НЕ БУДЕМ РАССМАТРИВАТЬ, т.к. многокрейтовые системы нас не интересуют)

1.1.2 Прерывания

При обработке прерываний сперва происходит проверка должно ли прерывание быть маскировано (т.е. скрыто), т.е. если поступил групповой запрос SL2, а в M2 лог. 0, то данный групповой запрос игнорируется, если 1, то формируется вектор прерывания с помощью PIR. Более подробно смотри в документации.

Для нашего случая, т.е. полной модификации мы должны ответить на следующие вопросы:

  1. Какие могут быть источники прерывания, т.е. могут ли они возникнуть на новой платформе контроллера крейта
  2. Нужно ли генерировать прерывание в ПК (на 100% нет), но вот как их правильно обработать, т.е. можно ли на стороне контроллера или же необходимо отправить какое-то уведомление в ПК и нужно ли ожидать ответ от ПК.

1.1.3 Обмен данными между ЭВМ и контроллером крейта

  • Запись
    • запись разрядов 17-24 в регистр RNu
    • запись по адресу регистра КАМАК 1-16 разрядов слова
    • вырабатывается КАМАК-цикл
  • Чтение
    • обращение к регистру КАМАК;
    • вырабатывается КАМАК-цикл;
    • считываются разряды 1-16 разряды слова;
    • чтение 17-24 разрядов слова по адресу регистра данных RD

2. Предложение модернизации

Концептуально можно предложить следующее:

  1. Убрать поддержку многокрейтных систем
  2. Отказаться от ISA-интерфейсной платы и заменить интеграцию по последовательному порту
  3. Отказаться от векторов прерываний, обеспечить внутренней логикой обработку прерываний через следующую цепочку: прерывание от оборудование -> сигнализация через RS232 -> ответ от RS232 -> обработка прерывания согласно предопределенной в самом контроллере крейта логики

2.1 Состав функций новой версии контроллера крейта (какие функции будут оставлены и добавлены

  1. Интерфейс для трансляции команд RS232 -> модули КАМАК

Вопросы:

  1. Следует ли расширить интерфейс для, например, BULK-чтения (т.е. сделать режим, который позволит одной командой получить последовательно блок памяти), в этом случае команды по RS232 должны корректно разбираться и анализироваться.
  2. Каким образом осуществляется управление стробами, т.к. при использовании последовательных портов интервалы обмена выдержать вообще не получится, т.е. точность будет минимальной.

2.2 Интерфейс взаимодействия с внешним миром

В качестве интерфейса будет использован RS232, по отношению к которому нужно обеспечить:

  1. 0% ошибок из-за разности скоростей приема и передачи (обусловлено разными частотами устройства)
  2. Оптимальную скорость для получения спектров максимально быстро и при этом учитывая п.1
  3. Размеры приемных и передающих буферов (достаточные для хранения большого числа команд, а в случае с накопителем должны быть еще и буферы для данных)
  4. Аппаратную синхронизацию между контроллером крейта и ПК

3. Алгоритм работы контроллера крейта

4. Платформа для реализации