Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Все о USB , Программирование USB интерфейса и работа с USB периферии для программистов

Лекция



Привет, Вы узнаете о том , что такое usb, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое usb , настоятельно рекомендую прочитать все из категории Операционные системы и системное программировние.

USB (англ. Universal Serial Bus — «универсальная последовательная шина») — последовательный интерфейс для подключения периферийных устройств к вычислительной технике. Получил широчайшее распространение и стал основным интерфейсом подключения периферии к бытовой цифровой технике.

Интерфейс позволяет не только обмениваться данными, но и обеспечивать электропитание периферийного устройства. Сетевая архитектура позволяет подключать большое количество периферии даже к устройству с одним разъемом USB.

Разработка спецификаций USB производится в рамках международной некоммерческой организации USB Implementers Forum (USB-IF), объединяющей разработчиков и производителей оборудования с шиной USB. В процессе развития выработано несколько версий спецификаций . Тем не менее разработчикам удалось сохранить высокую степень совместимости оборудования разных поколений. Спецификация интерфейса охватывает беспрецедентно широкий круг вопросов подключения и взаимодействия периферийных устройств с вычислительной системой:

  • унификацию разъемов и кабелей
  • нормирование энергопотребления
  • протоколы обмена данными
  • унификацию функциональности и драйверов устройств

Разрабатывается электронное устройство, которое будучи подключенным к датчику выполняет измерение микроперемещения и передает результат на ПК, где он выводится в удобной для оператора графической форме. Область применения измерительного прибора — машиностроение.

Немного о том, как все работает


Все о USB  , Программирование  USB интерфейса и работа с  USB  периферии для программистов

На схеме показаны основные действующие лица, участвующие в жизни разрабатываемого прибора.
Микроконтроллер — основной элемент устройства, который подает управляющие сигналы на датчик и принимает отклик, по которому вычисляет результат измерения. С помощью реализованного стека USB обмен данными с хостом сводится практически к работе с буферами чтения и записи. Ввиду того, что измерительный алгоритм не требует больших вычислительных мощностей и период одного измерения равен 100-150 мс выбран микроконтроллер at90usb162 (8 бит, 16 МГц, 16 кБ). В этом МК есть аппаратная поддержка USB, что значительно упрощает программную реализацию стека USB. В прочем, реализовывать стек и заниматься инициализацией МК мне не пришлось благодаря примеру USB Generic HID Implementation из сопроводительного пакета ПО. Из альтернатив фирменным примерам для AVR есть фреймворк LUFA (лицензия MIT) для AT90USBxxxx и ATMEGAxxUx и полностью программная реализация стека V-USB (GPL или коммерческая лицензия), позволяющая работать с AVR-овскими МК без аппаратной поддержки USB.

Немножко о аббревиатуре HID. Это класс USB-устройств, предназначенных для ввода данных человеком: клавиатура, мышь, игровые контроллеры. Предполагается, что у таких устройств небольшой объем передаваемой информации, как и у разрабатываемого устройства: пакеты по 8 байт с интервалом в 100-150 мс. Главное удобство работы с устройствами этого класса — наличие стандартного драйвера в ОС, что освобождает от написания своего.

Хостом (мастером, ведущим) в моем случае является ПК, а точнее встроенный в материнку контроллер USB. Согласно дескриптору (описанию) моего устройства хост опрашивает его на предмет новых посылок с периодом примерно в 20 мс. Прикладное ПО собирает принятые хостом данные, проводит небольшую обработку и рисует индикаторы, напоминающие автомобильные спидометры, на которых показываются измеряемые величины. Выводится список подключенных датчиков и их настройки, которые можно изменить: изменения будут переданы на устройство и сохранены в энергонезависимой памяти.

Одна из идей приложения — кроссплатформенность, поэтому оно разрабатывается во фреймворке Qt на С++, а обращения к ОС для считывания и передачи данных выполняются через библиотеку libusb. Последние несколько месяцев идет активная разработка бэкенда libusb v1.0 для виновс, уже пишут о предрелизном статусе и, что более важно, у меня с ней вроде все работает. Также есть порт libusb v0.1 для винды — LibUsb-Win32. Тема работы через WinAPI подробно и с примерами на Visual Basic и Visual C# раскрыта в книге USB Complete (о книге). Я WinAPI попробовал и мне не понравилось.

VID и PID


Выпуская свое USB устройство в свет компания должна назначить ему идентификатор производителя (vid – vendor id) и продукта (pid – product id, не путать с серийным номером). Формально, уникальность необходима для предотвращения конфликтов между драйверами устройств в ОС. Хотя у меня есть подозрение, что это скорее один из способов заработать для создателей стандарта, чем единственное возможное техническое решение. Впрочем, осуждать их за стремление заработать на созданном ими же стандарте я, конечно, не буду.
Итак, для производителя периферии есть два пути для получения собственного vid:

  • единовременно заплатить $2000 за vid
  • или стать членом USB-IF за $4000 в год.

Для тех, кто не в состоянии заплатить такие деньги, производители чипов предоставляют различные варианты использования их vid и pid:

  • Atmel. В faq перечислены правила, следуя которым можно использовать vid/pid чипа для своего устройства.
  • FTDI. Кроме использования встроенных vid/pid, компания предлагает отправить запрос на бесплатное выделение pid.
  • Microcip также предлагает отправить заявку на выделение pid.
  • Silicon Labs. Вот что пишут на форумах:
    • «SiLabs дает готовый пакет для генерации драйвера с вашим собственным описанием устройства, но vid/pid там будет от SiLabs (vid 10C4, pid EA60).»
    • «Если адаптер usb-com — от Силабса, то у них же можно бесплатно получить vid/pid. Мы уже два получили. Надо написать письмо на английском, в ответ они вышлют анкету. Ответы на анкету — письмом опять в Силабс, и через два дня присылают vid/pid. Но надо, конечно, подробно расписать проект (дата старта, объемы) и сайт свой указать (на *.com желательно).»
    • Чипы, которые реализуют usb-протокол исключительно аппаратно могут использовать встроенные в аппаратную часть vid и pid. Например, это касается чипов FTDI.

Здесь опубликован перевод на русский язык уникального документа USB in a NutShell, облегчающего разработчикам всего мира первое знакомство с протоколом USB. Наилучшая точка старта для новичков, и неплохое средство прочистить мозги более опытным разработчикам (которым кажется, что они что-то знают). Если какие-то термины и сокращения будут непонятны, пользуйтесь разделом [Термины] в конце статьи.

Глава 1: введение

Начало работы с протоколом USB выглядит устрашающе. Например, одна только документация стандарта USB 2.0 на 650 страниц может оттолкнуть любого новичка. И это только начало длинного списка связанных стандартов для USB. Стандарты классов USB, как например HID Class Specification с общим описанием работы устройств (клавиатур, мышей, и т. д.), попадающих в класс HID (Human Interface Devices) – занимают еще 97 страниц. Если Вы разрабатываете USB хост, то нужно выбрать один из трех стандартов интерфейса хоста (Host Controller Interface Standards). Ни один из них не детализирован в спецификации USB 2.0.

Хорошие новости – нет необходимости читать весь стандарт USB. Некоторые главы вышли из стен маркетинга, другие посвящены нижнему уровню, о котором заботится Ваша микросхема USB контроллера и хост вместе с разработчиками хаба. Давайте немного попутешествуем по различным главам спецификации USB 2.0, и кратко рассмотрим основные моменты.

Главы Название Описание Страниц
1 Введение Включает предназначение и область действия для USB. Самая важная часть информации в этой части – ссылка на Universal Serial Bus Device Class Specifications. Нет необходимости читать эту главу. 2
2 Термины и аббревиатуры Это глава не требует пояснений – обычное зло любого стандарта. 8
3 Основные вопросы Указывает цели USB, такие как Plug’n’Play и простота работы с ним конечного пользователя (не разработчика). Представляет скорости Low, Full and High Speed со списком возможностей, полученных для целей маркетинга. Нет необходимости читать эту главу. 4
4 Обзор архитектуры Тут можно начать чтение. Эта часть предоставляет основной обзор системы USB включая топологию, скорости передачи данных, типы потоков данных, основные электрические параметры и т. д. 10
5 Модель потока данных USB (Data Flow Model) Эта глава начинает рассказ о том, как передаются данные по Универсальной Последовательной Шине (Universal Serial Bus). Тут вводят и описывают такие термины как endpoints (конечные точки) пайпы или потоки (pipes). Большая часть главы посвящена каждому типу потока данных (Control, Interrupt, Isochronous и Bulk). Важно знать каждый тип передачи и его свойства, хотя это несколько тяжело для новичка. 60
6 Механика Глава описывает два стандартных коннектора. Здесь важная информация – коннектор type A направлен на downstream (в сторону устройств USB) и коннектор type B направлен на upstream (в сторону хоста USB). Таким способом исключается возможность воткнуть кабель в два порта upstream. Все отсоединяемые кабели должны быть full/high speed, в то время как любой кабель low speed должен иметь подходящую цоколевку. Бегло просмотрев коннекторы, Вы можете пропустить эту часть, если не собираетесь заниматься производством коннекторов USB и/или кабелей. Разработчики PCB могут найти стандартные посадочные места (footprints) коннекторов. 33
7 Электрика Глава рассматривает низкий уровень электрических сигналов, включая сопротивление линии, интервалы времени нарастания/спада, спецификации драйвера (передатчика)/приемника и кодирование уровня бита, bit stuffing и т. д. Наиболее важные части этой главы описывают идентификацию скорости устройства путем подключения смещающего уровень резистора на одной из линий данных, а также сравнение bus powered devices и self powered devices. Можете проскочить через эту главу, если Вы не разрабатываете микросхемы приемопередатчиков USB. Хороший даташит на устройства USB (микросхему) описывает величину терминирующих шину резисторов, которые Вам понадобятся, чтобы соблюсти сопротивление шины. 75
8 Слой протокола Теперь мы начинаем рассматривать уровни протокола. Эта глава описывает пакеты USB на уровне отдельных байт, включая поля sync, pid, address, endpoint, CRC. После этого происходит переход на следующий слой протоколов, USB пакеты. Большинство разработчиков не обращает внимания на эти низкоуровневые слои протокола, так как применяемые ими микросхемы для устройств USB сами заботятся о них. Однако здесь важны понимание процедуры получения информации о статусе (status reporting) и процедуры установления связи (handshaking). 45
9 Фреймворк устройства USB Это наиболее часто используемая глава во всей спецификации, и только одна из всех, которую я потрудился распечатать и переплести. Она описывает энумерацию шины и коды запросов (request codes - set address, get descriptor и т. п), наиболее используемый в программировании слой протоколов USB, важный для программистов и дизайнеров. Эта глава должна быть тщательно прочитана. 36
10 Аппаратура и программное обеспечение хоста USB Эта глава покрывает проблемы, касающиеся хоста. Описываются генерация фреймов и микрофреймов, требования к контроллеру хоста, программные механизмы и драйверная модельUSB. Можете пропустить эту главу, если Вы не разрабатываете хост USB. 23
11 Описание хаба Описывает работу хабов USB включая конфигурацию хаба, разделение транзакций, стандартные дескрипторы для класса хаба и т. п. Можете пропустить эту главу, если Вы не разрабатываете хабы. 143

Теперь можно начать читать те части стандарта, которые нам действительно нужны. Если Вы разрабатываете драйвера (программное обеспечение) для периферии USB, то Вам понадобятся только следующие части:

  • 4 - Обзор архитектуры
  • 5 - Модель потока данных USB (Data Flow Model)
  • 9 - Фреймворк устройства USB
  • 10 - Аппаратура и программное обеспечение хоста USB.

Разработчикам железа периферии (электроника) понадобятся только следующие главы:

  • 4 - Обзор архитектуры
  • 5 - Модель потока данных USB (Data Flow Model)
  • 6 - Механика
  • 7 - Электрика.

USB in a NutShell для дизайнеров периферии

Теперь допустим (и это наверняка правда) что (1) большинство из нас разрабатывают периферию USB и (2) прочитали стандарт, но после этого в голове никаких идей по поводу того, как все-таки реализовать разрабатываемое устройство. В следующих 7 главах мы сфокусируемся на необходимых в разработке устройства USB частях стандарта. Это позволит Вам «воткнуться» в USB и производить дальнейшие разработки в соответствии с Вашим приложением (назначением устройства USB).

Стандарт USB 1.1 был недостаточно сложен для High Speed, и перерос в USB 2.0. Чтобы упростить понимание фундаментальных принципов USB, мы пропустим многое, касающееся непосредственно устройств USB High Speed.

Введение в Universal Serial Bus (USB)

USB версии 1.1 поддерживает две скорости – режим full speed 12 Mbits/s и режим low speed 1.5 Mbits/s. Режим 1.5 Mbits/s медленнее, и менее чувствителен к EMI (помехам), чем уменьшает стоимость ферритовых колец и снижает требования к качеству компонентов. Например, кварцы могут быть заменены на дешевые резонаторы. USB 2.0, который в настоящее время господствует для десктопов и ноутбуков, поднимает планку до 480Mbits/s. Эти 480Mbits/s обозначены как режим High Speed, и по этому параметру он может конкурировать с последовательной шиной Firewire.

Скорости USB

  • High Speed - 480Mbits/s
  • Full Speed - 12Mbits/s
  • Low Speed - 1.5Mbits/s

Список спецификаций

Спецификация Скорость Стандарт USB
Low-Speed до 1,5 Мбит/с USB 1.0
Full-Speed до 12 Мбит/с USB 1.1
High-speed до 480 Мбит/с USB 2.0
SuperSpeed до 5 Гбит/с USB 3.0 / USB 3.1 Gen 1 / USB 3.2 Gen 1
SuperSpeed+ 10Gbps до 10 Гбит/с USB 3.1 Gen 2 / USB 3.2 Gen 2
SuperSpeed++ 20Gbps до 20 Гбит/с USB 3.2 Gen 2x2

Новая схема именования

После выхода стандарта USB 3.2 организация USB-IF ввела новую схему именования[27]. Чтобы помочь компаниям с брендингом различных режимов передачи, USB-IF рекомендует называть режимы передачи 5, 10, 20 Гбит/с как SuperSpeed USB 5Gbps, SuperSpeed USB 10Gbps, SuperSpeed USB 20Gbps соответственно[28]:

Спецификация Старое название Оригинальное название Режим передачи Маркетинговое название (USB-IF branding) Скорость Скорость передачи Картинка
USB 3.2 Gen 1 USB 3.1 Gen 1 USB 3.0 Gen 1 SuperSpeed USB 5Gbps 5 Gbit/s 500 MB/s Все о USB  , Программирование  USB интерфейса и работа с  USB  периферии для программистов
USB 3.2 Gen 2 USB 3.1 Gen 2 USB 3.1 Gen 2 SuperSpeed USB 10Gbps 10 Gbit/s 1.21 GB/s Все о USB  , Программирование  USB интерфейса и работа с  USB  периферии для программистов
USB 3.2 Gen 2x2 --- USB 3.2 Gen 2 × 2 SuperSpeed USB 20Gbps 20 Gbit/s 2.42 GB/s Все о USB  , Программирование  USB интерфейса и работа с  USB  периферии для программистов

Universal Serial Bus – шина, управляемая исключительно хостом. На шине допустим один и только один хост. Спецификация USB сама по себе не поддерживает любую форму мультихостинга. Однако в спецификации On-The-Go, появившейся в стандарте USB 2.0, введен протокол Host Negotiation Protocol, который позволяет двум устройствам USB договориться, кто будет выполнять роль хоста. Это предназначено и ограничено одиночными подключениями точка-точка, например мобильный телефон – персональный органайзер, и не распространяется на хабы и конфигурации компьютеров. Хост USB ответственен за то, что предпринял все транзакции и выбрал полосу пропускания. Данные могут быть посланы методами различных транзакций, используя token-based протокол (протокол, основанный на символах).

По моему мнению, шинная топология USB несколько ограниченная. Одной из начальных целей USB было уменьшение количества кабелей, воткнутых в заднюю (или переднюю) стенку Вашего PC. Приверженцы Apple могут сказать, что эта идея пришла от Apple Desktop Bus, где клавиатура, мышь и другая периферия могут соединяться друг с другом (по топологии daisy chain), с использованием одного кабеля.

Однако USB использует топологию «tiered star» (многоярусная звезда), похожую на топологию 10BaseT Ethernet. Это предполагает возможное использование хабов, что добавляет неудобства – больше коробочек на Вашем столе и большее количество кабелей. Но это не так плохо, как может показаться поначалу. Многие устройства имеют интегрированные в себя хабы. Например, Ваша клавиатура может содержать хаб, подключенный к компьютеру. Ваша мышь и другие устройства (цифровая камера и т. п.) могут быть просто воткнуты в клавиатуру. Многие мониторы также имеют встроенный хаб.

Топология tiered star имеет некоторые преимущества перед простой топологией daisy chain. Первое – потребляемая мощность каждого устройства может отслеживаться, и переключения, перегрузки не влияют на работоспособность других устройств USB. Все high, full и low speed устройства могут поддерживаться одновременно – хаб отфильтровывает транзакции high speed и full speed, таким образом устройства с низкими скоростями не получают данные со слишком высокой скоростью.

Одновременно к одной шине USB может быть подключено до 127 устройств. Нужно больше устройств? – просто добавьте другой порт/хост. Многие старые хосты USB имели 2 порта, и многие производители сочли это недостаточным, и начали производство 4 и 5 портовых карт хоста и материнских плат, с внутренними портами USB (например, для жестких дисков). Ранние хосты имели один контроллер USB, и два порта разделяли между собой доступную полосу пропускания USB. Поскольку требования к полосе пропускания росли, мы теперь видим многопортовые платы с двумя или больше контроллерами, позволяющими организовать отдельные каналы для данных.

Контроллеры хоста USB имеют собственные спецификации. В стандарте USB 1.1 имеется две спецификации Host Controller Interface:

  • UHCI (Universal Host Controller Interface) – спецификация, разработанная Intel, которая перекладывает большинство функций на программное обеспечение (Microsoft) и позволяет применить дешевую аппаратуру.
  • OHCI (Open Host Controller Interface) – спецификация, разработанная Compaq, Microsoft и National Semiconductor, где больше функций возложено на аппаратуру (Intel), что упрощает программное обеспечение. Типичное взаимодействие инженеров железа / программ. . .

С появлением USB 2.0 понадобилась новая спецификация Host Controller Interface Specification для описания деталей регистрового уровня, специфичного для USB 2.0. Родился EHCI (Enhanced Host Controller Interface). Известные поставщики включая Intel, Compaq, NEC, Lucent и Microsoft объединились вместе, чтобы предоставить нам один стандарт интерфейса, и таким образом, только один новый драйвер для реализации в операционных системах. Вовремя.

USB носит имя, подразумевающее последовательную шину. Она использует 4 экранированных провода, из которых два передают питание (+5v & GND). Остальные два представляют витую пару (twisted pair) дифференциальных сигналов данных. Используется схема кодирования NRZI (Non Return to Zero Invert, без возврата к нулю с инверсией) для передачи данных с полем синхронизации для синхронизирования тактов хоста и приемника.

USB поддерживает «горячее» (plug’n’play) соединение с динамически загружаемыми и выгружаемыми драйверами. Пользователь просто втыкает устройство, подключая его тем самым к шине. Хост детектирует присоединение, опрашивает свежевставленное устройство и загружает подходящий драйвер, индицируя песочными часами на экране момент загрузки (если драйвер для устройства USB уже установлен в системе). Конечный пользователь не заботится ни о терминировании, ни об IRQ (прерываниях) и адресах портов, ни о перезагрузке компьютера (перезагрузка не требуется). Когда пользователь закончил работу с USB-устройством, он просто вынимает его (или отсоединяет кабель), хост обнаружит отсутствие устройства и автоматически выгрузит драйвер.

Загрузка (выбор) подходящего драйвера осуществляется по комбинации PID/VID (Product ID/Vendor ID). VID предоставляется организацией USB Implementor's forum за деньги, и это еще одна точка преткновения для USB. Последняя информация о ценах может быть найдена на сайте http://www.usb.org/developers/vendor/.

Другие организации по стандартам предоставляют дополнительные VID для некоммерческого использования, такого как обучение, разработка и прочее (радиолюбительство). USB Implementors forum все-таки должен оказать эту услугу. В этих случаях Вы можете использовать VID, назначенный поставщику системы разработки. Например, большинство производителей чипов имеют комбинации VID/PID, которые Вы можете использовать для Ваших чипов, и будет известно, что эти VID/PID не существуют в коммерческих устройствах. Другие производители чипов могут даже продать Вам для Вашего коммерческого устройства личный PID, чтобы использовать его с VID производителя.

Другая более достойная внимания особенность USB - его режимы передачи. USB поддерживает Control, Interrupt, Bulk и Isochronous передачи. В то время как мы будем смотреть на другие режимы передачи позже, Изохронный режим позволяет устройству резервировать определеную часть от полосы пропускания с гарантируемым временем ожидания (latency). Это идеально для аудио и видео приложений, где перегрузка канала может привести к заметной потере данных или понижению частоты кадров. Каждый режим передачи предоставляет разработчику компромиссы в области детектирования ошибок и восстановления, гарантированного времени ожидания и полосы пропускания.

Глава 2: Железо

Коннекторы

Все устройства имеют upstream-соединение к хосту, и все хосты имеют downstream-соединение к устройству. Коннекторы upstream и downstream механически не взаимозаменяемы, что устраняет недопустимые петлевые соединения на хабах, такие как подсоединение downstream-порта в downstream-порт. Обычно используют два вида соединителей, называемые type A и type B, которые показаны ниже.

Все о USB  , Программирование  USB интерфейса и работа с  USB  периферии для программистов

Все о USB  , Программирование  USB интерфейса и работа с  USB  периферии для программистов

Type A USB Connector
(сокет, нумерация контактов
при виде снаружи)
Type B USB Connector
(сокет, нумерация контактов
при виде снаружи)

Все о USB  , Программирование  USB интерфейса и работа с  USB  периферии для программистов

Стандартные, Mini- и Micro-USB вилки. Белые участки пустые.

Все о USB  , Программирование  USB интерфейса и работа с  USB  периферии для программистов

24-контактный USB-разъем тип «C» (Type-C)

Кабели и разъемы USB 1.x и 2.0

Спецификация 1.0 регламентировала два типа разъемов: A — на стороне контроллера или концентратора USB и B — на стороне периферийного устройства. Впоследствии были разработаны миниатюрные разъемы для применения USB в переносных и мобильных устройствах, получившие название Mini-USB. Новая версия миниатюрных разъемов, называемых Micro-USB, была представлена USB-IF 4 января 2007 года.

Обычный Mini Micro
Тип A 4×12 мм
Все о USB  , Программирование  USB интерфейса и работа с  USB  периферии для программистов
3×7 мм
Все о USB  , Программирование  USB интерфейса и работа с  USB  периферии для программистов
2×7 мм
Все о USB  , Программирование  USB интерфейса и работа с  USB  периферии для программистов
Тип B 7×8 мм
Все о USB  , Программирование  USB интерфейса и работа с  USB  периферии для программистов
3×7 мм
Все о USB  , Программирование  USB интерфейса и работа с  USB  периферии для программистов
2×7 мм
Все о USB  , Программирование  USB интерфейса и работа с  USB  периферии для программистов

Изображения разъемов USB 3.0

Обычный Mini Micro
Type A
Все о USB  , Программирование  USB интерфейса и работа с  USB  периферии для программистов
Type B
Все о USB  , Программирование  USB интерфейса и работа с  USB  периферии для программистов
Все о USB  , Программирование  USB интерфейса и работа с  USB  периферии для программистов
Все о USB  , Программирование  USB интерфейса и работа с  USB  периферии для программистов
Type C
Все о USB  , Программирование  USB интерфейса и работа с  USB  периферии для программистов

Type A plug (т. е. папа) всегда обращен к upstream (т. е. к хосту). Type A socket (т. е мама) обычно можно найти на стенке хоста и хаба. Например, сокеты type A расположены на компьютерных материнских платах и хабах. Type B plug всегда соединяются с downstream и, следовательно, type B socket расположены на USB устройствах. На первый взгляд звучит довольно путано, но разобраться можно =).

Интересно обнаружить в некоторых компьютерных магазинах кабели type A <--> type A с прямой разводкой проводов и многочисленные зарядники USB-типа. Это входит в противоречие со спецификацией USB. Устройства, являющиеся переходником между штеккером type A в штеккер type A являются мостом, используемым для соединения двух компьютеров друг с другом. Другие запрещенные кабели – удлинители USB, имеющие на одном конце штеккер (либо type A, либо type B) и сокет на другом конце (либо type A, либо type B). Эти кабели нарушают требования к длине кабелей USB.

USB 2.0 включает в себя errata, которое представляет коннекторы mini-usb B. Подробная информация по этим коннекторам может быть найдена в Mini-B Connector Engineering Change Notice. Причина появления коннекторов mini появилась для применения USB в малогабаритных электронных устройствах типа мобильный телефоны и органайзеры. Обычный коннектор type B слишком большой, чтобы его можно было просто применить в этих устройствах.

Совсем недавно была разработана спецификация On-The-Go, которая добавляет для USB функциональность peer-to-peer. Она представляет хосты USB в мобильных телефонах и электронных органайзерах, и таким образом включена спецификация для mini-A джеков, mini-A разъемов и mini-AB разъемов. Я предполагаю, что скоро получат широкое распространение кабели mini USB, и также набор кабелей-конвертеров mini в standard.

USB Type-C или USB-C — спецификация USB для универсального компактного двухстороннего 24-контактного разъема для USB-устройств и USB-кабелей .

Спецификация разъема USB Type-C версии 1.0 опубликована форумом разработчиков USB в августе 2014 года . Была разработана в то же время, что и спецификация USB 3.1.

Разъем USB Type-C могут иметь периферийные устройства и компьютеры. USB Type-C является новым поколением относительно разъемов и кабелей типа A и B предыдущих стандартов USB . В отличие от предыдущих версий, разъем USB-C симметричен по горизонтали и подключается к устройству любой стороной. то есть разъем может быть перевернут относительно гнезда. Он поддерживает стандарты USB 2.0, USB 3.0 и USB 3.1 Gen 2.

Использование разъема USB Type-C не гарантирует, что устройство реализует высокоскоростной стандарт USB 3.1 Gen1/Gen2 или протокол USB Power Delivery .

Альтернативные режимы USB Type-C

Разъем USB Type-C работает и в альтернативных режимах (англ. alternate mode), когда контакты передают данные по другим протоколам:

  1. Все о USB  , Программирование  USB интерфейса и работа с  USB  периферии для программистов Альтернативный режим DisplayPort — опубликован VESA в сентябре 2014 года, поддерживает стандарт DisplayPort 1.3[11];
  2. Альтернативный режим Mobile High-Definition Link (MHL) — анонсирован в ноябре 2014 года[12], поддерживает стандарт MHL 1.0-3.0 и superMHL [13];
  3. Все о USB  , Программирование  USB интерфейса и работа с  USB  периферии для программистов Альтернативный режим Thunderbolt — поддержка стандарта Thunderbolt 3
  4. Все о USB  , Программирование  USB интерфейса и работа с  USB  периферии для программистов Альтернативный режим HDMI — объявлен в сентябре 2016 года , поддерживает HDMI 1.4b.

Для реализации альтернативных режимов DisplayPort и HDMI используется кабель-переходник на вилку своего физического интерфейса. Для режимов MHL и Thunderbolt (20Gbps) используется стандартный Type-C кабель; высокоскоростной режим Thunderbolt

продолжение следует...

Продолжение:


Часть 1 Все о USB , Программирование USB интерфейса и работа с USB периферии для программистов
Часть 2 Цоколевки разъема и кабеля - Все о USB , Программирование
Часть 3 Глава 4: Типы конечных точек (Endpoint Types ) - Все
Часть 4 Глава 5: Дескрипторы USB - Все о USB , Программирование
Часть 5 Глава 7 : обычный (Generic) драйвер USB - Все о
Часть 6 Термины - Все о USB , Программирование USB интерфейса и

Ответы на вопросы для самопроверки пишите в комментариях, мы проверим, или же задавайте свой вопрос по данной теме.

создано: 2020-06-24
обновлено: 2022-01-10
132265



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей



Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Операционные системы и системное программировние

Термины: Операционные системы и системное программировние