Физический уровень (PHY) обеспечивает LINK-уровню возможность обращения к шине для посылки и приема пакетов и исполнения некоторых служебных действий. Физический уровень имеет свои регистры, служащие для управления выполнением функций и определения состояния шины и узлов. К этим регистрам имеется возможность локального доступа — приложение узла через LINK-уровень может общаться с регистрами PHY. Содержимое некоторых регистров может изменяться по приему пакетов физического конфигурирования. В 1394a появилась возможность удаленного обращения к регистрам чужого узла на данной шине. Физический уровень не только обеспечивает передачу и прием пакетов для LINKуровня, но и сам является источником и получателем служебных пакетов.
Физический и канальный уровни (PHY и LINK) в стандарте IEEE 1394 отделимы друг от друга. Это обеспечивает модульность построения устройств и возможность гальванической развязки основной (прикладной) части устройства от кабельного интерфейса. В устройствах физический и канальный уровни могут реализоваться раздельными микросхемами, причем даже разных производителей. Интерфейс между ними был описан в приложении к стандарту 1394, но в рекомендательной (необязательной) форме. В 1394a этот интерфейс (с небольшими изменениями) объявлен стандартом. Cвязь физического и канального уровней обеспечивается интерфейсом PHY-LINK. По этому интерфейсу канальный уровень получает сервисы доступа к шине для передачи и приема пакетов данных, а также доступ к внутренним регистрам PHY.
В IEEE 1394b в связи с особенностями бета-режима подход к организации интерфейса связи с физическими портами изменился. Здесь появился новый промежуточный интерфейс PIL-FOP, который позволяет соединять микросхему, в которой LINK интегрирован с однопортовым PHY, с многопортовым разветвителем. Таким образом, в 1394b имеются два варианта интерфейса:
Интерфейс PHY–LINK изображен на рисунке ниже, назначение сигналов раскрыто в следующей таблице. Интерфейс содержит небольшое количество сигналов, и именно для этих сигналов и возможно введение гальванической развязки.
На рисунке приведены сигналы для обоих вариантов шины — кабельной и кроссшины. Описание интерфейса, приведенное ниже, относится к самому распространенному варианту — кабельной шине. В этом варианте не используются (отсутствуют) сигналы Clk25 и Bacкlplane.
Для кросс-шины в интерфейсе LINK-PHY сигнал SClk имеет пониженную частоту (24,756 или 12,288 МГц для S50 и S25 соответственно); для идентификации используемой частоты введен сигнал Clk25 (0 — 12,288 МГц, 1 — 24,576 МГц). Признаком подключения LINK-уровня к Backplane PHY является дополнительный сигнал Backplane (от PHY к LINK’у).
Сигнал | Назначение |
D[0:7] | Двунаправленная шина данных. На S100 используются только линии D[0:1], на S200 — D[0:3], на S400 — D[0:7] |
Ctl[0:1] | Состояние интерфейса |
LReq | Link Request, последовательный интерфейс, по которому LINK инициирует запрос к PHY (для передачи пакетов и обращения к регистрам) |
SClk | Синхронизация (49,152 МГц) для вышеприведенных сигналов. Источник меняет состояние сигнала по спаду SClk, приемник фиксирует состояние по фронту SClk |
LPS | Link Power Status, признак активности (включения) LINK-уровня |
LinkOn | Сигнал для включения LINK-уровня |
Direct | Признак непосредственного соединения LINK-PHY (нет дифференцирования сигналов) |
Интерфейсом управляет PHY; LINK может посылать запросы только в определенных состояниях интерфейса. Право передачи информации по двунаправленным линиям данных LINK получает от PHY. Текущее состояние интерфейса (использование шины данных) определяется сигналами Ctl[0:1] в соответствии с со следующей таблицей.
Ctl[0:1] | Состояние интерфейса |
Линиями Ctl[0:1] управляет PHY: | |
00 | Idle — нет активности (LINK может посылать запрос) |
01 | Status — PHY по шине данных посылает информацию о событиях или ответ на запрос чтения регистра |
10 | Receive — PHY передает LINK-уровню пакет, принимаемый с шины, или генерируемый им (PHY-пакет), или пакет ответа на запрос к регистрам PHY |
11 | Grant — PHY передает LINK’у право использования шины данных |
Линиями Ctl[0:1] управляет LINK: | |
00 | Idle — нет активности: LINK завершил передачу и отдает управление интерфейсом уровню PHY |
01 | Hold — LINK удерживает шину, готовясь к передаче пакета (или после передачи пакета, собираясь послать следующий без повторного арбитража) |
10 | Transmit — LINK передает данные PHY (для передачи в шину или обращения к регистрам PHY) |
11 | Не используется |
В состоянии Status PHY по линиям данных D[0:1] за два такта передает 4 бита состояния (Stat[0:1] в первом такте и Stat[2:3] во втором
Бит | Значение |
0 | ARB_RESET_GAP — обнаружение зазора сброса арбитража (указание на начало нового интервала справедливости) |
1 | SUBACTION_GAP — обнаружение нормального зазора арбитража (можно запрашивать право посылки очередного асинхронного пакета) |
2 | BUS_RESET_START — обнаружение сброса на шине |
3 | PHY_INTERRUPT — прерывание от PHY, причина уточняется чтением PHY-регистра 0101b. Возможные события: обнаружение петли во время идентификации дерева; обнаружение снижения питающего напряжения (ниже 7,5 В); обнаружение тайм-аута арбитража; обнаружение изменения напряжения смещения |
Обращение к регистрам PHY (см. далее) через запросы от LINK разрешено в любом состоянии интерфейса, за исключением времени, когда PHY занят обработкой предыдущего запроса чтения. Запросы обращения к регистрам выполняются всегда, их может отменить только сигнал сброса. Запрос передается в последовательном коде по линии LReq. Для запросов обращения к регистрам PHY в теле передается адрес регистра, а в запросе записи — и сами данные записи. В запросе чтения в битах [4:7] передается адрес запрашиваемого регистра, бит 8=0 — стоп бит. В запросах записи после адреса в битах [8:15] передается записываемый байт. Ответ на запрос чтения регистра передается по линиям D[0:1] в состоянии Status за 8 тактов (передаются 16 бит). За первые 2 такта передается текущее значение состояния, далее передается 4-битный адрес регистра и 8 бит считанных данных.
В IEEE 1394b параллельный интерфейс между физическим уровнем и LINK-уровнем модифицирован для поддержки высоких скоростей и бета-режима, и этот вариант интерфейса называется B PHY-LINK. Схема интерфейса приведена на следующем рисунке, назначение сигналов — в следующей таблице. Этот интерфейс обеспечивает передачу данных на скоростях вплоть до S800. Здесь в шине данных всегда используются все 8 бит, а при передаче на более низких скоростях байты данных растягиваются до 2, 4 или 8 тактов. Интерфейс может работать и в традиционном режиме (1394/1394a), при этом он синхронизируется от линии PClk (она будет играть роль SCLK), частота этого сигнала становится 49,152 МГц. Сигналы LClk и PInt при этом не используются.
Сигнал | Назначение |
D[0:7] | Двунаправленная шина, по которой передаются данные, код скорости и тип запроса. Данные от PHY синхронизируются по PClk, данные от LINK — по LClk |
Pint | PHY Interrupt, линия для последовательной передачи информации о состоянии PHY, содержимого регистров и прерываний по событиям |
Ctl[0:1] | Состояние (фаза) интерфейса синхронизируется по PClk, когда интерфейсом управляет PHY, и по LClk, когда интерфейсом управляет LINK |
LReq | Link Request, последовательный интерфейс, по которому LINK инициирует запрос к PHY (для передачи пакетов и обращения к регистрам) Синхронизируется по LClk |
PClk | Синхронизация (98,304 МГц) для сигналов, передаваемых от PHY. Источник синхронизации — PHY |
LClk | Синхронизация для сигналов, передаваемых от LINK. Сигнал вырабатывается LINK’ом из PClk и совпадает с ним по частоте |
LPS | Lint Power Status, признак активности (включения) LINK-уровня |
LinkOn | Сигнал для включения LINK-уровня |
Beta_Mode_link | Признак работы интерфейса в режиме 1394b (при отсутствии сигнала интерфейс работает в режиме 1394a) |
Direct | Признак непосредственного соединения LINK-PHY (нет дифференцирования сигналов) |
Интерфейсом управляет PHY или LINK, текущее состояние интерфейса (использование шины данных) определяется сигналами Ctl[0:1] в соответствии с таблицей ниже. По сравнению с 1394a интерфейс изменен в том, что все обращения к регистрам PHY происходят без использования шины данных: записываемые данные передаются по линии LReq, а считываемые данные и прерывания от PHY приходят по линии PInt.
Ctl[0:1] | Состояние интерфейса |
Линиями Ctl[0:1] управляет PHY: | |
00 | Idle — нет активности (дежурное состояние) |
01 | Status — PHY по шине данных посылает информацию о состоянии шины |
10 | Receive — PHY передает LINK-уровню пакет, принимаемый с шины |
11 | Grant — PHY передает LINK’у право использования шины данных |
Линиями Ctl[0:1] управляет LINK: | |
00 | Idle — нет активности: LINK завершил передачу и отдает управление интерфейсом уровню PHY |
01 | Transmit — LINK передает данные PHY |
10 | Не используется |
11 | Hold/More_Info — LINK удерживает шину, готовясь к передаче пакета. В конце передачи пакета указывает на передачу следующего запроса |
Данные, принимаемые и передаваемые по параллельной шине, растягиваются на n-тактов, в зависимости от скорости передачи: для S100 n = 8, для S200 n = 4, для S400 n = 2, для S800 каждый байт передается только в одном такте (n = 1). Более высокие скорости данным интерфейсом не поддерживаются.
Запрос от LINK к PHY посылается в последовательном виде по линии LReq. Обобщенный формат запроса приведен на рисунке, по сравнению с запросами традиционного интерфейса он усложнен. Запрос начинается с единичного старт-бита (LReq0 = 1) и завершается нулевым стоп-битом. За старт-битом следует код типа запроса (биты RT[0:3], см. таблицу), за которым следуют поля, необходимые для данного типа запроса:
В ответ на запросы передачи PHY, выиграв арбитраж, предоставляет LINK’у право на передачу пакета. По запросу записи в регистр PHY выполняется соответствующая операция, никакого ответа не предусматривается. В ответ на запрос чтения регистра PHY данные (и адрес) будут переданы по линии Pint.
http://veotab.ru/ навесы волгоград. Желтая бумага для принтера офисная цветная бумага для принтера. Обучение английскому языку через интернет топ 60 курсов английского языка.
Код запроса RT[0:3] | Назначение | Требуемые поля |
0000 | Резерв | |
0001 | PH_IMMED_REQ, немедленный запрос передачи (для посылки пакета квитирования) | RF, RS |
0010 | PH_NEXT_EVEN, запрос очередной передачи асинхронного пакета в четной фазе интервала справедливости | RF, RS |
0011 | PH_NEXT_ODD, запрос очередной передачи асинхронного пакета в нечетной фазе интервала справедливости | RF, RS |
0100 | PH_CURRENT, запрос очередной передачи асинхронного пакета в текущей фазе интервала справедливости | RF, RS |
0101 | Резерв | |
0110 | PH_ISOCH_REQ_EVEN, запрос передачи изохронного пакета в четном периоде | RF, RS |
0111 | PH_ISOCH_REQ_ODD, запрос передачи изохронного пакета в нечетном периоде | RF, RS |
1000 | PH_CYC_START_REQ, запрос передачи пакета начала цикла | RF, RS |
1001 | Резерв | |
1010 | PH_REG_READ, запрос чтения регистра PHY | RA |
1011 | PH_REG_WRITE, запрос записи в регистр PHY | RA, RD |
1100 | PH_ISOCH_PHASE_EVEN, сообщение от LINK’а (не мастера циклов) о приеме пакета начала цикла с четной фазой, обеспечивает синхронизацию LINK’а и PHY, если последний изза ошибки не принял маркер Cycle Start | |
1101 | PH_ISOCH_PHASE_ODD, то же для нечетной фазы | |
1110 | PH_CYCLE_START_DUE, сообщение от LINK’а (не мастера циклов) о приеме уведомления о начале цикла | |
1111 | Резерв |
Прием пакета иллюстрирует рисунке. После индикации начала приема (Data_On) принимается байт скорости SPD, определяющий также и формат (см. таблицу ниже). Далее принимаются байты данных — пакет, передаваемый по шине.
Во время индикации начала приема по шине данных передается байт ST, сообщающий состояние шины:
SPD[0:7] | Скорость, формат |
0000 0000 | S100 Legacy |
0000 0001 | S100 Beta |
0000 0100 | S200 Legacy |
0000 0101 | S200 Beta |
0000 1000 | S400 Legacy |
0000 1001 | S400 Beta |
0000 1101 | S800 Beta |
1111 1111 | DATA_ON, признак начала приема |
Остальные значения | Резерв |
В ответ на запрос передачи пакета PHY, сигнализируя состояние Grant (Ctl[0:1] = 11), посылает LINK-уровню байт GT, в котором сообщает формат, скорость и тип разрешенной передачи. После этого он отдает управление интерфейсом LINK-уровню, указав состояние Grant (Ctl[0:1] = 11), а затем и прекращая управлять линиями Ctl[0:1] и D[0:7]. Теперь LINK устанавливает состояние Hold (Ctl[0:1] = 11), обозначая занятость интерфейса и шины, и начинает передавать пакет данных (состояние Transmit, Ctl[0:1] = 01). После передачи пакета LINK сигнализирует состояние MORE_INFO (Ctl[0:1] = 11), в котором по шине данных передается байт дополнительной информации AI[0:7]. В этом байте может присутствовать встроенный последующий запрос шины с указанием его формата, типа и скорости. После этого LINK указывает состояние Idle (Ctl[0:1] = 00), затем перестает управлять линиями Ctl[0:1] и D[0:7] и отдает управление PHY.
Получив право передачи пакета, LINK может послать только пакет, полностью удовлетворяющий свойствам, описанным байтом GT. Этот байт декодируется следующим образом:
Байт дополнительной информации AI[0:7]содержит следующие поля:
Состояние PHY, результаты чтения регистров и прерывания передаются последовательно по линии Pint (см. рисунок). Значения кодов индикации состояния раскрыты в таблице. Поля адреса считываемого регистра (RA) и считанных данных (RD) используются только при индикации результатов чтения. Индикация результатов чтения может быть как запрошенной LINK’ом, так и неожиданной для него (чтение по инициативе PHY).
Код индикации состояния ST[0:2] |
Назначение | Требуемые поля |
000 | NOP, нет индикации состояния | – |
001 | PHY_INTERRUPT, прерывание от PHY (тайм-аут конфигурирования из-за петли, пропадание кабельного питания, событие порта или тайм-аут арбитража) | – |
010 | PHY_REGISTER_SOL, результат чтения регистра по запросу LINK’а | RA, RD |
011 | PHY_REGISTER_UNSOL, результат неожидаемого чтения регистра | RA, RD |
100 | PH_RESTORE_NO_RESET, инициализация интерфейса с сообщением об отсутствии сбросов шины, о которых не было сообщено LINK’у (или PHY начал процесс восстановления интерфейса) | – |
101 | PH_RESTORE_RESET, инициализация интерфейса с сообщением о сбросе шины, происшедшем за время пребывания интерфейса в состоянии Standby | – |
110 | Не используется (игнорируется LINK’ом) | – |
111 | Резерв | – |