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

Предбуферирование Данных (Data Prebuffering)


USB требует, чтобы устройства предбуфера перед обработкой/передачей  данных позволило хосту более гибко управлять перемещением каждой транзакции канала в шине от кадра к кадру (USB requires that devices prebuffer data before processing/transmission to allow the host more flexibility in managing when each pipe’s transaction is moved over the bus from frame to frame.)

Для передач от функции к хосту, конечная точка должна накоплять выборки в течение кадра X, пока она не получит маркерный пакет Начало Кадра (SOF) для кадра X + 1. Эти “защелки” данных из кадра X в пакет буфера, и теперь готов послать пакет, содержащий эти выборки в течение кадра X+1.(It “latches” the data from frame X into its packet buffer and is now ready to send the packet containing those samples during frame X+1.) Когда она пошлет эти данные в течение кадра определенного исключительно хост контроллером и могут изменяться от кадра к кадру.(When it will send that data during the frame is determined solely by the host controller and can vary from frame to frame.)

При передачах от хоста к функции, конечная точка примет пакет от хоста когда-нибудь в течении кадра Y. Когда она получает SOF для кадра Y+1, она может начинать обрабатывать данные, полученные в кадре Y.

Этот подход позволяет конечной точке использовать маркер SOF как устойчивые часы с очень небольшой флуктуацией/дрейфом, когда хост контроллер перемещает пакет по шине при также разрешении хост контроллера, чтобы измениться внутри кадра точно, когда пакет фактически перемещается по шине. (This approach allows an endpoint to use the SOF token as a stable clock with very little jitter/drift when the host controller moves the packet over the bus while also allowing the host controller to vary within a frame precisely when the packet is actually moved over the bus.) Это предбуферирование  предоставляет некоторую дополнительную задержку между тем, когда выборка является доступной в конечной точке и когда она перемещается по шине, сравнивая с окружением, где доступ шины - точно то же самое смещение времени из SOF от кадра к кадру.(This prebuffering introduces some additional delay between when a sample is available at an endpoint and when it moves over the bus compared to an environment where the bus access is at exactly the same time offset from SOF from frame to frame.)

Рисунок 5-16 показывает последовательность времен, где передача от функции к хосту (Входной процесс), данные D0 накапливаются в течение кадра Fi во время Ti

и передаются на хост в течении кадра FI+1. Точно так же для передачи от хоста к функции (Выходной процесс), данные D0 получены конечной точкой в течение кадра Fi+1 и обработан в течение кадра Fi+2.

Рисунок 5-16. Предбуферирование Данных



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