Jste zde

USB - Universal Serial Bus - Popis rozhraní

USB rozhraní se během posledních let stalo zcela běžnou součástí spotřební elektroniky připojitelné k počítači a již téměř vytlačilo klasický sériový port RS232 a někde dokonce i paralelní port. Koupit dnes notebook s klasickým sériovým rozhraní začíná být problém a proto jsou nuceni i výrobci a uživatelé speciálních aplikací postupně přecházet na USB.

Základní parametry rozhraní USB :

  • Komunikační rychlost od 1,5 Mbit/s do 480Mbit/s 
  • Komunikační vzdálenost do 5m
  • Možnost připojení více zařízení
  • Rozhraní obsahuje 5V napájení
  • Lze připojit až 127 zařízení pomocí jednoho typu konektoru. 
  • USB zajišťuje správné přidělení prostředků (IRQ, DMA, ...).


Programové vybavení pro ovládání rozhraní USB odpovídá plně standardu plug & play a je již několik let součástí operačních systémů Microsoftu a v různém rozsahu i jeho alternativ . v současné době již součástí Windows 95 OEM Service Release 2.1 nebo vyšší (označované jako verze 4.000.111 nebo vyšší) a samozřejmě Windows 98, popř. Windows NT.
 

Elektrické parametry USB

USB rozhraní používá dva typy konektorů. Plochý konektor „typ A“ je dnes obsažen na prakticky každém novém PC v minimálně 2 konektorech (některé základní desky mají integrován rovnou USB hub, který obsahuje až 8 portů přímo v PC).
Druhý konektor „typ B“ je určen pro periferní zařízení, čímž je zároveň definován standard propojovacího kabelu.
 
 
 

USB Host

USB Device

Kabely a komunikace:

Stíněný :
Data: 28 AWG twisted
Power: 28 AWG - 20 AWG non-twisted

Nestíněný :
Data: 28 AWG non-twisted
Power: 28 AWG - 20 AWG non-twisted

 AWG  max. délka
28 0,81 m
26 1,31 m
24 2,08 m
22 3,33 m
20 5,00 m
 
Pin Jméno Barva Popis
1 VBus Red +5 VDC
2 D- White Data -
3 D+ Green Data +
4 GND Black Ground

Jsou definovány dvě verze fyzické vrstvy USB 1.1. Pro USB verze 2.0 byla doplněna nejrychlejší vrstva :

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

Všechny  verze propojení mohou být použity a provozovány současně pro připojení různých typů periferií k jednomu počítači. Uvedené verze se od sebe liší jak provedením kabelu, tak elektrickými parametry rozhraní připojeného zařízení.

Při rychlostech "Full Speed" a "High Speed" je log. 1 přenášena diferenciálně uvedením  D+ přes 2.8V s připojeným 15Kohm odporem na GND a D- je pod 0.3V s 1.5Kohm odporem připojeným na 3.6V. Log. 0 je řešena opačně =D- přes  2.8V a D+ pod 0.3V se stejnými hodnotami odporů.

Definice rychlosti

Pro správnou definici rychlosti je určen speciální nastavovací režim, kdy je D+ nebo D- připojeno k 3.3V. 
Full speed zařízení připojí rezisto u D+, čímž definují svoji rychlost. Tyto odpory jsou použity zároveň protistranou k detekci, zda je na protistraně připojeno USB zařízení. 


Low Speed Device - pull up odpor na D-

Zařízení podporující High Speed se připojují stejně, jako v režimu Full Speed. a směnu rychlosti pak řeší softwarově.
Zařízení podle standardu USB 1.1 nemusejí podporovat Full Speed, což umožňuje produkovat levnější rozhraní v aplikacích, kde není kritická rychlost. Totéž platí pro USB 2.0, jehož zařízení nemusejí podporovat High Speed. 


Full Speed Device - pull up odpor na D+


 

Napěťové úrovně jsou přibližně TTL - logická nula je 0,3V se zatížením do 1,5kOhmu proti napájení, logická jednička 2,8V se zatížením do 15 kOhmů proti zemi. Pro využití maximální přenosové rychlosti (12Mbps) může být kabel dlouhý max. 5 metrů přičemž musí být stíněný a kroucený, pro nízkorychlostní přenosy (do 1,5Mbps) může být použit nestíněný a nekroucený kabel s max. délkou 3 metry. Terminátory s impedancí 90 Ohmů jsou součástí hubů. 

Pro přenosové rychlosti do 1,5 Mb/s nemusí být datové vodiče zkrouceny, nemusí být použito stínění a maximální délka takovéhoto kabelu je 3 m. Přenosová impedance kabelu je v obou případech 60 W. Pro obě varianty je použito diferenční zapojení vysílačů z ( podle [1] ) :

Minimální diferenční vstupní napětí přijímače je 200 mV při souhlasném rušivém napětí až 2,6 V.Rozhraní USB zařízení jsou dále doplněna zakončovacími odpory, podle výše uvedené definice rychlosti rozhraní.

 

Napájení :

USB zařízení mohou být napájena přímo z USB sběrnice, pokud jejich odběr nepřekročí 100mA , příp. 500mA (max. jedno zařízení na celé USB sběrnici. Napájecí napětí je 5V. 
Pokud mají USB zařízení vlastní zdroj (např. počítač má vlastní systém pro distribuci napájení nezávislý na USB), je řízen USB sběrnicí (zapínání, vypínání, SUSPEND mód atd.)  Každý segment USB umožňuje omezený přenos výkonu pro napájení USB zařízení, přičemž zařízení může být současně napájeno z vlastního zdroje,

  • HUB dodává pomocí napájecích pinů do USB zařízení  napětí 4.75 V až 5.25 V. 
  • Maximální pokled napětí ze HUBu je  0.35 V.
  • Každý HUB musí být schpen poslat konfigurační data na napětí 4.4V, ale jen "low-power" funkce musejí fungovat.
     
  • HUB napájený po sběrnici : Odběr max 100 mA při zapnutí a 500 mA průběžně.
  • HUB napájený ext. zdrojem : Odběr max 100 mA,  musí dodávat 500 mA na každý port.
  • Zařízení "Low power" : Odběr max 100 mA.
  • Běžná zařízení : Odběr max 100 mA.
  • "Spící" zařízení : Max 0.5 mA
     

Stínění :

Stínění USB kabelu musí být připojeno k pinu GND na straně "host".. Žádné zařízení již nepřipojuje stínění k pinu GND.
 

Softwarové a systémové vlastnosti USB

  • Autoidentifikace periferií, automatické mapování funkce a konfigurace driveru 
  • Dynamicky připojitelné a překonfigurovatelné periferie 
  • Připojení periferií požadujících přenosové pásmo od několika kb/s do několika Mb/s 
  • Podpora synchronních i asynchronních přenosů 
  • Současná funkce více zařízení připojených na společnou USB sběrnici 
  • Podpora sdružených zařízení, tj. zařízení s mnoha sdruženými funkcemi 
  • Jednoduchý protokol 
  • Malý overhead protokolu (tj. protokol má vysokou efektivitu) 
  • Garantované šířky pásma pro zařízení, které jej vyžadují (telefon, audio atd.) 
  • Možnost využití celé šířky pásma jedním zařízením 
  • Široký rozsah délky paketů, umožňující optimalizaci využití protokolu 
  • Řízení přenosu pro buffery je součástí protokolu 
  • Robustnost - zpracování chyb je součástí protokolu 
  • Dynamické přidávání a ubírání zařízení při jejich připojení/odpojení 
  • Podpora pro identifikaci vadných zařízení, indikace chyb přenosu a možnost jejich korekce.
  • Automatická indikace připojení a odpojení periferie
  • Konzistence s PC Plug and Play architekturou 
  • Zabudování podpory do stávajících operačních systémů 
  • Levný subkanál na 1,5 Mbps 
  • Architektura povýšitelná na podporu více USB adaptérů v systému 

Architektura USB

Zařízení vybavené rozhraním USB je buď rozdělovač (hub – centrální jednotka hvězdicovité struktury), nebo funkční jednotka (periferní zařízení – např. myš, klávesnice, scaner, tiskárna, MP3 přehrávač, digitální audiovstup..). Propojení je řešeno pomocí víceúrovňové hvězdicové struktury.

Středem každého hvězdicového propojení je HUB a jednotlivé propojovací segmenty spojují buď počítač (USB host) obsahující centrální rozdělovač s funkčními jednotkami a rozdělovači na vyšší úrovni, nebo rozdělovač na vyšší úrovni s funkčními jednotkami a rozdělovači na nižší úrovni. 
Každé USB zařízení má svoji USB adresu a podporuje jednu nebo několik koncových jednotek (end-points / nodes), se kterými může počítač komunikovat. Příklad jednoduché reálné struktury umožňující připojení běžných komerčních periferií je uveden na obrázku.  Počítač může přes HUBy komunikovat se všemi zařízeními na tomto obrázku. 

Přenos dat

Pro veškerou komunikaci mezi počítačem a funkční jednotkou jsou k dispozici tři typy paketů. Každá výměna dat začíná tím, že počítač vyšle tzv. token packet obsahující popis typu a směru výměny dat, adresu USB zařízení a číslo koncové jednotky (endpoint number). Pak zařízení, které má vysílat data, vyšle datový paket nebo indikuje, že žádná data nejsou k dispozici. Přijímací strana nakonec vyšle tzv. handshake packet, kterým informuje, zda přenos proběhl úspěšně.

Existují zde dva typy přenosového modelu : 

Tok dat (stream) využívající izochronní přenos dat v reálném čase. Nemá přesně definovanou strukturu.

Zzpráva (message) využívající asynchronní přenos. Má přesnou strukturu :

  • Řídicí zpráva určená pro konfigurování poprvé aktivovaného zařízení;
  • Zpráva obsahující větší objem dat (např. pro tiskárnu nebo plotter), jež je většinou segmentována do více částí;
  • Zpráva s přerušením (obvykle několik bajtů), kterou spontánně vysílá zařízení, aby předalo zprávu o svém stavu (např. změna polohy myši).

Pro kódování je ve všech případech použit kód NRZI (not-return-to-zero recording). Zabezpečení přenosu zajišťuje CRC (Cyclic Redundancy Check).
 

Softwarové nadstavby USB rozhraní jsou nad rámec tohoto článku. Veškeré detaily najdete v uvedených informačních zdrojích. Doporučuji především server Beyondlogic jehož sekce o USB ve informačně velmi hodnotná. 
 

Zajímavé obvody pro USB

Pro připojení USB rozhraní do vaší aplikace existuje relativně jednoduchá cesta. Pomocí integrovaných obvodů firmy FTDI lze skrz USB snadno připojit do širokého spektra aplikací. Základní použití obvodů sběrnici USB před konstruktérem skrývá. Z hlediska PC se pak jeví jako standardní (ovšem velmi rychlý) sériový port, z hlediska zařízení se jeví buď jako sériový port (typ '232) nebo jako osmibitová obousměrná sběrnice (typ '245). 

  • FT8U232AM - konvertor USB - UART s přenosovou rychlostí 300 Bd až 920 kBd pro RS232 a až 2 MBd pro sběrnici RS485 
  • FT8U245AM - konvertor USB - FIFO (osmibitová obousměrná sběrnice) s maximální přenosovou rychlostí až 1MByte/s 
  • FT8U100AX - multifunkční USB hub kontrolér s vestavěným mikrokontrolérem, porty RS232, PS/2 (klávesnice a myš), IR a uživatelsky definovanými I/O piny 

FT8U232AM

Konvertor USB - UART s přenosovou rychlostí 300 Bd až 920 kBd pro RS232 a až 2 MBd pro sběrnici RS485. K dispozici je i plné hardwarové řízení přenosu - signály RTS, CTS, DTR, DSR, DCD a RI, a navíc signál TXDEN pro spolupráci s konvertory úrovní RS485. V obvodu je zabudována dvouportová vyrovnávací pameť o velikosti 384 B ve směru od PC k aplikaci a 128 B ve směru k PC. 

 

FT8U245AM 

Konvertuje USB - FIFO (8bit) s maximální přenosovou rychlostí až 1MByte/s. Přenos se řídí velmi jednoduše vstupními signály RD a WR, stav vnitřní vyrovnávací paměti (384 byte pro směr od PC k aplikaci a 128 B pro směr k PC) je indikován signály TXE a RXF. Pokud TXE=log.1, je vnitřní vyrovnávací paměť plná a není možné přijmout z periferie další data. RXF=log.1 signalizuje aplikaci přítomnost platných dat ve výstupní vyrovnávací paměti, z které je koncové zařízení může číst až do chvíle, kdy RXF=log.0. 

Společnými vlastnostmi obou konvertorů je podpora protokolu USB 1.1, možnost připojení externí EEPROM obsahující uživatelské sériové číslo nebo identifikační řetězec, možnost napájení 4,4 V až 5,25 V přímo z USB (zabudovaný 3,3 V regulátor), integrovaný násobič kmitočtu 6 MHz - 48 MHz pro časování USB operací. Proudová spotřeba je max. 50 mA při normálním provozu a max. 250 ?A v režimu USB Suspend. Oba obvody se vyrábějí v kompaktním pouzdře MQFP (velikost 7×7 mm) s 32 vývody o rozteči 0.8 mm. Uživatel snadno přistupuje ke koncovému UARTu nebo FIFO portu prostřednictvím ovladačů VCP (Virtual COM Port) dodáváných pro platformy Windows 98/ME/NT4.0/2000/XP, Apple OS8/OS9 a Linux, jakoby obsluhoval standardní COM porty (např. pomocí Win API). K dispozici jsou také DLL knihovny s ovladači včetně příkladů pro Visual C++, Visual Basic, Borland C++ Builder a Delphi. Ovladače jsou volně dostupné na Internetu. Použití uvedených integrovaných obvodů tedy není zatíženo žádnými dalšími skrytými náklady (nákup návrhového systému, placení licenčních poplatků apod.). 
 

Podrobné informace od výrobce

Kromě těchto obvodů existují ještě moduly, které lze použít i bez složitého pájení SMD obvodů.  O těchto modulech nebo aplikacích si něco povíme v dalším článku o praktickém použití USB.

Tyto obvody u nás prodává firma ASIX, u které najdete i ceník těchto obvodů.  (1ks obvodu cca 200 Kč)
 

Download & Odkazy

Hodnocení článku: