Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






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


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

источник синхронизации будем считать главным (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 кГц); на высокой частоте передачи более точную


4.1. Шина USB_______________________________________________________ 99

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

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

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

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

Хост

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

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

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


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

полосы пропускания и мощности источников питания (для устройств, пита­ющихся от шины). Система состоит из трех основных частей:

Драйвер хост-контроллера — 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 и хостом. Программная часть хоста в полном объеме реализуется операционной


4.1. Шина USB

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

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

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

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

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






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.