Главная » Ассемблер, Железо » Модель передачи данных USB

0

Логическое устройство USB представляет собой набор конечных точек.

Конечная точка (Endpoint) — это часть устройства USB, которая имеет уникальный идентификатор и является получателем или отправителем информации, передаваемой по шине USB.

Основными для конечной точки являются следующие параметры:

•     частота доступа к шине;

•     допустимая величина задержки обслуживания;

•     требуемая ширина полосы пропускания канала;

•     номер конечной точки;

•     способ обработки ошибок;

•     максимальный размер пакетов, которые конечная точка может принимать или отправлять;

•     используемый конечной точкой тип посылок;

•     направление передачи данных.

Любое USB-устройство имеет конечную точку с нулевым номером, которая в документации именуется Endpoint Zero или Endpoint 0. Нулевая точка позволяет хосту опрашивать устройство с целью определения его типа и параметров, выполнять инициализацию и конфигурирование устройства.

Каждая конечная точка может работать только с одним типом посылок (типы посылок описаны ниже). Нулевая точка поддерживает управляющие посылки и поэтому может выполнять как прием, так и передачу данных.

Кроме нулевой точки, функции обычно имеют дополнительные конечные точки, которые используются для обмена данными с хостом. Дополнительные точки могут работать либо только на прием, либо только на передачу информации. Точки, передающие данные хосту, именуются входными (IN), а точки, принимающие данные от хоста — выходными (OUT). Низкоскоростные устройства могут иметь до двух дополнительных точек, а полноскоростные — до 15 дополнительных входных и до 15 дополнительных выходных точек. Хост получает доступ к нулевой конечной точке после того, как устройство присоединено к шине, включено и получило сигнал сброса по шине. Все остальные конечные точки, кроме точки с нулевым номером, после включения питания или сброса устройства находятся в неопределенном состоянии и недоступны для работы до тех пор, пока хост не выполнит процедуру конфигурирования устройства. Для описания порядка прохождения информации через буфер данных между программным обеспечением и конечной точкой в спецификации USB введено понятие канала.

Канал (pipe) — это модель взаимодействия конечной точки с программным обеспечением хоста. Имеется два типа каналов:

•       поток (stream) — это канал для передачи данных, структура которых определяется клиентским программным обеспечением. Потоки используются для передачи массивов данных, передачи данных по прерываниям и изохронной передачи данных.

•       канал сообщений (message pipe) — это канал для передачи данных, структура которых определяется спецификацией на шииу USB. Каналы сообщений применяются для передачи управляющих посылок.

Основными характеристиками каналов являются:

•           полоса пропускания канала;

•           используемый каналом тип передачи данных;

•       характеристики, соответствующие конечной точке: направление передачи данных и максимальный размер пакета.

Канал сообщений, связанный с нулевой конечной точкой, называется в документации Основным каналом сообщений (Default Control Pipe). Спецификация USB запрещает для канала сообщений одновременную обработку нескольких запросов: нельзя начинать передачу нового сообщения, пока не завершена обработка предыдущего. В случае возникновения ошибки, однако, передача сообщения может быть прервана хостом, после чего хост может начать передачу нового сообщения.

Источник: Кулаков В. К90 Программирование на аппаратном уровне: специальный справочник (+дискета). 2-е издание. — СПб.: Питер, 2003. — 847 е.: ил.

По теме:

  • Комментарии