Шина IEEE 1394 — FireWire

Сервисы управления шиной. Запросы и подтверждения

Сервисы управления шиной

Прикладные драйверы на каждом узле предоставляют специальный интерфейс управления шиной (Bus Management Interface), который взаимодействует с «уровнем» управления последовательной шиной (Serial Bus Management Layer). Этот «уровень» проходит по всем этажам архитектуры. Он включает:

  • контроллер узла, управляющий уровнями PHY и LINK;
  • мастер циклов;
  • диспетчер изохронных ресурсов;
  • диспетчер шины.

Взаимодействие происходит через сервисы управления последовательной шиной (Serial Bus Management Services) при помощи:

  • запросов управления шиной — SB_CONTROL.request;
  • подтверждений запросов — SB_CONTROL.confirmation, сообщающих результаты их выполнения;
  • индикаторов событий шины, происходящих неожиданно для данного узла, — SB_EVENT.indication.

Запросы и подтверждения сервисов управления

Для функций управления и определения состояния предусмотрен ряд запросов, (SB_CONTROL.request), перечисленных ниже. На все запросы уровень управления отвечает подтверждениями (SB_CONTROL.confirmation), указывающими на успех или неудачу выполнения запроса. Сервисы управления включают следующие запросы:

  • сброс шины (Bus Reset) — указание своему PHY подать сигнал сброса и реинициализироваться самому; LINK и уровень транзакций отбрасывают все ожидающие транзакции и субакции;
  • инициализация узла — LINK и уровень транзакций данного узла отбрасывают все ожидающие транзакции и субакции и становятся готовыми к работе;
  • включение LINK-уровня заданного узла. Этот запрос предоставляет только диспетчер шины и диспетчер изохронных ресурсов;
  • конфигурирование физического уровня шины, предоставляют только диспетчер шины и диспетчер изохронных ресурсов:
         -----принудительное назначение роли корня (Set Root Force) — установка бита RHB в указанном узле и сброс во всех остальных;
         -----установка зазора арбитража (Set Gap Count);
         -----посылка расширенных пакетов физического конфигурирования — пробных пакетов ping, удаленного доступа к регистрам PHY, пакета resume;
  • Опрос состояния (Present Status), по которому в подтверждениях (SB_CONTROL confirmation) сообщается следующая информация:
         -----идентификатор корневого узла (3Fh — корневой узел не является мастером циклов);
         -----идентификатор (физический адрес) данного узла (0…3Eh);
         -----состояние бита RHB, обеспечивающего победу данному узлу в состязаниях на роль корня;
         -----текущее значение зазора арбитража (gap_cnt);
         -----идентификатор диспетчера шины (3Fh — нет диспетчера);
         -----идентификатор диспетчера изохронных ресурсов (3Fh — нет диспетчера);
         -----идентификатор мастера циклов (3Fh — нет мастера);
         -----значение, которое можно вычесть из содержимого регистра BANDWIDTH_ AVAILABLE при перераспределении полосы между изохронным и асинхронным трафиком.

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

Яндекс.Метрика