Синхронизация при изохронной передаче
Изохронная передача данных связана с синхронизацией устройств, объединяемых в единую систему. Возьмем пример использования 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 битового интервала.