USB interfész

Volt egy kis szabad ideje, és elhatároztam, hogy írok egy kis „off-menetrend” című cikket.

Tehát, az előző cikkben, tudjuk, hogy egyes virtuális csatornákat használnak adatcsere - a „végpont”. Nézzük meg, hogyan kommunikáció megvalósul.

Kommunikáció USB-n keresztül

Gondoljunk bele, milyen adatokat cseréltek.

A kezdeményező a csere mindig a gazda. Az eszköz nem indítható el adattovábbításhoz saját kezdeményezésére. Felváltva ad otthont (emnip időközönként 1 ms, de a „kis sebességű” az eszköz lehet lehívni minden alkalommal, és például, ha egy lekérdezési ciklus 10) lekérdezi az összes poduchennye eszközt. Minden alkalommal, amikor a közvélemény-kutatás, a készülék adatokat fogad a host és küldje el az adatokat a gazda.

Sam kicserélt csomagokat. Számos szabványos típusú csomagokat. „Byte” nem fogunk szétszedni csomagokat, de érinteni ezt a kérdést a gyakorlati rész.

Az a tény, hogy a munka egy részét a formáció és a csomagok átvitelét (pl szinkronizációs problémák számítása ellenőrzőösszegek, és így tovább. D.) veszi át az USB perifériák MC. Azok számára, akik szeretnék, hogy azonnal ásni a bitek és bájtok javasoljuk, hogy olvassa el a 8., a hivatalos USB 2.0 specifikáció

Mindaddig, amíg ez elegendő ahhoz, hogy tudjuk, hogy vannak „adatcsomagok”, és többféle „szervizcsomagok.”

USB és Plug and Play

Nézzük meg, hogy mi eszköz fog történni, miután a fogadó meghatározta a kapcsolatot egy új eszközt, és kész arra, hogy indítsa el a megosztást adatokat. Szükségünk van egy rövid ideig emelkedik a „magas” szinten - a szint az operációs rendszer.

A tény az, hogy az USB szabvány támogatja a koncepció Plug and Play (plug and play). Ez a fogalom azt jelenti, hogy a felhasználó csak a „bot” a készüléket a megfelelő portjához. Akkor OS automatikusan felismeri, hogy milyen típusú csatlakoztatott eszköz, megtaláljuk a megfelelő illesztőprogramot az eszközhöz, a készülék konfigurálását, és így tovább. D. (noha természetesen az ideális :))

Ahhoz, hogy ezt a szépséget dolgozott, USB szabvány néhány általános követelmények minden eszköz:

1. Minden eszköz tartalmaz egy „saját leírása” (eszköz-leíró).

2. Van egy bizonyos közös az összes USB-eszközt, a mechanizmus, amely lehetővé teszi az operációs rendszer olvasni a készülék leíró azonosítja az eszközt, hogy megtanulják annak jellemzőit.

Ezek a dolgok (olvassa el a készülék leíró eszköz azonosító) részt vesz egy olyan operációs rendszer szolgáltatás, amely felelős az alap USB-támogatás.
Amint az eszköz, azonosítjuk és végre néhány kezdeti inicializálás, a szolgáltatás átadja a vezérlést a vezető eszköz, amely „rögzített” adat az eszköz típusa (vagy kifejezetten ez a készülék).

Mi történik, ha a szolgáltatás nem találja a „megfelelő” a eszközillesztő mindent tud :)

Most pedig térjünk vissza a mi „kis” szinten.

Az első lépések a készüléken. Normál benőtt.

A gyakorlatban, az azonos „nulla végpont” használják, hogy olvassa el a készülék leíró és a primer inicializálás. Számos lekérdezések előírt (standard eszköz kéri) szabvány, hogy kell kezelni az összes USB-eszközt. Eddig itt van néhány példa az ilyen kérések:

GET_DESCRIPTOR - kérelemfogadásra készülék leíró. Ez a kérés további információt nyújt arról, hogyan kell kezelni a vissza (az egység „tárolja” számos különböző leírások, de erről bővebben később).

GET_CONFIGURATION - kérelem jelenlegi konfigurációt.

Meg kell érteni, hogy a kérés - nem más, mint egy szabványosított adatstruktúra, amely tartalmazza a kérelem kód (bRequest) és további adatokat. A válaszokat az egyes lekérdezések is, persze, vannak szabványos.

A standard azt kéri, hogy eszköz „köteles” fenntartani, meg lehet határozni a „saját” kéréseket, amelyek egy-egy konkrét eszköz (készülék osztály).

Részletes minden „konyha” kérelmek és válaszok, találkoztunk a „gyakorlati” rész.

Ugyanakkor, hogy megmutassa, milyen ugyanúgy néz ki, kart a készülék egy példát:

Bár ez csak egy illusztráció, amely úgy néz ki, mint egy fogantyú, hogy ásni a mező értéke nem éri meg, mi ezt a következő cikkben.

Ezen, azt javaslom árukapcsolással egy meztelen elmélet és fokozatosan térjen át a gyakorlatba. A következő cikkben kezd lassan írni a kódot.

Kapcsolódó cikkek