link280 link281 link282 link283 link284 link285 link286 link287 link288 link289 link290 link291 link292 link293 link294 link295 link296 link297 link298 link299 link300 link301 link302 link303 link304 link305 link306 link307 link308 link309 link310 link311 link312 link313 link314 link315 link316 link317 link318 link319 link320 link321 link322 link323 link324 link325 link326 link327 link328 link329 link330 link331 link332 link333 link334 link335 link336 link337 link338 link339 link340 link341 link342 link343 link344 link345 link346 link347 link348 link349 link350 link351 link352 link353 link354 link355 link356 link357 link358 link359 link360 link361 link362 link363 link364 link365 link366 link367 link368 link369 link370 link371 link372 link373 link374 link375 link376 link377 link378 link379 link380 link381 link382 link383 link384 link385 link386 link387 link388 link389 link390 link391 link392 link393 link394 link395 link396 link397 link398 link399 link400 link401 link402 link403 link404 link405 link406 link407 link408 link409 link410 link411 link412 link413 link414 link415 link416 link417 link418 link419

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

Шина IEEE 1394 — FireWire

Интерфейс в бета-режиме IEEE 1394b

Интерфейс бета-режима построен с учетом возможности использования различных сред передачи сигналов по двум встречным однонаправленным линиям. Здесь исключена сложная дифференциально-линейная сигнализация с распознаванием различных уровней смещения и анализом состояния сигналов арбитража, являющихся результатом одновременной работы передатчиков соединенных устройств на одну и ту же сигнальную пару. Вся информация в бета-режиме передается с помощью 10-битных символов, передаваемых последовательно простым кодированием по методу NRZ. Чтобы избежать электромагнитных помех от шины, сосредоточенных в узких полосах спектра при передаче монотонных данных или служебных сигналов, передаваемые потоки скремблируются. Скремблированные данные проходят через кодер 8B/10B, который из байтов данных делает 10-битные символы. Это избыточное кодирование позволяет сформировать битовый поток, в котором ограничена длина повторяющихся битов (не более пяти нулей или единиц подряд) и среднее число нулей совпадает со средним числом единиц. Такой поток удобно передавать по различным средам передачи (отсутствует постоянная составляющая) и декодировать, синхронизируясь по перепадам сигнала, встречающимся не реже чем через 5 битовых интервалов. При приеме битовая последовательность подвергается обратным преобразованиям. Аналогичное кодирование-декодирование применяется в Ethernet, FDDI и других коммуникационных технологиях.

В структуре PHY узла 1394b появился сменный нижний уровень PMD (Physical Media Dependent), соответствующий физической среде передачи. Для коротких медных линий (STP) это дифференциальные приемопередатчики, для длинных (UTP) они содержат и разделительные трансформаторы. Для оптоволокна это оптические трансиверы с лазерным или светодиодным излучателем. «Двуязычный» порт должен иметь и традиционный набор дифференциальных и линейных приемопередатчиков, работающих только на традиционный кабель.

В бета-режиме в линию передаются символы, несущие полезную и служебную информацию:

  • байты данных — заголовки и тела передаваемых пакетов;
  • байты запросов, которые могут содержать:
       ---асинхронные и изохронные запросы BOSS-арбитража, упакованные в один байт: 3 бита на код асинхронного запроса (NONE_ODD, NONE_EVEN, CURRENT, NEXT_ODD, NEXT_EVEN, CYCLE_START_REQ, BORDER), 3 бита на код изохронного запроса (ISOCH_NONE, ISOCH_EVEN, ISOCH_ODD, ISOCH_CURRENT) и два бита нулевые). Асинхронные и изохронные запросы независимы друг от друга;
       ---запрос и фазу традиционного арбитража (LEGACY_REQUEST, LEGACY_PHASE, номер фазы кодируется двумя битами);
       ---конфигурационные запросы: TRAINING, DISABLE_NOTIFY, CHILD_NOTIFY-IDENT_DONE-PARENT_HANDSHAKE, OPERATION, STANDBY, SUSPEND, PARENT_NOTIFY.
  • Управляющие маркеры (4-битные коды): BUS_RESET, CYCLE_START_EVEN, CYCLE_START_ODD, ASYNC_EVEN, ASYNC_ODD, ATTACH_REQUEST-ARB_CONTEXT, DATA_PREFIX, DATA_END, DATA_NULL, GRANT, GRANT_ISOCH, SPEEDa, SPEEDb, SPEEDc.

Байты данных и запросов скремблируются и кодируются в 10-битные символы единообразно, их можно различать только по контексту. Управляющие маркеры кодируются так, что они в 10-битных символах явно отличимы от данных и запросов. Избыточное кодирование является помехозащищенным — недопустимые комбинации считаются ошибочными. Для обеспечения побайтной синхронизации используются специальные символы, не совпадающие с символами, представляющими байты передаваемой информации.

Традиционные порты с DS-сигнализацией могут передавать и принимать пакеты на любой из доступных им скоростей, поскольку битовая синхронизация автоматически обеспечивается функцией XOR от состояния данных и строба. В бетарежиме передача и прием возможны только на одной скорости, согласованной портами-партнерами. На эту скорость настраивается система фазовой автоподстройки частоты (PLL) приемника. При этом эффективная скорость передачи информации может совпадать с согласованной скоростью порта или же составлять от нее 1/2, 1/4, 1/8, …, 1/32 части. Последний случай относятся к порту, работающему на S3200 и передающему пакет на скорости S100.

Пакеты могут передаваться как в традиционном (Legacy) формате, так и в бетаформате. Пакеты бета-формата передаются только между бета-узлами, в традиционные фрагменты гибридной шины они не транслируются. Передачи на скоростях S800 и выше возможны только в бета-формате. Общая структура формата передачи приведена на рисунке ниже. Для сохранения возможности обмена с узлами, поддерживающими различные скорости и форматы, применяются специальные меры:

  • управляющие маркеры размножаются — передаются столько раз, во сколько эффективная скорость меньше скорости работы порта;
  • вводится префикс пакета, в котором передается код скорости и определяется формат пакета;
  • если эффективная скорость ниже скорости порта, между символами содержимого пакета вводятся символы-заполнители.

Префикс пакета начинается с кода скорости, за которым следует один или несколько символов-маркеров начала данных DATA_PREFIX. Код скорости определяет относительную скорость передачи (отношение эффективной и согласованной скорости) и формат. Отсутствие кода скорости означает передачу традиционного пакета на скорости S100. Кодирование скорости и формата приведено в таблице ниже. Здесь буквой В обозначен символ SPEEDb, буквой C обозначен символ SPEEDc, Cm означает m повторов символа SPEEDc. Букве X соответствует SPEEDа для традиционного пакета и SPEEDb для бета-пакета, по этим символам и определяется формат пакета. В таблице приведено и время Ts, отводимое для сигнализации скорости.

Содержимое пакета — символы, кодирующие передаваемые байты, — «разбавляется» управляющими маркерами SPEEDc. Их количество определяется отношением скоростей: 1 для 1/2, 3 для 1/4, 7 для 1/8, 15 для 1/16 и 31 для 1/32. На рисунке изображены символы-заполнители Cz для случая, когда скорость порта в 4 раза выше эффективной скорости передачи пакета. По пути к узлу-получателю пакет может проходить через сегменты с различными согласованными скоростями, в результате количество символов-заполнителей может меняться (сокращаться при прохождении через «медленные» сегменты или увеличиваться при прохождении более скоростных). Понятно, что пройти через сегмент, для которого согласованная скорость ниже эффективной, пакет не сможет.

Признаком завершения пакета может быть любой из символов-маркеров (возможно, повторяющийся многократно) ARB_CONTEXT, DATA_END, DATA_PREFIX, DATA_NULL, GRANT, GRANT_ISOCH или LEGACY_PHASE. Традиционные пакеты могут завершаться и одним из символов DATA_END/GRANT/GRANT_ISOCH (их цепочкой), за которым следует LEGACY_PHASE (один или несколько).

Таблица. Кодирование скорости и формата передач

Скорость порта Эффективная скорость
S100 S200 S400 S800 S1600 S3200
S100 X          
S200 CX X        
S400 CCXC CX X      
S800 CCCXC4 CCXC CX B    
S1600 CCCCXC11 CCCXC4 CCXC CB B  
S3200 CCCCCXC26 CCCCXC11 CCCXC4 CCBC CB B
Ts, нс 80 40 20 10 5 2,5