Komentáře
- Už jste se podívali na Specifikace univerzální sériové sběrnice , zejména na USB, kapitola 9? Nebo si přečtěte Jan Axelson ' s USB Complete?
- Díky za tyto zdroje, ale jediným problémem je, že o elektronice sotva něco vím, takže průvodce nemá smysl mě. Vím, že pochopení celého protokolu USB vyžaduje konkrétní hluboké znalosti, ale potřebuji jen rychlý přehled. (Tato otázka není pro projekt ' t. Jen jsem se ho zeptal, protože jsem Byl jsem zvědavý)
Odpovědět
Pokusím se odpovědět na vaše otázky, abyste je navrhli (číslování může pomoci).
Existují skutečně čtyři vodiče (prozatím ignorujeme USB3.x). Dva skutečně pro napájení (+ 5 V a GND) a dva pro signalizaci (D + a D -).
Klíčovou věcí, kterou je třeba si o signálních vodičích povšimnout, je jejich název, všimněte si + a – (někdy také P a N nebo P a M). Ty v elektronice obvykle naznačují, že je něco diferenciální. znamená, že 1 a 0 jsou označeny polaritou napětí mezi každým kabelem. Toto je na rozdíl od jednoduchého konce, kde 1 a 0 jsou přenášeny jako napětí vzhledem k GND.
Co mám na mysli polaritou? Představte si, že kabel D + je řízen na \ $ + 3,3 \ m athrm {V} \ $ a D- je řízen na \ $ 0 \ mathrm {V} \ $. Rozdíl mezi nimi je \ $ V_ {D +} – V_ {D-} = 3,3 – 0 = 3,3 \ mathrm {V} \ $. Nyní, pokud místo toho byl kabel D + veden na \ $ 0 \ mathrm {V} \ $ a D- veden na \ $ + 3,3 \ mathrm {V} \ $, rozdíl se stane \ $ V_ {D +} – V_ {D- } = 0 – 3,3 = -3,3 \ mathrm {V} \ $. Všimněte si znaménka mínus označujícího opačnou polaritu.
Aby to fungovalo, musí být oba datové kabely vzájemně komplementární (když je jeden vysoký, druhý nízký), aby mohl přenášet data, tedy musí pracovat na stejné frekvenci. Možná si myslíte, proč se obtěžovat, stačí použít jeden kabel. Jde o to, že svět je poměrně hlučné místo, drát s jedním zakončením (v běžném režimu) je velmi náchylný k šumu, který při vysokých rychlostech (i při nízkých rychlostech v drsném prostředí) může poškodit data (vytvořit 1 a 0). V diferenciální signalizaci jsou oba kabely vystaveny stejnému šumu, takže se ruší!
Rychlý příklad. Řekněte, že odesílaný signál je \ $ 2 \ mathrm {V} \ $ nebo \ $ 0 \ mathrm {V} \ $. Řekněme také, že na každém vodiči získáte \ $ 1 \ mathrm {V} \ $ šumu (nereálné, ale příklad). U jednoho konce by vaše signály na přijímači byly buď \ $ 2 + 1 = 3 \ mathrm {V} \ $, což je jednoznačně logika 1, nebo \ $ 0 + 1 = 1 \ mathrm {V} \ $, na kterém místě vůbec netuším, co to bylo. U diferenciálu by však vaše signály na přijímači byly buď \ $ (2 + 1) – (0 + 1) = 2 \ mathrm {V} \ $ nebo \ $ (0 + 1) – (2 + 1) = – 2 \ mathrm {V} \ $, které jsou oba stejné, jako kdyby vůbec nebyl žádný hluk!
Existence dalších dvou vodičů má další výhody. Pokud neodesílá data, USB specifikace používá dva vodiče samostatně pro řídicí signály, např. synchronizační signál, resetovací příkaz atd. Od datových paketů je lze jasně odlišit různými triky, které jsou pravděpodobně příliš hluboké (vše bude ve specifikaci USB zmíněné v komentářích).
Na USB musí mít obě zařízení stejnou frekvenci. Obvykle se jedná o několikanásobek 12MHz – proto uvidíte zařízení USB pracující na taktovacích frekvencích jako 48MHz nebo 12MHz atd. Tyto frekvence jsou generovány referenční hodnotou krystalu, která je obvykle přesná na přibližně 20ppm (240Hz pro 12MHz krystal) ). To je obecně dost blízko na to, že díky synchronizačním impulzům na datových linkách a skutečnosti, že se data odesílají v dávkách (což znamená, že drift ve frekvenci se po dlouhou dobu nesčítá), mohou tato dvě zařízení zůstat synchronizovaná. měli byste náhodou použít, řekněme, 16MHz krystal, zařízení pravděpodobně neuvádí výčet.
Jak hlavní zjistí, že zařízení potřebuje energii? Jednoduché, všechna zařízení USB mohou kreslit množství proudu bez požadavku – až \ $ 100 \ mathrm {mA} \ $, pokud si dobře pamatuji. To dává zařízení dostatek energie k zapnutí, prosazení jeho přítomnosti (pomocí pull up rezistoru na lince D + – opět pravděpodobně Jakmile je velitel zařízení obeznámen, přidělí tomuto zařízení příspěvek na napájení a zeptá se, zda bude potřebovat více (např. pro zařízení s vysokým výkonem, pokud chce \ $ 500 \ mathrm {mA} \ $ vysoký proudový příspěvek).
Protokol USB je ve specifikaci. Pokus o přechod by byl pravděpodobně stále příliš hluboký.Ale když už jste řekli, že byste se měli podívat na tuto odpověď na jinou otázku, která poskytuje některé podrobnosti.
Odpověď
USB 1.x (1,5 Mbit / s a 12 Mbit / s) a 2,0 (480 Mbit / s) používají čtyři vodiče, V \ $ _ {BUS} \ $ ( +5), D +, D- a GND. D + a D- tvoří diferenciální pár. K dispozici je také rozšíření s názvem OTG (On-The-Go), které umožňuje zařízení chovat se jako hostitel USB nebo jako zařízení, a to využívá páté ID vedení, které můžeme ignorovat.
Pokud maximální rychlost každého hostitele a zařízení se liší, probíhá vyjednávání a používá se nejvyšší společná rychlost pro obě zařízení.
Diferenciální signalizace umožňuje vysoký stupeň odolnosti proti rušení. Datové signály jsou vysílány kladně na lince D + a záporně na lince D-. Na přijímací straně je plusový vodič odeslán do plusového vodiče komparátoru (fungujícího jako odečítač) a minusový vodič je odeslán do – vodícího vodítka komparátoru.
U platných pulzů tyto dva přidávají (protože negativní puls byl odeslán do – náskok komparátoru, dodávají). Pokud je však na lince indukován šum, bude to mít obecně vliv na obě čáry D + i D- a komparátor je odečte.
Diagram ukazuje, že data jdou pouze jedním směrem. Je to proto, že signály USB jsou poloduplexní, data jdou pouze jedním směrem najednou.
USB 3.0 (až 10 Gbit / s) používá devět vodičů místo čtyř a poskytuje plně duplexní provoz, protože v každém směru existují diferenciální páry pro vysílání a příjem.
Zařízení mohou čerpat až 100 mA, aniž by se museli „ptát“. U USB 1.xa 2.0 může zařízení požádat hostitele o napájení až 500 mA. U USB 3.0 to bylo zvýšeno na 900 mA. K nabíjení baterie se používá samostatný protokol (žádná výměna dat); to může v některých případech dosáhnout až 5 A.
Komentáře
- Děkujeme za odpověď. Co se stane, pokud mají obě zařízení různé taktovací frekvence?
- Je použita technika s názvem " obnova hodin ": arrowdevices.com/blog/beginners-guide-to-clock-data-recovery
odpověď
USB používá diferenciální signalizaci ke snížení interference a umožnění vysokorychlostního přenosu na velkou vzdálenost. Diferenční sběrnice je postavena na dvou vodičích, z nichž jeden představuje přenášená data a druhý je doplňkem. Myšlenka je, že „průměrné“ napětí na vodičích nepřenáší žádné informace, což vede k menšímu rušení. sběrnice (USB, Ethernet, PCIe, SATA atd.) jsou rozdílné, protože náklady na další vodiče jsou daleko převažovány výhodami v redukci šumu. USB 2 je také to, čemu se říká „poloviční duplex“. To znamená, že pouze odkaz pracuje v jednom okamžiku v jednom směru. Řekněme, že váš počítač může poslat zprávu vaší myši. Nebo vaše myš může poslat zprávu do vašeho počítače. Ale ne oba najednou. Autobus se musí každý „otočit“ časová data musí být zasílána opačným směrem.
Pokud jde o taktování, USB využívá zařízení zvaná serializátory a deserializátory. Serializátor je zodpovědný za generování sériových dat na vysílacím konci a deserializátor je zodpovědný za získání bitů na druhé en d. Součástí práce serializátoru je kódování dat způsobem, který bude snadné dekódovat zahrnutím informací o rámcích a synchronizaci. Součástí práce deserializátoru je obnovit hodinový signál. USB používá kódování zvané NRZI nebo inverzní non-return-to-zero. V NRZI je logická 0 reprezentována přechodem a logická 1 je reprezentována žádným přechodem. USB používá bitovou nádivku k omezení délky po sobě jdoucích 1 s odesílaných po drátu. Výsledek toho znamená, že existují přechody dostatečně často na to, aby se obnovily všechny bity, i když hodiny na vysílači a přijímači netikají přesně stejnou rychlostí. Musí však být relativně blízko. Existují také explicitní synchronizační sekvence, které se odesílají spolu s daty.
Pokud jde o napájení, zařízení může čerpat určité množství energie, aniž by se zeptalo hostitele. Chcete-li nakreslit více než to, je nutné vyjednat, abyste se ujistili, že hostitel není přetížen. Zařízení musí počkat, až získá povolení, než bude moci čerpat více proudu.