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




Слежение за Транзакцией


Функция USB видит поток данных, перемещающихся по шине в виде пакетов, как описано в Главе 8 (A USB function sees data flowing across the bus in packets as described in Chapter 8.) Хост контроллер использует некоторое зависимое от реализации представление, чтобы проследить какие пакеты передаются на/из какой конечной точки, в какое время или в каком порядке (The host controller uses some implementation dependent representation to track what packets to transfer to/from what endpoints at what time or in what order.) Большая часть клиентского программного обеспечения не хочет иметь дело с упакованными потоками связи, так как это включает степень сложности и зависимость взаимосвязи, что ограничивает реализацию. (Most client software does not want to deal with packetized communication flows since this involves a degree of complexity and interconnect dependency that limits the implementation.) Программное обеспечение системы USB(USBD и HCD) обеспечивает поддержку соответствия требований клиента по движению данных, пакетам на шине. Аппаратные средства и программное обеспечение хост контроллера используют IRPs, чтобы проследить информацию об одной или более транзакциях, которые объединяются, чтобы осуществить передачу информации между клиентским программным обеспечением и функцией. Рисунок 5-11 подводит итог, как организованы транзакции в IRPs для четырех типов передачи. Информация о деталях протокола для каждого типа передачи может быть найдена в Главе 8. Подробная информация о взглядах клиентского программного обеспечения на IRPs может быть найдена в Главе 10 и в специфической информации определяемой операционной системой для особой операционной системы.

Рисунок 5-11. Передачи для Потоков Связи

Даже при том, что IRPs прослеживают транзакции шины, которые должны происходить, при перемещении специфического потока данных по USB, хост контроллеры свободны от выбора того, как специфические транзакции шины перемещаются по шине, подчиняясь ограничениям определенным USB; например, точно одна транзакция за кадр для изохронных передач (Even though IRPs track the bus transactions that need to occur to move a specific data flow over USB, host controllers are free to choose how the particular bus transactions are moved over the bus subject to the USB defined constraints; e.g., exactly one transaction per frame for isochronous transfers.) В любом случае, конечная точка будет видеть транзакции в том порядке, в котором они появляются внутри IRP, если не происходят ошибки. Например, Рисунок 5-12 показывает два IRPs, по одному на каждый из двух каналов, где каждый IRP содержит три транзакции. Для любого типа передачи, свободный хост контроллер, перемещает первую транзакцию первого IRP, следом первую транзакцию второго IRP куда-нибудь в Кадр 1, вторые транзакции каждого IRP перемещает в противоположном порядке куда-нибудь в Кадр 2. Если это изохронные типы передач, у хост контроллера имеется единственная степенью свободы. Если это передачи управления или bulk, хост контроллер мог бы дополнительно переместить больше или меньше транзакции из любого IRP внутрь любого кадра. Функции не могут зависеть от наблюдения транзакций внутри IRP обратно к обратно внутри кадра.(Functions cannot depend on seeing transactions within an IRP back to back within a frame.)

Рисунок 5-12. Расположение Транзакций IRPs в Кадрах




Содержание  Назад  Вперед