PersCom — Компьютерная Энциклопедия Компьютерная Энциклопедия

Шина IEEE 1394 — FireWire

Организация изохронных соединений

Для установления логических связей между источниками и приемниками изохронных потоков служат регистры управления входными и выходными штекерами — PCR (Plug Control Register), описанные ниже. Штекер (Plug) в 1394 — это метафора разъема, по которому передавался бы аудио- или видеосигнал в аналоговой системе. В 1394 штекеры, которыми соединяются между собой источники и приемники изохронных данных, отображаются регистрами PCR. Эти регистры используются для организации двухточечных и широковещательных соединений.

Для изохронных передач могут быть установлены соединения одного из трех основных типов:

  • точка-точка (point-to-point) — соединение, явно видимое в PCR-регистрах участников: один из регистров OUTPUT_PLUG передающего узла и один из регистров INPUT_PLUG принимающего узла содержат одинаковый номер канала channel и у обоих ненулевые значения поля point_to_point;
  • широковещательная передача (broadcast out), ведущаяся без каких-либо признаков «слушателей». В регистре OUTPUT_PLUG передающего узла устанавливается бит b — признак широковещания и указывается номер канала channel;
  • широковещательный прием (broadcast in), ведущийся без индикации присутствия передатчика. В регистре INPUT_PLUG передающего узла устанавливается бит b — признак широковещания и указывается номер канала channel.

Для каждого штекера может быть установлено несколько соединений точка-точка (или ни одного); широковещательное соединение может быть только одно (или ни одного). Эти типы соединений могут независимо сосуществовать на одном штекере. Установление нового двухточечного соединения увеличивает значение поля point_to_point, разрыв соединения — уменьшает (в пределе до нуля). Глава 18. Передача данных по шине IEEE 1394 Номер канала при установлении широковещательной передачи для штекера, не имеющего двухточечного соединения, определяется номером штекера и базовым адресом для данного узла (полем broadcast_base регистра OUTPUT_MASTER_PLUG).

Если broadcast_base ≠ 63, то номер канала будет суммой (по модулю 64) базового адреса и номера штекера, иначе устанавливается номер канала 63.

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

  • двухточечным соединением, установленным в каждом из них. Это соединение может разорвать только тот, кто его устанавливал;
  • установлением широковещательной передачи в одном узле и широковещательного приема в другом. Это соединение может разорвать любой из участников.