Поля USB пакета
Данные по USB шине всегда передаются младшими битами вперед. USB пакет состоит из следующих полей:
· Поле синхронизации (Sync Field)
Все пакеты должны начинаться с поля синхронизации. Поле синхронизации имеет размер 8 бит для низкоскоростных и полноскоростных устройств или 32 бита для высокоскоростных устройств и используется для подсинхронизации тактового генератора, встроенного в USB контроллер. Последние два бита поля синхронизации являются маркером, который используется для идентификации конца области синхронизации и начала PID поля.
· Поле идентификатора пакета (PID Field)
Идентификатор пакета следует непосредственно после поля синхронизации в каждом передаваемом USB пакете. PID состоит из четырехбитного типа пакета, следующего за четырехбитным проверочным полем как показано на рисунке 4.
(LSB) | (MSB) | ||||||
PID0 | PID1 | PID2 | PID3 | PID0 | PID1 | PID2 | PID3 |
Рисунок 2. Формат поля PID.
Контрольная область PID генерируется как инверсия четырехбитного типа пакета и необходима для устранения ложного декодирования следующих за этим полем данных. Ошибка PID детектируется в том случае, когда инвертированная контрольная область не совпадает с соответствующими битами идентификатора пакета. Любой PID полученный с ошибкой или неуказанный в нижеследующей таблице, должен быть проигнорирован получателем пакета.
PID Тип | Имя PID | PID[3…0] | Описание |
Признак (Token) | Out | Адрес + номер конечной точки для транзакции ХОСТ -->Функция | |
In | Адрес + номер конечной точки для транзакции ХОCT <-- Функция | ||
SOF | Маркер начала пакета и его номер | ||
SETUP | Адрес + номер конечной точки для SETUP транзакции ХОСТ ® Функция в канале управления | ||
Данные | DATA0 | Четный PID пакета данных | |
DATA1 | Нечетный PID пакета данных | ||
Статус | ACK | Приемник принял пакет данных без ошибок | |
NAK | Принимающее устройство не может принять данные, или передающее не может их отправить | ||
STALL | Конечна точка приостановлена (HALT) или запрос по управляющему каналу не поддерживается | ||
Спец. | PRE | ХОСТ инициирует преамбулу, разрешая трафик для низкоскоростных устройств |
Рисунок 3. Типы PID.
PID биты приведены в таблице в MSB порядке. Когда они передаются по шине, правый бит (бит 0) выдается первым.
· Поле адреса устройства (Addr Field)
Поле адреса используется для идентификации к какому устройству направлен текущий пакет. Размерность поля - 7 бит, что позволяет адресовать 127 уникальных USB устройств. После сброса или включения питания, адрес устройства устанавливается по умолчанию в 0 и должен быть запрограммирован хостом в ходе процесса энумерации. Адрес 0 (заданный по умолчанию) зарезервирован для вновь подключаемых устройств и не может быть назначен для нормальной работы.
· Поле адреса конечной точки (Endpoint Field)
Поле адреса конечной точки имеет размерность 4 бита и позволяет размещать в устройстве до 16 конечных точек. Все функции должны поддерживать одну управляющую '0' конечную точку. Низкоскоростные устройства поддерживают только три канала передачи: управляющий канал, связанный с нулевой конечной точкой и два дополнительных канала (две Interrupt конечные точки). Полноскоростные устройства поддерживают максимум до 16 конечных точек.
· Поле номера кадра (Frame Number Field)
Поле номера кадра представляет собой 11-битное поле, которое инкрементируется хостом при инициировании нового кадра. Поле номера кадра начинается заново с нуля при достижения максимального значения 0х7FF, и используется только для SOF маркеров в каждом начале кадра.
· Поле циклического контроля по избыточности (CRC)
Циклический контроль по избыточности (CRC) используются для защиты всех полей кроме PID в маркерах и пакетах данных. Защита Маркера и пакета данных обеспечивает 100% нахождение всех одиночных и двойных битовых ошибок. Для маркеров предусмотрено пяти-битное поле CRC, которое используется для защиты полей ADDR и ENDP пакетов IN, SETUP,OUT или поле отметки времени маркера SOF. Для пакета данных используется 16-битный полином, кодирующий всё поле данных пакета.
· Поле конца пакета (EOP)
Поле конца пакета представляет собой сигнал окончания пакета и устанавливается на шине путем выставления сигнала "Single Ended Zero " SE0 в течении двух битовых интервалов следующего за J состоянием, установленным на время одного битового интервала.
Дата добавления: 2015-07-24; просмотров: 1094;