Technologie

Rozhraní USB. Kompletní přehled a struktura datových paketů.

Hostitel (například PC) zadává příkazy na sběrnici USB, ke které lze připojit až 127 různých zařízení. Pokud to nestačí, je nutné přidat dalšího hostitele. Důležité je, aby samotné zařízení nemohlo odesílat/přijímat data do/z hostitele, je nutné, aby se hostitel sám s daným zařízením spojil.

Téměř každý článek o rozhraní USB, který jsem viděl, používá termín „конечная точка„, ale co to je, je obvykle napsáno dost vágně. Koncový bod je tedy část USB zařízení, která má svůj vlastní jedinečný identifikátor. Každé zařízení může mít několik koncových bodů. Koncový bod je z velké části jen oblast paměti USB zařízení, která může ukládat nějaká data (datová vyrovnávací paměť). A v důsledku toho dostaneme toto – každé zařízení má svou vlastní jedinečnou adresu na sběrnici USB a každý koncový bod tohoto zařízení má také své vlastní číslo.

Pojďme trochu odbočit a povědět si něco o „hardwaru“ rozhraní. Existují dva typy konektorů – typ A a typ B.

Jak je již z obrázku zřejmé, konektor typu A je vždy otočen k hostiteli. Jsou to konektory, které vidíme na PC. Konektory typu B vždy označují připojená zařízení USB. Kabel se skládá ze 4 vodičů různých barev. Červený vodič je napájení (+5 V), černý vodič je zem, bílý a zelený vodič slouží pro přenos dat.

Přestože je toto barevné značení nejběžnější, někteří výrobci mohou používat i jiné barvy. Navíc jsem měl kabel, u kterého byly červený a černý vodič zaměněny, tj. červený šel do země. Pokud tedy pracujete přímo s vnitřkem kabelu, buďte opatrní a nedůvěřujte barvě bezvýhradně. Je lepší zavolat a znovu zkontrolovat.

Kromě těch, které jsou zobrazeny na obrázku, existují i jiné verze USB konektorů, například mini-USB a další, myslím, že zde neprozradím žádná tajemství.

Možná by stálo za to dotknout se metody přenosu dat, ale prozatím se jí nebudeme podrobněji zabývat. Takže při přenosu dat přes sběrnici USB se používá princip kódování NRZI (nenávrat k nule s inverzí). Pro přenos logické „jedničky“ je nutné zvýšit úroveň linky D+ nad +1 V a snížit úroveň linky D- pod +2.8 V. Pro přenos nuly je situace opačná – (D- > 0.3 V) a (D+ < 2.8 V).

Napájení zařízení je vhodné prodiskutovat samostatně. I zde je možné několik možností. Za prvé, zařízení lze napájet ze sběrnice, poté je lze rozdělit do dvou tříd:

Rozdíl je v tom, že zařízení s nízkým příkonem nemohou spotřebovávat více než 100 mA. Zařízení s vysokým příkonem nesmí spotřebovávat více než 100 mA pouze během fáze konfigurace. Jakmile je hostitel nakonfiguruje, jejich spotřeba může dosáhnout až 500 mA. Zařízení mohou mít navíc vlastní zdroj napájení. V tomto případě mohou ze sběrnice přijímat až 100 mA a zbytek čerpat ze svého zdroje.

Přečtěte si více
Minimální přípustná tloušťka stěny z pórobetonových tvárnic Ytong.

To se zdá být vše, takže logicky přejděme ke struktuře přenášených dat. Zejména proto, že ta nás nejvíce zajímá.

Datová struktura rozhraní USB.

Veškeré informace jsou přenášeny rámy, které jsou odesílány v pravidelných intervalech. Každý rámec se zase skládá z transakce::

Každý rámec obsahuje paket SOF (Start Of Frame), následovaný transakcemi pro různé koncové body, a vše končí paketem EOF (End Of Frame). Přesněji řečeno, EOF není přesně paket v obvyklém slova smyslu – je to časový interval, během kterého je výměna dat zakázána.

Každá transakce má následující formu:

První paket (nazývaný paket Token) obsahuje informace o adrese USB zařízení a také o čísle koncového bodu, pro který je tato transakce určena. Kromě toho tento paket ukládá informace o typu transakce (typy probereme o něco později). Datový paket – s ním je vše jasné, jedná se o data, která hostitel nebo koncový bod přenáší (v závislosti na typu transakce). Poslední paket – Status – je určen ke kontrole úspěšnosti přijetí dat.

Slovo „paket“ bylo v souvislosti s rozhraním USB zmiňováno již mnohokrát, takže je vhodné pochopit, co to je. Začněme s paketem Token:

Balíčky Známka Existují tři typy:

Paket In informuje USB zařízení, že je hostitel připraven přijímat z něj informace. Paket Out naopak signalizuje připravenost hostitele a jeho touhu sdílet informace. Paket Setup je potřebný pro použití řídicích přenosů. Paket Start Of Frame se používá k zahájení začátku rámce.

V závislosti na typu paketu může hodnota pole PID v paketu Token nabývat následujících hodnot:

  • Typ paketu tokenu OUT — PID = 0001
  • Typ paketu tokenu IN — PID = 1001
  • Typ balíčku tokenu: NASTAVENÍ — PID = 1101
  • Typ paketu tokenu SOF — PID = 0101

Kromě toho existuje ještě jedna důležitá nuance. Pole PID obsahuje 4 bity, ale během přenosu jsou doplněny o další 4 bity, které se získají invertováním prvních 4.

Přejděme k další komponentě paketu Token – polím Adresa a Koncový bod – obsahují adresu USB zařízení a číslo koncového bodu, na který je transakce určena. A nakonec pole CRC je kontrolní součet, to je jasné. Slouží jako obvykle ke kontrole integrity a správnosti dat.

Další v pořadí je datový paket – tedy datový paket:

Zde je vše v podstatě stejné jako v paketu Token, jen místo adresy zařízení a čísla koncového bodu jsou zde přenášená data. Zbývá tedy zvážit pakety Status a SOF, začněme s prvním z nich:

Zde PID může nabývat pouze dvou hodnot:

  • Balíček byl přijat správně. — PID = 0010
  • Chyba při příjmu paketu — PID = 1010

Balíček Začátek rámce:

Vidíme nové pole Rámec – obsahuje číslo přenášeného rámce. Jako příklad si uveďme proces zápisu dat na USB zařízení, tedy celou strukturu rámce pro zápis. Rámec, jak si pamatujete, se skládá z transakcí a vypadá takto:

Přečtěte si více
Jak si sami zkontrolovat zapalovací svíčky

Co jsou to všechno transakce? Pojďme si to teď vyjasnit, transakce SETUP:

Podobně při čtení dat z USB zařízení vypadá rámec takto:

Transakci SETUP jsme již viděli, podívejme se na transakci IN:

Jak vidíte, všechny tyto transakce mají přesně stejnou strukturu, jakou jsme diskutovali výše. Celkově si myslím, že to pro dnešek stačí, článek byl docela dlouhý, v blízké budoucnosti tyto teoretické aspekty určitě využijeme v praxi.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Back to top button