Поле Идентификатора Пакета
Идентификатор пакета (PID) следует непосредственно за SYNC полем каждого пакета USB. PID состоит из четырех битного поля типа пакета, за которым следует четырех битное поле проверки, как показано на Рисунок 8-1. PID определяет тип пакета и формат пакета и типа обнаружения ошибок, применяемые к пакету. Четырех битовое поле проверки в PID обеспечивает надежное декодирование PID таким образом, что остаток пакета интерпретируется правильно. Поле проверки PID генерируется, выполняя дополнение к полю типа пакета.
Рисунок 8-1. Формат PID
Хост и все функции должны выполнить полное декодирование всех полученных полей PID. Любой PID, полученный с ошибочным полем проверки или который декодируется к неопределенному значению, считается поврежденным и игнорируется также, как и остаток пакета, игнорируется приемником пакета. Если функция получает другой допустимый PID для типа транзакции или направления, которое она не поддерживает, то функция не должна отвечать. Например, конечная точка рассчитанная только на IN должна игнорировать маркер OUT. Типы PID, кодирование и описание приведены в Таблица 8-1.
Таблица 8-1. Типы PID
Тип PID | Имя PID | PID[3:0] |
| Описание | |||
Маркер | OUT
IN SOF SETUP | b0001
b1001 b0101 b1101 | Адрес + номер конечной точки на хосте - > транзакция функции Адрес + номер конечной точки на функции - > транзакция хоста Маркер начало кадра и номер кадра Адрес + номер конечной точки на хосте - > транзакция функции для установки в конечную точку управления | ||||
Данные | DATA0
DATA1 | b0011
b1011 | Четный пакет данных PID
Нечетный пакет данных PID | ||||
Квитирование | ACK
NAK STALL | b0010
b1010 b1110 | Приемник принимает пакет данных свободный от ошибок
Rx устройство не может принимать данные, или Tx устройство не может посылать данные Конечная точка остановлена | ||||
Специальный | PRE | b1100 | Выданная хостом преамбула. Разблокировывает трафик вниз по иерархии шины к низко скоростным устройствам.(Host-issued preamble. Enables downstream bus traffic to low speed devices.) |
PIDS разделены на четыре кодовые группы : маркер, данные, квитирование, и специальные, определяемые двумя первыми передаваемыми битами PID (PID < 1:0 >). Это объясняет распределение кодов PID.