Академический Документы
Профессиональный Документы
Культура Документы
1
Описание USB состоит из ряда спецификаций, которые
разрабатываются группой компаний в рамках некоммерческой организации
USB Implementers Forum .
USB 1.0
USB 1.1
2
USB 2.0
USB OTG
USB 3.0
USB 3.1
USB 3.2
22 сентября 2017 некоммерческая организация USB Implementers
Forum (USB-IF) опубликовала спецификацию стандарта USB 3.2[20],
заключительная ревизия для USB 3.x. Новая спецификация предусматривает
удвоение максимально возможной скорости передачи данных по сравнению с
USB 3.1 Gen 2 — с 10 до 20 Гбит/с за счёт использования двух линий на 5
Гбит/с или 10 Гбит/с только для разъема USB Type-C по причине его
двухсторонних контактов и использования дублирующих выводов как
отдельный канал.
Спецификации USB 3.2 заменяют стандарты USB 3.0 и USB 3.1;
удовлетворяющие им устройства будут включать три стандарта
скоростей[23]:
SuperSpeed USB (USB 3.2 Gen 1) со скоростью до 5 Гбит/с и
кодированием 8b/10b, как у USB 3.1 Gen 1 и USB 3.0;
SuperSpeed+ USB 10Gbps (USB 3.2 Gen 2) со скоростью до 10 Гбит/с и
кодированием 128b/132b, как USB 3.1 Gen 2;
4
SuperSpeed++ USB 20Gbps (USB 3.2 Gen 2x2) со скоростью до 20
Гбит/с и кодированием 128b/132b по двум линиям, каждая из которых
соответствует USB 3.1 Gen 2.
USB 4.0
Топология сети
5
Рис. 1 – Физическая и логическая топологии шины USB
8
Чтобы исключить потерю синхронизации на длительных единичных
последовательностях, применяют битстаффинг, то есть принудительно
вставляют в поток данных ноль на каждые 6 единиц подряд.
9
Вся информация передается кадрами, которые отправляются через равные
промежутки времени. В свою очередь каждый кадр состоит из транзакций.
Вот, пожалуй, так будет нагляднее:
10
Пакеты Token бывают трех типов:
In
Out
Setup
Start Of Frame
Пакет In говорит нашему USB-устройству, что хост готов принять от него
информацию. Пакет Out, напротив, сигнализирует о готовности и желании
хоста поделиться информацией. Пакет Setup нужен для использования
управляющих передач. Ну а пакет Start Of Frame используется для того,
чтобы инициировать начало кадра.
Вот к чему я это рассказал..) В зависимости от типа пакета значение
поля PID в Token пакете может принимать следующие значения:
Token пакет типа OUT – PID = 0001
Token пакет типа IN – PID = 1001
Token пакет типа SETUP – PID = 1101
Token пакет типа SOF – PID = 0101
PID включает в себя 4 бита, но при передаче они дополняются еще 4-
мя битами, которые получаются путем инвертирования первых 4-ых
бит.
Переходим к следующей составной части пакета Token –
поля Address и Endpoint – в них содержатся адрес USB устройства и номер
конечной точки, которой предназначена транзакция.
11
следующего за J состоянием, установленным на время одного битового
интервала. Итак, на очереди Data пакет – то есть пакет данных.
Тут все в принципе так же, как и в пакете Token, только вместо адреса устройства и
номера конечной точки здесь у нас передаваемые данные. до 1024 байтов данных
SOF пакет состоит из 11-ти битного номера кадра FRAME и генерируется хостом
каждую 1ms ± 500ns для полноскоростной шины и каждые 125 µs ± 0.0625 µs для
высокоскоростной шины. Поле номера кадра инкрементируется хостом при
инициировании нового кадра. Поле номера кадра начинается заново с нуля при
достижения максимального значения 0х7FF.
То есть рассмотрим пример структуры кадра записи.
Кадр, как вы помните состоит из транзакций и имеет следующий вид:
Транзакция OUT:
12
Транзакцию SETUP мы уже видели, посмотрим на транзакцию IN
13
Когда хост становится готовым принимать данные от функции, он в
фазе передачи пакета-признака посылает функции IN-пакет. В ответ на
это функция в фазе передачи данных передает хосту пакет с данными или,
если она не может сделать этого, передает NAK- или STALL-пакет. NAK-
пакет сообщает о временной неготовности функции передавать данные, а
STALL-пакет сообщает о необходимости вмешательства хоста. Если хост
успешно получил данные, то он в фазе согласования посылает функции
ACK-пакет. В противном случае транзакция завершается.
Когда хост становится готовым передавать данные, он посылает
функции OUT-пакет, сопровождаемый пакетом с данными. Если функция
успешно получила данные, он отсылает хосту ACK-пакет, в противном
случае отсылается NAK- или STALL-пакет.
Управляющие пересылки содержат не менее двух стадий: Setup-
стадия и статусная стадия. Между ними может также располагаться
стадия передачи данных. Setup-стадия используется для выполнения
SETUP-транзакции, в процессе которой пересылается информация в
управляющую КТ функции. SETUP-транзакция содержит SETUP-пакет,
пакет с данным и пакет согласования. Если пакет с данными получен
функцией успешно, то она отсылает хосту ACK-пакет. В противном
случае транзакция завершается.
В стадии передачи данных управляющие пересылки содержат одну
или несколько IN- или OUT-транзакций, принцип передачи которых такой
же, как и в потоковых пересылках. Все транзакции в стадии передачи
данных должны производиться в одном направлении.
В статусной стадии производится последняя транзакция, которая
использует те же принципы, что и в потоковых пересылках. Направление
этой транзакции противоположно тому, которое использовалось в стадии
передачи данных. Статусная стадия служит для сообщения о результате
выполнения SETUP-стадии и стадии передачи данных. Статусная
информация всегда передается от функции к хосту. При управляющей
записи (Control Write Transfer) статусная информация передается в фазе
передачи данных статусной стадии транзакции. При управляющем чтении
(Control Read Transfer) статусная информация возвращается в фазе
согласовании статусной стадии транзакции, после того как хост отправит
пакет данных нулевой длины в предыдущей фазе передачи данных.
Пересылки с прерыванием могут содержать IN- или OUT-пересылки.
При получении IN-пакета функция может вернуть пакет с данными, NAK-
пакет или STALL-пакет. Если у функции нет информации, для которой
требуется прерывание, то в фазе передачи данных функция возвращает
14
NAK-пакет. Если работа КТ с прерыванием приостановлена, то функция
возвращает STALL-пакет. При необходимости прерывания функция
возвращает необходимую информацию в фазе передачи данных. Если
хост успешно получил данные, то он посылает ACK-пакет. В противном
случае согласующий пакет хостом не посылается.
Изохронные транзакции содержат фазу передачи признака и фазу
передачи данных, но не имеют фазы согласования. Хост отсылает IN- или
OUT-признак, после чего в фазе передачи данных КТ (для IN-признака)
или хост (для OUT-признака) пересылает данные. Изохронные транзакции
не поддерживают фазу согласования и повторные посылки данных в
случае возникновения ошибок.
15