Последовательный интерфейс подключает к однопортовому узлу с интегрированным портом, называемому PIL (Port Integrated Link), физический разветвитель FOP (Fan-Out PHY). Схема подключения с использованием этого интерфейса приведена на паервом рисунке. Узел PIL содержит один бета-порт, соединяемый с разветвителем FOP двумя дифференциальными однонаправленными сигнальными парами. В этих сигнальных парах может присутствовать и гальваническая развязка (конденсаторная или трансформаторная). Дополнительно от FOP должен передаваться сигнал LinkON, управляющий включением LINK-уровня по приему соответствующего пакета. Узел PIL и разветвитель FOP могут находиться в разных доменах питания. Внешние порты разветвителя FOP могут быть как бета-портами, так и универсальными, поддерживающими DS-сигнализацию.
Логически уровень PHY комбинации PIL-FOP выглядит как один многопортовый PHY, число его портов равно числу портов разветвителя с учетом дополнительного порта, обращенного к PIL. Этому порту назначается самый большой номер; он никогда не представляется как активный порт и его нельзя перевести в режим Standby. В пакетах самоидентификации этот порт отмечается как отсутствующий, удаленное обращение к его регистрам дает тот же результат, как обращение к отсутствующему порту.
PHY, предназначенный для роли FOP, может и не подключаться к PIL, а играть роль автономного повторителя-разветвителя (с отсутствующим LINK’ом). При этом порт, предназначенный для подключения PIL, может работать в традиционном, бета- или «двуязычном» режиме.
PIL и FOP обнаруживают присутствие (включение) друг друга, согласуют скорости и устанавливают синхронизацию так же, как и пара обычных бета-портов. В посылках согласования скоростей FOP будет передавать бит FOP_Capable, а порт интегрированного узла — бит PIL_Capable. Протокол согласования позволяет установить им друг с другом правильные взаимоотношения.
Для того чтобы порты FOP и PIL логически связались в единый набор портов многопортового узла, в интерфейсе PIL-FOP определен специальный двухточечный протокол обмена со своими специальными P2P-пакетами (point-to-point). Пакеты P2P передаются только по интерфейсу между PIL и FOP, на общую шину они не выходят. Пакеты P2P передаются между пакетами основного трафика шины. Если во время передачи пакета P2P требуется передача основного трафика, то пакеты P2P прерываются, а пакеты основного трафика передаются беспрепятственно. Формат пакетов P2P приведен на рисунке ниже, назначение полей приведено ниже:
Каждый байт пакета на рисунке представлен в виде одного символа, который после кодирования 8B/10B представляется десятью битами сигнала на шине. Пакеты P2P могут быть прерваны в любом месте управляющими символами префикса данных или кода скорости, что означает начало пакета основного трафика, передаваемого по шине. Если пакет прерывается до DE1, то он повторяется передатчиком и игнорируется приемником. Пакет, прерванный после DE1, используется по назначению, поскольку все его содержательные поля и разделитель уже переданы.
Физический уровень сам является источником и конечным получателем специальных пакетов, используемых для ряда целей:
Пакеты PHY-уровня по формату отличаются от пакетов транзакций и потоков: PHY-пакеты имеют длину 64 бита, первые 32 несут информацию, а в следующих 32 битах содержится инверсное значение информационных бит. Такой способ контроля позволяет отличить PHY-пакет от изохронного пакета с нулевой длиной данных: CRC-контроль для пакета PHY позволит сформировать сигнал об ошибке, что в совокупностью с длиной в 64 бита и является признаком PHY-пакета. Несоответствие контрольных бит информационным заставляет получателя игнорировать пришедший пакет. Адресация PHY-пакетов тоже иная — здесь используется только 5-битный идентификатор узла (PHY-пакеты за пределы шины не выходят). Назначение PHY-пакета определяется по первым двум битам.
Форматы пакетов самоидентификации приведены на рисунке 1. В 1394–1995 допускалось до четырех пакетов (0, 1, 2 и 3), что позволяло описывать свойства до 27 портов одного узла. В 1394a сократили число портов до 16, в результате остались только пакеты 0, 1 и 2. Назначение полей пакетов самоидентификации приведено ниже:
Форматы управляющих пакетов физического уровня приведены на рисунке 2.
Пакеты физического конфигурирования являются широковещательными, их принимают все узлы шины. Пакеты используются двояко:
Длительность зазора арбитража и зазора сброса арбитража определяется через значение gap_cnt по формулам:
TSubaction_gap=(29+16×gap_cnt)/98,304 (мкс), диапазон значений 0,3–10,6 мкс; TArb_reset_gap=(51+32×gap_cnt)/98,304 (мкс), диапазон значений 0,5–21 мкс. По сбросу, связанному с изменением топологии шины (и по включению питания), принимается максимальное значение gap_cnt=63. В зависимости от топологии шины диспетчер шины может вычислить минимально допустимое значение gap_cnt и сообщить его всем узлам. Это новое значение будет действовать до следующего изменения топологии (PHY способен определить, связан ли сброс с подключением/отключением устройства; если не связан — значение gap_cnt сохраняется).
Пакет Link_On является директивой включения питания LINK-уровня (и вышестоящих) узлу, адресованному полем phy_ID.
Расширенные физические пакеты были введены в 1394a для удаленного доступа к PHY-регистрам, посылки пробного пакета и пакета возобновления:
Форматы расширенных физических пакетов 1394a приведены на рис. 3, назначение полей приведено ниже:
В IEEE 1394b для восстановления из состояния Standby используется пакет физического конфигурирования, который передается только от «дяди» к «племяннику» (рис. 4, а). При этом назначение полей становится следующим:
Пакет тестирования на петли (Loop Test Packet, рис. 4, б), введенный в 1394b, содержит следующие поля: