Спецификация USB.Rev1.0

Обратная связь


Асинхронный сток обеспечивает обратную связь к адаптивному источнику,  указывая точно, какая требуется скорость передачи данных (Ff), относительно SOF частота USB (An asynchronous sink provides feedback to an adaptive source by indicating accurately what its desired data rate (Ff) is, relative to the USB SOF frequency.) При требуемой скорости передачи данных точность должна быть лучше чем одна выборка за секунду (1 Hz),что позволит создание скорости высоко качественного источника и допустить задержки и ошибки в цикле обратной связи.(The required data rate is accurate to better than one sample per second (1 Hz) in order to allow a high quality source rate to be created and to tolerate delays and errors in the feedback loop.)

Значение Ff

состоит из дробной части, которая получает требуемую разрешающую способность с 1 кГц кадрами , и целой части, которая дает минимальное число выборок на кадр.(The Ff value consists of a fractional part, in order to get the required resolution with 1 kHz frames, and an integer part, which gives the minimum number of samples per frame.) Требуется десять битов, чтобы разрешить одну выборку внутри кадра с частотой 1 кГц (1000 / 2 ^ 10 = 0.98).(Ten bits are required to resolve one sample within a 1 kHz frame frequency ). Это 10 битное дробное, представлено в беззнаковом виде с фиксированной точкой в 0.10 формате.(This is a 10 bit fraction, represented in unsigned fixed binary point 0.10 format.) В целочисленной части необходимо иметь 10 бит (2^10=1024) чтобы кодировать до 1023 1-байтовых выборок за кадр. Это 10 битное целое , представлена в беззнаковом виде с фиксированной точкой в 10.0 формате. Объединенное значение Ff может быть закодировано в беззнаковом виде с фиксированной точкой в 10.10 формате, который вписываться в три байта (24 бита). Так как максимальное целочисленное значение фиксировано 1023, число 10.10  будет выровнено по левому краю в 24 битах, так, чтобы оно имело 10.14 формат.(Since the maximum integer value is fixed to 1023, the 10.10 number will be left-justified in the 24 bits, so that it has a 10.14 format.) Требуются только первые 10 битов позади двоичной точки. Младшие 4 бита могут необязательно использоваться, чтобы расширить точность Ff; иначе, они должны быть сообщены как 0. Упорядочивание бит и байт придерживается определениями других многобайтовых полей, содержащихся в Главе 8.(The bit and byte ordering follows the definitions of other multi-byte fields contained in Chapter 8.)


Каждый кадр, адаптивный источник добавляет Ff к любому оставшемуся дробному счету выборки из предыдущего кадра, число выборок источники суммируют в целой части, и сохраняет дробный счет выборки для следующего кадра.(Each frame, the adaptive source adds Ff to any remaining fractional sample count from the previous frame, sources the number of samples in the integer part of the sum, and retains the fractional sample count for the next frame.) Источник может рассматривать поведение Ff во многих кадрах, чтобы определить более точно скорость, если это требуется.

Сток может определять Ff, считая циклы часов с частотой Fs * 2 ^ P за период в 2 ^ (10-P) кадрах, где P - целое число.  P фактически должен быть в диапазоне [0,10], потому что нет смысл в использовании часов идущих медленнее чем Fs, и нет смысла попытаться модифицировать кадр больше чем один раз(update more than once a frame). Счетчик прочитывается по Ff и сбрасывать каждый 2 ^ (10-P) кадр. Пока никакие циклы часов не пропущены, подсчет будет точен долгое время. В конечной точке необходимо только реализовать число битов счетчика, максимальной Ff которую она требует.(An endpoint only needs to implement the number of counter bits that it requires for its maximum Ff.)

Цифровая телефонная конечная точка, например, будет обычно получать 8 кГц Fs,  деля часы 64 кГц (P = 3) которые она использует, чтобы преобразовать данные в последовательный поток данных/( which it uses to serialize the data stream.) Фаза часов 64 кГц может также дополняться 1 битом точности, тогда реальное P = 4. Это позволило бы Ff модифицироваться каждый 2^(10-4)=64 кадр.(This would give Ff updates every 2^(10-4) = 64 frames.) Чтобы получить Ff требовался бы 13-разрядный счетчик ,с 3 битами для 8 выборок за кадр, и 10 битов для дробной части. 13 битов обеспечили бы поле 3.10 внутри 10.14 значений Ff, с остающимся  битами сброшенными в 0.

Выбор P зависит от специфики конечной точки, и должен быть между 1 и 9, включительно.  Большие значения P предпочтены, так как они уменьшают размер счетчика кадров и увеличивают скорость с которой модифицируется  Ff. Более частые модификации приводят к более жесткому управлению  скоростью передачи данных источника, которая уменьшает буферную область, требуемую для обработки изменения Ff. P должен быть меньше чем 10 так, чтобы Ff была усреднена хотя бы по двум кадрам, чтобы уменьшить эффекты флуктуации SOF. P не должен быть 0, чтобы хранить не менее чем 1 отклонение в числе выборок из источника в случае потери значения Ff.(P should not be 0 in order to keep the deviation in the number of samples sourced to less than 1 in the event of a lost Ff value.)



Передачи Прерывания используются, для прочтения Ff из регистра обратной связи в периодических интервалах (Interrupt transfers are used to read Ff from the feedback register at periodic intervals.) Требуемая  скорости сообщения по обратной связи должна быть 2^(10-P) мс (кадров).The desired reporting rate for the feedback should be 2^(10-P) ms (frames)) Ff будет сообщена более одного раза при модификации периода.(Ff will be reported at most once per update period.) Нечего сообщать кроме тогоже самого значение Ff при модификации периода.(There is nothing to be gained by reporting the same Ff

value more than once per update period.) Конечная точка может выбрать сообщение только Ff, если модифицируемое значение изменилось от предыдущего значения Ff. (The endpoint may choose to only report Ff if the updated value has changed from the previous Ff value.)

Возможно, что источник поставит на одну больше или на одну меньше выборку в течении длительного периода, из-за ошибок или накопленных погрешностей при измерении Ff. (It is possible that the source will deliver one too many or one too few samples over a long period, due to errors or accumulated inaccuracies in measuring Ff.) Сток должен иметь буфер с возможностями достаточными для размещения ее. (The sink must have sufficient buffer capability to accommodate this.) Когда сток распознает такое состояние, он должно откорректировать сообщенное значение Ff, чтобы исправить эту ситуацию. Это может быть также необходимо для компенсации дрейфа часов.(This may also be necessary to compensate for relative clock drifts.) Реализация этого процесса исправления специфична для конечной точки и не определена.

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


Содержание раздела