logo search
Шпоры Смирнов

1.Протокол обмена, форматы пакетов шины usb

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

После определения нового устройства главный начинает связь в соответствии с физическим протоколом USB. Протокол USB, в отличие от УАПП, основан на синхронной передаче данных. Синхронизация передатчика и приемника необходима для осуществления связи. Синхронизация выполняется путем передачи небольшого заголовка, который предшествует передаче данных. Данный заголовок - прямоугольные импульсы (101010), за ними передаются два 0, а затем данные.

Уведомление об окончании передачи данных выполняется с помощью передачи сигнала "конец пакета" (EOP). EOP передается путем установки низких уровней на обеих линиях данных DATA+ и DATA-. EOP передается непродолжительное время (минимум два периода скорости данных). После этого, выполняется следующая транзакция.

Данные, которые передаются между образцовой синхронизацией и EOP, закодированы в коде NRZI.

Время шины делится на периоды, в начале периода контроллер передает всей шине пакет «начало периода». Далее в течение периода передаются пакеты прерываний, потом изохронные в требуемом количестве, в оставшееся время в периоде передаются управляющие пакеты и в последнюю очередь поточные. Активная сторона шины - контроллер, передача пакета данных от устройства к контроллеру реализована как короткий вопрос контроллера и длинный, содержащий данные, ответ устройства. Расписание движения пакетов для каждого периода шины создается совместным усилием аппаратуры контроллера и ПО драйвера, для этого многие контроллеры используют крайне сложный DMA со сложной DMA-программой, формируемой драйвером.

Формат пакетов INT, OUT, SETUP и PING

SYNC

PID[4]

Check[4]

Func[7]

EndP[4]

CRC[5]

EOP

Формат пакета SOF(Start of Frame)

SYNC

PID[4]

Check[4]

Frame[11]

CRC[5]

EOP

Формат пакетов данных (DATA0 – DATA2, MDATA)

SYNC

PID[4]

Check[4]

Data[0..8192]

CRC[16]

EOP

*Поле Check - битовая инверсия поля PID