Popular-USB.pdf

(1096 KB) Pobierz
НАРОДНАЯ ЭЛЕКТРОНИКА
СЕРИЯ
ВЫПУСК 1
Популяр�½о о USB
А. В. Немоляев
Екатери�½бург 2015
УДК 621.325.5
ББК 32.84
Немоляев А.В.
Популяр�½о о USB.
− Екатери�½бург.: Живая мысль, 2015. − 53 с.
В сжатой, �½о доступ�½ой форме излагается популяр�½ая микрокомпьютер�½ая ши�½а USB, материал
орие�½тирова�½ �½а �½ачи�½ающих разработчиков микропроцессор�½ых систем и радиолюбителей.
УДК 621.325.5
ББК 32.84
Все права защище�½ы. Никакая часть этого изда�½ия �½е может быть воспроизведе�½а в любой форме или
любыми средствами, электро�½�½ыми или меха�½ическими, включая фотографирова�½ие, ксерокопирова�½ие или и�½ые
средства копирова�½ия или сохра�½е�½ия и�½формации, без письме�½�½ого разреше�½ия автора.
© Немоляев А.В., 2015
Немоляев А.В. Екатери�½бург
Оглавле�½ие
Оглавле�½ие .....................................................................................................................................................3
Предисловие ...................................................................................................................................................4
Обзор USB ......................................................................................................................................................5
Виртуаль�½ые ка�½алы и ко�½еч�½ые точки ..................................................................................................6
Хабы, адреса, хост-ко�½троллеры ...............................................................................................................8
Дескрипторы ............................................................................................................................................... 10
LibUSB........................................................................................................................................................... 16
Пакет – базовое по�½ятие USB ................................................................................................................. 19
Маркер�½ый пакет – старт време�½�½ого ок�½а ........................................................................................ 20
Маркер�½ые пакеты – SETUP, IN , OUT ............................................................................................... 21
Пакеты да�½�½ых ............................................................................................................................................ 22
Пакеты квитирова�½ия ................................................................................................................................ 23
Тра�½закции .................................................................................................................................................. 24
Запросы......................................................................................................................................................... 26
Ка�½ал управле�½ия ....................................................................................................................................... 28
Распределе�½ие э�½ергии ............................................................................................................................ 32
Ближе к проводам ...................................................................................................................................... 35
Э�½умерация .................................................................................................................................................. 38
Э�½умерация – часть вторая ...................................................................................................................... 41
Микроко�½троллер AT90USB162 ............................................................................................................ 46
Программа.................................................................................................................................................... 52
Список литературы .................................................................................................................................... 54
3
Немоляев А.В. Екатери�½бург
Предисловие
Ши�½а USB – труд�½ый предмет для программистов и разработчиков, в особе�½�½ости для
русскоязыч�½ых и в особе�½�½ости для �½ачи�½ающих. Спецификация ши�½ы версии 1.1 1998 года,
составляет более 300 стра�½иц, с тех пор спецификация была допол�½е�½а и расшире�½а. Надо
заметить, что в а�½глоязыч�½ых стра�½ах существует целая серия к�½иг по этой теме, популяр�½о
излагающая предмет. Актуаль�½ость темы подтверждается тем, что з�½аме�½итая к�½ига «USB
Complete» автора Jan Axelson, объѐмом более 500 стра�½иц, выдержала уже четыре изда�½ия. В сети
и�½тер�½ет, м�½ого материалов по ши�½е USB �½а русском языке, �½о о�½и �½осят фрагме�½тар�½ый,
отрывоч�½ый характер, часто эти публикации ещѐ больше запутывают и дают преврат�½ое
представле�½ие о предмете. Эта к�½ига, вклад в русскоязыч�½ый ресурс по ши�½е USB.
К�½ига орие�½тирова�½�½а �½а �½ачи�½ающих разработчиков и радиолюбителей, кто �½е з�½аком с
USB, �½о хотел бы больше уз�½ать. К�½ига �½е является исчерпывающим справоч�½ым пособием по
USB. Примеры ос�½ова�½ы �½а ста�½дарте USB 1.1 для более простого вхожде�½ия в тему. Если
отдель�½о �½е сказа�½о, то подразумевается режим FS (Full speed). В статье �½ет, широко освещѐ�½�½ых в
других источ�½иках, сведе�½ий об общей топологии USB, о кабелях, хабах и разъѐмах. Здесь больше
и�½формации о том, что �½уж�½о з�½ать разработчику устройств с микроко�½троллерами о протоколе
USB для своих разработок. Для устройств USB подключаемых к PC, таких: как мышь, клавиатура,
микроко�½троллер с поддержкой ши�½ы USB, использую терми�½ USB устройство. Персо�½аль�½ый
компьютер, к которому подключается USB устройство, �½азываю хостом. Доступ�½ое изложе�½ие
теории, будет сопровождаться примерами программ �½а языке С для микроко�½троллера
AT90USB162, популяр�½ой ли�½ейки megaAVR фирмы Atmel. Для справоч�½ой и�½формации по
USB, рекоме�½дую Гук М.Ю. «Ши�½ы PCI,USB и FireWire.Э�½циклопедия.», издательство «Питер».
4
Немоляев А.В. Екатери�½бург
Обзор USB
Программ�½ое обеспече�½ие хоста делится �½а два отдель�½ых типа. Программ�½ое обеспече�½ие
и�½ициализации ка�½ала связи и программ�½ое обеспече�½ие поддержки рабочего режима обме�½а
да�½�½ыми. Программ�½ое обеспече�½ие и�½ициализации �½ачи�½ает работать при подключе�½ии к хосту
�½ового USB устройства. Происходит обме�½ служеб�½ой и�½формацией между хостом и USB
устройством. В результате обме�½ов служеб�½ой и�½формацией, хост определяет: тип устройства, его
требова�½ия к э�½ергопотребле�½ию, возмож�½ость поддержки «спящего режима», тип драйверов для
правиль�½ой работы USB устройства, и даже возмож�½а загрузка �½еобходимых приклад�½ых
программ для работы. Эти �½овые вея�½ия в духе спецификации PNP (plug and play). Устройства
могут подключаться и отключаться в горячем режиме. При подключе�½ии и отключе�½ии
происходит автоматическое переко�½фигурирова�½ие программ�½ого обеспече�½ия хоста. Процесс
�½астройки хоста �½а обме�½ да�½�½ыми, �½апоми�½ает процесс раскрутки. Перво�½ачаль�½о обме�½иваются
простейшими сиг�½алами по ши�½е, затем сообще�½ия услож�½яются и �½ако�½ец, выход �½а рабочий
режим.
Программ�½ое обеспече�½ие рабочего режима поддерживает обме�½ да�½�½ыми, когда хост
соответстве�½�½о ско�½фигурирова�½ и USB устройство вышло �½а рабочий режим обме�½а. В
спецификации USB этот �½ачаль�½ый процесс �½азывается э�½умерацией.
В послед�½ее время имеется те�½де�½ция к у�½ификации �½е только протоколов обме�½а, �½о и
у�½ификация устройств, взаимодействующих с персо�½аль�½ым компьютером. Точ�½ее, у�½ификация
требова�½ий к ка�½алу связи. Идея такая. Придумывается у�½иверсаль�½ая ши�½а для всего, что только
мож�½о подключить. Ко�½еч�½о - эта ши�½а слож�½о устрое�½а, о�½а м�½огоуров�½евая, гибкая и
адаптируемая для раз�½ых ко�½фигураций устройств. У�½ифицируются и драйвера операцио�½�½ой
системы персо�½аль�½ого компьютера, который взаимодействует с подключаемым устройством.
Преимущество - отпадает �½еобходимость в разработке драйвера для ОС, разработчиками USB
устройства. Это долж�½о повышать �½адѐж�½ость ОС, так как разработкой драйверов могут за�½яться
разработчики ОС, а �½е разработчики устройств. В общем, все плюсы у�½ификации и
ста�½дартизации. Но есть и ми�½усы. Очевид�½ая слож�½ость и связа�½�½ая с �½ей избыточ�½ость,
громоздкость тех�½ических реше�½ий. Тот же подход, что и в протоколах комму�½икаций �½а
большие расстоя�½ия. Академически стек протоколов OSI и з�½аме�½итый TCP/IP.
В связи с выше сказа�½�½ым, в спецификации USB вводится по�½ятие класса устройств. Все
электро�½�½ые устройства, подключаемые к персо�½аль�½ому компьютеру, по своим фу�½кцио�½аль�½ым
качествам оче�½ь схожи. Например, звуковые платы предоставляют сервис приблизитель�½о од�½ого
уров�½я. Поэтому устройства стали делить �½а у�½ифицирова�½�½ые классы. Класс - это группа
устройств, объеди�½ѐ�½�½ых общими характеристиками и способ�½ых управляться общим для �½их
программ�½ым драйвером операцио�½�½ой системы. Отдель�½ое устройство может объеди�½ять
фу�½кцио�½аль�½ость сразу �½ескольких устройств, при�½адлежащих раз�½ым классам. Если
фу�½кцио�½аль�½ость вашего устройства подходит к �½екоторому классу, и о�½о поддерживает
спецификацию USB для устройств класса, то �½е �½уж�½о писать драйвер для ОС. Вероят�½ее всего,
драйвер уже имеется в ОС. Фу�½кцио�½аль�½ость устройства, подпадающего под определѐ�½�½ый класс,
может быть расшире�½а разработчиком устройства добавле�½ием отдель�½ых кома�½д. Точ�½ее говоря,
в ста�½дарте USB предусмотре�½а возмож�½ость �½екоторого расшире�½ия фу�½кцио�½аль�½ости. В
ста�½дарте предусмотре�½о м�½ожество возмож�½остей, которые разработчик устройства может
использовать для своих целей, добавляя к базовой фу�½кцио�½аль�½ости, фу�½кцио�½аль�½ость
расшире�½�½ую. В спецификации USB, есть две большие области, это собстве�½�½о USB базового
уров�½я и протоколы устройств классов. Протоколы устройств классов – это �½екоторая �½адстройка
�½ад протоколами �½иж�½его, базового уров�½я USB. Логич�½о с�½ачала разобраться с базовыми
при�½ципами USB, а уж потом всѐ осталь�½ое.
5
Zgłoś jeśli naruszono regulamin