Контроллеры коммуникационных каналов SCС, страница 5

Биты HP определяют, запрос на прерывание от какого модуля будет иметь самый высокий приоритет при обработке его контроллером прерывания. Значения этих битов могут динамически меняться во время работы. Обычно самым приоритетным устанавливают запрос с вектором прерывания, равным 11111 (IF), от линии 15 порта С. Для этого в биты HP записывают код 11111.

Биты VBA определяют в контроллере МС68360 базовый адрес векторов пре­рывания. Этот адрес суммируется с 5 младшими битами номера вектора прерывания и образует полный вектор прерывания для выбранного модуля. Если пользователь не определил значение этих битов, то по умолчанию оно принимается равным 0x0F для всех модулей коммуникационного процессора.

2.2.6.1. Регистры событий.

При работе в канале связи каждого канала ввода/вывода происходит доста­точно много различных событий, каждое из которых может требовать пре­рывания и вмешательства центрального процессора для анализа сложившей­ся ситуации. Так, в МРС860 в каналах связи регистрируется до 13 событий (рис. 5), которые могут требовать выставления запросов на прерывание. Набор событий в канале связи зависит от типа протокола, с которым работает SCC-контроллер. Для регистрации этих событий каждый SCC-канал имеет собст­венный регистр событий SCCE. При регистрации некоторого события в SCC-канале происходит установка бита в регистре SCCE, соответствующего данному событию.

Установка хотя бы одного бита события в этом регистре приводит к немед­ленной установке бита прерывания от данного SCC-канала в регистре регистрации прерываний IPR. Прерывание от SCC-канала не регистрируется, если содержимое регистра SCCE равно 0. Следует помнить, что прерывание от SCC-канала в регистре IPR будет обнаружено контроллером прерываний, только если оно разрешено в регистре маски IMR.

Обработка регистров событий всех каналов производится независимо друг от друга. При обработке прерывания от SCC-канала следует сразу же сбра­сывать соответствующий бит события в регистре SCCE, чтобы контроллер прерывания мог зарегистрировать и обработать запросы на прерывания от других событий, или чтобы SCC-контроллер был готов снова зарегистриро­вать это событие. Сброс бита события в регистре SCCE производится записью в этот бит 1. Для сброса бита в регистре событий не рекомендуется исполь­зовать команды битовой обработки, типa BSET, т. к. это может привести к сбросу других битов, еще не обработанных событий.

При желании пользователь может замаскировать регистрацию тех или иных событий в SCC-канале. Для этого он должен сбросить в 0 бит, соответст­вующий выбранному событию, в регистре маскирования событий SCCM. Расположение битов событий в регистрах SCCE и SCCM аналогично. При включении питания регистр регистрации событий SCCE равен 0 и все пре­рывания от событий, происходящих в SCC-канале, замаскированы.

Регистры событий SCCE используются для регистрации событий в SCC-каналах связи и генерации запросов на прерывания при возникновении тех или иных событий. Формат регистра событий зависит от типа коммуника­ционного протокола, с которым работает SCC-контроллер. При регистрации событий контроллер в регистре SCCE устанавливает бит, соответствующий этому событию. Прерывание от любого события может быть замаскировано в регистре маски SCCM. Расположение битов событий в регистрах SCCE и SCCM аналогично. Сброс бита события в регистре SCCE производится записью в него "1". При системном сбросе содержимое регистра событий обнуляется.

Изменение состояния сигнала на линии CTS регистрируется в бите CTS. Но для того, чтобы узнать новое состояние CTS -сигнала, пользователь дол­жен прочитать содержимое регистра статуса SCCS.