Datasheet

Year, pagecount:2005, 3 page(s)

Language:Hungarian

Downloads:195

Uploaded:September 11, 2009

Size:69 KB

Institution:
-

Comments:

Attachment:-

Download in PDF:Please log in!



Comments

No comments yet. You can be the first!

Content extract

Az USB busz. A soros adatátvitel méltán népszerű kommunikációs megoldás, hiszen kevés vezeték felhasználásával lehet az információt átvinni. Azonban a klasszikus RS232 soros adatátvitelnek két súlyos hátránya van:    az általa nyújtott, jelenleg már viszonylag kicsi adatátviteli sebesség, mindössze egy készülék kapcsolható hozzá, a pont-pont típusú kapcsolat miatt, használata negatív tápfeszültséget is igényel. Az USB ezen hátrányok orvoslása mellett lehetővé teszi az összeköttetés létrehozását, illetve a megszüntetését a készülék bekapcsolt állapotában, valamint a busz a csatlakozó eszköz tápellátását biztosító vezetékeket is tartalmaz. Az USB busz felfűzött csillag topológiájú, lekérdezés alapú mesterszolga típusú félduplex kommunikációt valósít meg. Kiindulópontja mindig egy USB vezérlő (hoszt), amelyhez vagy egy készülék, vagy újabb egységek illesztését lehetővé tévő USB-HUB

csatlakozik. Egy vezérlőhöz a HUB-okon keresztül maximum 127 készülék kapcsolható, és az egymáshoz kapcsolt HUB-ok szintjeinek száma sem lehet 6-nál több. Az USB hoszt-központú: a kommunikáció vezérlését mindig a mester végzi. A hoszt felől érkező forgalmat a hub-ok üzenetszórásos módon minden eszközhöz továbbítják, azaz ezeket mindenki látja. A perifériák válaszai csak a hoszt felé haladnak. A kapcsolódó eszközök önállóan beszélgetést nem kezdeményezhetnek. Két sebességen képes a busz működni: a 12 Mbit/sec teljes, illetve a 1.5 Mbit/sec alacsony sebességen Az USB20 szabvány már 480 Mbit/sec adatátviteli sebességet is lehetővé tesz. HOSZT (VEZÉRLŐ) LETÖLTÉS ROOT ESZKÖZ (SZOLGA) HUB ESZKÖZ (SZOLGA) 1. SZINT 2. SZINT ESZKÖZ (SZOLGA) HUB ESZKÖZ (SZOLGA) 6. SZINT FELTÖLTÉS USB adatforgalom típusai Az USB busz átviteli protokoll a PC perifériák különféle igényeinek megfelelően négyféle működést

valósíthat meg:     vezérlésátvitel: rövid, a hoszt által kezdeményezett, kétirányú forgalom, általában parancs kiküldés-állapot-visszajelzés formájú, a periféria konfigurálására és állapotának lekérdezésére szolgál; állandó sávszélességet megkövetelő átvitel: ilyen például valós idejű digitális hangtovábbítás; megszakításos átvitel: itt olyan valós idejű egyirányú átvitelről van szó, amelyben időről időre viszonylag nem túl sok adatot kell továbbítani; nagy tömegű adatátvitel: nagy adattömeg egyirányú, nem időkritikus átvitele, szükség esetén félbeszakítható és folytatható, például: folyamatos, egyirányú, nyomtatónak küldött vagy lapolvasótól érkező adatok. Az USB fizikai felépítése: Az USB busz fizikailag négy vezetékől áll: +5V, GND tápvezetékek, illetve a csavart érpárú D+ és D- jelvezetékekből. Minden buszról táplált eszköz 100 mA-el terhelhető, de az eszköz

– a hoszthoz intézett külön kérésre – 500 mA-es tápáramot is kérhet, ha ezt a hoszt tudja biztosítani. Ha nem tudja, akkor a kérő eszközt letiltja A hub és a periféria, illetve a hubok közötti maximális kábelhossz 1,5 Mbájt/mp sebességű perifériák esetén 5 méter lehet, nagysebességű átvitel esetén csak 3 méter. Két csatlakozó típust használnak: a téglalap alakú A típust a hoszt oldalon, illetve a négyzetes kialakítású B típust a perifériáknál. A szabvány még a vezetékek színéről is rendelkezik. 0 1 # 1 2 3 4 1 1 Vezeték szín Piros Fehér Zöld fekete 1 0 1 0 Funkció Vbus(5V) DD+ Gnd 1 1 0 0 A bitek fizikai átvitele NRZI (Non Return to Zero Inverted) kódolással +V továbbítódnak a kábelen. A 0 bitnek nulla szint felel meg Az 1 értékű bithez vagy 0 nulla vagy +V szint tartozik a következő szabály szerint: ha az előző 1-eshez nulla szint tartozott, akkor +V lesz, ha az előző 1-eshez +V tartozott,

akkor 0 szint lesz a NRZI bithez rendelt feszültség. 0 bitet követő 1 értékű bit mindig +V feszültségű A megfelelő jelszinkronizáció érdekében hat egymást követő 0 után a küldő automatikusan beszúr egy 1-t az adatfolyamba, s azt a fogadó oldal az adat tárolásakor - szintén automatikusan - figyelmen kívül hagyja. (bit stuffing) Az USB busz nem 0, +V feszültségszinteket használ. Az, hogy egy bit 0, vagy 1, azt a D+ és D- vezetékek közötti feszültség hordozza Ha (D-)-hoz képest D+ feszültsége nagyobb, mint 200 mV, akkor egyik állapot, fordított esetben a másik állapot áll fenn. Ezeket szokták J ill K állapotoknak nevezni Speciális események (pl. RESET) jelzésére szolgál egy olyan speciális vezeték állapot (neve: SE0), amikor mindkét vonalat 0 feszültségre húzzuk le bizonyos időre. USB végpontok A perifériák a megszokott portoknak tekinthető, ún. végpontokon keresztül küldenek és fogadnak adatokat. Egy perifériának

maximum 16 számozott (0-15) be- ill. kimeneti végpontja lehetséges, ezek közül a 0-ás címün keresztül történik a vezérlésátvitel, vagyis ezt mindig ki kell alakítani. Az USB hoszt minden végponthoz definiál egy, a végpont által kezelt adatforgalom típusának megfelelő kommunikációs csatornát; ezt az USB szóhasználatában csőnek (pipe) nevezik. A cső tulajdonképpen a rendelkezésre álló sávszélességből (a másodpercenként átvitt bitek számából) az átvitel típusának lefoglalt rész. Az USB eszköz inicializálásakor, a 0 végponton át folytatott párbeszédben közli a hoszttal többi végpontjának jellemzőit, köztük a nekik szükséges sávszélességet is. Csomagtípusok Az USB buszon megvalósított átvitel jellege kétféle átviteli módszer használatát igényli: az adatokat csomagokban (packet) továbbítja, és 1 ezred másodperc (1msec) hosszúságú időtartományokra - keretekre - osztja fel a működési időt. A

következőkben összefoglaljuk a keretben küldött csomagtípusokat, amit a csomagban lévő PID mező (ld. később) azonosít Mivel ez 4 bit hosszuságú, 16 fajta csomagtípus lehetséges. A csomagokban használt mezők: VÉGPONTOK Sync – szinkronizáló bitsorozat. Minden csomag ezzel kezdődik: 8/32 bit hosszú lassú/gyors átvitelnél. PID – packet identifier: csomag típus azonosító. 4 bit hosszúságú, de 8 bitessé van alakítva: az alsó 4 biten elhelyezett PID-nek a felső négybije az inverze. A következő PID típusok vannak: token – kommunikáció létrehozása, data - adatátvitel, nyugta – adó/vevő közötti megbízható átvitel, speciális – pl. EOP - a csomag vége a keret utolsó csomagja ADDR – 7 bites eszköz cím, a bejelentkezéskor, még címet nem kapott eszköz ADDR=0-át küld vissza ENDP - végpont sorszáma (4 bit), vagyis egy eszközben maximum 16 végpont lehetséges. CRC – ciklikus redundancia kód, hibaellenőrzésre. 5 bit

hosszúságú token csomagnál 16 bit hosszúságú adat csomagnál. EOP – End Of Packet=csomag vége, SE0 vonalállapot 2 bit idejére HOST USB KERETEK VP0IN VP0OUT CIM=2 FUNKCIÓ VP1IN VP1OUT PERIFÉRIA1 VP0IN FUNKCIÓ CIM=11 PERIFÉRIA2 Időkeretekben történő csomagátvitel Mivel az 1 msec hosszúságú keretben kell a csomagoknal elférni, ezért a hoszt az adatforgalom szervezését két fontos jellemző alapján végzi: minden átviteltípusra nézve korlátozva van az egy csomagban illetve az egy keretben küldhető adatok mennyisége. Például:    CSOMAGTÍPUSOK Sync PID Sync PID ADDR ENDP Data CRC5 EOP DATA: DATA0,DATA1, DATA2, MDATA CRC16 EOP vezérlésátvitelkor az adatcsomag mérete legfeljebb 64 bájt Sync PID EOP lehet, és egy keretben legfeljebb 13 ilyen csomag, azaz 832 bájt küldhető, vagyis másodpercenként 832 ezer bájt. Sync PID KERETSORSZÁM A valós idejű átvitelben a maximális adatcsomagméret 1023 bájt, és egy

keretben egy ilyen csomag lehet, emiatt a legnagyobb adatátviteli sebesség tehát 1023 ezer bájt másodpercenként. a szintén valós idejű megszakításátvitel esetén a maximális csomagméret 64 bájt, és ilyenből 19 lehet egy keretben; vagyis az elérhető sebesség 1216 ezer bájt/másodperc. TOKEN: IN,OUT,SETUP NYUGTA: ACK,NAK,STALL CRC5 EOP START OF FRAME Mivel több, valós átvitelt használó periféria csatlakoztatásakor elfogyhat a sávszélesség, azaz "betelhet" a keret, ezért ilyenkor a hoszt, megkapva a paramétereket az új végpontoktól, nem definiál nekik csövet, és hibajelzést küld a képernyőre: az új periféria használatához valamelyik régit ki kell kapcsolnunk. A sávszélességgel való gazdálkodást a hoszt a végpontra küldött engedélycsomaggal (tokennel) tartatja be: az egyes perifériák csak ezzel a kapott engedéllyel használhatják az USB buszt. Ahogy azt már a csomagtípusokat bemutató ábrán láttuk, az 1

msec-os időkeretben küldött minden csomag szinkronizáló Sync mezővel kezdődik, majd egy, a csomag típusát azonosító PID (packet identifier) mező következik. Token csomag küldése esetén ezt követi a periféria címe 7 biten (ADDR) , a periférán belüli végpont sorszám (ENDP) 4 biten, mad egy 5 bites hibavédelmi CRC kód. Például egy IN token érkezése után a végpontnak adatokat kell küldenie a hosztnak. A hoszt minden időkeret kezdetét és a hubok és a perifériák időzítésére szolgáló SOF (start of frame) csomag kibocsátásával kezdi, majd a végpontok átviteltípusa szerint sorban küldi nekik az IN (a hoszt adatot vár) vagy az OUT (a hoszt adatot küld) tokent. SETUP token után a hoszt a végpontot beállító parancsot küldi el adatcsomagként. Minden adatcsomagot - leszámítva a valós idejű átviteléit - háromféle nyugtacsomag valamelyikével nyugtázni kell:  ACK - az adat problémamentes fogadását jelzi,  NAK - jelzi, hogy

a periféria nem tud adatot küldeni vagy fogadni, mert például a nyomtató még nem kész,  STALL - a periféria nem tudja kezelni a hibát, ahhoz a hoszt - vagy a felhasználó - beavatkozása szükséges. A nyugtacsomagot kivéve, minden csomag végén van hibaellenőrző CRC kód; ha azt a címzett vételkor hibásnak találja, nem küld vissza nyugtacsomagot. Mivel összesen 10-féle csomag létezik, a PID mezőt a CRC képzésnél nem használjuk: a PID négy bites, a második négy bitben az előzők negáltja van, azaz a PID önellenőrző. Az esetleges nyugtavesztés felismerése miatt az adatcsomagoknak kétféle PID azonosítójuk van: ez a DATA0 és a DATA1. Ezek, ha több csomagból álló sorozatról van szó, felváltva kerülnek bele a csomagokba. Ha például, egy DATA0 adatcsomag rendben megérkezik, de a visszaküldött ACK nyugtája valamilyen hiba miatt elvész, ekkor a küldő, mivel nem jött nyugta, újra elküldi ugyanazt a csomagot, de megint DATA0

jelzéssel. Mivel a fogadó tudja, hogy most DATA1-nek kellett volna következnie, rájön, hogy ez nem más, mint az előző ismétlése. Ezért eldobja, és újra küld egy ACK nyugtát Eszközleírók (Deszkriptorok) Az USB kommunikáció számos szöveges és numerikus információt igényel az eszközök azonosításához, azok végpontjainak és funkcióinak specifikálásához. Ezen akár egy adarekordnak is tekinthető leíróknak (deszkriptoroknak) öt általános kategóriája van: · Device: gyártó neve, termékszám, sorozatszám stb. · Configuration: a készülék áramfelvételét, az interfészek számát tartalmazza · Interface: pl. a végpontok száma · EndPoint: pl. az adott végponton zajló kommunikáció típusa · String: a készülékből kiolvasható tetszűleges szöveges információ UNICODE szerint Felcsatlakozás az USB buszra Mikor egy új perifériát csatlakoztatunk a hub egy szabad kapujára, akkor ezt a hub érzékeli. Mivel a hoszt a hubok

állapotát is periodikusan lekérdezi, ezért a hub jelenti, hogy melyik kapuján észlelt új eszközt. Ezután a hoszt utasítja a hubot a kapu engedélyezésére és egy reset jel kiadására. Reset jel: 10 msec-re egyszerre alacsony szintre húzza a kapu D+ és D- vonalát (SE0). Ezzel egy időben a hub a vonalon a tápfeszültséget is kiadja a kapura Ezzel az eszköz már kész a működésre, de még nincs konfigurálva és a rendszerbe illesztve. A hoszt az alapértelmezés szerinti 0-s eszközcímen és a 0 végponton át fordul először az eszközhöz, címet rendel hozzá, konfigurálja, definiálja végpontjaihoz a csöveket stb. A hub az eszköz leválasztását is jelenti a hosztnak, és utóbbi parancsára letiltja a használaton kívüli kaput. A csatlakozó eszköz kér egy csatlakozási címet és ehhez a címhez hozzárendeli a gazda a csatlakozási értéket A folyamat lépései: 1. A hoszt kibocsát egy get descriptor parancsot, válaszul az eszköz elküldi

magáról az információkat: eszközosztály, gyártóinformáció, maximális csomag mérete a végponton, stb. 2. A gazda küldi a címet egy adatcsomagban, amit az eszköz használ, (set address parancs) 3. a hoszt kérésére az eszköz beolvassa a konfigurációs leírót (get configuration parancs) Az eszköz válaszul visszaküldi: csatolók és végpontok számát, végpont átvitel típusát, csomagméretet és címzést, maximális energia szükségletet, energiaforrást (külső vagy belső), stb 4. Utolsó lépésben a folyamat feldolgozás kezelő alkalmazza set configuration parancsot, amivel a hoszt megfelelteti a konfigurációs értékeket az eszközzel. Ezek után az eszköz kész az USB komminikációra. Leválasztáskor a hoszt letiltja a portot az USB rendszerprogram nyugtázza az eszköz lecsatlakoztatását és felszabadítja az eszköz használt erőforrásokat. A leirásból is nyilvánvaló, hogy az USB kommunikáció meglehetősen bonyolult, és mivel hoszt

specifikus, az USB port másik oldalán általában egy USB buszos PC-nek kell lennie. Ezt felismerve, a Microchip több működő kódot bocsátott a fejlesztők rendelkezésére Az USB-vel kapcsolatos további anyagok az interneten találhatók