- •Цели создания usb Шины
- •Таксономия областей применения
- •Технические характеристики
- •Концентраторы
- •Функции
- •Электрические параметры
- •Механические параметры
- •Разводка питания
- •Управление питанием
- •Протокол Шины
- •Распределение пропускной способности usb шины
- •Уровень Протокола Порядок Следования Бит
- •Поле sync
- •Форматы Поля Пакета
- •Поле Идентификатора Пакета
- •Поля адреса
- •Поле адреса
- •Поле Конечной Точки
- •Поле Номера Кадра
- •Поле Данных
- •Циклический Контроль по Избыточности
- •Crc маркеров
- •Пакеты Начала Кадра
- •Пакеты Данных
- •Пакеты Квитирования
- •Ответы Квитирования
- •Ответ Функции на Входные(in) Транзакции
- •Ответ Хоста на in Транзакции
- •Ответ Функции на out Транзакцию
- •Ответ Функции на Транзакцию setup
- •Форматы Транзакции
- •Bulk Транзакции
- •Передачи Управления
- •Сообщение Результатов Состояния(Reporting Status Results)
- •Транзакции Прерывания
- •Изохронные(iso)Транзакции
- •Помехоустойчивость
- •Обнаружение ошибок
- •Обработка ошибок
- •Синхронизация Переключения Данных и Повторная Передача
- •Инициализация Маркером setup
- •Успешные Транзакции Данных
- •Данные Разрушены или Не Приняты
- •Разрушенное Квитирование ack
Crc маркеров
Для маркеров предусмотрено пяти-битное поле CRC и оно покрывает поля ADDR и ENDP маркеров IN, SETUP, и OUT или поле отметки времени маркера SOF. Полином генерируется по формуле:
G(X) = X5 + X2 + 1
Двоичная битовая маска, которая отображает этот полином: 00101. Если все биты маркера получены без ошибки, пяти-битный остаток в приемнике будет 01100.
CRC Данных
CRC данных - 16-битное поле , которое покрывает поле данных пакета .Полином применяемый к полю данных пакета генерируется по формуле:
G(X) = X16 + X15 + X2 + 1
Двоичная битовая маска, которая отображает этот полином: 1000000000000101. Если все данные и биты CRC получены без ошибки, 16-битный остаток будет 1000000000001101.
Форматы Пакета
Этот раздел описывает форматы маркерных пакетов, данных, и пакетов квитирования. Поля внутри пакета отображаются в порядке, в котором биты поступают во входную шину.
Маркерные пакеты
Рисунок 9 показывает форматы поля для маркерного пакета. Маркер состоит из PID, определяющего тип пакета IN, OUT, или SETUP, и полей ENDP и ADDR. Для транзакций OUT и SETUP, поле адреса и конечной точки однозначно определяет конечную точку, которая получит последующий пакет данных. Для входной(IN) транзакции, эти поля однозначно определяют конечную точку, которая должна передать пакет данных. Только хост может выдавать маркерные пакеты. PIDы входных(IN) пакетов определяют транзакцию данных от функции к хосту. PIDы входных(OUT) пакетов и пакетов установки(SETUP) определяют транзакцию данных от хоста к функции.
Рисунок 9. Формат Маркера
Маркерные пакеты имеют пяти-битовый CRC, который покрывает поля адреса и конечной точки как показано выше. CRC не покрывает PID, который имеет собственное поле проверки. Маркер и пакеты SOF разграничены EOP после трех байтов поля данных пакета. Если пакет декодируется как допустимый маркер или SOF, но не завершается EOP после трех байтов, он должен рассматриваться как недопустимый и игнорироваться приемником.
Пакеты Начала Кадра
Пакеты начала кадра(SOF) выдаются хостом с номинальной скоростью один каждую 1.00 мс 0.05. Пакеты SOF состоят из PID определяющего тип пакета, за которым следует 11-битное поле номера кадра как иллюстрируется на рисунке 10.
Рисунок 10. Пакет SOF
Маркер SOF включает в себя только маркерную транзакцию, которая распространяет маркер начала кадра и соответствующий номер кадра в точно определенные интервалы, соответствующие началу каждого кадра. Все полно скоростные функции, включая концентраторы, должны получить и декодировать пакет SOF. Маркер SOF не заставляет получающую функцию генерировать ответный пакет; поэтому нельзя гарантировать доставку SOF к любой функции. Пакет SOF доставляет две части временной информации. Функция узнает о начале кадра, когда она обнаруживает PID SOF. Функции чувствительные к времени кадра, и которые не должны следить за номером кадра, нуждаются только в декодировании PID SOF; они могут игнорировать номер кадра и его CRC. Если функция должна проследить номер кадра, то она должна проанализировать как PID так и временную отметку.