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

       

Пример Изохронного Приложения Не USB


Используемый пример приемлим как пример общего случая. Возможны другие более простые или более сложные случаи, и могут использоваться соответствующие определенные возможности USB или не соответствующие.(Other simpler or more complex cases are possible and the relevant USB features identified can be used or not as appropriate.)

Пример состоит из 8 кГц моно микрофона подсоединенного к драйверу смесителя, который посылает входной поток данных на 44 кГц стерео колонки. Смеситель ожидает, что данные будут получаться и передаваться с некоторой типовой скоростью и закодированными. Подходящий по скорости драйвер преобразовывает на входе и выходе типовую скорость и кодировку из естественной для устройства скорости и кодировки к скорости и кодировки ожидаемой смесителем. Рисунок 5-13 иллюстрирует этот пример.

 Рисунок 5-13. Пример Изохронной Не-USB передачи

Задающий генератор (может обеспечиваться программным обеспечением, управляемым от часов реального времени) в PC,  используется для пробуждения смесителя, чтобы опросить входной источник о входных данных и предоставить выходные данные в сток вывода.(A master clock (can be provided by software driven from the real time clock) in the PC is used to awaken the mixer to ask the input source for input data and to provide output data to the output sink.) В этом примере, принято что он пробуждается каждые 20 мс(In this example, assume it awakens every 20 ms.) Микрофон и колонки, имеют свои собственные типовые часы которые несинхронизированы относительно друг друга или с задающими часами смесителя (master mixer clock). Микрофон производит данные с естественной скоростью (выборка(samples) 1 байта, 8'000 раз в секунду) и колонки потребляют данные со своей естественной скоростью (выборка 4 байт, 44'100 раз в секунду).  Трое часов в системе могут дрейфовать и иметь флуктуацию относительно друг друга. Каждый согласователь скорости может также выполняться при различной естественной скорости или как драйвер смесителя, входной источник/драйвер, или как выходной сток / драйвер.(Each rate matcher may also be running at a different natural rate than either the mixer driver, the input source/driver, or output sink/driver.)


Согласователи скорости также контролируют, длительность срока скорости передачи данных своего устройства, сравнивают с часами главного смесителя и интерполируют дополнительную выборку или объединяет две выборки, чтобы скорректировать скорость передачи данных своего устройства со скоростью передачи данных смесителя (The rate matchers also monitor the long term data rate of their device compared to the master mixer clock and interpolate an additional sample or merge two samples to adjust the data rate of their device to the data rate of the mixer.) Эта корректировка может требоваться каждую пару секунд, но обычно происходит нечасто. Согласователи скорости обеспечивают некоторую дополнительную буферизацию, чтобы осуществить соответствие скорости.(The rate matchers provide some additional buffering to carry through a rate match.)
Следует заметить, что никакое другое приложение не поддерживает возможность применения корректирующей выборки и будет нуждаться в некоторых других средствах согласования задающего генератора с дрейфующими часами устройства, или иначе потребовались бы некоторые средства синхронизирования часов, для гарантии того, что не сможет произойти никакой дрейф.
Смеситель всегда ожидает, при получении, точно период обслуживания данных (20 мс - период обслуживания ) из устройства ввода данных и при отправки точно период обслуживания данных для устройства вывода. (The mixer always expects to receive exactly a service period of data (20 ms service period) from its input device and produce exactly a service period of data for its output device.) Смеситель может задерживаться на меньше чем период обслуживания, если нет доступных данных или места в устройстве ввода-вывода. (The mixer can be delayed up to less than a service period if data or space is not available from its input/output device.) Принято, что смесителем такие задержки не накапливаются.(The mixer assumes that such delays don’t accumulate.)
Устройства ввода и вывода и их драйверы ожидают возможности поместить/получить данные в ответ на аппаратное прерывание из контроллера ПДП(DMA), когда их преобразователь обработал один период обслуживания данных. Они ожидают получения/помещения точно один период обслуживания данных. Устройство ввода производит 160 байтов (10 выборок) каждый период обслуживания 20 мс. Устройство вывода потребляет 3528 байтов (882 выборок) каждый  период обслуживания 20 мс. Контроллер ПДП может перемещать одну выборку между устройством и буфером хоста со скоростью намного больше чем скорость выборки любого устройства.


Входные и выходные драйверы устройства обеспечивают два периода обслуживания буферизации системы.( The input and output device drivers provide two service periods of system buffering) Один буфер всегда обрабатывается контроллером ПДП. Гарантируется что другой буфер будет готов прежде, чем будет исчерпан текущий буфер . Когда текущий буфер освобожден, аппаратное прерывание пробуждает драйвер устройства, и он(драйвер) вызывает согласователь скорости, чтобы дать ему(??кому) буфер.(When the current buffer is emptied, the hardware interrupt awakens the device driver and it calls the rate matcher to give it the buffer.) Драйвер устройства запрашивает новый IRP с буфером прежде, чем будет исчерпан текущий буфер.(The device driver requests a new IRP with the buffer before the current buffer is exhausted.)
Устройства могут обеспечивать две выборки буферизированных данных, чтобы гарантировать, что они всегда имеют обработанную выборку для следующего периода выборки, в то время как система реагирует на предыдущую/следующую выборку.(The devices can provide two samples of data buffering to ensure that they always have a sample to process for the next sample period while the system is reacting to the previous/next sample.)
Периоды обслуживания драйверов выбраны, чтобы пережить прерывание переменного времени отклика, которое может присутствовать в среде операционной системы.(The service periods of the drivers are chosen to survive interrupt latency variabilities that may be present in the operating system environment. ) Различное окружение операционной системы требует различных периодов обслуживания для надежного выполнения операции.(Different operating system environments will require different service periods for reliable operation.) Периоды обслуживания также выбраны для помещения минимальной загрузки прерываний в системе так как может иметься другое программное обеспечение в системе, которое требует время для обработки.(The service periods are also selected to place a minimum interrupt load on the system since there may be other software in the system that requires processing time.)

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