Асинхронные устройства не имеют возможности согласования своей частоты выборок с метками SOF или иными частотами системы USB. Частота передачи данных у них фиксированная или программируемая. Число байт данных, принимаемых за каждый (микро)кадр USB, не является постоянным. Источник данных неявно сообщает свою скорость передачи данных числом выборок, генерируемых им за один (микро)кадр (клиентское ПО будет обрабатывать столько данных, сколько реально поступило). Приемник данных должен обеспечивать обратную связь для адаптивного драйвера клиентского ПО, чтобы согласовать темп выдачи потока (см. ниже). Примерами асинхронного устройства-источника может быть CD-плейер с синхронизацией от кварцевого генератора или приемник спутникового телевещания. Пример приемника — дешевые колонки, работающие от внутреннего источника синхронизации.
Синхронные устройства имеют внутренний генератор, синхронизируемый с метками SOF (системная частота 1 кГц); на высокой частоте передачи более точную синхронизацию обеспечивает связь с микрокадрами. Источники и приемники за каждый (микро)кадр генерируют (потребляют) одинаковое количество байт данных, которое устанавливается на этапе программирования каналов. Примером синхронного источника может быть цифровой микрофон с частотой выборки, синтезируемой по SOF.
Адаптивные устройства имеют возможность подстройки своей внутренней частоты под требуемый поток данных (в определенных границах). Адаптивный источник позволяет менять скорость под управлением приемника, обеспечивающего обратную связь. Для адаптивного приемника информацию о частоте задает входной поток данных. Он определяет мгновенное значение частоты по количеству данных, принятых за некоторый интервал усреднения. Примером адаптивного источника является CD-плейер со встроенным согласователем частоты SRC (sample rate converter) приемника — высококачественные колонки или наушники USB.
Обратная связь позволяет согласовать значения частот устройств с частотой шины. Асинхронный приемник должен явным образом сообщать хост-контроллеру желаемую частоту передачи данных относительно частоты (микро)кадров. Это позволит хост-контроллеру постоянно корректировать число передаваемых байт за каждый (микро)кадр, не допуская переполнения или опустошения буфера устройства-приемника. Адаптивный передатчик должен воспринимать информацию обратной связи, чтобы за каждый (микро)кадр генерировать ровно столько данных, сколько требуется хост-контроллеру. Для обратной связи в устройстве выделяется специальная конечная точка, через которую периодически передается информация о текущем значении желаемой относительной частоты.
В принципе контроллер USB может подстраивать частоту кадров, но, естественно, под частоту внутренней синхронизации только одного устройства. Подстройка осуществляется через механизм обратной связи, который позволяет изменять период кадра в пределах ±1 битового интервала.
Хост
У каждой шины 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.
17 страниц…… аффтор удавись своей баннерной жлобностью — сам читай!
А вы предпочли бы выскакивающую рекламу с видео на пол экрана?
— 17 страниц удобно разбиты) А банеры это мелочи по сравнению с другими сайтами)
Грех жаловаться, на этом сайте в отличае от многих других всего 2 маленьких баннера в конце страницы
Или Вы предпочтёте читать огромную статью где баннеры сверху, справа, слева, под текстом, в тексте и ещё пара всплывающих по середине страницы вылезут