Шина IEEE 1394 - FireWire

 

Стандарт для высокопроизводительной последовательной шины (High Performance Serial Bus), получивший официальное название IEEE 1394, был принят в 1995 го­ду. Целью являлось создание шины, не уступающей параллельным шинам при существенном удешевлении и повышении удобства подключения (за счет перехо­да на последовательный интерфейс). Стандарт основан на шине FireWire, исполь­зуемой Apple Computer в качестве дешевой альтернативы SCSI в компьютерах Macintosh и PowerMac. Название FireWire («огненный провод») теперь применя­ется и к реализациям IEEE 1394, оно сосуществует с кратким обозначением 1394. Другое название того же интерфейса — iLink, а иногда и Digital Link — использует­ся фирмой Sony применительно к устройствам бытовой электроники. MultiMedia Connection — имя, используемое в логотипе 1394 High Performance Serial Bus Trade Association (1394TA).

Стандарт 1394 определяет три возможные частоты передачи сигналов по кабелям: 98,304, 196,608 и 393,216 Мбит/с, которые округляют до 100, 200 и 400 Мбит/с. Частоты в стандарте обозначаются как S100, S200 и S400 соответственно. В послед­ней утвержденной ревизии стандарта, Р1394-2000, новых скоростей (S800, S1600 и S3200) еще не появилось, и сейчас 1394 сосуществует с шиной USB, для которой в спецификации USB 2.0 уже определена скорость 480 Мбит/с.

Основные свойства шины FireWire перечислены ниже.

♦. Многофункциональность. Шина обеспечивает цифровую связь до 63 устройств без применения дополнительной аппаратуры (хабов). Устройства бытовой электроники — цифровые камкордеры (записывающие видеокамеры), камеры для видеоконференций, фотокамеры, приемники кабельного и спутникового телевидения, цифровые видеоплейеры (CD и DVD), акустические системы, цифровые музыкальные инструменты, а также периферийные устройства ком­пьютеров (принтеры, сканеры, устройства дисковой памяти) и сами компью­теры могут объединяться в единую сеть.

♦ Высокая скорость обмена и изохронные передачи. Шина позволяет даже на на­
чальном уровне (S100) передавать одновременно два канала видео (30 кадров в секунду) широковещательного качества и стерео-аудиосигнал с качеством CD.

♦ Низкая цена компонентов и кабеля.

♦ Легкость установки и использования. FireWire расширяет технологию PnP. Си­стема допускает динамическое (горячее) подключение и отключение устройств.
Устройства автоматически распознаются и конфигурируются при включении/
отключении. Питание от шины (ток до 1,5 А) позволяет подключенным устрой­ствам общаться с системой даже при отключении их питания. Управлять шиной и другими устройствами могут не только PC, но и другие «интеллектуальные» устройства бытовой электроники.

FireWire по инициативе VESA позиционируется как шина «домашней сети», объе­диняющей всю бытовую и компьютерную технику в единый комплекс. Эта сеть является одноранговой (peer-to-peer), чем существенно отличается от USB.

Литература:
ГукМ., Г93 Аппаратные интерфейсы ПК. Энциклопедия. — СПб.: Питер, 2002. — 528 с.: ил.

Разработка собственных устройств USB

 

Несмотря на довольно сложный протокол обмена, интерфейсом USB можно снаб­дить и периферийные устройства собственной разработки. Для этого выпускается широкий ассортимент микросхем, со стороны USB различающихся скоростями обмена (LS, FS или HS), числом и возможностями конечных точек (тип передач, размер буфера). Функциональное назначение этих микросхем различно. С пор­том USB выпускаются микроконтроллеры на ядре MCS51, М68НС05, М68НС11 или RISC-архитектуры; они различаются объемом памяти (оперативной и энер­гонезависимой), производительностью, питанием, потреблением. Микроконтрол­леры могут иметь встроенные устройства АЦП/ЦАП, дискретные линии ввода-вывода общего назначения, последовательные и параллельные порты различных типов. Их можно использовать для подключения устройств с любыми интерфей­сами, сигнальных процессоров и т. п. Из этого ассортимента можно выбрать под­ходящую микросхему, на базе которой разрабатываемое устройство будет реали­зовано с минимальным числом дополнительных элементов. К микроконтроллерам прилагаются и средства разработки их встроенного ПО (firmware) — самой сложной части такого устройства. Есть микроконтроллеры с USB, способные работать без программирования энергонезависимой памяти; микроконтроллеры серии EzUSB фирмы Cypress Semiconductor каждый раз загружают свою программу в ОЗУ по шине USB из хост-компьютера в процессе подключения. Конечно, такая гибкость нужна не всегда, и до подключения к компьютеру устройство остается «мертвым».

Есть и периферийные микросхемы — порты USB, подключаемые к микроконтрол­лерам параллельной 8/16-битной шиной данных с обычным набором управляющих сигналов (CS#, RD#, WR#...), линией запроса прерывания и, возможно, сигналами канала DMA. Выпускаются и специализированные преобразователи интерфейсов USB в последовательный (RS-232, RS-422/485) и параллельный, не требующие программирования (нужно лишь записать в EEPROM идентификатор устрой­ства). Есть и микросхемы USB, сочетающие в себе и функции, и хабы. Все вариан­ты не перечислить, тем более что все время появляются новые микросхемы. Инфор­мацию о них можно найти в Сети (www.cypress.com, www.devasys.com, www.iged.com, www.microchip.com, www.netchip.com, www.motorola.com, www.semiconductor.philips.com, www.natsemi.com, www.intel.com, www.ftdichip.com, www.gigatechnology.com). Немаловажная часть разработки собственных устройств — программное обеспе­чение для хост-компьютера, которое доносит до пользователя всю пользу устрой­ства. В ряде случаев удается воспользоваться готовыми драйверами (например, драйвером виртуального СОМ-порта для преобразователя интерфейса). В других случаях ПО приходится писать самостоятельно, и хорошо, когда изготовитель микросхем с USB заботится о предоставлении инструментальных средств разра­ботки всех частей ПО.

Литература:
ГукМ., Г93 Аппаратные интерфейсы ПК. Энциклопедия. — СПб.: Питер, 2002. — 528 с.: ил.

Применение шины USB

 

Благодаря своей универсальности и способности эффективно передавать разнород­ньш трафик, шина USB применяется для подключения к PC самых разнообразных устройств. Она призвана заменить традиционные порты PC — СОМ и LPT, а так­же порты игрового адаптера и интерфейса MIDI. Спецификация USB 2.0 позво­ляет говорить и о подключении традиционных «клиентов» шин АТА и SCSI, а так­же захвате части ниши применения шины FireWire. Привлекательность USB придает возможность подключения/отключения устройств на ходу и возможность их использования практически сразу, без перезагрузки ОС. Удобна и возможность подключения большого количества (до 127) устройств к одной шине, правда, при наличии хабов. Хост-контроллер интегрирован в большинство современных системных плат. Выпускаются и карты расширения с контроллерами USB (обычно для шины PCI). Однако повсеместное применение USB сдерживается недостаточ­ной активностью разработчиков ПО (производителей оборудования): просматри­вая перечни устройств, мы видим, что для всех указывается поддержка в Win­dows 98/SE/ME, а вот в графах Linux, MacOS, Unix и даже Windows 2000 часто стоят неприятные пометки N/A (Not Allowed — «не дозволено»). Для того чтобы система USB заработала, необходимо, чтобы были загружены драйверы хост-контроллера (или контроллеров, если их несколько). При подклю­чении устройства к шине USB ОС Windows выдает сообщение «Обнаружено но­вое устройство» и, если устройство подключается впервые, предлагает загрузить для него драйверы. Многие модели устройств уже известны системе, и драйверы входят в дистрибутив ОС. Однако может потребоваться и драйвер изготовителя устройства, который должен входить в комплект поставки устройства, или его придется искать в Сети. К сожалению, не все драйверы работают корректно — «сырой» драйвер начальной версии, возможно, потребуется заменить более «пра­вильным», чтобы устройство нормально опознавалось и хорошо работало. Но это общее горе пользователей любых устройств, а не только устройств для шины USB.

Перечислим основные области применения USB.

♦ Устройства ввода — клавиатуры, мыши, трекболы, планшетные указатели
и т. п. Здесь USB предоставляет для различных устройств единый интерфейс.
Целесообразность использования USB для клавиатуры неочевидна, хотя в паре с мышью USB (подключаемой к порту хаба, встроенного в клавиатуру) сокраща­ется количество кабелей, тянущихся от системного блока на стол пользователя.

♦ Принтеры. USB 1.1 обеспечивает примерно ту же скорость, что и LPT-порт
в режиме ЕСР, но при использовании USB не возникает проблем с длиной ка­беля и подключением нескольких принтеров к одному компьютеру (правда, требуются хабы). USB 2.0 позволит ускорить печать в режиме высокого разре­шения за счет сокращения времени на передачу больших массивов данных.
Однако есть проблема со старым ПО, которое непосредственно работает с LPT-
портом на уровне регистров, — на принтер USB оно печатать не сможет.

♦ Сканеры. Применение USB позволяет отказаться от контроллеров SCSI или от занятия LPT-порта. USB 2.0 при этом позволит еще и повысить скорость передачи данных.

♦ Аудиоустройства — колонки, микрофоны, головные телефоны (наушники).
USB позволяет передавать потоки аудиоданных, достаточные для обеспечения самого высокого качества. Передача в цифровом виде от самого источника сиг­нала (микрофона со встроенным преобразователем и адаптером) до приемни­ка и цифровая обработка в хост-компьютере позволяют избавиться от наводок, свойственных аналоговой передачи аудиосигналов. Использование этих аудио-компонентов позволяет в ряде случаев избавиться от звуковой карты ком­пьютера — аудиокодек (АЦП и ЦАП) выводится за пределы компьютера, а все функции обработки сигналов (микшер, эквалайзер) реализуются центральным процессором чисто программно. Аудиоустройства могут и не иметь собствен­но колонок и микрофона, а ограничиться преобразователями и стандартными гнездами («Джеками») для подключения обычных аналоговых устройств.

♦ Музыкальные синтезаторы и MIDI-контроллеры с интерфейсом USB. Шина USB позволяет компьютеру обрабатывать потоки множества каналов MIDI (пропускная способность традиционного интерфейса MIDI уже гораздо ниже возможностей компьютера).

♦ Видео- и фотокамеры. USB 1.1 позволяет передавать статические изображения любого разрешения за приемлемое время, а также передавать поток видеодан­ных (живое видео) с достаточной частотой кадров (25-30 Кбит/с) только с невысоким разрешением или сжатием данных, от которого, естественно, стра­дает качество изображения. USB 2.0 позволяет передавать поток видеоданных высокого разрешения без сжатия (и потери качества). С интерфейсом USB выпускают как камеры, так и устройства захвата изображения с телевизионно­го сигнала и TV-тюнеры.

♦ Коммуникации. С интерфейсом USB выпускают разнообразные модемы, вклю­чая кабельные и xDSL, адаптеры высокоскоростной инфракрасной связи (IrDA FIR) — шина позволяет преодолеть предел скорости СОМ-порта (115,2 Кбит/с), не повышая загрузку центрального процессора. Выпускаются и сетевые адапте­ры Ethernet, подключаемые к компьютеру по USB. Для соединения нескольких компьютеров в локальную сеть выпускаются специальные устройства, выпол­няющие коммутацию пакетов между компьютерами. Непосредственно (без дополнительных устройств) портами USB соединить между собой даже два компьютера нельзя — на одной шине может присутствовать лишь один хост-контроллер (см. выше). Специальное устройство для связи пары компьютеров выглядит как «таблетка», врезанная в кабель USB с двумя вилками типа «А»
на концах. Объединение более двух компьютеров осложняется и топологиче­
скими ограничениями USB: длина одного сегмента кабеля не должна превышать 5 м, а использовать хабы для увеличения дальности неэффективно (каждый хаб дает всего 5 м дополнительного удаления).

♦ Преобразователи интерфейсов позволяют через порт USB, имеющийся теперь практически на всех компьютерах, подключать устройства с самыми разнообраз­ными интерфейсами: Centronics и IEEE 1284 (LPT-порты), RS-232C (эмуляция UART 16550A — основы СОМ-портов) и другие последовательные интерфей­сы (RS-422, RS-485, V.35...), эмуляторы портов клавиатуры и даже Game-порта, переходники на шину AT A, ISA, PC Card и любые другие, для которых достаточ­но производительности. Здесь USB становится палочкой-выручалочкой, ког­да встает проблема 2-го (3-го) LPT- или СОМ-порта в блокнотном ПК и в дру­гих ситуациях. При этом ПО преобразователя может обеспечить эмуляцию
классического варианта «железа» стандартных портов IBM PC, но только под управлением ОС защищенного режима. Приложение MS-DOS может обращать­ся к устройствам по адресам ввода-вывода, памяти, прерываниями, каналами DMA, но только из сеанса MS-DOS, открытого в ОС с поддержкой USB (чаще это Windows). При загрузке «голой» MS-DOS «палочка-выручалочка» не ра­ботает. Преобразователи интерфейсов позволяют продлить жизнь устройствам с традиционными интерфейсами, изживаемыми из PC спецификациями РС'99 и РС'2001. Скорость передачи данных через конвертер USB — LPT может оказаться даже выше, чем у реального LPT-порта, работающего в режиме SPP.

♦ Устройства хранения — винчестеры, устройства чтения и записи CD и DVD, стриммеры — при использовании USB 1.1 получают скорость передачи, соизме­римую со скоростью их подключения к LPT, но более удобный интерфейс (как аппаратный, так и программный). При переходе на USB 2.0 скорость передачи данных становится соизмеримой с АТА и SCSI, а ограничений по количеству устройств достичь трудно. Особенно интересно использование USB для элек­тронных устройств энергонезависимого хранения (на флэш-памяти) — такой накопитель может быть весьма компактным (размером с брелок для ключей) и емким (пока 16-256 Мбайт, в перспективах — гигабайт и более). Выпускаются устройства для мобильного подключения накопителей с интерфейсом АТА-ATAPI — по сути, это лишь преобразователи интерфейсов, помещенные в короб­
ку-отсек формата 5" или 3,5", а иногда выполненные прямо в корпусе 36-контакт­ного разъема АТА. Имеются и устройства чтения-записи карт SmartMedia Card и CompactFlash Card.

♦ Игровые устройства — джойстики всех видов (от «палочек» до автомобильных рулей), пульты с разнообразными датчиками (непрерывными и дискретными) и исполнительными механизмами (почему бы не сделать кресло автогонщика с вибраторами и качалками?) — подключаются унифицированным способом. При этом исключается ресурсопожирающий интерфейс старого игрового адап­тера (упраздненного уже в спецификации РС'99).

♦ Телефоны — аналоговые и цифровые (ISDN). Подключение телефонного аппа­рата позволяет превратить компьютер в секретаря с функциями автодозвона, автоответчика, охраны и т. п.

♦ Мониторы — здесь шина USB используется для управления параметрами мо­нитора. Монитор сообщает системе свой тип и возможности (параметры син­хронизации) — это делалось и без USB по шине DDC. Однако USB-мониторы позволяют системе еще и управлять ими — регулировки яркости, контраста, цветовой температуры и т. п. могут теперь выполняться программно, а не толь­ко от кнопок лицевой панели монитора. В мониторы, как правило, встраивают хабы. Это удобно, поскольку настольную периферию не всегда удобно вклю­чать в «подстольный» системный блок.

♦ Электронные ключи — устройства с любым уровнем интеллектуальности защи­ты — могут быть выполнены в корпусе вилок USB. Они гораздо компактнее и мобильнее аналогичных устройств для СОМ- и LPT-портов.

Конечно же, перечисленными классами устройств сфера применения шины USB не ограничивается.

Хабы USB выпускаются как в виде отдельных устройств, так и встраиваются в пе­риферийные устройства (клавиатуры, мониторы). Как правило, хабы питаются от сети переменного тока (они должны питать подключаемые устройства). Выпус­кают и хабы, устанавливаемые внутрь системного блока компьютера и питающиеся от его блока питания. Такие хабы дешевле внешних и не требуют дополнительной питающей розетки. Один из вариантов исполнения — установка хаба на скобку, монтируемую в окно для дополнительных разъемов. Доступ к их разъемам со «спи­ны» системного блока не очень удобен для пользователей. Другой вариант — хаб, устанавливаемый в 3"-отсек. Его разъемы легкодоступны, индикаторы состояния портов хорошо видны, но не всегда удобны кабели, выходящие с передней панели системного блока. С другой стороны, для подключения электронных ключей (если их приходится часто менять) или миниатюрных накопителей этот вариант — самый удобный.

Недавно появились и новые вспомогательные устройства, увеличивающие даль­ность связи (distance extender). Это пара устройств, соединяемых между собой обычным кабелем «витая пара» (или оптоволокном), включаемая между перифе­рийным устройством и хабом. «Удлинитель» со стороны периферии может иметь и хаб на несколько портов. К сожалению, увеличение дистанции упирается в огра­ничения на время задержки сигнала, свойственные протоколу шины USB, и до­стижимо лишь удаление до 100 м. Но даже и эта длина позволяет расширить сферу применения USB, например для удаленного видеонаблюдения.

Литература:
ГукМ., Г93 Аппаратные интерфейсы ПК. Энциклопедия. — СПб.: Питер, 2002. — 528 с.: ил.

Хост-USB

 

У каждой шины USB должен быть один (и только один!) хост — компьютер с кон­троллером USB. Хост делится на три основных уровня.

♦ Интерфейс шины USB обеспечивает физический интерфейс и протокол шины.
Интерфейс шины реализуется хост-контроллером, имеющим встроенный корне­
вой хаб, обеспечивающий точки физического подключения к шине (гнезда USB
типа «А»). Хост-контроллер отвечает за генерацию (микро)кадров. На аппарат­
ном уровне хост-контроллер обменивается информацией с основной памятью
компьютера, используя прямое управление шиной (bus-mastering) с целью
минимизации нагрузки на центральный процессор.

♦ Система USB, используя хост-контроллер(ы), транслирует клиентское «виде­ние» обмена данными с устройствами в транзакции, выполняемые с реальны­ми устройствами шины. Система отвечает и за распределение ресурсов USB — полосы пропускания и мощности источников питания (для устройств, пита­ющихся от шины). Система состоит из трех основных частей:

• Драйвер хост-контроллера — HCD (Host Controller Driver) — модуль, при­вязанный к конкретной модели контроллера, обеспечивающий абстрагиро­вание драйвера USB и позволяющий в одну систему включать несколько разнотипных контроллеров.

• Драйвер USB — USBD (USB Driver) — обеспечивает основной интерфейс (USBDI) между клиентами и устройствами USB. Интерфейс HCDI (Host Controller Driver Interface) между USBD и HCD спецификацией USB не регламентируется. Он определяется разработчиками ОС и должен поддержи­ваться разработчиками хост-контроллеров, желающих иметь поддержку сво­их изделий конкретными ОС. Клиенты не могут пользоваться интерфей­сом HCDI; для них предназначен интерфейс USBDI. USBD обеспечивает механизм обмена в виде пакетов IRP (I/O Request Packet — пакет запроса ввода-вывода), состоящих из запросов на транспортировку данных по за­данному каналу. Кроме того, USBD отвечает за некоторое абстрактное пред­ставление устройства USB клиенту, которое позволяет выполнять конфи­гурирование и управление состоянием устройств (включая и стандартное
управление через конечную точку «О»). Реализация интерфейса USBDI
определяется операционной системой; в спецификации USB излагаются
только общие идеи.

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

♦ Клиенты USB — программные элементы (приложения или системные компо­ненты), взаимодействующие с устройствами USB. Клиенты могут взаимодей­ствовать с любыми устройствами (их конечными точками), подключенными к системе USB. Однако система USB изолирует клиентов от непосредственного обмена с какими-либо портами (в пространстве ввода-вывода) или ячейками памяти, представляющими интерфейсную часть контроллера USB.

В совокупности уровни хоста имеют следующие возможности:

♦ обнаружение подключения и отсоединения устройств USB;

♦ манипулирование потоками управления между устройствами и хостом;

♦ манипулирование потоками данных;

♦ сбор статистики активности и состояний устройств;

♦ управление электрическим интерфейсом между хост-контроллером и устрой­
ствами USB, включая управление электропитанием.

Хост-контроллер является аппаратным посредником между устройствами USB и хостом. Программная часть хоста в полном объеме реализуется операционной системой. До загрузки ОС может функционировать лишь усеченная часть ПО USB, поддерживающая только устройства, требующиеся для загрузки. Так, в BIOS современных системных плат имеется поддержка клавиатуры USB, реализующая функции сервиса Int 10h. При загрузке системы USB эта «дозагрузочная» под­держка игнорируется — система начинает работу с контроллером «с чистого лис­та», то есть со сброса и определения всех подключенных устройств. По окончании работы ОС передача состояния USB «дозагрузочной» поддержке не предусмат­ривается, так что для нее это событие тоже может рассматриваться как первона­чальное включение. В спецификации РС'2001 выдвигается требование к BIOS поддержки USB в такой мере, чтобы обеспечивалась загрузка ОС с устройств USB. USB поддерживает динамическое подключение и отключение устройств. Нуме­рация (перенумерация) устройств шины идет постоянно, отслеживая изменения физической топологии.

Все устройства подключаются через порты хабов. Хабы определяют подключение и отключение устройств к своим портам и сообщают состояние портов при запро­се от контроллера. Хост разрешает работу порта и адресуется к устройству через канал управления, используя нулевой адрес — USB Default Address. При началь­ном подключении или после сброса все устройства адресуются именно так.

Хост определяет, является новое подключенное устройство хабом или функцией, и назначает ему уникальный адрес USB. Хост создает канал управления (control pipe) с этим устройством, используя назначенный адрес и нулевой номер точки назначения.

Если новое устройство является хабом, хост определяет подключенные к нему устройства, назначает им адреса и устанавливает каналы. Если новое устройство является функцией, уведомление о подключении передается диспетчером USB заинтересованному ПО.

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

Литература:
ГукМ., Г93 Аппаратные интерфейсы ПК. Энциклопедия. — СПб.: Питер, 2002. — 528 с.: ил.

Синхронизация при изохронной передаче

 

Изохронная передача данных связана с синхронизацией устройств, объединяемых в единую систему. Возьмем пример использования USB, когда к компьютеру подключен микрофон USB (источник данных) и колонки USB (приемник дан­ных), и эти аудиоустройства связаны между собой через программный микшер (клиентское ПО). Каждый из этих компонентов может иметь собственные «поня­тия» о времени и синхронизации: микрофон, к примеру, может иметь частоту выборки 8 кГц и разрядность данных 1 байт (поток 64 Кбит/с), стереоколонки — 44,1 кГц и разрядность 2x2 байта (176,4 Кбит/с), а микшер может работать на ча­стоте выборок 32 кГц. Микшер в этой системе является связующим звеном, и его источник синхронизации будем считать главным (master clock). Программный микшер обрабатывает данные пакетами, сеансы обработки выполняются регуляр­но с определенным периодом обслуживания (скажем, в 20 мс — частота 50 Гц). В микшере должны быть модули согласования частот выборки, которые объеди­няют несколько выборок в одну, если входная частота выше выходной, или «сочи­няют» (интерполируют) новые промежуточные выборки, если выходная частота выше. В системе с USB приходится иметь дело со следующими частотами:

♦ частота выборки (sample rate) для источников (source) и приемников (sink)
данных;

♦ частота шины USB — частота кадров (1 кГц) для полной скорости и микрокад­ров (8 кГц) для высокой (с этой частотой все устройства USB «видят» марке­ры начала (микро)кадров SOF);

♦ частота обслуживания — частота, с которой клиентское ПО обращается к драй­верам USB для передачи и приема изохронных данных.

В системе без общего источника синхронизации между парами синхросигналов возможны отклонения следующих типов:

♦ дрейф (drift) — отклонения формально одинаковых частот от номиналов (не бывает двух абсолютно одинаковых генераторов);

♦ дрожание (jitter) — колебание частот относительно номинала;

♦ фазовый сдвиг, если сигналы не связаны системой фазовой автоподстройки
ФАПЧ (PLL).

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

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

Синхронные устройства имеют внутренний генератор, синхронизируемый с мет­ками SOF (системная частота 1 кГц); на высокой частоте передачи более точную синхронизацию обеспечивает связь с микрокадрами. Источники и приемники за каждый (микро)кадр генерируют (потребляют) одинаковое количество байт дан­ных, которое устанавливается на этапе программирования каналов. Примером синхронного источника может быть цифровой микрофон с частотой выборки, синтезируемой по SOF.

Адаптивные устройства имеют возможность подстройки своей внутренней частоты под требуемый поток данных (в определенных границах). Адаптивный источник позволяет менять скорость под управлением приемника, обеспечи­вающего обратную связь. Для адаптивного приемника информацию о частоте задает входной поток данных. Он определяет мгновенное значение частоты по ко­личеству данных, принятых за некоторый интервал усреднения. Примером адап­тивного источника является CD-плейер со встроенным согласователем частоты SRC (sample rate converter) приемника — высококачественные колонки или на­ушники USB.

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

В принципе контроллер USB может подстраивать частоту кадров, но, естествен­но, под частоту внутренней синхронизации только одного устройства. Подстрой­ка осуществляется через механизм обратной связи, который позволяет изменять период кадра в пределах ±1 битового интервала.

Литература:
ГукМ., Г93 Аппаратные интерфейсы ПК. Энциклопедия. — СПб.: Питер, 2002. — 528 с.: ил.

Типы передач данных USB

 

Архитектура USB допускает четыре базовых типа передачи данных.

♦ Управляющие посылки (control transfers) используются для конфигурирования устройств во время их подключения и для управления устройствами в процес­се работы. Протокол обеспечивает гарантированную доставку данных.

♦ Передачи массивов данных (bulk data transfers) — это передачи без каких-либо обязательств по задержке доставки и скорости передачи. Передачи массивов могут занимать всю полосу пропускания шины, свободную от передач других типов. Приоритет этих передач самый низкий, они могут приостанавливаться при большой загрузке шины. Доставка гарантированная — при случайной ошибке выполняется повтор. Передачи массивов уместны для обмена данны­ми с принтерами, сканерами, устройствами хранения и т. п.

♦ Прерывания (interrupt) — короткие передачи, которые имеют спонтанный ха­рактер и должны обслуживаться не медленнее, чем того требует устройство.
Предел времени обслуживания устанавливается в диапазоне 10-255 мс для
низкой, 1-255 мс для полной скорости, на высокой скорости можно заказать и 125 мкс. При случайных ошибках обмена выполняется повтор. Прерывания используются, например, при вводе символов с клавиатуры или для передачи сообщения о перемещении мыши.

♦ Изохронные передачи (isochronous transfers) — непрерывные передачи в реаль­ном времени, занимающие предварительно согласованную часть пропускной способности шины с гарантированным временем задержки доставки. Позволя­ют на полной скорости организовать канал с полосой 1,023 Мбайт/с (или два по 0,5 Мбайт/с), заняв 70 % доступной полосы (остаток можно заполнить и менее емкими каналами). На высокой скорости конечная точка может полу­чить канал до 24 Мбайт/с (192 Мбит/с). В случае обнаружения ошибки изо­хронные данные не повторяются — недействительные пакеты игнорируются. Изохронные передачи нужны для потоковых устройств: видеокамер, цифро­вых аудиоустройств (колонки USB, микрофон), устройств воспроизведения и записи аудио- и видеоданных (CD и DVD). Видеопоток (без компрессии) шина
USB способна передавать только на высокой скорости.

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

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

Литература:
ГукМ., Г93 Аппаратные интерфейсы ПК. Энциклопедия. — СПб.: Питер, 2002. — 528 с.: ил.

Протокол USB

 

Все обмены (транзакции) с устройствами USB состоят из двух-трех пакетов. Каж­дая транзакция планируется и начинается по инициативе контроллера, который посылает пакет-маркер (token packet). Он описывает тип и направление переда­чи, адрес устройства USB и номер конечной точки. В каждой транзакции возмо­жен обмен только между адресуемым устройством (его конечной точкой) и хос­том. Адресуемое маркером устройство распознает свой адрес и готовится к обмену-Источник данных (определенный маркером) передает пакет данных (или уведом­ление об отсутствии данных, предназначенных для передачи). После успешного" приема пакета приемник данных посылает пакет квитирования (handshake packet )? Последовательность пакетов в транзакциях иллюстрирует рис. 4.4. Хост-контроллер организует обмены с устройствами согласно своему плану рас­пределения ресурсов. Контроллер циклически (с периодом 1,0±0,0005 мс) форми-рует кадры (frames), в которые укладываются все запланированные транзакции (рис. 4.5). Каждый кадр начинается с посылки маркера SOF (Start Of Frame), который является синхронизирующим сигналом для всех устройств, включая хабы. В конце каждого кадра выделяется интервал времени EOF (End Of Frame), на вре­мя которого хабы запрещают передачу по направлению к контроллеру. В режиме HS пакеты SOF передаются в начале каждого микрокадра (период 125±0,0625 мкс). Хост планирует загрузку кадров так, чтобы в них всегда находилось место для транзакций управления и прерываний. Свободное время кадров может заполнять­ся передачами массивов (bulk transfers). В каждом (микро)кадре может быть вы­полнено несколько транзакций, их допустимое число зависит от длины поля дан­ных каждой из них.

clip_image002

Рис. 4.5. Поток кадров USB

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

Все подробности организации транзакций от клиентского ПО изолируются кон­троллером USB и его системным программным обеспечением.

Литература:
ГукМ., Г93 Аппаратные интерфейсы ПК. Энциклопедия. — СПб.: Питер, 2002. — 528 с.: ил.