Аппаратные интерфейсы ПК

         

Протокол IEEE


Протокол 1394 реализуется на трех уровнях (рис. 4.7).

¦ Уровень транзакций (Transaction Layer) преобразует пакеты в данные, пре­

доставляемые приложениям, и наоборот. Он реализует протокол запросов-

ответов, соответствующий стандарту ISO/IEC 13213:1994 (ANSI/IEEE 1212,

редакции 1994 г.) архитектуры регистров управления и состояния CSR

(Control and Status Register) для микрокомпьютерных шин (чтение, запись,

блокировка). Это облегчает связь шины 1394 со стандартными параллель­

ными шинами.

¦     Уровень связи (Link Layer) из данных физического уровня формирует пакеты

и выполняет обратные преобразования. Он обеспечивает обмен узлов датаграм-

мами с подтверждениями. Уровень отвечает за передачу пакетов и управление

изохронными передачами.



Рис. 4.7. Трехуровневая структура FireWire

110__________________________ Глава 4. Последовательные шины USB и FireWire

¦ Физический уровень (Physical Layer) вырабатывает и принимает сигналы шины. Он обеспечивает инициализацию и арбитраж, предполагая, что в любой момент времени работает только один передатчик. Уровень передает потоки данных и уровни сигналов последовательной шины вышестоящему уровню. Между этими уровнями возможна гальваническая развязка, при которой микросхемы физического уровня питаются от шины. Гальваническая развязка необходима для предотвращения паразитных контуров общего провода, которые могут появиться через провода защитного заземления блоков питания.

Аппаратная часть FireWire обычно состоит из двух специализированных микро­схем — трансиверов физического уровня PHY Transceiver и моста связи с шиной LINK Chip. Связь между ними возможна, например, по интерфейсу IBM-Apple LINK-PHY. Микросхемы уровня связи выполняют все функции своего уровня и часть функций уровня транзакций; остальная часть уровня транзакций выполня­ется программно.

Для передачи асинхронных сообщений используется 64-битная адресация регист­ров устройств 1394. В адресе выделяется 16 бит для адресации узлов сети: 6-бит­ное поле идентификатора узла допускает до 63 устройств в каждой шине; 10-бит­ное поле идентификатора шины допускает использование в системе до 1023 шин разного типа (включая внутренние), соединенных мостами.
Протокол шины поз­воляет обращаться к памяти (регистрам) устройств в режиме DMA. В адресном пространстве каждого устройства имеются конфигурационные регистры, в кото­рых содержится вся информация, необходимая для взаимодействия с ним других устройств. Данные передаются пакетами, в начале каждого пакета передаются биты состояния арбитража. Устройство может передавать данные только после успешного прохождения арбитража. Имеются два основных типа передач дан­ных — изохронный, ради которого и строилась шина, и асинхронный. Изохрон­ные передачи обеспечивают гарантированную полосу пропускания и время задерж­ки, асинхронные передачи обеспечивают гарантированную доставку.

Асинхронные сообщения передаются между двумя устройствами. Инициатор посы­лает запрос требуемому устройству, на который оно сразу (через короткий интер­вал зазора, в котором шина находится в покое) отвечает подтверждением приема, положительным (АСК) или отрицательным (NACK), если обнаружена ошибка данных. Содержательный ответ на запрос (если требуется) будет передан обратно аналогичным способом (получатель должен послать подтверждение). Если под­тверждение АСК не получено, передачи будут повторяться несколько раз до до­стижения успеха или фиксации ошибки.

Изохронные передачи ведутся широковещательно. В сети может быть организова­но до 64 изохронных каналов, и каждый пакет изохронной передачи, кроме соб­ственно данных, несет номер канала. Целостность данных контролируется CRC-кодом. Изохронные передачи всех каналов «слышат» все устройства шины, но из всех пакетов принимают только данные интересующих их каналов. Устройство-источник изохронных данных (камера, приемник, проигрщватель) на этапе кон­фигурирования получает номер и параметры выделенного ему канала.

4.2. Шина IEEE 1394— FireWireШ111

Шина поддерживает динамическое реконфшурирование — возможность «горяче­го» подключения и отключения устройств. Когда устройство включается в сеть, оно широковещательно передает короткий асинхронный пакет самоидентификации.


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

Мастер циклов — устройство, посылающее каждые 125 мкс короткие широкове­щательные пакеты начала циклов. В каждом таком пакете мастер циклов передает значение 32-битного счетчика времени, инкрементируемого с частотой 24,576 МГц, для каждого узла, поддерживающего изохронный обмен. В каждом цикле сначала передается по одному пакету каждого активного изохронного канала, затем на некоторое время зазора шина находится в состоянии покоя. После этого зазора начинается часть цикла, отводящаяся для передачи асинхронных пакетов. Каж­дое устройство, нуждающееся в асинхронной передаче, в этой части цикла может передать по одному пакету. Устройство, не имеющее пакета для передачи, шину и не занимает. После того как все нуждающиеся устройства передадут по одному пакету, в оставшееся время до конца цикла устройства могут передать и дополни­тельные пакеты.

Диспетчер изохронных ресурсов — устройство, ведающее распределением номеров каналов и полосы шины для изохронных передач. Диспетчер требуется, когда на шине появляется хоть одно устройство, способное к изохронной передаче. Дис­петчер выбирается посредством арбитража из числа устройств, поддерживающих изохронный обмен. После сброса устройства, нуждающиеся в изохронной пере­даче, запрашивают требуемую полосу.


Полоса измеряется в специальных едини­цах распределения, число которых в 125- микросекундном цикле составляет 6144. Единица занимает около 20 не, что соответствует времени передачи одного квад-лета (quadlet, 32-битное слово) на частоте 1600 Мбит/с. Такой способ измерения полосы учитывает возможность совместной работы устройств с разными скорос­тями — в одном цикле соседние пакеты могут передаваться на разных скоростях. Как минимум 25 мкс цикла резервируется под асинхронный трафик, поэтому сум­марная распределяемая полоса изохронного трафика составляет 4915 единиц. Для цифрового видео, например, требуется полоса 30 Мбит/с (25 Мбит/с на видеодан­ные и 3-4 Мбит/с на аудиоданные, синхронизацию и заголовки пакетов). В S100 устройства цифрового видео запрашивают около 1800 единиц, в S200 — около 900. Если требуемая полоса недоступна, диспетчер откажет устройству и не выделит ему номер канала. Устройство, не получившее канал, будет периодически повторять запрос. Когда изохронный обмен становится ненужным узлу, он должен освободить

112_______________________     Глава 4. Последовательные шины USB и FireWire

свою полосу и номер канала, чтобы этими ресурсами смогли воспользоваться дру­гие устройства. Обмен управляющей информацией устройств с диспетчером про­изводится асинхронными сообщениями.

Контроллер шины (Bus Master) — необязательный элемент сети 1394, который осуществляет управление устройствами. Им может являться компьютер, редак­тирующее устройство цифровой записи или специальный интеллектуальный пульт управления. Контроллер шины, реализующий карты топологии и скоро­стей (TopologyJMap и Speed_Map), допускает использование нескольких частот в одной шине, в соответствии с возможностями конкретной пары устройств, уча­ствующих в обмене. Иначе при подключении устройств, рассчитанных на разные скорости, все передачи будут происходить на скорости, доступной для всех актив­ных устройств.


Содержание раздела