Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Шины.PCI,.USB.и.FireWire

.pdf
Скачиваний:
59
Добавлен:
19.03.2016
Размер:
6 Mб
Скачать

Существует спецификация IP/1394, описывающая передачу IP$пакетов (IP v.4) по последовательной шине и поддержку протокола DHCP — динамического вы$ деления IP$адресов (http://www.ietf.org/html.charters/ip1394 charter.html).

Для регистрации, обнаружения устройств в локальной сети и коммуникаций меж$ ду ними имеется набор спецификаций UPnP (Universal Plug and Play, http:// www.upnp.org/). Спецификации описаны для IP$сетей, но предполагается и пря$ мое подключение устройств IEEE 1394.

IEEE 1394 в инструментальных устройствах

Для подключения измерительных приборов и устройств промышленной автома$ тики имеется спецификация «Industrial & Instrumentation Control Protocol» (ftp:// fcext3.external.hp.com/dist/mxd/ieee1394/ii wg/), описывающая коммуникационный протокол, похожий на AV/C. Для транспортировки команд приборного интерфейса IEEE 488 по шине IEEE 1394 имеется спецификация «IEEE 488 over 1394 Industrial & Instrumentation Control Protocol» (ftp://fcext3.external.hp.com/dist/mxd/ieee1394/ ii wg/).

IEEE 1394 для устройств хранения данных

С интерфейсом 1394 выпускаются разнообразные устройства хранения данных — жесткие диски, приводы CD и DVD, AV$диски (винчестеры, оптимизированные для записи и чтения мультимедийных данных). Выпускаются и преобразователи интерфейсов 1394–IDE, оформленные в виде корпусов для стандартных IDE$уст$ ройств форматов 5" или 3,5". В эти корпуса можно установить обычные винчесте$ ры, приводы CD и DVD, получая переносные устройства хранения данных.

В устройствах хранения, подключаемых к компьютерам, шину IEEE 1394 обычно используют как транспортное средство передачи пакетов команд и данных SCSI. При этом для ОС и приложений устройства хранения выглядят как SCSI$устрой$ ства соответствующих классов. Спецификация RBC (Reduced Block Commands) описывает сокращенный набор команд SCSI, относящихся к устройствам хране$ ния, с использованием протокола SBP$2 (ftp.symbios.com/pub/standards/io/x3t10/ drafts/rbc/). Эта спецификация применяется для устройств хранения в ОС Windows, Mac OS и других.

Для дисковых устройств хранения в спецификациях AV/C (http://www.1394ta.org) имеется общая спецификация (disk general specification) и следующие расшире$ ния:

AV/C MiniDisk subunit — расширения для мини$дисков;

AV/C hard disk drive subunit — расширения для винчестеров;

AV/C compact disk subunit — расширения для компакт$дисков;

AV/C storage object descriptor subunit — абстрактное описание класса устройств хранения.

IEEE 1394 для передачи и печати изображений

Для печати (и передачи) неподвижных изображений по IEEE 1394 есть несколько разных подходов со своими протоколами:

1394 Printer Working Group (PWG) Imaging Device Communication Specification

спецификация на использование транспортного протокола SBP$2 для принте$ ров, сканеров и прочих устройств ввода/вывода изображений, подключаемых к компьютерам. Из$за отсутствия единых спецификаций на форматы данных и команд для каждой модели принтера требуется свой драйвер;

протокол DPP (Direct Printing Protocol) предназначен для непосредственного соединения устройств ввода и вывода изображений — сканеров, принтеров, фотокамер1. Протокол обеспечивает равноранговое соединение устройств и пе$ редачу масштабируемых изображений. (http://www.1394ta.org/Technology/ Specifications/, http://www2.tokyoweb.or.jp/ieee1394pwgc/);

расширение AV/C Printer Sub unit, относящееся к принтерам, управляемым AV/ C$командами.

IEEE 1394 для аудио и видеоустройств

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

Для шины 1394 привлекательна возможность соединения устройств бытовой элек$ троники в «домашнюю сеть», причем как с использованием PC, так и без. При этом стандартные однотипные кабели и разъемы 1394 заменяют множество разнород$ ных соединений устройств бытовой электроники с PC. Разнотипные цифровые сигналы (сжатые видеосигналы, цифровые аудиосигналы, команды MIDI и уп$ равления устройствами, данные) мультиплексируются в одну шину, проходящую по всем помещениям. Используя одни и те же источники данных (приемники ве$ щания, устройства хранения, видеокамеры и т. п.), можно одновременно в разных местах просматривать (прослушивать) разные программы с высоким качеством, обеспечиваемым цифровыми технологиями. Применение компьютера с адаптером 1394 и соответствующим ПО значительно расширяет возможности этой сети. Ком$ пьютер становится виртуальным коммутатором домашней аудио$видеостудии. Приложения для аудио$ и видеоустройств используют логические «вилки» (plugs) и «розетки» (sockets), которые являются аналогами разъемов, применяемых в обыч$ ной аппаратуре. Вилки соответствуют выходам, розетки — входам соответствую$

1 В USB по назначению ему аналогично расширение OTG (On The Go).

щих устройств. «Вставляя» эти «вилки» в «розетки», можно собрать требуемую систему.

Для аудио$ и видеоустройств существует ряд спецификаций:

DVC Blue Book — первый стандарт на аппаратные средства и протоколы, ис$ пользуемые в цифровых видеоустройствах, выпускаемых консорциумом Digital Video Consortium Devices. Этот стандарт должен учитываться при разработке ПО для совместимости со старыми устройствами;

1394 Digital Video Conferencing Camera Specification — определение функций, сервисов и набора регистров камер для видеоконференций без использования комперессии (http://www.1394ta.org/Technology/Specifications/);

HAVi (Home AV Interoperability) — протоколы, обеспечивающие взаимодей$ ствие бытовой аудиовидеотехники с поддержкой PnP, как с участием ПК, так и без. Спецификации разработаны объединенными усилиями производителей бытовой техники Grundig, Hitachi, Matsushita, Philips, Sharp, Sony, Thomson и Toshiba (http://www.havi.org). Спецификации совместимы с современными ус$ тройствами, соответствующими спецификациям AV/C (см. ниже), и ориенти$ рованы на следующее поколение бытовой техники и ее инфраструктуры. На$ бор команд, используемых в HAVi, определен спецификацией HAVi CTS (Command Transaction Set);

спецификации IEC 61883 — управление аудио$ и видеоустройствами (см. ниже);

спецификации AV/C (Audio/Video Compatibility) — обеспечение совместимо$ сти аудио$видеоустройств с шиной IEEE 1394;

Music LAN (MLAN) — спецификации для цифровых музыкальных инструмен$ тов (http://www.yamaha.co.jp/tech/1394mLAN/mlan.html).

Шина IEEE 1394 фигурирует в спецификациях OpenCable (http://www.opencable. com), описывающих интегрированные сервисы, предоставляемые с помощью се$ тей кабельного телевидения (в США): телевещание (аналоговое и цифровое), муль$ тимедийные сервисы (голосовая и видеосвязь), интерактивные приложения и т. п. В этой сети у пользователя устанавливается устройство STB (set$top box), под$ ключаемое к TV$кабелю, декодирующее сигналы и обеспечивающее предоставле$ ние пользователю оплаченных услуг. STB имеет внешние интерфейсы для под$ ключения аудио$видеотехники: видеоинтерфейсы (композитный сигнал на RCA$разъемах, S$видео), аудиоинтерфейсы (аналоговые, SP/DIF). IEEE 1394 яв$ ляется цифровым интерфейсом STB$устройств, через который подключаются циф$ ровые аудио$видеоустройства, DVD$плееры и устройства хранения данных.

Спецификации IEC 61883

Спецификации IEC 61883 описывают использование IEEE 1394 для управления аудио$ и видеоустройствами (http://www.iec.ch). Спецификация разбита на части:

part 1. Транспортировка изохронных данных при использовании AV/C, DVC, MPEG, AMP. Приводятся описания регистров управления изохронными под$ ключениями (Isochronous Plug Control Registers), протокола управления со$

единениями CMP (Connection Management Protocol), протокола управления функциями FCP (Function Control Protocol), заголовков изохронных пакетов CIP (Common Isochronous Packet);

part 2. Протокол транспортировки данных современных камкордеров (SD$ DVCR Transport Protocol);

part 3. Протокол транспортировки потоков данных HD камкордеров (HD$DVCR Transport Protocol);

part 4. Протокол транспортировки потоков MPEG (включая DVB TS) для циф$ рового, спутникового и тому подобного телевидения;

part 5. Протокол транспортировки потоков SDL$DVCR (цифровое телевидение со сжатием данных);

part 6. Протокол транспортировки форматированных аудио$ и музыкальных по$ токов.

Спецификации AV/C

AV/C (Audio/Video Compatibility) — спецификации, обеспечивающие совмести$ мость аудио$видеоустройств с шиной IEEE 1394. Общая часть (General Speci$ fication) определяет команды управления бытовыми аудио$видео устройствами, используя архитектуру узла 1394. Расширение AV/C VCR Sub$unit относится к управляемым VCR и цифровым домашним видеосистемам. Эти спецификации призваны сократить многообразие индивидуальных описаний устройств, группи$ руя их в классы (например, ленточных и дисковых устройств). Спецификации AV/C находятся на сайте http://www.1394ta.org/Technology/Specifications, в их со$ ставе имеются следующие:

AV/C Asynchronous Connection Management — управление асинхронными со$ единениями (аналогичное управлению изохронными) для аудио$видеоуст$ ройств, нуждающихся в асинхронном обмене;

AV/C Asynchronous Connections — передача данных через асинхронные соеди$ нения;

AV/C Asynchronous Flow Control — управление потоком при асинхронной пе$ редаче;

AV/C Isochronous Rate Control — управление скоростью изохронных данных;

AV/C Printer Sub$unit — работа с принтерами;

AV/C Camera Sub$unit — работа с цифровыми видеокамерами;

AV/C Panel Sub$unit — использование экрана в качестве дисплея устройства (On$Screen Display);

AV/C Monitor Sub$unit — управление видеомониторами;

AV/C Audio Control Model — управление аудиоустройствами;

AV/C Super Audio CD Model — управление функциями Super Audio CD;

AV/C Changer Sub$unit — управление устройствами смены носителей (типа CD$ changer);

AV/C Tape Recorder Sub$unit — унифицированное управление ленточными записывающими устройствами. Заменяет спецификацию VCR sub$unit, имеет профили для стандартов DV, 8$миллиметровых лент, DVHS и т. п.;

AV/C Timer Operation — управление таймерами и планированием для событий и заданий;

AV/C Preset Sub$unit — установка предопределенных настроек для устройств;

AV/C Diagnostics Sub$unit — запуск и сообщение результатов тестирования устройств.

Защита передаваемой информации

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

«5C» — механизм защиты информации при цифровой передаче (digital trans$ mission copy protection mechanism), разработанный объединением пяти компа$ ний: Sony, Matsushita, Intel, Hitachi и Toshiba. Механизм включает в себя методы шифрования данных и управления ключами. Технология защищена патентами, информация по которым предоставляется только легальным производителям оборудования. Реализация технологии не требует слишком сложной логики и больших вычислительных ресурсов. Лицензиями управляет организация 5C Digital Transmission Licensing Authority (http://www.dtcp.com);

XCA Digital Transmission Copy Protection Mechanism — альтернативный вари$ ант защиты с использованием карт Smart Media в качестве ключевых элемен$ тов, предложенный Zenith/Thomson;

OCPS (Open Copy Protection system) — открытая система защиты с использо$ ванием шифрования DES, системы NDS, MRJ и др. В спецификациях AV/C есть субблокусловногодоступа(ConditionalAccessSub$unit),обеспечивающийдешиф$ рацию скремблированных видео$аудио потоков (http://www. 1394ta.org/).

Интерфейс «открытого» хост контроллера IEEE 1394 — OHCI

«Открытый» хост$контроллер (OHC 1394) представляет собой реализацию каналь$ ного уровня (LINK) шины IEEE 1394 с дополнительными средствами поддержки уровней транзакций и управления шиной. Для высокопроизводительного обмена данными OHC содержит контроллеры прямого доступа к памяти (DMA). Кон$ троллер поддерживает все типы пакетов, передаваемых по шине 1394. Данное опи$ сание основано на спецификации 1394 Open Host Controller Interface Specification, версия 1.1, 2000 год (ftp://ftp.austin.ibm.com/pub/chrptech/1394ohci).

Со стороны шины 1394 хост — узел с контроллером OHC — выглядит как обыч$ ный узел шины, способный выполнять функции мастера циклов и диспетчера изо$ хронных ресурсов. Контроллер позволяет хосту быть инициатором любых тран$ закций шины 1394 и отвечать на любые транзакции, адресованные узлу хоста. В адресном пространстве этого узла расположены архитектурные регистры CSR и память конфигурации; большая часть пространства доступна для обращений в виде обычных транзакций шины. Часть пространства узла может отображать про$ странство физических адресов памяти хоста. Часть обращений к хосту может отрабатываться исключительно аппаратными средствами контроллера; остальные обращения хост отрабатывает программно. Принимаемые пакеты запросов для про$ граммной отработки OHC своими каналами DMA помещает в буферы, размещен$ ные в памяти хоста. Пакеты ответов программа размещает в других буферах, из которых OHC организует их передачу в шину, опять же с помощью каналов DMA.

Для асинхронных транзакций контроллер обеспечивает чтение пакетов из систем$ ной памяти хоста и их передачу в шину; пакеты, принимаемые из шины, контрол$ лер записывает в системную память. Обмен производится с помощью каналов DMA. Контроллер может функционировать и как шинный мост, аппаратно отра$ батывая запросы транзакций чтения и записи шины 1394 как обращения к про$ странству памяти хоста.

Для изохронных операций OHC может исполнять роль мастера циклов, синхрони$ зируясь от внутреннего генератора синхронизации или (необязательно) от внеш$ него источника. Если OHC не исполняет роль мастера циклов, то он поддержива$ ет синхронизацию внутреннего таймера циклов с таймером узла$мастера циклов (по приему пакетов начала цикла). Для изохронных операций OHC имеет два кон$ троллера DMA — для приема и для передачи данных. Каждый из этих контролле$ ров может поддерживать до 32 каналов DMA, называемых контекстами DMA. Передающий контроллер в каждом цикле может передавать данные из каждого контекста для связанного с ним изохронного канала. Принимающий контроллер способен в каждом цикле принимать данные в каждый контекст из связанного с ним канала. Кроме того, один из принимающих контекстов может быть настроен на прием данных из множества каналов.

По обнаружении сброса на шине OHC автоматически очищает все очереди асин$ хронных пакетов для передачи; прием пакетов не прерывается, но в потоке паке$ тов запросов появляется маркер, индицирующий факт сброса. Новый физический идентификатор узла (PHY_ID), получаемый от PHY, контроллер записывает в со$ ответствующий регистр. Контроллер возобновит асинхронные передачи только по указанию программы, при этом повторное использование старых запросов в об$ щем случае невозможно: физический идентификатор узла назначения может из$ мениться. Изохронный прием и передача по сбросу не прекращаются — они возоб$ новляются сразу по завершении инициализации.

Устройство контроллера OHC

Упрощенная структурная схема OHC приведена на рис. 25.1.

Рис. 25.1. Структура контроллера OHC 1394

Интерфейс системной шины (Host Bus Interface) обеспечивает взаимодействие с контроллером в двух режимах:

ведомый режим (PCI Target), обеспечивающий программный доступ к регист$ рам контроллера со стороны центрального процессора хоста;

ведущий режим (PCI Bus Master), обеспечивающий контроллеру возможность прямого доступа к системной памяти хоста. В этом режиме интерфейс систем$ ной шины должен выдерживать поток данных, по крайней мере, базовой скоро$ сти S100 (100 Мбит/с) с накладными расходами на организацию прямого до$ ступа к памяти.

Контроллеры DMA обеспечивают обмен данными между шиной и системной па$ мятью. В OHC имеются семь типов контроллеров DMA:

контроллер асинхронной передачи (AT DMA);

контроллер асинхронного приема (AR DMA);

блок физических запросов, в который входят два контроллера:

контроллер приема аппаратно$обрабатываемых запросов (Physical Receive);

контроллер ответов для аппаратно$обрабатываемых запросов (Physical Res$ ponse);

контроллер изохронной передачи (IT DMA);

контроллер изохронного приема (IR DMA);

контроллер приема пакетов самоидентификации (Self_ID DMA).

Каждый контроллер работает со своими контекстами — наборами регистров, уп$ равляющих работой канала и выборкой запросов из списков, расположенных в си$ стемной памяти. Контроллеры асинхронной передачи и приема имеют отдельные контексты для запросов и ответов шинных транзакций. Контроллеры изохронно$ го приема и передачи могут иметь до 32 контекстов каждый. Назначение и работа контроллеров подробно описано ниже.

LINK уровень OHC передает пакеты из FIFO$буферов передающих каналов и от$ дает в FIFO принятые пакеты с корректным адресом, предназначенные данному узлу. Уровень выполняет следующие действия:

передает и принимает пакеты форматов IEEE 1394;

генерирует соответствующие пакеты квитирования для принятых асинхронных пакетов, отрабатывая однофазный или двухфазный протокол повторов (см. гла$ ву 18);

выполняет функции мастера циклов;

генерирует и проверяет корректность 32$битных CRC$кодов;

обнаруживает пропуски пакетов начала цикла;

взаимодействует с регистрами PHY;

принимает изохронные пакеты (все время);

игнорирует асинхронные пакеты во время изохронной фазы цикла.

Буферы FIFO, находящиеся между каналами DMA и LINK$уровнем, выполняют промежуточную буферизацию данных, считываемых из системной памяти для передачи в шину и принятых из шины для записи в память. Буферы FIFO обеспе$ чивают и согласование выравнивания данных, побайтного для хоста и поквадлетно$

го для шины 1394. При необходимости буферы FIFO вставляют байты$заполните$ ли, выравнивающие данные до границ квадлетов. Переполнение (overflow) или переопустошение (underrun) буферов (по вине интерфейса системной шины и па$ мяти), приводящее к потерям принимаемых или передаваемых пакетов, контро$ лируется аппаратными средствами OHC.

Буферы могут «на лету» выполнять преобразование форматов представления квад$ летов. Шина IEEE 1394 и, соответственно, LINK$уровень работают с квадлетами, представленными в формате Big Еndian (старший байт передается первым). Пере$ дача данных через хост$интерфейс может выполняться по выбору:

в формате Big Endian, используемом на платформах фирмы Apple;

в формате Little Endian (младший байт передается первым), используемом на платформах фирмы Intel.

Для поддержки функций управления OHC имеет 64$битный регистр уникального идентификатора (GUID, он же IEEE EUI$64), автоматически загружаемый из энергонезависимой памяти по сбросу контроллера (или однократно программи$ руемый в самом контроллере).

Для выполнения функций диспетчера изохронных ресурсов контроллер имеет че$ тыре автономных регистра, реализующих блокированные операции (compare_ swap) как со стороны шины, так и со стороны хоста.

Адресное пространство узла OHC

Карта адресного пространства узла 1394, являющегося контроллером OHC, при$ ведена на рис. 25.2. Здесь приведены 48$битные адреса — идентификатор узла, со$ ставляющий 16 старших бит адреса, опущен. Запросы со стороны шины к узлу отрабатываются либо аппаратно, блоком физических запросов, либо программно, средствами ПО узла. Программа хоста может фильтровать запросы, ограничивая список идентификаторов узлов, чьи обращения будут отрабатываться, и список узлов, чьи запросы будут отрабатываться аппаратно.

Рис. 25.2. Карта адресов узла OHC 1394

В карте имеются следующие области:

нижние адреса (Low Address Space), ограниченные сверху адресом physicalUpperBound. Обращение по шине к этим адресам отрабатывается блоком физи$

ческих запросов в соответствии с критериями, заданными фильтрами асинхрон$ ных запросов. Запись в эту область может выполняться как отправленная (Posted Write): контроллер может сразу ответить квитанцией ack_completed, не дожидаясь физической записи в память. Отправленная запись повышает про$ изводительность отработки транзакций. Если требуется надежное подтвержде$ ние, то контроллер отвечает квитанцией ack_pending и по реальному выполне$ нию записи пошлет пакет завершения транзакции. Верхняя граница задается

внеобязательном регистре physicalUpperBound; при его отсутствии размер об$ ласти принимается равным 4 Гбайт. Регистр позволяет увеличить размер обла$ сти. Область нижних адресов является окном, в котором хост$контроллер рабо$ тает в качестве моста между шинами 1394 и системной шиной хоста (PCI).

средние адреса (Middle Address Space) в диапазоне physicalUpperBound–FFFE FFFF FFFFh блоком физических запросов не обслуживаются. Обращения к ним отрабатываются программно, на запись в эту область контроллер квитанцией ack_completed не отвечает. Эта область используется для обмена данными

впакетных протоколах со своими механизмами подтверждения (например, TCP/IP).

верхние адреса (Upper Address Space) FFFF 0000 0000–FFFF EFFF FFFFh так$ же обслуживаются программно; на запрос записи в эту область контроллер от$ ветит квитанцией ack_pending. О завершении записи программа должна сооб$ щить посылкой пакета resp_complete. Эта область используется протоколами, требующими подтверждений.

область CSR FFFF F000 0000–FFFF FFFF FFFFh, в которой расположены ре$ гистры CSR и память конфигурации. Почти все запросы обрабатываются про$ граммно, за исключением запросов к автономным регистрам и памяти конфи$ гурации, которые отрабатываются как физические запросы.

Регистры OHC 1394

Регистры OHC предназначены для взаимодействия программ, исполняемых хос$ том, с контроллером шины 1394. Регистры OHC занимают 2048 байт в адресном пространстве хоста, их положение определяется из заголовка конфигурационного пространства PCI$устройства. Регистры доступны по чтению и записи только двой$ ными словами (32 бит). Для регистров OHC принята нумерация бит, обычная для устройств PCI: старший бит — 31 (изображается слева), младший бит — 0 (спра$ ва). Карта регистров приведена в табл. 25.1, назначение регистров приводятся в описании работы узлов контроллера.

Таблица 25.1. Карта регистров OHC 1394

Смещение

Назначение

000

Version, версия и возможности OHCI

004

GUID_ROM, доступ к ПЗУ идентификатора

008

ATRetries, параметры автоповтора при занятости

продолжение