Шина IEEE 1394 — FireWire

Трансляция сигналов (функции повторителя)

Соединение более двух узлов в шину IEEE 1394 возможно только при использовании многопортовых узлов. Многопортовость реализуется в PHY-уровне узла, который для этого должен иметь в своем составе несколько интерфейсных портов и повторитель. Повторитель (Repeater) служит для передачи пакетов между портами и кодером-декодером своего узла:

  • пакет, исходящий с другого узла и не предназначенный для данного узла, транслируется с порта, на который он пришел, во все остальные активные порты, для которых согласованная скорость достаточна для передачи данного пакета;
  • пакет, исходящий с другого узла и предназначенный данному узлу, транслируется в другие порты (с учетом скорости), а также декодируется и передается LINK-уровню (если он поддерживает эту скорость);
  • пакет, исходящий из данного узла, посылается во все порты (с учетом скорости).

Повторитель узла выполняет ресинхронизацию данных по своему тактовому генератору. Поскольку тактовая частота узлов не может совпадать абсолютно точно, ресинхронизация требует применения эластичного буфера (с FIFO-организацией). Принимаемая битовая последовательность помещается в буфер на частоте входного сигнала. Биты на передачу начинают выбираться из FIFO-буфера после того, как там наберется некоторое начальное количество бит. Это вводит неизбежную задержку трансляции данных повторителем. В процессе трансляции число бит в FIFO может колебаться: если частота вывода (определяется частотой данного узла) чуть ниже частоты принятого сигнала, то в буфере биты будут накапливаться. Если частота вывода выше, то буфер будет опустошаться. Переопустошение буфера, естественно, недопустимо — оно приведет к ошибке данных. Начальный порог заполнения выбирается исходя из максимально допустимого расхождения частот и максимальной длины передаваемого пакета.

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