Шина IEEE 1394 — FireWire

Передача данных

Данные передаются в дифференциальном виде по обеим парам проводов. При этом по линии A передаются стробы, а по линии B — последовательные данные. Принимаются данные по линии B, а стробы — по линии A. Синхронизация данных осуществляется с помощью стробов весьма своеобразным способом. Сами данные передаются в NRZ-коде — уровень сигнала во время битового интервала соответствует значению данного передаваемого бита. Стробы при передаче формируются из тактового сигнала — меандра с периодом в два битовых интервала — и самих данных. При приеме данные и стробы поступают на логический элемент Исключающее ИЛИ (функция XOR). Немного задержанный выходной сигнал этого элемента является сигналом битовой синхронизации, по фронтам и спадам которого «защелкиваются» биты последовательных данных. Для того чтобы все биты пакета были извлечены из декодера приемника, приходится добавлять дополнительные биты (Dribble bits): 1 для S100, 3 для S200 и 7 для S400. Эти биты при передаче вводит PHY, он же их исключает при приеме, так что LINKуровень с ними дела не имеет. Значение дополнительных битов соответствует тому сигналу, в который должен завершать пакет: Data_Prefix или Data_End (см. ниже).

Передача данных начинается с префикса данных (Data Prefix) — состояния линий [0 1]. Префикс данных длится не менее 140 нс. Во время префикса данных передается и сигнал идентификации скорости (Speed Signal) — синфазное смещение уровней сигнала на паре B. Смещение вводится с помощью управляемых источников тока (в передатчике B) и измеряется компараторами (в приемнике A). Этот ток смещает среднее напряжение на линии относительно смещения TpBias. Величина тока и, соответственно, величина смещения на TPB кодируют скорость передачи пакета:

  • S100 — нет тока смещения, среднее напряжение на TPB — не ниже 1,17 В;
  • S200 — ток смещения 3,5 мА, среднее напряжение на TPB — 0,94–1,17 В;
  • S400 — ток смещения 10 мА, среднее напряжение на TPB — 0,52–0,94 В.

Скорость передачи пакета заказывает приложение узла, запрашивающего передачу. При трансляции пакетов PHY будет посылать (транслировать) высокоскоростной пакет только на те порты, которые поддерживают данную скорость. На остальные порты на все время передачи пакета будет передаваться префикс данных, чтобы обозначить занятость шины.

Обычным признаком окончания пакета является сигнал Data End — состояния линий [1 0] длительностью 0,25 мкс. В соединенных транзакциях пакеты разделяются префиксом данных, который будет играть роль признака конца данных для предшествующего пакета.

На рисунке ниже. приведены временные диаграммы одной субакции. Здесь изображены сигналы на парах TPA, TPB порта узла, посылающего пакет субакции и принимающего пакет подтверждения. В нижней части рисунка показаны сигналы, передаваемые портом (Tx:) и принимаемые им (Rx:). Увеличенная амплитуда дифференциального сигнала на TPA в начале передачи префикса данных обусловлена столкновением сигнала префикса, посылаемого данным портом, с сигналом предоставления права на передачу, еще не снятым узлом-партнером. На рисунке изображена нормальная форма выполнения транзакции (с передачей одиночного пакета). В случае соединенной (concatenated) формы выполнения (например, передачи одним узлом нескольких пакетов самоидентификации) пакеты разделяются лишь префиксами данных, а признак конца (Data_End) вводится только после передачи последнего пакета.

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