В края на 2008г. Както може да очаквате, новият стандарт е увеличил пропускателната способност, въпреки че увеличението не е толкова значително, колкото 40-кратното увеличение на скоростта при преминаване от USB 1.1 към USB 2.0. Във всеки случай 10-кратното увеличение на пропускателната способност е добре дошло. USB 3.0поддържа максимална скорост на трансфер от 5 Gbit/s.Пропускателната способност е почти два пъти по-висока от съвременния стандарт Serial ATA (3 Gbit/s, като се вземе предвид прехвърлянето на излишна информация).
Лого на USB 3.0
Всеки ентусиаст ще потвърди, че интерфейсът USB 2.0 е основното тясно място на съвременните компютри и лаптопи, тъй като пиковата му „нетна“ пропускателна способност варира от 30 до 35 MB/s. Но съвременните 3,5" твърди дискове за настолни компютри вече имат скорости на трансфер над 100 MB/s (появяват се и 2,5" модели за лаптопи, които се доближават до това ниво). Високоскоростните SSD устройства успешно надминаха прага от 200 MB/s. А 5 Gbit/s (или 5120 Mbit/s) съответства на 640 MB/s.
Не смятаме, че твърдите дискове ще се доближат до 600 MB/s в обозримо бъдеще, но следващото поколение SSD може да надхвърли този брой само след няколко години. Увеличаването на пропускателната способност става все по-важно, тъй като количеството информация се увеличава и съответно времето, необходимо за нейното архивиране, се увеличава. Колкото по-бързо работи хранилището, толкова по-кратко ще бъде времето за архивиране, толкова по-лесно ще бъде създаването на „прозорци“ в графика за архивиране.
Таблица за сравнение на скоростта на USB 1.0 – 3.0
Цифровите видеокамери днес могат да записват и съхраняват гигабайти видео данни. Делът на HD видеокамерите се увеличава и те изискват по-голямо и по-бързо съхранение за запис на големи количества данни. Ако използвате USB 2.0, тогава прехвърлянето на няколко десетки гигабайта видео данни към компютър за редактиране ще изисква значително време. Форумът на USB Implementers вярва, че честотната лента ще остане фундаментално важна и USB 3.0ще бъде достатъчно за всички потребителски устройства през следващите пет години.
За осигуряване на надежден трансфер на данни USB 3.0 интерфейсизползва 8/10 битово кодиране, познато ни, например, от Serial ATA. Един байт (8 бита) се предава с помощта на 10-битово кодиране, което подобрява надеждността на предаването за сметка на пропускателната способност. Следователно преходът от битове към байтове се извършва в съотношение 10:1 вместо 8:1.
Сравнение на честотната лента на USB 1.x – 3.0 и конкурентите
със сигурност основна целинтерфейс USB 3.0 е да се увеличи наличната честотна лента, обаче, новият стандарт ефективно оптимизира консумацията на енергия. Интерфейсът USB 2.0 непрекъснато проверява за наличност на устройството, което консумира енергия. За разлика от тях, USB 3.0 има четири състояния на връзка, наречени U0-U3. Състоянието на връзка U0 съответства на активен трансфер на данни, а U3 поставя устройството в „заспиване“.
Ако връзката е неактивна, тогава в състояние U1 възможността за получаване и предаване на данни ще бъде деактивирана. State U2 отива една крачка напред, като деактивира вътрешния часовник. Съответно, свързаните устройства могат да преминат към състояние U1 веднага след завършване на прехвърлянето на данни, което се очаква да осигури значителни предимства в консумацията на енергия в сравнение с USB 2.0.
В допълнение към различните състояния на консумация на енергия, стандартът USB 3.0 е различенот USB 2.0 и по-висок поддържан ток. Ако USB 2.0 осигури праг на тока от 500 mA, тогава в случая на новия стандарт ограничението беше изместено до 900 mA. Токът на иницииране на връзката е увеличен от 100 mA за USB 2.0 на 150 mA за USB 3.0. И двата параметъра са доста важни за преносимите твърди дискове, които обикновено изискват малко по-високи токове. Преди това проблемът можеше да бъде решен чрез използване на допълнителен USB щепсел, черпейки енергия от два порта, но използвайки само един за пренос на данни, въпреки че това нарушаваше спецификациите на USB 2.0.
Стандартът USB 3.0 е обратно съвместим с USB 2.0, т.е. щепселите изглеждат същите като обикновените щифтове тип A остават на същото място, но сега има пет нови щифта, разположени дълбоко в конектора. Това означава, че трябва да поставите USB 3.0 щепсела докрай в USB 3.0 порта, за да осигурите работа с USB 3.0, което изисква допълнителни щифтове. В противен случай ще получите USB 2.0 скорост. Форумът на USB Implementers препоръчва на производителите да използват цветово кодиране Pantone 300C от вътрешната страна на конектора.
Ситуацията беше подобна за USB тип B щепсел, въпреки че разликите са визуално по-забележими. USB 3.0 щепселът може да бъде идентифициран чрез пет допълнителни щифта.
USB 3.0 не използва оптични влакна, защото е твърде скъпо за масовия пазар. Следователно пред нас е добрият стар меден кабел. Сега обаче ще има девет, а не четири проводника. Предаването на данни се извършва по четири от петте допълнителни проводника в диференциален режим (SDP–Shielded Differential Pair). Едната двойка проводници е отговорна за получаване на информация, а другата за предаване. Принципът на работа е подобен на Serial ATA, като устройствата получават пълна честотна лента и в двете посоки. Петият проводник е „маса“.
USB (Универсална серийна шина- „универсална серийна шина“) - сериен интерфейс за пренос на данни за средноскоростни и нискоскоростни периферни устройства.За връзка се използва 4-жилен кабел, като два проводника служат за приемане и предаване на данни, а 2 проводника за захранване на периферното устройство. Благодарение на вградените захранващи линии, USB ви позволява да свързвате периферни устройства без собствено захранване.
USB кабелсе състои от 4 медни проводника - 2 захранващи проводника и 2 проводника за данни в усукана двойка и заземена оплетка (екран).
USB кабелиимат физически различни съвети „към устройството“ и „към хоста“. Възможно е внедряване на USB устройство без кабел, с вграден в корпуса накрайник “to-host”. Също така е възможно кабелът да се интегрира постоянно в устройството(например USB клавиатура, уеб камера, USB мишка), въпреки че стандартът забранява това за устройства с пълна и висока скорост.
USB шинатя е строго ориентирана, т.е. има концепцията за „основно устройство“ (хост, известен също като USB контролер, обикновено вграден в чипа на южния мост на дънната платка) и „периферни устройства“.
Устройствата могат да получават +5 V захранване от шината, но може да изискват и външно захранване. Поддържа се и режим на готовност за устройства и сплитери по команда от шината, като се премахва основното захранване, като се поддържа захранването в режим на готовност и се включва при команда от шината.
USB поддържаГорещо включване и изключване на устройства. Това е възможно благодарение на увеличаването на дължината на заземителния контактен проводник спрямо сигналните. Когато е свързан USB конекторса първите, които затварят заземителни контакти, потенциалите на корпусите на двете устройства се изравняват и по-нататъшното свързване на сигналните проводници не води до пренапрежения, дори ако устройствата се захранват от различни фази на трифазна мрежа.
На логическо ниво USB устройството поддържа транзакции за пренос и получаване на данни. Всеки пакет от всяка транзакция съдържа номер крайна точкана устройството. Когато дадено устройство е свързано, драйверите в ядрото на ОС четат списък с крайни точки от устройството и създават структури от контролни данни, за да комуникират с всяка крайна точка на устройството. Извиква се колекцията от крайни точки и структури от данни в ядрото на ОС тръба.
Крайни точкии следователно каналите принадлежат към един от 4 класа:
1) поток (насипно състояние),
2) мениджър (контрол),
3) изохронен (изох),
4) прекъсване.
Нискоскоростни устройства като мишка не могат да имат изохронни и проточни канали.
Контролен каналпредназначени за обмен на кратки пакети въпроси-отговори с устройството. Всяко устройство има контролен канал 0, който позволява на софтуера на операционната система да чете кратка информация за устройството, включително кодовете на производителя и модела, използвани за избор на драйвер, и списък с други крайни точки.
Прекъсване на каналави позволява да доставяте кратки пакети в двете посоки, без да получавате отговор/потвърждение, но с гаранция за време за доставка - пакетът ще бъде доставен не по-късно от N милисекунди. Например, използвани в устройства за въвеждане (клавиатури, мишки или джойстици).
Изохронен каналви позволява да доставяте пакети без гаранция за доставка и без отговори/потвърждения, но с гарантирана скорост на доставка от N пакета за период на автобус (1 KHz за ниска и пълна скорост, 8 KHz за висока скорост). Използва се за предаване на аудио и видео информация.
Проточен каналосигурява гаранция за доставка на всеки пакет, поддържа автоматично спиране на предаването на данни поради нежелание на устройството (препълване или недостиг на буфер), но не гарантира скорост и забавяне на доставката. Използва се например в принтери и скенери.
Времето на автобусае разделен на периоди, като в началото на периода контролерът предава пакета „начало на периода“ към цялата шина. След това през периода се предават пакети за прекъсване, след това изохронни в необходимото количество за оставащото време в периода се предават пакети за управление и накрая пакети за поток.
Активна страна на автобусавинаги е контролерът, прехвърлянето на пакет данни от устройството към контролера се реализира като кратък въпрос от контролера и дълъг отговор от устройството, съдържащо данни. Графикът за движение на пакети за всеки период на шина се създава съвместно от хардуера на контролера и софтуера на драйвера за това, което използват много контролери Директен достъп до паметта DMA (Директен достъп до паметта) - режим на обмен на данни между устройства или между устройството и основната памет, без участие Централен процесор(CPU). В резултат на това скоростта на трансфер се увеличава, тъй като данните не се изпращат напред-назад към процесора.
Размерът на пакета за крайна точка е константа, вградена в таблицата на крайните точки на устройството и не може да се променя. Избира се от разработчика на устройството измежду поддържаните от стандарта USB.
Висока скорост на трансфер (битрейт на сигнализиране при пълна скорост) - 12 Mb/s
- Максимална дължина на кабела за висока скорост на трансфер - 5м
- Нискоскоростна сигнализация битрейт - 1.5 Mb/s
- Максимална дължина на кабела за ниска скорост на предаване - 3м
- Максимален брой свързани устройства (включително умножители) - 127
- Възможно е да се свързват устройства с различни скорости на предаване
- Няма нужда потребителят да инсталира допълнителни елементи като SCSI терминатори
- Захранващо напрежение за периферни устройства - 5 V
- Максимална консумация на ток на устройство - 500 mA
USB сигналите се предават по два проводника на екраниран четирижилен кабел.
тук :
GND- схема “корпус” за захранване на периферни устройства
V АВТОБУС- +5V също и за захранващи вериги
Гума D+предназначен за предаване на данни
Гума Д-за получаване на данни.
Въпреки че максималната скорост на трансфер на данни на USB 2.0 е 480 Mbps (60 MB/s), в реалния живот е нереалистично да се постигнат такива скорости (~33,5 MB/s на практика). Това се дължи на големите закъснения по USB шината между заявката за трансфер на данни и действителното начало на трансфера. Например шината FireWire, въпреки че има по-ниска пикова пропускателна способност от 400 Mbps, което е с 80 Mbps (10 MB/s) по-малко от USB 2.0, всъщност позволява по-голяма пропускателна способност на трансфер на данни към твърди дискове и други устройства за съхранение. В това отношение различните мобилни устройства отдавна са ограничени от недостатъчната практическа честотна лента на USB 2.0.
Високоскоростен битрейт на сигнализиране - 12 Mb/s - Максимална дължина на кабела за високоскоростно сигнализиране на битрейт - 5 m - Нискоскоростно сигнализиране на битрейт - 1,5 Mb/s - Максимална дължина на кабела за нискоскоростно сигнализиране на битрейт - 3 m - Максимален брой свързани устройства (включително умножители) - 127 - Възможно е свързване на устройства с различни скорости на предаване - Няма нужда потребителят да инсталира допълнителни елементи като терминатори за SCSI - Захранващо напрежение за периферни устройства - 5 V - Максимална консумация на ток на устройство - 500 mA
USB сигналите се предават по два проводника на екраниран четирижилен кабел.
тук :
GND- схема “корпус” за захранване на периферни устройства V АВТОБУС- +5V и за захранващи вериги Bus D+предназначен за предаване на данни
Гума Д-за получаване на данни.
Въпреки че максималната скорост на трансфер на данни на USB 2.0 е 480 Mbps (60 MB/s), в реалния живот е нереалистично да се постигнат такива скорости (~33,5 MB/s на практика). Това се дължи на големите закъснения по USB шината между заявката за трансфер на данни и действителното начало на трансфера. Например шината FireWire, въпреки че има по-ниска пикова пропускателна способност от 400 Mbps, което е с 80 Mbps (10 MB/s) по-малко от USB 2.0, всъщност позволява по-голяма пропускателна способност за обмен на данни с твърди дискове и други устройства за съхранение устройства. В това отношение различните мобилни устройства отдавна са ограничени от недостатъчната практическа честотна лента на USB 2.0.
Най-същественото предимство на USB 3.0 е неговата по-висока скорост (до 5 Gbps), която е 10 пъти по-бърза от по-стария порт. Новият интерфейс е с подобрено енергоспестяване. Това позволява на устройството да премине в режим на заспиване, когато не се използва. Възможно е едновременно двупосочно предаване на данни. Това ще даде по-висока скорост, ако свържете няколко устройства към един порт (разделете порта). Можете да разклоните с помощта на хъб (хъбът е устройство, което се разклонява от един порт на 3-6 порта). Сега, ако свържете хъба към USB 3.0 порт и свържете няколко устройства (например флаш устройства) към хъба и извършите едновременно прехвърляне на данни, ще видите, че скоростта ще бъде много по-висока, отколкото беше с USB 2.0 интерфейс. Има характеристика, която може да бъде плюс и минус. Интерфейсът USB 3.0 е увеличил тока до 900 mA, а USB 2.0 работи с ток от 500 mA. Това ще бъде плюс за тези устройства, които са адаптирани за USB 3.0, но малък минус е, че може да има риск при зареждане на по-слаби устройства, като телефон. Физическият недостатък на новия интерфейс е размерът на кабела. За да се поддържа висока скорост, кабелът е станал по-дебел и по-къс (не може да бъде по-дълъг от 3 метра) от USB 2.0. Важно е да се отбележи, че устройства с различни USB интерфейси ще работадобре и не би трябвало да е проблем. Но не мислете, че скоростта ще се увеличи, ако свържете USB 3.0 към по-стар порт или свържете по-стар интерфейсен кабел към нов порт. Скоростта на трансфер на данни ще бъде равна на скоростта на най-слабия порт.
Илюстрирана проекция на мрежовия модел OSI върху универсалната серийна шина.
Не много полезен USB стек
Ако читателят е имал подобни чувства, предлагам алтернативна визия за USB стек, която внезапно ми се появи в прегрятия ми мозък, базирана на любимия 7-слоен OSI модел. Ограничих се до пет нива:
Не искам да кажа, че целият софтуер и библиотеки вече са направени или трябва да бъдат проектирани въз основа на този модел. По инженерни причини кодът с нива ще бъде силно смесен. Но искам да помогна на тези, които започват да се запознават с USB шината, които искат да разберат протоколите за обмен на устройства и терминологията на домейна, да се доближат до готови примери, библиотеки и да се ориентират по-добре в тях. Този модел не е за зареждане в MK, а във вашите блестящи умове, скъпи приятели. И тогава вашите златни ръце ще направят всичко сами, не се съмнявам :)
Така че, да вървим, коригирайте, ако видите грешки. Това е чернова и ако някъде вече е нарисувано нещо подобно, моля да ме извините, не можах да го намеря, затова го направих сам. Мисля, че снимката няма да избяга, но засега ще обясня на уважаемата публика защо започнах тази публикация.
Още един ретроспекция от деветдесетте
Изтърсих първия си бъг от кода на някой друг в края на деветдесетте години, докато работех като студент като студент. Беше pppd за FreeBSD, който след това инсталирахме на модемния пул. Модемите на Motorola бяха блокирани при прекъсване, никой не можеше да се свърже, линията беше изгубена напразно и единственият останал метод чрез PPP keep-alive беше по някаква причина бъгове. Тогава разбрах, че по някаква причина pppd чакаше шест LCP байта за отговор вместо необходимите четири. Чувствах се толкова луд тогава шейкър за грешкиот деветдесетте :-) Какво общо има ПЧП? Просто е подобно на USB: пакетно и от точка до точка. Вярно е, че за разлика от USB 2.0, той е пълен дуплекс.
Хареса ми идеята за HID. Но веднага щом оставих Windows отвъд образователните задачи на мигащи светодиоди (напред към реални UNIX среди!), той започна да се просмуква през всички незапечатани пукнатини и се почувствах като някакъв безпомощен куц. Докато отстранявах грешки в проекта, инстинктивно хванах някакъв вид tcpdump (така се нарича: usbdump(8) или usbmon), но видях само съобщения на непознат език.
Стана очевидно: липсват фундаментални познания за USB шината. Ако някой опитен IT специалист разбира OSI модела и TCP/IP стека някъде на нивото на гръбначния мозък просто от необходимост, то с USB ситуацията е различна. Разбираемо е: там можете (трябва) да шпионирате трафика чрез същия tcpdump и да конфигурирате хардуера и софтуера, но тук е напълно plug and play и можете да коригирате нещо, като актуализирате драйвера или фърмуера (или преинсталирате операционната система). Но ние сме се събрали тук само за да направим добър фърмуер, нали? След като прочетох някои USB описания онлайн, бях изненадан колко объркваща може да бъде документацията. Даже имах чувството, че нарочно искат да ни подведат, разпръсквайки мъгла и отървавайки се от конкуренцията в зародиш. Не съм съгласен с това състояние на нещата!
На пръв поглед изглежда оптимистично. Накрая купчината се разглобява. Кадрите обаче са лошо маркирани: бих ги нарисувал с вертикални пунктирани линии, а EOF е само пауза, реално не се предават данни. Но започваме да четем контекста и губим разбиране за истинското намерение на автора (да ни обърка):
Хост контролерът на USB шинния интерфейс генерира персонал;И ето още един:
Персоналпредавани чрез серийно битово предаване, използвайки метода NRZI.
всеки рамкасе състои от най-висок приоритет колети, чийто състав се формира от хост драйвера;
всеки излъчванесе състои от една или повече транзакции;
всяка сделка се състои от пакети;
всеки найлонов пликсе състои от идентификатор на пакет, данни (ако има такива) и контролна сума.
Ето един от тях
Всичко е ясно за софтуера: това са примери, които не са за промишлена употреба, може да има грешки, някои части (като таблицата за връзки в примера за масово съхранение) са защитени с патент и вие нямате право да ги използвате в търговски проект. Но това не е нищо, след това китайците успяват да продадат USB продукти на пазара, за които дори не си правят труда да променят библиотеката VID и PID.
За желязото, както разбирам, трябва да започнете с кварц. Имам Chelyabinsk PinBoard II с 12 MHz кварц (всички библиотеки са проектирани за 8 MHz), промених PLL множителя от 9 на 6 (връзка с обяснения), в противен случай MK ще се ускори до 108 MHz вместо 72 MHz и USB няма да отиде на 72 MHz вместо необходимите 48 MHz. Можете също така да забавите скоростта на MK до 48 MHz, като промените делителя на USB шината от един и половина на един. Специалистите не обичат да използват вътрешния генератор на HSI MK: честотата може леко да се отклони поради нагряване и е трудно да се предвидят последствията за USB. Е, не забравяйте за периферията, разбира се. Без SPI/SDIO флаш памет, от примера за масово съхранение можете да направите само аналог на /dev/null, но не можете да го форматирате :-)
Инженерите по индустриална електроника имат отлични познания и умения в хардуера; те запояват тънки като косъм радиокомпоненти с лявата си ръка със затворени очи (и тогава работи). Гледайки електронна верига, човек почти физически започва да усеща всички нейни токове с потенциали; те също работят със силови вериги и с (големи, бързи, опасни) индустриални продукти. Подходът към програмирането на MK е подходящ: той просто трябва да изведе необходимите логически нива на десните крака в точното време, няма значение по какъв начин. Те са консервативни в технологията (не се намесвайте - работи), тежките MK периферни устройства не са особено предпочитани. Когато обсъждаме обектно-ориентирано програмиране, информационна сигурност, гигантски проекти с милиони редове код и всякакви фантастични графични интерфейси, хората се отегчават. Вместо пакетно-ориентираната USB шина, те предпочитат USART стрийминг режим, подобрен или от обичайния RS-232, или от по-бруталния RS-485 (серийна шина за индустриални приложения, до 10 Mbit/s на 15 m, до 100 kBit/s при 1200 m, до 32 устройства).
ИТ специалистите са възпитани с разбиране за операционни системи, мрежова инфраструктура и сложни взаимодействия; елитът е добре запознат с информационната сигурност и разбира всякакви невидими начини за проникване в системата на някой друг. Някои хора наистина обичат котки (как да не ги обичаш? Аз обаче не отглеждам, не развъждам и не готвя :-). Много хора обичат свободата на информацията, критикуват корпорациите/правителствата и побеждават природните сили със силата на мисълта. Те са патологично мързеливи, но обичат новите технологии и усуканите инженерни пъзели със скъпи играчки (за предпочитане решени на софтуерно ниво или, в краен случай, джъмпери). Връзките с поялник се пазят: не питайте ИТ специалиста дали харесва поялник, може да разбере погрешно; По-добре попитайте дали обича да запоява електронни схеми.
за какво говоря Ние просто виждаме този свят по различен начин... В края на краищата ядрото на Linux беше създадено от едни и същи хора, от модули в C и асемблерни вложки за специфични платформи, и те изглежда се справяха без holivars. Виждам наистина сериозен проект като многоядрена система, съчетаваща най-новите микроконтролери с тежки периферни устройства, но не изключвам комбинации с класически модели като AVR: те могат да се използват за окачване на някои критични, бързо въртящи се върхове на техническия прогрес. Ако кодът е тестван с години, защо не?
Добавете етикетиДнешната статия ще бъде посветена, както подсказва заглавието, на обсъждане на основите USB интерфейс. Нека да разгледаме основните понятия, структурата на интерфейса, да разберем как става прехвърлянето на данни и в близко бъдеще ще приложим всичко това на практика 😉 Накратко, да започваме!
Има няколко различни спецификации USB. Всичко започна с USB 1.0и USB 1.1, след което интерфейсът се разви в USB 2.0, окончателната спецификация се появи сравнително наскоро USB 3.0. Но в момента най-често срещаното изпълнение е USB 2. 0.
Е, за начало, основните точки и характеристики. USB 2.0поддържа три режима на работа:
Команди в автобуса USB хост(например компютър), към който можете да свържете до 127 различни устройства. Ако това не е достатъчно, тогава трябва да добавите друг хост. Освен това е важно самото устройство да не може да изпраща/получава данни към/от хоста; необходимо е хостът да се свърже със самото устройство.
Почти всички статии за USBВиждал съм използването на термина крайна точка“, но това, което е, обикновено се пише доста неясно. И така, крайната точка е част от устройството USB, който има свой собствен уникален идентификатор. Всяко устройство USBможе да има множество крайни точки. Като цяло крайната точка е просто област от паметта USBустройство, в което могат да се съхраняват всякакви данни (буфер за данни). И в крайна сметка получаваме това - всяко устройство има свой собствен уникален адрес в шината USBи всяка крайна точка на това устройство има свой собствен номер. като това)
Нека се отклоним малко и да поговорим за „хардуера“ на интерфейса.
Има два вида конектори – Тип А и Тип Б.
Както вече става ясно от фигурата Тип Авинаги е с лице към домакина. Това са съединителите, които виждаме на компютри и лаптопи. Съединители Тип Бвинаги се отнасяйте за свързани USB устройства. USB кабелът се състои от 4 проводника с различни цветове. Е, всъщност червеното е мощност (+5 V), черното е земята, бялото и зеленото са за предаване на данни.
В допълнение към тези, показани на фигурата, има и други опции за USB конектори, например mini-USB и други, добре, вече знаете това 😉
Вероятно си струва да се докоснем малко до метода за прехвърляне на данни, но няма да навлизаме по-дълбоко в това) Така че, когато прехвърляте данни през шината USBизползва се принципът на кодиране НРЗИ(без връщане към нула с инверсия). За да се предаде логическа „1“, е необходимо да се повиши нивото на линията D+ над +2,8 V, а нивото на линията D- трябва да се понижи под +0,3 V. За да се предаде нула, ситуацията е обратната - ( D- > 2,8 V) и (D+< 0.3 В).
Трябва да обсъдим и захранването на устройствата USB. И тук също са възможни няколко варианта.
Първо, устройствата могат да се захранват от шината, след което могат да бъдат разделени на два класа:
Разликата тук е, че маломощниустройствата не могат да консумират повече от 100 mA. A устройства висока мощностне трябва да консумира повече 100 mAсамо на етап конфигуриране. Веднъж конфигурирани от хоста, тяхното потребление може да достигне до 500 mA.
Освен това устройствата могат да имат собствено захранване. В този случай те могат да получат до 100 mAот автобуса и вземете всичко останало от вашия източник)
Това изглежда е всичко, нека бавно да преминем към структурата на предадените данни. Все пак това е от най-голям интерес за нас 😉
Цялата информация се предава персонал, които се изпращат на редовни интервали. От своя страна всеки кадър се състои от сделки. Това може да е по-ясно по този начин:
Всяка рамка включва пакет , след това следват транзакции за различни крайни точки и всичко завършва с пакет EOF (край на кадър).За да бъда абсолютно точен, тогава EOF- това не е съвсем пакет в обичайния смисъл на думата - това е интервал от време, през който обменът на данни е забранен.
Всяка транзакция има следната форма:
Първият пакет (нар Токен найлонов плик) съдържа информация за адреса на устройството USB, както и номера на крайната точка, към която е предназначена тази транзакция. В допълнение, този пакет съхранява информация за вида на транзакцията (ще обсъдим какви типове има, но малко по-късно =)). – всичко е ясно с него, това са данните, предадени от хоста или крайната точка (в зависимост от вида на транзакцията). Последен пакет –Статус
Думата „пакет“ е чувана много пъти във връзка с интерфейса. USB, така че е време да разберете какво е то. Да започнем с опаковката Токен:
Пакети Токенима три вида:
Ето защо казах това..) В зависимост от вида на пакета, стойността на полето PID V Токенпакетът може да приема следните стойности:
Да преминем към следващия компонент на пакета Токен– полета Адреси Крайна точка- съдържат Адрес на USB устройство и номер на крайна точка, което е предназначено сделка.
Какво поле CRC– това е контролна сума, това е ясно.
Тук има още един важен момент. PIDвключва 4 бита, но по време на предаване те се допълват с още 4 бита, които се получават чрез обръщане на първите 4 бита.
И така, следващият по ред - тоест пакет данни.
Всичко тук е основно същото като в опаковката Токен, само че вместо адреса на устройството и номера на крайната точка, тук имаме предадените данни.
Остава да обмислим – всичко е ясно с него, това са данните, предадени от хоста или крайната точка (в зависимост от вида на транзакцията). Последен пакет –пакети и SOF пакети:
тук PIDможе да приема само две стойности:
И накрая пакети:
Тук виждаме ново поле Рамка– съдържа номера на предавания кадър.
Нека да разгледаме процеса на записване на данни на USB устройство като пример. Тоест, разгледайте пример за структурата на кадър за запис.
Рамката, както си спомняте, се състои от транзакции и има следната форма:
Какви са всички тези транзакции? Нека да го разберем сега! Транзакция НАСТРОЙКА:
Транзакция ВЪН:
По същия начин, когато четете данни от USB устройство, рамката изглежда така:
Транзакция НАСТРОЙКАвече видяхме, нека да разгледаме сделката IN 😉
Както можете да видите, всички тези транзакции имат същата структура, както обсъдихме по-горе)
Като цяло, мисля, че това е достатъчно за днес 😉 Това е доста дълга статия, надявам се, че ще се опитаме да приложим USB интерфейса на практика в близко бъдеще!