Укажите тип пересылки шины usb используемой для конфигурации устройства
Свойства USB-устройств
- адресация – устройство должно отзываться на назначенный ему уникальный адрес и только на него;
- конфигурирование – после включения или сброса устройство должно предоставлять нулевой адрес для возможности конфигурирования его портов;
- передача данных – устройство имеет набор конечных точек для обмена данными с хостом. Для конечных точек, допускающих разные типы передач, после конфигурирования доступен только один из них;
- управление энергопотреблением – любое устройство при подключении не должно потреблять от шины ток, превышающий 100 мА. При конфигурировании устройство заявляет свои потребности тока, но не более 500 мА. Если хаб не может обеспечить устройству заявленный ток, устройство не будет использоваться;
- приостановка – USB-устройство должно поддерживать приостановку (suspended mode), при которой его потребляемый ток не превышает 500 мкА. USB-устройство должно автоматически приостанавливаться при прекращении активности шины;
- удаленное пробуждение – возможность удаленного пробуждения (remote wakeup) позволяет приостановленному USB-устройству подать сигнал хосту, который тоже может находиться в приостановленном состоянии. Возможность удаленного пробуждения описывается в конфигурации USB-устройства. При конфигурировании эта функция может быть запрещена.
Составляющие USB
Шина USB состоит из следующих элементов:
- хост-контроллер (host controller, коротко хост) – главный контроллер, который входит в состав системного блока компьютера и управляет работой всех устройств на шине USB. На шине USB допускается наличие только одного хоста. Системный блок персонального компьютера содержит один или несколько хостов, каждый из которых управляет отдельной шиной USB.
В обязанности хоста входит:- слежение за подключением и отключением устройств;
- организация управляющих потоков между USB-устройством и хостом;
- организация потоков данных между USB-устройством и хостом;
- контроль состояния устройств и ведение статистики активности;
- снабжение подключенных устройств электропитанием.
- частотой обращения к шине и требованиями к задержкам;
- необходимой полосой пропускания;
- номером конечной точки;
- требованиями к обработке ошибок;
- максимальным размером кадра, который может быть принят или послан;
- типом поддерживаемой передачи данных;
- направлением осуществления передачи между конечной точной и хостом.
Изохронная передача
Этот метод используется для подключенияТем, кто не требует высокой точности данных и крайне чувствителен ко времениВнешнее оборудование, такое как микрофоны, динамики и телефоны. Метод изохронной передачи непрерывно передает данные между хостом и устройством USB с фиксированной скоростью передачи.При возникновении ошибок при передаче данных USB не обрабатывает эти ошибки, а продолжает передавать новые данные.
Архитектура системы USB
Дескриптор USB
Что такое дескриптор USB?
Когда мы подключаем USB-устройство (например, USB-мышь) к хосту, хост может автоматически распознать наш тип USB-устройства.(1) Определение дескриптора USB
Внутри каждого устройства USB оно содержит данные в фиксированном формате, аналогичном регистру конфигурации PCI. С помощью этих данных хост USB может получить тип устройства USB, производителя и другую информацию.Этот набор данных фиксированного формата, Мы называемДескриптор USB。Для стандартных USB-устройств существует 5 дескрипторов USB:- Дескриптор устройства
- Дескриптор конфигурации
- Дескриптор интерфейса
- Дескриптор конечной точки
- Строковый дескриптор
Пять дескрипторных отношений:
Устройство имеет только один дескриптор устройства, а дескриптор устройства может содержать несколько дескрипторов конфигурации, а дескриптор конфигурации может содержать несколько дескрипторов интерфейса, а один интерфейс использует несколько конечных точек. , Есть несколько дескрипторов конечных точек.Запросы, пакеты и транзакции
Логическая структура USB-устройства
В организацию USB-устройств включаютоборудование、Конфигурация、интерфейсс участиемКонечная точкаЧетыре уровня. Устройство обычно имеет одну или несколько конфигураций, конфигурация обычно имеет один или несколько интерфейсов, а интерфейс имеет ноль или несколько конечных точек.
(1)Конфигурация
Каждое USB-устройство может содержать одну или несколько конфигураций. Различные конфигурации заставляют устройство отображать различные комбинации функций, а конфигурация состоит из нескольких интерфейсов. В протоколе USBинтерфейсСостоит из нескольких конечных точек, представляющих базовую функцию,Контролируется ли объект драйвером USB-устройстваUSB-устройство со сложными функциями может иметь несколько интерфейсов, а интерфейс - это набор конечных точек.Каждая конфигурация отражает комбинацию функций
Каждый интерфейс - это функцияНапример:
USB-плеер с функциями аудио и видео, а также регуляторами и кнопками.- Конфигурация 1: аудио (интерфейс) + ручка (интерфейс)
- Конфигурация 2: аудио (интерфейс) + видео (интерфейс) + кнопка (интерфейс)
- Конфигурация 1: видео (интерфейс) + ручка (интерфейс)
Аудиоинтерфейс, видеоинтерфейс, интерфейс кнопок, интерфейс ручки - все это требует драйвера.
(2)Конечная точка
Единственная адресуемая часть USB-устройства - это конечная точка устройства. Он расположен на USB-устройстве или хосте.Буфер данных, Используется для хранения и отправки различных данных USB. Связь между хостом и устройством в конечном итоге действует на каждую конечную точку на устройстве, которая является логическим завершением потока обмена данными между хостом и устройством.
каждыйUSB-устройство имеет уникальный адрес, Этот адрес назначается хостом, когда устройство подключено к хосту, а устройство вКаждая конечная точка имеет уникальный номер конечной точки внутри устройства., Этот номер конечной точки дается при разработке устройства. Каждая конечная точка является простой точкой подключения, или поддерживает поток данных в устройство, или поддерживает поток данных из устройства, оба не могут иметь оба.Каждое устройство должно иметь конечную точку 0, которая используется для перечисления устройств и некоторых основных функций управления устройством. За исключением конечной точки 0, оставшиеся конечные точки не могут связываться с хостом до настройки устройства и могут быть активированы только после передачи характеристик этих конечных точек хосту и подтверждения.
Изображение похоже:
Шина USB: похожа на магистраль;
Отправленные и полученные данные похожи на данные об автомобиле.
Конечная точка USB: аналогична въезду или выезду из ворот платных автомагистралей。Каналы
Коммуникационные каналы USB разделяются на два типа:
С каналами связаны характеристики, соответствующие конечной точке (полоса пропускания, тип сервиса, размер буфера и т. п.). Каналы организуются при конфигурировании устройств USB. Полоса пропускания шины делится между всеми установленными каналами. Выделенная полоса закрепляется за каналом, и если установление нового канала требует такой полосы, которая не вписывается в уже существующее распределение, запрос на выделение канала отвергается.
Каналы различаются и по назначению:
Интерфейс устройства, с которым работает клиентский драйвер, представляет собой связку клиентских каналов (pipe’s bundle). Для этих каналов драйверы устройств являются единственными источниками и потребителями передаваемых данных.
Переключатель Kotlin
В Котлине нет оператора коммутатора, и это DESI. Способ Джавы: Котлин написание: .
Модель передачи данных
Каждая единица клиентского ПО (обычно представляемая драйвером) связывается с одним интерфейсом своего устройства (функции) монопольно и независимо (см. рисунок ниже). Связи на этом рисунке обозначают коммуникационные каналы (communication pipes), которые устанавливаются между драйверами устройств и их конечными точками. Каналы устанавливаются только с конечными точками устройств, относящимися к выбранным (из альтернативных) вариантам интерфейсов активной конфигурации. Другие конечные точки недоступны.
Механизм прерываний
Для шины USB настоящего механизма прерываний не существует. Вместо этого хост опрашивает подключенные устройства на предмет наличия данных о прерывании. Опрос происходит в фиксированные интервалы времени, обычно каждые 1 – 32 мс. Устройству разрешается посылать до 64 байт данных.
С точки зрения драйвера, возможности работы с прерываниями фактически определяются хостом, который и обеспечивает поддержку физической реализации USB-интерфейса.
TIDB Двоичного Источник чтение Чтение статья (7) Drainer сервер Введение
Автор: Хуан Jiahao В предыдущей статье вводится насос сервер, давайте познакомимся реализация Drainer сервера, главная роль Drainer сервера, чтобы получить Двоичный от каждого сервера насоса, и анализ.
Прерывание передачи
Объем данных, передаваемых с помощью этого метода, невелик, но эти данные необходимо обрабатывать вовремя для достижения эффектов в реальном времени.Этот метод в основном используется на внешних устройствах, таких как клавиатуры, мыши и геймпады. Когда USB-хост требует от устройства передачи данных,Конечная точка прерывания будет передавать данные с фиксированной скоростью.
Топология системы USB
Для каждой USB-системы существует устройство, называемое хост-контроллером, которое интегрировано с корневым концентратором. Этот суб-хаб может быть подключен к многоуровневому хабу, и каждый суб-хаб может быть подключен к суб-хабу. Каждое USB-устройство подключено к концентраторам разного уровня как узел.К каждой шине USB можно подключить до 127 устройств。Подключение периферийных устройств к шине USB
Для подключения периферийных устройств к шине USB используется четырёхпроводный кабель, при этом два провода (витая пара) в дифференциальном включении используются для приёма и передачи данных, а два провода — для питания периферийного устройства.
Спецификация 1.0 регламентировала два типа разъёмов:
Впоследствии были разработаны миниатюрные разъёмы для применения USB в переносных и мобильных устройствах, получившие название Mini-USB.
Существуют также разъёмы типа Mini AB и Micro AB, с которыми соединяются соответствующие коннекторы как типа A, так и типа B.
Сеть Внимания пирамиды для сегментации сегментации
Сеть Внимания пирамиды для сегментации сегментации Эта статья предлагает сковороду, предлагая функцию модуля привлечения пирамиды (FPA) и Global Module Atterty Upsample (GAU), вводящий очаговый ключ д.
Каталог статей
USB HUB
Каждый контроллер USB Host поставляется с USB-концентратором, который называется корневым концентратором. Этот корневой концентратор может быть подключен к (суб) концентраторам, и USB-устройства монтируются на каждом концентраторе. Через внешний USB-концентратор вы можете подключить больше USB-устройств. Когда USB-устройство вставлено в USB-концентратор или отключено от него, будет отправлен электрический сигнал для уведомления системы.
Запросы, пакеты и транзакции
Для передачи или приема данных клиентское ПО посылает к каналу пакет запроса ввода/вывода — IRP (Input/Output Request Packet) и ждет уведомления о завершении его отработки. Формат IRP определяется реализацией драйвера USBD в конкретной ОС. В IRP имеются только сведения о запросе (местоположение буфера передаваемых данных в оперативной памяти и длина передачи); от свойств конкретного текущего подключения (скорость, допустимый размер пакета) драйвер устройства абстрагируется. Отработкой запроса в виде транзакций на шине USB занимается драйвер USBD; при необходимости он разбивает на части длинные запросы (пакеты), пригодные для передачи за одну транзакцию. Транзакция на шине USB — это последовательность обмена пакетами между хостом и ПУ, в ходе которой может быть передан или принят один пакет данных (возможны транзакции, в которых данные не передаются). Отработка запроса считается завершенной, когда успешно выполняются все связанные с ним транзакции. «Временные трудности», встречающиеся при их выполнении (неготовность к обмену данными), до сведения клиентского драйвера не доводятся — ему остается только ждать завершения обменов (или выхода по тайм-ауту). Однако устройство может сигнализировать о серьезных ошибках (ответом STALL), что приводит к аварийному завершению запроса, о чем уведомляется клиентский драйвер. В этом случае отбрасываются и все последующие запросы к данному каналу. Возобновление работы с данным каналом возможно лишь после явного уведомления об обработке ошибочной ситуации, которое драйвер устройства делает с помощью специального запроса (тоже вызова USBD).
Длинные запросы разбиваются на транзакции так, чтобы использовать максимальный размер пакета. Последний пакет с остатком может оказаться короче максимального размера. Хост-контроллер имеет средства обнаружения приема от устройства «неполновесного» пакета, размер которого меньше ожидаемого. В запросе IRP указывается, следует ли особым образом реагировать на это событие. Особая реакция может быть двоякой:
- считать короткий пакет разделителем, указывающим на конец блока данных. При этом данный IRP завершается нормально и исполняются следующие запросы к данному каналу;
- считать короткий пакет признаком ошибки, по которому канал останавливается (все его последующие ожидающие запросы сбрасываются).
При передаче массивов использование укороченных пакетов в качестве разделителей наиболее естественно. Таким образом, например, в одном из вариантов протоколов для устройств хранения данных укороченные пакеты известной длины используются в качестве управляющих.
Кадры и микрокадры
Хост организует обмены с устройствами согласно своему плану распределения ресурсов. Для этого хост-контроллер циклически с периодом 1 мс формирует кадры (frames), в которые укладываются все запланированные транзакции (cм. рисунок ниже). Каждый кадр начинается с посылки пакета-маркера SOF (Start Of Frame), который является синхронизирующим сигналом для изохронных устройств, а также для хабов. Кадры нумеруются последовательно, в маркере SOF передаются 11 младших бит номера кадра. В режиме HS каждый кадр делится на 8 микрокадров, и пакеты SOF передаются в начале каждого микрокадра (с периодом 125 мкс). При этом во всех восьми микрокадрах SOF несет один и тот же номер кадра; новое значение номера кадра передается в нулевом микрокадре. В каждом микрокадре может быть выполнено несколько транзакций, их допустимое число зависит от скорости, длины поля данных каждой из них, а также от задержек, вносимых кабелями, хабами и устройствами. Все транзакции кадров должны быть завершены до начала интервала времени EOF (End of Frame). Период (частота) генерации микрокадров может немного варьироваться с помощью специального регистра хост-контроллера, что позволяет подстраивать частоту для изохронных передач.
Кадрирование используется и для обеспечения живучести шины. В конце каждого микрокадра выделяется интервал времени EOF (End Of Frame), на время которого хабы запрещают передачу по направлению к контроллеру. Если хаб обнаружит, что с какого-то порта в это время ведется передача данных (к хосту), этот порт отключается, изолируя «болтливое» устройство, о чем информируется USBD.
Счетчик микрокадров в хост-контроллере используется как источник индекса при обращении к таблице дескрипторов кадров. Обычно драйвер USB составляет таблицу дескрипторов для 1024 последовательных кадров1, к которой он обращается циклически. С помощью этих дескрипторов хост планирует загрузку кадров так, чтобы кроме запланированных изохронных транзакций и прерываний в них всегда находилось место для транзакций управления. Свободное время кадров может заполняться передачами массивов. Спецификация USB позволяет занимать под периодические транзакции (изохронные и прерывания) до 90% пропускной способности шины, то есть времени в каждом микрокадре.
Передачи данных USB происходят как серия событий, которые называются транзакциями. Транзакции связаны с управляемыми хостом интервалами времени, которые называются фреймами. Длина и частота транзакций зависит от типа передач (см. далее "Типы передач USB"), используемых на конечной точке.
Примечание: это перевод материалов источника [1]. Все непонятные термины и сокращения, касающиеся шины USB, см. в статье [2].
[Фреймы USB]
Спецификации фрейма распределяются по типам поддерживаемых устройством USB скоростей. Различают низкую скорость (Low Speed), полную скорость (Full Speed) и высокую скорость (High Speed). Ниже в таблицах показаны основные параметры каждого варианта скорости. Под "размером фрейма" подразумевается фиксированный интервал времени, с которым фреймы следуют друг за другом.
Таблица 1. Low Speed (размер фрейма 1 мс).
Таблица 2. Full Speed (размер фрейма 1 мс).
Таблица 3. High Speed (размер фрейма 125 мкс).
[Типы передач USB]
Типы передач USB обозначают режимы обмена данными между хостом USB и конечными точками устройства USB. Тип передачи определяет частоту и длину транзакций, используемых при обмене с конечной точкой. Типы передач могут также проверяться контрольной суммой (cyclical redundancy checksum, CRC), передаваемой с каждым пакетом. Тип передачи устанавливается устройством, и информация о типе передачи считывается хостом в процессе энумерации устройства USB.
Чтобы упростить разработку ПО для хоста USB и допустить взаимозаменяемость между продукцией устройств USB разных производителей, организация USB Developers Forum утвердила спецификации для классов устройств USB (Device Class). Классы устройств предоставляют номера конечных точек, типы передач и группирование конечных точек для устройств USB.
Бывают 4 типа передач: Interrupt, Bulk, Isochronous, Control.
Передача типа Control особая, она всегда осуществляет обмен с конечной точкой номер 0 (control endpoint, управляющая конечная точка), которую еще называют конечной точкой по умолчанию (default endpoint). В устройстве USB обязательно должна быть такая конечная точка (конечных точек IN или OUT как частный случай в устройстве может и не быть).
Передачи Interrupt, Bulk, Isochronous осуществляются на конечных точках IN (передача от устройства USB к хосту) и OUT (передача от хоста к устройству USB).
[Что учитывают при выборе типов передач]
Когда разработчик подбирает под конкретную задачу класс устройства USB и типы передач для него, он учитывает требования, накладываемые на канал связи с устройством USB.
Latency (задержки). Как быстро хосту нужно обработать обмен с конечной точкой? Чтобы обеспечить прогнозируемое время отклика, транзакции обмена должны быть запланированы с фиксированными интервалами времени. Например, если конечная точка должна обрабатываться после прохождения 10 фреймов, время отклика составит 10 мс при использовании Full-Speed USB. Чтобы гарантировать определенную задержку в обмене, конечная точка обрабатывается строго в предписанном интервале времени, независимо от того, какая есть активность на канале связи с устройством. Выделение времени на каждый фрейм для обслуживания не активных устройств ограничивает общее количество устройств, которые могут быть обработаны из-за конечного свободного времени во фрейме.
Ширина канала (пропускная способность). Количество пакетов в единицу времени и длина каждого пакета влияют на полосу пропускания канала (bandwidth). Увеличение размера транзакции увеличит полосу, однако большие пакеты не предусматривают проверку CRC. Кроме того, резервирование частей кадра для длинных широкополосных передач ограничивает потенциальное количество устройств, которое может быть обработано хостом.
Увеличение количества транзакций с разрешенной CRC, отправленных в кадре, увеличит пропускную способность, однако этот метод ставит ту же самую дилемму количества обрабатываемых устройств, которую вводят длинные фреймы.
Управление и конфигурация. Часть фрейма должна быть доступна для хоста, чтобы обеспечить энумерацию новых (только что подключенных к шине) устройств, и чтобы можно ыбло посылать команды управления для устройств, прошедших в настоящий момент энумерацию.
[Типы передач, используемые USB]
Как результат учета перечисленных выше параметров канала связи с устройством, организация USB Developers Forum утвердила следующие типы передач для USB:
Interrupt Transfer. Короткие пакеты с CRC, отправка которых запланирована в фиксированные интервалы времени. Хотя на рисунке ниже показаны передачи, запускаемые в каждом кадре, interrupt-передачи могут быть запланированы на передачу через определенное количество фреймов, например в каждом десятом фрейме.
Interrupt-передачи будут происходить всегда, вне зависимости от того, есть ли какие-либо данные для передачи, или нет.
В таблице кратко перечислены достоинства, недостатки и основные области использования interrupt-передач.
Isochronous Transfer. Это длинные пакеты без CRC. Изохронные передачи планируются с фиксированными интервалами времени. Полоса фрейма освобождается хостом, если не нужна коммуникация с конечной точкой.
В таблице кратко перечислены достоинства, недостатки и основные области использования изохронных передач.
Bulk Transfer. Короткие пакеты с CRC. Передачи Bulk не планируются с определенными интервалами, они могут происходить, когда во фрейме есть для этого доступная полоса (см. рисунок ниже). Несколько Bulk-передач могут пройти в одном фрейме, если в нем есть для них свободное место.
В таблице кратко перечислены достоинства, недостатки и основные области использования bulk-передач.
[Скорости USB и соответствующие стандарты]
Устройства и хосты USB классифицируются по поддерживаемой скорости, не просто по номеру спецификации. Объявление совместимости продукции USB с определенным номером стандарта хотя и является точным, однако может не предоставлять полную информацию, необходимую для обмена с устройством.
Участники USB Implementers Forum утвердили несколько пронумерованных спецификаций для USB. Большинство спецификаций было добавлено для поддержки новых скоростей. Спецификации USB также устанавливают, что должны поддерживаться скорости предыдущей версии стандарта. Например, USB 2.0 представила скорость High Speed USB, однако также она предоставляет как часть своей спецификации скорости Low Speed и Full Speed USB, впервые определенные в USB 1.0. Если продукт обозначает себя как "USB 2.0 device", этим он не сообщает, какие реально скорости в нем реализованы.
Таблица 4. Спецификации USB и их классы скоростей
Таблица 5. Передаваемая мощность питания и спецификации новых соединителей.
[Ссылки]
В современном мире электронная техника развивается семимильными шагами. Каждый день появляется что-то новое, и это не только небольшие улучшения уже существующих моделей, но и результаты применения инновационных технологий, позволяющих в разы улучшить характеристики.
Не отстает от электронной техники и приборостроительная отрасль – ведь чтобы разработать и выпустить на рынок новые устройства, их необходимо тщательно протестировать, как на этапе проектирования и разработки, так и на этапе производства. Появляются новая измерительная техника и новые методы измерения, а, следовательно – новые термины и понятия.
Для тех, кто часто сталкивается с непонятными сокращениями, аббревиатурами и терминами и хотел бы глубже понимать их значения, и предназначена эта рубрика.
Введение в USB
1. Определение USB
- USB (универсальная последовательная шина), универсальная последовательная шина, представляет собой стандарт внешней шины, используемый для связи и регулирования соединения и связи между компьютерами и внешними устройствами. USB был предложен Intel, Compaq, IBM, Microsoft и многими другими компаниями в конце 1994 года. С момента своего появления в 1996 году USB успешно заменил последовательные и параллельные порты и сегодня стал одним из необходимых интерфейсов для компьютеров и большого количества интеллектуальных устройств.
2. История развития USB
Три, преимущества USB
- С возможностью горячей замены. Это позволяет пользователям использовать внешние устройства, не повторяя действий "" выключить параллельный порт или последовательный кабель и снова включить "". Вместо этого они могут подключить USB-кабель при работе непосредственно на компьютере.
- Легко носить. USB-устройства в основном известны своими «маленькими, легкими и тонкими». Для пользователей тот же жесткий диск емкостью 20 ГБ, жесткий диск USB составляет половину веса жесткого диска IDE.
- Единый интерфейс。
- Можно подключить несколько устройств。
Четыре, интерфейс USB
Интерфейс USB имеет четыре линии, две линии питания и две сигнальные линии. Выходное напряжение и ток интерфейса USB: + 5 В 500 мА.
- Источник питания USB: с маркировкой VCC, Power, 5V, 5VSB
- USB-кабель для передачи данных: (положительный) DATA +, USB +, PD +, USBDT +
- USB-кабель для передачи данных: (отрицательный) DATA-, USB-, PD-, USBDT-
- Провод заземления: GND, Земля
Хост-контроллер USB
Хост-контроллер USB отвечает за обработку электрических соединений и взаимосвязей на уровне протокола между хостом и устройством. Общие технические характеристики хост-контроллера USB:
- OHCI: В основном USB-чипы в системах, отличных от ПК.
- UHCI: в основном микросхемы контроллеров USB на материнских платах Intel и Via. Большинство из них являются спецификациями USB1.1.
- EHCI: он разработан несколькими производителями, такими как Intel, совместим с OHCI и UHCI и соответствует спецификации USB 2.0.
Восемь шагов перечисления USB-устройств
- Получить дескриптор устройства
- Сброс настроек
- Установить адрес
- Получить дескриптор устройства снова
- Получить дескриптор конфигурации
- Получить дескриптор интерфейса и конечной точки
- Получить дескриптор строки
- Получить конфигурацию устройства
ПО для анализа нумерации USB-устройств
Можно использовать USBlyzer. С помощью программного обеспечения для анализа его можно проанализировать в соответствии с этапами перечисления USB-устройств, что способствует изучению драйвера USB. Анализ программного обеспечения на моем собственном компьютере выглядит следующим образом:Массовый перевод
СюдаИспользуется для передачи данных, требующих правильностиОбычно таким образом к хосту подключаются принтеры, сканеры и цифровые камеры.
Принципы передачи данных
Механизм передачи данных является асинхронным и блочным. Блок передаваемых данных называется USB-фреймом или USB-кадром и передается за фиксированный временной интервал. Оперирование командами и блоками данных реализуется при помощи логической абстракции, называемой каналом. Канал является логической связкой между хостом и конечной точкой внешнего устройства.
Любой обмен по шине USB инициируется хост-контроллером. Он организует обмены с устройствами согласно своему плану распределения ресурсов.
Контроллер циклически (с периодом 1,0 ± 0,0005 мс) формирует кадры (frames), в которые укладываются все запланированные передачи.
Каждый кадр начинается с посылки пакета-маркера SOF (Start Of Frame, начало кадра), который является синхронизирующим сигналом для всех устройств, включая хабы. В конце каждого кадра выделяется интервал времени EOF (End Of Frame, конец кадра), на время которого хабы запрещают передачу по направлению к контроллеру. Если хаб обнаружит, что с какого-то порта в это время ведется передача данных, этот порт отключается.
В режиме высокоскоростной передачи пакеты SOF передаются в начале каждого микрокадра (период 125 ± 0,0625 мкс).
Хост планирует загрузку кадров так, чтобы в них всегда находилось место для наиболее приоритетных передач, а свободное место кадров заполняется низкоприоритетными передачами больших объемов данных. Спецификация USB позволяет занимать под периодические транзакции (изохронные и прерывания) до 90% пропускной способности шины.
Каждый кадр имеет свой номер. Хост-контроллер оперирует 32-битным счетчиком, но в маркере SOF передает только младшие 11 бит. Номер кадра циклически увеличивается во время EOF.
Для изохронной передачи важна синхронизация устройств и контроллера. Есть три варианта синхронизации:
- синхронизация внутреннего генератора устройства с маркерами SOF;
- подстройка частоты кадров под частоту устройства;
- согласование скорости передачи (приема) устройства с частотой кадров.
В каждом кадре может быть выполнено несколько транзакций, их допустимое число зависит от скорости, длины поля данных каждой из них, а также от задержек, вносимых кабелями, хабами и устройствами. Все транзакции кадров должны быть завершены до момента времени EOF. Частота генерации кадров может немного варьироваться с помощью специального регистра хост-контроллера, что позволяет подстраивать частоту для изохронных передач. Подстройка частоты кадров контроллера возможна под частоту внутренней синхронизации только одного устройства.
Информация по каналу передается в виде пакетов (Packet). Каждый пакет начинается с поля синхронизации SYNC (SYNChronization), за которым следует идентификатор пакета PID (Packet IDentifier). Поле Check представляет собой побитовую инверсию PID.
Структура данных пакета зависит от группы, к которой он относится.
1. Клиентское ПО посылает IPR-запросы уровню USBD.
2. Драйвер USBD разбивает запросы на транзакции по следующим правилам:
- выполнение запроса считается законченным, когда успешно завершены все транзакции, его составляющие;
- все подробности отработки транзакций (такие как ожидание готовности, повтор транзакции при ошибке, неготовность приемника и т. д.) до клиентского ПО не доводятся;
- ПО может только запустить запрос и ожидать или выполнения запроса или выхода по тайм-ауту;
- устройство может сигнализировать о серьезных ошибках, что приводит к аварийному завершению запроса, о чем уведомляется источник запроса.
3. Драйвер контроллера хоста принимает от системного драйвера шины перечень транзакций и выполняет следующие действия:
- планирует исполнение полученных транзакций, добавляя их к списку транзакций;
- извлекает из списка очередную транзакцию и передает ее уровню хост-контроллера интерфейса шины USB;
4. Хост-контроллер интерфейса шины USB формирует кадры;
5. Кадры передаются последовательной передачей бит по методу NRZI
Таким образом, можно сформировать следующую упрощенную схему:
1. каждый кадр состоит из наиболее приоритетных посылок, состав которых формирует драйвер хоста;
2. каждая передача состоит из одной или нескольких транзакций;
3. каждая транзакция состоит из пакетов;
4. каждый пакет состоит из идентификатора пакета, данных (если они есть) и контрольной суммы.
Спецификация шины определяет четыре различных типа передачи (transfer type) данных для конечных точек:
- управляющие передачи (Control Transfers) — используются хостом для конфигурирования устройства во время подключения, для управления устройством и получения статусной информации в процессе работы. Протокол обеспечивает гарантированную доставку таких посылок. Длина поля данных управляющей посылки не может превышать 64 байт на полной скорости и 8 байт на низкой. Для таких посылок хост гарантированно выделяет 10% полосы пропускания;
- передачи массивов данных (Bulk Data Transfers) — применяются при необходимости обеспечения гарантированной доставки данных от хоста к функции или от функции к хосту, но время доставки не ограничено. Такая передача занимает всю доступную полосу пропускания шины. Пакеты имеют поле данных размером 8, 16, 32 или 64 байт. Приоритет у таких передач самый низкий, они могут приостанавливаться при большой загрузке шины. Допускаются только на полной скорости передачи. Такие посылки используются, например, принтерами или сканерами;
- передачи по прерываниям (Interrupt Transfers) — используются в том случае, когда требуется передавать одиночные пакеты данных небольшого размера. Каждый пакет требуется передать за ограниченное время. Операции передачи носят спонтанный характер и должны обслуживаться не медленнее, чем того требует устройство. Поле данных может содержать до 64 байт на полной скорости и до 8 байт на низкой. Предел времени обслуживания устанавливается в диапазоне 1—255 мс для полной скорости и 10—255 мс — для низкой. Такие передачи используются в устройствах ввода, таких как мышь и клавиатура;
- изохронные передачи (Isochronous Transfers) — применяются для обмена данными в "реальном времени", когда на каждом временном интервале требуется передавать строго определенное количество данных, но доставка информации не гарантирована (передача данных ведется без повторения при сбоях, допускается потеря пакетов). Такие передачи занимают предварительно согласованную часть пропускной способности шины и имеют заданную задержку доставки. Изохронные передачи обычно используются в мультимедийных устройствах для передачи аудио- и видеоданных, например, цифровая передача голоса. Изохронные передачи разделяются по способу синхронизации конечных точек — источников или получателей данных — с системой: различают асинхронный, синхронный и адаптивный классы устройств, каждому из которых соответствует свой тип канала USB.
Общая архитектура USB
Физическая архитектура USB определяется следующими правилами:
- устройства подключаются к хосту;
- физическое соединение устройств между собой осуществляется по топологии многоярусной звезды, вершиной которой является корневой хаб;
- центром каждой звезды является хаб;
- каждый кабельный сегмент соединяет между собой две точки: хост с хабом или функцией, хаб с функцией или другим хабом;
- к каждому порту хаба может подключаться периферийное USB-устройство или другой хаб, при этом допускаются до 5 уровней каскадирования хабов, не считая корневого.
Самым верхним уровнем является корневой концентратор, который обычно совмещается с USB контроллером.
К корневому концентратору могут быть подключены либо устройства, либо еще концентраторы, для увеличения числа доступных портов. Концентратор может быть выполнен в виде отдельного устройства, либо быть встроенным в какое-то другое, т.е. устройства, подключаемые к USB, можно подразделить на функциональные устройства, т.е. те, которые выполняют какую-то конкретную функцию (например, мыши), устройства-концентратор, выполняющие только функцию только разветвления, и совмещенные устройства, имеющие в своем составе концентратор, расширяющие набор портов (например, мониторы, с портами для подключения других).
На пятом уровне комбинированное устройство использоваться не может. Кроме того отдельно стоит упомянуть о хосте, являющемся скорее программно-аппаратным комплексом, нежели просто устройством.
Детали физической архитектуры скрыты от прикладных программ в системном программном обеспечении (ПО), поэтому логическая архитектура выглядит как обычная звезда, центром которой является прикладное ПО, а вершинами – набор конечных точек. Прикладная программа ведет обмен информацией с каждой конечной точкой.
LeetCode 595. Big Countries
LeetCode 595. Big Countries тема There is a table World A country is big if it has an area of bigger than 3 million square km or a population of more than 25 million. Write a SQL solution to output bi.
Шина USB обеспечивает обмен данными между хост-компьютером и множеством периферийных устройств (ПУ). USB является единой централизованной аппаратно-программной системой массового обслуживания множества устройств и множества прикладных программных процессов. Связь программных процессов со всеми устройствами обеспечивает хост-контроллер с многоуровневой программной поддержкой. Этим USB существенно отличается от традиционных периферийных интерфейсов (портов LPT, COM, GAME, клавиатуры, мыши и т. п.), сравнение этих типов подключений приводится в таблице.
Таблица. Сравнение шины USB с традиционными периферийными интерфейсами
Традиционные интерфейсы (COM, LPT, Game…) Шина USB Подключение каждого устройства в общем случае требует присутствия собственного контроллера (адаптера) 1 Все устройства подключены через один хостконтроллер Каждый контроллер занимает свои ресурсы (области в пространстве памяти, ввода/вывода, а также запросы прерывания) Ресурсы занимает только хост-контроллер Малое количество устройств, которые возможно одновременно подключить к компьютеру Возможность подключения до 127 устройств Драйверы устройств могут обращаться непосредственно к контроллерам своих устройств, независимо друг от друга Драйверы устройств обращаются только к общему драйверу хост-контроллера Независимость драйверов оборачивается непредсказуемостью результата одновременной работы с множеством устройств, отсутствием гарантий качества обслуживания (возможность задержек и уменьшения скорости передачи)
для различных устройствЦентрализованный планируемый обмен обеспечивает гарантии качества обслуживания, что позволяет передавать мультимедийные изохронные данные наряду с обычным асинхронным обменом Разнообразие интерфейсов, разъемов и кабелей, специфичных для каждого типа устройств Единый удобный и дешевый интерфейс для подключения устройств всех типов. Возможность выбора скорости работы устройства (1,5–15–480 Мбит/с) в зависимости от потребности Отсутствие встроенных средств обнаружения подключения/отключения и идентификации устройств, сложность поддержки PnP Возможность «горячего» подключения/отключения устройств, полная поддержка PnP, динамическое конфигурирование Отсутствие средств контроля ошибок Встроенные средства обеспечения надежной передачи данных Отсутствие штатного питания устройств Возможность питания устройств от шины, а также наличие средств управления энергопотреблением 1 — Возможностью подключения к одному контроллеру множества устройств обладает и шина SCSI, но ее параллельный интерфейс по сравнению с USB слишком дорог, громоздок и более ограничен в топологии.
Перечисление USB-устройств
Прежде чем устройство USB заработает нормально,Первое, что нужно сделать, это перечислить。Перечисление позволяет HOST распознать USB-устройство, подготовить ресурсы для устройства и установить механизм передачи данных между хостом и устройством.
Один из драйверов USB (введение USB, передача данных USB, перечисление USB-устройств)
Логические уровни обмена данными
Спецификация USB определяет три логических уровня с определенными правилами взаимодействия. USB-устройство содержит интерфейсную, логическую и функциональную части. Хост тоже делится на три части – интерфейсную, системную и ПО. Каждая часть отвечает только за определенный круг задач.
Таким образом, операция обмена данными между прикладной программой и шиной USB выполняется путем передачи буферов памяти через следующие уровни:
- уровень клиентского ПО в хосте:
- обычно представляется драйвером USB-устройства;
- обеспечивает взаимодействие пользователя с операционной системой с одной стороны и системным драйвером с другой;
- управляет нумерацией устройств на шине;
- управляет распределением пропускной способности шины и мощности питания;
- обрабатывает запросы пользовательских драйверов;
- преобразует запросы ввода/вывода в структуры данных, по которым выполняются физические транзакции;
- работает с регистрами хоста.
Отношения клиентского программного обеспечения и USB устройств: USB предоставляет для взаимодействия программный интерфейс и только его, позволяя клиентскому ПО существовать в отрыве от конкретного подключенного к шине устройства и его конфигурации. Для клиентской программы USB - это лишь набор функций.
Взаимодействие компонентов USB представлено на схеме ниже:
В рассматриваемую структуру входят следующие элементы:
Физическое устройство USB — устройство на шине, выполняющее функции, интересующие конечного пользователя.
Client SW — ПО, соответствующее конкретному устройству, исполняемое на хост-компьютере. Может являться составной частью ОС или специальным продуктом.
USB System SW — системная поддержка USB, независимая от конкретных устройств и клиентского ПО.
USB Host Controller — аппаратные и программные средства для подключения устройств USB к хост-компьютеру.
Дескриптор конфигурации
Длина дескриптора конфигурации USB составляет 8 байтов, а формат следующий:
Существительное переводится следующим образом:Основные понятия
Архитектура USB допускает четыре базовых типа передач данных между хостом и периферийными устройствами:
Аппаратная часть USB включает:
- периферийные устройства USB, несущие полезные функции (USB-functions);
- хост-контроллер (Host Controller), обеспечивающий связь шины с центром компьютера, объединенный с корневым хабом (Root Hub), обеспечивающим точки подключения устройств USB. Существует два варианта хост-контроллеров USB 1.x — UHC (Universal Host Controller) и OHC (Open Host Controller), поддерживающие скорости FS/LS; высокую скорость шины USB 2.0 (HS и только) поддерживает EHC (Enhanced Host Controller);
- хабы USB (USB Hubs), обеспечивающие дополнительные точки подключения устройств;
- кабели USB, соединяющие устройства с хабами.
Программная часть USB включает:
- клиентское ПО (CSw, Client Software) — драйверы устройств USB, обеспечивающие доступ к устройствам со стороны прикладного ПО. Эти драйверы взаимодействуют с устройствами только через программный интерфейс с общим драйвером USB (USBD). Непосредственного обращения к каким-либо регистрам аппаратных средств драйверы устройств USB не выполняют;
- драйвер USB (USBD, USB Driver), «заведующий» всеми USB-устройствами системы, их нумерацией, конфигурированием, предоставлением служб, распределением пропускной способности шины, мощности питания и т. п.;
- драйвер хост-контроллера (HCD, Host Controller Driver), преобразующий запросы ввода/вывода в структуры данных, размещенные в коммуникационной области оперативной памяти, и обращающийся к регистрам хост-контроллера. Хост-контроллер выполняет физические транзакции, руководствуясь этими структурами данных.
Драйверы USBD и HCD составляют хост-часть ПО USB; спецификация USB очерчивает круг их задач, но не описывает интерфейс между ними. Физическое устройство USB должно иметь интерфейс USB, обеспечивающий полную поддержку протокола USB, выполнение стандартных операций (конфигурирование и сброс) и предоставление информации, описывающей устройство. Физические устройства USB могут быть комбинированными (compound devices): включать в себя несколько устройств-функций, подключенных к внутреннему хабу, а также предоставлять своим внутренним хабом дополнительные внешние точки подключения.
Работой всех устройств шины USB управляет хост-контроллер (host controller), являющийся программно-аппаратной подсистемой хост-компьютера. Хост-контроллер является интеллектуальным устройством шины PCI или составной частью «южного» хаба (моста) системной платы, интенсивно взаимодействующим с оперативной памятью.
Физическая топология шины USB — многоярусная звезда (см. рисунок, а). Ее вершиной является хост-контроллер, объединенный с корневым хабом (root hub). Хаб является устройством-разветвителем, он может служить и источником питания для подключенных к нему устройств. К каждому порту хаба может непосредственно подключаться периферийное устройство или промежуточный хаб; шина допускает до пяти уровней (ярусов) каскадирования хабов (не считая корневого). Поскольку комбинированные устройства содержат внутри себя хаб, их подключение к хабу пятого яруса уже недопустимо. Каждый промежуточный хаб имеет несколько нисходящих (downstream) портов для подключения периферийных устройств (или нижележащих хабов) и один восходящий (upstream) порт для подключения к корневому хабу или нисходящему порту вышестоящего хаба.
Логическая топология USB — звезда. Хабы (включая корневой) создают иллюзию непосредственного подключения каждого логического устройства к хост-контроллеру (см. рисунок ниже, б). В этой звезде устанавливаются сугубо подчиненные отношения по системе опроса-ответа: хост-контроллер по своей инициативе передает данные к выбранному устройству или принимает их. Устройство по своей инициативе передавать данные не может; непосредственные передачи данных между устройствами невозможны. Устройство по своей инициативе может лишь сигнализировать о «пробуждении» (wakeup), для чего используется специальная сигнализация, но не передача данных.
Физический интерфейс USB прост и изящен. Конструкция кабелей и коннекторов USB не дает возможности ошибиться при подключении устройств (см. рисунок ниже, а и б). Для распознавания разъема USB на корпусе устройства ставится стандартное символическое обозначение (см. рисунок ниже, в). Гнезда типа «A» устанавливаются только на нисходящих портах хабов, вилки типа «A» — на шнурах периферийных устройств или восходящих портов хабов. Гнезда и вилки типа «B» используются только для шнуров, отсоединяемых от периферийных устройств и восходящих портов хабов (от «мелких» устройств — мышей, клавиатур и т. п. кабели, как правило, не отсоединяются). Для малогабаритных устройств имеются разъемы mini-B, а для поддержки OTG (On-the-Go) имеются и вилки mini-A, и розетки miniAB. Хабы и устройства обеспечивают возможность «горячего» подключения и отключения с сигнализацией об этих событиях хосту.
При планировании соединений следует учитывать способ питания устройств: устройства, питающиеся от шины, как правило, подключают к хабам, питающимся от сети. К хабам, питающимся от шины, подключают лишь маломощные устройства — так, к клавиатуре USB, содержащей внутри себя хаб, подключают мышь USB и другие устройства-указатели (трекбол, планшет).
Логическое устройство USB представляет собой набор независимых конечных точек (Endpoint, EP), с которыми хост-контроллер (и клиентское ПО) обменивается информацией. Каждому логическому устройству USB (как функции, так и хабу) конфигурационная часть ПО хоста назначает свой адрес (1–127), уникальный на данной шине USB. Каждая конечная точка логического устройства идентифицируется своим номером (0–15) и направлением передачи (IN — передача к хосту, OUT — от хоста). Точки IN4 и OUT4, к примеру, представляют собой разные конечные точки, с которыми могут общаться даже модули клиентского ПО. Набор конечных точек зависит от устройства, но всякое устройство USB обязательно имеет двунаправленную конечную точку 0 (EP0), через которую осуществляется его общее управление. Для прикладных целей используются конечные точки с номерами 1–15 (1–2 для низкоскоростных устройств). Адрес устройства, номер и направление конечной точки однозначно идентифицируют приемник или источник информации при обмене хост-контроллера с устройствами USB. Каждая конечная точка имеет набор характеристик, описывающих поддерживаемый тип передачи данных (изохронные данные, массивы, прерывания, управляющие передачи), размер пакета, требования к частоте обслуживания.
Устройство может выполнять несколько различных функциональных задач: например, привод CD-ROM может обеспечивать проигрывание аудиодисков и работать как устройство хранения данных. Для решения каждой задачи в устройстве определяется интерфейс — набор конечных точек, предназначенных для выполнения данной задачи, и правила их использования. Таким образом, каждое устройство должно обеспечивать один или несколько интерфейсов. Наличие нескольких интерфейсов позволяет нескольким драйверам, каждый из которых обращается только к своему интерфейсу (представляющему часть устройства USB), работать с одним и тем же устройством USB. Каждый интерфейс может иметь один или несколько альтернативных вариантов (альтернативных установок — alternate settings), из которых в данный момент активным может быть только один. Варианты различаются наборами (возможно, и характеристиками) используемых конечных точек.
Набор одновременно поддерживаемых интерфейсов составляет конфигурацию устройства. Устройство может иметь одну или несколько возможных конфигураций, из которых на этапе конфигурирования хост выбирает одну, делая ее активной. От выбранной конфигурации зависит доступная функциональность, и зачастую — потребляемая мощность. Пока устройству не назначен номер выбранной конфигурации, оно не может функционировать в прикладном смысле и ток потребления от шины не должен превышать 100 мА. Хост выбирает конфигурацию исходя из доступности всех ресурсов, затребованных данной конфигурацией, включая и ток потребления от шины.
Дескриптор устройства
Длина дескриптора USB-устройства составляет 18 байт, а формат показан на рисунке ниже:
Часть объяснения и перевода:Практика работы с регулярными выражениями
Передача данных через USB
Ввиду различных требований устройств к системным ресурсам в спецификации USB указаны четыре различных метода передачи данных:
Четыре типа передачи соответствуют четырем типам конечных точек.
USB-устройство
USB-устройство - это устройство, которое работает на шине USB.В широком смысле USB-концентратор также является USB-устройством. Некоторые USB-устройства выполняют одну функцию и монтируются непосредственно на USB-концентраторе. Некоторые устройства USB имеют сложные функции и объединяют несколько функций USB в составное устройство.
Интеллектуальная рекомендация
История
USB шина появилась в 1996 году как попытка решения проблемы множественности интерфейсов. К тому времени персональные компьютеры (ПК) были оснащены большим количеством разнообразных внешних полезных и необходимых интерфейсов, но все они требовали своего специального разъема и, чаще всего, выделенного аппаратного прерывания (IRQ, Interrupt ReQuest).
USB была разработана группой из семи компаний(Compaq, Digital Equipment Corp, IBM PC Co., Intel, Microsoft, NEC и Northern Telecom).
Первая спецификация (версия 1.0) USB была опубликована в начале 1996 года, а осенью 1998 года появилась спецификация 1.1, исправляющая проблемы, обнаруженные в первой редакции. Весной 2000 года была опубликована версия 2.0, в которой предусматривалось 40-кратное повышение пропускной способности шины. Так, спецификация 1.0 и 1.1 обеспечивает работу на скоростях 12 Мбит/с и 1,5 Мбит/с, а спецификация 2.0 – на скорости 480 Мбит/с. При этом предусматривается обратная совместимость USB 2.0 с USB 1.х.
Режимы передачи данных
Шина USB имеет три режима передачи данных:
- низкоскоростной (LS, Low-speed) 1.5 Мбит/с;
- полноскоростной (LF, Full-speed) 12 Мбит/с;
- высокоскоростной (HS, High-speed, только для USB 2.0) 480 Мбит/с.
Передача управления
Передача управления в основном используется для передачи инструкций по управлению оборудованием, запроса состояния оборудования и подтверждения команд. Когда устройство USB получает эти данные и команды, оно обрабатывает поступающие данные в очереди в соответствии с принципом «первым пришел - первым обслужен».
Дескриптор интерфейса
Длина дескриптора интерфейса USB составляет 8 байтов, а формат следующий:
Существительное переводится следующим образом:Дескриптор конечной точки
следующим образом:
Дескриптор записывает информацию об устройстве, вы можете узнать производителя устройства, несколько конфигураций, несколько интерфейсов (функций) и информацию о конечной точке.Читайте также: